化春鍵, 熊雪梅, 陳 瑩
(1.江南大學 機械工程學院,江蘇 無錫 214122; 2.江蘇省食品先進制造裝備技術重點實驗室,江蘇 無錫 214122;3.江南大學 物聯(lián)網(wǎng)工程學院,江蘇 無錫 214122)
在工件圓弧半徑測量的過程中圓弧的邊緣匹配存在著許多困難,例如,由于幾何不變性的缺失,對邊緣很難進行一些相關的空間約束;預處理后的左右兩圖中連接的邊緣可能并不一致。可通過2方面降低邊緣匹配的難度:對現(xiàn)有的SIFT匹配算法進行改進[1],但對邊緣匹配的效果不佳;利用極線約束、惟一性約束、順序約束等來限制匹配過程中的搜索范圍。文獻[2]通過2個攝像機光軸平行時獲取圖像,進而利用視差方向梯度實現(xiàn)快速邊緣匹配,但該算法的使用條件受限。文獻[3]利用匹配的角點引導邊緣匹配,該方法誤匹配率較高。文獻[4]提出通過計算圖像中極線與直線交點的亞像素匹配方法來匹配圓弧邊緣像素點,但該算法過程繁瑣,準確率不高。
針對工件圓弧邊緣特征點的檢測,本文首先通過改進的隨機抽樣一致性(random sample consensus,RANSAC)算法擬合橢圓,在求得內(nèi)點中篩選出邊緣特征點;針對工件圓弧邊緣特征點的匹配,通過極線約束使得兩幅圖像對應的極線平行從而滿足掃描線特性,在此基礎上,以確定的橢圓中心為匹配參考點,進而對圓弧邊緣特征點進行逐行匹配。在得出匹配點對后,利用改進的RANSAC算法排除誤匹配對。
如圖1所示,對于空間中的一點A,采用光心為O1的攝像機C1與光心為O2的攝像機C2,同時對A點進行拍攝。如果能夠確定由C1攝像機拍攝的圖像中一點A1與由C2攝像機拍攝的圖像中一點A2,都是空間中同一點A,通過O1A1和O2A2兩直線相交即可確定A的位置,進而A點在三維空間中的位置是唯一確定的。
圖1 雙目立體視覺原理
對圖像進行極線校正的實質(zhì)即為對兩幅圖像各進行一次投影變換,使得兩幅圖像對應的極線平行從而滿足掃描線特性。受攝像機制造精度及定位精度影響,僅從硬件方面無法達到平視要求,這使得降維的思想無法應用到雙目視覺中。因此,本文采用分步旋轉(zhuǎn)法[5]對左右圖像進行校正。分步旋轉(zhuǎn)法即為對圖像空間進行一定的旋轉(zhuǎn),使得左右兩圖達到平視要求。
空間圓的形狀在單個相機的拍攝下,投影到一個平面會形成橢圓。拍攝過程中光照及周圍環(huán)境的影響、工件邊緣本身的缺陷等,都會形成噪聲點。若利用現(xiàn)有RANSAC算法擬合橢圓,則錯誤率較高。本文在RANSAC算法尋找樣本點的過程中進行改進,具體的流程如下:
1)在利用Sobel算子進行邊緣檢測后,將像素點的坐標記錄在Data中。
2)設定RANSAC算法最大循環(huán)次數(shù)m和殘差閾值θ。
3)對Data數(shù)據(jù)點進行掃描抽樣的過程中,橫坐標相同的數(shù)據(jù)點只能篩選2個及以下。選取6個不同的點(5個數(shù)據(jù)點得到一個橢圓較為困難)。
4)用基于代數(shù)距離最小二乘法擬合一個橢圓,測量所有樣本點到該橢圓的距離,距離小于殘差閾值θ的點稱為內(nèi)點;否則,稱為外點,內(nèi)點數(shù)最多時的模型即為最佳橢圓模型。統(tǒng)計內(nèi)點的總數(shù),記作S。
5)重復步驟(3),直至達到最大循環(huán)次數(shù)m。該過程可以得到多個S值,找出其中最大的S值,記作Smax。
6)將Smax對應的內(nèi)點存儲在Datem中,利用橢圓一般方程Ax2+Bxy+Cy2+Dx+Ey+F=0和內(nèi)點進行系數(shù)擬合。得到橢圓方程以及橢圓中心點的坐標。
由文獻[7]可知,在置信度為η0的條件下,在循環(huán)過程中,至少有一次采樣,使得采樣出的b個點均為內(nèi)點,才能保證在循環(huán)的過程中,至少有一次采樣能取得目標函數(shù)的最大值。因此,最大循環(huán)次數(shù)m應該滿足以下條件
(1)
式中η0一般設置在[0.95,0.99]的范圍內(nèi);ε為內(nèi)點在Data中的比例,一般未知,可以取最壞條件下內(nèi)點的比例。
假定外點是高斯白噪聲,其均值為0,方差為σ,誤差的殘差符合r維的卡方分布。θ選取公式[8]計算為
(2)
式中α為置信概率。
由于圓弧邊緣一般為單像素的邊緣點,本文在上述求得的內(nèi)點S中,進一步設定殘差閾值θ,使得邊緣點成為單像素點。實驗結果表明θ/2較為合適。最終求得的較為稀疏的單像素點即為所求的邊緣特征點。
由于投影變化,投影出的橢圓中心即為空間圓弧的中心,因此,左右兩圖橢圓中心點相互對應。匹配左右兩圖橢圓中心點如圖2所示。
圖2 左右兩圖圓弧中心點
以圓弧匹配的中心點為基準點,利用順序一致性展開對圓弧邊緣的匹配。算法具體流程如下:
1)將左右兩圖的中心點坐標分別儲存在O1和O2中。
2)篩選出左右兩圖中的正確特征點待匹配,并將數(shù)據(jù)點分別存入Date1和Date2中。
3)利用外極線約束和順序一致性約束,對左右兩圖逐行掃描,第n行中分別存在2個或2個以下特征點,依次將左圖圖像中第n行的特征點分別記為Ln1和Ln2,將右圖圖像中第n行的特征點分別記為Rn1和Rn2。
兩幅圖像的投影變換可以由以下齊次坐標表示
(3)
式中 (xi,yi)為參考圖像上的點;(xb,yb)為待匹配圖像上與(xi,yi)對應的點;3×3矩陣為變換矩陣H。H有8個自由度,理論上至少選擇4對特征點計算出變換矩陣
(4)
由于誤匹配點的存在,隨機選取4對特征點計算所得的變換矩陣H存在出錯的可能。
本文提出了一種改進的RNASAC算法,用于減少程序的計算量。針對原算法進行如下的改進:隨機選擇8對匹配點,并用其中4對計算變換矩陣H;檢測余下4對是否在變換矩陣H上,如果這4對匹配點都不在變換矩陣H上,則重新選擇樣本點,直至余下4對中至少有1對在變換矩陣H上,程序才繼續(xù)往下執(zhí)行。改進的RANSAC算法直接排除大概率不符合要求的模型,節(jié)省計算量。采用式(6)估算成功排除不符合要求模型的概率
(5)
式中p為成功排除不符合要求模型的概率;q為誤匹配點的對數(shù);m為總的匹配點的對數(shù)。本文中,總的匹配點對數(shù)為852對,誤匹配點的對數(shù)為47對,則根據(jù)式(5),成功排除不符合要求模型的概率p=94.5 %,成功率較高,說明該方法具有很好的可操作性。
為了驗證該方法的可行性,在MATLAB環(huán)境下對所提出的方法進行了大量實驗。以如圖3所示為極線校正后的圓弧工件,按照本文方法對圓弧邊緣特征點進行提取和匹配,其中左圖提取點數(shù)為1 021,右圖提取點數(shù)為1 011。對圓弧中心點進行匹配。最終邊緣匹配結果如圖4所示,匹配對數(shù)為852對,通過分析排出誤匹配后,最終正確匹配對為805對。
圖3 極線校正后的圓弧工件
圖4 本文方法匹配結果
用加速穩(wěn)健特性(speed-up robust features,SURF)方法對圓弧邊緣點的匹配進行了初步的實驗。如圖5所示為SURF方法匹配的結果??梢园l(fā)現(xiàn),SURF方法用于邊緣點的匹配時,匹配成功的對數(shù)較少,同時準確率不高。
圖5 SURF匹配結果
本文所提出的方法與文獻[2]中所提到的方法進行對比實驗,分別對圓柱工件和齒輪工件圓弧輪廓邊緣點進行了匹配(匹配對分別為335和852對),本文所提出的方法相對簡單,用時較少(分別為0.974 s和1.203 s),正確匹配率高(分別為92.8 %和94.5 %),魯棒性較強,優(yōu)于對比文獻方法(兩工件用時分別為1.233 s和1.545 s,正確匹配率分別為80.7 %和80.4 %)
采用均方誤差(mean square error,MSE)描述預測模型實驗數(shù)據(jù)的精確度,MSE越小,模型精度超高
(6)
式中εj為第j個擬合橢圓θ值與所對應的標準橢圓的θ值之差;a為擬合橢圓數(shù)量。
綜上所述,本文提出的改進的RANSAC算法具有更高的精度。
本文從魯棒性、實用性以及準確性出發(fā),提出了一種圓弧邊緣特征點檢測與匹配方法。實驗結果證明了該算法的可靠性和魯棒性。在不降低速度的情況下,對于工業(yè)中工件圓弧邊緣特征點的檢測與匹配體現(xiàn)了良好的適用價值。