吳祿慎,陳小杜
(南昌大學 機電工程學院,南昌 330031)
圖像拼接技術(shù)是將部分重疊的多幅圖像合成為一幅無縫高分辨率圖像,廣泛應用于廣域場景獲取以及遙感圖像[1]、視頻監(jiān)控圖像、醫(yī)學圖像分析等領域。圖像配準作為圖像拼接的關(guān)鍵環(huán)節(jié),其結(jié)果對圖像拼接效果影響較大。圖像配準方法主要包括基于圖像灰度的配準方法、基于圖像特征的配準方法和基于圖像域變換的配準方法[2]。
近年來,基于圖像特征的配準算法因具有魯棒性好、配準速度快和計算量少等優(yōu)點,成為學者們研究的熱點。基于圖像特征的配準算法主要包括SIFT、SURF、ORB、KAZE 和AKAZE 等算法。其中,SIFT 算法和SURF 算法的實現(xiàn)原理相似,兩者不同之處在于SURF 算法是使用不同尺度的濾波窗口與原圖進行卷積來加速構(gòu)建線性的尺度空間,其為SIFT 算法的加速版。雖然SIFT 算法和SURF 算法的魯棒性均較強,但這兩種算法構(gòu)建的線性尺度空間會導致圖像細節(jié)信息丟失[3]。ORB 算法[4]改進了FAST 特征點檢測算法,使其具有方向性,并使用二進制的二元魯棒獨立基本特征(Binary Robust Independent Elementary Features,BRIEF)對特征點進行描述,雖然計算速度較快,但不具備尺度不變性[5]。KAZE算法[6]和加速AKAZE算法[7]構(gòu)建的尺度空間均為非線性尺度空間,可較好保留圖像細節(jié)部分,但由于所用的特征點描述符不穩(wěn)定,導致AKAZE 算法魯棒性不高[8]。針對AKAZE 算法所用描述符穩(wěn)定性低的問題,文獻[9]提出在特征點描述時,將M-LDB 描述符替換為BRISK 描述符來描述特征點,使其具有較好的旋轉(zhuǎn)不變性和尺度不變性,從而提高描述子穩(wěn)定性。文獻[10]提出一種三元組描述符與AKAZE 算法相結(jié)合的方法,有效提高圖像配準精度。文獻[11]利用SIFT 描述符描述特征向量并獲取特征點主方向,提高了AKAZE 算法的描述能力。文獻[12]利用特征點周圍灰度梯度相似性,通過剔除部分匹配點來提高RANSAC 算法剔除錯誤單應性矩陣的速度。上述研究雖然在一定條件下提升了AKAZE 算法匹配精度,但出現(xiàn)圖像拍攝視角和亮度等較復雜的變化時,仍無法解決圖像配準精度低的問題。此外,傳統(tǒng)RANSAC 算法計算圖像變換矩陣時冗余時間多且穩(wěn)定性較差。
針對現(xiàn)有算法在圖像對變化復雜時配準精度低的問題,本文提出一種利用改進AKAZE 特征與RANSAC 算法的圖像拼接算法。采用AKAZE 算法建立圖像的非線性尺度空間,使用非極大值抑制法計算得到圖像特征點,利用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)[13]描述符生成特征點描述向量,分區(qū)塊精簡特征點并設定嵌套閾值改進RANSAC算法以提升變化矩陣模型計算速度,并避免特征點對太集中造成圖像配準精度下降的問題。
不同尺度空間下圖像亮度L的變化可采用非線性偏微分方程來描述,表達式如下:
其中,div 和?分別為散度和梯度,c(x,y,t)為傳導函數(shù),t為進化時間,也是圖像尺度參數(shù)。
1.1.1 構(gòu)造非線性尺度空間
AKAZE 算法構(gòu)造非線性尺度空間的方法與SIFT 算法類似,兩者都設置O組和S層。圖像尺度參數(shù)σi的計算公式為:
其中:i∈[0,N-1],N為圖像總數(shù);圖像組o∈[0,O-1];子層級s∈[0,S-1];σ0為圖像初始尺度參數(shù)。
圖像尺度參數(shù)σi與進化時間ti的關(guān)系式如下:
由式(2)和式(3)得到輸入圖像和對比度因子之后,使用FED 算法[14]和式(1)計算得到圖像L的非線性尺度空間,表達式為:
其中,i∈[0,N-1],I為單位矩陣,τ為時間步長,A(Li)為維度i上的影像矩陣。
1.1.2 特征點位置確定
構(gòu)造圖像的非線性尺度空間后,采用非極大值抑制法計算圖像金字塔中各層圖像像素點對應的Hessian 矩陣值,并對Hessian 矩陣進行歸一化。然后將Hessian 矩陣值與同層8 個像素點以及上下鄰層18 個像素點對比,得到的極值點即為該尺度下的圖像特征點。
通過特征點附近區(qū)域內(nèi)的一階微分導數(shù)計算圖像中該特征點的響應值,再隨機選取一個以該像素點為原點的60°扇形區(qū)域,并計算繞該點不同方向扇形區(qū)域內(nèi)特征點梯度向量之和,向量和最大的向量方向為特征點主方向。
將特征點附近區(qū)域分成若干子網(wǎng)格,以尺度σ為間隔在子網(wǎng)格中進行重采樣獲得離散點,再計算其對應像素值以及垂直和水平方向倒數(shù)的均值,最終生成一個長度為3 bit 的特征點描述向量。
與BoW 模型[15]的描述方法不同,基于卷積神經(jīng)網(wǎng)絡的圖像描述方法主要依賴全局信息,而且從深度卷積神經(jīng)網(wǎng)絡模型中提取的通用深度描述符在視覺任務中具有良好的圖像描述能力,因此,本文利用CNN 模型提取的通用深度描述符對特征點區(qū)域圖像塊進行描述生成特征點描述向量。
本文采用的L2-Net 網(wǎng)絡[16]結(jié)構(gòu)如圖1 所示,其中,圖1(a)為基本網(wǎng)絡,圖1(b)為中央環(huán)繞(Central-Surround,CS)網(wǎng)絡,其包含兩個相同的基本網(wǎng)絡。在該網(wǎng)絡中,特征塔由池化層和步長為2 的卷積操作共同構(gòu)建,除最后一個卷積層之外,每個卷積層后均有一個歸一化層使卷積層的權(quán)值和偏置參數(shù)保持在0~1 之間,最后的卷積操作是利用L2 歸一化層生成128 維特征向量。
圖1 L2-Net 網(wǎng)絡結(jié)構(gòu)Fig.1 L2-Net network structure
本文采用GL3D 數(shù)據(jù)集[17-18]進行訓練,其中包含90 590 張高分辨率圖像,涉及378 個不同城市和農(nóng)村場景。該數(shù)據(jù)集圖像由無人機從不同視角并采用多個尺度拍攝,幾何重疊面較大。利用幾何相似性方法[18]計算GL3D 數(shù)據(jù)集中不同視角下圖像的相似性Simage,去除相似度大于0.85 的圖像對,剔除GL3D 數(shù)據(jù)集中30%的訓練樣本。同時,對感興趣區(qū)域提取尺寸為32 像素×32 像素的圖像塊,并利用幾何相似性方法[18]得到圖像塊之間相似度Spatch用于計算損失函數(shù)。在CNN 描述符的學習中,使用32像素×32像素感興趣區(qū)域圖像塊對(匹配/不匹配)作為輸入。
為拉大非匹配對和匹配對的距離,本文對結(jié)構(gòu)損失函數(shù)E1和幾何損失函數(shù)E2進行定義。
2.3.1 結(jié)構(gòu)損失函數(shù)
其中,li,j為向量L中的元素。a∈(0,1)為距離比,用來增大非匹配對和匹配對之間的距離。取每批訓練樣本的損失平均值作為每批訓練樣本損失值。
2.3.2 幾何損失函數(shù)
雖然結(jié)構(gòu)損失函數(shù)E1可增大匹配對和非匹配對之間的距離,但無法保證匹配對之間距離接近。為此,本文將幾何損失函數(shù)定義為:
其中,β為自適應參數(shù),si,i為圖像塊對的余弦相似矩陣S中的元素,即每對圖像塊的余弦相似度。以E1+λE2作為損失函數(shù),α和λ分別設置為0.4 和0.2。
使用梯度下降法更新網(wǎng)絡結(jié)構(gòu)參數(shù)進行訓練,學習率為0.001,權(quán)重為0.000 1,學習率衰減率為0.9,采用隨機翻轉(zhuǎn)、縮放、90°旋轉(zhuǎn)、亮度和對比度調(diào)整等操作進行數(shù)據(jù)增強。匹配集大小和批量大小分別為64和512,輸出的特征向量被歸一化為均值是0 的單位范數(shù),訓練后模型大小為5.3 MB。
傳統(tǒng)RANSAC 算法[19]在一定程度上可以去除錯誤匹配點對并估算圖像變換矩陣模型,但當模型參數(shù)不合理時,每次要計算所有錯誤匹配點對后才能去掉該模型參數(shù)造成耗時較多,且當圖像中隨機特征點對較集中時,易計算出參數(shù)局部性過高的圖像變換矩陣模型導致圖像融合精度低[20]。
為解決上述問題,本文通過精簡圖像特征點對和在迭代過程中設定嵌套閾值的方式改進傳統(tǒng)RANSAC 算法,從而加速變換模型參數(shù)計算并提高圖像拼接精度。
1)采用具有最大和最小x、y值的4 個邊緣特征點確定特征點分布范圍,將其劃分為A×B個網(wǎng)格,網(wǎng)格的長度a、寬度b根據(jù)特征點對分布范圍矩陣中寬度W、高度H的較小值以及網(wǎng)格數(shù)目確定,單位為像素。文中實驗將特征點對分布范圍矩陣的寬度和高度中較小值的1/40 作為網(wǎng)格邊長,即a=b=min(H,W)/40。特征點分布如圖2 所示,將邊緣處小于設定邊長的網(wǎng)格作為一個獨立網(wǎng)格進行處理。
圖2 特征點分布Fig.2 Distribution of feature points
2)去掉沒有特征點的圖像塊,對于特征點個數(shù)大于1 的圖像塊,只保留1 個特征點對匹配分數(shù)最高的特征點對,特征點個數(shù)從1 234 個減少至415 個,優(yōu)化后的特征點分布如圖3 所示。對比圖2 和圖3發(fā)現(xiàn):圖2 中特征點分布過于集中,造成計算的變換模型參數(shù)具有很高局部性;圖3 中特征點分布均勻,計算出的變換模型具有更好的穩(wěn)定性和準確性,減少特征點數(shù)可縮短錯誤變換模型去除時間。
圖3 優(yōu)化后的特征點分布Fig.3 Distribution of feature points after optimization
3)在優(yōu)化后的特征點對集S中隨機選取4 對匹配特征點對計算圖像變換矩陣模型參數(shù)。
4)統(tǒng)計特征點對集S中除了已選取的4 對特征點對之外的其他特征點對,并由步驟3 計算出變換矩陣模型數(shù)目記為局內(nèi)特征點數(shù)目。
5)重復步驟3 和步驟4。將迭代次數(shù)上限設置為10 000,若計算出的變換矩陣模型H局內(nèi)特征點對數(shù)目大于10,則記錄局內(nèi)特征點對數(shù)目及其對應的變換矩陣模型H,否則不記錄并繼續(xù)迭代。設定滿足條件的變換矩陣模型數(shù)量上限為200,即最終記錄的變換矩陣模型H及其對應的局內(nèi)特征點對數(shù)目不超過200。迭代次數(shù)上限的設置原則是其應盡可能大,但本文在迭代過程中嵌套了閾值,當滿足條件的變換矩陣模型H數(shù)量達到200 時則停止迭代。通過實驗統(tǒng)計不同閾值下最優(yōu)變換矩陣模型所對應的局內(nèi)特征點對數(shù)目得到閾值設置范圍,如圖4 所示??梢钥闯?,當閾值設置為150~250 時,計算得到的最優(yōu)變換矩陣模型局內(nèi)特征點對數(shù)目最多且擬合曲線趨于平穩(wěn)。
圖4 不同閾值下局內(nèi)特征點對數(shù)目Fig.4 The number of local interior feature point pairs with different thresholds
6)提取局內(nèi)特征點對數(shù)目最多的變換矩陣模型H,該模型為最優(yōu)變換矩陣模型。
配準變換后的兩張圖像由于可能存在色差或配準誤差等問題,因此直接進行拼接會有明顯拼接縫或鬼影現(xiàn)象。為確保圖像的拼接精度,采用最佳縫合線算法結(jié)合多頻段融合算法[21]對變換后的圖像進行拼接。最佳縫合線算法的基本原理是計算重疊區(qū)域圖像的強度值,選取強度值最小的路徑作為最佳縫合線,可有效消除鬼影。
找到最佳縫合線后,若直接在拼接縫左、右兩側(cè)區(qū)域取參考圖像和變換后的配準圖像則會產(chǎn)生明顯的拼接縫。多頻段融合算法的基本原理是將圖像分解為多個不同頻率的圖像,以不同權(quán)重來進行相加融合,可保留圖像高頻信息,并達到良好的拼接效果。因此,本文使用多頻段融合算法來對拼接縫左、右兩側(cè)圖像進行融合以消除圖像拼接縫。
本文所用的圖像拼接算法流程如圖5 所示。特征點區(qū)域圖像塊是通過對原圖像構(gòu)建非線性尺度空間金字塔所提取,利用訓練好的模型對每個32 像素×32 像素的特征點區(qū)域圖像塊進行卷積操作,生成128 維的特征點描述向量。
圖5 圖像拼接算法流程Fig.5 Procedure of image stitching algorithm
為驗證本文采用的CNN 描述符實際配準效果和改進的RANSAC 算法實際拼接結(jié)果,分別進行圖像配準實驗和RANSAC 算法圖像拼接實驗。實驗的編程環(huán)境為PyCharm2019,實驗平臺為Ubuntu18.04,電腦配置為Intel Core i5 9400,主頻為2.9 GHz,內(nèi)存為16 GB。
本文所用的配準圖像來源于Hpatches 數(shù)據(jù)庫和實際拍攝圖像,在Hpatches 數(shù)據(jù)庫中,每序列共有6 張不同變化的圖像。選取6 組不同場景下的圖像對進行配準實驗,先對視角差異與光照差異較大的圖像對進行圖像配準,再模擬常見的圖像變化進行描述子性能對比,通過RANSAC 算法去除局外特征點對來計算和統(tǒng)計配準的準確率,配準結(jié)果示例如圖6 所示。圖6(a)為傳統(tǒng)AKAZE 算法配準結(jié)果,圖6(b)為本文圖像拼接算法(以下稱為本文算法)配準結(jié)果??梢钥闯觯豪脗鹘y(tǒng)AKAZE 算法對特征點進行描述生成的描述子,對具有較大視角差異的圖像對描述能力較差,難以實現(xiàn)特征點的正確匹配;本文算法所用的CNN 模型對特征點進行描述生成的描述子具有更好和更穩(wěn)定的描述能力,圖像特征點匹配準確率更高,圖像配準的魯棒性更好。
圖6 2 種算法的圖像配準結(jié)果Fig.6 Image registration results of two algorithms
5.1.1 視角差異圖像對配準對比
本文選取Hpatches 數(shù)據(jù)庫中具有視角差異的graffiti、fest、home、man、dogman 和boat 6 對圖像(見圖7),分別計算AKAZE 算法、SIFT 算法和本文算法對上述圖像的配準精度,結(jié)果如表1 所示??梢钥闯?,本文算法的配準精度平均值較傳統(tǒng)AKAZE算法高12.60 個百分點,表明本文算法對視角差異圖像對配準的準確性更高。
圖7 視角差異圖像對Fig.7 Image pairs with different view angles
表1 3 種算法的視角差異圖像對配準精度對比Table 1 Comparison of registration accuracy of image pairs with different view angles of three algorithms %
5.1.2 光照差異圖像對配準對比
本文選取Hpatches 數(shù)據(jù)庫中具有光照差異的londonbridge、crownday、leuven、ajuntament、partyfood和salon 6 對圖像(見圖8),將AKAZE 算法、SIFT 算法和本文算法對上述圖像的配準精度進行對比,結(jié)果如表2 所示??梢钥闯?,SIFT 算法在光照差異較大情況下的配準精度平均值較低,傳統(tǒng)AKAZE 配準精度平均值較SIFT 算法要高,但對salon 圖像對配準精度較低,僅為65.12%;本文算法的配準精度平均值高于其他兩種算法,較傳統(tǒng)AKAZE 算法高6.99 個百分點。由此可見,本文算法在光照差異較大情況下對圖像對配準的精度更高。
圖8 光照差異圖像對Fig.8 Image pairs with different illumination
表2 3 種算法的光照差異圖像對配準精度對比Table 2 Comparison of registration accuracy of image pairs with different illumination of three algorithms %
5.1.3 描述子性能對比
保證圖像匹配算法有效的前提是局部不變特征能適應常見的圖像變換。本文采用召回率(Recall)評價和對比算法在不同變化條件下的匹配性能,召回率即正確匹配的特征點對數(shù)占圖像中所有匹配點對數(shù)的比率,計算公式為:
實驗采用實際拍攝圖像并對其進行降采樣處理,壓縮后圖像尺寸為1 280 像素×720 像素,如圖9 所示。
圖9 描述子性能實驗圖Fig.9 Experimental graph of descriptor performance
分別對原實驗圖像進行亮度變化、旋轉(zhuǎn)變化、高斯模糊、尺度變化和翻轉(zhuǎn)變化(繞圖像y軸旋轉(zhuǎn))來模擬圖像變化,分別采用AKAZE 算法、SIFT 算法和本文算法對每組圖像進行特征點對配準,得到圖像配準實驗曲線如圖10 所示??梢钥闯觯寒斄炼仍隽繛?100 時,本文算法的召回率比傳統(tǒng)AKAZE 算法高約20 個百分點;旋轉(zhuǎn)變化時本文算法的召回率平均比傳統(tǒng)AKAZE算法高15 個百分點;高斯模糊時,隨著平滑半徑的增大,傳統(tǒng)AKAZE 算法和SIFT 算法的召回率降幅較大,而本文算法召回率變化較平穩(wěn);尺度變化和翻轉(zhuǎn)變化時,本文算法的召回率均高于傳統(tǒng)AKAZE 算法和SIFT算法;當圖像變化較大時,本文算法的召回率與傳統(tǒng)AKAZE 算法和SIFT 算法的召回率之間差異更大。由上述可知,本文所用的CNN 描述符對圖像各種變化適應性較強,適用于處理復雜變化圖像對的匹配和識別等任務。
圖10 3 種算法的圖像配準實驗曲線Fig.10 Experimental curves of three algorithms for image registration
5.1.4 圖像對配準時間對比
圖像對配準時間對比實驗采用6 組實際拍攝的圖像對,每組圖像對經(jīng)降采樣處理后尺寸為1 280 像素×720 像素。將傳統(tǒng)AKAZE 算法、SIFT 算法和本文算法描述單個特征點所用時間進行對比,結(jié)果如表3 所示。可以看出:本文算法的單個特征點描述平均時間略高于傳統(tǒng)AKAZE 算法和SIFT 算法,這是因為本文算法構(gòu)建非線性尺度空間和提取尺度空間中感興趣圖像塊耗費了一定的時間。但由表1 和表2 可知,當圖像對變化復雜時,本文算法的特征點對配準精度高于傳統(tǒng)AKAZE 算法和SIFT 算法,魯棒性更好。
表3 3 種算法的單個特征點描述時間對比Table 3 Comparison of description time of three algorithms for single feature point ms
為比較傳統(tǒng)RANSAC 算法和本文改進RANSAC 算法的性能,本文進行傳統(tǒng)RANSAC 算法和改進RANSAC 算法拼接精度對比實驗以及RANSAC 算法運行時間對比實驗,所用圖像均為實際拍攝圖像。
5.2.1 拼接精度對比
當特征點過于集中時,傳統(tǒng)RANSAC 算法得到的全局變換模型參數(shù)局部性過高,造成圖像拼接精度較低。本文改進了RANSAC 采樣模式,預先對過于集中的特征點進行精簡,使其分布更加均勻,提高算法運行速率和穩(wěn)定性,同時設定迭代上限和嵌套閾值避免耗費過多時間。采用傳統(tǒng)RANSAC 算法和改進RANSAC 算法所得圖像最佳拼接縫和拼接結(jié)果對比情況如圖11 所示。由于本文采用最佳縫合線對拼接縫左、右兩側(cè)圖像進行拼接,因此本文中主要對比拼接縫處的圖像拼接精度。由圖11 可以看出,與改進RANSAC 算法相比,傳統(tǒng)RANSAC 算法在拼接縫處出現(xiàn)明顯的偏差,拼接精度更低,這和其RANSAC 采樣的特征點分布過于集中造成變換模型參數(shù)局部性過高密切相關(guān)。由上述可知,本文算法的圖像拼接精度比傳統(tǒng)RANSAC 算法更高。
圖11 傳統(tǒng)RANSAC 算法和改進RANSAC 算法的圖像拼接縫與拼接結(jié)果Fig.11 Image stitching seams and stitching results of traditional RANSAC algorithm and improved RANSAC algorithm
5.2.2 運行時間對比
采用5.1.4節(jié)中實際拍攝的6組不同場景下的圖像對,每組圖像對經(jīng)降采樣處理后圖像尺寸為1 280像素×720像素。將傳統(tǒng)RANSAC 算法和改進RANSAC 算法的運行時間進行對比,將傳統(tǒng)RANSAC 算法迭代次數(shù)上限設置為200,結(jié)果如表4 所示。可以看出,在迭代次數(shù)上限與嵌套閾值相等的情況下,改進RANSAC 算法運行時間較傳統(tǒng)RANSAC 算法縮短4.17 ms,這是因為改進RANSAC 算法對特征點進行精簡,減少過度密集的特征點,縮短去除錯誤變換模型的時間,同時使得特征點分布更均勻,提高圖像拼接精度。由此可見,對循環(huán)迭代設定迭代次數(shù)上限和嵌套閾值可有效消除計算變換模型參數(shù)的冗余時間。
表4 傳統(tǒng)RANSAC 算法和改進RANSAC 算法運行時間對比Table 4 Comparison of running time between traditional RANSAC algorithm and improved RANSAC algorithm ms
本文針對圖像對在變化復雜時配準精度低的問題,在改進AKAZE 特征與RANSAC 算法的基礎上,提出一種基于卷積神經(jīng)網(wǎng)絡的圖像拼接算法。使用AKAZE 算法提取圖像特征點,通過CNN 描述符生成特征點描述向量,優(yōu)化RANSAC 算法的特征點對采樣方式,并通過設定迭代上限與嵌套閾值消除計算變換參數(shù)模型的冗余時間,從而避免特征點過于集中造成模型參數(shù)局部性過高。實驗結(jié)果表明,和傳統(tǒng)AKAZE 算法相比,該算法計算時間更短且拼接精度更高。下一步將用多張圖像代替圖像對,以實現(xiàn)多圖像精準拼接。