汪凌陽,朱璠婷,蔣文萍
(上海應(yīng)用技術(shù)大學(xué)電氣與電子工程學(xué)院,上海 201418)
近年來,在國(guó)內(nèi)外的工業(yè)機(jī)器人研究中,機(jī)器視覺檢測(cè)[1]成為工業(yè)機(jī)器人智能制造發(fā)展的潮流。在機(jī)器視覺檢測(cè)領(lǐng)域,非接觸的視覺測(cè)量方法相較于人工測(cè)量在速度和精度上都具有優(yōu)勢(shì),對(duì)工業(yè)機(jī)器人的工作效率和產(chǎn)能效率有極大的提高。
本文所研究的測(cè)距工作是指測(cè)量目標(biāo)工件和攝像頭之間的距離。在工業(yè)機(jī)器人的實(shí)際測(cè)距研究[2-4]中,激光測(cè)距、超聲波測(cè)距和視覺測(cè)距是最為廣泛的研究方向。激光測(cè)距和超聲波測(cè)距由于需要借助激光測(cè)距儀和超聲波傳感器進(jìn)行測(cè)距,如王子雨[5]提出一種結(jié)合立體視覺和激光測(cè)距的姿態(tài)識(shí)別方法;謝永超等[6]提出1種基于超聲波傳感器模塊的測(cè)距方法。但成本較高,不利于在實(shí)際工業(yè)生產(chǎn)中推廣應(yīng)用。視覺測(cè)距指的是基于攝像頭獲取的二維圖像應(yīng)用視覺算法重建目標(biāo)的三維信息從而進(jìn)行測(cè)距工作。單雙目測(cè)距和結(jié)構(gòu)光測(cè)距是視覺測(cè)距中最主要的兩種方式。結(jié)構(gòu)光測(cè)距[6]屬于主動(dòng)式三維測(cè)量,其通過結(jié)構(gòu)光投射至物體上測(cè)量物體的尺寸參數(shù)獲取三維信息,其測(cè)量效果收到環(huán)境和物體性質(zhì)的影響。單雙目測(cè)距[7-10]屬于被動(dòng)式三維測(cè)量,從二維平面信息獲取三維信息,其可有效降低成本并且避免受到測(cè)量環(huán)境和物體性質(zhì)的影響。
本文考慮實(shí)際工作應(yīng)用效能和資源成本,提出一種基于機(jī)器視覺的機(jī)械臂雙目測(cè)距系統(tǒng)。此系統(tǒng)是通過雙目CMOS相機(jī)拍攝目標(biāo)工件得到二維圖像,并進(jìn)行相應(yīng)的圖像處理和立體匹配得出圖像的視差圖,從而重建三維信息得到點(diǎn)云,根據(jù)關(guān)鍵點(diǎn)的三維信息得出目標(biāo)工件和攝像頭的距離。通過此計(jì)算結(jié)果,配合機(jī)械臂抓取實(shí)現(xiàn)一系列的功能。此系統(tǒng)能夠快速完成測(cè)距工件,并且在不依托任何附加光源的情況下保證精度和準(zhǔn)度。
機(jī)械臂雙目測(cè)距系統(tǒng),即在自然光的工作環(huán)境下,采用2個(gè)固定的CMOS攝像頭對(duì)目標(biāo)工件進(jìn)行圖像采集。而后將二維圖像結(jié)合機(jī)器視覺的圖像處理算法得到目標(biāo)工件的三維信息[11],將此三維信息傳輸至機(jī)械臂控制機(jī)構(gòu)做出相應(yīng)指令。此系統(tǒng)共分為4個(gè)步驟,分別是雙目標(biāo)定、立體校正、立體匹配、測(cè)距計(jì)算。機(jī)械臂雙目測(cè)距系統(tǒng)流程圖如圖1所示。
圖1 機(jī)械臂雙目測(cè)距系統(tǒng)流程圖Fig.1 Flowchart of the manipulator binocular distance measurement system
此系統(tǒng)采用三大坐標(biāo)系分別是世界坐標(biāo)系、相機(jī)坐標(biāo)系和圖像坐標(biāo)系。目標(biāo)工件的中心在世界坐標(biāo)系的坐標(biāo)為(x w,y w,z w),在相機(jī)坐標(biāo)系中的坐標(biāo)為(x c,y c,z c),在圖像坐標(biāo)系中的坐標(biāo)為(x,y)。世界坐標(biāo)系可通過剛體變換轉(zhuǎn)化成相機(jī)坐標(biāo)系,相機(jī)坐標(biāo)系可通過透視投影轉(zhuǎn)換成圖像坐標(biāo)系[12-14]。
剛體變換的轉(zhuǎn)換關(guān)系的齊次表達(dá)式可表示為:
式中,R為旋轉(zhuǎn)矩陣,表示繞坐標(biāo)系三大軸的旋轉(zhuǎn)角度,也是右相機(jī)相對(duì)左相機(jī)的旋轉(zhuǎn)矩陣。R可劃分為雙目相機(jī)的合成矩陣R1,R2,用于下一步的立體校正。T是平移矩陣,表示在坐標(biāo)系三大軸平移的列向量。R和T與相機(jī)無關(guān),為相機(jī)的外參數(shù)。0T3表示[ 0,0,0]T。
P點(diǎn)在二維平面的成像根據(jù)三角形相似原理可知:
透視投影的轉(zhuǎn)換關(guān)系的其次表達(dá)式可表示為:
聯(lián)合式(1)、(3)可知:
式中:P1表示內(nèi)參數(shù);P2表示上述提到的外參數(shù)。P1包括相機(jī)的鏡頭焦距f和感光CMOS相關(guān)元件的中心位置。此外,相機(jī)的內(nèi)參數(shù)還包括畸變系數(shù),由于相機(jī)成像存在著徑向和切向畸變[15],故此系統(tǒng)也應(yīng)該考慮到相機(jī)的畸變系數(shù)。其中徑向畸變常采用泰勒級(jí)數(shù)展開來描述,取前三階次的系數(shù)k1、k2、k3,切向畸變?nèi)∏皟呻A次的系數(shù)p1、p2[16]。令P點(diǎn)在圖像坐標(biāo)系中畸變矯正后的坐標(biāo)為(x1,y),則畸變矯正的轉(zhuǎn)換關(guān)系為:
本系統(tǒng)的雙目測(cè)距是根據(jù)在立體匹配步驟后得到視差圖通過三角測(cè)量[17]的數(shù)學(xué)模型計(jì)算得出的。
如圖2所示,在本研究中,雙目攝像頭在統(tǒng)一水平線上,Ol和Or分別為左攝像頭和右攝像頭的光心,兩者距離即為基線。P點(diǎn)是目標(biāo)工件的中心,A1、A2分別為左、右攝像機(jī)的像平面。A1和A2經(jīng)過旋轉(zhuǎn),至雙攝像頭的前方。Pl和Pr為目標(biāo)工件中心點(diǎn)P在A1和A2左右攝像機(jī)像平面的投影,Pl和Pr的距離即為視差。以左右相機(jī)的光心在像平面的投影Ol
圖2 機(jī)械臂雙目測(cè)距系統(tǒng)Fig.2 Manipulator binocular distancemeasurement system
′和Or′為像平面的中心,則Pl的坐標(biāo)為(xl,yl),Pr的坐標(biāo)為(xr,yr)。f是左右攝像機(jī)的焦距,由于雙目攝像機(jī)的攝像頭的規(guī)格參數(shù)是一致的,故焦距是相同的。Z是P點(diǎn)到攝像頭水平面的距離,即為深度信息[18],計(jì)算深度即是本文所探討的雙目測(cè)距計(jì)算。
結(jié)合相似三角形原理,可以得出:
由此可以得出,要獲取距離Z信息,需要求得視差d,而求取視差的過程即是一維搜索的過程。其中一維搜索獲取視差即是立體匹配的關(guān)鍵步驟。
雙目標(biāo)定是求解三維世界位姿關(guān)系和二維圖像坐標(biāo)的對(duì)應(yīng)關(guān)系的過程[19]。雙目標(biāo)定主要計(jì)算的是雙目工業(yè)相機(jī)的畸變系數(shù)和4個(gè)內(nèi)參數(shù)以及旋轉(zhuǎn)矩陣R和平移矩陣T,2個(gè)外部參數(shù)。其中所求解的內(nèi)外參數(shù),其是立體校正和立體匹配所采用的關(guān)鍵參數(shù)。
此系統(tǒng)使用的是帶有500萬像素鏡頭的CMOS彩色工業(yè)相機(jī),其采集的圖像分辨率為640×480。標(biāo)定所采用的標(biāo)靶為黑白正方形棋盤格,角點(diǎn)數(shù)量規(guī)格6×8,棋盤格大小為25 mm×25 mm。由于相機(jī)內(nèi)外參數(shù)的求解至少需要3對(duì)及以上的圖像對(duì),并且在標(biāo)定過程中容易存在重投影誤差較大的圖像,此類圖像影響標(biāo)定后內(nèi)外參數(shù)的準(zhǔn)確度。因此本文共采集了14對(duì)棋盤格圖像對(duì),有效保證雙目標(biāo)定的精度。
本文采用Matlab的StereoCameraCalibrator工具箱為雙目相機(jī)標(biāo)定工具箱。打開MATLB軟件選擇應(yīng)用程序中的StereoCameraCalibrator,添加圖像,選定3個(gè)徑向畸變參數(shù)、2個(gè)切向畸變參數(shù),其中左相機(jī)用Camera1表示,右相機(jī)用Camera2表示,進(jìn)行標(biāo)定。
采用Matlab標(biāo)定后,誤差如圖3所示。圖3展示了每個(gè)圖像對(duì)的重投影誤差,得知這14對(duì)的重投影誤差平均值在0.13piexl。
圖3 圖像對(duì)的重投影誤差Fig.3 Reprojection error of image pairs
并且經(jīng)過標(biāo)定后通過工具箱得出雙目CMOS相機(jī)的相對(duì)位置關(guān)系,如圖4所示。
圖4 雙目CMOS相機(jī)的相對(duì)位置Fig. 4 Relative position of binocular CMOScameras
最后,可以求得相機(jī)的內(nèi)、外參數(shù)和左、右相機(jī)的內(nèi)外參數(shù)
式中,Dl和Dr為左右2個(gè)相機(jī)的畸變系數(shù)。
在雙目標(biāo)定之后,需要將采集的圖像對(duì)進(jìn)行立體校正。由于本文的機(jī)械臂雙目測(cè)距系統(tǒng)中的理想情況是雙目攝像機(jī)的投影面是平行的,并且光軸與像平面垂直。在實(shí)際實(shí)驗(yàn)過程中,也盡量保證鏡頭安裝在同一水平線上。在采集圖像對(duì)根據(jù)上述求得畸變參數(shù)進(jìn)行畸變校正后可以進(jìn)行立體校正,以保證2幅圖像可以嚴(yán)格對(duì)應(yīng)。立體校正可以有效減少立體匹配的搜索量[20]。
本文采用的是Bouguet立體校正法,其校正原理是在校正過程中旋轉(zhuǎn)一半的旋轉(zhuǎn)合成矩陣,并建立行對(duì)準(zhǔn)轉(zhuǎn)化矩陣,從而使得重投影畸變降至最小,保證2個(gè)像平面在平行平面上。此處采用計(jì)算機(jī)視覺開源庫(kù)OpenCV進(jìn)行實(shí)驗(yàn)過程的立體校正。
首先采用stereoRectify函數(shù)進(jìn)行旋轉(zhuǎn)矩陣和投影矩陣的計(jì)算,再借助initUndistortRectifyMap函數(shù)進(jìn)行計(jì)算畸變矯正和校正查找映射變換表,其可將原始采集的圖像對(duì)和校正后的圖像對(duì)上的點(diǎn)對(duì)應(yīng)。最后載入驗(yàn)證圖像對(duì)進(jìn)行立體校正的圖像對(duì)的檢驗(yàn)。
在完成立體校正后,可以保證圖像對(duì)的行對(duì)準(zhǔn),從而使得立體匹配的匹配點(diǎn)搜索工作從二維平面轉(zhuǎn)化至一維搜索。
立體匹配主要是在左相機(jī)所成的圖像中以任意1個(gè)像素點(diǎn)為參考點(diǎn),在右相機(jī)中所成的圖像中找尋與之相匹配的參考像素點(diǎn),通過這一過程就可以獲得相機(jī)的視差[21],這一過程在此系統(tǒng)測(cè)距的過程中非常重要,為后續(xù)的相機(jī)的深度信息的準(zhǔn)確性埋下伏筆。
立體匹配通常具有匹配代價(jià)計(jì)算、代價(jià)聚合、視差計(jì)算和視差細(xì)化4個(gè)步驟[22]。其中匹配代價(jià)計(jì)算指的是度量像素匹配的相似性,其通常計(jì)算的是局部定義下2個(gè)相鄰像素的匹配代價(jià)。而代價(jià)聚合可以在全局范圍下根據(jù)匹配代價(jià)將像素間建立聯(lián)系,可以有效地降低噪聲帶來的代價(jià)干擾。在全局優(yōu)化的代價(jià)聚合后,各像素將進(jìn)行匹配代價(jià)重新評(píng)估得到代價(jià)矩陣。根據(jù)代價(jià)矩陣可以計(jì)算各像素的視差值,最后進(jìn)行視差細(xì)化,降低視差誤差。根據(jù)上述步驟,立體匹配算法通常分為全局匹配算法和局部匹配算法[23]。
本文采用的是半全局的立體匹配算法SGBM。它具有較高的時(shí)效性[24],主要是利用互信息之間的像素進(jìn)行匹配,簡(jiǎn)化了全局算法的求解過程,主要步驟是求取圖像中的像素點(diǎn)8個(gè)方向的能量代價(jià)以及函數(shù),當(dāng)?shù)玫阶钚≈禃r(shí),代表著該圖像中的像素點(diǎn)作為匹配點(diǎn)可以得到最佳的視差值。該算法中的代價(jià)能量函數(shù)用公式表達(dá)為:
式中:E(D)表示的是能量函數(shù);C(p,Dp)表示在圖像中任意一個(gè)像素點(diǎn)所對(duì)應(yīng)的代價(jià)函數(shù);Np代表像素點(diǎn)的集合;T[|Dp-Dq|]=1與T[|Dp-Dq|]>1代表著各像素點(diǎn)之間的1個(gè)約束函數(shù);T[|Dp-Dq|]=1表示p區(qū)域內(nèi)的視差值與q區(qū)域內(nèi)的差值等于1,此時(shí)P1作為懲罰系數(shù)將會(huì)受懲罰,T[|Dp-Dq|]>1表示p區(qū)域內(nèi)的視差值與q區(qū)域內(nèi)的差值大于1,而這時(shí)是P2作為懲罰系數(shù)懲罰[25]。
根據(jù)上述實(shí)驗(yàn)步驟對(duì)此系統(tǒng)進(jìn)行測(cè)距驗(yàn)證。取工件正面的中心點(diǎn)作為目標(biāo)工件中心點(diǎn),不斷調(diào)整目標(biāo)工件和雙目工業(yè)相機(jī)的距離,進(jìn)行測(cè)距實(shí)驗(yàn),測(cè)距結(jié)果如表1所示。
由表1可見,此機(jī)械臂雙目視覺測(cè)距系統(tǒng)的測(cè)距平均誤差在0.3%以下,隨著矩陣增加,測(cè)距誤差逐漸升高。此誤差主要來源于雙目標(biāo)定環(huán)節(jié)中的內(nèi)外參數(shù)誤差。
表1 機(jī)械臂雙目測(cè)距系統(tǒng)測(cè)量結(jié)果Tab.1 The measurement result of manipulator binocular distance measurement system
本文主要研究了基于機(jī)器視覺的機(jī)械臂雙目測(cè)距工作,其中包括對(duì)雙目工業(yè)相機(jī)進(jìn)行雙目標(biāo)定得到其內(nèi)外參數(shù),并根據(jù)內(nèi)外參數(shù)進(jìn)行立體校正和立體匹配得到視差圖進(jìn)行雙目測(cè)距工作。雙目測(cè)距可以有效地幫助機(jī)械臂控制系統(tǒng)獲取目標(biāo)工件的三維信息并實(shí)現(xiàn)定位抓取等一系列通過。從實(shí)驗(yàn)結(jié)果上看,本系統(tǒng)具有一定標(biāo)定上導(dǎo)致的測(cè)量誤差但是仍保有高精度的測(cè)量精度,具有一定的可行性和實(shí)踐價(jià)值。