秦娟,唐令
(重慶大學(xué)計(jì)算機(jī)學(xué)院,重慶 400044)
基于立體匹配度局部峰值的尺寸測量方法
秦娟,唐令
(重慶大學(xué)計(jì)算機(jī)學(xué)院,重慶400044)
在雙目測量技術(shù)中,針對采用計(jì)算視差圖獲取視差存在計(jì)算量大,穩(wěn)定性差問題,利用立體圖像上兩個邊界點(diǎn)實(shí)現(xiàn)物體尺寸的測量。為了準(zhǔn)確獲取視差,提出一種基于立體匹配度局部峰值的點(diǎn)匹配算法。該算法利用極線約束,先使用小窗口計(jì)算右視圖上點(diǎn)的匹配度,得到匹配度圖像,在匹配度圖像上尋找若干峰值區(qū)域作為候選匹配集,再使用大窗口對候選匹配集計(jì)算匹配度,選擇匹配度最大的點(diǎn)作為匹配點(diǎn),從而確定視差。最終依據(jù)邊界點(diǎn)的視差,實(shí)現(xiàn)物體尺寸的測量。實(shí)驗(yàn)結(jié)果表明,測量精度達(dá)2%,且速度快,成本低,操作簡單,在實(shí)際測量應(yīng)用中具有一定的可行性。
立體視覺;立體匹配;尺寸測量;相機(jī)標(biāo)定
國家自然科學(xué)基金青年基金(No.61502060)、中央高?;究蒲袠I(yè)務(wù)費(fèi)(No.106112012CDJZR1810)
雙目立體視覺測量是一種被動式測量方法,它使用相機(jī)在兩個不同位置對被測物體進(jìn)行拍攝,利用兩幅圖像的視差重建物體的三維信息,從而實(shí)現(xiàn)物體尺寸的測量和空間位置的精確定位,在工業(yè)檢測、機(jī)器人導(dǎo)航、農(nóng)業(yè)采摘、醫(yī)療診斷等領(lǐng)域具有廣泛的應(yīng)用價值[1-4]。
在雙目測量技術(shù)中,獲取視差是測量的關(guān)鍵。為了獲取視差,現(xiàn)有的測量方法廣泛采用視差圖的方式,計(jì)算視差圖的方法主要有全局匹配算法[5]和局部匹配算法[6]。全局匹配算法通過最小化全局能量函數(shù)估計(jì)視差,計(jì)算時間較長。局部匹配算法通常采用基于滑動窗口計(jì)算匹配度,但是采用固定窗口大小容易因光照變化、局部紋理等產(chǎn)生誤匹配,大窗口在物體邊界區(qū)域匹配效果不好,而小窗口在低紋理或重復(fù)紋理區(qū)域容易產(chǎn)生誤匹配[7]。因此,通過計(jì)算視差圖的立體匹配算法易受處理器的運(yùn)算速度、光照、物體紋理等因素制約,影響測量的實(shí)時性和精度。
針對采用視差圖獲取視差方法的局限性,考慮到物體尺寸測量只需要求出待測物體兩個邊界點(diǎn)的視差,不必求視差圖,因此只需要求邊界點(diǎn)的匹配點(diǎn),從而減少計(jì)算量。同時,為了減小光照變化、局部紋理在立體匹配過程中的影響,提升測量的魯棒性,本文提出了一種基于立體匹配度局部峰值的物體尺寸測量方法。該方法采用可變窗口尋找匹配點(diǎn),先用較小尺寸的滑動窗口在右視圖上計(jì)算極線上各個點(diǎn)的匹配度,得到匹配度圖像,然后在匹配度圖像上尋找若干峰值區(qū)域作為候選匹配集,再用較大的窗口對候選匹配集計(jì)算匹配度,并選擇匹配度最大的點(diǎn)作為匹配點(diǎn),從而確定視差。最終測量結(jié)果以匹配點(diǎn)為中心選取3×3鄰域,用該鄰域重建三維坐標(biāo),采用均值法對計(jì)算結(jié)果進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果表明,測量系統(tǒng)能適應(yīng)一定范圍的測量,且速度快,成本低,操作簡單,在實(shí)際測量應(yīng)用中具有一定的可行性。
1.1測量原理
雙目立體視覺測量的基本原理[8]如圖1所示,C1和C2分別為左右相機(jī)的位置,B為相機(jī)間的相對距離,稱為基距,f為相機(jī)焦距,(cx,cy)為相片的中心。假定左右相機(jī)保持完全水平放置,同一時刻拍攝三維空間點(diǎn)P,可在左右視圖上分別得到成像點(diǎn)p1(p1x,p1y),p2(p2x,p2y)。
圖1 雙目立體視覺測量模型
因?yàn)樽笥蚁鄼C(jī)完全水平放置,對應(yīng)點(diǎn)縱向位移相同,僅在橫向坐標(biāo)上存在差異,d=p1x-p2x,d即為視差。根據(jù)三角測量原理,在左視圖中確定了某點(diǎn)p1坐標(biāo),只要能在右視圖中確定其匹配點(diǎn)p2坐標(biāo),就可以依據(jù)如下三個公式恢復(fù)該點(diǎn)的三維空間點(diǎn)p坐標(biāo)。對于待測物體的兩個邊界點(diǎn),可以分別依據(jù)上述原理重建三維坐標(biāo),最后根據(jù)歐氏距離公式計(jì)算出物體的尺寸。
1.2測量流程
圖2 測量流程圖
(1)相機(jī)標(biāo)定。利用立體相機(jī)拍攝多幅棋盤圖像標(biāo)定相機(jī),確定相機(jī)的內(nèi)參數(shù)矩陣K、外參數(shù)矩陣R和T、畸變系數(shù)矩陣D。本文采用張正友平面標(biāo)定算法對相機(jī)進(jìn)行標(biāo)定。
(2)圖像校正。利用立體相機(jī)拍攝待測線段ab,得到左視圖I1和右視圖I2,根據(jù)標(biāo)定結(jié)果對I1和I2進(jìn)行校正得到I1r和I2r,使得I1r和I2r的極線在一條水平線上。
(3)立體匹配。在校正后的左視圖I1r上選取物體的兩個端點(diǎn)a1和b1作為待匹配點(diǎn),通過本文所提的點(diǎn)匹配算法在校正后的右視圖I2r上找到匹配點(diǎn)a2和b2。立體匹配的結(jié)果對測量結(jié)果的影響至關(guān)重要,本文第三部分將詳細(xì)介紹立體匹配的方法。
(4)度量重建。以匹配點(diǎn)為中心選取3×3鄰域,用公式(1)-(3)對鄰域點(diǎn)重建三維坐標(biāo),將空間點(diǎn)a及其周圍的8個鄰域點(diǎn)分別與空間點(diǎn)b及其周圍的8個鄰域點(diǎn)求空間距離,最后將其均值作為ab的空間長度SLab。
(5)計(jì)算尺寸,利用立體相機(jī)拍攝已知長度為ALcd的參照物cd,按照第2至4步,得到cd的空間長度SLcd。根據(jù)參照物的實(shí)際長度與空間長度的比例關(guān)系,計(jì)算比例因子s=ALcd/SLcd,從而計(jì)算待測物體的實(shí)際長度為ALab=SLab×s。
2.1相機(jī)標(biāo)定
用針孔模型[9]來描述三維空間中某一點(diǎn)M=(X,Y,Z)T投影在像平面上二維坐標(biāo)點(diǎn)m=(x,y)T的關(guān)系,可表示為:
式(4)中λ為縮放因子,K為相機(jī)內(nèi)參數(shù)矩陣,R 和t為世界坐標(biāo)系到相機(jī)坐標(biāo)系的旋轉(zhuǎn)矩陣和平移矩陣。由于鏡頭存在畸變,使得實(shí)際成像點(diǎn)m'=(u,v)T和m=(x,y)T與存在一定的偏移,它們滿足如下關(guān)系:
式(5)中r=x2+y2,k1,k2,k3,k4,k5,k6是徑向畸變參數(shù),p1和p2是切向畸變參數(shù),fx和fy是相機(jī)的焦距,(cx,cy)是相片中心。
通過相機(jī)標(biāo)定能夠得到相機(jī)的內(nèi)外參數(shù),其精度直接影響系統(tǒng)測量的精度和穩(wěn)定性。本文用立體相機(jī)在不同角度和距離下對棋盤圖案拍攝立體圖像對,采用張正友平面棋盤標(biāo)定算法[10]對左右鏡頭標(biāo)定,為了得到高精度的標(biāo)定結(jié)果,具體標(biāo)定步驟如下:
(1)立體圖像對采集:在光照良好的條件下,使用立體相機(jī)在不同視角下對棋盤進(jìn)行拍攝,保證棋盤所在平面與成像平面之間的夾角不要太大,距離不要太遠(yuǎn),棋盤不能出圖像邊界。
(2)去除噪聲大的立體圖像對:加載所有圖像對,在圖像上找棋盤內(nèi)角點(diǎn)坐標(biāo)并繪制,觀察繪制的結(jié)果,如果每對立體圖像都能正確找到內(nèi)角點(diǎn),則用兩個數(shù)組imagePointsLeft,imagePointsRight分別保存該立體圖像對的左右棋盤圖角點(diǎn)坐標(biāo),否則不保存。
(3)單相機(jī)標(biāo)定:利用結(jié)果imagePointsLeft和imagePointsRight分別對左右相機(jī)單獨(dú)標(biāo)定,得到相機(jī)內(nèi)參數(shù)矩陣K和畸變系數(shù)矩陣D。
(4)立體標(biāo)定:利用結(jié)果imagePointsLeft、image-PointsRight、K和D計(jì)算相機(jī)外參數(shù)旋轉(zhuǎn)矩陣R和平移矩陣T。
2.2相機(jī)校正
當(dāng)三維坐標(biāo)點(diǎn)經(jīng)過透視投影變換成為一個二維平面坐標(biāo)點(diǎn),由于鏡頭存在畸變,使得成像點(diǎn)有一定的偏差,因此對待處理的立體圖像對,需要校正二維坐標(biāo)點(diǎn)后才能進(jìn)行理論計(jì)算。立體校正的目的就是消除畸變,使得立體圖像對滿足極線約束。
根據(jù)標(biāo)定結(jié)果:左右相機(jī)的內(nèi)外參數(shù)、畸變系數(shù),可采用Bouguet極線校正算法[11]得到行對準(zhǔn)的校正旋轉(zhuǎn)矩陣,確定校正后的投影矩陣P1和P2,通過P1和P2可對左右視圖進(jìn)行畸變校正和立體校正,圖3為校正后的左右視圖。
圖3 校正后的左右視圖
2.3立體匹配
立體匹配是雙目測量技術(shù)中必不可少卻又非常困難的一步,通過立體匹配可以得到待測點(diǎn)的視差。
由于物體邊界區(qū)域紋理重復(fù)和相似,為了準(zhǔn)確地獲取邊界點(diǎn)的視差,本文提出了基于立體匹配度局部峰值的視差計(jì)算方法。設(shè)I1r和I2r是極線校正后的左右視圖,p1=(x1,y1)是左視圖上的一個點(diǎn),求p1在右視圖上的匹配點(diǎn)p2過程如下:
(1)在左視圖I1r中,以p1=(x1,y1)點(diǎn)為中心,選取窗口大小為(2r1+1)×(2r1+1)的鄰域w1為搜索模板,取r1= 20的窗口如圖4所示。
圖4 待匹配點(diǎn)
(2)在右視圖I2r中,依據(jù)極線約束對極線上的每個點(diǎn)p2=(x2,y2),以p2為中心選取窗口大小為(2r1+1)× (2r1+1)的鄰域w2,根據(jù)w1和w2計(jì)算p1和p2的匹配度m(p1,p2),計(jì)算公式如下:
式(6)中dmin≤x2≤dmax,y2=y1,dmin是最小視差,dmax是最大視差,I1r(x1+i,y1+j)表示左視圖上像素點(diǎn)坐標(biāo)為(x1+i,y1+j)的灰度值,I2r(x2+i,y2+j)表示右視圖上像素點(diǎn)坐標(biāo)為(x2+i,y2+j)的灰度值。由式(6)可知,m(p1,p2)是關(guān)于p2的橫坐標(biāo)x2的函數(shù),m(p1,p2)的值越大,表示p2和p1的匹配度越大。用圖像Imatch表示m(p1,p2)與x2的關(guān)系如圖5(a)所示,橫軸表示x2的值,豎軸表示m (p1,p2)的值,Imatch稱為p1的匹配度圖像。
(3)采用基于連續(xù)小波變換(Continuous Wavelet Transform,CWT)的質(zhì)譜峰檢測算法[12]找出圖像Imatch中的局部峰值區(qū)域,然后選擇k個最小局部峰值區(qū)域構(gòu)成一個候選匹配集。取k=8時得到的候選匹配集的橫坐標(biāo)值如圖5(a)中黑點(diǎn)所示,對應(yīng)在右視圖中的匹配區(qū)域如圖5(c)所示。
(4)改變窗口大小為r2,令r2≥2r1,分別計(jì)算p1與候選匹配集中所有點(diǎn)的匹配度,取最大匹配度所對應(yīng)的點(diǎn)作為p1在右視圖上匹配點(diǎn)p2。取r2=60的候選匹配集的匹配度結(jié)果如圖5(b)所示,其中第六個點(diǎn)的匹配度最大,對應(yīng)在右視圖中的匹配區(qū)域如圖5(d)所示,由圖可知正確找到匹配點(diǎn)p2。
圖5 立體匹配結(jié)果
采用該匹配算法,以水杯圖像為例,在左視圖中選擇物體的兩個邊界點(diǎn)并連線,可以在右視圖上準(zhǔn)確找到匹配點(diǎn),匹配結(jié)果如圖6所示。
圖6 立體匹配結(jié)果
本文采用富士FinePix REAL 3D W3立體相機(jī)作為拍攝設(shè)備,用方格大小為22.25×22.25mm、長11寬6的棋盤格進(jìn)行標(biāo)定。標(biāo)定時選擇相機(jī)距離棋盤1米,1.5米,2米,3米和5米情況下從不同角度對棋盤進(jìn)行拍攝共35組,去除噪聲圖像后把剩下的27組用于相機(jī)標(biāo)定,得到相機(jī)參數(shù)矩陣K、D、R以及T如下所示:
根據(jù)標(biāo)定結(jié)果,計(jì)算比例因子s=1.003,以水杯和消毒液瓶為實(shí)驗(yàn)對象,采用文中所提方法進(jìn)行測量,結(jié)果見圖7,測量結(jié)果與實(shí)際尺寸十分接近。
圖7 測量結(jié)果
更多測量結(jié)果如表1所示,并與標(biāo)尺測量方法精度進(jìn)行了比較,結(jié)果反映了系統(tǒng)測量精度能達(dá)到一定范圍的測量要求。
表1 測量結(jié)果
為了對比本文方法與采用視差圖方法在獲取視差上的差異,本文首先對比了目前常用的計(jì)算視差圖的三種算法:BM(Block Matching)算法、SGBM(SemiGlobal Block Matching)算法和GC(Graph Cuts)算法。文獻(xiàn)[13]實(shí)驗(yàn)結(jié)果表明在測量速度上BM>SGBM>GC,在測量精度上BM 隨機(jī)在SGBM算法最好的視差圖上獲取10個點(diǎn)的視差,并與本文方法獲得的視差進(jìn)行對比,對比結(jié)果如表2所示。 表2 本文方法與SGBM算法獲得視差的對比 注:標(biāo)記為“-”的項(xiàng)目表示未計(jì)算出視差。 表2反映了本文方法獲得的視差誤差較小,能達(dá)到一定范圍的精度要求,而視差圖方法穩(wěn)定性較差,不僅部分區(qū)域視差缺失,而且部分點(diǎn)的視差誤差過大,故此將SGBM算法用于物體尺寸測量無法獲得穩(wěn)定精確的測量結(jié)果。并且SGBM算法需要計(jì)算左視圖中所有點(diǎn)的視差,計(jì)算量較大,實(shí)時性不強(qiáng),而本文方法只需要計(jì)算物體邊界點(diǎn)的視差,極大地提高了計(jì)算速度。 視差計(jì)算對于物體尺寸測量的精度有至關(guān)重要的影響,而正確的視差計(jì)算得益于精確的點(diǎn)匹配。由于測量過程是可受控的過程,因此通過控制拍攝條件可以減小光照和紋理單一區(qū)域?qū)c(diǎn)匹配算法的影響。最終影響點(diǎn)匹配精度的原因主要是圖像上的紋理重復(fù)和相似區(qū)域。本文提出的基于立體匹配度局部峰值的視差計(jì)算方法,可以很好的處理紋理重復(fù)和相似區(qū)域的匹配點(diǎn)計(jì)算,能夠在多數(shù)情況下,較為準(zhǔn)確的找到匹配點(diǎn)。同時相比計(jì)算視差圖方法,計(jì)算量小,穩(wěn)定性好。本文方法的精度依賴于匹配度計(jì)算中兩次窗口大小r1和r2的選擇,目前尚沒有方法能夠確定這兩個參數(shù)。但在實(shí)際使用中,如果是對同一類物體在同一背景下進(jìn)行重復(fù)測量(例如零件尺寸的測量),那么可以先對這兩個參數(shù)進(jìn)行調(diào)優(yōu),并在后續(xù)測量中反復(fù)使用。采用本文方法在測量物體時,只需要在左視圖選定物體的兩個邊界點(diǎn)即可,操作簡單,測量速度快,成本低,適合用于實(shí)際的測量應(yīng)用。 圖8 最大視差取值為160、320、480、560的視差圖 [1]胡鵬程,郭焱,李保國,朱晉宇等.基于多視角立體視覺的植株三維重建與精度評估[J].農(nóng)業(yè)工程學(xué)報,2015,11:209-214. [2]Hsu T S,Wang T C.An Improvement Stereo Vision Images Processing for Object Distance Measurement[J].International Journal of Automation and Smart Technology,2015,5(2):85-90. [3]歐巧鳳,趙平均,熊邦書,涂曉衍,莫燕.基于立體視覺的旋翼共錐度動態(tài)測量系統(tǒng)精度分析[J].儀器儀表學(xué)報,2015(08):1692-1698. [4]董峰,孫立寧,汝長海.基于雙目視覺的醫(yī)療機(jī)器人擺位系統(tǒng)測量方法[J].光電子·激光,2014(05):1027-1034. [5]Zhang S H,Qu X W,Ma S J,et al.A Dense Stereo Matching Algorithm Based on Triangulation[J].Journal of Computational Information Systems,2012,8:283-292. [6]Xu L,Au O C,Sun W,et al.Stereo Matching with Optimal Local Adaptive Radiometric Compensation[J].IEEE Signal Processing Letters,2015,22(2):131-135. [7]Zhang X,Liu Z.A Survey on Stereo Vision Matching Algorithms[C].Intelligent Control and Automation(WCICA),2014 11th World Congress on.IEEE,2014:2026-2031. [8]曹之樂,嚴(yán)中紅,王洪.雙目立體視覺匹配技術(shù)綜述[J].重慶理工大學(xué)學(xué)報(自然科學(xué)),2015,02:70-75. [9]單寶華,袁文廳,劉洋.基于實(shí)心圓靶標(biāo)的立體視覺系統(tǒng)三步標(biāo)定法[J].光學(xué)學(xué)報,2016,09:1-13. [10]趙斌,周軍.基于改進(jìn)棋盤的角點(diǎn)自動檢測與排序[J].光學(xué)精密工程,2015,01:237-244. [11]Bouguet J Y,Perona P.Camera Calibration from Points and Lines in Dual-Space Geometry[EB/OL].http://www.vision.caltech.edu/ bouguetj/calib_doc/. [12]Du P,Kibbe W A,Lin S M.Improved Peak Detection in Mass Spectrum by Incorporating Continuous Wavelet Transform-Based Pattern Matching[J].Bioinformatics,2006,22(17):2059-2065. [13]王浩,許志聞,謝坤,李杰,宋成璐.基于OpenCV的雙目測距系統(tǒng)[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2014(02):188-194. [14]Banz C,Blume H,Pirsch P.Real-Time Semi-Global Matching Disparity Estimation on the Gpu[C].Computer Vision Workshops(ICCV Workshops),2011 IEEE International Conference on.IEEE,2011:514-521. Stereo Vision;Stereo Matching;Dimensional Measurement;Camera Calibration Length Measurement Based on Local Peak of Stereo Matching Value QIN Juan,TANG Ling (School of Computer Science,Chongqing University,Chongqing 400044) In binocular measurement technology,because there is a large amount of computation and poor stability of the disparity map,to measure the length of an object by using two boundary points on stereo image.To obtain accurate parallax,proposes a stereo matching algorithm based on local peak of stereo matching value.Firstly,builds image with matching degrees,the method uses epipolar constraint to calculate matching degrees of the right image with a smaller window.Secondly,finds a number of peak regions as candidate matching set on the matching image.And calculates the matching degrees by using a larger window,and then selects the point of maximal matching degree as matching point.Finally,uses the parallax of boundary points to measure length of the object.Experimental results show that the measurement accuracy is 2%,and has certain feasibility in practical application with high speed,low cost,simple operation. 1007-1423(2016)32-0052-06 10.3969/j.issn.1007-1423.2016.32.012 秦娟(1990-),女,重慶人,碩士生,本科,研究方向?yàn)橛?jì)算機(jī)視覺、計(jì)算機(jī)圖形學(xué) 2016-09-09 2016-11-204 結(jié)語