r-fcn论文
来源:互联网 发布:mac翻墙工具 编辑:程序博客网 时间:2024/09/21 09:26
这是一篇基于全卷积网络的目标识别,baseline是用resnet。当然不是使用resnet+faster rcnn那么简单。
问题来源:
translation invariance 和translation variance
卷积网络最初兴起于分类任务,当然效果是越来越好,而一般的目标识别的网络也是通过分类的网络提取特征(zf,vgg,res等等),再加上一系列的操作(roi,bounding box等)。但是在分类任务中最重要的是提取图片中目标的特征,使得即使在测试图片中,目标发生平移,小角度的旋转等变换时,都不会影响正确的分类。这也就是说分类的网络学习到的特征是translation invariance。
但是在识别任务中,网络最终要的任务是定位物体所在的位置,很显然使用分类的网络得到的转化不变性与识别任务的初衷相悖。
话句话说,卷积越深,特征图中的位置信息就越少(fcn中skip net也就是解决这个问题)。于是迫切需要能带有位置信息的卷积特征图。
解决1:在resnet 中,将roi pooling插入在卷积层中。(也就是早点把roi区域提取出来,这样不就保存的位置信息么)但是这导致了在右面处理每个roi子网络(不共享计算)计算量过大。
解决2:position sensitive score map和position sensitive roi pooling,也就是本文作者所提出的结构。
从前往后看,输入image,经过共享的卷积层,分为rpn网络和rfcn,rpn网络用于生成目标建议框。rfcn网络用于生成与位置有关的特征图。特征图大小为k x k x (c+1)。k取决于将roi分为多少乘多少的网格,然后将roi目标区域池化,得到每个roi 的score,再通过vote生成c+1维向量,最后计算softmax。
从后往前看,得到的roi score是一个k x k x (c+1)的一个特征图,其中k是将roi区域分为k x k的bin网格,这样也就产生了上左,上中,上右等等区域。c是分类的数目,c+1就是再加上背景的一类。每个网格bin具体是怎样计算的呢?
注意图中map的不同颜色,每一个bin的池化数据都是来自于score maps中相同颜色的map(这也就是为什么采用选择性池化),这非常有意思。这样也就迫使score maps中的层带有些许位置信息。以前我以为卷积只是从图像中提取信息,看作一个图像特征的自动提取器,可以通过反向传播特提到不同的特征。但是在该论文中通过反向传播,调整卷积所学习到的特征位置信息,impressive。
那这样做的意义在于什么呢,所学习到的位置信息又是怎样的呢?
在下图中,小baby位于图像的正中,后的9个特征图是上图中score maps的可视化(选择正确的类别)。虽然都是从原始图片的feature map,但是在不同位置有不同的响应(白色区域分布位置不同),恰巧都对应于bin所在的位置。可以脑补,经过池化,roi score肯定很高。
下面是一张没对齐的例子。很显然roi score不高。
总结:
本文最重要的是解决了卷积中位置信息丢失的问题。作者通过设计一个子网络(最主要的还是如何评价学习到特征,再通过反向传播调整特征)保存了物体的位置信息。
这也就解释为何分类学习到的特征丢失了location信息,从loss函数来看,你压根就没有想让它学习location信息。所以loss函数评分可以规范卷积学习的特征,并不仅仅是特征种类,和可以是特征位置,现在看来对卷积网络的理解还是不够深刻。
- r-fcn论文
- R-FCN论文翻译
- R-FCN 论文理解2
- 论文翻译 基于R-FCN的物体检测
- 论文翻译: 基于R-FCN的物体检测
- 2017-02-27-深度学习论文笔记:R-FCN
- r-fcn
- R-FCN
- R-FCN
- R-FCN
- R-FCN
- 【深度学习论文】FCN
- fcn语义分割 论文
- [论文阅读]R-FCN: Object Detection via Region-based Fully Convolutional Networks
- 论文笔记 | R-FCN: Object Detection via Region-based Fully Convolutional Networks
- (论文+代码)R-FCN:基于区域的全卷积神经网络进行物体检测
- R-FCN:基于区域的全卷积网络来检测物体 论文解读
- [论文阅读]R-FCN: Object Detection via Region-based Fully Convolutional Networks
- BeanFactory 与 FactoryBean的区别
- Husky分布式系统使用向导
- redis3.2.6 集群安装
- 基于java GUI编写的身份证查询小工具
- Angular开发(二十五)-angular自带动画效果
- r-fcn论文
- mysql 数据库导出表数据到Excel 以及Excel 科学计数法显示完整数据
- 日记(不定期更新)
- JSP获得JS中变量的值(隐藏表单)
- Could not publish to the server. java.lang.NullPointerException
- 4412烧写Android后启动界面总停在android logo,为什么
- 怎么把汉字转换成URL编码
- 一起学习C++中的面向对象编程-第14章
- 安装Adobe Reader出错回滚