轉載請註明做者:夢裏茶git
Single Shot MultiBox Detectorgithub
一句話歸納:SSD就是關於類別的多尺度RPN網絡網絡
基本思路:ide
anchor寬高:
測試
其中,ar∈{1,2,3,1/2,1/3},能夠理解爲在縮放因子選擇好anchor尺寸後,用ar來控制anchor形狀,從而獲得多尺度的各類anchor,當ar=1時,增長一種 sk=sqrt(sk-1sk+1),因而每一個feature map cell一般對應6種anchor。對象
正樣本
選擇與bounding box jaccard overlap(兩張圖的交集/並集)大於0.5的anchor做爲正樣本blog
樣本比例
Hard negative mining:因爲負樣本不少,須要去掉一部分負樣本,先整圖通過網絡,根據每一個anchor的最高類置信度進行排序,選擇置信度靠前的樣本,這樣篩選出來的負樣本也會更難識別,而且最終正負樣本比例大概是1:3排序
仍是一如既往的location loss + classification loss,併爲location loss添加了係數α(然而實際上α=1)進行平衡,並在batch維度進行平均圖片
其中定位loss與faster rcnn相同get
這個式子裏的k不是很明確,其實想表達不算背景0類的意思,且前景類只爲match的類算location loss
分類loss就是很經常使用的softmax交叉熵了
核心的內容到這裏就講完了,其實跟YOLO和faster rcnn也很像,是一個用anchor box充當固定的proposal的rpn,而且用多尺度的anchor來適應多種尺度和形狀的目標對象。
在訓練中還用到了data augmentation(數據加強/擴充),每張圖片可能是由下列三種方法之一隨機採樣而來
而後這些圖片會被resize到固定的大小,隨機水平翻轉,加入一些圖像上的噪聲,詳情能夠參考另外一篇論文:
Some improvements on deep convolutional neural network based image classification
從切除實驗中,能夠看到data augmentaion是很重要的(從65.6到71.6)
這個表中還提到了atrous,實際上是指空洞卷積,是圖像分割(deeplab)領域首先提出的一個卷積層改進,主要是能讓測試速度更快。具體能夠參考 ICLR2015 Deeplab
從這個表中也能夠看出多種形狀的anchor能夠提高準確率
輸入尺寸爲300x300,batch size爲8的SSD300能夠作到實時(59FPS)且準確(74.3% mAP)的測試
SSD算是一個改進性的東西,站在Faster RCNN的肩膀上達到了實時且準確的檢測