李明彩 郭軒 于毅
摘要:相機(jī)標(biāo)定是計(jì)算機(jī)視覺領(lǐng)域的關(guān)鍵技術(shù)之一。本文介紹了攝像機(jī)成像原理,明確其內(nèi)外參數(shù)的含義,選擇基于Matlab的Camera Calibration工具箱和Camera Calibrator程序?qū)嵺`了基于平面板標(biāo)定的相機(jī)標(biāo)定方法,給出了分組實(shí)驗(yàn)結(jié)果,對比了兩種工具在操作、運(yùn)行和精度方面的特點(diǎn)。
關(guān)鍵詞:Matlab;攝像機(jī)標(biāo)定;平面板標(biāo)定
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2018)02-0085-01
攝像機(jī)標(biāo)定是視覺技術(shù)的基礎(chǔ),核心是建立標(biāo)記點(diǎn)三維坐標(biāo)和圖像對應(yīng)二維坐標(biāo)的關(guān)系模型。本文從攝相機(jī)標(biāo)定原理出發(fā),明確標(biāo)定中最重要的矩陣變換和相機(jī)參數(shù)[1],采用棋盤格平面標(biāo)定法進(jìn)行標(biāo)定,分別利用Matlab的Camera Calibration工具箱和Camera Calibrator程序?qū)嶒?yàn),得出標(biāo)定結(jié)果并進(jìn)行對比分析。
1 攝像機(jī)的標(biāo)定原理
目前最常用的攝像機(jī)成像模型是小孔攝像機(jī)模型,系統(tǒng)中建立世界坐標(biāo)系(Xw,Yw,Zw)、攝像機(jī)坐標(biāo)系(Xc,Yc,Zc)、圖像坐標(biāo)系(u,v)和成像坐標(biāo)系(x,y)四個(gè)坐標(biāo)系[1-2]。世界坐標(biāo)(Xw,Yw,Zw)經(jīng)平移和旋轉(zhuǎn)得到攝像機(jī)坐標(biāo);攝像機(jī)坐標(biāo)點(diǎn)P(Xc,Yc,Zc)經(jīng)透視投影變換可得成像平面點(diǎn)p(x,y);成像平面到圖像平面坐標(biāo)則是離散化和平移的結(jié)果,成像空間原點(diǎn)Oxy在圖像平面的坐標(biāo)為(u0,v0),x軸和y軸方向按照長度為dx,dy為單位長度進(jìn)行離散化,如此導(dǎo)出圖像坐標(biāo)系反求世界坐標(biāo)的公式[1-2]:
其中R為正交旋轉(zhuǎn)矩陣,由世界和攝像機(jī)坐標(biāo)系的軸間旋轉(zhuǎn)夾角決定,T為平移矩陣;f為透視投影變換中攝像機(jī)光心到物理成像平面的距離;dx,dy為離散化單位長度,(u0,v0)為物理成像空間原點(diǎn)Oxy在圖像平面的坐標(biāo)。變換組成系數(shù)矩陣M1M2,M1為攝像機(jī)內(nèi)部參數(shù)固定不變,定標(biāo)就是求M1,即焦距fx和fy、光心cx和cy、畸變系數(shù)k1,k2,k3,p1,p2。5個(gè)畸變系數(shù)來自畸變模型,可矯正因鏡頭焦距定位不當(dāng)或質(zhì)量問題致使模型產(chǎn)生的透鏡畸變(徑向畸變和切向畸變模型)[1-2],根據(jù)標(biāo)定精度要求可選擇求解畸變參數(shù)。
2 實(shí)驗(yàn)過程和結(jié)果
基于Matlab的相機(jī)標(biāo)定工具,常用Jean-Yves Bouguet開發(fā)的Camera Calibration Toolbox和2014a版后支持的Camera Calibreator,下文稱工具1和工具2,二者均以張氏平面標(biāo)定法為理論基礎(chǔ)[1-2],標(biāo)定包括角點(diǎn)提取和參數(shù)計(jì)算、優(yōu)化兩個(gè)步驟。利用多幅不同位姿的平面棋盤靶圖像,從每幅圖像中提取棋盤靶角點(diǎn),根據(jù)攝像機(jī)成像模型和畸變模型,建立平面棋盤靶標(biāo)角點(diǎn)的世界坐標(biāo)與采集后靶標(biāo)圖像坐標(biāo)的對應(yīng)關(guān)系,通過非線性優(yōu)化的方法計(jì)算攝像機(jī)的內(nèi)外參數(shù)。本文采用7*8棋盤格標(biāo)定板,方格大小25mm。
工具1的開發(fā)者將其共享[4],將標(biāo)定功能集成在一個(gè)GUI程序中,提供參數(shù)設(shè)置、加載圖片、角點(diǎn)提取、相機(jī)參數(shù)計(jì)算和優(yōu)化、重投影誤差分析、數(shù)據(jù)保存和導(dǎo)出等關(guān)鍵功能,操作多為工作區(qū)命令行方式,操作繁瑣,對使用者要求較高[3-4]。工具2集成在Matlab的應(yīng)用程序中,對標(biāo)定任務(wù)進(jìn)行集成Session管理,將載入圖片、選擇預(yù)期計(jì)算的畸變參數(shù)、優(yōu)化參數(shù)設(shè)置、標(biāo)定等過程設(shè)計(jì)在應(yīng)用程序菜單欄[3,5],標(biāo)定后直接提供重投影誤差、3D視圖的展示和相機(jī)參數(shù)、誤差等數(shù)據(jù)的標(biāo)準(zhǔn)格式導(dǎo)出。程序界面友好,誤差分析以程序?yàn)橹魅斯檩o,比工具1操作大大簡化,但也因其對程序的打包,不利于程序跟蹤和二次開發(fā)。
實(shí)驗(yàn)中采集到的圖像按每組15張分為8組,表1為各組結(jié)果的數(shù)值平均。
二者均完成了相機(jī)標(biāo)定和誤差分析,從結(jié)果可看出二者對同一批圖像的結(jié)果均較為接近,如光心和焦距坐標(biāo);畸變系數(shù)小結(jié)果較精確;像素誤差小于0.5,略大原因是棋盤格誤差較大、平面板不夠平整,而工具2略優(yōu)的原因是手動(dòng)誤差分析和優(yōu)化存在人為因素影響。實(shí)驗(yàn)中采集圖像需注意:拍攝圖像要能覆蓋整個(gè)視場,標(biāo)定板的位姿對標(biāo)定結(jié)果影響比標(biāo)定照片數(shù)目的影響大得多,每組均應(yīng)包含標(biāo)定板正視、左遠(yuǎn)右近、左近右遠(yuǎn)、上遠(yuǎn)下近、上近下遠(yuǎn)等位姿。
3 結(jié)語
本文在Matlab平臺上針對標(biāo)定工具箱和Camera Calibreator進(jìn)行對比實(shí)驗(yàn),得出主要內(nèi)部參數(shù),結(jié)果較為精確,證明兩種工具都較為穩(wěn)定和可靠,可根據(jù)實(shí)際應(yīng)用需求使用,進(jìn)一步可通過提高標(biāo)定板質(zhì)量、嘗試多種標(biāo)定板位姿組合等方式提高結(jié)果精度。
參考文獻(xiàn)
[1]馬頌德,張正友.計(jì)算機(jī)視覺一計(jì)算理論與算法基礎(chǔ)[M].北京:科學(xué)出版社,2003.
[2]Zhang Z. A Flexible New Technique for Camera Calibration.IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,11(22):1330-1334.
[3]吳淵凱,卞新高.計(jì)算機(jī)視覺中的攝像機(jī)標(biāo)定的實(shí)驗(yàn)分析[J].電子測量技術(shù),2016,39(11):95-99.
[4]張偉波,劉明芹,袁明,等.基于Matlab 的計(jì)算機(jī)視覺測量中攝像機(jī)標(biāo)定方法研究[J].數(shù)字技術(shù)與應(yīng)用,2014,(2):53-54.