深度学习: one-stage/two-stage/multi-stage 目标检测算法

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 目标检测算法_第1张图片

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 目标检测算法_第2张图片

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 目标检测算法_第3张图片

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

one-stage 算法

在YOLOv1中,“生成RP”这一任务被直接丢弃了。因此,整个算法只剩下了一个stage,故谓之曰“one-stage”:
深度学习: one-stage/two-stage/multi-stage 目标检测算法_第4张图片


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

你可能感兴趣的:(深度学习,深度学习)