國藝美 畢 波 唐錦萍 辛德元
(1.東北石油大學數學與統計學院 大慶 163318)(2.海南醫學院公共衛生與全健康國際學院 海口 571199)(3.黑龍江大學數據科學與技術學院 哈爾濱 150080)
在計算機視覺[1]中,圖像配準是其非常重要的研究領域,而圖像配準更是圖像處理研究中一個不可避免的典型問題。近年來在圖像配準方面提出了多種圖像配準方法[3]。經研究表明,人們越來越重視基于特征的圖像匹配方法,其在移動機器人導航[7]、運動識別[8]、三維立體重建[9]等方面都得到了大范圍的應用。David Lowe等在1999年提出了SIFT(Scale Invariant Feature Transformation)算法[10],該算法對多種圖像變化和外界條件變化對圖像配準的影響具有魯棒性,因此在圖像配準領域應用廣泛。由于SIFT算法的最大缺點是描述子的構建時間過長,不具有實時性,從而引發了大家紛紛研究的熱潮。在眾多的研究算法中,大多數改進算法是針對減少算法運行所花費時間的問題[11]。例如2008年,劉立等[13]采用基于圓形框的12維向量有效表示一個特征點的方法,以此降低了時間復雜度。2010年,劉健等[14]采用了對數極坐標變換進行圖像粗匹配,結合歐氏距離和Procrustes迭代算法[15]獲得圖像的相應特征點對,最終完成圖像配準的方法。
本文受在2017年張紅民等[16]提出算法的啟發,算法采用對待匹配圖像分塊,根據各子塊信息熵[17]大小決定是否進行特征提取的算法。由于其算法是將子圖特征類型判斷閾值設置為經驗值,沒有根據子圖的信息自適應來設定閾值,現針對此問題做出改進,并新增剔除二值化圖像[18]連通區域[19]的方法,進一步精確圖像中需要提取特征的待檢測區域。
首先建立高斯尺度空間和DOG金字塔,每個點若是其DOG空間上下兩層即26個鄰域內的極值,則該點為特征點。再通過曲線擬合,低對比度篩選和消除邊緣效應確定最終的特征點。
以每一特征點的鄰域梯度方向上的分布特征作為該點的主方向,以此來保證特征點具有旋轉不變性

式(1)、(2)分別為(x,y)處的模值和方向公式,L即該特征點所對應的尺度。在這里需加上一個權重,也就是以特征點為圓心做高斯濾波,給它周圍的點加上一個高斯權重。高斯函數的方差是與這個特征點所在圖像層的尺度σ有關的,也就是1.5σ。然后在以關鍵點為中心的鄰域內采樣,用直方圖對其像素分布進行統計。其中直方圖范圍為0~360°,每10°作為一個單位,一共有36個方向。該點鄰域梯度的主方向就是直方圖的最大值的方向,輔助方向則是大于最大峰值80%的方向。
在以特征點為中心的16×16的窗口內,再將其均勻分成4×4的小窗口,然后計算每個子窗口8個方向的梯度累計值,從而生成了4×4×8=128維的特征向量。
SIFT算法的眾多優良特性使其具有很好的研究價值,但又因為其128維特征描述子的構建花費時間較長,而使該算法不具有實時性,影響其在實際中的應用。現針對此問題,本文在張紅民等的算法基礎上又做了進一步的改進,旨在精確圖像中待檢測的區域。
我們知道在一幅圖像中,在灰度變化明顯的地方必然會出現較多的特征點。所以在做圖像配準時,對一張圖像的檢測,可以去掉沒必要檢測的灰度變化不明顯的區域,以此來減少特征點檢測和接下來描述子構建所需要花費的時間。這樣做在一定程度上也避免了部分虛擬特征點的產生。
在這里,我們采用對圖像循環分塊,去掉子塊信息熵[1]滿足規定條件的子塊的方法精確圖像的待檢測區域。具體流程如下:
1)對圖像進行均勻分塊,分成m×m個子塊,m初始值為3(當圖像的寬和高不能被整除時,對邊緣像素重復計算,以此來簡化算法)。計算所有子塊的信息熵和所有子塊信息熵的標準差。
2)對當標準差大于等于閾值T時停止分塊,在這里閾值取經驗值0.6。然后計算此時所有子塊信息熵的均值。受切比雪夫不等式(式(3))性質的啟發,其中μ為數學期望,σ2為方差,ε為任意整數,當ε=2σ時在所有數據中,至少有3/4的數據位于平均數兩個標準差范圍內。那么在這里為避免去除圖像過多有用信息,規定在圖像中僅去除所有子塊中子塊信息熵低于平均值減去一個標準差的部分。當閾值沒達到T時,繼續分塊,m=m+1。m最大取10,當m為10時,標準差仍不滿足條件也停止分塊,以當前標準差進行正常計算。

