版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/JNingWei/article/details/80039079

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

  1. 对于不需要预生成RP的Detection算法而言,算法只需要完成三个任务:

    • 特征抽取
    • 分类
    • 定位回归
  2. 对于有预生成RP的Detection算法而言,算法要完成的主要有四个任务:

    • 特征抽取
    • 生成RP
    • 分类
    • 定位回归

Detection算法的框架套路

【转】深度学习目标检测的整体架构描述(one-stage/two-stage/multi-stage)

multi-stage 算法

最早期的检测算法 (主要为R-CNN、SPPNet) 都属于multi-stage系。这个时候的Selective Serach、Feature extraction、location regressor、cls SVM是分成多个stage来各自单独train的。故谓之曰“multi-stage”:
【转】深度学习目标检测的整体架构描述(one-stage/two-stage/multi-stage)

two-stage 算法

到了Fast R-CNN的时候,Feature extraction、location regressor、cls SVM都被整合到了一个network里面,可以实现这三个task一起train了。由于生成RP的task还需要另外train,故谓之曰“two-stage”:
【转】深度学习目标检测的整体架构描述(one-stage/two-stage/multi-stage)

到了Faster R-CNN中,虽然RPN的出现使得四个task可以一起被train,但是依然被归类为“two-stage”。(这个地方我也不是很理解。)

one-stage 算法

在YOLOv1中,“生成RP”这一任务被直接丢弃了。因此,整个算法只剩下了一个stage,故谓之曰“one-stage”:
【转】深度学习目标检测的整体架构描述(one-stage/two-stage/multi-stage)


[1] 检测任务专题2: two-stage检测
[2] Object Detection–RCNN,SPPNet,Fast RCNN,FasterRCNN论文详解