目標檢測SSD相對於YOLO與faster-RCNN做了哪些改進?效果如何呢?

fasterRCNN在RCNN的基礎上,提出了RPN生成候選框,結合fastRCNN同時做分類與回歸,但速度上仍不理想。YOLO對圖像劃分網格,直接對每個grid回歸Bbox, 速度也有提升。而最近的SSD據說結合了這兩個演算法優點(anchor?),論文我沒看太懂,麻煩大蝦們講解下具體的思想。到底優化在哪些地方,能梳理一下流程就更不錯啦。最後SSD速度真能達到實時嗎?


Faster R-CNN 分成了兩個階段:區域提名,細化分類,而SSD就一氣呵成.

通俗地講,是有一位老人在中國南海畫了一個圈,,呃,偏了,

通俗地講,他們都是在原圖上預先畫了很多個框框,然後判斷這些框框是不是前景.這和傳統的滑窗有點像,anchor代表了不同size和比例的滑窗.但feature map的感受野更大一點,特徵提取的也更好.

總的來說,SSD和rpn相似

rpn二分類,是在conv4 這一層feature map先加上3x3的卷積(經評論區指正)再進行1x1的卷積生成512-d或256-d的向量判斷當前9個anchor是不是有Object.

SSD細分類,然後會在多層feature map上面預測,預測預先確定好了"anchor"是什麼Object.彌補了yolo只在最後一層分成7x7的框,撿了許多漏檢的.而且是很多,最新的ssd512撿了更多.

另外,在訓練的時候,SSD按照默認的配置訓練起來很慢,而且用resnet提升不高,但是需要24g顯存,(ssd500,這導致直接被管理員kill了,鬱悶!).ssd在預測上面確實比較快,0.28秒一張(TITan X)

在小物體預測上面,faster rcnn比ssd,yolo要好.最近yolov2出了,之前一直被吐槽的性能好了很多,速度也快,題主可以玩玩,比純faster rcnn+resnet 還好了.單看論文名字就知道很厲害.

YOLO9000: Better, Faster, Stronger

  • arxiv: https://arxiv.org/abs/1612.08242
  • code: http://pjreddie.com/yolo9000/

粗淺的見解,見笑了.


菜狗來怒答一發,我認為SSD算是YOLO的多尺度版本,由於YOLO對小目標檢測效果不好,所以SSD在不同的feature map上分割成grid然後採用類似RPN的方式做回歸,例如對於VGG16來說,conv3相對於conv5來說感知小目標的能力較強,同時對目標的位置感知較為準確,而對conv5來說層越深並且語義信息較強,feature map相對於input size來說已經縮小了16倍,對小目標來說決策能力太弱這也是detection比classification難得地方,此外SSD還去掉了兩個fc來達到加速detector的目的


這篇文章總結YOLO不錯:

機器視覺 目標檢測補習貼之YOLO實時檢測, You only look once


在面試中,被問到這個問題。

SSD相對YOLO其中容易被忽視的一點: 去掉了YOLO的fc,純CNN,所以可對任意大小的圖片進行識別。


推薦閱讀:

mxnet的並行計算為什麼這麼牛,是什麼原理?
現在tensorflow和mxnet很火,是否還有必要學習scikit-learn等框架?
為什麼在數據量較小的時候CPU計算會快於GPU?
PyTorch 有哪些坑/bug?
PyTorch提取中間層特徵?

TAG:目標檢測 | 深度學習DeepLearning |