王湘偉,莫秋云,粟定華,陳澤章,李軍
(1.桂林電子科技大學機電工程學院,廣西桂林 541004;2.中橡集團曙光橡膠工業研究設計院,廣西桂林 541004;3.桂林科技創業服務中心,廣西桂林 541004)
在實現基于雙目視覺的機械手對輪胎測溫點進行測溫的過程中,圖像匹配精度和速度是關鍵。目前常采用基于外極線約束[1-2]的區域相關匹配[3]算法來確定兩個對應點間的匹配。但是該算法要求對極線上每一個點都進行區域相關匹配計算,計算量大、耗時并且匹配準確度不高。針對此問題,提出一種將像素點之間灰度值比較與區域匹配相結合的改進算法。由于兩圖片上對應點之間灰度值相近,該算法先將目標點與對應極線上各像素點依次進行點灰度比較,排除與目標點灰度差別較大的像素點,然后對與目標點灰度值相差較小的像素點進行區域灰度相關匹配計算,以減少區域灰度相關計算量,降低誤匹配率,獲得較為準確的目標點的左右圖像坐標,從而比較準確地獲取其三維坐標,提高機械手的定位精度。
如圖1所示,將雙目立體視覺所涉及的兩個視平面分別稱為左視平面和右視平面,分別記為PL和PR。每個攝像機都有一個獨立的光心,分別為OL和OR。過光心OL和OR的連線稱為光心線,也稱基線。基線與視平面的交點稱為該視平面的外極點。空間某點P與基線所確定的平面稱為外極平面。
對于給定的左圖像平面上的一點PL,它所對應的空間點P一定處在該點與左光心點OL的連線上。這條連線與右光心點OR確定了一個外極線平面,該平面與右視平面相交于一條直線PReR,這條直線被稱為左圖像上PL點的外極線。容易知道,對于左圖像上的一點PL,其在右圖像上的匹配點PR一定在外極線上,這就是外極線約束。這個約束很大程度上減少了待驗證的可能匹配點對的數量,即把一個點在另外一幅圖像上可能的匹配點的分布從二維平面降到了一維的線上,極大地減小了搜索匹配點的范圍,并且減少了誤匹配。這就是立體視覺中最基本的約束。

圖1 一般放置的雙目視覺中的極線和極平面
圖1所示為一般放置的雙目視覺模型,如果使用極線約束原則進行匹配,則每求一個目標點都需要計算外極線方程,然后根據極線斜率的不同方向來確定步進方向,這個過程需要大量的計算,極大地影響了程序的運行效率,不能滿足機械手測溫實時性的要求。
如圖2所示,該雙目視覺模型在理想狀態下平行放置[4]。該模型中兩個攝像機C1和C2僅在x軸方向上有一平移b,即左右攝像機光心分別作為左右攝像機坐標系的原點OL和OR,以光心的連線方向作為它們x軸的方向,光心之間的距離為b,兩個攝像機的光軸互相平行。
其中OLOR為CL和CR坐標系的x軸,POLOR平面與兩個圖像平面IL和IR的交線分別為EL和ER,因為兩個圖像平面位于同一平面,所以EL和ER為該平面上的同一直線。同時,圖像平面平行于x軸,故EL、ER與x軸平行。PL與PR分別為OLP與IL、OLP與IR的交點,故PL與PR分別在EL和ER上。

圖2 平行結構的雙目視覺系統
平行放置的雙目視覺模塊避免了一般放置的雙目視覺模型外極線求解計算量大的缺點,同時簡化了后續三維求距的計算量。但是平行放置的雙目視覺模塊是理想的模型,在實際情況下基本無法讓兩個攝像機的光軸保持平行。可通過數學校正,對圖片進行校正[5],使兩臺攝像機的光軸變為平行的,即得到行對準的圖像對。
因此,通過比較兩種雙目視覺模型極線求取的方法,文中選取利用水平極線約束來進行區域匹配。
如圖3所示,設Image1和Image2分別為已校正好的左右兩幅圖像,在左圖像中選中一目標點p,以p為中心的某一領域作為模板T,大小為M×M。從立體圖像對中大致觀察圖像對的視差范圍[6],設最大的視差dmax,只需沿目標點p的同一水平掃描線,在 (i+dmax,j)至 (i-dmax,j)范圍內進行搜索。匹配時模板圖疊放在匹配圖像上平移,模板圖覆蓋下第k個搜索子圖為Sk。匹配時通過計算相關函數來找到與模板圖盡可能相似的搜索子圖以及它的坐標位置。若模板圖T和搜索子圖Sk完全一致,則T和Sk之差為零。

