笔记链接:Fast-RCNN总结
链接末尾含原论文附件!
以下是笔记内容,推荐使用链接阅读
07.Fast-RCNN
📄论文题目
Fast Rcnn
👨💻作者
Ross Girshick:以开发R-CNN(基于区域的卷积神经网络)方法来检测对象而闻名。2017年,Ross还凭借《Mask R-CNN》与何恺明齐获在ICCV获得马尔奖。
❓四个问题
❔要解决什么问题?
基于RCNN体现的问题进行改进。
RCNN的问题:
多阶段训练模式:首先使用log losss对Convnet进行微调,然后使用SVMs对Convnet特征进行匹配,最后学习BBoxing回归变量。
训练的时间和空间成本高:训练VOC02007D的5000张图片要2.5个GPU-天,并且需要数百G的存储空间。
检测物体缓慢:使用VGG骨干网络下,检测每张图片要将近47s。
❔使用什么方法解决问题?
❔实际效果如何?
❔还存在什么问题?
✨论文概述
🔸1.Abstract
Fast-rcnn(Vgg-16)能够更有效的对建议区域进行分类,训练速度是RCNN的9倍并且检测速度是RCNN的213倍;训练速度是SPPnet的3倍,检测速度是SPPnet的10倍。
🔹2.Introduction
要实现检测的精准定位,主要是两个挑战:
需要大量处理候选区域中对象的位置。
候选区域只是大致的进行定位,必须经过改进才能精确定位对象。
为此,本文基于ConvNet提出了一种单步训练算法,主要是联合学习对目标区域提案进行分类和精确其空间位置问题。
2.1 R-CNN and SPPnet
RCNN计算缓慢,主要是因为没有共享计算;而SPPnet将整个图像输入图像进行卷积特征映射,然后从共享特征映射中提取的特征向量对每个目标区域进行分类。
RCNN的问题:
多阶段训练模式:首先使用log losss对Convnet进行微调,然后使用SVMs对Convnet特征进行匹配,最后学习BBoxing回归变量。
训练的时间和空间成本高:训练VOC02007D的5000张图片要2.5个GPU-天,并且需要数百G的存储空间。
检测物体缓慢:使用VGG骨干网络下,检测每张图片要将近47s。
SPPnet的问题:
多阶段训练模式:特征提取,通过log loss微调网络结构,SVMS训练以及bboxing回归。
限制了深层网络的精度:SPPnet提出的微调算法不能更新空间金字塔之前的卷积层。
2.2 Contributions
Fast-RCNN优势:
1.比R-CNN、SPPnet具有更高的检测质量(MAP)
2.训练是单级的,使用多任务损失
3.训练可以更新所有网络层
4.特征缓存不需要磁盘存储
🔸3.Fast-RCNN architecture和training
整体结构:
卷积层加上Max Pooling处理整个图像
对每个候选区域,ROI pooling 层从特征图中提取固定的特征向量,并将每个特征向量输入到全连接层中
输入两个输出层“Softmax和BBox regressor中,Softmax包含K个类别加上背景类别,BBox regressor 中包含4个值精确边界框的位置。
3.1 The ROI pooling layer
ROI pooling 将ROI区域转换为固定空间大小的特征图(H * W),每个ROI有四个参数:(r,c,h,w),其中r和c为左上角的坐标,w和h为ROI的宽和高。
工作原理:将h×w ROI窗口划分为大约大小为h/H×w/W的子窗口的H×W网格,然后将每个子窗口进行Max-pooling输出到相应的网格单元中。与标准的最大池化一样,池化独立应用于每个特征图通道。
3.2 Initializing from pre-trained networks
三个预先训练好的ImageNet[4]网络进行实验,每个网络有五个最大池化层和五到十三个卷积层。当一个预先训练好的网络初始化一个 Fast R-CNN网络时,它经历了三次转换:
过将H和W设置为与网络的第一全连接层兼容(例如,对于VGG16,H=W=7)来配置ROI池化层,来替换最后的最大池化层.
网络的最后一个完全连接层和Softmax(经过1000路ImageNet分类培训)被替换为前面描述的两个兄弟层(K+1类别上的完全连接层和Softmax和类别特定的边界框回归变量)。
网络被修改为接受两个数据输入:图像列表和这些图像中的ROI列表。
3.3 Fine-tuning for detection
反向传播训练所有网络的权值是Fast R-CNN的一项重要功能。通过SPP层的反向传播是非常低效的,因为每个ROI通常跨越整个输入图像非常大的接受场。由于前向传播必须处理整个接受场,因此训练输入很大(通常是整个图像)。
在Fast-RCNN训练中,随机梯度下降(SGD)小批量被分层采样,首先采样N幅图像,然后从每幅图像中采样R/N感兴趣区。来自同一图像的感兴趣区域在正向和反向传递中共享计算和内存。将N设为较小会减少小批量计算。例如,当使用N=2和R=128时,所提出的训练方案比从128个不同图像中采样一个ROI(即,R-CNN和SPPnet策略)的速度大约快64倍。
Fast RCNN的简化训练过程:联合优化Softmax分类器和边界盒回归变量,而不是在三个单独的阶段训练Softmax分类器、支持向量机和回归变量。
Multi-task loss
Mini-bacth sampling
每个SGD小批次都是由N=2个图像构建的,这些图像是随机均匀选择的(通常,我们实际上迭代数据集的排列)。我们使用大小为R=128的小批次,从每幅图像中抽样64个ROI(IOU>0.5)。
Back-propagation through Roi Pooling layers
SGD hyper-parameters
零均值高斯分布,标准差分别为0.01和0.001。偏置被初始化为0。所有层使用权重的每层学习率1和偏差的学习率2,全局学习率为0.001。
3.4 Scale invariance
两种尺度不变目标检测方法:
”蛮力“ 学习:在训练和测试过程中,每个图像都以预定义的像素大小进行处理。网络必须直接从训练数据中学习尺度不变的目标检测。
利用图像金字塔:多尺度方法通过图像金字塔向网络提供近似的尺度不变性。在测试时,图像金字塔被用来对每个对象方案进行近似尺度归一化。
🔹4.Fast RCNN 检测
Fast RCnn网络将图像(或图像金字塔,编码为图像列表)和R个对象提案列表作为输入进行评分。
Truncated SVD for faster detection
对于检测,要处理的ROI的数量很大,并且近一半的前向传递时间花费在计算完全连通的层上。通过截断奇异值分解(SVD)压缩大全连接层可以很容易地加速它们
🔶5.Main results
三个方面佐证Fast RCNN:
VOC07、2010和2012上表现优秀的mAP
与R-CNN、SPPnet相比,训练和测试速度更快
VGG16中微调COV图层改进了mAP
通过ROI汇聚层进行训练对于非常深的网络是重要的。
🔷6.Design evaluation
Multi-task training:
Scale invariance:
more training data:
SVMs and softmax:
more Proposals:
CoCo results:
🔶7.Conclusion
👀补充
附录