Rethinking Training from Scratch for Object Detection

一. 概述

正常訓練目標檢測的流程分為以下幾種:

  • 在imagenet上進行預訓練,然後在特定資料集進行tune
  • 直接在資料集上進行從頭訓練

兩種方式各有千秋,前者可以很快收斂(在特定資料集收斂快),但是訓練複雜(預訓練實際長)。後者直接訓練較為容易(尤其在修改模型結構時),但是訓練週期較長(比tune階段長很多)。這篇文章就是解決從頭訓練的時長問題,從而達到整合兩者的優點(誇大其詞的說法)。

二. 流程

論文比較簡單,這裡進行總結如下:

  • 精度和 \(batchsize\) 有關,且在一定範圍內,越大越好。
  • 精度和影象的解析度(大小)有關,且影象越大解析度越好,影象過小對精度影響較小。
  • 精度和縮放有關,按照分類的縮放進行,不僅提高速度,且精度也比正常縮放效果好。
  • 精度和BN層有關,正相關。

按照上述的總結,論文進行改進的訓練如下:

  1. 使用BN層(當前網路基礎結構)

  2. Pretrained先用小尺度影象進行訓練,\(batchsize\)設定較大

  3. 資料處理部分-->先將影象縮放到 \((H,W)\times(1.0,1.2)\) ,隨機RandomCrop-->\((H,W)\),最後進行Padding到 \((h,W)\)

  4. Finetune階段按照正常訓練即可

三. 總結

  1. 有一定使用意義,對於大資料集,直接使用此方法較好。
  2. 對於小的資料集,還是重新訓練imagenet比較好
  3. VOC的資料集太小,而且分佈較為散亂,這裡對比意義不大。
  4. 筆者會在實際資料集上嘗試之後進行補充(TODO