SSD: Single Shot MultiBox Detector論文解讀

Table of Contents

  1. 前言
  2. 論文基本信息
  3. 論文背景以及基本思想(Motivation & Contribution)
  4. 算法基本流程
  5. 算法細節
  6. 實驗結果
  7. 小結

前言

SSD作爲One-Stage系列的論文,如今已經作爲基本網絡被廣泛應用於物體檢測中,也很多網絡結構是建立在其基礎上的改進網絡。
當前的Objection Detection架構的兩個派系:

  • Two-Stage:基於Region Proposal和CNN網絡分類迴歸方式:RCNN->SPPnet->MulriBox->Faster RCNN,該方案的優勢在於檢測精度高,但是計算量大,實時性差。
  • 滑窗方式:沒有Region-Proposal的過程,直接通過Bounding-Box和類別confidence的估計:OverFet->Yolo->SSD

論文基本信息

作者信息:

  • 一作:WeiLiu, UNC Chapel Hill在讀PhD
  • 通訊: Alexander C. Berg, UNC Chapel Hill AP, SHapagon CTO, 引用2.7k

論文背景以及基本思想(Motivation & Contribution)

簡述其他框架:簡述two-stage的RCNN系列和one-stage的YOLO系列。

  • RCNN:Region-based Convolution Neural Network,主要包括三步:Selective Search找到Region Proposals(大約2000),在每個region上面運行CNN,將每個CNN的輸出結果接入到一個SVM進行分類以及一個線性迴歸進行bounding box的迴歸
  • Faster-RCNN:先了解Fast RCNN:Fast RCNN先對輸入圖片導入一個CNN網絡得到feature,再在feature的基礎上通過Proposal method得到Regions,採用了ROI Pooling,fc之後以Softmax層替代SVM,Linear迴歸得到box,除了前置Region Proposal的提取過程外,其他部分都能實現端到端的訓練。Fater RCNN在Fast RCNN的基礎上,以RPN替代了Proposal method,將得到的ROIS和CNN得到的features接到ROI Pooling和若干全連接層,最後通過softmax分類和bounding box迴歸得到框,實現了整體網絡的端到端訓練。
  • YOLO:YOLO採用的是One-stage的檢測方式,將目標檢測認爲是一個迴歸問題。Yolo的CNN網絡將輸入 圖片分割成S×S網格,然後每個單元負責檢測落在該格子內的目標,每個單元會預測B個預測框,以及邊界框對類別的置信度。通過前期各層的卷積層輸出得到特徵圖,最後接到兩個全連接層,經過reshape得到之前網格的框圖預測輸出。
  • SSD的改進思路:SSD避免了採用Faster RCNN的結合RPN和Fast RCNN的方式,而是通過一系列設定得到的boxes對應不同尺度的feature圖,實現了end-end的網絡結構,使得模型的訓練更爲簡單,模型檢測速度更快。相對於YOLO,SSD更加靈活地運用了default boxes(不同大小,不同長寬比),在base網絡後連接卷積得到不同尺度的feature圖,能夠結合不同scale的feature進行預測,對不同尺度的featue圖直接通過卷積層輸出進行訓練和預測,同時用卷積方式替代fc,使得不同尺度下的檢測精度更高。

算法基本流程

SSD算法框架:在這裏插入圖片描述
SSD模型主要分爲以下幾個部分:

  1. Multi-scale feature maps for detection:backbone採用基礎網絡結構(VGG),本文修改了backbone的最後幾層結構,同時引入了額外的卷積層用於抽取不同scale尺度的feature
  2. Convolutional predictions for detection:對於每個feature map(假設size爲m*n*p),通過3*3*p的卷積核生成預測value,包括預測位置的相對值(相對feature map像素對應的原圖位置)以及confidence等
  3. Default boxes and aspect ratios:每層的feature map設置有默認大小和長寬比的default boxes,feature map上的每個位置會基於deafault box作相對位置和大小的估計以及類別score的估計。對於size爲m*n的feature map,其最終的預測結果爲(c+4)kmn,其中c爲類別數目,4爲位置偏移值和大小偏移值,k爲default box數目(不同scale的feature map的k值有所不同,如conv102和conv112採用k=4,餘下爲6)。

