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

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

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

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

圖4 偏斜IoU關于預測值偏移量的變化圖像

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

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

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

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

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

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

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

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

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