圖3 基于水平極線的區域匹配
一般來說通過相關函數來確定最佳匹配點,應用中可以用相似性測度函數[7-8]來衡量T和Sk的相似程度:

展開得:

當D(i,j)最小時,T和Sk達到最佳匹配。
該算法中,基準圖沿平行線每移動一個像素,模板都需要做一次區域灰度相關計算,其中除了匹配點計算以外都是在非匹配點上做無用功,而且受光照等條件影響極有可能存在區域相似程度更高的非匹配點而造成誤匹配。該算法不能滿足機械手快速準確定位的要求,因此,文中提出對基于水平極線的區域匹配算法的改進,如第3.2節。
針對上述區域匹配算法存在的問題,提出一種將像素點灰度值比較與區域相關匹配相結合的改進算法。由于點基元灰度值計算量遠遠小于區域灰度相關計算量,因此先將目標點與極線上各像素點進行點灰度值比較后再判定是否進行區域匹配,即相當于對像素點進行一次刷選后再區域相關匹配,這樣可減少區域匹配計算次數以及減小誤匹配的概率,具體方法如下:
(1)利用點基元灰度值比較排除極線上一部分非匹配點,以減少不必要的區域灰度匹配相關計算量。由于受光照等條件影響,左右兩張圖片上對應點之間的灰度值一般不會相等,但其值不會相差很大,會保持在一定范圍內。若極線上一像素點與目標點之間灰度值相差很大,則該點必定不會是匹配點,故沒有進行區域匹配的必要。因此,設定閥值α(一般很小,可以根據需要做調整),取目標點p依次沿 (i+dmax,j)至 (i-dmax,j)上的像素點進行點灰度值比較。
(2)若兩像素點灰度值之差大于閥值α,則該點必定不是匹配點,因此不進行區域灰度相關匹配,直接進入對下一像素點的灰度值比較。
(3)若兩像素點灰度值之差小于閥值α,則進行區域相關匹配計算,保存D(i,j)的值,再進入下一像素點的灰度值比較。
(4)比較所有記錄下來的D(i,j)的值,取D(i,j)值最小的子圖Si,j的中心點為最佳匹配點。
依據上述原理,采用C++6.0編程對上述方法進行驗證,設定初始閥值α=10,最大視差dmax=100。用鼠標在圖4中框選輪胎上記號點,然后沿水平極線去尋找對應匹配點,兩種算法的匹配結果分別如圖5和圖6所示。為了進一步證明該方法的有效性,把記錄下的8個目標點與兩種算法所求出的對應匹配點的灰度值作對比,如表1所示;并且將兩種算法的區域灰度相關計算次數做比較,如表2所示。

圖4 左視圖

圖5 原算法匹配結果

圖6 改進算法匹配結果

表1 對應點灰度值對比結果

表2 區域灰度相關計算次數對比結果
從以上結果可知:
(1)對于僅利用區域匹配的算法,如圖5所示,匹配結果不是很準確,點3、5、7都出現了誤匹配;從表1可以看出,圖5中的點3、5、7與其對應目標點灰度值相差很大;并且該算法計算量非常大,目標點與沿極線上每一點都進行了一次區域灰度相關計算,如表2所示。
(2)改進算法能將極線上與目標點灰度值相差較大的點進行排除,提高匹配準確度,如圖6所示;從表2可知,該算法大大減少了區域灰度相關計算次數,從而節省了大量的計算時間。
通過大量的實驗驗證,可以得到以下結論:采用先將目標點與極線各像素點進行點灰度比較后再進行區域匹配的算法,可以有效減少僅采用沿極線進行區域匹配的匹配誤差,提高匹配精度,同時減少計算量。
[1]韓偉,鄭江濱,李秀秀.基于外極線的快速精確立體匹配算法[J].計算機工程與應用,2008,44(1):51-53.
[2]鄧志燕,陳熾坤.利用外極線約束的圖像匹配新算法[J].工程圖學學報,2009(5):104-107.
[3]ZHOU J,XU Y,YU W R.Phase Matching with Multiresolution Wavelet Transform[C]//Proc SPIE,2002:82-91.
[4]富巍,劉美俊.排爆機器人的研究與開發[M].北京:電子工業出版社,2010:68-88.
[5]劉金鑫.雙目視覺的攝像機標定與立體匹配技術研究[D].廣州:廣東工業大學,2011.
[6]曾吉勇,蘇顯渝.濃密視差圖的快速提取[J].光學技術,2004,30(1):40-43.
[7]段湘斌.基于灰度圖像的匹配算法改進[D].長沙:中南大學,2012.
[8]馮宇平,趙文倉.基于局部灰度值編碼的圖像匹配[J].青島科技大學學報:自然科學版,2011,32(4):435-440.