田杰,徐忠民
(合肥工業大學 機械工程學院,安徽 合肥 230000)
圖像匹配[1]是指進行圖像處理來識別圖像中目標對象的技術,是計算機視覺技術中的重要組成部分。圖像匹配方法中基于特征的匹配方法可以快速對物體的旋轉、遮擋、縮放等圖片進行良好匹配,因此是目前最常用的方法也是研究的熱點。
基于特征的匹配方法是在模板圖像和待匹配圖像中提取特征,然后根據兩者間的關系進行圖像匹配。目前基于特征的匹配方法有SIFT算法、SURF算法、Harris角點檢測[2]等方法。2004年,Low提出了一種尺度不變特征變換算法SIFT[3],具有旋轉和尺度不變性、良好的光照適應性等優點,是目前應用最廣泛的特征匹配方法。但SIFT算法計算時間過長,據此SURF算法[4]在SIFT算法基礎上改進,大量縮短運行時間,但匹配精度有所降低。在工業上,圖像匹配一般是針對圖像中某工件的,其他區域是無效區域。因此圖像匹配時,首先要提取圖像中包含工件的部位,這些部位就是感興趣區域ROI。目前工業現場運用較多的ROI提取方法有基于區域增長和基于邊緣分割技術兩種[5]。但是針對位姿變換以及光照影響等復雜場景下的實際圖片,現有方法并不能有效提取出包含工件的感興趣區域。
為保證實際復雜項目中實時準確的進行圖像中工件的匹配,本文提出一種結合Harris角點檢測的改進SURF算法。該改進算法基于Hu不變矩和區域面積進行ROI提取,并在該區域內進行圖像匹配。采用Matlab語言實現改進算法的程序,在多種場景下進行實驗。結果表明,此方法能夠縮小圖像匹配的范圍,剔除不穩定的特征點,有效提高算法的匹配精度。
1962年,M.K.Hu提出了低階中心矩構成的7個矩不變量[6]。對于M×N數字圖像f(x,y)而言,其p+q矩和中心矩分別表示為:


p、q為2以上整數,擴展得到如下7個Hu不變矩:

區域面積的計算方法一般為種子生長法[7],但是由于姿態不同、干擾物等,其面積很難直接計算。因此統計區域內部的像素點個數來代替區域面積,計算方法如下:

其中,S代表面積,c(m,n)是區域內部的像素點,該式表示的是統計圖形區域內部的像素點的數量總和[8]。如果進行處理圖像是經過預處理的二值圖像,那么上式即是計算區域內部像素點灰度為1的個數。
實際應用中,Hu不變矩與工件形狀等相關,因此在多種姿態下其Hu矩不變,是工件區域識別的重要參考。區域面積會因為工件姿態、干擾等因素而產生變化,但是小幅度的,也是工件的有效參考。本文據此提出基于不變矩和區域面積的ROI提取方法。此方法基本思想是在實際圖像中建立移動子圖Pij,計算子圖的不變矩和面積,通過比較模板P和Pij的相似性來確定包含工件的ROI區域。
首先分別對目標工件模板圖像和子圖同時計算不變矩和面積。

其中Zka、Zkb分別為模板圖像P和子圖Pij的不變矩,其計算公式如式4所示。

其中Sp、Sij分別為模板P和子圖Pij的區域面積,其計算公式如式5所示。
設Hu不變矩的相似度閥值為WT1,區域面積相似度閥值為WT2,若子圖Pij滿足W1ij<WT1且W2ij<WT2,則認為該子圖包含工件。為提高準確度,綜合Hu矩和區域面積的優點,將W1ij與W2ij的和W作為相似度參數。W越接近0,說明子圖為感興趣區域的可能性越大;如果差異越大,則W會越大。選W最小即取相似度最高的子圖作為包含工件的ROI。圖1為實際圖片使用本文檢索感興趣區域方法的仿真結果:

圖1 本文ROI提取方法結果
圖(a)為實際圖片,圖(b)為將其他區域置為黑色而只余感興趣區域的圖片。比較可知該方法處理后,圖片中背景、干擾物都被去除,有效提取出工件區域,效果良好。
2004年6月26日—7月6日,黃河內蒙古三湖河口以下河段發生嚴重水污染事件,地方政府對烏梁素海的生態環境和周邊污染源采取多項措施進行綜合治理,在一定程度上促進了烏梁素海水質改善。據有關部門監測,2005—2008年,烏梁素海進水口水體總氮由6.03 mg/L下降至 1.31 mg/L,COD由54.4mg/L下降至26.9mg/L,總磷基本持平,說明水質已逐步好轉。
SURF算法在特征點檢測階段,由于存在錯誤檢測,提取的特征點中存在不穩定特征點,導致匹配精度不高,計算量較大。本文提出了結合Harris角點檢測算法的改進SURF算法,在特征點檢測階段對SURF提取特征點的鄰域信息進行描繪,綜合特征點及其鄰域信息認定該特征點是穩定特征點,有效剔除大部分干擾點及不穩定的特征點。
SURF算法的實現過程可以劃分為如下四個步驟:
(1)建立積分圖像與構建Hession矩陣。SURF算法積分圖像I(x,y)是圖像原點到像素點(x,y)整個矩形區域內的所有像素點灰度值之和,如下式:

SURF算法是通過Hessian矩陣提取圖像特征點的,并且利用簡化的盒式濾波器對該矩陣改進,改進后Hessian矩陣定義為:

表示尺度,Dxx、Dxy、Dyy表示的是濾波后二階微分在點(x,y)處與圖像I的卷積。SURF算法特征點的判別式如下。

式中ω是用來補償用盒子濾波器近似代替二階高斯偏導數的。

步驟(1)得到的極值點要在其3×3×3的立體空間內進行比較,當該點響應值最大時,即為特征點,插值操作即可對其定位。
(3)確定特征點主方向。SURF算法需要為特征點分配主方向。首先建立特征點為圓心,半徑為6s的圓形鄰域。然后對內部所有像素點計算在水平和垂直方向上的Haar小波響應值,根據距離進行加權處理。最后以特征點為圓心,用60°的扇形窗口掃描區域,累加扇形內所有點的響應值,值最大的方向就是特征點的主方向。
(4)特征點描述符的生成。為了構建特征點描述符,首先以特征點為中心,沿著主方向,建立大小為20s×20s的正方形窗口,并分割為4×4的正方形子區域。其次計算每個子區域內像素點水平和垂直方向上的小波響應dx和dy,形成包含的四維向量。最后每一個特征點形成64維的描述符。
Harris算法主要思想是根據窗口內區域灰度改變的劇烈程度來判斷是否遇到了角點[9],其劇烈程度通常與自相關函數的變化率有關,對于圖像I,當窗口在點(x,y)處位移(u,v)后的自相關函數表示為:

式中,窗口的中心是(x,y),(x,y)是高斯函數,M為自相關矩陣,可以根據矩陣的特征值來算出Harris角點響應值R:

式中k為經驗系數,一般為0.04~0.06。R高于特定閾值的點就是Harris角點。
本文利用Harris算法的思想對SURF算法進行改進,根據特征點鄰域內分布的信息來刻畫特征點的穩定性,剔除干擾點。因此需要先利用SURF算法進行建立積分圖像、構建Hessian矩陣、尺度空間和特征點定位的工作,但是這些特征點實際上是極值點,包含了許多不穩定的特征點,具體步驟如下:
(1)極值點的局部鄰域(本文用3×3鄰域),根據式(14)計算該點鄰域內的響應值R,然后統計所有SURF提取出的極值點鄰域的R。
(2)穩定的特征點的R既要大于某一閾值,并且需要是周圍鄰域的極大值,因此給定閾值R0,對于特征點三鄰域像素點(i,j),其角點響應值須同時滿足下式:

通過這種方法判斷以特征點為中心的鄰域內是否存在Harris角點,如果存在則認為該點是穩定特征點,將不穩定的SURF特征點剔除。
(3)利用SURF算法確定篩選之后特征點的主方向并且建立特征點描述符。
(4)特征點的匹配。經過上述步驟,可以得到模板圖像和實際圖像特征點的描述符點集。特征點匹配就是要確定兩個點集間變換關系,普通SURF算法的特征點匹配方法是歐氏距離越小表示匹配度越好,簡單快捷,但易產生誤配對。因此使用K最近鄰算法[10]可以提高特征匹配的準確度,其具體如下式:

式中計dmin算和dsecmin表示模板圖和實際圖像特征點集間的最近和次近距離,dT表示閾值,取值范圍是0.6<dT<0.8。滿足上式則判定匹配成功。
(5)特征點匹配后仍會存在大量的錯誤匹配對,為了進一步優化匹配結果,引入隨機抽樣一致性(RANSAC)算法來進行迭代優化結果[11],剔除數據組中誤匹配特征點對,提高算法匹配精度。
為了驗證本文改進算法的有效性和實用性,針對多種場景下的復雜工件,采用Matlab采集多張圖片進行算法處理驗證。
首先是原始圖像經過本文步驟所提取特征點數量變化對比圖,如圖2所示。

圖2 特征點提取實驗對比圖
圖(a)是原圖利用SURF算法提取的特征點,圖(b)是對ROI區域利用SURF算法提取的特征點,圖(c)是對ROI區域利用改進SURF算法提取的特征點。從檢測結果可以看出,ROI提取和改進SURF算法篩選留下穩定特征點,從而為后續特征匹配建立良好基礎。
利用SURF算法和改進SURF算法進行特征點匹配的對比實驗,其匹配對的連線圖如圖3:

圖3 特征點匹配對比圖
由上圖可知,改進算法進行特征匹配時能有效消除誤匹配點。為了保證實驗結果的準確性,本文采用多幅不同環境下的圖片進行匹配實驗,實驗數據見表1。
通過以上實驗數據可以看出,經過改進的SURF算法,正確匹配對數上升,即改進算法去除了大量不穩定的特征點和錯誤匹配對,有效提高了匹配精度。
本文針對實際場景下的縮放、旋轉、光照不均等情況的圖像匹配算法進行研究,提出基于Hu不變矩和區域面積的ROI提取方法,縮小匹配范圍;同時提出結合Harris角點的改進SURF算法以剔除不穩定的特征點。實驗結果表明,與傳統算法相比,本文所提出的ROI提取方法和結合Harris角點的改進SURF算法能夠有效提高圖像匹配的精度。