劉玉婷 徐祥宇 王超 張濤
摘 要:為驗證雙目立體視覺系統(tǒng)中攝像機標(biāo)定的精度,對常用2D精密靶標(biāo)標(biāo)定法進行了實驗分析。本文首先對攝像機標(biāo)定原理進行了詳細(xì)的論述;然后在MATLAB軟件及HALCON軟件對攝像機分別進行了單目與雙目標(biāo)定實驗;最后對攝像機標(biāo)定實驗結(jié)果做出詳盡的分析。實驗數(shù)據(jù)表明了基于HALCON軟件的標(biāo)定精度相較于基于MATLAB軟件的標(biāo)定精度更高,為以后攝像機標(biāo)定方法的研究提供了參考方向。
關(guān)鍵詞: 立體視覺;雙目標(biāo)定;MATLAB;HALCON
文章編號: 2095-2163(2019)03-0133-05 中圖分類號: TP391 文獻標(biāo)志碼: A
0 引 言
攝像機標(biāo)定一般分為單目攝像機標(biāo)定和雙目攝像機標(biāo)定,是機器視覺的重要內(nèi)容之一[1],在距離測量、機器人視覺、遙感探測等領(lǐng)域表現(xiàn)出可觀應(yīng)用前景。其中,雙目攝像機標(biāo)定是立體視覺系統(tǒng)的基礎(chǔ)[2],其標(biāo)定精度和速度決定了立體匹配的精度及三維重建的效果。因此,研究攝像機標(biāo)定對雙目立體視覺系統(tǒng)的實現(xiàn)具有重大意義。
目前,常用攝像機的標(biāo)定方法可分為三大類:傳統(tǒng)標(biāo)定法、自標(biāo)定法以及張正友標(biāo)定法[3-4]。分析可知,傳統(tǒng)標(biāo)定法標(biāo)定精度較高,但在非線性攝像機模型下計算十分復(fù)雜,標(biāo)定速度較低,通常適用于精度要求較高的線性系統(tǒng);自標(biāo)定法不需要借助參考物,操作簡單、且計算速度較快,但是其標(biāo)定精度及魯棒性能較低,只適用于實時性要求較高、且精度要求較低的系統(tǒng);張正友標(biāo)定法介于二者之間,具有操作簡單、標(biāo)定精度高、魯棒性好等優(yōu)點,較為廣泛使用[5]。
本文在傳統(tǒng)標(biāo)定法及張正友標(biāo)定法的基礎(chǔ)上介紹了一種利用HALCON軟件實現(xiàn)的2D圓形精密靶標(biāo)標(biāo)定法。為驗證本文所提方法標(biāo)定精度的準(zhǔn)確性與計算過程的快速性,在本方法的基礎(chǔ)上與基于MATLAB軟件的張正友標(biāo)定法進行了單、雙目標(biāo)定的對比及實驗分析。實驗結(jié)果表明:本文所用基于HALCON軟件標(biāo)定方法的標(biāo)定精度明顯優(yōu)于MATLAB軟件的標(biāo)定結(jié)果。
1 攝像機標(biāo)定原理
為確定二維圖像與三維客觀物體坐標(biāo)之間的相互關(guān)系,就必須建立攝像機成像模型[6]。在攝像機成像模型下,將三維客觀物體的坐標(biāo)轉(zhuǎn)化為二維圖像的坐標(biāo)則需要通過建立圖像坐標(biāo)系、攝像機坐標(biāo)系以及世界坐標(biāo)系來表示這種轉(zhuǎn)換關(guān)系。其坐標(biāo)系關(guān)系如圖1所示。
在圖1中,圖像坐標(biāo)系分為像素坐標(biāo)系(XfOfYf)和物理坐標(biāo)系(XOY)兩種,其轉(zhuǎn)化關(guān)系的齊次坐標(biāo)和矩陣表示如式(1)所示:
其中,u,v分別表示圖像像素的行數(shù)和列數(shù),1/dx,1/dy分別表示在圖像物理坐標(biāo)系X方向與Y方向的單位長度上的像素個數(shù)。
攝像機坐標(biāo)系(xoy)是以攝像機模型的聚焦點為原點建立的三維直角坐標(biāo)系。其oz軸為攝像機光軸,x、y軸一般平行于圖像物理坐標(biāo)系中的X、Y軸。世界坐標(biāo)系(XW,YW,ZW)是物體與攝像機的參考坐標(biāo)系。
攝像機坐標(biāo)與世界坐標(biāo)的轉(zhuǎn)換關(guān)系如式(2)所示:
其中,T是世界坐標(biāo)系的原點在攝像機坐標(biāo)系中的坐標(biāo),即平移向量,R是正交旋轉(zhuǎn)矩陣,滿足約束條件:
其中,X,Y為攝像機坐標(biāo)系中的某一點p在圖像物理坐標(biāo)系中的表示,f為攝像機焦距。
將式(4)中圖像物理坐標(biāo)進一步轉(zhuǎn)化到圖像像素坐標(biāo)系,可得到物點p與像素坐標(biāo)系中像點pf的轉(zhuǎn)換關(guān)系,由此可得世界坐標(biāo)系與圖像坐標(biāo)系之間的變換關(guān)系如式(5)所示:
其中,M1為內(nèi)部參數(shù),由fx,fy,u0,v0決定;M2為外部參數(shù),由攝像機相對于世界坐標(biāo)系的方位決定,即由旋轉(zhuǎn)矩陣R與平移向量T決定。通過攝像機成像模型,在攝像機內(nèi)部參數(shù)確定的條件下,求取攝像機內(nèi)外參數(shù)的過程為攝像機標(biāo)定。
2 單目標(biāo)定實驗
本文采用通用針孔成像幾何模型對攝像機進行標(biāo)定,并分別在MATLAB平臺及HALCON平臺進行標(biāo)定實驗,由于本文使用的攝像機為雙目攝像機,在開展單目標(biāo)定實驗時,分別對左、右相機所得圖像進行標(biāo)定,標(biāo)定實驗臺如圖2所示,標(biāo)定流程如圖3所示。
2.1 基于MATLAB的單目標(biāo)定實驗
本節(jié)采用張正友的棋盤格單目標(biāo)定法,使用MATLAB標(biāo)定工具箱和棋盤格標(biāo)定板對左右攝像機分別進行標(biāo)定,獲取攝像機的內(nèi)、外參數(shù)。
在張氏標(biāo)定法中,通過對棋盤格角點的提取,可得到棋盤格在三維坐標(biāo)中的平面與成像平面的對應(yīng)坐標(biāo),從而得到2個平面的單應(yīng)矩陣H[7]。由公式(5)與針孔成像模型可得:
其中,p為棋盤格所成像點坐標(biāo),P為棋盤格角點在世界坐標(biāo)系中的坐標(biāo),將棋盤格平面映射到成像平面,則有:
其中,H為棋盤格平面與成像平面之間的單應(yīng)矩陣,通過對單應(yīng)矩陣的求解,可求得攝像機內(nèi)參M1、外參旋轉(zhuǎn)矩陣R和平移向量T。
標(biāo)定具體步驟如下:
(1)制作標(biāo)定板:利用J=(checkerboard(50,4,5)>0.5);figure, imshow(J)語句在MATLAB中生成的黑白棋盤格圖像,如圖4所示,其大小為107 mm×133 mm,每個方格尺寸為13 mm×13 mm。
(2)采集圖像:固定左、右相機,采集標(biāo)定板多組不同位姿的圖像,保證每個圖像在圖像視野范圍的三分之一內(nèi),并將采集到的圖像以bmp格式保存在toolbox_calib目錄中。
(3)角點提?。涸贛ATLAB工具箱中通過Extract grid corners提取每幅標(biāo)定圖像的特征點,即黑方格與白方格的交點。
(4)單目標(biāo)定:分別對左、右攝像機進行單目標(biāo)定,得到左、右相機的內(nèi)外參數(shù)。
(5)結(jié)果優(yōu)化:為了增加標(biāo)定結(jié)果的準(zhǔn)確性,一般使用最大似然估計來優(yōu)化標(biāo)定結(jié)果。左、右攝像機的標(biāo)定結(jié)果分別如圖4中(a)、(b)所示,單目標(biāo)定后攝像機內(nèi)參見表1。
表1中,fc為有效焦距,C為中心原點。將表1中MATLAB標(biāo)定有效焦距(fc/像素)乘以對應(yīng)的像素尺寸dx與dy可得到攝像機標(biāo)定焦距(f/mm),經(jīng)換算得:左攝像機單目標(biāo)定焦距為2.432,右攝像機單目標(biāo)定焦距為2.415。
2.2 基于HALCON的單目標(biāo)定實驗
本節(jié)利用HALCON標(biāo)定助手對左、右攝像機分別進行單目標(biāo)定,獲得左、右攝像機的內(nèi)、外參數(shù)。具體標(biāo)定過程如下。
(1)制作標(biāo)定板:HALCON中一般使用2D圓形精密靶標(biāo)標(biāo)定板進行攝像機的標(biāo)定。本文采用的標(biāo)定板是利用HALCON中g(shù)en_caltab算子生成的標(biāo)準(zhǔn)標(biāo)定板。
(2)采集圖像:與MATLAB棋盤格標(biāo)定實驗相同,采集多組不同位姿的標(biāo)定板圖像,并保證每幅圖像中可覆蓋標(biāo)定板中所有的圓點點數(shù)。
(3)查找區(qū)域:利用find_caltab ( )函數(shù)將圖像區(qū)域與標(biāo)定板區(qū)域分離,并使用find_marks_and_pose ( )算子計算攝像機與標(biāo)定板之間的相對位置,提取標(biāo)定板上各圓點的坐標(biāo)。
(4)單目標(biāo)定:利用HALCON標(biāo)定助手對左、右攝像機逐一進行單目標(biāo)定。左、右攝像機的標(biāo)定結(jié)果分別如圖5中(a)、(b)所示。
2.3 單目標(biāo)定實驗結(jié)果分析
本文選取了標(biāo)定圖像為16幅時,所得標(biāo)定結(jié)果。單目攝像機單目標(biāo)定前后內(nèi)參見表2。
表2中,f為攝像機焦距;k為扭曲系數(shù);Cx為水平像素間距;Cy為垂直像素間距;Sx為水平中心坐標(biāo);Sy為垂直中心坐標(biāo);以上均為攝像機內(nèi)部參數(shù)。Err為像素誤差。
由表1、表2實驗結(jié)果可知:基于HALCON單目攝像機標(biāo)定的平均像素誤差小于MATLAB所標(biāo)定的平均像素誤差,同時,基于HALCON所標(biāo)定出的焦距相較于MATLAB更接近于實際焦距,運行也更加穩(wěn)定。
3 雙目標(biāo)定實驗
雙目攝像機標(biāo)定原理與單目攝像機標(biāo)定相似,利用單目攝像機標(biāo)定的參數(shù)作為雙目攝像機標(biāo)定的初始參數(shù),對雙目攝像機進行標(biāo)定。具體標(biāo)定流程如圖6所示。
3.1 基于MATLAB的雙目標(biāo)定
MATLAB雙目標(biāo)定是在單目標(biāo)定的基礎(chǔ)上,以單目攝像機標(biāo)定所得內(nèi)參作為雙目標(biāo)定的初始參數(shù)來進行雙目攝像機的標(biāo)定。首先將左、右攝像機單目標(biāo)定所得內(nèi)參分別保存到Calib_Results_left和Calib_Results_right兩個mat格式的文件中,然后利用MATLAB軟件中雙目立體標(biāo)定工具箱分別讀取內(nèi)參,通過雙目標(biāo)定獲得左、右相機的位置關(guān)系。左、右相機標(biāo)定結(jié)果分別如圖7中(a)、(b)所示。
3.2 基于HALCON的雙目標(biāo)定
基于HALCON的雙目標(biāo)定與MATLAB類似,都是將攝像機單目標(biāo)定的參數(shù)作為雙目標(biāo)定的初始參數(shù),以此進行雙目攝像機的標(biāo)定。首先讀取左、右攝像機單目標(biāo)定所得內(nèi)參,作為攝像機標(biāo)定的初始參數(shù);然后利用find_caltab ( )函數(shù)與find_marks_and_pose ( )算子對左、右攝像機所采集的圖像分別調(diào)用,獲得標(biāo)志點坐標(biāo);最后將左、右攝像機單目標(biāo)定的參數(shù)以及標(biāo)志點坐標(biāo)作為輸入?yún)?shù),通過調(diào)用 binocular_calibration ( )函數(shù)確定左、右攝像機的參數(shù)以及攝像機之間的相對位置關(guān)系,完成雙目標(biāo)定。左、右攝像機標(biāo)定結(jié)果分別如圖8中(a)、(b)所示。
3.3 雙目標(biāo)定實驗結(jié)果分析
雙目攝像機標(biāo)定后(10幅圖像)左、右相機的相對位姿參數(shù)見表3。
表3中,T為平移向量,R為旋轉(zhuǎn)矩陣。
由表3可知,基于HALCON雙目攝像機標(biāo)定的平均像素誤差小于MATLAB所標(biāo)定的平均像素誤差,同時,雙目攝像機安裝的水平距離為60 mm,由平移向量標(biāo)定結(jié)果可知,HALCON中雙目攝像機所標(biāo)定的水平間距更接近60 mm,且系統(tǒng)運行更加穩(wěn)定。
4 結(jié)束論
本文基于圖像處理軟件MATLAB和HALCON,對攝像機標(biāo)定系統(tǒng)進行了理論說明與實驗。首先詳細(xì)闡述了攝像機的標(biāo)定原理,分別利用MATLAB軟件以及HALCON軟件進行了攝像機單、雙目標(biāo)定實驗,驗證了上述2種方法進行攝像機標(biāo)定的準(zhǔn)確性與合理性;最后分別對單、雙目標(biāo)定結(jié)果進行分析,比較了二者的標(biāo)定精度。實驗數(shù)據(jù)表明:基于HALCON軟件的標(biāo)定結(jié)果其誤差明顯小于MATLAB軟件的標(biāo)定誤差,系統(tǒng)運行更加穩(wěn)定。本文成果在一定程度上可為今后雙目立體視覺系統(tǒng)標(biāo)定的研究提供參考。
參考文獻
[1]曹淞翔. 基于雙目視覺的三維重建[J]. 通訊世界,2018(12):236-238.
[2] 王漢,殷宏. 基于OpenCV的雙目攝像頭標(biāo)定研究及實現(xiàn)[J]. 福建電腦,2018,34(8):121-122,129.
[3] 于春和,祁樂陽. 基于HALCON的雙目攝像機標(biāo)定[J]. 電子設(shè)計工程,2017,25(19):190-193.
[4] 徐凱. 基于雙目視覺的機械手定位抓取技術(shù)的研究[D]. 杭州:浙江大學(xué),2018.
[5] ZHANG Zhengyou. A flexible new technique for camera calibration [J]. IEEE Transaction on Pattern Analysis and Machine Intelligence, 2000, 22(11):1330-1334.
[6] KOHAMA T, HIRATA Y. A binocular vision model for solving autostereograms[J]. Journal of the Institute of Image Electronics Engieerings of Japan,2011,40(5):801-807.
[7] 王文鵬. 基于雙目立體視覺的系統(tǒng)標(biāo)定技術(shù)研究[D]. 咸陽:西北農(nóng)林科技大學(xué),2018.
[8] 宋岳秦,盧軍,孫姝麗. 基于HALCON的機器人視覺系統(tǒng)標(biāo)定方法研究[J]. 南方農(nóng)機,2018,49(20):47-49.
[9] 袁仁輝. 基于機械手的雙目視覺定位抓取研究[D]. 秦皇島:燕山大學(xué),2016.