物體檢測 DSOD論文 1708.01241的翻譯 (2)

論文的第4章,翻譯理解如下。

4.實踐

我們在普遍使用的PASCALVOC 2007, 2012MSCOCO數據集(各自有20多萬個對象類別)上實施了試驗。對象檢測性能是用mAP(平均精度均值)衡量的。

4.1.基於PASCALVOC2007的消融研究

首先我們調查DSOD框架的每個組件和設計原則。結論主要總結在Table2Table3裏了。我們爲了這個消融研究在PASCALVOC2007(帶有DSOD300的)上設計了若干個受控的試驗。一個一致的設置被推行到所有試驗上,直到一些組件或結構被審查。我們用來自VOC20072012的組合訓練集來訓練模型,在VOC2007測試集上測試。

4.1.1緻密塊的配置

首先我們調查在主幹子網裏的緻密塊的不同配置的影響


遷移層的壓縮因子。我們比較在DenseNets的遷移層裏的2個壓縮因子(=0.5, 1)。結果顯示在Table3(rows 2 and3)裏。壓縮因子爲1意味着在遷移層沒有特徵地圖的減少,而當是0.5時意味着特徵地圖的一半被減少了。結果顯示1產生了比0.5時高2.9%mAP

#在瓶頸層的通道。顯示在Table3(rows 3 and 4)裏,我們觀察到寬闊的瓶頸層提升了很大(4.1%mAP)性能。

#在第一個卷積層的通道。我們觀察到在第一個卷積層裏的大數量的通道是有利的,帶來了1.1%mAP的提升(Table3 rows 4 and 5)

增長率。大的增長率k被發現是非常好的。我們觀察到表3裏的4.8%mAP的提升(rows5 and 6),是在4k瓶頸通道的情況下,當k16增長到48的時候。

4.1.2設計原則的有效性

現在我們儘早詳細的證明關鍵設計原則的有效性。

無需目標框架。我們試着用基於目標的框架如FasterR-CNN/ R-FCN來訓練目標檢測。然而訓練過程未能收斂在所有我們嘗試的網絡結構上(VGGNet,ResNet, DenseNet)。進一步我們嘗試了用無目標框架SSD來訓練目標檢測。這個訓練成功收斂了,但給出了非常糟的結果(69.6%for VGG),與來自預訓練模型(75.8%)的好調整的情況相比較的話,顯示在Table4。這個試驗證實了選擇無目標框架的設計原則。

深度監督。我們試着深度監督來訓練目標檢測。我們的DSOD300獲得了77.7%mAP,比用VGG16(69.6%)訓練(不帶深度監督的)的SSD300S好很多。也比用SSD300(75.8%)微調的結果要好。

過渡共享池化層。我們比較無設計層(僅3個緻密塊)的情況與有設計層(在我們的設計裏是4個緻密塊)的情況。有過渡共享池化層的網絡結構帶來了1.7%的性能提升,這證實了這層的效果。

StemBlock. Table3 (rows 6 and 9)裏看到了,stemblock提高了性能從74.5%77.3%。這證實了我們的推測,即用stemblock能保護原始輸入圖像免受信息損失。

緻密預測結構。我們分析來自3個方面的緻密預測結構:速度,準確性,特徵(參數)。顯示在Table4裏,有致密前端結構的DSODTitanX GPU上運行比一般結構(17.4fps vs. 20.6 fps) 稍微地下降,由於來自額外的降採樣block的開銷。然而,緻密結構把mAP77.3%提升到77.7%,且把參數數量從18.2M降低到14.8M。我們也試着用目標的緻密預測層代替SSD的預測層。在VOC2007測試集上的準確率從75.8%(一般SSD)被提升到76.1%(用了預訓練模型),從69.6%70.4%(共享訓練模型),當用VGG-16 模型作爲backbone。這個驗證了緻密預測層的有效性。

