R-FCN: Object Detection via Region-based Fully Convolutional Networks

作者:JiFeng Dai,Yi Li, Kaiming He, Jian Sun

短评:该论文中提出并计算了位置敏感得分,不仅可以充分利用物体的局部信息来估计整体,而且可以指导反馈过程做出修整。处理单张图片的效率惊人呀。受博主知识上界限制,文中理解不充分之处在所难免,恭请批评指教。


摘要直译:为了提高物体识别的精确度和效率,我们展示了基于区域的全卷机网络。相比于之前的基于区域的检测器,比如Fast / Faster R-CNN,对每个区域子网络应用几百次,我们的基于区域的检测器是全卷积的且几乎所有的计算都在整个图像上共享。为了实现这个目的,我们提出了位置敏感得分图(position-sensitive score maps)来解决这样的两难困境,即分类上的平移不变形和物体检测上的平移变性。我们的方法很自然的采用了全卷机图像分类骨干,比如最新的残差网络(Residual Networks, ResNet)用来物体检测。在PASCAL VOC 数据集上,采用101-层的ResNet主干网,我们展示了充满竞争力的结果,比如,在2007数据集上,83.6%的mAP。同时我们的结果也达到了在测试速度中每张图片170ms的效果,2.5-20倍于Faster R-CNN。源码已经公开,地址为 https://github.com/daijifeng001/r-fcn.


核心分析:该论文非常重要的概念是位置敏感得分图(position-sensitive score maps),通过下图来直观感受下:

在上图中的由R-FCN学习到的位置敏感得分图,其中k×k = 3×3。在图像中某个物体的相对位置上,我们期望这些图能够产生被强烈的激活,比如,在Figure 3中,位置敏感RoI池化图中的“上中敏感得分”显示了很高的得分(近乎白色),即近乎接近对应物体的上中位置。如果一个候选box精准的覆盖了一个物体,那么RoI对应的k²个box中大部分box都会被激活,然后他们投票得到一个很高的得分。反之,如果候选框并没有正确的覆盖一个物体,那么RoI对应的k²个box中很多不会被激活,也就意味着投票得分很低,比如Figure 4中9个box中有5个得分偏低(颜色较暗),那么投票结果就是no。

接着看下一个图:

在这个框架图中,注意到前面的位置敏感RoI池化对应于该图中的池化过程(ps 因为刚开始对这个池化很迷惑,所以就先介绍了)。在这个框架图中,可以看到从feature maps过来有k²(C+1)个通道的位置敏感得分图,其中k²对应于池化后的位置敏感RoI池化图的大小,不一定是3×3的大小;(C+1)对应于C个物体类别和1个背景。对于每个RPN提出的RoI,RoI会映射到特征图上,并将RoI分割成k×k个box,每个box上计算一个得分,之后计算每个类别对应的所有通道上的位置得分图的位置敏感RoI池化图,计算公式如下:

rc(i,j∣θ)=∑(x,y)∈bin(i,j)zi,j,c(x+x0,y+y0∣θ)/nr_c(i, j | \theta) = \sum_{(x,y)\in bin(i,j)} z_{i,j,c}(x+x_0, y+y_0 | \theta) / nrc​(i,j∣θ)=(x,y)∈bin(i,j)∑​zi,j,c​(x+x0​,y+y0​∣θ)/n

其中 rc(i,j)r_c(i,j)rc​(i,j) 是在c−thc-thc−th类别的(i,j)−th(i,j)-th(i,j)−th块上的池化响应;zi,j,cz_{i,j,c}zi,j,c​是k2(C+1)k^2(C+1)k2(C+1)个得分图中的一个,通道的计算是i∗j∗ci*j*ci∗j∗c,iii对应池化图上的横坐标,jjj对应池化图上的纵坐标;nnn是(i,j)−th(i,j)-th(i,j)−th块上的像素个数,θ\thetaθ表示网络中所有可学习的参数。(i,j)−th(i,j)-th(i,j)−th块展开就是⌊iwk⌋≤x≤⌈(i+1)wk⌉\lfloor i \frac{w}{k} \rfloor \le x \le \lceil (i+1) \frac{w}{k} \rceil⌊ikw​⌋≤x≤⌈(i+1)kw​⌉ , ⌊jhk⌋≤y≤⌈(j+1)hk⌉\lfloor j \frac{h}{k} \rfloor \le y \le \lceil (j+1) \frac{h}{k} \rceil⌊jkh​⌋≤y≤⌈(j+1)kh​⌉。以上公式,可以结合着上图来看,会有更深刻的体会。那么有了每个RoI的位置敏感RoI得分图,就可以投票了,在该论文中投票是计算平均分的方式,采取以下公式:
rc(θ)=∑i,jrc(i,j∣θ)r_c(\theta) = \sum_{i,j} r_c(i, j|\theta)rc​(θ)=i,j∑​rc​(i,j∣θ)

