張 正 馬渝博柳長安 田 青
(北方工業(yè)大學(xué)信息學(xué)院 北京 100144)
遙感圖像中地物目標(biāo)分布情況能夠反映人群、軍隊等的整體運(yùn)動趨勢和行為邏輯,準(zhǔn)確而高效地在遙感圖像中檢測并識別出所需的目標(biāo),對于基層建設(shè)、交通規(guī)劃、軍事行動等具有重要的現(xiàn)實意義和實際應(yīng)用價值。
針對遙感圖像中的目標(biāo)檢測問題,傳統(tǒng)的方法通常基于手工設(shè)計的特征[1–3],但是其特征表達(dá)能力弱、魯棒性差、適應(yīng)范圍小,難以應(yīng)用在復(fù)雜多變的環(huán)境中,遠(yuǎn)不能滿足實際應(yīng)用需求。隨著深度學(xué)習(xí)的發(fā)展,神經(jīng)網(wǎng)絡(luò)的應(yīng)用推動了目標(biāo)檢測領(lǐng)域的發(fā)展[4,5],出現(xiàn)了RCNN系列[6–8]為代表的雙階段目標(biāo)檢測算法,以及YOLO系列[9–11]、SSD系列[12]和RetinaNet[13]為代表的單階段目標(biāo)檢測算法。但是在遙感圖像中,由于車輛、船舶、飛機(jī)等目標(biāo)具有尺寸小、方向任意且長寬比較大的特點,普通視角下的水平目標(biāo)檢測算法尚不能取得良好的效果,因此又相繼出現(xiàn)了如RoI T ransformer[14]、R3Det[15]等旋轉(zhuǎn)檢測算法,在水平目標(biāo)檢測方法的基礎(chǔ)上提出了對旋轉(zhuǎn)角度的預(yù)測。角度值的加入極大減少了檢測框中背景冗余信息的干擾,有利于約束網(wǎng)絡(luò)的訓(xùn)練方向和減少網(wǎng)絡(luò)的收斂時間,但是在旋轉(zhuǎn)檢測中預(yù)測框與真實值間的損失計算上卻產(chǎn)生了新的挑戰(zhàn)。
由于旋轉(zhuǎn)目標(biāo)檢測相比水平目標(biāo)檢測增加了角度信息,在大多數(shù)旋轉(zhuǎn)目標(biāo)檢測算法中普遍存在由角度值引起的損失值變化與實際情況不一致的問題,主要原因有兩點:由于角度定義區(qū)間的邊界性,檢測框的回歸路徑無法越過邊界,只能從相反方向通過更遠(yuǎn)的路徑進(jìn)行回歸,導(dǎo)致計算得到的損失遠(yuǎn)大于實際情況;邊的互換性,即檢測框在旋轉(zhuǎn)90°并交換長短邊后與其原本在直觀上是等效的,但表達(dá)方式的不同會使網(wǎng)絡(luò)產(chǎn)生額外的損失。針對上述問題,以分類思想進(jìn)行角度預(yù)測的DCL[16]方法解決了角度的邊界性問題,但是仍未解決邊的互換性問題。部分學(xué)者展開了基于交并比(Intersectionover-Union,IoU)的損失函數(shù)計算方法的研究,試圖規(guī)避角度值所引發(fā)的相關(guān)問題。IoU是最能直觀反映預(yù)測誤差的度量手段,但是旋轉(zhuǎn)框之間的IoU(下文簡稱為偏斜IoU)難以計算和用于反向傳播,所以找到近似的偏斜IoU計算方法并將其作為損失函數(shù)的計算依據(jù),成為目前旋轉(zhuǎn)檢測中最具前景的研究方向。相關(guān)的工作如PIoU通過統(tǒng)計像素[17]計算交并比,GWD[18],KLD[19]將旋轉(zhuǎn)框轉(zhuǎn)化為高斯分布后進(jìn)行距離度量計算。此類方法有效解決了角度邊界性和邊的互換性等與角度值相關(guān)的問題,但均無法與偏斜IoU保持良好的一致性,在遙感任務(wù)中未能取得優(yōu)秀的檢測效果。
Yang等人[20]在GWD,KLD的基礎(chǔ)上進(jìn)行改進(jìn),其最新的成果KFIoU(Kalman-Filter-IoU)損失通過高斯相乘的計算方法,解決了角度邊界性和邊的互換性問題的同時,實現(xiàn)了損失與偏斜IoU的趨勢級一致,且具有完全可微性和處理非重疊情況的能力,性能表現(xiàn)優(yōu)秀。但是KFIoU損失依舊存在損失值與實際變化趨勢不一致的問題,這主要是由于其采用的中心點損失無法反映預(yù)測值的偏移方向,而不同的偏移方向?qū)嶋H上會帶來不同的偏斜IoU表現(xiàn)。
本文嘗試進(jìn)一步解決KFIoU損失函數(shù)的損失值與偏斜IoU實際變化不一致的問題。受其啟發(fā),本文提出了一種新的雙向衰減損失函數(shù)(Bidirectional A ttenuated IoU,BAIoU)。具體而言,首先本文依舊基于高斯乘積進(jìn)行偏斜IoU的近似計算。然后,本文沒有使用中心點損失,而是通過為高斯乘積引入一個雙向衰減系數(shù)來反映預(yù)測值與真實值間的位置偏差,因為雙向衰減系數(shù)能夠使損失攜帶位置偏差的方向信息。新的損失可以解決KFIoU損失的不一致問題,使網(wǎng)絡(luò)獲得更優(yōu)的回歸路徑。
本文的主要工作包含以下兩點:(1)在第2節(jié)提出一種新的基于旋轉(zhuǎn)目標(biāo)檢測的偏斜IoU近似損失——雙向衰減損失,繼承KFIoU損失不受角度邊界性和邊的互換性影響的優(yōu)點,創(chuàng)新性地提出使用衰減系數(shù)代替中心點損失,所提損失函數(shù)在趨勢上更加貼近于偏斜IoU的客觀變化規(guī)律。(2)在第3節(jié)設(shè)計多組實驗比較雙向衰減損失和KFIoU損失的精度表現(xiàn),證明引入衰減系數(shù)的方法進(jìn)一步完善了與偏斜IoU的趨勢級一致性。
KFIoU損失繼承了GWD使用高斯分布的思想,并受卡爾曼濾波的啟發(fā)通過高斯分布乘積模擬重疊區(qū)域,計算過程如圖1。KFIoU損失包含兩個部分:

