Light-Head R-CNN

版权声明:本文为博主原创文章,未经博主允许不得转载

论文:Light-Head R-CNN: In Defense of Two-Stage Object Detector 

链接:https://arxiv.org/abs/1711.07264 

代码链接:https://github.com/zengarden/light_head_rcnn

旷视的文章


算法分析:

这篇文章主要是基于Faster RCNN 和R-FCN做的改进。文章将two stage模型分为两个部分,body和head,原文是这么说的, the first step (body) generates many proposals, and the second step (head) focuses on the recognition ofthe proposals,也就是说head由roi pooling和R-CNN两部分组成。对于像Faster RCNN、R-FCN这样的two stage,第二部分有一些操作耗时且存储量较大,因此称为heavy head,而本文的light head RCNN则是通过对第二部分的修改减少了许多复杂操作,所以称之为light head。

Faster RCNN:ROI pooling的channel数很大,有2048,global average pooling减少了 第一个全连接层的计算,但同时影响了空间定位(pooling操作会丢失位置信息);R-CNN subnet有着两个非常大的全连接层,甚至有着c5全部的卷积层,这对定位非常有利,不过每个ROI单独传递给RCNN subnet做计算,因此存在较多重复计算。

R-FCN解决了重复计算的问题,不过引入的score map channel数很大,是P*P(C+1),C为类别数,在COCO数据集上,channel为3969(7*7*81),存储和时间上都有着不小的消耗。

综上,faster rcnn和r-fcn的head计算量都很大,即使body用了轻量化的网络,它们的速度依然比不上one stage的方法。

light head rcnn的目标就是减小head部分的计算量。作者提出large separable convolution生成thinner feature map,将原来(C+1)*P*P用α*P*P(α是一个与类别数无关且较小的值,文章10)来代替,差不多是从3969降低到490,这样就降低了后续Pooling和其他操作的计算开销。不过不能像R-FCN那样vote,于是在ROI pooling/PSROI之后添加一个全连接层进行预测类别和位置。

large separable convolution如下图所示:separable convolution可分离卷积说白了就是在inception v3模型提出的k ×k卷积分离成 k×1和1 ×k。计算复杂度可以通过 C_mid 和 C_out 进一步进行控制。k较大,感受野大。

 

实验结果:

 

 

总体上看,主要是对PSROI Pooling层的输出feature map做通道上的缩减,提高了速度;同时去掉了原来R-FCN或Faster RCNN中最后的global average pooling层,一定程度上提升了准确率。再加上其他一些操作比如pooling with alignment、NMS、multiscale train、OHEM等进一步提升效果。两种不同的主网络,要精度有精度,要速度有速度,可以根据需要灵活选择。

参考:https://blog.csdn.net/u014380165/article/details/78651060

https://www.zhihu.com/question/68483928

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值