论文:https://arxiv.org/abs/1711.07264
代码: GitHub - zengarden/light_head_rcnn: Light-Head R-CNN
1.概述
我们一般将Object detection分为两大系列:
-
一类是two-stage detector:
-
代表算法有Faster RCNN, Mask RCNN等
-
算法分两阶段进行,第1阶段是生成proposals,第2阶段是对这些proposals进行分类、回归【精调】
-
-
另一类是one-stage detector:
-
代表算法有YOLO系列, SSD等
-
算法讲究一步到位,没有生成proposals这一过程
-
一般来说,two-stage系列的检测算法拥有更高的检测精度高,而singel-stage系列的算法则具备更快的检测速度。在实际工业应用【落地】中,算法的速度是我们一种重要的考虑因素,同时随着YOLO系列的算法逐步优化其精度也得到了改善,基本能够满足实际的需求,因此在实际应用中更多的可能还是one-stage系列的算法为主。
作者将论文取名为《守护二阶段物体检测器的尊严》,通过构造轻量级头部R-CNN网络,探讨了R-CNN如何在物体检测中平衡精确度和速度;
-
作者用Resnet-101作为base model,拿到了COCO-2017的冠军。
-
作者用轻量级的Xception作为base model,达到了30.7 mmAP,并且速度达到102FPS,从speed到accuracy都全面击败现有的single-stage的算法
2.为什么two-stage算法那么慢
“Head” in our paper refers to the structure attached to our backbone base network. More specifically, there will be two components: R-CNN subnet and ROI warping
也就是说Head主要包含两部分:
-
ROI warping:通过ROI Pooling/PSRoI Pooling等方式为每一个ROI生成大小固定的特征图
-
RCNN subnet:基于ROI的特征图进一步实现recognition过程,
two-satge算法由于头部的计算量很大,导致即使是轻量级的back