DetNet

文章:https://arxiv.org/abs/1804.06215

0 摘要

基於CNN的目標檢測算法,無論是一階段算法(YOLO,SSD,RetinaNet)還是兩階段算法(Faster R-CNN,R-FCN,FPN)都是在ImageNet目標分類模型上微調得到的。前面很少有論文探討針對目標檢測任務進行特徵提取骨幹網絡的設計。但是,圖像分類和目標檢測任務存在下述區別:(1)最新的目標檢測算法(FPN,RetinaNet)都在圖像分類的基礎上使用其他手段實現了多尺度的目標檢測;(2)目標檢測不僅需要分辨目標的類別,還需要進行準確的目標定位。大的下采樣係數帶來的大的感受野,這有益於目標分類,但不利於目標定位。正因爲目標檢測和圖像分類之間存在了很大的差別,所以這裏提出針對目標檢測任務設計的骨幹網絡-DetNet。DetNet可以保證在網絡的深層依然有大的特徵尺寸。DetNet在coco數據集的目標檢測和實力分割任務上取得了SOTA的效果。

1 DetNet:針對目標檢測任務設計的骨幹網絡

1.1 動機

針對圖像分類任務設計的CNN,隨着網絡層數的加深,特徵圖的空間尺寸在減小。雖然類似於FPN之類的檢測算法通過上採樣手段擴充了特徵圖的尺寸,但是仍然存在下述的問題:
在這裏插入圖片描述

  • 網絡的階段數不同:如圖1(B)所示,傳統的分類模型包含5個階段,每個階段通過池化或者stride爲2的卷積操作,將特徵圖的尺寸縮減爲原來的0.5倍,所以總體上特徵圖的尺寸縮減爲了輸入圖像的1/32。使用了特徵金字塔的檢測器往往包含更多的stage,如FPN添加了P6去處理大目標的檢測,RetinaNet中更是添加了P6和P7兩個階段。這些新添加的階段在ImageNet的預訓練模型中是未經過訓練的。
  • 對大目標的檢測能力較弱:對輸入圖像使用stride爲32的下采樣有助於提取具備強語義的特徵,這對於圖像分類任務而言是合適的。但是,對於目標檢測任務而言,大尺寸的目標需要通過深層網絡層進行檢測和定位,但是由於深層網絡層的stride較大,往往難以準確的實現目標定位。
  • 容易漏檢小目標:淺層網絡特徵圖尺寸大,但是其語義特徵弱,不足以實現小目標的檢測。FPN採用了將深層網絡層的特徵上採樣和淺層網絡層特徵疊加的辦法進行小目標的檢測,但是如果深層網絡層由於stride太大,本身就沒有檢測到小目標,將其特徵上採樣和淺層網絡層的特徵疊加之後也無法實現小目標的檢測。

針對上述缺點,作者設計了適用於檢測任務的骨幹網絡DetNet,其主要特點有:

  1. 網絡的階段數是按照檢測的需求進行設計的;
  2. 雖然DetNet的階段數比傳統的圖像分類模型更多,但在使用了大的感受野的同時仍然保持了大的特徵分辨率。

使用DetNet替換ResNet進行目標檢測的好處有:

  1. DetNet的階段數更多,因此分類模型不包含的額外階段可以在ImageNet數據集上預訓練得到;
  2. 由於深層網絡層的特徵圖尺寸更大,因此DetNet更適合於大目標的準確定位,也更容易避免漏檢小目標。

1.2 DetNet的設計細節

設計高效準確的目標檢測backbone有兩個挑戰,一是深度CNN保持大分辨率的特徵需要特別大的內存/顯存及計算時間;二是減小下采樣係數也就等價於減小感受野的尺寸,這對圖像分類和語義分割任務而言是不合適的。

DetNet以ResNet爲參考,保持1,2,3,4階段不變,從第5個階段開始,Detnet開始進行獨特的設計,具體的設計細節如圖2所示。

在這裏插入圖片描述

