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