论文阅读: Light-head R-CNN

Introduction

Head ” 在文中指连接在basemodel后面的网络结构,包括以下两部分:

  • RoI warping
  • RoI-wise subnet

Faster R-CNN和R-FCN速度都不够快,原因在于它俩的head都太heavy了。

Faster R-CNN heavy在它的RoI-wise subnet部分,因为这部分需要重复计算:
论文阅读: Light-head R-CNN_第1张图片

R-FCN则heavy在它的RoI warping部分,因为这部分score map设计得太厚了(厚度为 k2(C+1) k 2 ( C + 1 ) ,在COCO版本的代码中channel达到了3969):
论文阅读: Light-head R-CNN_第2张图片

论文指出,正是因为heavy-head,导致了inference speed一直是two-stage之殇。

two-stage系需要有一个算法站出来,在speed和accuracy上双双打败one-stage。

这个时候,Li Zeming大神提出了解决办法:

thin feature map + cheap RoI-wise subnet = Light-head

以Light-head作为头部的检测算法,就叫Light-head R-CNN。
其对应的网络结构如下:
论文阅读: Light-head R-CNN_第3张图片

Note

  • R-FCN中对于每个proposal,是一个类回归一个4-d vector来表征location信息,所以每个proposal对应C个locaton vector(背景proposal则没有location vector);到了Light-head R-CNN中,则是一个proposal,只对应一个location vector。
  • 将score map的channel 从3969(COCO version)降到了490。

lizeming大神在论文中提出了基于两种basemodel的版本。其中一种基于类Xception,称之为S型Light-head R-CNN,其网络结构如下:
论文阅读: Light-head R-CNN_第4张图片

另外一种基于ResNet,称之为L型Light-head R-CNN

Innovation

thin feature map + cheap R-CNN subnet = Light-head

Result

不管在哪一种basemodel下,Light-head R-CNN在检测算法之林都是一骑绝尘:
论文阅读: Light-head R-CNN_第5张图片

其中,Light-head R-CNN的检测性能用红色三角形表示,所采用的三种basemodel分别为Xception、ResNet-50和ResNet-101。可以明显看出,Xception为basemodel时,速度极快,但是AP值会掉非常多。

在COCO数据集上,Light-head R-CNN击败了其他所有算法,包括Faster R-CNN、Mask R-CNN和RetinaNet:
论文阅读: Light-head R-CNN_第6张图片

inference speed居然可以吊打one-stage系,包括SSD、YOLOv2。这边并没有列出RetinaNet,估计还是无法超越RetinaNet:
论文阅读: Light-head R-CNN_第7张图片

最后贴上两张效果图:

  • L型Light-head R-CNN效果图:

  • S型Light-head R-CNN效果图:

Thinking

  • Light-head R-CNN的故事讲得并不好。全文就一直在说自己的东西多么多么powerful,但是却缺乏理论依据,净拿数据说事。由于多少看起来有点“空手套白狼”的感觉,所以投CVPR被拒。

  • 文中的thin feature map很反直觉。这么剧烈地压缩模型,性能居然不降反升,很令人诧异。但是作者却没有给出合理的解释,reviewer对此持怀疑态度也是可以理解的。

  • 但其实Light-head是真的管用。tensorflow版的Light-head R-CNN作者已经开源:zengarden/light_head_rcnn,大家可以去clone下来研究研究。


[1] Light-Head R-CNN: In Defense of Two-Stage Object Detector

你可能感兴趣的:(论文阅读,论文算法)