秦娟,唐令
(重慶大學計算機學院,重慶 400044)
基于立體匹配度局部峰值的尺寸測量方法
秦娟,唐令
(重慶大學計算機學院,重慶400044)
在雙目測量技術中,針對采用計算視差圖獲取視差存在計算量大,穩(wěn)定性差問題,利用立體圖像上兩個邊界點實現物體尺寸的測量。為了準確獲取視差,提出一種基于立體匹配度局部峰值的點匹配算法。該算法利用極線約束,先使用小窗口計算右視圖上點的匹配度,得到匹配度圖像,在匹配度圖像上尋找若干峰值區(qū)域作為候選匹配集,再使用大窗口對候選匹配集計算匹配度,選擇匹配度最大的點作為匹配點,從而確定視差。最終依據邊界點的視差,實現物體尺寸的測量。實驗結果表明,測量精度達2%,且速度快,成本低,操作簡單,在實際測量應用中具有一定的可行性。
立體視覺;立體匹配;尺寸測量;相機標定
國家自然科學基金青年基金(No.61502060)、中央高?;究蒲袠I(yè)務費(No.106112012CDJZR1810)
雙目立體視覺測量是一種被動式測量方法,它使用相機在兩個不同位置對被測物體進行拍攝,利用兩幅圖像的視差重建物體的三維信息,從而實現物體尺寸的測量和空間位置的精確定位,在工業(yè)檢測、機器人導航、農業(yè)采摘、醫(yī)療診斷等領域具有廣泛的應用價值[1-4]。
在雙目測量技術中,獲取視差是測量的關鍵。為了獲取視差,現有的測量方法廣泛采用視差圖的方式,計算視差圖的方法主要有全局匹配算法[5]和局部匹配算法[6]。全局匹配算法通過最小化全局能量函數估計視差,計算時間較長。局部匹配算法通常采用基于滑動窗口計算匹配度,但是采用固定窗口大小容易因光照變化、局部紋理等產生誤匹配,大窗口在物體邊界區(qū)域匹配效果不好,而小窗口在低紋理或重復紋理區(qū)域容易產生誤匹配[7]。因此,通過計算視差圖的立體匹配算法易受處理器的運算速度、光照、物體紋理等因素制約,影響測量的實時性和精度。
針對采用視差圖獲取視差方法的局限性,考慮到物體尺寸測量只需要求出待測物體兩個邊界點的視差,不必求視差圖,因此只需要求邊界點的匹配點,從而減少計算量。同時,為了減小光照變化、局部紋理在立體匹配過程中的影響,提升測量的魯棒性,本文提出了一種基于立體匹配度局部峰值的物體尺寸測量方法。該方法采用可變窗口尋找匹配點,先用較小尺寸的滑動窗口在右視圖上計算極線上各個點的匹配度,得到匹配度圖像,然后在匹配度圖像上尋找若干峰值區(qū)域作為候選匹配集,再用較大的窗口對候選匹配集計算匹配度,并選擇匹配度最大的點作為匹配點,從而確定視差。最終測量結果以匹配點為中心選取3×3鄰域,用該鄰域重建三維坐標,采用均值法對計算結果進行優(yōu)化。實驗結果表明,測量系統(tǒng)能適應一定范圍的測量,且速度快,成本低,操作簡單,在實際測量應用中具有一定的可行性。
1.1測量原理
雙目立體視覺測量的基本原理[8]如圖1所示,C1和C2分別為左右相機的位置,B為相機間的相對距離,稱為基距,f為相機焦距,(cx,cy)為相片的中心。假定左右相機保持完全水平放置,同一時刻拍攝三維空間點P,可在左右視圖上分別得到成像點p1(p1x,p1y),p2(p2x,p2y)。
圖1 雙目立體視覺測量模型
因為左右相機完全水平放置,對應點縱向位移相同,僅在橫向坐標上存在差異,d=p1x-p2x,d即為視差。根據三角測量原理,在左視圖中確定了某點p1坐標,只要能在右視圖中確定其匹配點p2坐標,就可以依據如下三個公式恢復該點的三維空間點p坐標。對于待測物體的兩個邊界點,可以分別依據上述原理重建三維坐標,最后根據歐氏距離公式計算出物體的尺寸。
1.2測量流程
圖2 測量流程圖
(1)相機標定。利用立體相機拍攝多幅棋盤圖像標定相機,確定相機的內參數矩陣K、外參數矩陣R和T、畸變系數矩陣D。本文采用張正友平面標定算法對相機進行標定。
(2)圖像校正。利用立體相機拍攝待測線段ab,得到左視圖I1和右視圖I2,根據標定結果對I1和I2進行校正得到I1r和I2r,使得I1r和I2r的極線在一條水平線上。
(3)立體匹配。在校正后的左視圖I1r上選取物體的兩個端點a1和b1作為待匹配點,通過本文所提的點匹配算法在校正后的右視圖I2r上找到匹配點a2和b2。立體匹配的結果對測量結果的影響至關重要,本文第三部分將詳細介紹立體匹配的方法。
(4)度量重建。以匹配點為中心選取3×3鄰域,用公式(1)-(3)對鄰域點重建三維坐標,將空間點a及其周圍的8個鄰域點分別與空間點b及其周圍的8個鄰域點求空間距離,最后將其均值作為ab的空間長度SLab。
(5)計算尺寸,利用立體相機拍攝已知長度為ALcd的參照物cd,按照第2至4步,得到cd的空間長度SLcd。根據參照物的實際長度與空間長度的比例關系,計算比例因子s=ALcd/SLcd,從而計算待測物體的實際長度為ALab=SLab×s。
2.1相機標定
用針孔模型[9]來描述三維空間中某一點M=(X,Y,Z)T投影在像平面上二維坐標點m=(x,y)T的關系,可表示為:
式(4)中λ為縮放因子,K為相機內參數矩陣,R 和t為世界坐標系到相機坐標系的旋轉矩陣和平移矩陣。由于鏡頭存在畸變,使得實際成像點m'=(u,v)T和m=(x,y)T與存在一定的偏移,它們滿足如下關系:
式(5)中r=x2+y2,k1,k2,k3,k4,k5,k6是徑向畸變參數,p1和p2是切向畸變參數,fx和fy是相機的焦距,(cx,cy)是相片中心。
通過相機標定能夠得到相機的內外參數,其精度直接影響系統(tǒng)測量的精度和穩(wěn)定性。本文用立體相機在不同角度和距離下對棋盤圖案拍攝立體圖像對,采用張正友平面棋盤標定算法[10]對左右鏡頭標定,為了得到高精度的標定結果,具體標定步驟如下:
(1)立體圖像對采集:在光照良好的條件下,使用立體相機在不同視角下對棋盤進行拍攝,保證棋盤所在平面與成像平面之間的夾角不要太大,距離不要太遠,棋盤不能出圖像邊界。
(2)去除噪聲大的立體圖像對:加載所有圖像對,在圖像上找棋盤內角點坐標并繪制,觀察繪制的結果,如果每對立體圖像都能正確找到內角點,則用兩個數組imagePointsLeft,imagePointsRight分別保存該立體圖像對的左右棋盤圖角點坐標,否則不保存。
(3)單相機標定:利用結果imagePointsLeft和imagePointsRight分別對左右相機單獨標定,得到相機內參數矩陣K和畸變系數矩陣D。
(4)立體標定:利用結果imagePointsLeft、image-PointsRight、K和D計算相機外參數旋轉矩陣R和平移矩陣T。
2.2相機校正
當三維坐標點經過透視投影變換成為一個二維平面坐標點,由于鏡頭存在畸變,使得成像點有一定的偏差,因此對待處理的立體圖像對,需要校正二維坐標點后才能進行理論計算。立體校正的目的就是消除畸變,使得立體圖像對滿足極線約束。
根據標定結果:左右相機的內外參數、畸變系數,可采用Bouguet極線校正算法[11]得到行對準的校正旋轉矩陣,確定校正后的投影矩陣P1和P2,通過P1和P2可對左右視圖進行畸變校正和立體校正,圖3為校正后的左右視圖。
圖3 校正后的左右視圖
2.3立體匹配
立體匹配是雙目測量技術中必不可少卻又非常困難的一步,通過立體匹配可以得到待測點的視差。
由于物體邊界區(qū)域紋理重復和相似,為了準確地獲取邊界點的視差,本文提出了基于立體匹配度局部峰值的視差計算方法。設I1r和I2r是極線校正后的左右視圖,p1=(x1,y1)是左視圖上的一個點,求p1在右視圖上的匹配點p2過程如下:
(1)在左視圖I1r中,以p1=(x1,y1)點為中心,選取窗口大小為(2r1+1)×(2r1+1)的鄰域w1為搜索模板,取r1= 20的窗口如圖4所示。
圖4 待匹配點
(2)在右視圖I2r中,依據極線約束對極線上的每個點p2=(x2,y2),以p2為中心選取窗口大小為(2r1+1)× (2r1+1)的鄰域w2,根據w1和w2計算p1和p2的匹配度m(p1,p2),計算公式如下:
式(6)中dmin≤x2≤dmax,y2=y1,dmin是最小視差,dmax是最大視差,I1r(x1+i,y1+j)表示左視圖上像素點坐標為(x1+i,y1+j)的灰度值,I2r(x2+i,y2+j)表示右視圖上像素點坐標為(x2+i,y2+j)的灰度值。由式(6)可知,m(p1,p2)是關于p2的橫坐標x2的函數,m(p1,p2)的值越大,表示p2和p1的匹配度越大。用圖像Imatch表示m(p1,p2)與x2的關系如圖5(a)所示,橫軸表示x2的值,豎軸表示m (p1,p2)的值,Imatch稱為p1的匹配度圖像。
(3)采用基于連續(xù)小波變換(Continuous Wavelet Transform,CWT)的質譜峰檢測算法[12]找出圖像Imatch中的局部峰值區(qū)域,然后選擇k個最小局部峰值區(qū)域構成一個候選匹配集。取k=8時得到的候選匹配集的橫坐標值如圖5(a)中黑點所示,對應在右視圖中的匹配區(qū)域如圖5(c)所示。
(4)改變窗口大小為r2,令r2≥2r1,分別計算p1與候選匹配集中所有點的匹配度,取最大匹配度所對應的點作為p1在右視圖上匹配點p2。取r2=60的候選匹配集的匹配度結果如圖5(b)所示,其中第六個點的匹配度最大,對應在右視圖中的匹配區(qū)域如圖5(d)所示,由圖可知正確找到匹配點p2。
圖5 立體匹配結果
采用該匹配算法,以水杯圖像為例,在左視圖中選擇物體的兩個邊界點并連線,可以在右視圖上準確找到匹配點,匹配結果如圖6所示。
圖6 立體匹配結果
本文采用富士FinePix REAL 3D W3立體相機作為拍攝設備,用方格大小為22.25×22.25mm、長11寬6的棋盤格進行標定。標定時選擇相機距離棋盤1米,1.5米,2米,3米和5米情況下從不同角度對棋盤進行拍攝共35組,去除噪聲圖像后把剩下的27組用于相機標定,得到相機參數矩陣K、D、R以及T如下所示:
根據標定結果,計算比例因子s=1.003,以水杯和消毒液瓶為實驗對象,采用文中所提方法進行測量,結果見圖7,測量結果與實際尺寸十分接近。
圖7 測量結果
更多測量結果如表1所示,并與標尺測量方法精度進行了比較,結果反映了系統(tǒng)測量精度能達到一定范圍的測量要求。
表1 測量結果
為了對比本文方法與采用視差圖方法在獲取視差上的差異,本文首先對比了目前常用的計算視差圖的三種算法:BM(Block Matching)算法、SGBM(SemiGlobal Block Matching)算法和GC(Graph Cuts)算法。文獻[13]實驗結果表明在測量速度上BM>SGBM>GC,在測量精度上BM 隨機在SGBM算法最好的視差圖上獲取10個點的視差,并與本文方法獲得的視差進行對比,對比結果如表2所示。 表2 本文方法與SGBM算法獲得視差的對比 注:標記為“-”的項目表示未計算出視差。 表2反映了本文方法獲得的視差誤差較小,能達到一定范圍的精度要求,而視差圖方法穩(wěn)定性較差,不僅部分區(qū)域視差缺失,而且部分點的視差誤差過大,故此將SGBM算法用于物體尺寸測量無法獲得穩(wěn)定精確的測量結果。并且SGBM算法需要計算左視圖中所有點的視差,計算量較大,實時性不強,而本文方法只需要計算物體邊界點的視差,極大地提高了計算速度。 視差計算對于物體尺寸測量的精度有至關重要的影響,而正確的視差計算得益于精確的點匹配。由于測量過程是可受控的過程,因此通過控制拍攝條件可以減小光照和紋理單一區(qū)域對點匹配算法的影響。最終影響點匹配精度的原因主要是圖像上的紋理重復和相似區(qū)域。本文提出的基于立體匹配度局部峰值的視差計算方法,可以很好的處理紋理重復和相似區(qū)域的匹配點計算,能夠在多數情況下,較為準確的找到匹配點。同時相比計算視差圖方法,計算量小,穩(wěn)定性好。本文方法的精度依賴于匹配度計算中兩次窗口大小r1和r2的選擇,目前尚沒有方法能夠確定這兩個參數。但在實際使用中,如果是對同一類物體在同一背景下進行重復測量(例如零件尺寸的測量),那么可以先對這兩個參數進行調優(yōu),并在后續(xù)測量中反復使用。采用本文方法在測量物體時,只需要在左視圖選定物體的兩個邊界點即可,操作簡單,測量速度快,成本低,適合用于實際的測量應用。 圖8 最大視差取值為160、320、480、560的視差圖 [1]胡鵬程,郭焱,李保國,朱晉宇等.基于多視角立體視覺的植株三維重建與精度評估[J].農業(yè)工程學報,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].儀器儀表學報,2015(08):1692-1698. [4]董峰,孫立寧,汝長海.基于雙目視覺的醫(yī)療機器人擺位系統(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]曹之樂,嚴中紅,王洪.雙目立體視覺匹配技術綜述[J].重慶理工大學學報(自然科學),2015,02:70-75. [9]單寶華,袁文廳,劉洋.基于實心圓靶標的立體視覺系統(tǒng)三步標定法[J].光學學報,2016,09:1-13. [10]趙斌,周軍.基于改進棋盤的角點自動檢測與排序[J].光學精密工程,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].吉林大學學報(信息科學版),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-),女,重慶人,碩士生,本科,研究方向為計算機視覺、計算機圖形學 2016-09-09 2016-11-204 結語