R-FCN论文阅读笔记

R-FCN 论文阅读笔记

目录

1.Motivation

多角度理解

  • 从平移不变与可变性方面的理解:作者分析了图片分类任务中需要CNN平移不变性 与 对象检测任务中需要的平移可变性的困境;作者也认为越深的网络,对于位置预测越不敏感(因为CNN的平移不变性导致的),而ROI的设计是region-specific操作,破坏了这种平移不变性,使其对位置预测有效。本文提出一个位置敏感得分map技术,将类别和位置信息融入到ROI Pooling中。
  • 从计算消耗方面的理解:原始的Faster RCNN在RPN后附加一个网络用于ROI-wise(region-wise)的对象检测,这个附加的网络Batch大小是ROI数目,这样由于没有共享每个ROI的计算,从而导致的Faster RCNN的速度低,因而R-FCN意在解决这个问题。
  • 主要思想:受启发于FCN,进行像素级的识别,利用群众投票的方式,对ROI Pooling后的fmaps直接获取类别和位置,相当于使得类别和位置信息的获取是cost-free,且也相当于共享了两个任务的conv层。
    共享层数目对比

2. How to do it?

个人感觉:本文提出的位置敏感得分map,相当于对RPN的输出做了改进,使其能直接获取隐含对象位置信息。

R-FCN实例
FasterRCNN-R-FCN
- Faster RCNN vs. R-FCN : 注意看stage5的位置,R-FCN将RPN输出的ROI作用到stage5后的fmaps上,获取类别和位置预测,这样两个任务共享所有的conv层;而Faster RCNN则将RPN的ROI作用到stage4后的fmaps上,然后在用stage5对ROIPooling后的fmaps进行类别和位置预测。
- 另外需要注意,R-FCN从最后一个conv层的输出上使用ROIPooling,直接获得类别或位置的得分(vote方式获取),所以没有是cost-free的。
- 还要注意,R-FCN的ROIPooling与Faster RCNN的ROIPooling操作的不同。

3. See how it works.

R-FCN展示
上图实例给出了R-FCN预测过程的实例展示。

4. What did I learn from it?

  • 收获1:本文提出了conv层的平移不变性与位置检测需要的平移可变性之间矛盾问题,并以此问题出发来设计本文的工作;这个矛盾问题这的深思。
  • 收获2:本文将fmaps设计成score map,将位置信息或类别信息,隐藏到fmaps中,这样的想法很值得学习,值得深思。

参考文献

1https://www.cnblogs.com/lillylin/p/6277094.html
[2]:http://papers.nips.cc/paper/6465-r-fcn-object-detection-via-region-based-fully-convolutional-networks.pdf


### 关于 R-FCN 的相关论文 R-FCN(Region-based Fully Convolutional Network)是一种用于目标检测的深度学习框架,最初在 NIPS 2016 上被描述并发布了一篇重要论文[^1]。这篇论文由 Jifeng Dai、Yi Li、Kaiming He 和 Jian Sun 联合撰写,隶属于微软亚洲研究院视觉计算组[^2]。 #### 论文基本信息 - **标题**: R-FCN: Object Detection via Region-based Fully Convolutional Networks - **作者**: Jifeng Dai, Yi Li, Kaiming He, Jian Sun - **发表会议**: NIPS 2016 该论文提出了基于区域的目标检测新方法——R-FCN,通过完全卷积网络实现高效的目标检测任务。相比传统的 Faster R-CNN 方法,R-FCN 更加注重模型的速度和效率优化,在保持高精度的同时显著降低了推理时间[^5]。 #### 主要贡献 R-FCN 的核心创新在于引入了位置敏感得分图的概念,并利用这些得分图完成最终的分类与回归任务。具体来说,R-FCN 使用了一个全卷积结构来生成固定大小的空间特征映射,随后通过对感兴趣区域(RoI)执行桶平均池化操作,从而获得更精确的位置感知信息。 如果希望深入研究这一主题,可以访问原始论文链接或者查阅 GitHub 社区中的开源项目资源。例如,在实际应用过程中可能会遇到一些技术难题,比如训练 end2end_OHEM 版本时 loss_bbox 始终为零的情况,这通常可以通过调整 numpy 库版本等方式加以解决[^3]。 ```python import numpy as np # 示例代码展示如何验证 NumPy 是否存在问题 def check_numpy_version(): version = np.__version__ if tuple(map(int, version.split('.'))) < (1, 10, 4): raise ImportError("Your NumPy version is too old. Please upgrade to at least v1.10.4.") check_numpy_version() print(f"Numpy Version Checked: {np.__version__}") ``` 上述脚本可以帮助开发者确认当前环境中使用的 NumPy 版本是否满足最低需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值