圖1 KFIoU損失的偏斜IoU逼近過程
(1)首先用GWD中的方法將真實值和預(yù)測值兩個旋轉(zhuǎn)框B(w,y,h,w,θ)轉(zhuǎn) 化為高斯分布G(μ,Σ),通過所得兩個分布的中心點距離計算中心點損失LC,用于縮小兩個高斯分布中心點之間的距離;
(2)通過卡爾曼濾波計算得到重疊區(qū)域的高斯分布,并將其轉(zhuǎn)化為面積與重疊區(qū)域近似的旋轉(zhuǎn)矩形框vB,通過所得重疊區(qū)域矩形框、預(yù)測值和真實值計算KF損失,即模擬偏斜IoU的計算方式。
最后將中心點損失和KF損失相加即為最終損失。
其中,f(·)表 示關(guān)于KFIoU的函數(shù),如-ln(KFIoU+ε)、1-KFIoU或e1-KFIoU-1。vB為3個旋轉(zhuǎn)矩形框,如圖1(d)所示。
然而本文發(fā)現(xiàn),KFIoU損失存在損失與實際情況不一致的問題:圖2展示了兩個形狀相同且長寬比為2:1的預(yù)測值bbox1,bbox2,在具有相同偏移距離、不同偏移方向時的偏斜IoU表現(xiàn),在圖中可以明顯地看到兩者的實際偏斜IoU存在很大差距。若通過KFIoU計算,此時中心點損失L c(Cgt,C1)=L c(Cgt,C2),而Lkf只與旋轉(zhuǎn)角度有關(guān),最終導(dǎo)致兩個預(yù)測框的損失是相同的。以此類推當(dāng)預(yù)測框中心點落在一個半徑相同的圓上任一點時,所得KFIoU損失值相同,即KFIoU損失無法反映偏斜IoU由中心點位置偏差的方向所引起的偏斜IoU變化,存在損失與實際情況不一致的問題。這種不一致問題在長寬比普遍較大的遙感目標(biāo)上更加明顯,因為其根本原因是目標(biāo)的長寬差異。

