任永強,陳康琛,張聞簫
(合肥工業(yè)大學(xué)機械工程學(xué)院,合肥 230009)
圖像特征匹配是機器視覺系統(tǒng)中的重要技術(shù)之一,其在同時定位與地圖構(gòu)建[1]、三維重建[2]、目標檢測[3]等方面均有重要應(yīng)用。在工業(yè)應(yīng)用上,機器人檢測齒輪進或抓取齒輪時需要對其進行圖像匹配識別,要求機器人視覺系統(tǒng)快速準確地對齒輪特征進行匹配。目前特征匹配算法受到許多學(xué)者深入研究,特征檢測的算法有不少,常用的有SIFT(scale invariant feature transform)、SURF(speeded up robust features)和ORB(oriented fast and rotated brief)等算法。SIFT匹配準確率好,但是速度慢。SURF是對SIFT的改進,速度進一步提升,但是還是難以滿足實時性高的應(yīng)用場合。王博等[4]優(yōu)化了SIFT算法中構(gòu)建高斯金字塔的流程,并用性能更好的特征描述子。張明路等[5]在SURF中加入聚類算法和機器學(xué)習(xí)中文本檢索方法,提高速度。但是二者實時性不如ORB,不能滿足有較高實時性要求的工業(yè)場景。而ORB受噪聲影響小,可實時性滿足工業(yè)要求,但匹配精度較前面二者差,需要優(yōu)化匹配,減少誤匹配。楊昊瑜等[6]將ORB算法提取出的特征向量進行歸類及篩選,減少噪點及特征冗余點數(shù)量,從而提高匹配效率。周光宇等[7]提出的改進方法是通過交叉驗證ORB對應(yīng)特征點對的準確率,在簡單篩選特征點后,通過一致空間映射對經(jīng)過篩選的特征點集進行穩(wěn)健的非線性匹配。雖然這兩種ORB改進算法提高匹配效率,但誤匹配率還須進一步減少。
為了有效解決在齒輪圖像匹配時的誤匹配問題,本文提出聯(lián)合金字塔光流法和ORB算法的齒輪圖像匹配優(yōu)化,在ORB算法提取特征后,用金字塔光流法追蹤兩齒輪圖像間的點,暴力匹配后進行簡單的特征點過濾,最后再用改進的RANSAC(random sample consensus)算法進行優(yōu)化匹配。實驗結(jié)果表明,該方法能夠提高齒輪圖像匹配準確率。
進行ORB特征提取前,需要對齒輪圖像進行預(yù)處理,其主要目的是減少圖像噪聲,主要是進行灰度化和高斯模糊。高斯模糊具有線性平滑的特點,對于去除噪聲十分有效。其本質(zhì)是高斯濾波器,即使用高斯分布函數(shù)得到高斯核,再將核與圖像作卷積相加。鑒于高斯濾波器能夠降低像素在空間上的變化,而隨機噪聲變化幅度大,所以該濾波器能夠在保留小信號同時實現(xiàn)降噪。齒輪原圖與預(yù)處理圖的對比結(jié)果如圖1所示。
圖1 齒輪原圖(左)與預(yù)處理圖(右)的對比圖
ORB算法可以快速生成齒輪圖像的特征點,該算法主要分為兩個步驟。其中,oFAST(oriented features from accelerated segment test)和rBRIEF(rotation-aware brief)分別是特征檢測的算法和生成特征描述符的算法。
oFAST算法是任選圖像中一點P為圓心,以3個像素為半徑,如果圓邊上存在相鄰9個點的灰度值都比P點大或小,可以初步確定P點為特征點。判斷公式如下:
(1)
之后根據(jù)Harris[8]角點從大到小排序進行選取。為實現(xiàn)特征點的尺度不變性和旋轉(zhuǎn)不變性,還須分別使用圖像金字塔法和灰度質(zhì)心方法。
rBRIEF算法是以任一角點為中心,在一定大小的鄰域窗口后任選2個一定大小的子窗口,根據(jù)一定閾值的灰度值,重復(fù)選取n次形成n維的由0和1組成的特征描述符。將點集合轉(zhuǎn)換為2×n矩陣A,其中A為:
(2)
并將矩陣A旋轉(zhuǎn)角度θ,其中旋轉(zhuǎn)矩陣R為:
(3)
再用貪婪搜索算法進行剔除,就得到具有高方差和高不相關(guān)的rBRIEF描述符。
ORB算法的具體流程如圖2所示。可以看出,它實時性好,可加速齒輪圖像匹配過程,但是存在誤匹配問題,需要進一步優(yōu)化匹配過程。
圖2 ORB算法流程圖
為有效減少誤匹配,本文實行一種基于金字塔光流方法的特征匹配算法。利用金字塔光流法對兩幅齒輪圖像進行特征點跟蹤,求出兩幅齒輪特征點的位置和運動向量,可得到對應(yīng)的光流點,并通過RANSAC算法來優(yōu)化匹配結(jié)果。
金字塔光流法[9-10]對兩幅齒輪圖像進行光流跟蹤,特征點要滿足光流法的三大假設(shè):亮度恒定、時間持續(xù)、空間一致。由于存在目標對象可能會出現(xiàn)迅速移動的情況,若使用傳統(tǒng)光流算法,在齒輪圖像處理過程中打破連續(xù)時間內(nèi)的小移動的假設(shè),可能帶來較大的誤差。由于利用圖像金字塔的特點,自上而下糾正運動量,從而遵循光流法的假設(shè),所以采用金字塔光流法,其大致過程:首先形成圖像的金字塔,再從頂層按照傳統(tǒng)光流法計算;然后由該值擬定下層的擬定值,并據(jù)此計算真實值;最后不斷迭代直至計算出最下層的值。所以最終的光流值其實是每層光流值迭代累加的結(jié)果。設(shè)圖像層數(shù)為L,總底層數(shù)為n,光流值為d,則光流值公式為:
(4)
通過程序得到的齒輪光流特征圖如圖3所示。
圖3 齒輪的光流特征圖
經(jīng)過前面的步驟得到兩幅圖像的特征點后,需要對它們進行匹配,若直接匹配,齒輪圖像上特征點過于密集,因此需要分為2次篩選。第1次篩選是為了去除初始匹配結(jié)果中位置錯誤較大的誤匹配,為第2次匹配提供優(yōu)化的匹配結(jié)果,第2次過濾則是利用優(yōu)化匹配對進行幾何校驗。
第一次篩選特征點為粗匹配。首先用暴力匹配法求出初始匹配對,接著通過漢明距離,過濾小部分特征點。對于ORB特征點,此處漢明距離是指兩個rBRIEF描述符的對應(yīng)位置上不同字符的個數(shù),過濾特征點的公式為:
DH (5) 再利用哈曼頓距離過濾掉大于經(jīng)驗值距離的點,根據(jù)多組齒輪圖像匹配效果,取這個經(jīng)驗值為10。其中哈曼頓距離計算公式為: D=|x1-x2|+|y1-y2| (6) 第二次篩選特征點是在第一次基礎(chǔ)上進行優(yōu)化,為細匹配。粗匹配后的點僅進行距離約束,還存在誤匹配的情況,需要通過改進的RANSAC算法進行特征匹配優(yōu)化。RANSAC算法[11-13]是常用的圖像匹配算法,其目的是計算出一個3×3的最優(yōu)解的單應(yīng)性矩陣H,使盡可能多的匹配特征點滿足它。通過歸一化H后,H還有8個參數(shù)需要求解,一對特征點提供2個方程求解2個參數(shù),所以至少提供4對特征匹配點對,矩陣H才會存在解。設(shè)(x,y)為參考圖像的特征點位置,(x′,y′)為待匹配圖像的特征點位置,s表示尺度參數(shù),則有: (7) 由于是線性方程,必須保證4對特征點對不能在同一直線上,才能求解H。有矩陣H確定模型,之后其余數(shù)據(jù)驗證它,不斷迭代求解出最優(yōu)模型,而此時它的代價函數(shù)Cost最小,代價函數(shù)Cost的計算公式如下: (8) RANSAC算法的主要步驟如下: 步驟1:從特征匹配點對的中隨機選取4對點對,通過計算單應(yīng)性矩陣得到模型; 步驟2:計算數(shù)據(jù)與模型的投影誤差,當小于預(yù)定閾值時,加入內(nèi)點集; 步驟3:不斷迭代,求解最優(yōu)的內(nèi)點集和計算迭代次數(shù)k,迭代終止條件為當前迭代次數(shù)大于計算迭代次數(shù)k。設(shè)p為置信度,其經(jīng)驗值為0.995,w為內(nèi)點在點集中的占比,m為最少計算點對數(shù)目,則k的計算公式如下: (9) 但是RANSAC算法是隨機獲取不同樣本數(shù)據(jù),并且算法在設(shè)立估算正確內(nèi)點閾值時無固定值,選取的模型參數(shù)有時并非數(shù)據(jù)集內(nèi)的最佳參數(shù),這樣會導(dǎo)致算法的性能在某些工作場景的匹配結(jié)果不理想。對此本文提出一種改進的 RANSAC算法,先選取金字塔光流法得到的點集進行擬合,這樣就會提前獲取到最優(yōu)參數(shù)。因為金字塔光流法能夠預(yù)估特征點在待匹配圖像中所在的位置范圍,待匹配點須滿足該位置的幾何約束。并且將模型的假設(shè)設(shè)置為模型內(nèi)正確匹配點的數(shù)大于噪聲點的數(shù)目,之后對模型中參數(shù)逐個進行驗證。這樣的選取排序方法會使RANSAC算法有效獲取到正確預(yù)估模型參數(shù),并且可以減少模型迭代的計算次數(shù),這樣可以縮短算法整體的計算時間。 本文算法是基于Ubuntu18系統(tǒng)下的Opencv4.4的環(huán)境下開發(fā),實驗的圖片來自實驗使用工業(yè)生產(chǎn)線上采集的齒輪圖像。選擇多組圖片分別用本文算法與結(jié)合RANSAC算法的原始ORB算法進行特征點匹配實驗。其中一組實驗的匹配結(jié)果分別如圖4和圖5所示。 圖4 本文算法匹配結(jié)果 圖5 傳統(tǒng)ORB算法匹配結(jié)果 對比圖4和圖5,可明顯看出改進后的算法對特征點匹配優(yōu)化效果更好,能夠篩選出較好的匹配點。傳統(tǒng)ORB算法與本文算法匹配的實驗結(jié)果數(shù)據(jù)如表1所示。從表中數(shù)據(jù)可以看出, 本文算法在優(yōu)化匹配效果和減少誤匹配率這兩方面都體現(xiàn)出顯著的效果,由于加入了金字塔光流法,使得匹配結(jié)果進一步優(yōu)化,并且從圖4與圖5對比中發(fā)現(xiàn),本文算法比ORB算法特征點散落的位置更廣,避免特征點過于集中,如齒輪左上角處。此外,本文算法誤匹配率比傳統(tǒng)ORB算法誤匹配率約減少30%。所以經(jīng)過多次實驗的證明,本文算法較傳統(tǒng)ORB算法在齒輪圖像匹配過程中匹配效果更優(yōu)。 表1 匹配結(jié)果 本文提出一種聯(lián)合金字塔光流法與ORB算法的算法來實現(xiàn)齒輪圖像特征匹配優(yōu)化。通過ORB算法獲得特征點后,利用金字塔光流法約束匹配點對,再通過改進的RANSAC算法進一步優(yōu)化匹配結(jié)果。實驗表明,本文算法能夠很好地降低齒輪特征匹配的誤匹配率。本文算法除了適用齒輪匹配,在一定程度上也適合其他工件應(yīng)用。對于算法是否適用于復(fù)雜的工況,還須進一步改進。4.2 精匹配
5 實驗結(jié)果分析
6 結(jié)論