深度学习之物体检测——Fast R-CNN(Ross Girshick)
2017-05-26 14:19
232 查看
Fast R-CNN是Ross Girshick对R-CNN进行改进的一篇文章,影响力也比较大。R-CNN的基本思想是用box proposal的特征映射作为其特征向量,然后进行分类与box精调。但是R-CNN需要对每个box proposal进行卷积操作得到box特征映射,这样大大降低了检测效率。Fast R-CNN在R-CNN基本思想不变的情况下,只对原图做一次卷次操作得打特征映射,然后把每个box投影到这个特征映射上去,得到box的特征映射。
本文会交替地使用“box proposal”和“RoI”(region of interest)。
现在给定图像上的一个box:(x1,y1,x2,y2),将其投影到特征映射中:
x∗1=spatial_scale∗x1y∗1=spatial_scale∗y1x∗2=spatial_scale∗x2y∗2=spatial_scale∗y2.
具体操作如下:假设box特征映射的大小为好h*w,那么将其划分成H*W个格子,每个格子的大小为hH∗wW,然后在每个格子内执行Max Pooling操作。RoI Pooling操作由于过滤器的大小是动态的,所以又称为动态池化操作。
RoI Pooling层除了令输出大小固定还有另外一个特点,即把batch大小由原来的图像数量变成了box数量。
目前Caffe中已经添加ROIPoolingLayer作为基本层,以特征映射和box proposals作为输入。PyTorch也增加了
本文会交替地使用“box proposal”和“RoI”(region of interest)。
网络
RoI投影到特征映射上
首先计算卷积网络的输入图像H1∗W1和特征映射H2∗W2的比spatial_scale=H2H1.现在给定图像上的一个box:(x1,y1,x2,y2),将其投影到特征映射中:
x∗1=spatial_scale∗x1y∗1=spatial_scale∗y1x∗2=spatial_scale∗x2y∗2=spatial_scale∗y2.
RoI Max Pooling
每个box的大小不同,投影到特征映射上大小必然不一样。而卷积操作后面就是全连接层,全连接要求输入的大小是固定的。作者巧妙地加了一层RoI Max Pooling层,将box特征映射池化为H*W大小(一般是6*6或者7*7)。具体操作如下:假设box特征映射的大小为好h*w,那么将其划分成H*W个格子,每个格子的大小为hH∗wW,然后在每个格子内执行Max Pooling操作。RoI Pooling操作由于过滤器的大小是动态的,所以又称为动态池化操作。
RoI Pooling层除了令输出大小固定还有另外一个特点,即把batch大小由原来的图像数量变成了box数量。
目前Caffe中已经添加ROIPoolingLayer作为基本层,以特征映射和box proposals作为输入。PyTorch也增加了
torch.nn.AdaptiveMaxPool2d(output_size, return_indices=False)层,以box feature map作为输入。在实现时,Caffe为了减少内存占用率,一张图片只保存一个特征映射,然后所有的box的RoI Pooling操作都是在这个特征映射上得到的,而不是说为每个box存储其特征映射投影再进行RoI Pooling。而PyTorch采用的是后者,所以内存占用率要高,而且这一层的简单化增加了开发者的其他操作。
损失函数
caffe中也新增了SmoothL1LossLayer层,用于计算本文提出的smooth L1。参考
[1]相关文章推荐
- 深度学习目标检测(object detection)系列(三) Fast R-CNN
- 深度学习(十八)基于R-CNN的物体检测-CVPR 2014-未完待续
- 深度学习 计算机视觉 物体检测 rcnn,fast rcnn,faster rcnn
- 深度学习之目标检测——基于R-CNN的物体检测
- 深度学习 ---基于R-CNN的物体检测
- 深度学习 基于R-CNN的物体检测
- 深度学习笔记之基于R-CNN的物体检测
- [caffe]深度学习之CNN检测object detection方法摘要介绍
- 【深度学习:目标检测】RCNN学习笔记(3):From RCNN to SPP-net
- 深度学习(主要是CNN)用于图片的分类和检测总结
- 深度学习实践经验:用Faster R-CNN训练Caltech数据集——训练检测
- 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014
- 【深度学习】研究Fast rcnn代码
- 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014
- 深度学习实践经验:用Faster R-CNN训练行人检测数据集Caltech——准备工作
- 深度学习目标检测:RCNN,Fast,Faster,YOLO,SSD比较
- 深度学习实践经验:用Faster R-CNN训练Caltech数据集——训练检测
- [深度学习论文笔记][Object Detection] Fast R-CNN
- R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列深度学习检测方法梳理
- 深度学习检测方法梳理:R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列