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论文详解