论文笔记《Fast RCNN》
来源:互联网 发布:xbox手柄mac驱动下载 编辑:程序博客网 时间:2024/06/07 01:31
Fast RCNN是加强版的SPPnet,SPPnet的细节可以参考这里,Fast RCNN相比于RCNN在时间和性能上都做了改进。它避免对一幅图片的多个proposal分别计算CNN特征(大量的重复计算),而是对整幅图提取CNN特征之后,再划分对应proposal,从而加提高了检测效率;同时对RCNN的pipeline方法做了一定整合,提升了检测性能。
1 论文信息
发表会议:ICCV2015
代码
2 Motivation
SPPnet基于RCNN做改进,它主要有2个亮点:
原图不用resize到统一大小,可直接输入网络,避免失真。因为CNN限制输入的size主要是因为全连接层的结点数是固定的,卷积层是无所谓的,所以在SPPnet中,对最后一个卷积层的结果做固定尺度(如1×1, 2×2, 4×4)的spatial pooling,使得全连接层结点数固定。
不用对原图的多个互相重叠的proposal各自计算CNN特征,只需对原图计算CNN特征,然后将原图proposal的位置映射到特征图上即可。
Faster CNN借鉴了这两点,并且为了整合检测pipeline,将object classification和spatial location都整合到一个网络中,使得它们可以协同地训练。
3 Method
3.1 网络结构
3.2 主要步骤
- 经过多层的卷积和pooling得到一组feature map
- 通过SPP net中的ROI projection在这层feature map上找到原图的proposal对应的区域(ROI)
- 利用spatial pooling的思路,对每个ROI做pooling。具体来说就是把h×w的ROI划分为H×W个grid/sub-window,每个grid大小是h/H × w/W,在每个grid内取max。
- 把ROI pooling layer对每个ROI(对应回原图就是每个proposal)输出的H×W长的max pooling feature vector接全连接层
- 全连接层之后有两个输出层,一个softmax分类器,输出该ROI对应的proposal的object类别,一个是bounding box回归层,输出category specific bounding box
3.3 网络训练
3.3.1 用预训练的网络初始化
- 首先对于pretrained ImageNet CNN,把最后一个pooling layer改为ROI pooling layer,并且设置H和W使得spatial pooling feature的维度和全连接层第一层的结点数一致。
- 把网络的最后一个全连接层和softmax层换成两个输出层(object分类和bbox回归)。
3.3.2 finetune网络
- share computation
在RCNN中和SPPnet中,特征提取的CNN是直接使用pretrained model,检测误差用来训练后面的分类和bbox回归。因为Fast RCNN是对整张图计算CNN特征之后才划分proposal,通过这种共享,可以将误差回传到特征提取部分。
- loss function
object class有K类,对于每个ROI,p是一个K+1维概率值,是该ROI对应与原图的proposal的分类打分。u代表object class的ground truth,
其中
- batch sampling
网络训练时的batch size会对训练结果有一定影响,论文中经过多次实验确定参数。
- bp
重新定义了网络结构和网络训练的目标函数后,要重新推导BP,主要是ROI pooling layer的误差回传,实质上这里和max pooling是类似的,因为是grid内取max,所以需要找到grid内的max值的位置然后收集残差即可:
4 Summary
Fast RCNN通过ROI映射使得一幅图中的proposal共享卷积层,大大减少前向传播的运算量,使得检测速度更快。进一步整合RCNN中的特征提取和目标检测,联合训练网络,提高了检测性能。
- 论文笔记《Fast RCNN》
- A-Fast-RCNN 论文笔记
- A-Fast-RCNN 论文笔记
- fast-RCNN论文笔记(3)
- Fast Rcnn 论文总结
- fast-rcnn论文翻译
- fast rcnn论文
- 【深度学习论文】Fast-RCNN
- 论文阅读之Fast RCNN
- R-CNN,SSP-Net,fast-RCNN,faster-RCNN论文读后笔记
- R-CNN,SSP-Net,fast-RCNN,faster-RCNN论文读后笔记
- Fast RCNN学习笔记
- Fast-RCNN阅读笔记
- Fast RCNN学习笔记
- fast rcnn 笔记
- RCNN + SPP + FAST RCNN + FASTER RCNN+ YOLO 论文总结
- RCNN学习笔记(10):总结RCNN -> Fast-RCNN -> Faster-RCNN
- 读DL论文心得之Fast RCNN
- ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod
- 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
- B001-Atmega16-定时器1-(ques=1)
- Problem A: C语言习题 计算该日在本年中是第几天
- 无法解析的外部符号
- 论文笔记《Fast RCNN》
- MY_照相机相册代码
- 《剑指offer》:[46]求1+2+3+...+n
- Eclipse Java注释模板设置详解
- 深入理解Java:SimpleDateFormat安全的时间格式化
- Tomcat服务器常用配置和HTTP简介
- UIScale9Sprite九妹的引入 路径的正确撰写格式
- android 公共变量使用
- Vector earse的正确用法