岳國華 邢曉利
(西安科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 陜西 西安 710054)
圖像配準(zhǔn)就是尋找一種空間變換關(guān)系,使得不同成像條件下能采集到的同一場景的圖像像素點在空間上一一對應(yīng)[1]。遙感圖像的配準(zhǔn),最早應(yīng)用在軍事領(lǐng)域的導(dǎo)彈追蹤和景象匹配的制導(dǎo)技術(shù)等方面[2]。隨著傳感器硬件設(shè)備的發(fā)展,遙感圖像的配準(zhǔn)在民用領(lǐng)域發(fā)揮了越來越大的作用。然而,由于遙感圖像的成像條件復(fù)雜,目標(biāo)特征不明顯,像素分辨率較低等特點,傳統(tǒng)的遙感圖像配準(zhǔn)算法特征提取過程復(fù)雜,計算量大,且檢測的特征點容易出現(xiàn)誤匹配的情況。
傳統(tǒng)的圖像配準(zhǔn)的方法可分為兩大類:基于灰度的配準(zhǔn)方法;基于特征的配準(zhǔn)方法[3]?;诨叶鹊呐錅?zhǔn)方法將配準(zhǔn)問題轉(zhuǎn)化為優(yōu)化問題,通過優(yōu)化圖像的灰度相似度來確定圖像間的變換參數(shù)。常見的算法有最大互信息法、相關(guān)法和聯(lián)合熵法[4]?;诨叶鹊呐錅?zhǔn)方法容易實現(xiàn),但不適用于灰度變化明顯或存在形變的圖像[5]。基于特征的配準(zhǔn)方法通過提取圖像中點、線、邊緣等特征完成配準(zhǔn),能夠在圖像存在幾何失真和畸變的情況下取得優(yōu)異的配準(zhǔn)性能,從而更有效地建立圖像間的匹配關(guān)系[6]。常用算法有SURF算法、SIFT算法、HOG算法等,其中SIFT算法因其穩(wěn)定的尺度旋轉(zhuǎn)不變性,成為基于特征配準(zhǔn)算法的代表性算法。
近年來,深度學(xué)習(xí)備受關(guān)注,并在計算機視覺、數(shù)據(jù)挖掘等諸多領(lǐng)域大獲成功。Fan等[7]將深度學(xué)習(xí)引入遙感圖像的場景分類中,利用預(yù)先訓(xùn)練的CNN來進(jìn)行高分辨率遙感圖像場景分類,取得了良好的分類效果。Jaderberg等[8]在圖像處理領(lǐng)域中提出一個新的模塊—空間變換網(wǎng)絡(luò)(STN),該模塊在網(wǎng)絡(luò)內(nèi)部對圖片進(jìn)行平移、縮放、旋轉(zhuǎn)等變形,網(wǎng)絡(luò)直接輸出配準(zhǔn)后的圖像,并沒有顯式地運用變換參數(shù)。雒培磊等[9]提出了一種改進(jìn)的基于深度學(xué)習(xí)的遙感影像拼接方法,該方法利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)自適應(yīng)地提取特征點的分層卷積特征,通過相關(guān)濾波器對不同深度的卷積特征逐層進(jìn)行相關(guān)性分析,進(jìn)而綜合計算特征點的位置。算法充分利用了遙感圖像的空間特征以及深層抽象語義特征,并未將特征提取和匹配放在端到端的架構(gòu)中,在配準(zhǔn)過程中,需進(jìn)行錯誤匹配點的檢測。Wang等[10]提出了一種用于遙感圖像配準(zhǔn)的深度學(xué)習(xí)框架,該框架通過深度神經(jīng)網(wǎng)絡(luò)(DNN)直接學(xué)習(xí)圖像匹配塊與其匹配標(biāo)簽之間的端到端映射關(guān)系,但DNN學(xué)習(xí)的是從圖像中提取的圖像塊之間的關(guān)系,需要根據(jù)圖像塊之間的變換關(guān)系,計算圖像的變換矩陣,整個配準(zhǔn)過程相對來說比較繁瑣。
本文采用的配準(zhǔn)框架如圖1所示。首先,通過仿射變換網(wǎng)絡(luò)對參考圖像進(jìn)行空間變換,批量生成測試數(shù)據(jù)集。然后,CNN直接學(xué)習(xí)參考圖像與訓(xùn)練圖像之間的變換關(guān)系,預(yù)測圖像變換參數(shù)。最后,校正網(wǎng)絡(luò)通過計算配準(zhǔn)圖像和參考圖像的相似度,反向傳播調(diào)整預(yù)測的變換參數(shù),直至圖像相似度取得最大值。
圖1 遙感圖像配準(zhǔn)框架
仿射變換網(wǎng)絡(luò)動態(tài)地將仿射變換應(yīng)用在圖像的像素點上,主動地對輸入的參考圖像進(jìn)行縮放、旋轉(zhuǎn)和平移等變換,并保存地面實況標(biāo)簽。仿射變換網(wǎng)絡(luò)架構(gòu)如圖2所示。
圖2 仿射變換網(wǎng)絡(luò)結(jié)構(gòu)
仿射變換網(wǎng)絡(luò)輸入的是參考圖像和空間變換參數(shù)θ,輸出的是參考圖像進(jìn)行仿射變換后的訓(xùn)練圖像。網(wǎng)絡(luò)主要由坐標(biāo)映射和像素采樣兩部分組成。坐標(biāo)映射是根據(jù)隨機生成的空間變換參數(shù)θ,通過網(wǎng)格生成器生成與參考圖像同樣大小的空白網(wǎng)格,完成參考圖像與訓(xùn)練圖像之間的坐標(biāo)映射;在像素采樣過程中,為了解決像素坐標(biāo)非整數(shù)的問題,采用雙線性插值技術(shù)對圖像像素進(jìn)行采樣。
1.1.1坐標(biāo)映射
在進(jìn)行仿射變換時,沒有直接對圖像進(jìn)行處理,而是把圖像中的像素點坐標(biāo)化,并作為特征映射的元素。仿射變換的實質(zhì)是通過仿射變換矩陣實現(xiàn)圖像與圖像間的二維坐標(biāo)映射。首先,利用網(wǎng)格生成器生成目標(biāo)空白采樣網(wǎng)格,可覆蓋參考圖像中所有的像素點,在對空白采樣網(wǎng)格向量化處理之后,與仿射變換參數(shù)構(gòu)成的仿射變換矩陣相乘,得到期望的采樣點坐標(biāo),實現(xiàn)了采樣網(wǎng)格到參考圖像的坐標(biāo)映射。通常,只需要6個仿射變換參數(shù),便可實現(xiàn)仿射變換。
(1)
1.1.2雙線性插值
在對參考圖像進(jìn)行像素取值時,采用雙線性插值技術(shù)處理采樣坐標(biāo)為非整數(shù)的情況。其核心是在兩個方向分別進(jìn)行一次插值,如圖3所示[11]。
圖3 雙線性插值
若訓(xùn)練圖像中某個像素點對應(yīng)參考圖像中的非整數(shù)坐標(biāo)P點。已知P點相鄰四位整數(shù)點坐標(biāo)Q11、Q12、Q21、Q22像素值,f代表像素點的像素值,在x軸方向進(jìn)行插值:
(2)
(3)
在y軸方向進(jìn)行插值:
(4)
即:
(5)
在仿射變換網(wǎng)絡(luò)中使用雙線性插值技術(shù),可以表示為:
(6)
雙線性插值不僅解決了采樣坐標(biāo)非整數(shù)的問題,而且在校正網(wǎng)絡(luò)調(diào)整參數(shù)的優(yōu)化過程中,雙線性插值滿足對參數(shù)進(jìn)行求導(dǎo)的條件,可以進(jìn)行梯度反向傳播。
CNN的輸入是參考圖像和訓(xùn)練圖像,以及地面實況標(biāo)簽,輸出為預(yù)測的變換參數(shù)。CNN根據(jù)地面實況標(biāo)簽學(xué)習(xí)參考圖像和訓(xùn)練圖像之間的映射關(guān)系,通過反向傳播算法、隨機梯度下降優(yōu)化損失函數(shù)MSELoss,生成魯棒的配準(zhǔn)模型。
1.2.1網(wǎng)絡(luò)結(jié)構(gòu)
CNN網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。模型由6個卷積層和6個池化層組成,每個卷積層后連接對圖像進(jìn)行降維處理的池化層,從所有輸入通道提取的二維特征轉(zhuǎn)化為全連接層的一維輸入[12]。
圖4 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在網(wǎng)絡(luò)的前向傳播過程中,卷積核大小為5×5,通過對l-1層的特征圖進(jìn)行卷積操作,使用激活函數(shù)輸出當(dāng)前卷積層l層特征圖[13]。
(7)
矩陣形式為:
al=σ(wlal-1+bl)
(8)
al=pool(al-1)
(9)
式中:pool表示最大池化操作。池化層大小如圖4所示,步長為2。
網(wǎng)絡(luò)使用易收斂的均方誤差(MSE)作為損失函數(shù)。
(10)
(11)
zl=wlal-1+bl
(12)
輸出層的誤差方程表示為:
(13)
矩陣表示為:
δL=▽aC⊙σ′(zL)
(14)
式中:⊙表示矩陣的點積。
誤差在反向傳播過程中的傳遞表示為:
δl=((wl+1)Tδl+1)⊙σ′(zl)
(15)
對權(quán)重和偏差的調(diào)整表示為:
(16)
(17)
1.2.2訓(xùn)練過程
基于卷積神經(jīng)網(wǎng)絡(luò)的圖像配準(zhǔn)模型訓(xùn)練的過程如下所示。
輸入:參考圖像、訓(xùn)練數(shù)據(jù)集Dataset_Train、地面實況標(biāo)簽infor_para、迭代次數(shù)λ、學(xué)習(xí)率η、一次訓(xùn)練選取的樣本數(shù)Batch Size。
輸出:參考圖像和訓(xùn)練圖像之間的預(yù)測變換參數(shù)。
1) 確定訓(xùn)練集。選取參考圖像,100 000幅訓(xùn)練圖像作為訓(xùn)練集。
2) 初始化迭代次數(shù)為100,學(xué)習(xí)率η為10-4,Batch Size為8,停止迭代閾值為10-6。
3) for all data in Dataset_Train
4) 根據(jù)網(wǎng)絡(luò)前向傳播公式計算變換參數(shù)。
5) 根據(jù)損失函數(shù)MSE計算誤差δ。
6) 根據(jù)式(16)-式(17),使用學(xué)習(xí)率η更新權(quán)重w和偏差b。
7) end for
8) 直到w和b的變化值小于迭代閾值或達(dá)到迭代次數(shù)λ。
校正網(wǎng)絡(luò)根據(jù)CNN模型預(yù)測參考圖像和浮動圖像之間的變換參數(shù)θ,由浮動圖像和仿射變換網(wǎng)絡(luò)生成配準(zhǔn)圖像。然后,計算參考圖像和配準(zhǔn)圖像的相似度,反向傳播調(diào)整CNN預(yù)測的參數(shù),通過最大化圖像相似度實現(xiàn)參數(shù)校正。雙線性插值反向傳播過程可表示為:
(18)
(19)
校正網(wǎng)絡(luò)中的相似性度量函數(shù),采用CNN模型中的損失函數(shù)MSE。相似性度量函數(shù)可以根據(jù)任務(wù)復(fù)雜性而變化,具有很強的靈活性。
同一物體在不同條件下的成像在灰度分布上可能存在很大的差異,這些差異直接影響到對圖片的特征提取。對于光照不可控的遙感圖像來說,可將圖像進(jìn)行灰度歸一化處理來避免圖像的對比度不足問題[14]。
本實驗中,為了使圖像配準(zhǔn)模型更加精確,同時也滿足常見的遙感圖像配準(zhǔn)要求,在仿射變換網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)生成過程中,將縮放參數(shù)控制在0.8~1.2之間,旋轉(zhuǎn)參數(shù)控制在[-12°,12°]之間,平移像素范圍為[-40,40]。實驗使用遙感圖像UC Merced Land-Use Data Set[15]作為測試集,共包含21類場景,每類場景100幅遙感圖像,尺寸大小為200×200,測試集和本文訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)框架使用的訓(xùn)練集無重疊。整個實驗是在Ubuntu 16.04,1080Ti環(huán)境下,使用VScode編寫實現(xiàn)。
1) 隨機挑選測試集中不同場景的四種圖像序號:① 飛機、② 河流、③ 碼頭、④ 公路,分別用SIFT算法和SURF算法確定圖像間的匹配對點,分析SIFT算法和SURF在圖像配準(zhǔn)過程提取特征進(jìn)行匹配的優(yōu)點與不足。
2) 分別用SIFT算法、SURF算法、文獻(xiàn)[8]使用的DNN算法、本文未加校正的卷積神經(jīng)網(wǎng)絡(luò)算法(P-CNN)和本文算法對四組圖像進(jìn)行配準(zhǔn)實驗,分析配準(zhǔn)結(jié)果。
3) 為進(jìn)一步驗證算法可行性,在整個測試集上進(jìn)行驗證實驗,分析配準(zhǔn)結(jié)果。
4) 在配準(zhǔn)精度的評價方面,采用均方根誤差(RMSE)和結(jié)構(gòu)相似性(SSIM)作為圖像配準(zhǔn)質(zhì)量評價標(biāo)準(zhǔn)。
(1) RMSE。RMSE的含義是利用空間變換參數(shù),求得仿射變換后圖像的坐標(biāo)值,并與參考圖像坐標(biāo)值進(jìn)行比較,根據(jù)兩者的標(biāo)準(zhǔn)誤差來評價配準(zhǔn)的精度。RMSE的數(shù)值越小,表明圖像配準(zhǔn)結(jié)果越好[16]。
(20)
(2) SSIM。SSIM用均值表示圖像亮度估計,標(biāo)準(zhǔn)差表示圖像對比度估計,協(xié)方差表示圖像結(jié)構(gòu)相似性度量,從圖像亮度、對比度和結(jié)構(gòu)三個方面進(jìn)行比對,是衡量圖像相似度的有效指標(biāo)[17]。SSIM的取值范圍是[0,1],數(shù)值越大,圖像越相似。
(21)
圖5是隨機選取的四組圖像的參考圖像與浮動圖像。圖6顯示了四組圖像用SIFT算法和SURF算法得到的特征匹配點。
(a) 參考圖 (b) 浮動圖圖5 配準(zhǔn)圖像的選取
(a) SIFT算法 (b) SURF算法圖6 兩種算法提取匹配點
由圖6可以看出,在用SIFT算法或SURF算法進(jìn)行體征點匹配時,容易產(chǎn)生提取特征點冗余、提取的特征點不足和特征點偏離等問題,從而直接影響配準(zhǔn)的精度。
分別用SIFT算法、SURF算法、DNN、P-CNN和本文算法對四組圖像進(jìn)行配準(zhǔn)實驗,結(jié)果如圖7所示。
(a) 參考圖 (b) 浮動圖 (c) SIFT (d) SURF (e) DNN (f) P-CNN (g) 本文圖7 配準(zhǔn)結(jié)果
配準(zhǔn)實驗結(jié)果表明,在平移、縮放、旋轉(zhuǎn)以及穩(wěn)定性方面,本文算法均優(yōu)于其他算法。以第四組為例,SIFT算法配準(zhǔn)結(jié)果縮放參數(shù)不精確;SURF算法提取的特征匹配點過少,配準(zhǔn)失?。籇NN配準(zhǔn)縮放參數(shù)不精確,圖像失真嚴(yán)重;P-CNN配準(zhǔn)縮放參數(shù)不精確;本文算法魯棒性較好,配準(zhǔn)結(jié)果精確。配準(zhǔn)結(jié)果在數(shù)據(jù)上的分析如表1所示。
表1 四組遙感圖像配準(zhǔn)精度評價
表1中,加粗的數(shù)據(jù)表示每組圖像配準(zhǔn)在不同衡量指標(biāo)下的最優(yōu)結(jié)果,可以看出本文算法的配準(zhǔn)更加精確,配準(zhǔn)速度遠(yuǎn)超于同類深度學(xué)習(xí)框架。為了進(jìn)一步驗證本文算法的可行性,本文針對測試數(shù)據(jù)集中的全部數(shù)據(jù)分別用SIFT算法、SURF算法、DNN、P-CNN和本文算法進(jìn)行測試實驗。配準(zhǔn)結(jié)果的平均RMSE值和SSIM值如表2所示。
表2 測試數(shù)據(jù)集配準(zhǔn)精度評價
從表2可以看出,本文算法在整個測試集上的實驗結(jié)果優(yōu)于其他算法。
針對遙感圖像特征不明顯,目前配準(zhǔn)算法計算量大、特征匹配不精確的問題,本文提出了基于卷積神經(jīng)網(wǎng)絡(luò)級聯(lián)校正網(wǎng)絡(luò)的遙感圖像配準(zhǔn)算法。算法主要由仿射變換網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和校正網(wǎng)絡(luò)組成。仿射變換網(wǎng)絡(luò)用于訓(xùn)練集的擴(kuò)展,卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖像間的映射關(guān)系,完成圖像間變換參數(shù)的預(yù)測,校正網(wǎng)絡(luò)反向傳播調(diào)整預(yù)測的參數(shù),提高了配準(zhǔn)的精度。實驗結(jié)果表明,相比于其他配準(zhǔn)算法,基于卷積神經(jīng)網(wǎng)絡(luò)級聯(lián)校正網(wǎng)絡(luò)的配準(zhǔn)算法更加穩(wěn)定,在配準(zhǔn)精度上明顯提升,配準(zhǔn)速度相對于其他深度學(xué)習(xí)框架要快,可運用在當(dāng)前的遙感圖像配準(zhǔn)領(lǐng)域。