每日最新頭條.有趣資訊

京東AI研究院提出初始化訓練SSD目標檢測器

機器之心發布

作者:朱睿

不久之前,

CVPR 2019 接收論文公布

:在超過 5100 篇投稿中,共有 1300 篇被接收,接收率達 25.2%。本文介紹了京東AI研究院被接受的一篇 Oral 論文,作者從優化的角度出發,通過實驗解釋了梯度穩定手段之一的 BatchNorm 是如何幫助隨機初始化訓練一階段檢測器 SSD,進而結合了 ResNet 與 VGGNet 來加強對小物體的檢測。值得一提的是,本文第一作者朱睿還是一位大四學生,就讀於中山大學數據科學與計算機學院,現於京東 AI 研究院視覺與多媒體實驗室實習。

使用 ImageNet 預訓練的網絡模型能夠幫助目標任務(物體檢測、語義分割、細粒度識別等)快速收斂,然而使用預訓練模型會帶來諸多限制,其中一個問題就是改動特徵提取網絡的結構成本相對較高,需要耗時巨大的重新預訓練來適應不同需求的任務。那麽,如果不使用預訓練模型,進行隨機初始化訓練,達到較高準確率的某些必要條件是什麽?

本文介紹了我們今年的 CVPR Oral 工作《ScratchDet: Exploring to Train Single-Shot Object Detectors from Scratch》,作者從優化的角度出發,通過實驗解釋了梯度穩定手段之一的 BatchNorm 是如何幫助隨機初始化訓練一階段檢測器 SSD,進而結合了 ResNet 與 VGGNet 來加強對小物體的檢測。

文章的代碼後續會公布到 https://github.com/KimSoybean/ScratchDet,並且 contribute 到 mmdetection 中。

論文地址:https://arxiv.org/abs/1810.08425v3

動機

現有的檢測訓練任務存在三個限制:

分類任務與檢測任務的 Learning bias: 一方面是兩者損失函數的不同,一方面是兩者對平移不變性的敏感度不同,還有另外一方面是數據集的差異:ImageNet 數據集是單圖單物體,COCO & PASCAL VOC 數據集是單圖多物體。

如果想要改動檢測模型中的特徵提取網絡的結構,需要對網絡重新預訓練再進行檢測任務的 finetune,而 ImageNet 預訓練實驗的代價比較大。這個問題在移動端、CPU 實時檢測器等設計中尤為突出,比如:Pelee,Tiny-SSD,YOLO-LITE,Fire-SSD,Tiny-YOLO,Tiny-DSOD,MobileNetV2 等等。常用的 VGG-16、ResNet 的計算量以及參數量對於移動端的負載較大,而設計小網絡的每次修改都需要重新在 ImageNet 上重新預訓練,時間代價與計算資源消耗都比較大。再比如像 DetNet,想要設計一種專用於檢測的網絡,用在 ImageNet 預訓練的實驗就要花很多的時間。

Domain Transfer 問題,比如從 ImageNet 自然與生活場景圖像遷移到醫療圖像中(X 光圖,核磁共振圖)的癌症檢測(S4ND)、衛星圖像檢測(You Only Look Twice)是否有用,不同域之間的遷移是否仍然能發揮作用?

分析

早期討論隨機初始化訓練的工作 DSOD 將必要條件歸結到一階段檢測器和 DenseNet 的 dense layer wise connection 上,但是這樣做很大程度限制了網絡結構的設計。我們想找到隨機初始化訓練檢測器的某些本質的原因。受到 NeurIPS2018《How Does Batch Normalization Help Optimization?》這篇文章的啟發,通過理論和實驗說明 BN 在優化過程中發揮的作用:

梯度更加穩定,更加可預測。

計算梯度時可採用更大的步長,即更大的學習率來加速訓練。

防止 loss 函數解空間突變,既不會掉入梯度消失的平坦區域,也不會掉入梯度爆炸的局部最小。

沿著這個思路我們在 SSD300 檢測框架上給 VGG 網絡與檢測子網絡分別加上了 BN 來進行隨機初始化訓練(PASCAL VOC 07+12 訓練,07 測試),調整學習率之後,得到的最好結果 78.7mAP,比直接隨機初始化訓練 SSD 的結果(67.6)高 11.6,比原 SSD300(77.2)高 1.5,比使用預訓練模型 VGG-16-BN(78.2)高 0.6。實驗細節在論文的實驗部分有描述。