圖2 兩種偏移情況下的偏斜IoU表現(xiàn)
針對KFIoU存在的問題,本文在其基礎(chǔ)上提出了一個新的損失函數(shù):雙向衰減損失(Bidirection A ttenuated IoU,BAIoU)。圖3是雙向衰減損失對偏斜IoU的逼近過程,其沿用了KFIoU損失的高斯相乘方法以有效回避角度預(yù)測產(chǎn)生的相關(guān)問題。雙向衰減損失同樣通過式(3)計算的KFIoU結(jié)果來反映預(yù)測值的角度誤差,而偏移誤差的反映方式不再采用中心點損失,而是通過對所得近似值依據(jù)偏移方向與偏移距離進(jìn)行相應(yīng)衰減的方式,反映出預(yù)測值的不同偏移情況。下文將對衰減方式展開討論。

圖3 雙向衰減損失的偏斜IoU逼近過程
假設(shè)真實值和預(yù)測值為一個長4、寬2且旋轉(zhuǎn)角度相同的矩形框,真實值中心點為坐標(biāo)原點,x軸、y軸分別沿其短邊和長邊方向,預(yù)測值相對真實值的偏移量作為x,y坐標(biāo)的值,后文(圖4—圖7、圖10)也將在此情景討論損失函數(shù)對中心點偏移誤差的反映能力。從圖4可以看出偏斜IoU的遞減趨勢,其隨偏移誤差的增加在真實值長邊方向相對緩慢減小,在短邊方向則相對快速減小,且兩個方向的斜率比與矩形框的長寬比相同。所以本文方法將式(3)中的KFIoU結(jié)果乘以一個衰減系數(shù)α使得損失的變化貼近偏斜IoU的變化規(guī)律。衰減系數(shù)分別依據(jù)中心點偏移量在真實值的長、寬兩個方向的投影長度(如圖5),將矩形框面積衰減至與實際偏斜IoU近似的大小。通過這種方法,雙向衰減損失可以同時反映預(yù)測值偏移誤差和角度誤差帶來的偏斜IoU變化。

圖4 偏斜IoU關(guān)于預(yù)測值偏移量的變化圖像

圖5 中心點偏移向量在真實值長邊(y軸)和短邊(x軸)方向的投影
新的損失函數(shù)表達(dá)式為
其中:f(·)表 示關(guān)于BAIoU的函數(shù),如- ln(BAIoU+ε)、1-BAIoU 或e1-BAIoU-1。‖u h‖和‖u w‖分別為真實值中心點到預(yù)測框中心點連線向量u在真實值長邊和短邊兩個方向的投影長度,作為衰減系數(shù)中的自變量,如圖5所示。‖u h‖和‖u w‖的值可分別通過投影公式得到,超參數(shù)λ取值為1.75(λ取值將在實驗部分解釋)。
遙感目標(biāo)具有尺寸分布跨度大、長寬比不一的特點。為了更好地反映具體目標(biāo)的不同尺寸信息,本文引入了縮放因子S h和Sw。縮放因子的作用是針對具體目標(biāo)的長、寬設(shè)計損失在兩個方向的相對衰減幅度,其值分別為預(yù)測框在長邊和短邊兩個方向的最遠(yuǎn)衰減距離,即偏斜IoU衰減為0時的中心點偏移距離,如圖6所示。具體計算過程如下:

