李錦慧 吳烽云 鄒湘軍 司徒偉明 陳明猷
關(guān)鍵詞: 圖像預(yù)處理; 三維點(diǎn)云; 雙目視覺(jué); 半全局立體匹配; 點(diǎn)云配準(zhǔn); 復(fù)雜形狀目標(biāo)
中圖分類(lèi)號(hào): TN911?34; TP391 ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2019)04?0112?05
Complete target point cloud acquisition method based on binocular vision
LI Jinhui1, WU Fengyun2, ZOU Xiangjun1, SITU Weiming1, CHEN Mingyou1
(1. School of Engineering, South China Agricultural University, Guangzhou 510642, China;
2. Guangzhou Institute of Energy Conversion, Chinese Academy of Sciences, Guangzhou 510642, China)
Abstract: The key technology and difficulty lie in the current intelligent detection and robot recognition and positioning are quick acquisition of the complete 3D point cloud of the complex shape target, and reconstruction of the 3D model of the target. Therefore, a method of image preprocessing and optimization of semi?global stereo matching process is proposed based on the stereoscopic vision. In the method, the image preprocessing algorithm is designed, which is cooperatively used with the semi?global stereo matching and point cloud registration algorithm, so as to obtain the complete 3D point clouds of complex shaped targets. A hardware experimental platform and a rotating worktable are set up to obtain the left and right image pairs of the target under multiple angles. A point cloud acquisition system based on the binocular vision is developed on this platform. The system was tested taking the complex shaped gear as the experimental object. The test results show that the object generated by using this method has a good 3D point cloud effect, the method can provide methodology and theories for 3D reconstruction of the target, and has a strong practicability, and the system has a fast operation speed and feasible algorithm processing process.
Keywords: image preprocessing; 3D point cloud; binocular vision; semi?global stereo matching; point cloud registration; complex shaped target
三維點(diǎn)云是用來(lái)描述物體三維信息數(shù)據(jù)點(diǎn)的集合。其在目標(biāo)識(shí)別、三維重構(gòu)、地理信息系統(tǒng)(GIS)構(gòu)建、醫(yī)療輔助、古文物修復(fù)等各領(lǐng)域都有廣泛應(yīng)用[1?5]。如何快速獲取復(fù)雜形狀目標(biāo)的完整三維點(diǎn)云,重構(gòu)目標(biāo)的三維模型是目前在線智能檢測(cè)和智能機(jī)器人識(shí)別與定位的關(guān)鍵技術(shù)和難點(diǎn)。獲取三維點(diǎn)云的方式主要可分為兩類(lèi)[6]: 通過(guò)一些機(jī)械接觸來(lái)進(jìn)行獲取的接觸式測(cè)量(例如:三坐標(biāo)測(cè)量機(jī)測(cè)量);不需要通過(guò)機(jī)械接觸來(lái)獲取的非接觸式測(cè)量(例如:基于機(jī)器視覺(jué)技術(shù)的測(cè)量[7?11])。其中三維掃描是獲取三維點(diǎn)云的有效手段,現(xiàn)國(guó)內(nèi)使用的高精度掃描儀多依賴于進(jìn)口,例如激光掃描,精度高的同時(shí)成本也很高。工廠中基于視覺(jué)的掃描多采用對(duì)物體表面進(jìn)行噴涂或進(jìn)行特定光照射的工作模式?;诖?,本文提出一種基于雙目視覺(jué)獲取復(fù)雜形狀目標(biāo)三維點(diǎn)云的方法,通過(guò)算法對(duì)雙目視覺(jué)系統(tǒng)采集的物體圖像進(jìn)行處理,然后使用立體匹配算法計(jì)算視差,并將視差與重投影矩陣運(yùn)算得到目標(biāo)單一視角下的三維點(diǎn)云。同時(shí),由于雙目視覺(jué)檢測(cè)范圍有限,為了節(jié)省視覺(jué)硬件成本,設(shè)計(jì)了旋轉(zhuǎn)平臺(tái)使待檢測(cè)目標(biāo)旋轉(zhuǎn)一定的角度,對(duì)待配準(zhǔn)點(diǎn)云進(jìn)行特征描述與對(duì)應(yīng)關(guān)系估計(jì)后,使用迭代最近點(diǎn)算法得到目標(biāo)的完整點(diǎn)云。這種方法為獲取復(fù)雜目標(biāo)物體的完整三維點(diǎn)云提供了一種低成本、高效率的有效途徑。
本方法獲取目標(biāo)物體的三維點(diǎn)云要經(jīng)過(guò)如圖1所示的處理過(guò)程,具體步驟如下:
1) 對(duì)雙目相機(jī)采集的左右圖像分別進(jìn)行預(yù)處理,將目標(biāo)物體從圖像中分割出來(lái);
2) 自動(dòng)截取目標(biāo)所在的矩形區(qū)域,并對(duì)其進(jìn)行立體匹配得到被測(cè)物體視差;
3) 將處理后的視差與雙目標(biāo)定得到的重投影矩陣進(jìn)行運(yùn)算,得到物體某一角度下的三維點(diǎn)云;
4) 通過(guò)對(duì)不同角度下經(jīng)步驟1)~步驟3)得到的點(diǎn)云進(jìn)行配準(zhǔn)獲得目標(biāo)物體完整的三維點(diǎn)云。
1.1 ?圖像預(yù)處理
圖像分割是機(jī)器視覺(jué)圖像處理中的一個(gè)基本問(wèn)題,是圖像預(yù)處理的方法之一,目的是把感興趣的目標(biāo)區(qū)域從圖像背景中提取出來(lái)[12]。本文使用最大類(lèi)間方差法(OTSU)對(duì)左右圖像的灰度圖進(jìn)行閾值分割二值化處理,然后分別與原灰度圖像進(jìn)行疊加,得到目標(biāo)圖像。運(yùn)算過(guò)程如下:
[Rx,y=Bx,y+Ix,y] (1)
式中:I表示原圖像灰度圖;B表示I經(jīng)OTSU閾值分割后的圖像;R表示目標(biāo)圖像;[Bx,y],[Ix,y],[Rx,y]分別表示各圖像任意點(diǎn)[x,y]的灰度值。
圖像灰度值取值范圍為0~255,而在式(1)中,[Rx,y]的運(yùn)算值可能存在大于255的情況,因此需要對(duì)[Rx,y]做進(jìn)一步處理,如下:
[Rx,y=255 , ? ? ? ?Rx,y≥255Rx,y , Rx,y<255] ? (2)
預(yù)處理后的目標(biāo)圖像R變成了原灰度圖像的目標(biāo)區(qū)域,背景為純白色的圖像,目標(biāo)物體被分割出來(lái)。分割效果如圖2所示。
由于圖像的大小是影響立體匹配消耗時(shí)間的主要因素。本文獲取的圖像大小為1 600×1 200,直接進(jìn)行立體匹配將耗時(shí)過(guò)長(zhǎng)。為了提高效率,在不影響目標(biāo)區(qū)域的立體匹配結(jié)果的前提下,本文設(shè)計(jì)算法對(duì)圖像進(jìn)行匹配前處理:在左右目標(biāo)圖像中分別自動(dòng)截取包含目標(biāo)物體的矩形區(qū)域圖像以減少匹配的計(jì)算量。具體過(guò)程如下:對(duì)經(jīng)圖像預(yù)處理后的左右圖像R使用最小矩形自動(dòng)包圍目標(biāo)物體的算法,用Rect_L(Xl,Yl,Wl,Hl)表示左圖像最小矩形框,用Rect_R(Xr,Yr,Wr,Hr)表示右圖像最小矩形框。其中X,Y表示矩形框左上角在圖像中的橫、縱坐標(biāo),W和H表示矩形框的寬度和高度。
立體匹配時(shí),待配準(zhǔn)圖像(右圖像)的有效匹配區(qū)域從第numDisparites列開(kāi)始,所以待匹配圖像目標(biāo)物體左側(cè)需空出numDisparites列。用Rect_ROI(Xroi,Yroi,Wroi, Hroi)表示算法自動(dòng)截取的區(qū)域,各變量的數(shù)值計(jì)算如下:
[Xroi=Xr-numDisparites] ?(3)
[Yroi=Yl] ?(4)
[Wroi=Xl+Wl-Xroi] (5)
[Hroi=Hl] ? (6)
自動(dòng)截取下來(lái)的左右圖像背景區(qū)域都是純白色,此時(shí)若直接進(jìn)行立體匹配會(huì)產(chǎn)生較大誤匹配,且大部分是背景與背景的誤匹配(純白背景無(wú)紋理特征)以及背景與目標(biāo)物體的誤匹配,后續(xù)得到的三維點(diǎn)云也會(huì)存在許多噪點(diǎn)。因此需要對(duì)截取的左右圖像進(jìn)行算法處理:將其中一張圖像背景灰度值為255的像素點(diǎn)全賦值為0(背景由白變黑),以此減小背景之間的誤匹配。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)僅改變右圖像背景得到較少的誤匹配,得到的圖像如圖3所示。
1.2 ?立體匹配及視差處理
本文使用OpenCV庫(kù)中的半全局塊匹配(Semi?global block matching,SGBM)算法對(duì)經(jīng)過(guò)預(yù)處理的左右圖像進(jìn)行立體匹配得到視差。經(jīng)SGBM立體匹配后的視差圖如圖4a)所示,圖中灰度越大(顏色越白),表示視差值越大,該點(diǎn)距離相機(jī)越近,從圖中可以看到因左右相機(jī)視角不同導(dǎo)致邊緣處產(chǎn)生誤匹配,使目標(biāo)物體部分邊緣出現(xiàn)灰度突變嚴(yán)重的情況。
因?yàn)樯傻囊暡钍且宰髨D像為基礎(chǔ)獲得的,為消除邊緣處部分誤匹配,以左圖像為基礎(chǔ)修改視差矩陣,修改視差值:
[Dx,y=0 , ? ? ? ? ? ? ?Lx,y=255Dx,y , Lx,y≠255] ? ?(7)
式中:[Lx,y]表示左圖像任意點(diǎn)[x,y]的灰度值;[Dx,y]表示視差矩陣任意點(diǎn)[x,y]的視差值。從圖4b)中可以發(fā)現(xiàn)處理后得到的視差圖灰度突變的情況減少了,為后續(xù)生成低噪點(diǎn)三維點(diǎn)云打下很好的基礎(chǔ)。
1.3 ?單一角度下目標(biāo)三維點(diǎn)云獲取
三維點(diǎn)云中各點(diǎn)的坐標(biāo)是通過(guò)將立體匹配得到的視差與雙目標(biāo)定得到的重投影矩陣進(jìn)行運(yùn)算所得。本文所采用的重投影矩陣[13]為:
[Q=100-cx010-cy000f00-1Tx0] ? ? ? ? ?(8)
式中:cx表示主點(diǎn)在左圖像中的x坐標(biāo);cy表示主點(diǎn)在左圖像中的y坐標(biāo);f表示立體標(biāo)定后計(jì)算得到的焦距;Tx表示兩相機(jī)的基線距離。給定一個(gè)二維齊次點(diǎn)(x,y)和其關(guān)聯(lián)的視差d,可以將該點(diǎn)投影到三維中,如下:
[Qxyd1=XYZW] ? ? ? ? ? ? ?(9)
該點(diǎn)的三維坐標(biāo)為([XW,YW,ZW])。
本文通過(guò)自動(dòng)截取圖像得到的視差矩陣,不能直接用來(lái)計(jì)算三維坐標(biāo)。因此要先將視差矩陣還原到與原圖像一樣大小的矩陣的對(duì)應(yīng)位置上再進(jìn)行運(yùn)算方可得到圖像所有點(diǎn)的三維坐標(biāo)。
本文對(duì)各角度下采集到的圖像分別進(jìn)行單一角度下的三維點(diǎn)云獲取,設(shè)計(jì)不對(duì)背景進(jìn)行預(yù)處理和視差做后處理的對(duì)比試驗(yàn),生成的點(diǎn)云圖效果對(duì)比如圖5所示。因?yàn)槠邢?,同一角度下任意選取2組效果圖作為對(duì)比,由此可得出結(jié)論:直接對(duì)原圖進(jìn)行立體匹配,不對(duì)視差進(jìn)行處理,得到的點(diǎn)云有很多噪點(diǎn),如圖5a)所示;而使用本文方法得到的三維點(diǎn)云噪點(diǎn)較少,目標(biāo)物體表面的點(diǎn)云分布均勻,無(wú)明顯的點(diǎn)云缺失,質(zhì)量較高,如圖5b)所示。說(shuō)明該方法得到的點(diǎn)云可使用性較高。
1.4 ?目標(biāo)完整三維點(diǎn)云獲取
為了得到目標(biāo)完整的三維點(diǎn)云,需要對(duì)不同角度獲取的點(diǎn)云進(jìn)行配準(zhǔn),本文采用的是算法過(guò)程簡(jiǎn)單并且配準(zhǔn)精度較高的迭代最近點(diǎn)算法(Iterative Closest Point,ICP)[14]。ICP算法完成配準(zhǔn)的流程如下:
1) 讀取模型點(diǎn)云X和目標(biāo)點(diǎn)P,點(diǎn)集中點(diǎn)的個(gè)數(shù)分別為NX,NP;
2) 在模型點(diǎn)云X中尋找與目標(biāo)點(diǎn)云P中每一點(diǎn)pi最近的對(duì)應(yīng)點(diǎn)xi,并組成新的點(diǎn)集[X],其中[X∈X];
3) 分別計(jì)算模型點(diǎn)云子集[X]、目標(biāo)點(diǎn)云P的重心μP,μX,兩點(diǎn)云的協(xié)方差矩陣[CovXP];
4) 由點(diǎn)集[X],P的協(xié)方差矩陣[CovXP]構(gòu)造4×4的對(duì)稱矩陣[Q(CovXP)];
5) 計(jì)算矩陣[Q(CovXP)]的特征向量,其中最大特征值所對(duì)應(yīng)的特征向量即為用單位四元數(shù)表示的最優(yōu)旋轉(zhuǎn)向量[qR],進(jìn)而計(jì)算最優(yōu)平移向量[qT];
6) 將流程5)中的剛體變換矩陣[qR],[qT]作用于目標(biāo)點(diǎn)云[X]得到變換后的新點(diǎn)云集和[Xk],計(jì)算新位置的目標(biāo)點(diǎn)云[Xk]與模型點(diǎn)云[P]的平均歐氏距離平方和[dk];
7) 若目標(biāo)點(diǎn)云[Xk]與模型點(diǎn)云[P]的差異[dk]的變化小于給定閾值[τ],即[dk]<[τ],終止迭代,否則返回流程2),直至滿足[dk]<[τ]。
在對(duì)點(diǎn)云進(jìn)行ICP兩兩配準(zhǔn)之前最重要的是提取點(diǎn)云關(guān)鍵點(diǎn)和對(duì)關(guān)鍵點(diǎn)進(jìn)行特征描述,然后在兩片點(diǎn)云中尋找相似特征,確定重疊部分并估計(jì)對(duì)應(yīng)點(diǎn)對(duì)。本文對(duì)待配準(zhǔn)點(diǎn)云使用PCL提供的有關(guān)點(diǎn)特征直方圖(PFH)描述子的算法[15]進(jìn)行點(diǎn)云特征描述與提取,使用kd?tree最近鄰搜索法進(jìn)行對(duì)應(yīng)估計(jì)。
本文對(duì)特征描述與對(duì)應(yīng)估計(jì)得到的點(diǎn)集對(duì)使用ICP方法計(jì)算兩個(gè)點(diǎn)集之間的旋轉(zhuǎn)平移來(lái)對(duì)原點(diǎn)云進(jìn)行拼接,將拼接好的點(diǎn)云作為新的點(diǎn)云,與下一片點(diǎn)云使用同樣的方法進(jìn)行拼接,最后獲得目標(biāo)物體完整的三維點(diǎn)云。完成ICP配準(zhǔn)后獲取的物體完整三維點(diǎn)云經(jīng)點(diǎn)云下采樣后的效果如圖6所示。
本文搭建的實(shí)驗(yàn)平臺(tái)如圖7所示。該平臺(tái)主要包括兩個(gè)高分辨率的CCD工業(yè)相機(jī)(分辨率:1 600×1 200,鏡頭焦距為8 mm)、臺(tái)式電腦(嵌入以Visual Studio 2013為編程環(huán)境的軟件系統(tǒng))、供圖像采集的目標(biāo)物體、承載目標(biāo)的可旋轉(zhuǎn)轉(zhuǎn)臺(tái)、背景擋板。本文設(shè)計(jì)的算法被開(kāi)發(fā)成完整的軟件系統(tǒng),構(gòu)建了人機(jī)交互界面將算法封裝,系統(tǒng)界面如圖8所示。
本文以有復(fù)雜形狀的機(jī)械零件齒輪為例,通過(guò)旋轉(zhuǎn)轉(zhuǎn)臺(tái)采集目標(biāo)物面對(duì)相機(jī)0°~360°以30°為角度間隔的12對(duì)圖像對(duì),通過(guò)本文算法處理獲得的點(diǎn)云效果良好,具有實(shí)用性。隨著角度的增多,獲取點(diǎn)云時(shí)間將增加,因此可根據(jù)實(shí)際中對(duì)時(shí)間和點(diǎn)云質(zhì)量的不同要求采集多角度圖像對(duì)。
三維點(diǎn)云的獲取在各領(lǐng)域都有比較深刻的意義:以工業(yè)生產(chǎn)中視覺(jué)機(jī)器人抓取工件為例,工件的三維點(diǎn)云數(shù)據(jù)為獲得工件準(zhǔn)確的三維位置以及姿態(tài),并指導(dǎo)機(jī)器人抓取工件提供依據(jù);該技術(shù)在智能檢測(cè)和逆向工程中也是重點(diǎn)和難點(diǎn)。本文從搭建平臺(tái)到可實(shí)現(xiàn)算法的研究,實(shí)驗(yàn)證明本文方法能夠較快獲取復(fù)雜形狀目標(biāo)的完整三維點(diǎn)云,為三維定位、姿態(tài)估計(jì)以及三維重構(gòu)的研究打下良好基礎(chǔ)。本文自主搭建的實(shí)驗(yàn)平臺(tái)可采集的圖像范圍有限,暫時(shí)只適用于小目標(biāo)作為對(duì)象的情況,但目標(biāo)形狀復(fù)雜,有一定代表性和拓展性,可參考其原理擴(kuò)大搭建平臺(tái)或在生產(chǎn)線上使用。如何對(duì)獲取的三維點(diǎn)云進(jìn)行進(jìn)一步有效處理是下一步研究工作的重點(diǎn)。
注:本文通訊作者為鄒湘軍。
參考文獻(xiàn)
[1] 汪漢云.高分辨率三維點(diǎn)云目標(biāo)識(shí)別技術(shù)研究[D].長(zhǎng)沙:國(guó)防科技大學(xué),2015.
WANG Hanyun. Research on object detection for high resolution 3D point cloud [D]. Changsha: National University of Defense Technology, 2015.
[2] MAI C Y, ZHENG L H, LI M Z. Rapid 3D reconstruction of fruit tree based on point cloud registration [J]. Transactions of the Chinese Society of Agricultural Engineering, 2015, 31(S2): 137?144.
[3] HOSSEINYALAMDARY S, BALAZADEGAN Y, TOTH C K. Tracking 3D moving objects based on GPS/IMU navigation solution, laser scanner point cloud and GIS data [J]. International journal of geo?information, 2015, 4(3): 1301?1316.
[4] 賈高杰,邱崧,蔡茗名,等.三維點(diǎn)云重構(gòu)和體顯示在醫(yī)學(xué)輔助診斷中的應(yīng)用[J].中國(guó)醫(yī)學(xué)物理學(xué)雜志,2016,33(6):593?598.
JIA Gaojie, QIU Song, CAI Mingming, et al. Application of three?dimensional point cloud reconstruction and swept volume display in medical assistant diagnosis [J]. Chinese journal of medical physics, 2016, 33(6): 593?598.
[5] 李文怡,張蜓,楊潔.三維掃描及快速成型技術(shù)在文物修復(fù)中的應(yīng)用[J].文博,2012(6):78?81.
LI Wenyi, ZHANG Ting, YANG Jie. Application of three?dimensional scanning and rapid prototyping in the restoration of cultural relics [J]. Relics and museology, 2012(6): 78?81.
[6] 周勇飛,徐昱琳,呂曉夢(mèng),等.基于雙目的三維點(diǎn)云數(shù)據(jù)的獲取與預(yù)處理[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(3):22?25.
ZHOU Yongfei, XU Yulin, L? Xiaomeng, et al. Three?dimensional point cloud data acquisition and pre?processing based on binocular [J]. Computer technology and development, 2014, 24(3): 22?25.
[7] KUMAR A N, PHEIFFER T S, SIMPSON A L, et al. Phantom?based comparison of the accuracy of point clouds extracted from stereo cameras and laser range scanner [J]. Proceedings of the SPIE, 2013, 8671(2): 25?37.
[8] ZOU X J, ZOU H X, LU J. Virtual manipulator?based binocular stereo vision positioning system and errors modeling [J]. Machine vision and applications, 2012, 23(1): 43?63.
[9] LUO L, TANG Y, ZOU X, et al. Vision?based extraction of spatial information in grape clusters for harvesting robots [J]. Biosystems engineering, 2016, 151: 90?104.
[10] 葉敏,鄒湘軍,羅陸鋒,等.荔枝采摘機(jī)器人雙目視覺(jué)的動(dòng)態(tài)定位誤差分析[J].農(nóng)業(yè)工程學(xué)報(bào),2016,32(5):50?56.
YE Min, ZOU Xiangjun, LUO Lufeng, et al. Error analysis of dynamic localization tests based on binocular stereo vision on litchi harvesting manipulator [J]. Transactions of the Chinese Society of Agricultural Engineering, 2016, 32(5): 50?56.
[11] WANG C, ZOU X, TANG Y, et al. Localisation of litchi in an unstructured environment using binocular stereo vision [J]. Biosystems engineering, 2016, 145: 39?51.
[12] 李洪艷,曹建榮,談文婷,等.圖像分割技術(shù)綜述[J].山東建筑大學(xué)學(xué)報(bào),2010,25(1):85?89.
LI Hongyan, CAO Jianrong, TAN Wenting, et al. Review of image segmentation technology [J]. Journal of Shandong Jianzhu University, 2010, 25(1): 85?89.
[13] 布拉德斯基,克勒.學(xué)習(xí)OpenCV[M].于仕琪,劉瑞禎,譯.北京:清華大學(xué)出版社,2009.
BRADSKI G, KAEHLER A. Learning OpenCV [M]. YU Shiqi, LIU Ruizhen, translation. Beijing: Tsinghua University Press, 2009.
[14] 王欣,張明明,于曉,等.應(yīng)用改進(jìn)迭代最近點(diǎn)方法的點(diǎn)云數(shù)據(jù)配準(zhǔn)[J].光學(xué)精密工程,2012,20(9):2068?2077.
WANG Xin, ZHANG Mingming, YU Xiao, et al. Point cloud registration based on improved iterative closet point method [J]. Optics and precision engineering, 2012, 20(9): 2068?2077.
[15] RUSU R B, BLODOW N, MARTON Z C, et al. Aligning point cloud views using persistent feature histograms [C]// Proceedings of International Conference on Intelligent Robots and Systems. Nice: IEEE, 2008: 3384?3391.