楊倩蘭,宋麗梅,黃浩珍,朱新軍
(天津工業(yè)大學(xué) 控制科學(xué)與工程學(xué)院天津市電氣裝備智能控制重點(diǎn)實(shí)驗(yàn)室,天津 300387)
制造業(yè)是國(guó)民經(jīng)濟(jì)的支柱產(chǎn)業(yè),其現(xiàn)代化程度決定著經(jīng)濟(jì)發(fā)展的廣度和高度。計(jì)算機(jī)集成制造系統(tǒng)(Computer Integrated Manufacturing System, CIMS)是以計(jì)算機(jī)為工具,以集成為主要特征的自動(dòng)化系統(tǒng)[1],是制造業(yè)現(xiàn)代化水平的集中體現(xiàn)。計(jì)算機(jī)視覺(jué)是CIMS的基礎(chǔ)技術(shù)[2],圖像匹配是計(jì)算機(jī)視覺(jué)應(yīng)用研究的主要內(nèi)容,其中,圖像特征匹配是基于圖像的幾何特征,如邊緣、輪廓、拐點(diǎn)、線段等,通過(guò)一定的算法,在兩幅或多幅圖像之間識(shí)別同名點(diǎn)的過(guò)程,主要應(yīng)用于目標(biāo)識(shí)別[3]、目標(biāo)跟蹤[4]、三維重建[5]和缺陷檢測(cè)[6]等領(lǐng)域。特征匹配因其特征性強(qiáng)、匹配結(jié)果可靠、速度快、魯棒性較好,在計(jì)算機(jī)集成制造領(lǐng)域有廣闊的應(yīng)用前景。針對(duì)圖像特征的匹配,研究了各種各樣的算法,目前常用的有SIFT(scale-invariant feature transform)算法[7]、SURF(speeded up robust feature)算法[8]、ORB(oriented FAST and rotated BRIEF)算法[9]三大體系。SIFT算法由LOWE[7]于1999年提出,并于2004年完善。該算法的優(yōu)點(diǎn)是特征穩(wěn)定,對(duì)旋轉(zhuǎn)、尺度變換、亮度保持不變性,對(duì)視角變換、噪聲也有一定程度的穩(wěn)定性,缺點(diǎn)是實(shí)時(shí)性不高,并且對(duì)于邊緣光滑目標(biāo)的特征點(diǎn)提取能力較弱。于是BAY等[8]對(duì)SIFT算法進(jìn)行改進(jìn),于2006年提出SURF算法,在繼承了SIFT算法優(yōu)點(diǎn)的基礎(chǔ)上,對(duì)SIFT算法實(shí)現(xiàn)了提速,但運(yùn)行效率還不高,而且存在誤匹配或匹配點(diǎn)稀少的問(wèn)題。2011年RUBLEE等[9]提出了ORB算法,該算法的運(yùn)行效率高,但是不具備尺度不變性,匹配精度有待提高。
完善經(jīng)典算法使其適應(yīng)現(xiàn)實(shí)需要成為了研究熱點(diǎn)。廖泓真等[10]為了提高ORB算法的準(zhǔn)確率,用網(wǎng)格化處理圖像,引入四叉樹(shù)結(jié)構(gòu),解決特征點(diǎn)集中問(wèn)題,利用高斯核加權(quán)處理網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)結(jié)果。PANG等[11]提出一種改進(jìn)的基于粒子群算法的球體特征點(diǎn)圖像匹配方法,該方法在原算法的基礎(chǔ)上有效地提高了匹配精度,但耗時(shí)較長(zhǎng)。XU等[12]提出一種改進(jìn)的自適應(yīng)R-L分?jǐn)?shù)階微分SIFT算法,提高了匹配精度,特別適用于梯度較小或紋理較弱、邊緣較弱的圖像匹配。CHEON等[13]提出一種增強(qiáng)型加速魯棒特征(eSURF)算法,該算法時(shí)間節(jié)省約30%,內(nèi)存節(jié)省約35.7%,而eSURF算法的特征提取性能與傳統(tǒng)的SURF算法完全相同。大量研究表明,匹配速度快的ORB算法研究潛力更大,但還存在準(zhǔn)確性差、不具備尺度不變性等問(wèn)題,需要在研究中進(jìn)一步完善。
本文提出改進(jìn)的ORB算法,在特征點(diǎn)檢測(cè)階段,使用ORB和SURF同時(shí)檢測(cè)特征點(diǎn);在立體匹配階段,利用外極線約束減小匹配搜索范圍。因此,本文改進(jìn)的ORB算法具備匹配點(diǎn)數(shù)多、匹配速度快、匹配準(zhǔn)確率高和尺度不變性的優(yōu)點(diǎn)。
采用oFAST與SURF算法檢測(cè)特征點(diǎn),rBRIEF描述子描述特征點(diǎn),在Hamming距離對(duì)特征點(diǎn)進(jìn)行粗匹配的基礎(chǔ)上,引入極線約束篩選特征點(diǎn)并進(jìn)行精匹配。本文改進(jìn)的ORB算法流程如圖1所示。
1.1.1 oFAST檢測(cè)特征點(diǎn)
(1)極亮暗點(diǎn)判斷
如圖2所示,在以像素P為中心,3為半徑的圓上,取16個(gè)像素點(diǎn)(p1、p2、…、p16)。像素值為Ip,Ixi(i=1,2,3,…,16),閾值為T(mén)(IP,Ixi,T取值范圍都在0~255之間)。
首先使用式(1)計(jì)算p1、p9、p5、p13與中心P的像素差,若其絕對(duì)值有至少3個(gè)超過(guò)閾值,則使用式(1)計(jì)算p1~p16這16個(gè)點(diǎn)與中心P的像素差,若其絕對(duì)值有至少連續(xù)9個(gè)超過(guò)閾值,則P是角點(diǎn);否則,P不可能是角點(diǎn)。
(1)
(2)非極大值抑制
在以特征點(diǎn)P為中心的一個(gè)鄰域(如3×3或5×5)內(nèi),判斷每個(gè)特征點(diǎn)的s值(即score值,是16個(gè)點(diǎn)與中心差值的絕對(duì)值總和),若P是鄰域所有特征點(diǎn)中響應(yīng)值最大的,則保留;否則,抑制。若鄰域內(nèi)只有一個(gè)特征點(diǎn)(角點(diǎn)),則保留。得分計(jì)算公式如式(2)所示:
(2)
其中:V表示得分,t表示閾值,Pixvalue和value均表示16個(gè)點(diǎn)的像素值,p是該點(diǎn)的像素值。
(3)特征點(diǎn)附加方向
首先計(jì)算圖像矩(image moment),圖像塊的力矩如式(3)所示:
(3)
其中I(x,y)為灰度值。則質(zhì)心位置為:
(4)
特征點(diǎn)中心與質(zhì)心連線的向量即為oFAST特征點(diǎn)的方向。其角度:
θ=atan2(m01,m10)。
(5)
1.1.2 SURF算法檢測(cè)特征點(diǎn)
(1)建立積分圖像
如圖3所示,積分圖像中任意一點(diǎn)(x,y)的值為原圖像左上角到任意點(diǎn)(x,y)相應(yīng)的對(duì)焦區(qū)域的灰度值的總和,其數(shù)學(xué)公式如式(6)所示:
(6)
計(jì)算區(qū)域4個(gè)頂點(diǎn)在積分圖像里的值,便可以得出該區(qū)域的積分,其數(shù)學(xué)公式如式(7)所示:
I(x3,y3)+I(x1,y1)。
(7)
(2)構(gòu)建尺度空間
像素點(diǎn)函數(shù)f(x,y)和其偏導(dǎo)數(shù)構(gòu)成的海塞矩陣:
(8)
海塞矩陣通過(guò)高斯差分后得到近似估計(jì)的海塞矩陣:
(9)
海塞矩陣的特征值由式(10)得出,若特征值是正數(shù)則為極值點(diǎn),根據(jù)極值點(diǎn)便能獲得表示海塞行列式近似值的圖像。
det(Happrox)=DxxDyy-(0.9Dxy)2。
(10)
使用不同尺寸的盒子濾波器(Boxfilter),在濾波的過(guò)程中完成尺度變化。生成圖像金字塔即為尺度空間。尺度空間中盒子濾波器尺寸分布如圖4所示。
圖中,9×9尺寸的盒子濾波器是σ=1.2時(shí)的高斯二階微分函數(shù)經(jīng)過(guò)離散和減裁后的濾波模板。每一層對(duì)應(yīng)的σ與濾波模板尺寸之間的關(guān)系式為σ=1.2×L/9。濾波器尺寸:
FilterSize=3(2octave×interval+1)。
(11)
式中octave、interval都是從1開(kāi)始,即當(dāng)?shù)贠組第0層時(shí),式中octave=1,interval=1。這樣就形成了一個(gè)由O組L層組成的尺度空間,得到的圖像金字塔如圖5所示。
每一組中任意一層包括Dxx,Dyy,Dxy3種盒子濾波器。對(duì)一幅輸入圖像進(jìn)行濾波后,通過(guò)海塞行列式計(jì)算公式,可以得到對(duì)于尺度坐標(biāo)下的海塞行列式的值,所有海塞行列式值構(gòu)成一幅海塞行列式圖像。如圖6所示。
查找積分圖,對(duì)圖像上不同區(qū)域間像素和進(jìn)行加減運(yùn)算,可以得到該尺度空間下的局部極值點(diǎn)。
(1)BRIEF描述子
以特征點(diǎn)為中心,對(duì)S×S(31×31)鄰域內(nèi)5×5的隨機(jī)子窗口用σ=2的高斯核卷積。然后,以一定采樣方式(x,y均服從Gauss(0,S2/25)各向同性采樣)選取N(256)個(gè)點(diǎn)對(duì),按式(12)進(jìn)行二進(jìn)制賦值:
(12)
其中p(x),p(y)分別是隨機(jī)點(diǎn)x=(u1,v1),y=(u2,v2)的像素值。則N個(gè)點(diǎn)對(duì)的二進(jìn)制字符串:
(13)
(2)BRIEF附加旋轉(zhuǎn)
在特征點(diǎn)S×S(一般S取31)鄰域內(nèi)選取n對(duì)二進(jìn)制特征點(diǎn)的集合(x1,y1)…(xi,yi),引入一個(gè)2×n的矩陣,如式(14)所示:
(14)
gnd(p,θ):=fnd(p)|(xi,yi)∈Sθ。
(15)
1.3.1 Hamming距離粗匹配
按式(16)計(jì)算兩特征點(diǎn)描述子的Hamming距離,小于128則為匹配點(diǎn)對(duì)。
(16)
1.3.2 外極線約束精匹配
極線約束[14]如圖7所示,物點(diǎn)P在兩個(gè)攝像機(jī)成像上的投影分別為p0和p1。兩個(gè)攝像機(jī)的光心分別為C0和C1,由攝像機(jī)光心和物點(diǎn)P組成的平面稱(chēng)為極平面(epipolar plane),極平面和左右圖像平面的交叉線l0和l1稱(chēng)為極線(epipolar line),e0和e1為極點(diǎn)(eppipole)。
其中,基本矩陣F為3×3矩陣,約束方程如式(17)所示:
(17)
F包含了一個(gè)任意的縮放因子,因此F包含了3×3-1=8個(gè)未知量,本文采用8點(diǎn)算法求解。點(diǎn)p0和p1的坐標(biāo)分別表示為(x1,y1,1)T、(x2,y2,1)T。對(duì)點(diǎn)p0和p1做內(nèi)積得:
(x2x1,x2y1,x2,y2x1,y2y1,y2,x1,y1,1)f=0。
(18)
式中:矢量f表示由F的元素組成并按優(yōu)先順序排列的維矢量,F(xiàn)ij表示F的第i行第j列元素,如式(19)所示:
f=(F11,F12,F13,F21,F22,F23,F31,F32,F33)。
(19)
選8組匹配點(diǎn)的集合,設(shè)第n組中X和Y坐標(biāo)第一個(gè)下標(biāo)為n,得到如式(20)所示線性方程組:
(20)
由此方程組求解F。
再將相關(guān)數(shù)據(jù)代入即可求出對(duì)應(yīng)點(diǎn)的外極線方程,如式(21)所示:
a×u+b×v+c=0。
(21)
其中,a、b、c為外極線方程的參數(shù),u、v表示滿(mǎn)足極線方程的點(diǎn)。
實(shí)驗(yàn)使用的電腦處理器為Intel? CoreTMi5-8250UCPU @ 1.60 GHZ 1.80 GHZ,內(nèi)存8.00 GB,并使用VS2013配置OPENCV2.4.11進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)之前硬件系統(tǒng)需要標(biāo)定,這是為之后的極線約束篩選鋪路。
ORB閾值、SURF閾值和極線約束閾值都會(huì)對(duì)本文改進(jìn)算法的實(shí)驗(yàn)結(jié)果產(chǎn)生影響,ORB、SURF和極線約束的閾值過(guò)大,匹配的實(shí)時(shí)性和準(zhǔn)確率都會(huì)降低;ORB、SURF和極線約束的閾值過(guò)小,特征點(diǎn)匹配預(yù)留的點(diǎn)數(shù)過(guò)少,不利于后續(xù)圖像匹配。因此,選擇合理的閾值是圖像匹配的關(guān)鍵。本文采集13種樣本,通過(guò)控制變量法進(jìn)行隨機(jī)實(shí)驗(yàn),獲取ORB、SURF和極線約束最佳的閾值參數(shù)組合。
隨機(jī)抽取8種樣本進(jìn)行實(shí)驗(yàn)。按照樣本選取順序進(jìn)行排序編號(hào),1組是充電器插頭,2組是食品袋,3組是燈泡,4組是酸奶盒,5組是花,6組是飲料瓶,7組是手電筒,8組是單詞書(shū)。
圖8~圖10表明了不同閾值對(duì)于匹配準(zhǔn)確度的影響,圖11~圖13表明了各個(gè)樣本在不同閾值下實(shí)驗(yàn)的匹配點(diǎn)數(shù),表1統(tǒng)計(jì)了不同實(shí)驗(yàn)對(duì)象最佳匹配效果的閾值參數(shù)。
表1 最佳匹配效果閾值匯總表
圖8~圖13表明,隨著SURF閾值、ORB閾值、極線約束閾值的增加,所有實(shí)驗(yàn)樣本的匹配準(zhǔn)確率都會(huì)下降,而其匹配點(diǎn)數(shù)都會(huì)增加,除3組實(shí)驗(yàn)樣本外,其他實(shí)驗(yàn)樣本匹配的準(zhǔn)確率都保持在95%以上;綜合匹配準(zhǔn)確率和匹配點(diǎn)對(duì)數(shù)量?jī)蓚€(gè)方面,由圖8~圖13和表1可以看出,對(duì)于大多數(shù)實(shí)驗(yàn)樣本而言,最佳的閾值參數(shù)組合為SURF算法閾值0.9、ORB算法閾值8 000、極線約束閾值5。
通過(guò)上述實(shí)驗(yàn),選定實(shí)驗(yàn)閾值,對(duì)SURF算法、ORB算法和本文改進(jìn)算法進(jìn)行實(shí)驗(yàn)對(duì)比,并對(duì)本文改進(jìn)算法進(jìn)行尺度不變性實(shí)驗(yàn)。
隨機(jī)采取8種樣本進(jìn)行實(shí)驗(yàn),對(duì)比改進(jìn)算法與原始ORB算法、SURF算法的匹配點(diǎn)數(shù)、匹配時(shí)間和匹配準(zhǔn)確率。按照樣本選取順序進(jìn)行排序編號(hào),1組是燭臺(tái),2組是紙杯,3組是遙控器,4組是土豆,5組是燈泡底座,6組是單詞書(shū),7組是手電筒,8組是飲料瓶。實(shí)驗(yàn)效果如圖14~圖16,實(shí)驗(yàn)結(jié)果匯總于圖17~圖19和表2~表4中。
表2 實(shí)驗(yàn)樣本匹配點(diǎn)對(duì)數(shù) 對(duì)
表3 實(shí)驗(yàn)樣本匹配時(shí)間 s
表4 實(shí)驗(yàn)樣本匹配準(zhǔn)確率 %
表2實(shí)驗(yàn)結(jié)果表明,本文改進(jìn)ORB算法所得到的匹配點(diǎn)對(duì)數(shù)平均值是SURF算法所得匹配點(diǎn)對(duì)數(shù)平均值的1.5倍左右,與ORB算法所得匹配點(diǎn)對(duì)數(shù)平均值基本相當(dāng)。由實(shí)驗(yàn)樣本可知,對(duì)于紋理清晰結(jié)構(gòu)簡(jiǎn)單的實(shí)驗(yàn)樣本,本文的改進(jìn)ORB算法匹配點(diǎn)對(duì)數(shù)最佳;對(duì)于紋理模糊結(jié)構(gòu)復(fù)雜的實(shí)驗(yàn)樣本,本文的改進(jìn)ORB算法匹配點(diǎn)對(duì)數(shù)較少,但是匹配的效果最佳。表3實(shí)驗(yàn)結(jié)果表明,實(shí)時(shí)性上,本文改進(jìn)ORB算法的平均速度比SURF算法的平均速度提高了22%,與ORB算法的平均速度基本相當(dāng)。表4實(shí)驗(yàn)結(jié)果表明,在準(zhǔn)確性上,本文改進(jìn)ORB算法準(zhǔn)確性接近100%。由準(zhǔn)確率平均值得出,本文改進(jìn)ORB算法比SURF算法提高了2倍左右,比原始ORB算法提高1.7倍左右。
本文改進(jìn)算法在原有ORB算法基礎(chǔ)上加入了尺度不變性,隨機(jī)抽取8種樣本進(jìn)行尺度不變性驗(yàn)證實(shí)驗(yàn)。按照樣本采集順序進(jìn)行排序編號(hào),1組是充電器插頭,2組是食燭臺(tái),3組是食品袋,4組是紙杯,5組是燈泡,6組是遙控器,7組是酸奶盒,8組是土豆。實(shí)驗(yàn)效果如圖20所示。實(shí)驗(yàn)結(jié)果匯總于圖21~圖22和表5中。
表5 尺度不變性匹配點(diǎn)數(shù)、時(shí)間、準(zhǔn)確率
由表5可知,在改變尺度的條件下,本文改進(jìn)ORB算法匹配的準(zhǔn)確率較高、匹配效果好,即本文改進(jìn)算法具有尺度不變性,從而驗(yàn)證了改進(jìn)算法的可行性。
本文提出了一種改進(jìn)的ORB算法以解決傳統(tǒng)ORB算法不具尺度不變性和匹配準(zhǔn)確度不高的問(wèn)題。首先,將ORB算法融合SURF算法的特征檢測(cè),解決ORB算法尺度不變性問(wèn)題,其次通過(guò)極線約束進(jìn)行特征點(diǎn)篩選,以提高ORB算法的匹配準(zhǔn)確度。本文對(duì)SURF算法、ORB算法及改進(jìn)算法進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果表明,改進(jìn)的ORB算法不但具有尺度不變性,而且在匹配時(shí)間上比SURF算法快,匹配的準(zhǔn)確度上比ORB算法高。但是,在實(shí)驗(yàn)中也發(fā)現(xiàn)改進(jìn)的ORB算法對(duì)弱紋理區(qū)域仍然不敏感,提取的特征點(diǎn)較少,這是需要進(jìn)一步研究的方向。