圖6 最遠(yuǎn)衰減距離
其中,wgt和hgt為真實值的寬和高,wpre和hpre為預(yù)測框的寬和高,ugt和upre分別為真實值和預(yù)測框的長邊所對應(yīng)的向量。ugt·upre為向量的內(nèi)積,同時對內(nèi)積取絕對值以保證計算過程夾角取值小于9 0°。
雙向衰減損失相比于KFIoU及大部分常規(guī)損失函數(shù),有如下5個特點:(1)由于雙向衰減損失依舊和KFIoU損失一樣基于高斯分布,通過卡爾曼濾波計算近似重疊區(qū)域,在計算過程中不受角度定義區(qū)間邊界性和邊的互換性影響,并且其改進(jìn)部分(衰減系數(shù))的計算也不需要引入額外算子,同KFIoU損失一樣易于實現(xiàn);(2)對于預(yù)測值與真實值的非重疊情況,由于衰減系數(shù)為指數(shù)函數(shù),相比于KFIoU損失中的中心點損失,能夠在貼合偏斜IoU變化趨勢的基礎(chǔ)上保證即使預(yù)測框偏移量巨大,損失值也始終不為零,所以雙向衰減損失具有更優(yōu)的非重疊情況計算能力;(3)雙向衰減損失在真實值長、寬兩個方向擁有不同的衰減率和衰減距離,因此網(wǎng)絡(luò)能夠分辨預(yù)測值的相對偏移方向,從而優(yōu)化回歸路徑,獲得更快的收斂速度,這是KFIoU所不具備的;(4)衰減系數(shù)的衰減率和衰減距離由具體目標(biāo)的長、寬決定,針對不同長寬比和尺寸的目標(biāo)精細(xì)化回歸,能夠滿足遙感背景下目標(biāo)長寬比差別大、尺寸跨度大的特點;(5)相較于KFIoU損失通過中心點損失拉近兩個分布后進(jìn)行高斯相乘的計算過程,雙向衰減損失根據(jù)偏移量直接減小高斯相乘結(jié)果的計算過程也更加貼近偏斜IoU的實際變化規(guī)律,擁有更好的自然性。
為了直觀地觀察衰減系數(shù)和偏斜IoU的變化趨勢,本文在圖4所設(shè)場景下統(tǒng)計了衰減系數(shù)隨偏移量的變化圖像,從圖7可以直觀地看到衰減系數(shù)與圖4中實際偏斜IoU的整體變化趨勢高度一致。

圖7 衰減系數(shù)關(guān)于偏移量的變化圖像
本文實驗選用DOTAv1.0目標(biāo)檢測數(shù)據(jù)集[21],在其中選擇了具有較高應(yīng)用價值和代表性的5類交通工具目標(biāo)(飛機(jī)、小型汽車、大型汽車、船、直升機(jī))進(jìn)行實驗,他們綜合覆蓋了方形目標(biāo)(飛機(jī))、大長寬比目標(biāo)(大型汽車)、密集排列目標(biāo)(船、汽車)和數(shù)據(jù)集中尺寸最小的目標(biāo)(小型汽車)等遙感目標(biāo)檢測的難點、重點目標(biāo)。實驗中將圖像按照600像素×600像素分割,重疊區(qū)域為150像素,并縮放到800像素×800像素,這與主流的裁剪方法一致。數(shù)據(jù)增強(qiáng)采用隨機(jī)旋轉(zhuǎn)和翻轉(zhuǎn)。圖8展示了數(shù)據(jù)集中目標(biāo)長寬比的分布情況,其中目標(biāo)的長寬比主要集中在2:1附近,且為表達(dá)清晰,本文主要以長寬比2:1的目標(biāo)舉例說明。
本文采用的評價指標(biāo)為平均準(zhǔn)確率(Average Precision,AP)的計算方式Interplolated AP[22]。硬件配置為Intel(R)Xeon(R)Silver 4210R處理器,4個NV ID IA 2080T i顯卡,軟件環(huán)境為Ubun tu 18.04。
本文相關(guān)實驗選用RetinaNet作為基礎(chǔ)目標(biāo)檢測網(wǎng)絡(luò),骨干網(wǎng)絡(luò)為ResNet101,使用Adam優(yōu)化器。使用了雙向衰減損失的RetinaNet旋轉(zhuǎn)檢測網(wǎng)絡(luò)結(jié)構(gòu)如圖9所示。網(wǎng)絡(luò)最后會輸出5個特征層P1~P5。其中P1~P3是經(jīng)過特征融合操作輸出的,P4~P5是在ResNet的最后一層特征層上通過額外卷積操作獲得的。旋轉(zhuǎn)檢測模型中預(yù)測器的回歸部分加入了角度預(yù)測,其損失函數(shù)選用本文的雙向衰減損失。

