橦言无忌

一个不想改变世界的程序媛

一阶段和两阶段目标检测网络

前言

一阶段和二阶段目标检测算法

总结不到位,请重来~

1,one stage

One-Stage检测算法,没有selective search产生region proposal的阶段,直接产生物体的类别概率和位置坐标,经过单次检测即可直接获得最终的检测结果。相比Two-Stage有更快的速度,但准确度低。代表网络有YOLO v1/v2/v3/9000,SSD,Retina-Net. (two-stage算法中的roi pooling会对目标做resize, 小目标的特征被放大,其特征轮廓也更为清晰,因此检测也更为准确)

2,two stage

先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类。

对于Two-stage的目标检测网络,主要通过一个卷积神经网络来完成目标检测过程,其提取的是CNN卷积特征,在训练网络时,其主要训练两个部分,第一步是训练RPN网络,第二步是训练目标区域检测的网络。网络的准确度高、速度相对One-stage慢。

Two-Stage检测算法将检测问题划分成两个阶段,首先是获取region proposal进行位置精修和分类阶段。相比于One-Stage,精度高,漏检率也低,但是速度较慢,代表网络有Fast rcnn,Faster rcnn,mask rcnn等。

3,异同

Two-Stage先对前景背景做了筛选,再进行回归,回归效果比较好,准度高但是相比较慢,One-Stage是直接对特征上的点进行直接回归,优点是速度快,因为用了多层特征图出框可能小目标效果比较好一点,缺点是因为正负样本失衡导致效果较差,要结合难例挖掘。

// 代码折叠