朱良彬,陳 宇
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)
無人機(jī)具有飛行自主、靈活性高、功能擴(kuò)展性強(qiáng)和造價(jià)低廉等優(yōu)點(diǎn),在國(guó)防、農(nóng)業(yè)、測(cè)繪等行業(yè)中具有廣泛的應(yīng)用前景[1]。準(zhǔn)確的導(dǎo)航以及精準(zhǔn)的定位是無人機(jī)實(shí)現(xiàn)眾多功能的基礎(chǔ)。目前無人機(jī)定位導(dǎo)航技術(shù)主要依賴全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System, GNSS),但是GNSS信號(hào)不穩(wěn)定,容易受到電磁環(huán)境與干擾技術(shù)的影響,自主性差。因此,探索GNSS失效環(huán)境下的無人機(jī)自主導(dǎo)航技術(shù),對(duì)無人機(jī)的安全使用具有重要意義[2-3]。
隨著視覺傳感器、深度學(xué)習(xí)的發(fā)展,基于景象匹配的無人機(jī)視覺導(dǎo)航技術(shù)引起了廣泛關(guān)注。視覺導(dǎo)航技術(shù)通過無人機(jī)實(shí)時(shí)采集目標(biāo)區(qū)域的航拍圖像,與預(yù)存儲(chǔ)的基準(zhǔn)衛(wèi)星圖像進(jìn)行匹配,以獲取當(dāng)前的具體位置[4]。視覺導(dǎo)航能同時(shí)兼顧準(zhǔn)確性和自主性,可以作為獨(dú)立導(dǎo)航系統(tǒng),也可以擴(kuò)展其他導(dǎo)航技術(shù)進(jìn)行聯(lián)合導(dǎo)航[5]。基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的計(jì)算機(jī)視覺方法已經(jīng)在目標(biāo)檢測(cè)、圖像檢索等任務(wù)中表現(xiàn)出了優(yōu)異的性能,被作為通用的特征提取器廣泛應(yīng)用于視覺導(dǎo)航定位中。袁浩等[6]使用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)和深度強(qiáng)化學(xué)習(xí)進(jìn)行了目標(biāo)驅(qū)動(dòng)的視覺導(dǎo)航,取得了良好的識(shí)別效果和收斂速度。Bertinetto等[7]首次使用全卷積孿生網(wǎng)絡(luò)(Fully-Convolutional Siamese Network),通過權(quán)值共享的方式將網(wǎng)絡(luò)分為搜索支和模板支,然后進(jìn)行特征圖的相關(guān)操作,匹配出響應(yīng)最大的區(qū)域確定位置信息。孿生網(wǎng)絡(luò)(Siamese Network)結(jié)構(gòu)簡(jiǎn)單,可以進(jìn)行端到端的訓(xùn)練,兼具了匹配精度與速度,因此出現(xiàn)了一系列基于孿生網(wǎng)絡(luò)的改進(jìn)算法,例如DSiam,SA-Siam等均取得了良好的效果[8]。Li等[9]在孿生網(wǎng)絡(luò)的基礎(chǔ)上,引入?yún)^(qū)域建議網(wǎng)絡(luò)(Region Proposal Network, RPN)構(gòu)建了SiamRPN,在一個(gè)階段內(nèi)實(shí)現(xiàn)了端到端的目標(biāo)跟蹤,同時(shí)提升了網(wǎng)絡(luò)的匹配精度與速度。但無人機(jī)由于高度高、視野大,而目標(biāo)物體占有的像素少(通常數(shù)量級(jí)為102),因此圖幅中包含的相似干擾物較多,從背景中區(qū)分出目標(biāo)的難度較大。另外無人機(jī)在行進(jìn)中,實(shí)時(shí)圖像容易產(chǎn)生運(yùn)動(dòng)模糊、尺度變化和幾何形變等問題,進(jìn)一步增加了圖像中目標(biāo)識(shí)別與定位的困難。
針對(duì)以上問題,本文提出了基于二階SiamRPN多重交并比(Multiple Intersection over Union,MIoU)回歸網(wǎng)絡(luò)的無人機(jī)視覺導(dǎo)航算法。通過在孿生框架的CNN提取層引入歸一化協(xié)方差增加二階信息,增強(qiáng)特征對(duì)邊緣的表征能力,提高孿生網(wǎng)絡(luò)對(duì)特征的提取效果。使用區(qū)域建議模塊對(duì)匹配位置進(jìn)行分類和錨定,并在網(wǎng)絡(luò)優(yōu)化過程中提出MIoU損失函數(shù),在一個(gè)階段內(nèi)實(shí)現(xiàn)精確的端到端的特征提取與匹配過程,并在旋翼型無人機(jī)搭建平臺(tái)進(jìn)行框架驗(yàn)證。
孿生網(wǎng)絡(luò)將目標(biāo)匹配的問題視為相似性學(xué)習(xí),由2個(gè)分支組成,一個(gè)模板支用于提取參考圖像T的特征信息,另一個(gè)搜索支用于提取當(dāng)前圖像I的特征信息,最終學(xué)習(xí)到一個(gè)相似性度量函數(shù)S(T,I),原理性框架如圖1所示。相似性函數(shù)返回模板T與輸入I對(duì)應(yīng)位置的相似度,并標(biāo)記相似度最高的部分為匹配目標(biāo)。經(jīng)典的SiamFC與其深度改進(jìn)算法,2個(gè)特征提取分支均為權(quán)值共享的CNN,通常為AlexNet,ResNet和DenseNet等。然后使用2支特征進(jìn)行互相關(guān)聯(lián)運(yùn)算得到相似性得分:
S(T,I)=f(T)?f(I)+bl,
(1)
式中,S(T,I)為模板圖像T與輸入圖像I的相似性得分;f(·)表示經(jīng)過CNN提取到的深度特征;表示相關(guān)操作;bl表示當(dāng)前位置像素的取值。
RPN首次在Faster-RCNN網(wǎng)絡(luò)中提出,在特征圖中以錨點(diǎn)(Anchor point)為中心,生成不同尺度的9個(gè)錨框(Anchor boxes)并進(jìn)行前景-背景判斷,最終通過邊框回歸輸出目標(biāo)物體的位置和物體參考分?jǐn)?shù)[10]。多個(gè)錨框在深度特征圖上以滑動(dòng)的方式進(jìn)行枚舉,對(duì)一個(gè)特征圖同時(shí)進(jìn)行多個(gè)區(qū)域的建議,并將結(jié)果輸入到框回歸層與分類層??蚧貧w層通過計(jì)算生成框與樣本真實(shí)框之間的位移獲得精確的物體位置坐標(biāo),而分類層通過計(jì)算錨框和樣本真實(shí)框之間的交并比(Intersection over Union,IoU)進(jìn)行前景-背景判斷。RPN避免了傳統(tǒng)的“選擇性”搜索,對(duì)不同尺度的目標(biāo)都有快速且良好的性能和效果。
基于視覺的導(dǎo)航技術(shù)是將無人機(jī)拍攝的實(shí)時(shí)圖像與預(yù)存儲(chǔ)的衛(wèi)星圖像進(jìn)行對(duì)比,匹配出相似度最高的目標(biāo)并標(biāo)記目標(biāo)的坐標(biāo)位置。SiamRPN通過在孿生網(wǎng)絡(luò)后接入RPN模塊,能夠在一個(gè)階段內(nèi)完成特征的提取與匹配。但文獻(xiàn)[9]中SiamRPN的特征提取主干使用Alexnet,是傳統(tǒng)的層數(shù)較淺的一階網(wǎng)絡(luò),對(duì)圖像的特征提取不夠充分。而在RPN模塊中,使用smooth-l1損失函數(shù)約束邊框中心、長(zhǎng)、寬、高,不具備處理非重疊邊框問題的能力,容易產(chǎn)生錯(cuò)位與梯度消失。因此,SiamRPN對(duì)大視角內(nèi)中、小尺度的目標(biāo)特征提取能力有限。
本文提出基于二階SiamRPN的MIoU回歸算法,通過使用ResNet50[11]替代AlexNet增加網(wǎng)絡(luò)深度,同時(shí)在ResNet50中引入歸一化協(xié)方差增加特征的二階信息,充分利用不同分辨率和不同階特征對(duì)目標(biāo)邊緣的提升[12]。算法的優(yōu)化過程中提出MIoU,增加了對(duì)邊框尺度和邊框中心點(diǎn)之間的約束項(xiàng)目,增強(qiáng)了算法在實(shí)時(shí)圖像非理想狀態(tài)下的魯棒性。
圖2展示了本文提出的基于二階SiamRPN MIoU回歸網(wǎng)絡(luò)的框架,由孿生網(wǎng)絡(luò)和RPN兩部分組成。
圖2 二階SiamRPN MIoU回歸網(wǎng)絡(luò)框架結(jié)構(gòu)Fig.2 Second-order SiamRPN MIoU regression network framework
孿生網(wǎng)絡(luò)由2個(gè)權(quán)值和結(jié)構(gòu)完全相同的ResNet50構(gòu)成模板支和搜索支,同時(shí)在最后一組殘差模塊嵌入基于歸一化協(xié)方差的二階信息,與一階殘差特征相加構(gòu)成多階特征信息用于識(shí)別與檢測(cè)。搜索支的輸入為255×255×3并包含待匹配的目標(biāo)物,模板支為127×127×3。2個(gè)分支同時(shí)對(duì)圖像的特征進(jìn)行提取,隨后深層特征經(jīng)過卷積相關(guān)后分別進(jìn)入RPN網(wǎng)絡(luò),然后進(jìn)行相關(guān)操作進(jìn)行類別與位置的預(yù)測(cè):
(2)
(3)
式中,Cor表示相關(guān)操作后得到的特征,維度分別為w×h×2k和w×h×4k;Tcls和Treg是模板支輸入RPN的特征;fcls與freg為搜索支的輸入RPN的特征;表示卷積操作。在RPN模塊定義了新的MIoU回歸邊框調(diào)節(jié)方法,從2個(gè)邊框非重疊面積與邊框中心點(diǎn)2個(gè)角度進(jìn)行聯(lián)合約束,使預(yù)測(cè)框與樣本真實(shí)框靠近。
將CNN主干網(wǎng)絡(luò)替換為ResNet網(wǎng)絡(luò),一定程度上增加了網(wǎng)絡(luò)深度,提高了特征的語義表示,但其本質(zhì)上仍為一階特征。對(duì)于小目標(biāo)邊緣的描述,需要二階特征的輔助。在殘差模塊中添加基于歸一化協(xié)方差的二階信息,將其設(shè)計(jì)為嵌入網(wǎng)絡(luò)的模塊化層次,如圖3所示。本小節(jié)主要介紹歸一化協(xié)方差的二階信息的生成方法。
圖3 二階殘差信息生成模塊Fig.3 Second-order residual information generation module
將圖像輸入孿生框架后,經(jīng)過ResNet50提取后獲得一組一階特征fi∈h×w×c,將其轉(zhuǎn)置外積計(jì)算后獲得了通道間交互的二階協(xié)方差矩陣C:
(4)
式中,fi為提取的一階特征;I是單位矩陣;ε為一個(gè)小正數(shù)。但此時(shí)得到的協(xié)方差矩陣是高維度的小樣本,屬于黎曼流型結(jié)構(gòu),模型不能對(duì)其進(jìn)行直接的魯棒估計(jì)。因此對(duì)C進(jìn)行基于特征值分解的歸一化處理,如圖4所示。
圖4 歸一化協(xié)方差Fig.4 Normalized covariance
因?yàn)閰f(xié)方差矩陣C是對(duì)稱正定的,因此可以進(jìn)行奇異值分解:
C=UΛUT,
(5)
式中,C為對(duì)稱正定的二階矩;Λ=(λ1λ2…λi)是由特征值λi構(gòu)成的對(duì)角矩陣;U=[u1u2…ui]是其對(duì)應(yīng)的特征向量ui組成的n維方陣。由式(5)可知,對(duì)于協(xié)方差C矩陣冪歸一化處理可以表示為特征值的冪運(yùn)算:
Cα=UΛαUT。
(6)
當(dāng)α=0.5時(shí),即為矩陣的平方根規(guī)范化。由于GPU對(duì)矩陣分解的計(jì)算速度很慢,為了滿足導(dǎo)航實(shí)時(shí)高的需求,使用迭代計(jì)算矩陣的平方根[13]。設(shè)有矩陣Z,令C=Z2,則:
F(Z)=Z2-C=0。
(7)
使用Denman-Beavers公式對(duì)式(7)迭代求解[14]:
(8)
(9)
式中,給定迭代初始值Y0=C,Z0是單位陣I。則Yk和Zk分別全局收斂于C1/2與C-1/2。
歸一化協(xié)方差二階結(jié)構(gòu)作為殘差塊中的嵌入層,是分段可微的,能夠通過反向傳播和矩陣計(jì)算進(jìn)行端到端的訓(xùn)練。損失函數(shù)L對(duì)C的偏導(dǎo)數(shù)由鏈?zhǔn)椒▌t可知,能夠表示為:
(10)
式中,L為損失函數(shù);C為二階特征矩陣;Λ為由特征值構(gòu)成的對(duì)角矩陣;U為由特征向量組成的n維方陣;K為交錯(cuò)矩陣,表示如下:
(11)
式中,kij表示矩陣元素λi對(duì)應(yīng)的特征值,由此可得:
(12)
(13)
(14)
以SiamRPN結(jié)構(gòu)為框架的算法其損失函數(shù)L可以分為2部分,一部分為使用交叉熵?fù)p失表示的分類損失Lcls,用于優(yōu)化目標(biāo)分類的過程:
Lcls(yi,pi)=-(yi·ln(pi)+(1-yi)·(1-pi)),
(15)
式中,Lcls為損失函數(shù)值;yi為樣本標(biāo)簽值;pi為該樣本對(duì)應(yīng)的概率。由于一個(gè)目標(biāo)僅為一個(gè)類別,則式(15)可以簡(jiǎn)化為:
(16)
(17)
LIoU=-pln(IoU)-(1-p)ln(1-IoU),
(18)
式中,IoU為交并比比值;LIoU為對(duì)應(yīng)的損失函數(shù);S1為預(yù)測(cè)錨框;S2為樣本真實(shí)框;p為其對(duì)應(yīng)的概率。IoU表示2個(gè)邊框的重疊關(guān)系,顯然取值為[0,1]。但這種方式?jīng)]有考慮邊框不重疊的情況。使用MIoU對(duì)預(yù)測(cè)框的回歸進(jìn)行多重優(yōu)化,設(shè)計(jì)更完整的損失函數(shù),其中包含廣義交并比(GIoU)與距離交并比(DIoU)。
GIoU主要關(guān)注2框的非重疊部分,其目標(biāo)是從最小化非重疊面積的角度出發(fā)使得2個(gè)框無限接近,如圖5(b)所示[17]。
圖5 不同IoU示意Fig.5 Comparison of different IoU
GIoU首先找到能夠完全包裹S1,S2的最小邊框,再計(jì)算不包括2框占據(jù)的區(qū)域,即:
(19)
(20)
式中,GIoU為廣義交并比比值;S1為預(yù)測(cè)錨框;S2為樣本真實(shí)框;S3為完全包裹S1,S2的最小邊框。當(dāng)預(yù)測(cè)框S1和樣本真實(shí)框S2沒有發(fā)生重疊(即IoU=0),此時(shí)GIoU≠0,確保了損失函數(shù)的梯度可以反向傳播。但當(dāng)S1包含S2時(shí),GIoU退化為IoU,無法進(jìn)行準(zhǔn)確的回歸計(jì)算。因此引入DIoU,可視化如圖5(c)所示[18]。DIoU在回歸中加入對(duì)S1,S2中心距離的約束,更好地表征重疊信息,計(jì)算過程如下:
(21)
(22)
式中,DIoU為距離交并比比值;IoU為交并比值;d(S1,S2)為2個(gè)框中心點(diǎn)的距離;R為包含2個(gè)框的最小矩形的對(duì)角線。不同IoU之間的示意如圖2紫色框中所示。因此基于MIoU的回歸損失函數(shù)Lreg為GIoU的DIoU的組合:
(23)
式中,Lreg為回歸分支的損失函數(shù);α與β為超參數(shù)。則整體框架的損失函數(shù)Loss可以表示為:
Loss=Lcls+Lreg,
(24)
即:
(25)
本實(shí)驗(yàn)選用旋翼型無人機(jī)為實(shí)驗(yàn)載機(jī),數(shù)據(jù)集為無人機(jī)采集的3 960張地形匹配圖,經(jīng)過平移、縮放、模糊和翻轉(zhuǎn)等數(shù)據(jù)增強(qiáng)處理擴(kuò)充為10 000張,地形涵蓋山地、森林、河流、湖泊、海岸線、城市十字路口、操場(chǎng)、工廠樓房、獨(dú)棟樓房、小區(qū)樓房、高架橋、公園、不帶綠化帶的馬路以及帶綠化帶的馬路等類別。
本文使用PyTorch框架搭建網(wǎng)絡(luò),訓(xùn)練的epoch為50,batch size為128,采用隨機(jī)梯度下降算法進(jìn)行網(wǎng)絡(luò)優(yōu)化,設(shè)置動(dòng)量因子為0.9,權(quán)重衰減為0.000 1,前5個(gè)epoch使用Warmup預(yù)熱學(xué)習(xí)率從0.005增加到0.01,之后學(xué)習(xí)率以指數(shù)衰減方式從0.01到0.005。前10個(gè)epoch不訓(xùn)練backbone只訓(xùn)練模型剩余部分,10個(gè)epoch后訓(xùn)練整個(gè)模型。超參數(shù)α與β經(jīng)多次實(shí)驗(yàn)后分別為0.41與0.53。實(shí)驗(yàn)使用的CPU為Intel-Core i7-8700K@3.70 GHz,GPU為NVIDA RTX3090顯卡,顯存為24 GB。
為驗(yàn)證二階SiamRPN MIoU回歸框架的有效性,使用精確度(Precision)、成功率(Success)和運(yùn)行速度(FPS)對(duì)算法進(jìn)行定量評(píng)價(jià)。Precision的像素閾值選擇20,Success采用重疊率作為標(biāo)準(zhǔn)。同時(shí),使用目前匹配定位效果優(yōu)異的算法SiamFC[7],SiamRPN[9],CFNet[19]進(jìn)行了對(duì)比。
本文提出的二階SiamRPN MIoU回歸算法與其他基準(zhǔn)算法的Precision和Success曲線如圖6和圖7所示,均使用曲線下面積作為標(biāo)準(zhǔn)。結(jié)果表明,二階SiamRPN MIoU回歸比結(jié)構(gòu)相同的基準(zhǔn)SiamRPN的精確度與成功率分別提升了0.023和0.022,運(yùn)行速度基本持平,遠(yuǎn)高于其他結(jié)構(gòu)的算法框架,如表1所示。
圖6 成功率曲線Fig.6 Success curve chart
圖7 精確度曲線Fig.7 Precision curve chart
表1 二階SiamRPN MIoU回歸算法性能比較Tab.1 Performance comparison of second-order SiamRPN MIoU regression network with other methods
為了驗(yàn)證所提MIoU的有效性,使用二階SiamRPN框架與多種Loss函數(shù)的組合,分別為二階SiamRPN+smooth-l1,二階SiamRPN+IoU,二階SiamRPN+GIoU,二階SiamRPN+DIoU以及二階SiamRPN+MIoU。其在自建數(shù)據(jù)集上的中心誤差值比較如表2所示,本文所提方法顯著好于其他組合。
表2 MIoU與其他損失函數(shù)平均中心誤差對(duì)比Tab. 2 Comparison of the mean central error of MIoU and other loss functions
圖8展示了本文所提二階SiamRPN MIoU回歸算法和SiamRPN算法對(duì)部分樣本的定位結(jié)果。其中,第1列為無人機(jī)實(shí)時(shí)航拍采集的圖像,第2列為本文所提算法匹配結(jié)果,第3列為SiamRPN算法匹配結(jié)果。
(a)本文所提方法與基準(zhǔn)SiamRPN均定位正確樣本
(b)本文方法定位正確,但基準(zhǔn)SiamRPN定位錯(cuò)誤樣本圖8 無人機(jī)實(shí)時(shí)定位結(jié)果Fig.8 Real-time location results of the UAV
圖8(a)展示了正確匹配并定位的結(jié)果,可以看出當(dāng)圖像中出現(xiàn)比較明顯的特征(例如鮮艷的顏色、特殊的邊緣),2種方法都有優(yōu)異的效果。但當(dāng)檢索圖像中目標(biāo)比較模糊或與周圍有相似輪廓時(shí),傳統(tǒng)的SiamRPN比較容易發(fā)生錯(cuò)誤定位,而二階SiamRPN MIoU回歸方法依然能正確定位,如圖8(b)所示。算法性能的提升主要在于二階協(xié)方差信息的融合,使骨干CNN對(duì)目標(biāo)物體特征的提取更加充分,對(duì)模糊邊緣的可分性增強(qiáng)。另外,由于MIoU損失函數(shù)納入了多重回歸因素,錨框的定位更加準(zhǔn)確。
目前,基于深度學(xué)習(xí)的視覺導(dǎo)航在GNSS拒止條件下給無人機(jī)提供導(dǎo)航定位。但無人機(jī)由于高度高、視野大,在行進(jìn)中有抖動(dòng),實(shí)時(shí)圖像中存在目標(biāo)物體像素少、運(yùn)動(dòng)模糊、尺度變化、幾何形變和部分遮擋等問題,需要特征提取與定位能力強(qiáng)的算法框架。為此本文提出了基于二階SiamRPN MIoU回歸算法,包括雙流孿生特征提取模塊、二階協(xié)方差信息生成模塊、多重約束的興趣區(qū)域產(chǎn)生模塊。通過Res50主干網(wǎng)絡(luò)對(duì)模板圖像和搜索圖像的特征進(jìn)行提取,同時(shí)生成二階協(xié)方差信息對(duì)特征進(jìn)行描述,提升網(wǎng)絡(luò)對(duì)模糊邊緣的表征能力;將孿生框架的信息進(jìn)行交互操作,分別進(jìn)入分類與定位分支;設(shè)計(jì)基于GIoU和DIoU雙重約束的MIoU損失函數(shù)對(duì)RPN的定位回歸進(jìn)行優(yōu)化,同時(shí)提高了定位精度和成功率。最后搭載旋翼型無人機(jī),自制數(shù)據(jù)集進(jìn)行驗(yàn)證測(cè)試,分別與當(dāng)前先進(jìn)的多種算法進(jìn)行了對(duì)比,驗(yàn)證了本文所提算法的有效性。未來的工作將進(jìn)一步研究提升基于深度學(xué)習(xí)的視覺導(dǎo)航實(shí)時(shí)性與輕量化,推動(dòng)機(jī)載導(dǎo)航硬件部署的一體化。