版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
Introduction
Detection主要分為以下三個支系:
- | one-stage系 | two-stage系 | multi-stage系 |
---|---|---|---|
主要算法 | YOLOv1、SSD、YOLOv2、RetinaNet、YOLOv3 | Fast R-CNN、Faster R-CNN | R-CNN、SPPNet |
檢測精度 | 較低 | 較高 | 極低 |
檢測速度 | 較快 | 較慢 | 極慢 |
鼻祖 | YOLOv1 | Fast R-CNN | R-CNN |
狀態 | 已淘汰 |
Detection算法的幾個task
-
對於不需要預生成RP的Detection算法而言,算法只需要完成三個任務:
- 特征抽取
- 分類
- 定位回歸
-
對於有預生成RP的Detection算法而言,算法要完成的主要有四個任務:
- 特征抽取
- 生成RP
- 分類
- 定位回歸
Detection算法的框架套路
multi-stage 算法
最早期的檢測算法 (主要為R-CNN、SPPNet) 都屬於multi-stage系。這個時候的Selective Serach、Feature extraction、location regressor、cls SVM是分成多個stage來各自單獨train的。故謂之曰“multi-stage”:
two-stage 算法
到了Fast R-CNN的時候,Feature extraction、location regressor、cls SVM都被整合到了一個network里面,可以實現這三個task一起train了。由於生成RP的task還需要另外train,故謂之曰“two-stage”:
到了Faster R-CNN中,雖然RPN的出現使得四個task可以一起被train,但是依然被歸類為“two-stage”。(這個地方我也不是很理解。)
one-stage 算法
在YOLOv1中,“生成RP”這一任務被直接丟棄了。因此,整個算法只剩下了一個stage,故謂之曰“one-stage”:
[1] 檢測任務專題2: two-stage檢測
[2] Object Detection–RCNN,SPPNet,Fast RCNN,FasterRCNN論文詳解