目標檢測 TridentNet 利用dilated rate的分支結構使網路提高對多種尺度目標的學習能力
TrientNet: 探索感受野對目標檢測準確率的影響
論文 2019:Scale-Aware Trident Networks for Object Dectection
文章目錄
一、對多尺度目標進行檢測的探索
1.相關研究
在目標檢測中,目標的尺度變化是影響檢測結果的重要因素,與尺度變化相關的研究有很多,大致分為兩類:
1)multi-scale imgae pyramids 多尺度影象金字塔
解決多尺度目標最直接的方法是輸入多尺度的影象,也就是通過縮放影象實現不同尺度的檢測,這的確是種有效的方法,但是會增加檢測時間,實際專案難以應用。
例子:
SNIP, SNIPER, AutoFocus是優化了計算過程,但速度仍不夠快。
2)multi-scale feature pyramids 多尺度特徵金字塔
這是對第一種方法的近似,利用不同層的不同尺度的特徵圖進行檢測。輸入的影象是單尺度的,但是因為網路中的特徵是多尺度的,對應多種大小的感受野,所以利用不同大小的特徵,可以近似地完成對影象的多尺度檢測。
缺點:在影象金字塔中,多種尺度的影象通過相同的網路,所以對於不同尺度,這種演算法是公平的;而在特徵金字塔中,小尺度使用小感受野的低層特徵,大尺度目標使用高層特徵,高層特徵來自更深的網路,能力更強,所以它們是不公平的。
例子:
SDD利用不同層的多尺度特徵圖,在每一個層上進行檢測。
FPN在低層與高層之間建立了通路。
2.對感受野的探索
對於網路的骨幹(backbone)來說,影響網路效能的因素大致有下采樣率,網路深度,感受野。對於前兩者的研究比較多,而直接研究感受野影響的實驗比較少,作者利用基於ResNet-C4的Faster R-CNN,通過改變其感受野,探索了檢測器的效能。
1)前提知識
感受野
感受野一個特定CNN的特徵在輸入空間中看到的區域。
我們可以將感受野理解為特徵圖的一個元素的計算受輸入影象中某個區域的影響,這個區域就是感受野。
例如上圖:假設L1的感受野大小是 1 × 1 1\times 1 1×1,則L2是 3 × 3 3\times 3 3×3,L3是 5 × 5 5\times 5 5×5,如果再增加一個 2 × 2 2\times 2 2×2的池化層,則感受野是 10 × 10 10\times 10 10×10
普通的卷積如何增大感受野
普通的 3 × 3 3\times 3 3×3卷積
如果我們想使輸出大小一定的情況下,擴大感受野,標準操作時首先進行池化操作,再進行上取樣,增大解析度。
缺點:在解析度先減小再增大的過程中,有一些資訊被丟失了。
dilated convolution 空洞卷積/膨脹卷積
dilated rate=2 的空洞卷積
在卷積是新增空洞,可以明顯看到感受野增大的同時,沒有丟失資訊。
這是dilated rate=1, 2, 4,卷積的效果,雖然結果都是9個元素,但是感受野明顯不同,dilated rate越大,感受野增大越多。
d i l a t e d r a t e = d s dilated rate=d_s dilatedrate=ds表示插入 d s − 1 d_s-1 ds−1個0,一個 3 × 3 3\times 3 3×3的空洞卷積與 k e r n a l s i z e = 3 + 2 ( d s − 1 ) kernal size=3+2(d_s-1) kernalsize=3+2(ds−1)的普通卷積的感受野大小相同。
2)測試感受野對準確率的影響
作者使用基於ResNet-C4的Faster R-CNN檢測器,通過設定ResNet中的殘差塊的dilated rate為1, 2, 3,得到了如下的準確率。
右半部分分別為平均準確率,在小、中、大目標上的準確率
我們可以看出,dilated rate增大,感受野增大,大目標的準確率增大,小目標的準確率下降。
二、Trident Network
1.三種技術
在上述實驗中,我們知道了通過dilated rate調整感受野可以增大對大目標的檢測準確率,但是這對小目標不是很友好,那麼就考慮在網路中構建並行的結構,大目標對應大感受野,小目標對應小的感受野。
Trident Network設計思路如下圖:
1)Multi-branch Block
構建3個並行的殘差塊,其中
3
×
3
3\times 3
3×3卷積層的dilated rate分別設定為1, 2, 3,由此得到一個multi-branch block。
2)共享權重
如果僅僅採用並行的結構,網路的複雜度會大大增加,帶來了過擬合的隱患,所以考慮讓並行的三個分支共享引數,僅僅是dilated rate不同,那麼多種尺度目標的資訊就被包含在了一套引數中。
3)考慮尺度的訓練方式
看完上面兩點可能有點疑惑,它是如何既使用3分支的結構,又能使它們共享引數,答案就是通過將目標的ground-truth box按照大小分為小、中、大三類,在訓練時,遇到小目標就是用d=1的分支,大目標用d=3的分支,由此類推。
具體方法就是對分支設定了人工設定了邊界值 l i , u i l_i, u_i li,ui,當目標框的寬高在 l i ⩽ w h ⩽ u i l_i\leqslant \sqrt{wh}\leqslant u_i li⩽wh ⩽ui內,就使用對應的dilated rate訓練,而三種大小的目標訓練的都是同一組引數。
共享權重的一個隱含的優點就是在測試時,不需要通過三個分支,只要使用中間的分支即可,因為三種尺度的資訊是共享的。
2.在COCO資料集上的實驗
1)驗證技術帶來的提升
2)與其他網路的比較
三種TridentNet分別是,不使用其他提高準確率技術的"最樸素"的網路,加入其他技術的網路,在第二種之上又使用影象金字塔的網路。
三、一些思考
尺度的重要性。
”注意力“。
四、參考
Scale-Aware Trident Networks for Object Detection