理解目标检测算法之Light Head R-CNN

文章目录

    • 1 动机
    • 2 网络结构
    • 3 实验结果
    • 4 个人总结


对于目标检测任务,输入图像通常都要经历3个步骤,Backbone + Head + Postprocess(NMS),目标检测算法的优化,通常也是围绕着这3个方面展开的。针对Backbone的优化有DetNet,针对Head的优化有Light head R-CNN,针对Postprocess的优化有soft nms和softer nms。值得一提的是,除了soft nms,其余的几篇文章都是face ++出品,不愧是多届coco目标检测竞赛的冠军,确实厉害。本文接下来将只介绍Light head R-CNN,大家如果对其它文章感兴趣,也可以直接去读原文,一定会对目标检测任务有更多的感悟。

1 动机

对于two-stage的目标检测算法,常见的有Faster R-CNN和R-FCN。当图像中的proposals个数增加时,Faster R-CNN的计算量会迅速增加,R-FCN虽然解决了Faster R-CNN中存在的重复计算问题,但是backbone最终的特征图channels较大,导致计算量也比较大。

Light Head R-CNN是Faster R-CNN和R-FCN的结合体,主要的改进点包括2点,(1)per-Roi RCNN subnetwork计算量尽可能多地共享;(2)整个目标检测网络的head部分channels个数减少。

2 网络结构

网络结构如下图,同R-FCN相比,它有两个不同的地方,(1)使用large separable convolution 层,得到channels个数更少的feature maps。这里需要提一下,因为这里用的滤波器尺寸较大,文章中设置为15,所以得到的feature maps信息更加丰富,原文中是这么表述的,“Benefit from the larger valid receptive field caused by large kernel, the feature maps we pooled on are more powerful”,该网络层的结构如下图;(2)在R-CNN subnet中使用1个FC层,然后基于该层特征做分类和回归任务。理解目标检测算法之Light Head R-CNN_第1张图片
关于Light head R-CNN完整的网络结构,这里引用原文中的图,其中,PSRoi指“position-sensitive Roi”,理解目标检测算法之Light Head R-CNN_第2张图片
从图中可以看出,Faster R-CNN和R-FCN的head部分,都经过了global average pool操作,而Light head R-CNN的head部分,将feature maps做reshape操作,然后接全连接层,因此保留了更多的位置信息。读者看到这里可能会困惑,如果是490个channels,此时的计算量会比R-FCN(81个channels)更大,又岂能称之为light-head呢?这里的图画的有歧义,事实上,文中主要采用了PSRoi pooling操作,作者也指出,如果使用RoI pooling操作,可以先减轻R-CNN的负担(参见原文中的描述,”Considering PSRoI pooling on thin feature maps, we can bring more computation to strengthen R-CNN and decrease the channels. In addition, if we apply RoI pooling on our thin feature maps, we can reduce R-CNN overhead and abandon Global Average Pooling to improve performance simultaneously“)。

3 实验结果

论文中的实验做的是比较充分的,具体的实验结果参见下图,实验采用了两种backbone结构,xception和resnet101,(1)当使用xception网络结构提特征时,作为轻量型的two-stage目标检测算法,同轻量型的one-stage的目标检测算法ssd和yolo v2比起来,它在速度和精度上完胜对手;(2)当使用resnet101网络结构提特征时,由于backbone比较重,此时应该和当前效果较好的模型pk了,作者选择了faster rcnn和retinanet,此时效果也胜出。正如论文霸气的题目"Light-Head R-CNN: In Defense of Two-Stage Object Detector",以前常说,”对于目标检测算法,one-stage的速度快,two-stage的精度高“,看来得修正自己的知识库了。

理解目标检测算法之Light Head R-CNN_第3张图片
理解目标检测算法之Light Head R-CNN_第4张图片
理解目标检测算法之Light Head R-CNN_第5张图片
理解目标检测算法之Light Head R-CNN_第6张图片

4 个人总结

本文的创新性并不是很大,只是综合了已有的文章中的想法,包括Faster rcnn、R-FCN、inception v2,但是从效果上来说,还是很有说服力的。值得一提的是,作者稍微修改几处,模型的mAP就能有很大的提升,比如作者复现的R-FCN比R-FCN原文中的mAP提升了3个点,可见作者的调参技巧是很厉害的,向大牛看齐,大家一起加油吧。




参考资料:

https://arxiv.org/abs/1711.07264

https://megvii.com/newscenter/e2da1146-7209-44b1-aac5-1f4aab6d091a

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