將圖片二值化,求取圖像連通區域,在第一步篩選后的圖像待檢測區域中再去除聯通區域的部分,從而得到最終的待檢測像素區域。
在經過兩步篩選后,對已精確待檢測區域的圖像進行SIFT算法特征檢測并生成PCA-SIFT描述子,使用最近鄰與次近鄰之比的算法完成圖像配準。
為了驗證本文算法的效果進行如下實驗,本實驗對象為圖1的三組圖像。圖像大小分別為:圖1(a)359×403;圖1(b)400×320;圖1(c)400×266。

圖1 三組待檢測圖像
首先分別計算每一組圖像需要分塊的數量,在這里我們的標準差(var)閾值取經驗值0.6。從m=3開始將圖片均勻分成m×m塊,當圖像的寬和高不能被整除時,對邊緣像素重復計算,以此來簡化算法。當標準差大于等于0.6時停止分塊,計算所有子塊信息熵的均值(mean),然后在整幅圖像中去掉所有子塊中信息熵滿足式(4)的子塊(在這里信息熵用ENIN表示)。每組圖像經計算后,最終分塊個數、信息熵標準差、信息熵均值以及去掉的子塊個數如表1所示(表中數據Var、Mean、ENIN均取小數點后三位數,為近似值)。

表1 三組圖像實驗分塊結果

在這里以圖1(b)組圖像為例,完成去掉相應子塊區域和剔除圖像的二值化圖像聯通區域步驟,得到最終待檢測區域效果圖如圖2所示。最終圖像待檢測區域為去掉有圓圈的子塊部分和二值化圖像白色(像素值為255)部分。

圖2 圖1(b)組圖像需去掉子塊和需剔除連通區域圖展示圖
三組圖像最終的匹配效果圖如圖3所示。

圖3 三組圖像配準效果圖
從圖3中我們可以看出每組圖像中特征點的數量有限且分布較為均勻,聚簇現象較少,各對特征點的匹配連線清晰可見,但也不乏有明顯的匹配錯誤的點對。總體匹配效果良好。
為了驗證本文算法在保證圖像配準正確率保持在90%以上的情況下可以有效減少算法運行的時間,將其與SIFT算法和張紅民等人的算法做效果做比較。分別進行三種算法的特征點數量、粗匹配點對數、正確匹配點對數、匹配正確率以及運行時間的對比,具體數據如表2所示。

表2 兩種算法實驗結果對比
由表2中數據可知,本文算法與其他兩種算法相比明顯減少了所提取特征點的數量,且匹配正確率稍有提升。由于檢測出的特征點總體數量的減少,減少了構建描述符和特征點匹配所花費的時間。本文算法相比張紅民等人算法運行時間減少了9%~13%,相比SIFT算法運行時間減少了20%~30%。
本文在已有算法基礎上,針對其對圖像分塊數的確定和通過經驗信息熵閾值來確定待檢測圖像區域的方法做出改進。本文算法對圖像進行循環分塊,當所有子塊信息熵的標準值達到閾值時停止分塊,在整幅圖像中去掉信息熵值低于信息熵均值減去信息熵標準差的子塊對應的圖像區域。再將圖像二值化求取連通區域,在已去掉部分子塊圖像區域的基礎上去圖像的掉聯通區域部分從而得到最終待檢測圖像區域。最后進行SIFT算法的特征檢測并生成PCA-SIFT描述子,使用最近鄰與次近鄰之比的算法完成圖像配準。
為了驗證本文算法的有效性,對三組圖片進行實驗,實驗表明本文算法在保證匹配精確度90%以上的基礎上,相比張紅民等人算法運行時間減少了9%~13%,相比SIFT算法運行時間減少了20%~30%。由此可證明本算法有效減少了圖像配準算法的運行時間。