得到该RoI对应的投票结果之后,就可以利用这个投票结果来进行分类了,该论文中用的是常规的softmax响应,即sc(θ)=erc(θ)/∑c′=0Cerc′(θ)s_c(\theta) = e^{r_c(\theta) / \sum_{c^{'} =0} ^{C}} e^{r_c^{'}(\theta)}sc​(θ)=erc​(θ)/∑c′=0C​erc′​(θ)。这个计算结果可以用在训练阶段的计算交叉熵,和推理阶段对RoI类间排名上。

至此,应该说核心的东西都讲完了。下面是论文中实验设置的相关说明。

骨干网框架:该论文中选用是 ResNet-101。 ResNet-101有100个卷积层,之后是GAP(global average pooling),再接着是1000个类的全连接层。在该论文中,作者们去掉了后面的GAP和FC层,这样ResNet-101的输出就是2048维,因此接上1024维的1×1的卷积层用来降低维数(当然也就增加一层的深度),最后,接上k2(C+1)k^2(C+1)k2(C+1)维的卷积层。last but no least, 这个ResNet-101在ImageNet上预训练过。

训练阶段:损失函数定义在每个RoI上,是交叉熵和损失和box回归损失:L(s,tx,y,w,h)=Lcls(sc∗)+λ[c∗>0]Lreg(t,t∗)L(s, t_{x, y, w, h}) = L_{cls}(s_{c^{*}}) + \lambda[c^{*} >0]L_{reg}(t, t^{*})L(s,tx,y,w,h​)=Lcls​(sc∗​)+λ[c∗>0]Lreg​(t,t∗)。其中c∗c^{*}c∗是RoI的GT标签(c∗=0c^{*} =0c∗=0表示背景)。λ=1\lambda=1λ=1。正样例IoU≥0.5IoU \ge 0.5IoU≥0.5。权重衰减为0.00050.00050.0005,动量为0.90.90.9,默认设置下,图片缩放到600600600。每个图片上,选择排名前B=128B=128B=128的RoIs用于BP。在VOC数据集上fine-tune R-FCN,前20k个mini-batches学习率设置为0.001,接着10k个mini-batches学习率设置为0.0001。为了是R-FCN与RPN共享特征,该论文采用了4-step交换训练[1],交换训练RPN和R-RCN。

推理阶段:RPN用来推荐RoIs, R-FCN部分估计RoIs的类别得分和回归方框位置。该阶段中取得分前B=300B=300B=300的RoIs。之后用NMS做后处理,IoU阈值为0.30.30.3。

A trous and stride: 该论文的全卷机框架受益于[2,3]语义分割中的网络修整。该论文中,作者们把Res-101的有效步长从32减少到16,以增加得分图的像素。其中conv4前的所有层都没有改变,在conv5 块将步长从2减小为1,且所有的卷积核都用“hole algorithm”修整过,以弥补步长的减小。

实验结果: 该proposal非常的快,在保持精度不下降的情况下,单张图片只需要0.17秒。

此外,另一点是RoI输出尺寸的大小影响结果,设置为1×11\times11×1时,并不能收敛。


参考文献
[1] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object with region proposal networks. In NIPS, 2015.
[2] J.Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015.
[3] L.-C. Chen, G. Papandreou, I.Kokkinos, K.Murphy, and A.L. Yuille. Semantic image segmentation with deep convolutional nets and fully connected crfs. In ICLR, 2015.


后记:本博客作为博主读论文系列。

Artical Analysis (AA): R-FCN: Object Detection via Region-based Fully Convolutional Networks相关推荐

  1. FCN的学习及理解(Fully Convolutional Networks for Semantic Segmentation)

    大多数人接触"语义"都是在和文字相关的领域,或语音识别,期望机器能够识别你发出去的消息或简短的语音,然后给予你适当的反馈和回复.嗯,看到这里你应该已经猜到了,图像领域也是存在&qu ...

  2. 彻底讲透FCN语义分割开山之作Fully Convolutional Networks

    FCN论文标题:Fully Convolutional Networks for Semantic Segmentation​ 论文下载地址:https://arxiv.org/abs/1411.40 ...

  3. 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation

    论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...

  4. (FCN)-Fully Convolutional Networks for Semantic Segmentation

    文章目录 Fully Convolutional Networks for Semantic Segmentation 摘要 全局信息和局部信息 感受野 FCN算法架构 训练技巧 详细参考 Fully ...

  5. 【FCN】Fully Convolutional Networks for Semantic Segmentation学习

    论文翻译 又是一个看不懂原文,又看不懂翻译的论文. semantic segmentation 图像语义分割 就是预测每个像素所属的对象类别 语义分割是指像素级地识别图像,即标注出图像中每个像素所属的 ...

  6. 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》

    深度学习论文阅读目标检测篇(三):Faster R-CNN< Towards Real-Time Object Detection with Region Proposal Networks&g ...

  7. 目标检测经典论文——Faster R-CNN论文翻译:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Net

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Faster R-CNN:通过Region ...

  8. 目标检测经典论文——R-FCN论文翻译(中英文对照版):Object Detection via Region-based Fully Convolutional Networks

    目标检测经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为纯中文版,中英文对照版请稳步:[R-FCN纯中文版] R-FCN: Object Detection via Regio ...

  9. READING NOTE: R-FCN: Object Detection via Region-based Fully Convolutional Networks

    转载自: http://blog.csdn.net/joshua_1988/article/details/51484412 TITLE: R-FCN: Object Detection via Re ...

最新文章

  1. jQuery Mobile 快速入门
  2. 三十七、深入Python中的网络通信
  3. android服务下载,android服务之bindService和unService中下载任务中的应用
  4. 两层卷积网络实现手写字母的识别(基于tensorflow)
  5. PyQt4开发环境搭建指导
  6. c语言设计程序注释说明位于,C语言程序设计试题及答案A
  7. sqlserver自定义函数
  8. Linux栈溢出漏洞原理,盘它!PWN栈溢出漏洞。
  9. 【原创】在Windows 环境下利用SVN和Apache以及Ankh配置源代码管理服务
  10. 苏州计算机应用能力中级办公自动化,苏州市计算机应用能力考核(中级-办公自动化)新系统使用..doc_人人文库网...
  11. 从零开发微信公众号(PC)
  12. ROS操作系统入门学习
  13. 【七夕】是时候展现专属于程序员的“浪漫”了
  14. MySQL大略学习(二) 表格的操作 增删查改
  15. 怎么下载高清无水印的视频号作品?视频号下载要用什么工具?1分钟解决微信视频号下载
  16. pat 乙级 1072. 开学寄语(20)
  17. Mysql 新增分区,删除分区,合并分区
  18. 大厂面试必备之消息队列连环问
  19. 【ArnoldC4D】6.ArnoldToC4D_光泽和反射光线深度(glossy_and_reflection)
  20. 这三种人不适合“裸辞”!

热门文章

  1. 微信和QQ的区别,也张小龙跟普通人的区别
  2. 量子计算大牛、ACM计算奖得主Scott Aaronson加盟OpenAI
  3. Web 渗透题(三)
  4. 股市小白能打败短线高手吗?
  5. pf使用率-究竟是个什么东东?
  6. linux derby path,试用开源数据库ApacheDerby
  7. java derby 网络模式_Derby 使用的2种方式:内嵌和独立
  8. python爬取去哪里_Python爬取去哪儿网热门旅游信息
  9. “人工智能”吓人的外衣之下
  10. 多种胚胎干细胞标志物抗体结果图展示