【转】深度学习目标检测的整体架构描述(one-stage/two-stage/multi-stage)
版权声明:本文为博主原创文章,遵循 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论文详解