目标检测框架one stage和two stage

目前已提出的目标检测框架分为两类:One Stage和Two Stage,其中Two Stage框架先于One Stage被提出。下面我们分别介绍一下这两种框架,然后做一个比较。
One Stage
One Stage 的算法框架是在backbone提取得到的feature maps上直接预测物体的位置(x, y, w, h),物体类别,物体置信度,经过单次检测即可得到最终的检测结果。常见的有SSD、Retina-Net以及YOLO系列等。
Two Stage
相比较于One Stage,Two Stage需要通过在图片上搜索,找到可能包含物体的Region Proposals,然后再对Region Proposals做进一步的分类和回归,得到最终的检测结果。常见的有RCNN、Fast RCNN、Faster RCNN以及Mask RCNN等。
One Stage VS Two Stage
One Stage是在牺牲了检测精度前提下提升了检测速度,因为One Stage会事先把图片网格化或者设置Anchor,对于图像网格化(参考YOLO v1),物体中心落在那个网格中,该网格便负责检测该物体,或是与某物体的IOU最大的Anchor负责检测该物体,这样就产生了问题,当图像中物体较小而密的时候,会造成漏检。而Two Stage在提取Region Proposals的时候便对前景背景做了筛选,然后再进行分类和回归,效果自然比较好,但是也面临着正负样本失衡的问题,要结合难例挖掘确保网络更好地学习与收敛。现在落地应用的主流目标检测多为One Stage,因为实际应用的话,检测速度还是一项硬指标,要在Accuracy和Speed上做一个tradeoff,而且现在经过这几年的发展,One Stage通过引入FPN、Dense Predict等也达到了和Two Stage相媲美的精度。
总结
以上便是博主的个人理解,如有错误之处,还请指正,共同讨论,一起进步。

你可能感兴趣的:(目标检测,深度学习,目标检测,One-Stage,Two-Stage,计算机视觉)