從左到右的 3 幅圖分別是訓練 loss,梯度的 L2 Norm,梯度的波動程度。通過這三幅圖能夠從優化角度分析,為什麽 BN 能夠幫助隨機初始化訓練檢測器,藍色曲線代表直接對 SSD 使用 0.001 的學習率做隨機初始化訓練,紅色曲線在藍色曲線的基礎上在 VGG 網絡上加了 BN,綠色曲線在紅色曲線的基礎上使用了 10 倍的學習率。可以看到:從藍色到紅色,給特徵提取網絡添加了 BN 之後,梯度的波動程度大幅下降,梯度趨於穩定,優化空間更加平滑,訓練 loss 下降,mAP 從 67.6 升高到 72.8。而從紅色到綠色,平滑的優化空間允許使用更大的學習率,loss 進一步下降,mAP 也從 72.8 升高到 77.8。我們在檢測子網絡(detection head)也做了一樣設置的實驗,得出了相似的結論與梯度分析圖,具體請參考論文。

我們在 SSD300 上做了盡可能詳細的對比實驗,包括在 3 個不同學習率(0.001, 0.01, 0.05)下給特徵提取子網絡(VGG)添加 BN,給檢測子網絡(detection head)添加 BN,給全部網絡添加 BN,給全部網絡不添加 BN,以上四者的隨機初始化訓練以及對比預訓練 fine-tune 實驗。可以看到,在為整個檢測網絡的不同部分添加 BN 之後會有不同程度的提升,而提升最高的是為整個網絡添加 BN,在 VOC2007 測試集上(使用 VOC07+12 trainval 訓練)可以達到 78.7mAP。

借著隨機初始化訓練帶來的優勢,可以對特徵提取網絡進行任意改動。之後我們借鑒了 VGGNet 和 ResNet 的優點,最大程度保留原圖信息,來提升對小物體檢測的性能(論文中輸入圖像大小是 300X300,小物體較多)。

分析 ResNet 和 VGGNet 的優缺點

在 SSD 的升級版論文 DSSD 中,我們將 SSD 的特徵提取網絡從 VGG-16 替換成了 ResNet-101,所得實驗結果匯總如下表:

ResNet-101 在 ImageNet 的 top-5 error 上比 VGG-16 低了 2.69%,但是在 SSD300-VOC 的結果卻低於 VGG-16,為什麽?跟 VGG-16 相比,ResNet-101 的優點是分類能力強,缺點是對小物體識別能力較差,因為第一個卷積層的 stride=2,在初始輸入的圖片上就進行下采樣,會損失某些原圖信息,尤其是小物體的信息。

1) 在 VOC_300 時,ResNet-101 的缺點>優點,輸入圖片較小,圖片中小物體數目變多,缺點被放大;且類別只有 20 類,不能發揮 ResNet 強大的分類能力,在 SSD 上結果低於 VGG-16。

2) 在 VOC_512 時,ResNet-101 的缺點

3) 在 COCO 上時,ResNet-101 的缺點

當然這裡的結論需要進一步結合數據集本身的特性來驗證,比如數據集規模 vs 模型參數量,數據集每張圖片平均的 instance 數目,數據集小物體數量等等因素。

因此我們借鑒了 ResNet 與 VGGNet 的優點,首先把 ResNet 的第一個卷積層的 stride 從 2 改成 1,也就是取消第一個下采樣操作,並且參照了 DSOD 的方法,替換第一個卷積層為 3 個 3x3 卷積層:這樣做的目的是,盡可能保持原圖信息不損失,並且充分利用。注意:在將新網絡替換到 SSD 框架上時,仍然最大程度保證實驗的公平性。首先,用於檢測的特徵圖在論文中保持 38×38, 19×19, 10×10, 5×5, 3×3, 1×1 的大小,並沒有使用大的特徵圖;其次,保證每個用於檢測的特徵圖的 channel 數目相同。

(a) 原 ResNet-18: 結果為 73.1 mAP。

(b) ResNet-18-A: 去掉了 ResNet-18 的 max-pooling 層,即取消第二個下采樣操作,結果為 75.3 mAP。

(c) ResNet-18-B: 將 ResNet-18 的第一個卷積層的 stride=2 改為 1,即取消第一個下采樣操作,結果為 77.6 mAP。

(d) Root-ResNet-18: 將 ResNet-18-B 的第一個 7x7 卷積核替換成 3 個 3x3 卷積,結果為 78.5mAP。

分析:在 300x300 大小的輸入圖像上(小物體較多):

對比 (a) 與 (c): 取消第一個下采樣操作,提升了 4.5mAP。

對比 (a) 與 (b): 取消第二個,保留第一個下采樣操作 , 提升 2.2mAP。

對比 (b) 與 (c): 是否對原圖進行下采樣,會有 2.3mAP 的影響。

對比 (c) 與 (d): 替換 7x7 為 3 個 3x3 卷積核,使用更加冗余的特徵會提升性能。