圖9 結(jié)合雙向衰減損失的RetinaNet網(wǎng)絡(luò)結(jié)構(gòu)
在2.2節(jié)中衰減系數(shù)所包含的超參數(shù)λ,用于進(jìn)一步修正損失的整體衰減速率以貼近偏斜IoU的實際變化趨勢。為了研究衰減系數(shù)的整體變化趨勢是否符合偏斜IoU,本文對兩者的斜率和差值進(jìn)行統(tǒng)計比較。在圖4和圖7中兩者的變化曲面上的斜率偏差計算較為困難,且任意一點的取值均與x軸、y軸上的值直接相關(guān)(比例乘積關(guān)系),故坐標(biāo)軸截面的曲線可以反映整體曲面的趨勢差異。圖10(a)展示了坐標(biāo)軸正半軸截面上衰減系數(shù)和歸一化偏斜IoU的圖像(設(shè)真實值和預(yù)測值的尺寸均為4×2且旋轉(zhuǎn)角度相同,真實值的中心點設(shè)為原點,x、y分別為短邊和長邊方向的偏移量,x,y ∈[0,10]),其中實線代表衰減系數(shù),虛線代表偏斜IoU,藍(lán)色代表y=0時函數(shù)關(guān)于x的變化,黃色代表x=0時函數(shù)關(guān)于y的變化。

圖10 衰減系數(shù)與歸一化偏斜IoU的差異比較
本文設(shè)定了一個偏差量D:
其中,(x,y)為預(yù)測值相對真實值沿短邊偏移了x、沿長邊偏移了y,α為此時的衰減系數(shù)取值,skew IoU為此時的偏斜IoU的值,n orm表示已進(jìn)行歸一化,k(x,y)為此時衰減系數(shù)或偏斜IoU變化曲線的斜率。
偏差量D用于近似衡量雙向衰減損失與實際偏斜IoU之間的偏差量。其由兩部分組成:差值和斜率差,其中斜率差的權(quán)重為差值的5倍,因為我們更加注重兩者的趨勢一致性。圖10(b)是D關(guān)于超參數(shù)λ的變化曲線,其中各項條件與圖4相同,計算范圍取x,y ∈[0,10],并在其中均勻取100個點計算,此區(qū)間可以代表雙向衰減損失和實際偏斜IoU的整體變化趨勢。圖中數(shù)據(jù)顯示偏差量在λ=1.75時取得最小值。此外,本文在RetinaNet網(wǎng)絡(luò)模型上進(jìn)行了測試,測試結(jié)果如表1所示。表中實驗數(shù)據(jù)的規(guī)律符合推理結(jié)論,進(jìn)一步驗證了偏差量D及λ取值的合理性。

表1 不同λ 取值對RetinaNet網(wǎng)絡(luò)檢測性能的影響
為了驗證雙向衰減損失的有效性,本文基于RetinaNet網(wǎng)絡(luò)結(jié)構(gòu),測試了幾種不同形式的損失計算方式在DOTAv1.0數(shù)據(jù)集上的檢測精度表現(xiàn),如表2。與KFIoU在指數(shù)函數(shù)取得最高的性能不同,由于雙向衰減損失能夠使網(wǎng)絡(luò)更快回歸高IoU的預(yù)測框,其在對數(shù)函數(shù)上相比KFIoU提升了可觀的1.66%。最終,基于指數(shù)函數(shù)的雙向衰減損失獲得了最高71.24%的檢測精度。
表3通過AP精度比較了KFIoU損失和雙向衰減損失的幾種不同精度表現(xiàn)。對于DOTAv1.0數(shù)據(jù)集,雙向衰減損失在各指標(biāo)均取得優(yōu)勢。同時值得注意的是,因為雙向衰減損失更好的偏斜IoU模擬過程,在AP75相比KFIoU取得了3.42%的明顯優(yōu)勢。最終雙向衰減損失在AP 50:95上取得了2.61%的提升。