如果在ImageNet上預訓練怎麼樣?有興趣的是看看用ImageNet預訓練的backbone網絡的DSOD的性能。我們訓練了一個在ImageNet上的輕量的backbone網絡DS/64-12-16-1,其包含了在驗證集(VGG-16稍差些)上的66.8%top-1)準確率和87.8%top-5)準確率。在微調之後在“07+12”訓練集上的整個檢測框架,我們在VOC2007 測試集上實現了 70.3%mAP。對應的training-from-scratch方案獲得了70.7%的準確率,其有輕微的變好。將來的工作將更徹底的研究這點。

4.1.3運行時分析

推論的速度顯示在Table4的第6列。對300300的輸入,我們的全DSOD在單獨的TitanX GPU 上用一般的預測結構可以在48.6ms(20.6fps)內處理一個圖片,用緻密預測結構則是用了57.5ms(17.4 fps)。作爲比較, R-FCNResNet-50 上以90ms(11 fps)運行, 在ResNet-101上以110ms(9 fps)運行。 SSD300ResNet-101上以82.6ms(12.1 fps) 運行,在 VGGNet上以21.7ms(46 fps) 運行。另外,我們的模型僅用了比帶VGGNetSSD300網絡的1/2的參數數量,比帶ResNet-101SSD300網絡的1/4的參數數量,比帶VGGNet Faster R-CNN網絡的1/10的參數數量。一個輕量版的DSOD(10.4M參數,w/o any speed optimization) 能以25.8fps運行,僅 1%mAP損失。

4.2.PASCALVOC2007上的結果

模型是基於VOC2007 訓練集和VOC2012 訓練集(“07+12”)來被訓練的。我們使用了128爲批大小。注意這個批大小是GPU內存的容量以外的(一個8GPU服務器,每個都有12GB內存)。我們用了一個小技倆,通過積累梯度超過2個訓練迭代來克服了GPU內存限制,已經在Caffe平臺上實現了。初始學習率設置成0.1,然後在每20k迭代後被除以10。當到達100K迭代時訓練完成了。如下,我們用一個0.0005的權重衰減, 0.9的動量。所有卷積層用“xavier”方法初始化。Table 4展示了我們在VOC2007測試集上的結果。 SSD300是被更新的SSD結果,用了新的數據增強技巧。我們的用一般連接的DSOD300獲得了77.3%,比SSD300(77.2%)的稍好一些,用緻密預測結構的DSOD300提升到了77.7%。之後加了COCO作爲訓練數據,性能也提升到81.7%

4.3.PASCALVOC2012上的結果

VOC2012數據集,我們用了 VOC2012訓練集, VOC2007訓練集及測試集來訓練,在 VOC2012測試集上來測試。初始化學習率爲首次30K的迭代被設置成0.1,之後每20K迭代就被除以10。總迭代數量是110K。其他設置是與VOC2007 上實踐的一樣。 DSOD300上的結果顯示在Table 4DSOD300獲得了76.3%mAP,總比SSD300(75.8%)好很多。

4.4.MSCOCO 上的結果

最後我們在MSCOCO 數據集上驗證 DSODMSCOCO包含了用來訓練的80K圖片,驗證用的40K,測試用的20K。如下,我們用訓練集(訓練集+驗證集)來訓練。批大小是被設置成128。初始化學習率爲首次80K的迭代被設置成0.1,之後每60K迭代就被除以10。總迭代數量是320K

結果總結在Table6裏。我們DSOD300在測試集上實現了29.3%/47.3%,比帶有大的邊緣的基準SSD300作的更好。我們的結果與單尺度的R-FCN是可比較的,接近於用ResNet-101作爲預訓練模型的R-FCNmulti-sc。有趣的是,我們觀察到我們的用0.5IoU 的結果比R-FCN低,但我們[0.5:0.95]的結果是好一些或持平。這表明我們的預測定位在大的重疊設置之下是比R-FCN更準確。這是合理的,我們的小對象檢測的準確性比R-FCN是稍微低的,因爲我們輸入圖像size(300300)R-FCN(6001000)小很多。即使有這個劣勢,我們的大對象檢測準確率仍然比R-FCN好很多。這進一步論證了我們的方法的有效性。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章