天天看點

SCRDet——對小物體和旋轉物體更具魯棒性的模型

SCRDet是一個針對航拍圖像檢測的模型,主要針對航拍圖像這一場景下的幾個難點進行了改進。如小物體檢測難,背景噪聲幹擾多、旋轉角使得回歸困難等問題。

明确提出了三個航拍圖像領域内面對的挑戰:

小物體:航拍圖像經常包含很多複雜場景下的小物體。

密集:如交通工具和輪船類,在航拍圖像中會很密集。這個DOTA資料集的發明者也提到在交通工具和輪船類的檢測中,模型的檢測效果很差

任意方向角:航拍圖像中的物體通常有多種多樣的朝向。遙感中普遍存在的大寬高比問題進一步對其提出了挑戰。

Faster R-CNN是在此領域内大家常用的兩階段目标檢測模型,但是它更加适用于水準bbox的目标檢測。而作為後處理子產品的NMS也抑制了密集分布的任意朝向的物體的檢測。

paper中提出的SCRDet模型,包含以下三個主要改進部分:

對于小物體檢測的問題,提出了SF-Net進行特征融合和anchor采樣

對于背景噪聲多的問題,提出了MDA-Net去抑制噪聲和加強前景

對于任意方向角的密集檢測問題,通過增加一個與角度有關的參數來建立一個角度敏感的網絡子產品

SCRDet模型的基本結構如下圖所示,paper中将其稱為一個兩階段的方法,其中第一階段使用SF-Net和MDA-Net提取出包含更多特征資訊和更少噪聲的特征圖,但這個階段回歸的還是水準框。在第二階段使用R-NMS方法回歸出斜框,最終完成斜框預測的任務。

SCRDet——對小物體和旋轉物體更具魯棒性的模型

采樣和特征融合網絡(SF-Net)

作者認為在小物體檢測中的兩大障礙為:物體的特征資訊不充分以及anchor的采樣不夠充分。由于小物體在深層網絡中更容易丢失自己的特征資訊,是以在池化層中會将小物體的特征資訊丢失掉很多。且采樣步長過大也會導緻在采樣時跳過很多小物體,導緻不充分的采樣。

首先是特征融合,由于低層次的特征圖能夠保留更多小物體的特征,是以基于以上特點有FPN、TDM、RON等特征融合的方法可以使用。

其次是anchor采樣,當使用更小采樣步長的時候,經過實驗證明可以取得更好的EMO score(expected max overlapping score)。如下圖所示,使用\(S_A = 8\)的步長能夠更好的檢測出小物體。

基于以上兩個分析,提出SF-Net的模型結構如下圖所示。

SCRDet——對小物體和旋轉物體更具魯棒性的模型

其中,通過三個尺寸的采樣得到三個不同的特征圖,SF-Net僅僅使用C3和C4的特征圖資訊,将兩者合并以平衡語義資訊和位置資訊的比例,其中C4特征圖還經過一個Inception子產品來擴大它的接受範圍和增加它的語義資訊。最終得到一個F3特征圖,其\(S_A\)是期望的anchor步長

根據步長的變化,模型在DOTA資料集上的表現如下所示。可以看出最終特征圖的步長越小,mAP的值越高,訓練時長也越長。

SCRDet——對小物體和旋轉物體更具魯棒性的模型

多元注意力網絡(MDA-Net)

由于真實世界的資料的複雜性,使用原本的方法選出來的候選區域可能包含了很多的噪聲資訊。如下圖所示,這種噪聲資訊很大程度上模糊了候選區域的邊界。

處理噪聲問題的傳統方法都是采用非監督的算法進行的,這種算法的效率不高。在SCRDet模型中,作者設計了一個多元注意力網絡MDA-Net。結構如下圖所示:

SCRDet——對小物體和旋轉物體更具魯棒性的模型

在基于像素的注意網絡中,特征圖F3通過具有不同大小卷積核進行卷積運算,學習得到雙通道的顯著圖。這個顯著圖顯示了前景和背景的分數。選擇顯著圖中的一個通道與F3相乘,得到新的資訊特征圖A3。需要注意的是,Softmax函數之後的顯着圖的值在[0,1]之間。換句話說,它可以降低噪聲并相對的增強對象資訊。由于顯著圖是連續的,是以不會完全消除背景資訊,這有利于保留某些上下文資訊并提高魯棒性。

表示方法

論文中采用了另一種五元組表示斜框的方法\((x, y, w, h, \theta)\)。其中\((x,y)\)表示斜框中心點的坐标。\(w\)和\(h\)表示斜框矩形的長寬,\(\theta\)表示斜框的傾斜角度。

SCRDet——對小物體和旋轉物體更具魯棒性的模型

則回歸的計算方式如下:

\[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,即藍色框回歸到預測的位置(紅色框)上,最簡單的方法就是将其逆時針旋轉。但是這種方法的回歸損失非常大(由于我們設定的是順時針旋轉,此時按照單一旋轉的方法回歸到紅色框就會使角度變化很大)。此時我們可以采用另一種思路,即将藍色框回歸到下圖灰色框的位置,然後調整灰色框的長和寬。

SCRDet——對小物體和旋轉物體更具魯棒性的模型

這種損失會使得計算更加麻煩,為了更好地解決這個問題,作者在傳統的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的模型預測的結果更加好。

SCRDet——對小物體和旋轉物體更具魯棒性的模型

導緻(a)這種結果的根本原因是角度的預測超出了所定義範圍。其實解決這種問題的方法并不唯一,RRPN和R_DFPN在論文的loss公式中就判斷了是不是在定義範圍内,通過加減\(k\pi\)來緩解這個問題,但這種做法明顯不優美而且仍然存在問題,主要是較難判斷超出預測範圍幾個角度周期。當然可以通過對角度部分的loss加一個周期性函數,比如\(tan\)、\(cos\)等三角函數來做,但實際使用過程中常常出現不收斂的情況。

MDA-Net:作用展現在對去噪的效果以及特征的提取上

SF-Net:作用展現在對小物體的檢測上

IoU-smooth L1 loss:作用展現在回歸時消除邊界影響

image pyramid:作者在論文中并沒有詳細說明這一方法,其實就是将圖像似金字塔般resize成多種形狀傳入模型中進行學習,這樣也是一個提高性能的好方式。