之後,我們將 SSD 在特徵提取網絡後面添加的多個卷積層替換為殘差模塊,減少了參數量,並且提升了 FPS(SSD300-Root-Res34: 20FPS->25FPS,Tesla P40 測試), 而且檢測準確率沒有下降(在 VOC07 上測試,80.4mAP):

最後,我們使用了 Root-ResNet-34 來做隨機初始化訓練,得到較好的檢測結果:

(07+12 訓練,07 測試):80.4 mAP ;

(07++12 訓練,12 測試):78.5 mAP;

(COCOtrainval35k,COCO 測試):32.7 AP;

值得注意的是,在 COCO 測試集上 AP@S 13.0,對比其他相似輸入大小的檢測器,在小物體檢測結果相對較好。

我們還對比了訓練時間,使用 mmdetection 檢測框架(使用了 repeat dataset 加速訓練 trick),在輸入為 300x300 的時候,隨機初始化訓練大約需要 84.6 小時,而使用預訓練模型 fine-tune 需要 29.7 小時。但是相比起 ImageNet 數以百萬計的圖片數目與幾周的訓練時間來說,隨機初始化訓練檢測器使用的時間相對更少的,可以被人們所接受。

小結

目前,在我們 JD AI Research 已經有幾個小夥伴成功把隨機初始化訓練用在其他任務上,比如:

目前 JD AI Reserach 在 WIDER FACE 人臉檢測競賽排名第一的 ISRN,使用 GN 與兩倍 epoch 隨機初始化訓練來重新設計用於檢測小人臉並且相對節省顯存的網絡。

對文字檢測中的算法 EAST 成功隨機初始化訓練。

ImageNet 數據集深深地影響了計算機視覺的發展,相信未來會有許多好的工作解釋清楚深度學習、遷移學習中的奧秘,提出更加高效的訓練策略,打開深度學習的黑箱。

注:除了本文內容,作者還寫了一篇番外,對比了Kaiming He 以及其他一些有做隨機初始化訓練的論文,並且總結分享了一些相關經驗,感興趣的讀者可參閱《番外篇:關於隨機初始化訓練檢測器的一些想法》。

參考論文:

ISRN: https://arxiv.org/abs/1901.06651

DSOD:https://arxiv.org/abs/1708.01241

ScratchDet:https://arxiv.org/abs/1810.08425v3

EAST:https://arxiv.org/abs/1704.03155v2

Pelee: https://arxiv.org/abs/1804.06882

Tiny-SSD: https://arxiv.org/abs/1802.06488

YOLO-LITE: https://arxiv.org/abs/1811.05588

Fire-SSD: https://arxiv.org/abs/1806.05363

Tiny-YOLO: https://arxiv.org/abs/1506.02640

Tiny-DSOD: https://arxiv.org/abs/1807.11013

MobileNetV2: https://arxiv.org/abs/1801.04381

S4ND: https://arxiv.org/abs/1805.02279

DSSD: https://arxiv.org/abs/1701.06659

You Only Look Twice: https://arxiv.org/abs/1805.09512

Understanding Batch Normalization:

https://arxiv.org/abs/1806.02375

How Does Batch Normalization Help Optimization:

https://arxiv.org/abs/1805.11604

mmdetection: https://github.com/open-mmlab/mmdetection

作者簡介:

朱睿,中山大學數據科學與計算機學院大四學生,現於京東 AI 研究院視覺與多媒體實驗室實習。https://kimsoybean.github.io/

張士峰,中科院自動化所 2015 級直博生,導師李子青研究員,研究方向為基於深度學習的物體檢測,主要包括通用物體檢測、人臉檢測、行人檢測。目前已發表論文 16 篇,其中第一作者論文 11 篇,包括 3 篇 CVPR、IJCV、ICCV、ECCV、IJCAI、AAAI 等,獲 CCF-CV 學術新銳獎、百度獎學金等榮譽。http://www.cbsr.ia.ac.cn/users/sfzhang/

王曉波,京東第 2 屆博士技術管培生(DMT),現任京東 AI 研究院 CV 算法工程師。博士畢業於中科院自動化研究所,發表論文 20 余篇,包括 CVPR,ICCV,AAAI,IJCAI 等國際會議。目前主要研究方向為 人臉識別,目標檢測和模型壓縮。http://www.cbsr.ia.ac.cn/users/xiaobowang/

石海林,現任京東 AI 研究院資深研究員,博士畢業於中科院自動化所,專注於人臉計算、物體檢測、元學習等方向研究。http://hailin-ai.xyz/

本文為機器之心發布,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

獲得更多的PTT最新消息
按讚加入粉絲團