劉群坡,席秀蕾,楊凌霄
(河南理工大學(xué) 電氣工程與自動(dòng)化學(xué)院,河南 焦作 454000)
立體匹配是雙目視覺(jué)定位中的關(guān)鍵環(huán)節(jié),在零件裝配領(lǐng)域中應(yīng)用十分廣泛??焖贉?zhǔn)確地找到被測(cè)零件并解算出其位姿信息是目前亟需解決的一大難題。許多計(jì)算機(jī)視覺(jué)任務(wù),例如動(dòng)作識(shí)別、運(yùn)動(dòng)跟蹤、機(jī)器人導(dǎo)航和視覺(jué)定位都依賴于從目標(biāo)圖像的不同視圖提取局部特征實(shí)現(xiàn)匹配[1]。玻璃封裝電連接器是一種連接精密零件模塊和內(nèi)部電路的器件,其體積較小(直徑小于5 mm),目前依靠人工進(jìn)行裝配。為減少勞動(dòng)力成本,需采用雙目視覺(jué)引導(dǎo)機(jī)器人實(shí)現(xiàn)裝配。雙目視覺(jué)定位過(guò)程中,兩幅玻璃封裝電連接器圖像進(jìn)行立體匹配的準(zhǔn)確性影響著定位的精度,因此研究玻璃封裝連接器圖像的匹配對(duì)準(zhǔn)具有重要意義。
目前,對(duì)于匹配算法的研究主要分兩類(lèi):一類(lèi)是改進(jìn)特征描述符提高性能;另一類(lèi)是增加約束條件剔除誤匹配點(diǎn)。文獻(xiàn)[2]提出尺度不變特征變換匹配算法(Scale-Invariant Feature Transform,SIFT)。該算法通過(guò)原始圖像與高斯核進(jìn)行卷積運(yùn)算來(lái)構(gòu)建尺度空間,再在高斯差分金字塔上提取出具有尺度不變性的特征點(diǎn),具有仿射、視角、旋轉(zhuǎn)和光照不變性,在特征匹配方面獲得了廣泛的應(yīng)用。文獻(xiàn)[3]針對(duì)SIFT算法計(jì)算過(guò)程中的速度和計(jì)算量的缺點(diǎn),提出了加速穩(wěn)健特征算法(Speeded-Up Robust Features,SURF)。該方法通過(guò)運(yùn)用近似Harr小波算法進(jìn)行特征點(diǎn)提取,在不同的尺度空間上利用積分得到近似Harr小波值,減少二階微分模板的構(gòu)建,提高了特征匹配的效率。但是,這兩種方法構(gòu)建的高斯尺度空間都易忽略圖像的邊緣細(xì)節(jié)信息。文獻(xiàn)[4]通過(guò)使用非線性擴(kuò)散在非線性尺度空間中描述特征,保留了圖像的邊緣信息,并提出一種新的2D特征提取方法,即AKAZE(Accelerated KAZE Features)描述子。文獻(xiàn)[5]利用多分辨率區(qū)域檢測(cè)器MSER和光照魯棒形狀描述子從輸入圖像中提取局部區(qū)域進(jìn)行匹配,提出了一種適用于光照變化圖像的特征匹配算法。文獻(xiàn)[6]通過(guò)減小抽樣點(diǎn)總量,提出了(Oriented FAST and Rotated BRIEF,ORB)特征匹配的誤匹配點(diǎn)提出算法。文獻(xiàn)[7]針對(duì)物體重建效果差的問(wèn)題,提出了一種極限引導(dǎo)的特征匹配器RepMatch。該方法適用于寬基線和重復(fù)結(jié)構(gòu),然而玻璃封裝電連接器圖像并不適用于寬基線情況。文獻(xiàn)[8]通過(guò)利用獨(dú)特的拓?fù)?,約束增強(qiáng)局部特征的描述能力,解決了徽標(biāo)識(shí)別問(wèn)題,但是拓?fù)浼s束條件還未擴(kuò)展到通用對(duì)象。文獻(xiàn)[9]將運(yùn)動(dòng)平滑限制問(wèn)題轉(zhuǎn)化為統(tǒng)計(jì)測(cè)量,剔除了錯(cuò)誤匹配,提出了一種有效的基于網(wǎng)格的分?jǐn)?shù)估計(jì)器(Grid-based Motion Statistics,GMS)。但是GMS算法存在一個(gè)嚴(yán)重的缺陷,即沒(méi)有旋轉(zhuǎn)不變性。文獻(xiàn)[10]提出一種基于統(tǒng)一能力的算法,解決了遙感圖像的局部特征提取問(wèn)題。該方法在提取過(guò)程中使用的是經(jīng)驗(yàn)參數(shù),故具有一定的局限性。文獻(xiàn)[11]提出了一種基于關(guān)鍵點(diǎn)的復(fù)制-移動(dòng)偽造檢測(cè)技術(shù)。由于AKAZE算法利用非線性方程求出的迭代解不具有唯一性,故該方法仍存在特征點(diǎn)誤匹配問(wèn)題,從而導(dǎo)致圖像匹配準(zhǔn)確率不高。文獻(xiàn)[12]運(yùn)用FAST-SIFT算法提取肌骨圖像特征,解決了肌骨圖像拼接問(wèn)題,但該算法的實(shí)時(shí)性和實(shí)用性有待提高。文獻(xiàn)[13]結(jié)合不規(guī)則碎紙片的邊緣與顏色信息實(shí)現(xiàn)了關(guān)鍵點(diǎn)檢測(cè),但是其并不適用于邊緣比較復(fù)雜的玻璃封裝電連接器圖像。
通過(guò)以上分析,針對(duì)玻璃封裝連接器圖像匹配精度不高的問(wèn)題,本文提出基于LK(Lucas Kanade)光流和網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)的圖像匹配改進(jìn)算法。本文在AKAZE特征檢測(cè)算法的基礎(chǔ)上,融合LK光流和網(wǎng)格劃分統(tǒng)計(jì),實(shí)現(xiàn)了誤匹配點(diǎn)的剔除。
傳統(tǒng)特征檢測(cè)方法利用構(gòu)建高斯尺度空間對(duì)玻璃封裝電連接器圖像整體進(jìn)行平滑操作,容易忽略玻璃封裝電連接器的紋理細(xì)節(jié)信息。為了解決此問(wèn)題,本文利用AKAZE算法非線性濾波來(lái)構(gòu)建尺度空間并保留玻璃封裝電連接器的邊緣信息,對(duì)玻璃封裝電連接器進(jìn)行圖像局部操作。非線性濾波原理可用非線性擴(kuò)散方程式表示
?L/?t=div(c(x,y,t)×?L)
(1)
式中,L表示玻璃封裝連接器圖像的亮度矩陣;div與?L表示散度和梯度求解;t為尺度因子,該值越大,圖像表現(xiàn)的越簡(jiǎn)單;c表示傳導(dǎo)函數(shù),將擴(kuò)散應(yīng)用于圖像局部結(jié)構(gòu)。
AKAZE算法的尺度空間為金字塔形,有O組、S層。通過(guò)擴(kuò)散函數(shù),根據(jù)時(shí)間ti實(shí)現(xiàn)尺度空間的構(gòu)建。尺度參數(shù)與組數(shù)、層數(shù)之間的關(guān)系為
σi(O,S)=σ02(o+s/S)
(2)
式中,o∈[0,1,…,O-1],s∈[0,1,…,S-1],i∈[0,1,…,M-1];σ0表示初始尺度參數(shù);M為尺度空間總圖像數(shù),即M=O×S。
由于非線性擴(kuò)散濾波與時(shí)間序列相關(guān),因此需將以像素為單位的尺度參數(shù)σi轉(zhuǎn)換為時(shí)間ti。
(3)
利用快速顯示擴(kuò)散(Fast Explicit Diffusion,F(xiàn)ED)算法得出式(1)非線性擴(kuò)散方程的解,從而得出玻璃連接封裝器圖像的非線性尺度空間為
Li+1=(I+τA(Li))Li
(4)
式中,I是單位矩陣;A(Li)表示玻璃連接封裝器圖像在維度i的傳導(dǎo)矩陣;τ為步長(zhǎng),其值為ti+1-t。
在不同尺度空間下比較某一點(diǎn)與其鄰域內(nèi)的其他點(diǎn),當(dāng)Hessian矩陣取得極大值時(shí),定位玻璃封裝電連接器圖像關(guān)鍵點(diǎn)。其計(jì)算式為
(5)
式中,σ為尺度因子σi的整數(shù)值。然后根據(jù)泰勒展開(kāi)式求亞像素點(diǎn)的準(zhǔn)確位置
(6)
式中,x為特征點(diǎn)的位置坐標(biāo),求出特征點(diǎn)的亞像素坐標(biāo)為式(7)。
(7)
在梯度圖像上搜索以特征點(diǎn)為中心,以6為半徑的圓為統(tǒng)計(jì)范圍,并對(duì)其內(nèi)部所有鄰域的一階微分Lx和Ly進(jìn)行高斯加權(quán)運(yùn)算。然后用60°扇形區(qū)域繞原點(diǎn)進(jìn)行旋轉(zhuǎn),計(jì)算區(qū)域向量和,特征點(diǎn)的主方向?yàn)橄蛄亢椭凶铋L(zhǎng)的方向。
二進(jìn)制描述子由于可并行化計(jì)算,效率較高,被廣泛應(yīng)用于目標(biāo)識(shí)別、追蹤過(guò)程中[14-16]。AKAZE算法運(yùn)用M-LDB(Modified-Local Difference Binary)描述子,通過(guò)對(duì)像素進(jìn)行采樣并求其平均值,在實(shí)現(xiàn)尺度自適應(yīng)的同時(shí)保證了實(shí)時(shí)性。因此該描述子適用于匹配要求較高的玻璃封裝電連接器圖像匹配。
LK光流法廣泛應(yīng)用于目標(biāo)跟蹤領(lǐng)域,但其在特征點(diǎn)匹配方面的應(yīng)用較為有限[17-18]。在檢測(cè)到玻璃封裝電連接器關(guān)鍵點(diǎn)后,需找到其匹配區(qū)域并找到特征點(diǎn)對(duì),然后利用LK光流法跟蹤玻璃封裝電連接器圖像特征點(diǎn),從而找到匹配區(qū)域。
假設(shè)有兩張玻璃封裝電連接器灰度圖像I和J,其在[x,y]處的灰度值分別為I(x,y)和J(x,y),圖像I上存在一像素點(diǎn)u=[ux,uy]匹配到圖像J上的像素點(diǎn)v=u+d=[ux+dx]T使得I(ux,uy)和J(ux+dx,uy+dy)之間的誤差最小。位移d=[dx,dy]T表示像素點(diǎn)u和v的光流。在點(diǎn)u為中心的圖像范圍[2ωx+1,2ωy+1]內(nèi),通過(guò)求匹配誤差最小值的平方和來(lái)求解d的取值。此損失函數(shù)可表示為式(8)。
(8)
算法的主要流程是將玻璃封裝電連接器圖像金字塔分層,下層為上層的1/2,最頂層為分辨率低的圖像,最底層為原始圖像,依次從頂層遞歸求解到底層為止。假設(shè)第L層的損失函數(shù)為
(9)
式中,gL和dL分別為像素點(diǎn)進(jìn)行第L層迭代運(yùn)算的光流初值和誤差。
按照泰勒展開(kāi)式可得
(10)
則光流極值dopt=G-1b。根據(jù)光流d,確定待匹配玻璃封裝電連接器圖像上所在位置,進(jìn)而求解匹配區(qū)域。
經(jīng)上述LK光流法求出匹配區(qū)域,下一步需實(shí)現(xiàn)特征匹配。目前較常用的算法是暴力算法(Brute Force,BF)算法和高維數(shù)據(jù)的快速最近鄰(Fast Library Approximate Nearest Neighbor Search,F(xiàn)LANN)算法。BF算法的思想為計(jì)算某一特征描述子與另外全部描述子間的距離,并對(duì)該距離進(jìn)行排序,利用最小距離得到匹配點(diǎn)。FLANN算法是進(jìn)行最近鄰搜索的開(kāi)源庫(kù),可優(yōu)化大數(shù)據(jù)集的快速最近鄰搜索和高維特征。由于BF算法只根據(jù)描述子之間的距離判斷匹配點(diǎn)出現(xiàn)誤匹配問(wèn)題,故采用FLANN算法完成特征匹配。
玻璃封裝電連接器圖像初始匹配后得到部分相應(yīng)的匹配點(diǎn)集A,如式(11)所示。正確匹配點(diǎn)鄰域內(nèi)的特征點(diǎn)數(shù)較多,因此可根據(jù)此差異來(lái)剔除錯(cuò)誤匹配。
Ai,L-R={a1,a2,…,an}
(11)
匹配點(diǎn)對(duì)分布情況可表示為
(12)
式中,ai表示匹配的區(qū)域和待匹配區(qū)域的匹配點(diǎn)對(duì);K代表小鄰域附近的數(shù);n是匹配對(duì)數(shù)目;p1和p2分別為正確和錯(cuò)誤匹配率。圖1為玻璃封裝電連接圖像特征分布圖。
本文根據(jù)概率評(píng)估標(biāo)準(zhǔn)函數(shù)取值大小來(lái)決定是否剔除匹配點(diǎn)。
(13)
圖1 特征分布圖Figure 1. Feature distribution diagram
玻璃封裝電連接器圖像利用AKAZE算法提取特征求解偏微分方程時(shí)會(huì)產(chǎn)生多組解,因此會(huì)產(chǎn)生誤匹配問(wèn)題。為解決此問(wèn)題,本文提出基于LK光流和網(wǎng)格劃分統(tǒng)計(jì)的圖像匹配改進(jìn)算法。算法流程如圖2所示。
圖2 算法流程圖Figure 2. Algorithm flow chart
算法包括以下幾個(gè)步驟:
步驟1在原始玻璃封裝電連接器圖像上進(jìn)行特征提取并描述AKAZE特征點(diǎn);
步驟2對(duì)兩幅玻璃封裝電連接器圖像進(jìn)行特征描述后構(gòu)建圖像金字塔,利用LK算法中的式(8)求解出光流得到匹配區(qū)域,追蹤特征點(diǎn);
步驟3對(duì)特征點(diǎn)進(jìn)行檢測(cè)和描述過(guò)后再進(jìn)行特征匹配,運(yùn)用FLANN算法庫(kù)實(shí)現(xiàn)此功能;
步驟4玻璃封裝電連接器圖像經(jīng)FLANN特征匹配出現(xiàn)部分錯(cuò)誤匹配點(diǎn),此時(shí)將玻璃封裝電連接器圖像劃分成多個(gè)網(wǎng)格并計(jì)算其特征點(diǎn)鄰域內(nèi)的匹配點(diǎn)個(gè)數(shù)。根據(jù)式(11)求解概率值,該值越大,則正確匹配概率越高。
為了檢驗(yàn)算法的匹配能力,利用公開(kāi)數(shù)據(jù)集Mikolajczyk[19]和實(shí)際場(chǎng)景玻璃封裝電連接器圖像進(jìn)行仿真實(shí)驗(yàn),并將本文算法與SIFT算法、SURF算法、AKAZE算法進(jìn)行比較,從匹配效果和算法耗時(shí)兩個(gè)方面對(duì)算法進(jìn)行評(píng)價(jià)。實(shí)驗(yàn)環(huán)境采用CPU為Intel Core i5,1.60~1.80 GHz,內(nèi)存為8 GB,64位Windows10操作系統(tǒng)的PC機(jī)。本文算法實(shí)驗(yàn)基于OenCV3.4.2實(shí)現(xiàn),編程語(yǔ)言為Python,編程環(huán)境為Pycharm 2017。實(shí)驗(yàn)包括3個(gè)部分:(1)模糊圖像匹配實(shí)驗(yàn);(2)亮度變化匹配實(shí)驗(yàn);(3)旋轉(zhuǎn)變化匹配實(shí)驗(yàn)。圖3(a)~圖3(c)為公共數(shù)據(jù)集中的Bike、Leuven、Boat圖像對(duì),圖3(d)~圖3(g)表示玻璃封裝連接器圖像的模糊狀態(tài)、亮度及旋轉(zhuǎn)變化下的狀態(tài)。
(a)
為驗(yàn)證本文算法針對(duì)模糊圖像的匹配性能,利用Bike圖像和經(jīng)高斯模糊處理的玻璃封裝連接器圖像得到了模糊匹配結(jié)果,如圖4所示。通過(guò)對(duì)圖4中的數(shù)據(jù)進(jìn)行分析可知,其他算法對(duì)模糊圖像匹配較為敏感。本文算法由于增加了匹配約束條件,因此對(duì)模糊圖像匹配具有抗干擾能力。
(a) (b)
在實(shí)際應(yīng)用場(chǎng)合匹配過(guò)程中,圖像亮度變化是常見(jiàn)現(xiàn)象。為檢驗(yàn)算法對(duì)不同亮度圖像的匹配能力,本文利用Leuven圖像和實(shí)際場(chǎng)景中的玻璃封裝電連接器圖像對(duì),實(shí)現(xiàn)了不同的亮度匹配效果,具體如圖5所示。根據(jù)表1可知,當(dāng)玻璃封裝電連接器圖像變亮?xí)r,本文算法的準(zhǔn)確率仍高于其他算法,說(shuō)明本文算法抗光照能力較強(qiáng)。
(a) (b)
為驗(yàn)證本文算法對(duì)圖像具有旋轉(zhuǎn)不變性,本文利用Boat圖像和存在旋轉(zhuǎn)變化的玻璃封裝電連接器圖像對(duì),將本文算法分別與SIFT算法、SURF算法、AKAZE算法作對(duì)比。根據(jù)實(shí)驗(yàn)結(jié)果可知,針對(duì)旋轉(zhuǎn)變化玻璃封裝電連接器圖像,通過(guò)構(gòu)建非線性尺度空間,本文算法準(zhǔn)確率可達(dá)到93.39%,時(shí)間為0.4 s。
(a) (b)
匹配效果主要通過(guò)匹配正確率和時(shí)間來(lái)衡量。CMR表示匹配正確率,其含義為正確點(diǎn)對(duì)數(shù)與匹配點(diǎn)對(duì)數(shù)值的比值百分比,該值越大表示匹配準(zhǔn)確度越高。本文算法、SIFT算法、SURF算法和AKAZE的匹配準(zhǔn)確率結(jié)果如圖7和表1所示。通過(guò)對(duì)下圖中公開(kāi)數(shù)據(jù)集和玻璃封裝電連接器圖像匹配點(diǎn)對(duì)數(shù)和正確率的分析可知,利用SIFT算法檢測(cè)到的匹配點(diǎn)對(duì)數(shù)最多,但是其正確率較低。雖然利用本文算法得到的匹配對(duì)數(shù)量較少,但和其他算法相比,本文算法的準(zhǔn)確率有所提高。本文算法不僅通過(guò)LK光流法跟蹤匹配區(qū)域,還將玻璃封裝電連接器圖像進(jìn)行網(wǎng)格劃分來(lái)剔除錯(cuò)誤匹配,較大程度提高了匹配準(zhǔn)確率。
將本文算法與SIFT、SURF、AKAZE算法的耗時(shí)進(jìn)行比較,如圖8和表1所示為4種算法的耗時(shí)結(jié)果。由圖8可看出,SIFT和SURF耗時(shí)較長(zhǎng),AKAZE耗時(shí)最短,本文算法比AKAZE耗時(shí)稍長(zhǎng),但仍比前兩種高效。前兩種算法運(yùn)用歐氏距離實(shí)現(xiàn)相似度量,耗時(shí)較長(zhǎng)。AKAZE算法使用二進(jìn)制描述子M-LDB保證了算法的快速性。本文算法在特征匹配時(shí)增加了約束條件,并利用網(wǎng)格劃分剔除誤匹配點(diǎn),從而導(dǎo)致時(shí)間增加,但本文算法在保證匹配正確率的同時(shí)有效減少了錯(cuò)誤匹配點(diǎn)數(shù)。
圖7 Boat數(shù)據(jù)、Leuven數(shù)據(jù)和Bike數(shù)據(jù)匹配正確率比較Figure 7. Comparison of matching accuracy among Boat data, Leuven data and Bike data
圖8 Boat數(shù)據(jù)、Leuven數(shù)據(jù)和Bike數(shù)據(jù)耗時(shí)比較Figure 8. Comparison of time consumption among Boat data, Leuven data and Bike data
表1 玻璃封裝電連接器圖像匹配正確率及時(shí)間比較
為解決玻璃封裝連接器圖像匹配過(guò)程中存在的誤匹配和耗時(shí)長(zhǎng)問(wèn)題,本文提出基于LK光流和網(wǎng)格劃分統(tǒng)計(jì)的改進(jìn)AKAZE匹配算法,利用增加約束條件解決了錯(cuò)誤匹配較多的問(wèn)題。在AKAZE特征檢測(cè)方法的基礎(chǔ)上,構(gòu)建圖像金字塔作為L(zhǎng)K光流的控制點(diǎn),對(duì)匹配區(qū)域進(jìn)行計(jì)算,并利用FLANN匹配后的特征點(diǎn)進(jìn)行網(wǎng)格劃分統(tǒng)計(jì)來(lái)減少錯(cuò)誤匹配。結(jié)果表明,玻璃封裝連接器圖像在旋轉(zhuǎn)、光照和模糊情況下仍能有效提高匹配準(zhǔn)確率,并降低運(yùn)行時(shí)間。