這已經(jīng)是我第三次找資料看關于相機標定的原理和步驟,以及如何用幾何模型,我想十分有必要留下這些資料備以后使用。這屬于筆記總結(jié)。 1.為什么要相機標定? 在圖像測量過程以及機器視覺應用中,為確定空間物體表面某點的三維幾何位置與其在圖像中對應點之間的相互關系,必須建立相機成像的幾何模型,這些幾何模型參數(shù)就是相機參數(shù)。
【1】進行攝像機標定的目的:求出相機的內(nèi)、外參數(shù),以及畸變參數(shù)。 【2】標定相機后通常是想做兩件事:一個是由于每個鏡頭的畸變程度各不相同,通過相機標定可以校正這種鏡頭畸變矯正畸變,生成矯正后的圖像;另一個是根據(jù)獲得的圖像重構(gòu)三維場景。 攝像機標定過程,簡單的可以簡單的描述為通過標定板,如下圖,可以得到n個對應的世界坐標三維點Xi和對應的圖像坐標二維點xi,這些三維點到二維點的轉(zhuǎn)換都可以通過上面提到的相機內(nèi)參K,相機外參R和t,以及畸變參數(shù)D,經(jīng)過一系列的矩陣變換得到。
2.什么叫相機標定? 在大多數(shù)條件下這些參數(shù)必須通過實驗與計算才能得到,這個求解參數(shù)的過程就稱之為相機標定(或攝像機標定)
3.為什么相機標定很重要? 無論是在圖像測量或者機器視覺應用中,相機參數(shù)的標定都是非常關鍵的環(huán)節(jié),其標定結(jié)果的精度及算法的穩(wěn)定性直接影響相機工作產(chǎn)生結(jié)果的準確性。因此,做好相機標定是做好后續(xù)工作的前提,提高標定精度是科研工作的重點所在。 4.相機標定方法有哪些? 相機標定方法有:傳統(tǒng)相機標定法、主動視覺相機標定方法、相機自標定法。 傳統(tǒng)相機標定法需要使用尺寸已知的標定物,通過建立標定物上坐標已知的點與其圖像點之間的對應,利用一定的算法獲得相機模型的內(nèi)外參數(shù)。根據(jù)標定物的不同可分為三維標定物和平面型標定物。三維標定物可由單幅圖像進行標定,標定精度較高,但高精密三維標定物的加工和維護較困難。平面型標定物比三維標定物制作簡單,精度易保證,但標定時必須采用兩幅或兩幅以上的圖像。傳統(tǒng)相機標定法在標定過程中始終需要標定物,且標定物的制作精度會影響標定結(jié)果。同時有些場合不適合放置標定物也限制了傳統(tǒng)相機標定法的應用。 目前出現(xiàn)的自標定算法中主要是利用相機運動的約束。相機的運動約束條件太強,因此使得其在實際中并不實用。利用場景約束主要是利用場景中的一些平行或者正交的信息。其中空間平行線在相機圖像平面上的交點被稱為消失點,它是射影幾何中一個非常重要的特征,所以很多學者研究了基于消失點的相機自標定方法。自標定方法靈活性強,可對相機進行在線定標。但由于它是基于絕對二次曲線或曲面的方法,其算法魯棒性差。 基于主動視覺的相機標定法是指已知相機的某些運動信息對相機進行標定。該方法不需要標定物,但需要控制相機做某些特殊運動,利用這種運動的特殊性可以計算出相機內(nèi)部參數(shù)?;谥鲃右曈X的相機標定法的優(yōu)點是算法簡單,往往能夠獲得線性解,故魯棒性較高,缺點是系統(tǒng)的成本高、實驗設備昂貴、實驗條件要求高,而且不適合于運動參數(shù)未知或無法控制的場合。 5、常用術語 內(nèi)參矩陣: Intrinsic Matrix 焦距: Focal Length 主點: Principal Point 徑向畸變: Radial Distortion 切向畸變: Tangential Distortion 旋轉(zhuǎn)矩陣: Rotation Matrices 平移向量: Translation Vectors 平均重投影誤差: Mean Reprojection Error 重投影誤差: Reprojection Errors 重投影點: Reprojected Points 6.相機成像原理
6.1 世界坐標系
世界坐標系(world coordinate),也稱為測量坐標系,是一個三維直角坐標系,以其為基準可以描述相機和待測物體的空間位置。世界坐標系的位置可以根據(jù)實際情況自由確定。 6.2 相機坐標系 相機坐標系(camera coordinate),也是一個三維直角坐標系,原點位于鏡頭光心處,x、y軸分別與相面的兩邊平行,z軸為鏡頭光軸,與像平面垂直。
6.3 相機坐標系轉(zhuǎn)換為世界坐標系
轉(zhuǎn)換方程為:
其中為3*3的旋轉(zhuǎn)矩陣,為3*1的平移矢量,為相機坐標系的齊次坐標,為世界坐標系的齊次坐標。 具體步驟為下圖所示:
圖6.3.1
圖6.3.2
圖6.3.3
6.4 像素坐標系、圖像坐標系 圖6.4.1
像素坐標系(pixel coordinate) 圖6.4.1 ,像素坐標系是一個二維直角坐標系,反映了相機CCD/CMOS芯片中像素的排列情況。原點位于圖像的左上角,軸、軸分別于像面的兩邊平行。像素坐標系中坐標軸的單位是像素(整數(shù)) 。
像素坐標系不利于坐標變換,因此需要建立圖像坐標系,其坐標軸的單位通常為毫米(mm) ,原點是相機光軸與相面的交點(稱為主點),即圖像的中心點,軸、軸分別與軸、軸平行。故兩個坐標系實際是平移關系,即可以通過平移就可得到。 6.5 像素坐標系轉(zhuǎn)換為圖像坐標系
其中,、分別為像素在、軸方向上的物理尺寸,為主點(圖像原點)坐標。(這里 =dx) 6.6 相機坐標系轉(zhuǎn)換為圖像坐標系
針孔成像原理 如圖中,空間任意一點與其圖像點之間的關系,p與相機光心 的連線為op,與像面的交點即為空間點在圖像平面上的投影。 該過程為透視投影,由上圖的矩陣表示。 其中,Zc為比例因子(Zc不為0),為有效焦距(光心到圖像平面的距離),是空間點在相機坐標系中的齊次坐標,是像點在圖像坐標系中的齊次坐標。
6.7 世界坐標系轉(zhuǎn)換為像素坐標系上面的式子也等于:MXw ,其中M成為投影矩陣,是相機內(nèi)參矩陣和相機外參矩陣的乘積。 其中 f 為攝像機的焦距,單位一般是mm;dx,dy 為像元尺寸;u0,v0 為圖像中心。fx = f/dx, fy = f/dy,分別稱為x軸和y軸上的歸一化焦距. 為更好的理解,舉個實例: 現(xiàn)以NiKon D700相機為例進行求解其內(nèi)參數(shù)矩陣: 就算大家身邊沒有這款相機也無所謂,可以在網(wǎng)上百度一下,很方便的就知道其一些參數(shù)—— 焦距 f = 35mm 最高分辨率:4256×2832 傳感器尺寸:36.0×23.9 mm 根據(jù)以上定義可以有: u0= 4256/2 = 2128 v0= 2832/2 = 1416 dx = 36.0/4256 dy = 23.9/2832 fx = f/dx = 4137.8 fy = f/dy = 4147.3 其中相機的內(nèi)參和外參可以通過張正友標定獲取。通過最終的轉(zhuǎn)換關系來看,一個三維中的坐標點,的確可以在圖像中找到一個對應的像素點(為什么?你自己想想矩陣的運算,你就可以知道了),但是反過來,通過圖像中的一個點找到它在三維中對應的點就很成了一個問題,因為我們并不知道等式左邊的Zc的值。
|