王東振 陳 穎 李文舉 李績(jī)鵬
(上海應(yīng)用技術(shù)大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院 上海 201418)
遙感圖像是指由航空器或衛(wèi)星上成像系統(tǒng)獲得的具有地面目標(biāo)特征的圖像,遙感圖像配準(zhǔn)是尋找在不同的時(shí)間或不同的傳感器捕獲的圖像對(duì)間最佳對(duì)齊的過(guò)程,目前遙感圖像配準(zhǔn)技術(shù)已被廣泛應(yīng)用于地面目標(biāo)識(shí)別、城市和地理變化評(píng)價(jià)等軍事和民用領(lǐng)域。
目前圖像配準(zhǔn)兩類主流的趨勢(shì)方法是基于區(qū)域或特征的算法。基于區(qū)域的配準(zhǔn)算法,如Rosenfeld等[1]提出了交叉相關(guān)的概念,此類方法是以模板的形式來(lái)比較灰度區(qū)域間的相似性程度,從而判斷配準(zhǔn)位置。基于特征的算法一般采用表示高級(jí)信息的特征描述符來(lái)實(shí)現(xiàn)配準(zhǔn),因此預(yù)期在圖像外觀發(fā)生變化的配準(zhǔn)中更可取。所以在此對(duì)現(xiàn)有的一些基于特征的方法進(jìn)行了介紹和討論。由Lowe等[2-3]提出的SIFT算法運(yùn)用到圖像配準(zhǔn)中所得到的配準(zhǔn)結(jié)果具有較好的魯棒性,并且該算法對(duì)于圖像的旋轉(zhuǎn)、縮放、尺度變換都具有良好的不變性[4],因此現(xiàn)有的基于特征的圖像配準(zhǔn)方法大部分都采用SIFT或其改進(jìn)算法來(lái)檢測(cè)特征點(diǎn)。然而若待配準(zhǔn)的圖像對(duì)之間在外觀上存在顯著地貌上的差異,采用傳統(tǒng)算法檢測(cè)出的特征點(diǎn)可能存在較多的外點(diǎn)或檢測(cè)到的特征點(diǎn)數(shù)量不足,這些問題則限制了傳統(tǒng)算法在具有顯著地貌差異的遙感圖像配準(zhǔn)中的應(yīng)用。
近年來(lái),在計(jì)算機(jī)視覺等領(lǐng)域?qū)ι疃葘W(xué)習(xí)的運(yùn)用越來(lái)越廣泛起來(lái)。針對(duì)傳統(tǒng)算法檢測(cè)特征點(diǎn)不足問題,由Hamester等[5]在2015年提出了一種新的網(wǎng)絡(luò)架構(gòu)即雙通道卷積神經(jīng)網(wǎng)絡(luò),其中的一個(gè)通道設(shè)計(jì)為卷積式自動(dòng)編碼器(CAE),另外一個(gè)為CNN的通道將保持不變,最后將來(lái)自兩個(gè)不同通道所得到的圖像信息融合匯聚在同一個(gè)全連接層中,該算法實(shí)現(xiàn)了圖像多尺度特征的融合。Liu等[6]提出的雙通道卷積神經(jīng)網(wǎng)絡(luò)(CNN),用于SAR圖像變化檢測(cè),這個(gè)網(wǎng)絡(luò)模型包含兩個(gè)并行的CNN結(jié)構(gòu),可以從兩個(gè)不同時(shí)間段的SAR圖像中提取特征,豐富了網(wǎng)絡(luò)的提取特征。Gu等[7]提出了由SCNN(單通道卷積神經(jīng)網(wǎng)絡(luò))和SBNN(單通道二值神經(jīng)網(wǎng)絡(luò))組成的雙通道卷積神經(jīng)網(wǎng)絡(luò),該算法實(shí)現(xiàn)了不同通道的卷積神經(jīng)網(wǎng)絡(luò)對(duì)于圖像提取的局部與全局特征的融合,對(duì)于之后的圖像處理如(目標(biāo)檢測(cè)或圖像配準(zhǔn))都會(huì)有較好的結(jié)果。Bai等[8]基于以往的雙通道卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)上,參考稠密網(wǎng)絡(luò)結(jié)構(gòu)對(duì)雙通道卷積神經(jīng)網(wǎng)絡(luò)各個(gè)卷積層的連接方式做出了改變,由之前的順序連接修改為跨連接,增加了特征的重利用率,減少了局部的特征缺失。針對(duì)外點(diǎn)問題,提出了一種魯棒點(diǎn)集匹配算法是由Myronenko等[9]提出的一致性點(diǎn)漂移算法(Coherent Point Drift,CPD),該算法對(duì)于由于出格點(diǎn)或缺失點(diǎn)等問題所得出的非剛體的配準(zhǔn)結(jié)果具有較強(qiáng)的魯棒性。
針對(duì)傳統(tǒng)算法檢測(cè)的特征點(diǎn)不足或具有較多無(wú)效的特征點(diǎn)的問題,本文提出對(duì)輸入的圖像采用密集結(jié)構(gòu)改進(jìn)的雙通道卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,生成各自的特征點(diǎn)。然后利用粒子群算法對(duì)CPD算法進(jìn)行改進(jìn),對(duì)生成的特征點(diǎn)集進(jìn)行匹配,從而實(shí)現(xiàn)圖像配準(zhǔn)。通過(guò)實(shí)驗(yàn)數(shù)據(jù)對(duì)比表明,本文算法的配準(zhǔn)精度比傳統(tǒng)算法的更高。
為了實(shí)現(xiàn)圖像配準(zhǔn),本文提出了基于雙通道卷積神經(jīng)網(wǎng)絡(luò)的模型架構(gòu),具體的功能結(jié)構(gòu)圖如圖1所示:
圖1 系統(tǒng)功能框架模型圖
(1) 將大小為224×224參考圖像與待配準(zhǔn)圖像輸入到由VGG16和VGG19共同組成的特征提取網(wǎng)絡(luò)。
(2) 經(jīng)過(guò)特征提取網(wǎng)絡(luò)的兩個(gè)卷積塊后,進(jìn)入VGG16和VGG19的第3個(gè)卷積塊的卷積層,輸出維度為256,卷積核大小為3×3,步長(zhǎng)為1,填充的方式采用“same”,類似操作再重復(fù)2-3次,進(jìn)入VGG16和VGG19的第3個(gè)卷積塊的池化層,輸出維度同樣為256,步長(zhǎng)為2,采用最大池化,填充方式同樣采用“same”。
(3) 以此類推,分別進(jìn)入VGG16和VGG19的第4和第5個(gè)卷積塊的卷積層和池化層,除了輸出維度均修改成512,卷積層和池化層中各個(gè)參數(shù)的設(shè)置均與步驟2中的相同。
(4) 將參考圖像和待配準(zhǔn)圖像在不同通道中的后3個(gè)卷積塊得到的相應(yīng)的特征圖大小28×28×256、14×14×512、7×7×512進(jìn)行特征融合,并生成相應(yīng)的特征點(diǎn)集。
(5) 通過(guò)使用隨機(jī)優(yōu)化算法改進(jìn)的CPD,來(lái)增加確定參數(shù)的可靠的特征點(diǎn)的數(shù)量,從而提高特征匹配的精度。最后待配準(zhǔn)圖像根據(jù)特征匹配得到的仿射變換參數(shù)完成配準(zhǔn)。
1.2.1雙通道卷積神經(jīng)網(wǎng)絡(luò)
對(duì)于傳統(tǒng)采用單通道的卷積神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),隨著網(wǎng)絡(luò)層數(shù)深度的增加,會(huì)造成提取的圖像局部特征的缺失,從而影響最終的配準(zhǔn)結(jié)果。本文提出用VGG16和VGG19構(gòu)成雙通道卷積神經(jīng)網(wǎng)絡(luò)完成對(duì)圖像特征的提取,通過(guò)對(duì)VGG16包含的第三、四、五卷積塊提取的圖像特征和VGG19相對(duì)應(yīng)的卷積塊提取的特征進(jìn)行特征融合,實(shí)現(xiàn)了網(wǎng)絡(luò)提取特征多尺度的融合,豐富了網(wǎng)絡(luò)提取的特征,最終圖像配準(zhǔn)的效果也越好。
VGG16是其中的一個(gè)通道,它所包含的網(wǎng)絡(luò)結(jié)構(gòu)和部分參數(shù)如下所示:VGG16網(wǎng)絡(luò)總共包含五個(gè)卷積塊blocki(i=1,2,3,4,5),每個(gè)卷積塊中包含若干個(gè)卷積層和1個(gè)池化層。其中,前兩個(gè)的卷積塊(稱為卷積塊A)的結(jié)構(gòu)相同而后3個(gè)卷積塊(稱為卷積塊B)的結(jié)構(gòu)也相同,它們之間的連接方式采用依次順序連接。blockiconvi和pooli(i=1,2,3,4,5)分別代表VGG16網(wǎng)絡(luò)中不同卷積塊中所包含卷積層和池化層。其中,各個(gè)卷積層的卷積核的大小為3×3,步長(zhǎng)為1×1,各個(gè)卷積塊中卷積核的個(gè)數(shù)分別為64、128、256、512、512。池化層的步長(zhǎng)2×2,池化方式采用最大池化。
VGG19網(wǎng)絡(luò)是雙通道網(wǎng)絡(luò)模型的另一個(gè)通道,它的網(wǎng)絡(luò)結(jié)構(gòu)與VGG16區(qū)別在于VGG19網(wǎng)絡(luò)模型后三個(gè)卷積塊中比VGG16網(wǎng)絡(luò)各多了1個(gè)卷積層。其中,各個(gè)卷積層的卷積核的大小、步長(zhǎng)、各個(gè)卷積塊卷積核的個(gè)數(shù)、池化層的步長(zhǎng)等參數(shù)均與VGG16網(wǎng)絡(luò)設(shè)置相同,池化方式也采用最大池化。
雙通道卷積網(wǎng)絡(luò)由Hamester等提出,它的基本思想是特征融合。傳統(tǒng)的單通道卷積神經(jīng)網(wǎng)絡(luò)直接把第n層最后一層的輸出用來(lái)完成對(duì)于圖像的配準(zhǔn)、目標(biāo)識(shí)別和場(chǎng)景分類等。假設(shè)雙通道卷積神經(jīng)網(wǎng)絡(luò)中的兩個(gè)網(wǎng)絡(luò)通道中各包含N層,其中各個(gè)通道中的每一層分別都包含一個(gè)非線性變換Hn=(*)和非線性變換Gn=(*),n表示網(wǎng)絡(luò)中的第n層,Hn=(*)和Gn=(*)代表各種網(wǎng)絡(luò)作用,如卷積或池化、歸一化。將第n層的輸出記為Xn,最終的輸出記為Yn,雙通道卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了不同通道的多尺度的特征的融合,相關(guān)公式如下:
Yn=Hn(Xn-1)+Gn(Xn-1)
(1)
雙通道卷積神經(jīng)網(wǎng)絡(luò)利用對(duì)不同通道對(duì)圖像提取的特征進(jìn)行融合,使最終得到的圖像特征更加具有多樣性。本文的雙通道網(wǎng)絡(luò)模型是由改進(jìn)后的VGG16和VGG19兩個(gè)通道組成的網(wǎng)絡(luò)架構(gòu),具體結(jié)構(gòu)如圖2所示??梢钥闯?VGG16和VGG19網(wǎng)絡(luò)都是由2個(gè)卷積塊A和3個(gè)卷積塊B組成。
圖2 雙通道網(wǎng)絡(luò)結(jié)構(gòu)示意圖
使用不同的特征融合網(wǎng)絡(luò)結(jié)構(gòu)會(huì)得到不同的融合結(jié)果,原因在于不同的網(wǎng)絡(luò)結(jié)構(gòu)的特征提取能力不同。一般的雙通道網(wǎng)絡(luò)模型均采用最后一層融合后的圖像特征做圖像的配準(zhǔn)、識(shí)別或分類等,但僅采用最后一層提取的圖像特征會(huì)造成網(wǎng)絡(luò)淺層提取的部分局部特征沒有得到充分的利用。由于兩個(gè)VGG網(wǎng)絡(luò)相應(yīng)層采用的卷積核大小及個(gè)數(shù)均相同,有利于它們之后的特征融合。本文采用將各個(gè)通道后3層池化層融合后的特征作為最終的輸出,其建立了不同通道之間的緊密連接,相關(guān)公式如下:
A3=H10(X9)+G11(Z10)
B4=H14(X13)+G16(Z15)
C5=H18(X17)+G21(Z20)
(2)
式中:A3、B4、C5分別代表雙通道網(wǎng)絡(luò)模型中相應(yīng)的第3、4和5卷積塊融合后的特征輸出;H(*)和G(*)分別代表VGG16和VGG19網(wǎng)絡(luò)中各個(gè)層所包含的非線性變換,如卷積和池化等;Xi(i=1,2,…,18)和Zj(j=1,2,…,21)分別表示VGG16和VGG19網(wǎng)絡(luò)中第i和j層的輸出。
使用Python、TensorFlow完成VGG16和VGG19提取的特征融合,代碼如下:
def register(self,IX,IY):
#定義圖像配準(zhǔn)函數(shù),輸入為參考圖像與待配準(zhǔn)圖像
# set parameters
tolerance=self.tolerance
#允許容忍的最小誤差
freq=self.freq
#用于記錄節(jié)點(diǎn)的使用頻率
epsilon=self.epsilon
#被定義為最小的數(shù)
omega=self.omega
#加權(quán)平均數(shù)中的權(quán)值
beta=self.beta#
lambd=self.lambd#
# resize image
Xscale=1.0*np.array(IX.shape[:2])/self.shape
#計(jì)算參考圖像與圖像縮放后的權(quán)重比值大小
Yscale=1.0*np.array(IY.shape[:2])/self.shape
#計(jì)算待配準(zhǔn)圖像與圖像縮放后的權(quán)重比值大小
IX=cv2.resize(IX,(self.height,self.width))
#將參考圖像IX的寬和高縮到已經(jīng)給出的參數(shù)大小
IY=cv2.resize(IY,(self.height,self.width))
#將待配準(zhǔn)圖像IY的寬和高同樣縮放到已經(jīng)給出的參數(shù)大小
# CNN feature
# propagate the images through VGG16
IX=np.expand_dims(IX,axis=0)
#在IX的第一個(gè)
#維度上增加一個(gè)新的維度,以使數(shù)組維度相匹配
IY=np.expand_dims(IY,axis=0)
#在IY的第一個(gè)
#維度上增加一個(gè)新的維度,以使數(shù)組維度相匹配
cnn_input=np.concatenate((IX,IY),axis=0)
#能夠一次完成多個(gè)數(shù)組的拼接,即對(duì)參考圖像和
#待配準(zhǔn)圖像的特征進(jìn)行融合
with tf.Session() as sess:
#使用with tf.Session()創(chuàng)建
#上下文(Context)來(lái)執(zhí)行,當(dāng)上下文退出時(shí)自動(dòng)釋放
feed_dict={self.cnnph:cnn_input}
#用feed_dict以字典的方式填充占位
D1,D2,D3=sess.run([
self.vgg.pool3+self.vgg1.pool3,self.vgg.pool4+self.vgg1.pool4,self.vgg.pool5+self.vgg1.pool5_1],feed_dict=feed_dict)
#分別將vgg和vgg1對(duì)應(yīng)的VGG16和VGG19后
#3個(gè)卷積塊提取的特征進(jìn)行融合
圖2中還給出若輸入的圖像為224×224,則各個(gè)通道中各個(gè)卷積塊相應(yīng)的輸出特征圖的大小。
1.2.2密集網(wǎng)絡(luò)
密集連接卷積網(wǎng)絡(luò)由Huang等提出,它的基本思想是采用“全跨鏈”的連接方式。后面每一層的輸入是其之前所有層所得到的特征圖的融合,其建立了高層與之前所有層的緊密連接。
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)需要將第n層的輸出作為結(jié)果輸入到下一層第n+1層。假設(shè)神經(jīng)網(wǎng)絡(luò)總共包含N層,其中網(wǎng)絡(luò)中的每一層都包含一個(gè)非線性變換Hn=(*),n表示網(wǎng)絡(luò)中的第n層。Hn=(*)代表各種網(wǎng)絡(luò)作用,如卷積或池化,歸一化。將第n層的輸出記為Xn。那么傳統(tǒng)網(wǎng)絡(luò)的轉(zhuǎn)換就可以表示為:
Xn=Hn(Xn-1)
(3)
式中:[X0,X1,…,Xn]為第0,1,…,n-1層網(wǎng)絡(luò)層輸出的特征圖。密集連接網(wǎng)絡(luò)通過(guò)增強(qiáng)提取特征的傳播和重利用,能夠有效地解決由于網(wǎng)絡(luò)深度增加造成梯度消失的問題。
1.2.3對(duì)Vgg網(wǎng)絡(luò)模塊的優(yōu)化
VGG16是由兩種類型的卷積塊A和卷積塊B組成,圖3和圖4分別為密集網(wǎng)絡(luò)改進(jìn)VGG16單個(gè)卷積塊的結(jié)構(gòu)示意圖。改進(jìn)后的卷積塊仍然由若干個(gè)卷積層和一個(gè)池化層組成,實(shí)現(xiàn)對(duì)圖像的特征提取。但是其中前面每一個(gè)卷積塊單元最后的輸出結(jié)果都與下一個(gè)卷積塊單元中的多個(gè)卷積層的輸出建立連接,增加了信息的重復(fù)利用率。
圖3 VGG16單個(gè)卷積塊A的連接示意圖
圖4 VGG16單個(gè)卷積塊B的連接示意圖
圖3為密集網(wǎng)絡(luò)改進(jìn)后的卷積塊A模塊,包括2個(gè)卷積分支(從上到下依次為第1和第2卷積分支)和一個(gè)池化分支,2個(gè)卷積分支的卷積核大小和個(gè)數(shù)均為3×3和64(圖中虛線部分表示省略的卷積核)。可以看出,在池化分支部分使用密集網(wǎng)絡(luò)重復(fù)利用第一卷積分支所提取到的圖像特征,增加了特征的利用率。
圖4為優(yōu)化后的卷積塊B模塊,采用部分跨鏈的連接方式將卷積塊中第一層與第二層的特征圖F1、F2結(jié)合作為第三層的輸入F3,并將第二、三層得到的特征圖再次結(jié)合作為池化層的輸入F4,最后對(duì)剩余的卷積塊B做同樣的處理。這樣使網(wǎng)絡(luò)能充分利用每一層特征圖的信息,實(shí)現(xiàn)提取特征的重復(fù)利用,同時(shí)這些特征圖的結(jié)合并沒有增加網(wǎng)絡(luò)的復(fù)雜度,相關(guān)公式如下:
F1=H(x0)=x1
F2=H(x1)=x2
F3=H(x0)+H(x1)
F4=H(x1)+H(F3)=
H(x1)+H(H(x0)+H(x1))
(6)
式中:Fi(i=1,2,3,4)分別代表第i個(gè)卷積層所得到的特征圖的輸入或輸出,H(*)代表該卷積層的非線性操作,包括卷積或歸一化等。xi(i=0,1,2,3)代表第i個(gè)卷積層的輸出(i=0時(shí)表示上一個(gè)卷積塊的輸出)。
使用Python、TensorFlow完成VGG16結(jié)構(gòu)的構(gòu)建和改進(jìn),改進(jìn)VGG16結(jié)構(gòu)代碼如下:
# 開始構(gòu)建卷積層
# vgg16的網(wǎng)絡(luò)結(jié)構(gòu)
# 第一層:2個(gè)卷積層1個(gè)pooling層
# 第二層:2個(gè)卷積層1個(gè)pooling層
# 第三層:3個(gè)卷積層1個(gè)pooling層
# 第四層:3個(gè)卷積層1個(gè)pooling層
# 第五層:3個(gè)卷積層1個(gè)pooling層
# 這些變量名稱不能亂取,必須要和vgg16模型保持一致
# 另外,將這些卷積層用self.的形式,方便以后取用方便
self.conv1_1=self.conv_layer(x_bgr,′conv1_1′)
#第一個(gè)卷積塊的第一個(gè)卷積層,輸入為原始圖片,
#輸出為卷積操作后的特征圖F1。
self.conv1_2=self.conv_layer(self.conv1_1,′conv1_2′)
#第一個(gè)卷積塊的第二個(gè)卷積層,輸入為特征圖F1,
#輸出為卷積操作后的特征圖F2。
self.pool1=self.pooling_layer(self.conv1_2+self.conv1_1,′pool1′)
#第一個(gè)卷積塊的池化層,輸入為F1和F2
#融合后的特征,輸出為池化操作后的特征圖F3。
self.conv3_1=self.conv_layer(self.pool2,′conv3_1′)
#第三個(gè)卷積塊的第一個(gè)卷積層,輸入特征圖F6,
#輸出為卷積操作后的特征圖F7。
self.conv3_2=self.conv_layer(self.conv3_1,′conv3_2′)
#第三個(gè)卷積塊的第二個(gè)卷積層,輸入為特征圖F7,
#輸出為卷積操作后的特征圖F8。
self.conv3_3=self.conv_layer(self.conv3_2+self.conv3_1,′conv3_3′)
#第三個(gè)卷積塊的第三個(gè)卷積層,輸入為
#F7和F8融合后的特征,輸出為卷積操作后的特征圖F9。
self.pool3=self.pooling_layer(self.conv3_3+self.conv3_2,′pool3′)
#第三個(gè)卷積塊的池化層,輸入為F8和F9融合后的
#特征,輸出為池化操作后的特征圖F10。
VGG19同樣是由兩種類型的卷積塊A和B組成。其中,VGG19卷積塊A的結(jié)構(gòu)和改進(jìn)方式同VGG16的卷積塊A完全相同。VGG19網(wǎng)絡(luò)中的卷積塊B,同樣采用部分跨鏈的連接方式將網(wǎng)絡(luò)卷積塊中第一層與第二層特征圖F1、F2結(jié)合作為第三層的輸入F3,并將第二、三層得到的特征圖再次結(jié)合,將得到的結(jié)果作為下一層的輸入F4,最后將第三、四層得到的特征圖融合后作為池化層的輸入F5,最后對(duì)剩余的卷積塊B做同樣的處理。其中,卷積塊B中前三個(gè)卷積層的連接方式與VGG16相同,所以F1到F4公式的表達(dá)方式與上一個(gè)公式的表達(dá)方式相同。特征圖F5的表達(dá)公式如下:
F5=H(x0)+H(x1)+H(F4)=
H(x0)+H(x1)+H(H(x1)+H(H(x0)+H(x1)))
(7)
式中:Fi(i=1,2,3,4,5)分別代表第i個(gè)卷積層所得到的特征圖的輸入或輸出,H(*)代表該卷積層的非線性操作,包括卷積或歸一化等。xi(i=0,1,2,3,4)代表第i個(gè)卷積層的輸出(i=0時(shí)表示上一個(gè)卷積塊的輸出)。
1.3.1CPD算法的介紹
CPD算法是將參考圖像與待配準(zhǔn)圖像生成的兩個(gè)點(diǎn)集之間的對(duì)齊匹配問題轉(zhuǎn)化為一種求解概率密度估計(jì)問題,該算法的基本原理是通過(guò)對(duì)一個(gè)確定點(diǎn)GMM(高斯混合模型)的后驗(yàn)概率進(jìn)行求解,使其最大化,從而完成匹配。
在點(diǎn)集匹配中,一般是由兩個(gè)點(diǎn)集構(gòu)成,其中一個(gè)是參考點(diǎn)集XN×D(x1,x2,…,xN)T是由參考圖像Ix生成的;另外的一個(gè)點(diǎn)集是高斯混合模型的中心點(diǎn)集YM×D(y1,y2,…,yM)T,需要將其向參考點(diǎn)集逐漸逼近。其中,N、M、D分別是參考圖像和待配準(zhǔn)圖像生成相對(duì)應(yīng)點(diǎn)集所包含特征點(diǎn)的數(shù)量和點(diǎn)集的維數(shù)。同時(shí)我們將一個(gè)均勻分布引入到了高斯混合模型中,是為了消除噪聲等其他相關(guān)因素的影響。因此本文最后模型的高斯混合分量總和包含有協(xié)方差和混合概率,公式如下:
式中:ρ(x|m)一般是概率密度函數(shù)中所包含的基函數(shù),ω(0≤ω≤1)是一個(gè)權(quán)重參數(shù),m是根據(jù)待配準(zhǔn)圖像生成相應(yīng)點(diǎn)集中的第m個(gè)特征點(diǎn),x和y分別代表參考和待配準(zhǔn)圖像生成相應(yīng)點(diǎn)集中的特征點(diǎn)。
高斯混合模型的質(zhì)心位置可以通過(guò)對(duì)變換參數(shù)θ進(jìn)行一系列調(diào)整從而實(shí)現(xiàn)變換,實(shí)際上是通過(guò)對(duì)下面公式中的負(fù)對(duì)數(shù)似然函數(shù)進(jìn)行求解實(shí)現(xiàn)最小化,從而完成對(duì)這些參數(shù)進(jìn)行估計(jì),公式如下:
式中:θ為待估參數(shù),實(shí)際意義為GMM質(zhì)心位置的變換參數(shù),σ2表示協(xié)方差,n是根據(jù)參考圖像生成相應(yīng)點(diǎn)集中第n個(gè)特征點(diǎn)。用期望值最大化(EM)算法來(lái)得到θ和σ2。
可以看出,權(quán)重參數(shù)ω在該算法中同樣十分重要,一般來(lái)說(shuō)它的數(shù)值是由人工進(jìn)行隨機(jī)給定的,但是如果給定的數(shù)值設(shè)計(jì)不合理,最終將會(huì)影響配準(zhǔn)結(jié)果。本文為了得到合理的ω值,從而提高圖像配準(zhǔn)的精度,引入了粒子群算法(PSO)優(yōu)化算法對(duì)ω進(jìn)行自動(dòng)尋找最優(yōu)解。
1.3.2PSO優(yōu)化的策略
為了解決上述ω值設(shè)定不合理的問題,本文首先設(shè)計(jì)一個(gè)準(zhǔn)則函數(shù)用來(lái)對(duì)得到的ω值進(jìn)行判定看是否合理,如果數(shù)值并不是十分合理,然后利用粒子群優(yōu)化算法針對(duì)給定的ω值自動(dòng)尋優(yōu)。
粒子群算法[10-12]同隨機(jī)優(yōu)化算法中的遺傳算法類似,算法主要步驟如下:首先給定一組隨機(jī)解,然后通過(guò)迭代運(yùn)算得到最優(yōu)解,最后通過(guò)準(zhǔn)則函數(shù)對(duì)最終得到的結(jié)果進(jìn)行評(píng)價(jià)分析。其優(yōu)勢(shì)與遺傳算法相比體現(xiàn)在,沒有遺傳算法的“交叉”和“變異”操作,比較簡(jiǎn)單,精度較高,收斂快,并且有較強(qiáng)的局部搜索能力。
為了權(quán)重參數(shù)ω能夠?qū)崿F(xiàn)自動(dòng)迭代尋優(yōu),準(zhǔn)則函數(shù)的選取必須是與ω相關(guān)的。這里選用距離誤差作為度量標(biāo)準(zhǔn),即把兩個(gè)點(diǎn)集中對(duì)應(yīng)點(diǎn)的歐氏距離作為準(zhǔn)則函數(shù)。在實(shí)際情況中,點(diǎn)集的匹配過(guò)程中可能存在多對(duì)一的情況,如果準(zhǔn)則函數(shù)還對(duì)每一個(gè)相關(guān)的點(diǎn)對(duì)做相同的處理,則會(huì)造成最后的配準(zhǔn)誤差較大,針對(duì)這一問題,本文提出按照距離的遠(yuǎn)近進(jìn)行反比例的分配權(quán)重。換句話說(shuō),距離遠(yuǎn)權(quán)重小,反之權(quán)重大,準(zhǔn)則函數(shù)公式如下:
式中:N為參考圖像生成點(diǎn)集的特征點(diǎn)數(shù)量,i是第幾個(gè)特征點(diǎn),W是權(quán)重函數(shù),x是兩個(gè)點(diǎn)集中其中一個(gè)點(diǎn)集中特征點(diǎn),Tx是另一個(gè)點(diǎn)集中與之相對(duì)應(yīng)的特征點(diǎn),d是兩個(gè)點(diǎn)集中相關(guān)對(duì)應(yīng)點(diǎn)對(duì)之間的歐氏距離。
式中:Dmax是對(duì)應(yīng)點(diǎn)歐氏距離的最大值。
使用權(quán)重參數(shù)優(yōu)化后的CPD算法進(jìn)行特征點(diǎn)精確匹配,并根據(jù)最終的正確匹配特征點(diǎn)求出最終的仿射變換系數(shù),待配準(zhǔn)圖像根據(jù)該系數(shù)進(jìn)行仿射變換,從而完成對(duì)遙感圖像的精確配準(zhǔn)。
本文提出的遙感圖像配準(zhǔn)算法的具體步驟如下:
(1) 特征提取。對(duì)輸入的圖像對(duì)利用訓(xùn)練好的雙通道卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行特征提取。
(2) 特征融合。將來(lái)自兩個(gè)不同通道提取的圖像特征進(jìn)行融合,利用融合后的特征生成相應(yīng)的特征點(diǎn)集。
(3) 特征匹配。利用一致性點(diǎn)漂移算法對(duì)參考圖像和待配準(zhǔn)圖像的特征點(diǎn)進(jìn)行匹配,用來(lái)求解最佳轉(zhuǎn)換參數(shù)。
(4) 求解變換模型。計(jì)算圖像變換矩陣,待配準(zhǔn)圖像根據(jù)該仿射系數(shù)進(jìn)行變換,完成遙感圖像配準(zhǔn)。具體流程如圖5所示。
圖5 本文方法配準(zhǔn)流程
本文實(shí)驗(yàn)編譯環(huán)境、實(shí)驗(yàn)測(cè)試環(huán)境和實(shí)驗(yàn)訓(xùn)練設(shè)備條件如表1所示。
表1 各種實(shí)驗(yàn)操作的環(huán)境和設(shè)備條件
表2 各種權(quán)值參數(shù)下的誤差值
首先將預(yù)先訓(xùn)練好的VGG模型在ImageNet數(shù)據(jù)集上完成對(duì)參數(shù)進(jìn)行初始化,然后使用自制的遙感圖像數(shù)據(jù)集對(duì)搭建好的雙通道模型進(jìn)行訓(xùn)練,從而得到具有更好配準(zhǔn)屬性的多層融合特征。本文數(shù)據(jù)集構(gòu)建使用AID數(shù)據(jù)集中59組多時(shí)相遙感圖像對(duì)。根據(jù)圖像類別可分為如下幾類:野外遙感圖像、城市遙感圖像和景觀圖像。占比最大的是第一類,其余兩類占比小且數(shù)量大致相同。其中野外遙感圖像以界限分明的湖泊、河流遙感圖像為主。在59對(duì)圖像上分別選擇Z個(gè)匹配“種子”圖像塊,其大小為32×32像素。這些“種子”圖像塊對(duì)中的每一個(gè)都被聲明為代表它自己的類。為了擴(kuò)展這些類,將K=210個(gè)隨機(jī)變換應(yīng)用于每個(gè)“種子”圖像塊對(duì)。每個(gè)變換是多個(gè)隨機(jī)基本變換的組合,主要包括旋轉(zhuǎn)、平移、縮放和亮度等。因此,本文構(gòu)建的自定義數(shù)據(jù)集共有Z類,每個(gè)類包含2K個(gè)樣本,并將生成的數(shù)據(jù)集按照4∶1的比例隨機(jī)分成為訓(xùn)練集和測(cè)試數(shù)據(jù)集。
本文用均方根誤差(Root Mean Square Distance,RMSD)、平均絕對(duì)誤差(Mean Absolute Distance,MAD)、均方誤差(Mean Square Error,MSE)等參數(shù)數(shù)據(jù)對(duì)圖像配準(zhǔn)精度做客觀的評(píng)價(jià)。所有數(shù)據(jù)結(jié)果均是越小越好,單位是像素。
本文中的實(shí)驗(yàn)參數(shù)設(shè)置如下:根據(jù)經(jīng)驗(yàn)得出學(xué)習(xí)速率一般設(shè)置為0.000 9,系統(tǒng)默認(rèn)動(dòng)量值和權(quán)重衰減值分別為0.9和0.000 5,一般不作修改。雙通道網(wǎng)絡(luò)多層特征融合模型在本文構(gòu)建的數(shù)據(jù)集上的訓(xùn)練精度和測(cè)試精度如圖6所示。
圖6 數(shù)據(jù)集訓(xùn)練精度和測(cè)試精度
根據(jù)對(duì)權(quán)重參數(shù)ω自動(dòng)尋優(yōu),得出當(dāng)ω=0.4時(shí)效果最好。選取由數(shù)據(jù)來(lái)源GoogleEarth制作成的AID遙感數(shù)據(jù)集中分辨率均為600×600的湖泊、森林、山巒三種類型的測(cè)試圖像對(duì)本文的算法的可行性進(jìn)行驗(yàn)證,并且選取初始、最佳和最小權(quán)重參數(shù)進(jìn)行實(shí)驗(yàn)對(duì)比,結(jié)果如圖7所示。
(a) 參考圖像
ω=0.9
可以看出,當(dāng)權(quán)重參數(shù)ω=0.4時(shí),對(duì)應(yīng)的各個(gè)誤差值均取得最小;比初始權(quán)重ω=0.9時(shí),RMSD和MAD的誤差損失率分別下降了12.1%和12%;比最小權(quán)重ω=0.1時(shí),RMSD和MAD的誤差損失率分別下降了24.1%和27.4%。因此權(quán)重參數(shù)ω=0.4時(shí),配準(zhǔn)效果最好。
為了客觀比較分析,本文通過(guò)對(duì)比其他三種傳統(tǒng)配準(zhǔn)算法和一種深度學(xué)習(xí)圖像配準(zhǔn)方法,并在三組不同地貌差異性的實(shí)驗(yàn)測(cè)試圖像對(duì)條件下進(jìn)行對(duì)比分析。
圖8展示了三組測(cè)試圖像利用本文方法與SIFT算法、文獻(xiàn)[13]、文獻(xiàn)[14]及文獻(xiàn)[15]四種方法的對(duì)比試驗(yàn),總共三組圖像對(duì)的配準(zhǔn)結(jié)果,其中第一組的圖像對(duì)的差異性較小,第二和三組的圖像對(duì)在外觀上存在顯著差異。
(a) 參考圖像
第一組來(lái)自GoogleEarth的圖像的分辨率大小為600×600且圖像的差異性較小、圖像無(wú)亮度和視覺方面的變換,SIFT算法、文獻(xiàn)[13]和文獻(xiàn)[14]采用的是傳統(tǒng)的配準(zhǔn)算法,而文獻(xiàn)[15]和本文采用的是通過(guò)深度學(xué)習(xí)完成對(duì)圖像特征的提取,根據(jù)得到的特征生成相應(yīng)的特征點(diǎn)之后完成圖像配準(zhǔn)。對(duì)于上述的4種算法都可以比較不錯(cuò)的配準(zhǔn)結(jié)果。對(duì)于后兩組的圖像對(duì)分別來(lái)自高分2號(hào)制作的DOTA數(shù)據(jù)集中分辨率大小為953×1 094和高分3號(hào)制作的SAR-Ship數(shù)據(jù)集中分辨率大小為256×256的圖像且在外觀上存在較大差異。SIFT算法、文獻(xiàn)[13]和文獻(xiàn)[14]等傳統(tǒng)算法在提取特征時(shí)可能有較多外點(diǎn)或特征點(diǎn)不足,所以配準(zhǔn)效果明顯劣于深度學(xué)習(xí)算法。文獻(xiàn)[15]僅采用的是VGG單通道網(wǎng)絡(luò)對(duì)圖像進(jìn)行配準(zhǔn),本文方法通過(guò)密集網(wǎng)絡(luò)增加圖像的特征重復(fù)利用率,同時(shí)使用雙通道網(wǎng)絡(luò)結(jié)構(gòu)豐富了提取的圖像特征。通過(guò)比較可以看出采用本文的方法所得到的配準(zhǔn)效果在局部地區(qū)比其他方法的配準(zhǔn)效果較好。
本文在所測(cè)試圖像上均勻,隨機(jī)地選擇10組點(diǎn)用作配準(zhǔn)誤差測(cè)試,通過(guò)計(jì)算得出各組的實(shí)驗(yàn)數(shù)據(jù)如表3所示。
表3 與其他方法定量對(duì)比
五種方法的RMSD、MAD、MSE的平均值結(jié)果如圖9所示。
圖9 圖像定量分析平均值
通過(guò)對(duì)上面五組的數(shù)據(jù)對(duì)比得出,本文對(duì)比實(shí)驗(yàn)數(shù)據(jù)RMSD、MAD、MSE三者的均值分別比各種對(duì)比實(shí)驗(yàn)中最好的數(shù)值平均降低了49%、25%、55%,可以看出傳統(tǒng)算法和采用單通道的卷積神經(jīng)網(wǎng)絡(luò)的配準(zhǔn)效果同樣也不如本文的方法。因此,本文的算法具有更好的普適性,采用本文的方法對(duì)于具有顯著地貌差異的遙感圖像配準(zhǔn),可以得到較好的配準(zhǔn)結(jié)果。
隨著科技的進(jìn)步,遙感對(duì)地觀測(cè)技術(shù)不斷提高,其已廣泛應(yīng)用于測(cè)繪、水文、氣象、國(guó)防、能源、交通等領(lǐng)域。遙感圖像配準(zhǔn)導(dǎo)航以其分辨率高、被動(dòng)工作方式以及機(jī)載設(shè)備體積小、重量輕等顯著優(yōu)點(diǎn)在飛行器精確導(dǎo)航領(lǐng)域受到越來(lái)越多的重視,成為未來(lái)自主導(dǎo)航飛行器的主要方式之一。遙感圖像配準(zhǔn)技術(shù)是飛行器導(dǎo)航系統(tǒng)的核心,決定了導(dǎo)航系統(tǒng)的總體性能。遙感圖像配準(zhǔn)算法的適應(yīng)性、可靠性、實(shí)時(shí)性以及定位精度是衡量遙感圖像配準(zhǔn)算法的主要技術(shù)指標(biāo)。遙感圖像匹配輔助導(dǎo)航系統(tǒng)中,參考圖是在地面事先制備的衛(wèi)星遙感圖像或航拍圖像,而實(shí)時(shí)圖像是飛行器在運(yùn)動(dòng)過(guò)程中實(shí)時(shí)獲取的地物景象,由于成像的天氣、時(shí)間等自然條件、成像傳感器性能和成像傳感器的姿態(tài)差異、地面紋理特征等方面的不同,使得參考圖與實(shí)時(shí)圖像之間存在著較大的差異。面對(duì)飛行器如此復(fù)雜的工作環(huán)境,研究魯棒性好、實(shí)時(shí)性高的遙感圖像配準(zhǔn)算法,滿足飛行器導(dǎo)航的實(shí)際需要,是遙感圖像配準(zhǔn)技術(shù)研究的核心問題。
對(duì)于一艘航行中的船舶而言,最為基礎(chǔ)也最為重要的就是船舶周邊的視景獲取,它能增強(qiáng)船舶對(duì)環(huán)境的感知能力,對(duì)于預(yù)判航行軌跡、海事分析、規(guī)避碰撞、地貌科學(xué)研究以及航海人員的培訓(xùn)等具有重大意義。船舶圖像系統(tǒng)屬于船舶安全駕駛輔助系統(tǒng)的一種,主要利用圖像處理技術(shù),經(jīng)過(guò)畸變還原、視角轉(zhuǎn)化、圖像配準(zhǔn)、圖像增強(qiáng)等流程實(shí)時(shí)獲取船舶周邊景象,生成全景圖或視野盲區(qū)景象圖,再結(jié)合目標(biāo)識(shí)別、檢測(cè)和定位等計(jì)算機(jī)視覺領(lǐng)域的先進(jìn)技術(shù),形成一套可以輔助航海人員安全駕駛、加強(qiáng)船舶信息化建設(shè)的系統(tǒng)。其中,全景圖像配準(zhǔn)在船舶圖像系統(tǒng)中有著舉足輕重的地位,它是指將多幅具有部分重疊區(qū)域的窄視角圖像進(jìn)行無(wú)縫拼接,生成超寬視場(chǎng)的高分辨率圖像的技術(shù),該技術(shù)能夠彌補(bǔ)常規(guī)相機(jī)的不足,解決人眼視角窄、盲區(qū)等問題。
本文提出的遙感圖像配準(zhǔn)改進(jìn)算法主要體現(xiàn)在圖像的特征提取及匹配。算法利用密集結(jié)構(gòu)改進(jìn)的雙通道卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,豐富了圖像提取特征的同時(shí)提高了特征的重復(fù)利用率。同時(shí)采用隨機(jī)優(yōu)化算法改進(jìn)的一致性點(diǎn)漂移算法進(jìn)行特征匹配,提高了特征匹配的精度。實(shí)驗(yàn)表明,所提方法的配準(zhǔn)結(jié)果具有比其他方法更好的效果。此外,本文方法對(duì)發(fā)生較大變化的遙感圖像的配準(zhǔn)具有更好的魯棒性。