算法細節

Traing

  • Matching strategy:區別於MultiBox,SSD對所有與GT的IOU閾值大於0.5的default box作爲positive,即default box與GT是多對一的關係,而不是MultiBox的取最大IOU的一對一的關係

  • Loss設計:Loss主要分爲兩個部分:localization loss和confidence loss:
    ssdscale

    其中,N爲匹配上的box數目,如N=0,則loss=0。localization loss採用的是L1 loss,localization loss包括(cx,cy,w,h),即中心位置和寬,長四部分loss,confidence loss採用的是softmax loss。

  • Choosing scales and aspect ratios for detection:不同尺度的ferature map擁有不同的感受野,所有應當設計不同大小的default box。SSD採用的default box大小設計如下:
    在這裏插入圖片描述
    其中,smin爲0.2,smax爲0.9,長寬比設計爲ar={1,2,3,1/2,1/3}

  • Hard negative mining:策略爲按照confidence loss進行排序,保持正負樣本爲1:3。

  • Data augmentation:採用的ramdom crop策略:

    • 輸入原始大小的輸入圖片
    • 在輸入圖片上進行Sampel得到patch,滿足與objects的最小jaccard overlap爲0.1,0.3,0.5,0.7 or 0.9
    • 隨機Sample得到patch

    sample得到的patch大小爲[0.1,1],長寬比爲1/2,2,保留中心點在sampled patch的box。得到的patch會被resize到固定size,並且採用horizontally flip(probability 0.5),photo-metrix distortions等增強。

  • Base network:在VGG的基礎上,進行了一系列的改動:fc6, fc7替換爲卷積層,pool5替換2x2-s2爲3x3-s1,同時採用空洞卷積,去除所有drop-out層和fc8層。

實驗結果

  • PASCAL VOC2007 test detection results:SSD在大物體上性能很好,小物體上性能略差(因爲物體過小的話,在前面的feature層也不一定有足夠的信息),增大輸入size能提升小物體性能。

PASCALVOC2007

  • 模型各模塊性能分析:

modelcomponents
主要爲以下三個結論:

  • Data Augumentation:單就數據增強這一項提升了8.8mAP,作者認爲faster-rcnn因爲採用了feature pooling step,所以對數據的translation更魯棒,所以數據增強對faster-rcnn的收益不打,這點需要存疑,因爲random-crop的增強策略不單單是物體的translation的變化。
  • More default box shapes:更多的aspect box的設計會涵蓋更多的尺寸的的deafault box,有利於模型預測多尺寸的物體
  • Atrous is faster:採用空洞卷積的方式能夠在不降低性能的情況下,加快20%
  • SSD512在animals,vehicles,furniture三類上在VOC2007上的性能:

ssd-perforamcevoc2007

  • BBox尺寸對各類性能的影響:同一類的小物體性能明顯較差

ssdbbox

  • Multiple output layers at different resolutions:在多尺度feature map上進行預測能夠獲得更好的性能,同時保留邊界box性能會更好(在引入後續更高level的feature層後):

ssdmultipleoutput

  • PASCALVOC2012:結論與VOC2007上類似:

ssdvoc2012

  • COCO:SSD這裏採用了更小的default box尺寸,相比faster-rcnn來說,其在小物體上的性能略差:

ssdcoco

  • Data Augumentation for Small Object Accuracy:針對小物體,提出了"zoom out"的ramdom-expansion的增強方式:先將圖片隨機放置到16Xsize的畫布上,再進行random crop操作,能明顯提升小物體的性能:

ssd-expansion1
ssd-expansion2

  • Inference time:SSD在得到網絡的prediction結果後需要進一步的NMS,耗時1.7msec per image for SSD300 and 20 VOC classes,模型整體Infer時間對比如下:

ssd-inference

小結

整體上SSD的網絡設計還是非常簡單可行的,One-Stage的方案在模型精確度和速度上實現了比較好的Trade-off,multi-scale-prediction的設計是其主要的貢獻點。但是,論文中的數據增強對模型的性能提升很大,認爲可能是本身數據集數據量不足的影響,與沒有作相關數據增強的Faster-rcnn進行對比稍微有點不公平.

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