基于MATLAB中calibration toolbox的相機標(biāo)定應(yīng)用研究
摘 要: 相機標(biāo)定的目的是確定相機的幾何和光學(xué)參數(shù)以及相機相對于世界坐標(biāo)系的方位。calibration toolbox作為一個標(biāo)定工具,容納了如Tsai、Faugeras等多種經(jīng)典的標(biāo)定方法,從自主標(biāo)定的使用方面詳細(xì)介紹了calibration toolbox的使用方法。
關(guān)鍵詞: 相機標(biāo)定; MATLAB; 標(biāo)定工具箱
隨著人們對可視化要求的提高,計算機視覺作為一門新興的高科技學(xué)科,被越來越多地應(yīng)用于產(chǎn)品在線質(zhì)量監(jiān)控、微電子器件的自動檢測、各種模具三維形狀的測量及生產(chǎn)線中機械手的定位與瞄準(zhǔn)等[1,2]領(lǐng)域。相機標(biāo)定作為計算機視覺中最基礎(chǔ)的一部分,已形成了很多種標(biāo)定方法,有關(guān)理論問題也得到了較好的解決,當(dāng)前的研究工作應(yīng)該集中于如何針對具體的實際應(yīng)用問題,采用特定的簡便、實用、快速、準(zhǔn)確的標(biāo)定方法[3-6]。
MATLAB中的相機標(biāo)定工具箱(camera calibration toolbox)提供了各種例程以及標(biāo)定方法,非常詳細(xì),甚至還提供了方格型的靶標(biāo)。用戶接口方便靈活,在相機標(biāo)定時使用非常簡單,而且該工具箱的C源碼在開源計算機視覺庫中開放,為深入學(xué)習(xí)進行二次開發(fā)提供了理想的條件[7-9]。攝像機的標(biāo)定與相機同理。
1 相機標(biāo)定原理
標(biāo)定中有3個不同層次的坐標(biāo)系:世界坐標(biāo)系、相機坐標(biāo)系和像平面坐標(biāo)系(物理坐標(biāo)系和像素坐標(biāo)系),如圖1所示。
1.1 世界坐標(biāo)系
世界(world)坐標(biāo)系也稱真實或現(xiàn)實世界坐標(biāo)系,用XwYwZw表示,它是客觀世界的絕對坐標(biāo)(所以也稱客觀坐標(biāo)系)。一般的3D場景都用這個坐標(biāo)系來表示。
1.2 相機坐標(biāo)系
相機坐標(biāo)系是以相機為中心制定的坐標(biāo)系,用XcYcZc表示,一般取相機的光學(xué)軸為Zc軸。
1.3 像平面坐標(biāo)系
圖像物理坐標(biāo)系是在相機內(nèi)所形成的像平面xy坐標(biāo)系,一般取像平面與相機坐標(biāo)系平面平行。
圖像像素坐標(biāo)系是在相機內(nèi)所形成的uv坐標(biāo)系,一般取像平面∏的左上角為原點。
圖像上每一點的亮度與物體某個表面點的反射光的強度有關(guān),而圖像點在圖像平面上的位置僅與相機空間物體的相對方位和相機的內(nèi)部結(jié)構(gòu)有關(guān),相機的內(nèi)部結(jié)構(gòu)是由相機的內(nèi)部參數(shù)所決定的。為了描述相機的成像幾何關(guān)系,需要對相機進行數(shù)學(xué)建模。通常采用針孔模型,也稱為線性模型,這種模型在數(shù)學(xué)上是三維空間到二維平面的中心投影,由一個3×4矩陣來描述,這種模型是一個(退化的)攝影變換,因此通常又稱它為攝影攝像機。
1.4 相機標(biāo)定原理
相機標(biāo)定是指建立攝像機圖像像素位置與場景點位置之間的關(guān)系,其途徑是根據(jù)相機模型,由已知特征點的圖像坐標(biāo)和世界坐標(biāo)求解相機的模型參數(shù),如圖2所示。相機需要標(biāo)定的模型參數(shù)分為內(nèi)部參數(shù)和外部參數(shù),轉(zhuǎn)換關(guān)系為:
世界坐標(biāo)系中的點到相機坐標(biāo)系的變換可用一個正交變換矩陣R和一個平移變換矩陣T表示,fx、fy、γ、u0、v0是線性模型的內(nèi)部參數(shù),其中fx、fy分別定義為X和Y方向的等效焦距,u0、v0是圖像中心(光軸與圖像平面的交點)坐標(biāo),γ是u軸和v軸不垂直因子;R和T是旋轉(zhuǎn)矩陣和平移矩陣。若已知矩陣M1、M2,就可建立起世界坐標(biāo)和像素坐標(biāo)的對應(yīng)關(guān)系。相機的標(biāo)定任務(wù)就是求出每個變換矩陣中的參數(shù)。
由于相機光學(xué)系統(tǒng)并不是精確地按理想化的小孔成像原理工作,存在透鏡畸變,即物體點在相機成像面上實際所成的像與理想成像之間存在光學(xué)畸變誤差[2,3]。主要的畸變誤差有三類:徑向畸變、偏心畸變和薄棱鏡畸變,分別用δr、δd、δp表示。第一類只產(chǎn)生鏡像位置的偏差,后兩類則既產(chǎn)生徑向偏差,又產(chǎn)生切向偏差。
考慮畸變后,圖像平面理想圖像點坐標(biāo)(Xu,Yu)等于實際圖像點坐標(biāo)(Xd,Yd)與畸變誤差之和,即:
2 相機標(biāo)定
相機的輸出畫面分辨率為3 280×2 460,采用黑白棋盤作為標(biāo)定模板,模板正方形邊長為30 mm。實時標(biāo)定過程如下:
(1)運行標(biāo)定主函數(shù)calib_gui,顯示如圖3所示模式選擇窗口。
通過這個操作,可以選擇一次性上傳所有標(biāo)定照片或在電腦內(nèi)存不足的情況下分張上傳。無論選擇哪種模式,都會有相同的用戶窗口,接下來的標(biāo)定過程可全部由此窗口完成,如圖4所示。