1. 程式人生 > >[深度學習]Object detection物體檢測之SSD(8)

[深度學習]Object detection物體檢測之SSD(8)

目錄

綜述

SSD與其他演算法的區別

SSD的主要貢獻

1.Multi-Scale Feature Maps

2.Splitting the Region Space

3.Data Augmentation

SSD300網路結構

SSD網路的缺點



論文全稱:《SSD: Single Shot MultiBox Detector》

論文地址:https://arxiv.org/pdf/1512.02325.pdf

綜述

今天解讀的這篇了論文是著名的SSD目標檢測演算法,和YOLO一樣是一種one stage的演算法,區別於rcnn,fast rcnn,faster rcnn等two stage 的演算法。通過下圖可以看到SSD300和SSD512(指的是輸入影象的解析度)在檢測速度和精度方面均是state of art的。

SSD與其他演算法的區別

下圖可以清晰的表明了幾種流行的目標檢測演算法之間的區別:

  • MulitiBox使用全連線來預測多個boxes的objectness(是否為一個物體)以及每一個box的offset(與真實值的偏移程度),然後再預測每一個box的物體類別;
  • YOLO使用全連線預測多個boxes的objectness以及每一個box的offset,而且同時再預測每一個box的物體類別;
  • Faster R-CNN使用卷積層預測多個boxes的objectness以及每一個box的offset,然後再預測每一個box的物體類別;
  • SSD使用卷積層預測多個boxes的objectness以及每一個box的offset,同時預測每一個box的物體類別;

SSD的主要貢獻

1.Multi-Scale Feature Maps

在不同大小卷積層之後分別預測多個boxes的objectness以及每一個box的offset,大的卷積圖可以檢測到小的物體,小的卷積圖更傾向於檢測大的物體。

2.Splitting the Region Space

與YOLO每一個單元都要自適應邊界框不同,SSD採用了Faster R-CNN裡面的anchor的方法,對於每一個單元檢測都去匹配最近似的一個先驗anchor,因為不同的Groud Truth的長寬比不同需要很多時間去擬合,採取anchor的方法更容易迴歸。最後mAP得到了2.5的增長。

 

3.Data Augmentation

利用水平翻轉,隨機裁剪,顏色扭曲和隨機擴充套件可以做到資料增強而提高檢測精度。

SSD300網路結構

SSD/YOLO區別:

  • YOLO在卷積層後接全連線層,即檢測時只利用了最高層Feature maps(包括Faster RCNN也是如此)
  • SSD採用金字塔結構,即利用了conv4-3/conv-7/conv6-2/conv7-2/conv8_2/conv9_2這些大小不同的feature maps,在多個feature maps上同時進行softmax分類和位置迴歸
  • SSD還加入了Prior box,類似Faster R-CNN的anchor機制

SSD網路的缺點

  1. 需要人工設定prior box的min_size,max_size和aspect_ratio值。網路中prior box的基礎大小和形狀不能直接通過學習獲得,而是需要手工設定。而網路中每一層feature使用的prior box大小和形狀恰好都不一樣,導致除錯過程非常依賴經驗。
  2. 雖然採用了pyramdial feature hierarchy的思路,但是對小目標的recall依然一般,並沒有達到碾壓Faster RCNN的級別。作者認為,這是由於SSD使用conv4_3低階feature去檢測小目標,而低階特徵卷積層數少,存在特徵提取不充分的問題。

 

參考文獻:

http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/single-shot-detectors/ssd.html

https://arxiv.org/pdf/1711.06897.pdf

https://zhuanlan.zhihu.com/p/31427288