表3 基于不同損失函數(shù)的目標(biāo)檢測精度比較
此外,本文使用COCO數(shù)據(jù)集[23],基于RetinaNet網(wǎng)絡(luò)結(jié)構(gòu)在水平檢測任務(wù)上也對雙向衰減損失進(jìn)行了驗證,如表4。雙向衰減損失與GIoU等常見損失函數(shù)基本持平,因為在水平條件下,高斯分布的計算方法會退化得與常見水平回歸損失相似,這一點符合文獻(xiàn)[20]中的結(jié)論。

表4 雙向衰減損失與經(jīng)典水平損失函數(shù)的檢測精度比較
表5在DOTA v1.0的5類典型目標(biāo)上比較了幾種最新的主流損失函數(shù)。由于不同的方法使用不同的最佳訓(xùn)練策略和技巧,無法進(jìn)行絕對公平的比較。通過我們所作實驗,在RetinaNet模型中,SmoothL1損失作為一種經(jīng)典的非偏斜IoU損失取得了56.14%的m AP;首個使用高斯分布的高性能損失函數(shù)GW D使用高斯分布間的距離度量作為依據(jù),其取得了68.39%的m AP;目前最先進(jìn)的損失方法KFIoU更具創(chuàng)新性地對高斯分布進(jìn)行高斯相乘來模擬偏斜IoU,相比GWD取得了1.91%的提升;本文的雙向衰減損失則通過使損失反映偏移誤差的變化,相比KFIoU進(jìn)一步提升了0.94%的m AP。值得注意的是,其中雙向衰減損失在大型汽車目標(biāo)上相比KFIoU獲得了2.6%的較大提升,因為其對回歸路徑的優(yōu)化使得在較大長寬比的目標(biāo)上擁有一定優(yōu)勢。在R3Det模型中,非偏斜IoU方法的DCL分類思想代替角度回歸,取得了75.15%的m AP;KLD與GWD相似,優(yōu)化了中心點偏移問題和尺度不變性問題,達(dá)到了78.32%的m AP;KFIoU進(jìn)一步提升了1.22%達(dá)到了79.54%的檢測精度;本文的雙向衰減損失相比KFIoU再次提升了0.6%,且對每種目標(biāo)均取得了最高的檢測精度。最終就整體性能而言,本文方法在此數(shù)據(jù)集上取得了最好的檢測效果,約為71.24%(RetinaNet)和80.14%(R3Det)。

表5 不同損失函數(shù)在DOTAv1.0中5類典型目標(biāo)的檢測結(jié)果對比(%)
圖11展示了DOTAv1.0測試集上的部分結(jié)果,本文方法能夠準(zhǔn)確地定位目標(biāo)的位置,精確地回歸目標(biāo)的形狀與方向,各類目標(biāo)均能取得較為優(yōu)秀的檢測效果。
本文在KFIoU損失的基礎(chǔ)上提出了一種與偏斜IoU更具一致性的損失函數(shù):雙向衰減損失。雙向衰減損失通過在KFIoU損失中添加一個衰減系數(shù),使其能夠通過兩種衰減的疊加反映預(yù)測框的偏移誤差信息。同時雙向衰減損失也繼承了KFIoU損失的諸多優(yōu)點,如易于實現(xiàn)、不受角度預(yù)測問題的影響、能夠計算非重疊情況以及與偏斜IoU趨勢上的高度一致性等。實驗證明,相比KFIoU損失,雙向衰減損失在不同的基底函數(shù)和IoU閾值上,其檢測精度均取得了不同程度的提升。