引言
明確提出了三個航拍影像領域內面對的挑戰:
- 小物體:航拍影像經常包含很多複雜場景下的小物體。
- 密集:如交通工具和輪船類,在航拍影像中會很密集。這個DOTA資料集的發明者也提到在交通工具和輪船類的檢測中,模型的檢測效果很差
- 任意方向角:航拍影像中的物體通常有多種多樣的朝向。遙感中普遍存在的大寬高比問題進一步對其提出了挑戰。
Faster R-CNN是在此領域內大家常用的兩階段目標檢測模型,但是它更加適用於水平bbox的目標檢測。而作為後處理模組的NMS也抑制了密集分佈的任意朝向的物體的檢測。
paper中提出的SCRDet模型,包含以下三個主要改進部分:
- 對於小物體檢測的問題,提出了SF-Net進行特徵融合和anchor取樣
- 對於背景噪聲多的問題,提出了MDA-Net去抑制噪聲和加強前景
- 對於任意方向角的密集檢測問題,通過增加一個與角度有關的引數來建立一個角度敏感的網路模組
模型介紹
SCRDet模型的基本結構如下圖所示,paper中將其稱為一個兩階段的方法,其中第一階段使用SF-Net和MDA-Net提取出包含更多特徵資訊和更少噪聲的特徵圖,但這個階段迴歸的還是水平框。在第二階段使用R-NMS方法迴歸出斜框,最終完成斜框預測的任務。
-
取樣和特徵融合網路(SF-Net)
作者認為在小物體檢測中的兩大障礙為:物體的特徵資訊不充分以及anchor的取樣不夠充分。由於小物體在深層網路中更容易丟失自己的特徵資訊,所以在池化層中會將小物體的特徵資訊丟失掉很多。且取樣步長過大也會導致在取樣時跳過很多小物體,導致不充分的取樣。
首先是特徵融合,由於低層次的特徵圖能夠保留更多小物體的特徵,所以基於以上特點有FPN、TDM、RON等特徵融合的方法可以使用。
其次是anchor取樣,當使用更小取樣步長的時候,經過實驗證明可以取得更好的EMO score(expected max overlapping score)。如下圖所示,使用\(S_A = 8\)的步長能夠更好的檢測出小物體。
基於以上兩個分析,提出SF-Net的模型結構如下圖所示。
其中,通過三個尺寸的取樣得到三個不同的特徵圖,SF-Net僅僅使用C3和C4的特徵圖資訊,將兩者合併以平衡語義資訊和位置資訊的比例,其中C4特徵圖還經過一個Inception模組來擴大它的接受範圍和增加它的語義資訊。最終得到一個F3特徵圖,其\(S_A\)是期望的anchor步長
根據步長的變化,模型在DOTA資料集上的表現如下所示。可以看出最終特徵圖的步長越小,mAP的值越高,訓練時長也越長。
-
多維注意力網路(MDA-Net)
由於真實世界的資料的複雜性,使用原本的方法選出來的候選區域可能包含了很多的噪聲資訊。如下圖所示,這種噪聲資訊很大程度上模糊了候選區域的邊界。
處理噪聲問題的傳統方法都是採用非監督的演算法進行的,這種演算法的效率不高。在SCRDet模型中,作者設計了一個多維注意力網路MDA-Net。結構如下圖所示:
在基於畫素的注意網路中,特徵圖F3通過具有不同大小卷積核進行卷積運算,學習得到雙通道的顯著圖。這個顯著圖顯示了前景和背景的分數。選擇顯著圖中的一個通道與F3相乘,得到新的資訊特徵圖A3。需要注意的是,Softmax函式之後的顯著圖的值在[0,1]之間。換句話說,它可以降低噪聲並相對的增強物件資訊。由於顯著圖是連續的,因此不會完全消除背景資訊,這有利於保留某些上下文資訊並提高魯棒性。
-
表示方法
論文中採用了另一種五元組表示斜框的方法\((x, y, w, h, \theta)\)。其中\((x,y)\)表示斜框中心點的座標。\(w\)和\(h\)表示斜框矩形的長寬,\(\theta\)表示斜框的傾斜角度。
則迴歸的計算方式如下:
\[t_x = (x-x_a)/w_a, t_y = (y-y_a)/h_a \\ t_w = log(w/w_a), t_h = log(h/h_a), t_{\theta} = \theta - \theta_{a} \]其中最終的預測結果是由R-NMS過程的proposal得到的,將proposal的結果進行順時針旋轉後,再進行長寬調整,得到最終的predict box。我們通過上述式子得到預測框和真實框的兩個迴歸結果,下一步將它們的結果放入損失函式中計算損失。
-
損失函式
如上圖所示,如果我們要將proposal,即藍色框迴歸到預測的位置(紅色框)上,最簡單的方法就是將其逆時針旋轉。但是這種方法的迴歸損失非常大(由於我們設定的是順時針旋轉,此時按照單一旋轉的方法迴歸到紅色框就會使角度變化很大)。此時我們可以採用另一種思路,即將藍色框迴歸到下圖灰色框的位置,然後調整灰色框的長和寬。
這種損失會使得計算更加麻煩,為了更好地解決這個問題,作者在傳統的smooth L1 損失函式中引入了IoU常數因子。整體的損失函式表達如下所示:
\[Loss = \frac{\lambda_1}{N}\sum_{n=1}^{N}t^{'}_n\sum_{j\in (x,y,w,h,\theta) }\frac{L_{reg}(v^{'}_{nj}, v_{nj})}{|L_{reg}(v^{'}_{nj}, v_{nj})|} * |- log(IoU)| \\ +\frac{\lambda_2}{h \times w}\sum_i^h\sum_j^wL_{att}(u^{'}_{ij}, u_{ij}) + \frac{\lambda_3}{N}\sum_{n=1}^NL_{cls}(p_n,t_n) \]其中,\(\lambda\)引數使用來調整各部分損失比例大小的。\(N\)代表了proposal的數量,\(t^{'}_n\)是一個二進位制值(當其為1是表示前景,為0是表示背景)。v向量表示了斜框用\((x,y,w,h,\theta)\)五元組表示方法表示出來的向量,u向量表示了預測結果和真實結果之間的畫素相關性。IoU表示了預測框和真實框之間的重合。
三個迴歸函式分別為:\(L_{reg}\)為位置損失,使用smooth L1損失、\(L_{att}\)為注意力損失,使用交叉熵損失、\(L_{cls}\)為分類損失,使用softmax損失。
關於IoU的進一步解釋:由於IoU表示了預測框和真實框之間的相近程度,那麼它自然滿足一個屬性:當預測框和真實框之間越相近時,它的值越接近於1。這樣就可以用一個恆為正的值\(\log(IoU)\)來控制當前的梯度大小問題。我們可以將\(\frac{L_{reg}}{|L_{reg}|}\)看做一部分,它代表了當前梯度下降最快的方向向量,而把\(-log(IoU)\)看做控制梯度大小的一個變數,這樣使得損失函式更加連續。
下面是使用兩種loss函式的結果對比。可以看出使用IoU-smooth L1 loss的模型預測的結果更加好。
導致(a)這種結果的根本原因是角度的預測超出了所定義範圍。其實解決這種問題的方法並不唯一,RRPN和R_DFPN在論文的loss公式中就判斷了是不是在定義範圍內,通過加減\(k\pi\)來緩解這個問題,但這種做法明顯不優美而且仍然存在問題,主要是較難判斷超出預測範圍幾個角度週期。當然可以通過對角度部分的loss加一個週期性函式,比如\(tan\)、\(cos\)等三角函式來做,但實際使用過程中常常出現不收斂的情況。
總結
- MDA-Net:作用體現在對去噪的效果以及特徵的提取上
- SF-Net:作用體現在對小物體的檢測上
- IoU-smooth L1 loss:作用體現在迴歸時消除邊界影響
- image pyramid:作者在論文中並沒有詳細說明這一方法,其實就是將影像似金字塔般resize成多種形狀傳入模型中進行學習,這樣也是一個提高效能的好方式。