Table of Contents
前言
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模型主要分爲以下幾個部分:
- Multi-scale feature maps for detection:backbone採用基礎網絡結構(VGG),本文修改了backbone的最後幾層結構,同時引入了額外的卷積層用於抽取不同scale尺度的feature
- Convolutional predictions for detection:對於每個feature map(假設size爲m*n*p),通過3*3*p的卷積核生成預測value,包括預測位置的相對值(相對feature map像素對應的原圖位置)以及confidence等
- 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:
其中,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能提升小物體性能。
- 模型各模塊性能分析:
主要爲以下三個結論:
- 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上的性能:
- BBox尺寸對各類性能的影響:同一類的小物體性能明顯較差
- Multiple output layers at different resolutions:在多尺度feature map上進行預測能夠獲得更好的性能,同時保留邊界box性能會更好(在引入後續更高level的feature層後):
- PASCALVOC2012:結論與VOC2007上類似:
- COCO:SSD這裏採用了更小的default box尺寸,相比faster-rcnn來說,其在小物體上的性能略差:
- Data Augumentation for Small Object Accuracy:針對小物體,提出了"zoom out"的ramdom-expansion的增強方式:先將圖片隨機放置到16Xsize的畫布上,再進行random crop操作,能明顯提升小物體的性能:
- Inference time:SSD在得到網絡的prediction結果後需要進一步的NMS,耗時1.7msec per image for SSD300 and 20 VOC classes,模型整體Infer時間對比如下:
小結
整體上SSD的網絡設計還是非常簡單可行的,One-Stage的方案在模型精確度和速度上實現了比較好的Trade-off,multi-scale-prediction的設計是其主要的貢獻點。但是,論文中的數據增強對模型的性能提升很大,認爲可能是本身數據集數據量不足的影響,與沒有作相關數據增強的Faster-rcnn進行對比稍微有點不公平.