作者設計了DetNet59,超過了ResNet50的分類效果。主要的不同是:

  • 添加了stage P6,適合於在FPN中進行目標檢測。同時調整了網絡參數,確保第4個stage的輸出下采樣了16倍;
  • 應用了圖2(B)所示的bottleneck塊,作者發現這對FPN很有幫助;
  • 應用空洞卷積可以在不增加參數數量的情況下增大感受野。由於空洞卷積的計算量依然很大,所以作者保持第5,6個stage和第四個stage具有相同數量的channel數,這和傳統的設計思路是不一樣的,傳統的設計思路都是在後面的stage加倍channel數目。

作者將DetNet用作骨幹網絡,保持FPN的細節不變,構造了目標檢測的模型。由於stage 4,5,6輸出的空間尺寸一致,所以這裏作者將其應用於FPN時,直接對這三個stage的輸出相加,並未進行上採樣操作。

2 實驗

借鑑https://github.com/facebookresearch/Detectron的訓練策略,在coco數據集上進行實驗。
在這裏插入圖片描述在這裏插入圖片描述DetNet59和FPN結合,檢測效果優於ResNet50和ResNet101,尤其是ResNet101比DetNet59的參數量更多,但效果尚比不過DetNet59,證明了DetNet適用於檢測任務。

在這裏插入圖片描述Tabel 3顯示的是在不同IOU閾值時的AP值,AP50表示的是模型的分類能力,AP85表示的是模型的定位精度,觀察AP85可以發現,DetNet59遠超ResNet50(40.0 vs 34.5),這說明DetNet59的對大目標的定位精度遠超ResNet50,這是因爲ResNet深度網絡層的stride太大,大目標在特徵圖上的位置信息不夠精確,因此也難以進行準確的目標定位。

在這裏插入圖片描述Tabel4記錄的是不同IOU閾值時的AR值,也就是目標的漏檢率。AR50表明的是合理的檢測框的數量,AR85表明的是目標框的定位準確度。對比ResNet50和DetNet59,可以發現對於小目標,AR50的對比是60.0 vs 66.4,說明DetNet對小目標的查全率更高。這是因爲,DetNet比ResNet的深度網絡層的特徵圖的尺寸更大,所以可以在這些尺寸更大的特徵圖上發現小目標。DetNet對小目標的定位精度提升並無太大效果,只是有助於減小小目標的漏檢。

總結實驗結果,DetNet有助於減少小目標的漏檢(對小目標的定位精度影響不大),有助於提升大目標的定位精度(對大目標的漏檢率降低影響不大)

討論

shortcut path上1*1卷積的作用:
對比圖2(A)和圖2(B)的bottleneck結構,作者認爲即便空間尺寸不變的情況下,實驗額外的1 * 1卷積也是有幫助的。爲了進行實驗的對比,作者設計了DetNet-59-NoProj,如圖3所示。和圖2(E)的區別是移除了stage6第一個bottleneck中的1 * 1 卷積,目的也就是驗證在空間尺寸不變時1 * 1卷積的作用。
在這裏插入圖片描述在這裏插入圖片描述
表5的結果給出了DetNet59和DetNet59-NoProj分類和檢測的結果對比,可以看出DetNet59的分類和檢測效果都優於DetNet59-NoProj,說明了在shortcut path上應用 1 * 1 卷積的正向效果。作者認爲,如果shortcut path是直連通道,那麼輸出的feature map和輸入的feature map的差別很小,而添加了1*1卷積之後,輸出的feature map和輸入feature map的差距會增大,也就增添了新的語義信息。

從頭訓練檢測模型還是從分類模型上微調:
在這裏插入圖片描述ResNet-50-dilated表示訓練DetNet59-FPN的時候,前四個stage使用在ImageNet上預訓練的ResNet50分類模型的參數,實驗結果表明從頭訓練檢測模型取得了更好的檢測效果。

和其他SOTA的對比
在這裏插入圖片描述使用DetNet59爲骨幹網絡,在計算量更小的情況下取得了更好的檢測和實例分割效果。

發佈了133 篇原創文章 · 獲贊 68 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章