黃 維,王超越
(1.武漢職業技術學院,湖北 武漢 430074;2.武漢理工大學,湖北 武漢 430070)
機器視覺系統是實現機器人智能化的基礎,雙目視覺作為機器視覺的重要研究方向,通過視差獲取物體的空間坐標,實現物體三維位置的測量[1-2]?;谝曈X技術的機器人系統可以在復雜的環境中做出自主決策,并完成特定的目標識別和空間定位任務,在工業生產、自主巡視等領域應用廣泛。
目前,國內外關于雙目視覺定位技術已有較多的研究成果。在文獻[3]中,提出了一種將圖像二分法和orb特征相結合的機器人的雙目定位方法。通過圖像二分法去除無效區域,采用orb算法進行匹配,最后,利用RANSAC算法消除誤匹配點。實驗結果表明,所提方法具有效率高和準確度高的優點。在文獻[4]中,提出了一種基于SIFT算法的雙目立體測量系統。實驗結果表明,該方法提不僅提高了匹配的精度,還提高了匹配效率。在文獻[5]中,提出了一種將隨機蕨算法和二值特征描述子相結合的雙目視覺目標定位方法。在粗匹配階段,采用隨機蕨算法對圖像進行識別。在精細匹配階段,根據圖像梯度信息建立二值特征描述子。實驗結果表明,該方法可以將誤差控制在7mm之內。在文獻[6]中,提出了一種將高速魯棒特征和自適應閾值相結合的定位算法。通過高速魯棒特征提取特征向量,通過自適應閾值完成匹配。實驗結果表明,該算法具有效率高、精度高等優點,有一定的實際價值。但上述方法在實際應用中無法適應實時性較高的場合,需要進一步提高適應性。
在此基礎上,提出了一種結合SIFT算法和Harris角點算法的汽車零部件圖像特征點提取方法。通過閾值自適應方法對特征點進行匹配,通過改進RANSAC 算法則消除誤匹配點。仿真驗證了該方法的優越性。
雙目視覺是根據人眼的成像原理對物體進行感知的技術,主要目的是獲取空間物體的三維信息,在機器視覺的研究中發揮著非常重要的作用,通過分析左右相機的多個二維圖像進行信息獲取[7]。雙目視覺的實現流程,如圖1所示。

圖1 立體視覺流程Fig.1 Stereo Vision Process
(1)圖像采集通過雙目相機完成。(2)相機標定完成相機參數校準[8]。(3)圖像預處理是對圖像進行增強的過程。(4)特征點提取就是提取圖像的點特征,方便后續對整個圖像的分析。(5)立體匹配是使用相關算法對兩幅圖像進行立體匹配[9]。(6)深度信息獲取是通過視差,并結合相應的校準結果來計算物體的深度信息。
SIFT 由David Lowe 于1999 年提出,并于2004 年進行了完善,用于檢測和描述圖像局部特征。
SIFT算法具有尺度、旋轉和光照不變性。二維圖像的尺度空間L(x,y,σ)[10],如式(1)所示。
將高斯差分算子(Difference of Gaussian,DOG)用于極值檢測[11],如式(2)所示。
式中:k—相鄰尺度空間的倍數。
使用差分近似代替微分[12],如式(3)所示。
可以得到[13]如式(4)所示。
DOG中的極值點就是關鍵點,SIFT特征點優勢明顯,但是特征點數目過大,分揀機器人的實時處理性能不足,引入角點算法對其進行優化[14]。
如果一個點的行和列的曲率高于圖像其他點的曲率,則該點是重要特征點。
算法原理:圖像窗口平移[u,v],產生灰度變化E(u,v)[15],如式(5)所示。
式中:w(x,y)—窗口函數;
I(x,y)、I(x+u,y+u)—原始和平移后的圖像灰度。
如果E(u),v較大,則對應窗口內有角點存在。式(5)的泰勒展開式[16],如式(6)所示。
式(5)變換為[17]式(7)所示。
對于局部微小的移動量[u,v],可以近似地得到[18],如式(8)所示。
設實對稱矩陣M的兩個特征值:λ1、λ2,Harris角點響應函數R[19],如式(9)所示。
式中:detM=λ1λ2;traceM=λ1+λ2。
通過特征點的粗、精提取可以計算SIFT選擇關鍵點的R值,以確定關鍵點是否為角點。該方法一方面可以利用SIFT特征點來保持旋轉和尺度的穩定性,另一方面將一些不穩定點去除,提高后續算法的效率。
通過閾值自適應方法對提取后的特征點進行匹配,步驟如下:
(1)通過式(10)所示獲得特征點比值結合。
(2)根據特征點比值進行排序,去除前后各10%數據,剩余80%數據取平均值作為閾值。
(3)根據閾值對特征點進行匹配,得到匹配點對集合。
匹配過程中存在一些誤匹配點,會導致分揀機器人定位產生較大的偏差,影響預警效果,所以需要去除誤匹配點。
由于實際生產等問題,匹配過程肯定會有誤匹配點存在,影響后續的識別,需要對誤匹配點進行去除。
RANSAC 作為一種魯棒估計算法,用于誤匹配點清除[21]。RANSAC算法根據初始值將數據點分為內部點和外部點,然后執行迭代計算。但RANSAC算法也存在迭代不穩定和復雜度高等問題。引入特征向量夾角余弦值來評估相似度。如式(11)所示:
式中:p、q—特征點對應的特征向量;
n—向量維數。
根據余弦值分布情況設定閾值,根據閾值消除誤匹配點。
該算法的過程如下:
(1)隨機從數據集N中選擇匹配點對數據,并將其記錄記為(xi,yi)和(,);
(2)根據式(12)計算方法計算矩陣H,并將其記為模型N。
(3)根據向量余弦對特征點進行約束,如果值大于設置閾值,則將其定義為內部點ii,否則,將其剔除。
(4)如果內部點元素的數量大于內部點最優集合Ibest,則更新Ibest=I。
(5)如果迭代次數超過設定值,則退出。
該實驗著重于汽車零部件圖像的雙目立體匹配,為了驗證文中方法的優越性,將其與優化前進行對比分析。實驗計算機為華為計算機,實驗仿真平臺為matlab 2018a。相機是mv-em120m∕C,光源是mv-rl-v環形光源,機械臂是ABB.IRB120 6自由度機械臂,機器人分揀工件為汽車零部件。
在實驗中,選擇了兩個場景進行匹配。(一)模擬汽車零件工廠的復雜環境,將汽車零件隨機放置在生產線上以構建復雜的背景環境。(二)選擇較為復雜的零部件。
在這兩個場景中進行視覺捕捉,提取SIFT特征點,然后結合Harris提取特征點以進行雙目立體匹配。不同場景特征點提取實驗結果,如圖2、圖3所示。分析了兩個場景下的特征點提取,如表1所示。

