今天讀了一篇比較古老的文章,是曠視發表在ECCV18的一篇目標檢測文章,DetNet。這篇文章應該緊跟著FPN發表的,主要針對目標檢測通用backbone的問題以及FPN的問題,提出了一個適用于目標檢測的新的backbone,也就是DetNet。
上圖分別展示了FPN、分類網絡以及DetNet的網絡結構。首先,在imagenet上訓練的通用backbone因為最終要做識別的任務,所以會對輸入圖片進行大尺度下采樣,最終的特征圖是原輸入的1/32,這增大了網絡的視野域,對于分類任務來說是很好的,但是目標檢測需要對物體進行精準的定位,太小的特征圖會對定位造成嚴重的影響。因此,FPN通過top-down以及bottom-up pathway來解決這一問題,額外引入64倍縮放的stage來處理極大的物體,小物體則通過逐層上采樣在大分辨率特征圖上預測。這樣做的問題有兩個:1)額外加的stage缺少imagenet數據集上的預訓練,2)如果小目標在下采樣階段已經丟失了,那么上采樣階段也很難再找回來。
因此,DetNet在原有的resnet的基礎上擴充了一個階段P6,并且從P4-P6都不再降低特征分辨率,因此,網絡最小的特征圖也是原圖的1/16. 并且,為了增大網絡的視野域,在P5和P6引入了dilated bottleneck,將bottleneck中的3x3卷積改為dilated conv。
這里也有一個很有意思的地方,作者設計了兩種dilated bottleneck,一種是輸入特征直接加到輸出上(A),另一種是輸入特征經過1x1 conv變換后再加到輸出上,在DetNet中,P5和P6采用了BAA的連接方式。作者通過實驗證明,BAA的方式比AAA的方式更好,利用B這種結構可以更好的開始一個新的stage,原因是如果采用AAA的方式,輸入特征沒有經過非線性變換,與輸出特征差別不大,這導致特征沒有變化。
實驗結果也比較有趣,跟resnet作為backbone相比,DetNet在AP50 small上和AP85 large上都有比較明顯的提升,證明其可以更好的找回小物體,并定位大物體;但是在AP85 small上就提升不那么明顯了。這跟作者之前的claim也是一致的。