表1 特征點提取數Tab.1 Feature Point Extraction Number

圖2 場景1特征點提取Fig.2 Scene 1 Feature Point Extraction

圖3 場景2特征點提取Fig.3 Scene 2 Feature Point Extraction
由圖2、圖3和表1可以看出,文中方法在特征點數提取中優于SIFT算法,具有更優的性能。這是因為本文方法將SIFT算法和Harris角點算法相結合用于汽車零件圖像特征點提取,提高了SIFT算法的執行效率。
通過結合SIFT算法和Harris方法用于特征點提取,通過閾值自適應方法對圖像進行立體匹配,通過改進RANSAC 算法對誤匹配點進行消除,完成分揀機器人立體匹配。場景1和場景2的匹配效果如圖4所示。

圖4 不同場景匹配效果Fig.4 Matching Effects for Different Scenes
由圖4不同場下的匹配效果可以看出,齒輪和汽車水泵應用本文方法都具有較好的識別效果。齒輪在粗匹配階段有132對匹配點,檢測耗時135.42ms,經過本文改進RANSAC去除誤匹配點,剩余33對匹配點,檢測耗時60.32ms。
汽車水泵在粗匹配階段有21對匹配點,檢測耗時79.67ms,經過本文改進RANSAC去除誤匹配點,剩余11對匹配點,檢測耗時19.39ms。結果表明,本文融合閾值自適應方法與改進RANSAC算法,可以實現汽車零件在多種環境下的立體匹配。
為了使分揀機器人可以更加高效和準確率的分揀,需要獲取零件詳細信息。在兩種場景下,通過測量零件表面與相機間的距離,進行誤差分析。匹配特征點的距離,如表2所示。

表2 匹配特征點距離Tab.2 Matching Feature Point Distance
從表2可以看出,計算值和測量值較為接近,最大誤差僅為1.21mm,符合分揀機器人的精度要求。
這是因為場景1 中汽車齒輪在傳送帶上的位置不同,且特征點的位置也不同,計算和測量深度略有不同。場景2 中汽車水泵結構不是平坦的,也不是與相機表面完全平行,因此計算深度和測量深度略有不同。
將SIFT 算法和Harris 角點算法相結合,提取汽車零部件圖像的特征點。利用閾值自適應方法對高對比度的特征點進行匹配,改進的RANSAC 算法則用于消除誤匹配點。
結果表明,該算法具有效率高、精度高等優點,實際測量值與計算之間的最大誤差為1.21mm,符合分揀機器人的精度要求。但也存在一些問題和不足,例如,僅研究了匹配方法,而未對目標跟蹤算法進行研究,這些問題和缺點將通過后續研究不斷改進和完善。