Fast-RCNN

论文:ICCV 2015 Open Access Repository (thecvf.com)

image-20220105165859553

论文概述

Fast-RCNN是将RCNN与SPPNet相融合提出的一种新的网络。

RoI层

image-20220105165859553

Fast-RCNN设计了一个RoI层用来对整张图像进行特征提取,再根据候选区域在原图中的位置挑选特征。

SPPNet提出了Spatial pyramid pooling技术可以将一张图像中卷积所得的不同尺寸的ROI映射为固定范围(H×W)的特征图,其中H、W是超参数。每个RoI都是由一个矩形窗口转化为一个卷积特征图。RoI有一个四元组(r,c,h,w)定义(r,c指定左上角坐标;h、w定义其高度和宽度)。

RoI max pooling工作原理:将h×w的RoI窗口分割为一个H×W网格,每个网格窗口大小为(h/H)×(w/W),每个子窗口值最大池化到相应的输出网格单元中。

预训练网络

预训练网络转换为Fast-RCNN网络经过三个转变

  1. 最后被最大的池化层被RoI层替代,通过设置H、W与网络的第一个全连接层兼容
  2. 网络最后的全连接层和softmax被一个全连接层超过K+1类别的softmax和一个特定类别的限定框回归器所代替
  3. 该网络接受两个数据输入:一个图像列表和这些图像中的RoI列表

微调检测

在Fast-RCNN网络中,反向传播训练参数是一项重要的功能。(它客服了SPPNet不能更新空间金字塔层以下权值的问题)。由于SPPNet网络的每个训练样本(RoI)来自不同的图像时,SPP层的反向传播是非常低效的。

作者提出了一种更加有效的训练方法,利用了训练过程中的特征共享。即对随机梯度下降进行小批量的分级采样。首先对N幅图像进行采样,然后对每幅图像进行R/N个RoI采样。重要的是,对于来自相同图像的RoI在向前和向后传递时共享计算和内存。不过这种训练方法存在训练收敛较慢的问题。(N=2,R=128时效果最好)

同时,在分层采样中,作者的一个精细调整阶段联合优化softmax分类器和边界框回归器,而不是用三个独立的阶段寻训练softmax分类器、支持向量机、回归器。

多任务损失

$$
L(p,u,t^u,v)=L_{cls}(p,u)+\lambda[u\ge 1]L_{loc}(t^u,v)
$$

最小批次采样

实验中,作者使用最小batch为128,对每张图像采样64个RoI。接着从这些proposals中获取区IoU大于等于的0.5的RoI(这些RoI中包含对象标记,u大于等于1),剩余的RoI从IoU处于[0.1~0.5]的RoI中选取。再将IoU小于0.1的当作背景例子,标记u=0.

这里也可以将IoU小于0.1的样本作为hard样本进行训练;训练过程中,图像以0.5的概率翻转,除此没有别的数据增强。

通过RoI池层的反向传播

SGD超参数

用于softmax分类和边界框回归的全连接层使用标准偏差为0.01和0.001的零均值高斯分布初始化zero-mean Gaussian distributions。所有层的加权学习率为1,偏差学习率为2,整体学习率为0.001

尺度不变性

作者探索了两种不同的尺度不变目标检测的实现,一是暴力计算,二是使用图像金字塔

  1. 暴力计算:在训练和测试中,每幅图像都按照预先定义的像素大小进行处理
  2. 图像金字塔:在测试过程中,使用图像金字塔对每个目标建议进行近似尺度归一化,作为数据增强的一种。
image-20220105165859553

作者通过实验发现,卷积网络擅长直接学习尺度不变,并且多尺度方法耗费了大量的时间成本只将mAP提升了很小一部分

目标检测过程

Fast-RCNN网络一旦完成微调,检测过程相当于运行一个前向传递(假设proposal已经提提前算好)。网络将一个图像和一个R对象列表(通常为2k左右)作为输入进行评分。当使用图像金字塔后,每个RoI接近224×224个像素

对于每个RoI r,前向传递输出一个类别的后验概率分布p与一组相对于r 的预测边界框位置偏移。然后使用RCNN算法对每个类单独执行非极大值抑制。

截断SVD

对于整张图像的分类,全连接层的计算时间要比卷积层处理的时间更少。但是,对于检测来说,由于需要处理的RoI数量很大,几乎一半的前向传递时间都花费在计算全连接层上。因此,作者使用truncated SVD技术来加速全连接层的计算。truncated SVD可以减少30%的探测时间,而只减少0.3%的mAP,并且无需在模型压缩后执行额外的微调。在深层的网络中,对RoI池化层的训练是非常有必要的。

同时,作者提到在深度较浅的网络中,conv1是处理一般性的与任务独立的。因此对conv1训练的意义不大。对卷积层的更新会增加训练时间,并且导致GPU内存溢出的问题,而带来的mAP提升很少。

哎呀,图片不见了

SVD原理可参考奇异值分解(SVD)原理与在降维中的应用 - 刘建平Pinard - 博客园 (cnblogs.com)

更多的训练数据有利于提升mAP

作者将VOC07加入VOC12后,mAP由66.9%提升到70.0%。

作者构建了有VOC07的训练集与测试集与VOC12的训练集组成的图像数据集,发现mAP也得到了提升。

softmax相比于SVM的优势

哎呀,图片不见了

实验表明softmax在S、L、M三种网络中性能均优于SVM。尽管性能提升不大,但是“one-shot”微调已经足够了。不同于一对一的SVM,softmax在评估RoI时还引入了类别间的竞争。

proposals数量对结果的影响

哎呀,图片不见了

作者使用了两种目标检测方法。一是稀疏集proposal(如selective search );二是稠密集proposal(如DPM)。

对稀疏peoposal进行分类是一种级联,会先拒绝大量候选区域,只留一小部分给分类器评估。而应用DPM检测时,级联提高了检测精度。

实验表明,随着proposal数量增加,mAP会先上升再下降。所以过多的proposal对分类器并没有帮助。

作者在文章中还介绍了一种测量对象proposal质量的技术:平均召回AR。当每幅图像使用固定数量的proposal时AR与mAP有良好的相关性。但是在图像proposal数量不同时,由于更多proposal而提高的AR,并不意味着mAP会提高。但是在M网络中训练与测试只需要2.5小时,这使得fast-rcnn能够高效、直接评估对象proposal的mAP。

做出的贡献

  1. 比RCNN与SPPNet更高的探测质量mAP
  2. 训练是单阶段的,使用了multi-task loss
  3. 训练时可以对网络中的所有层都进行更新
  4. 特征缓存时不需要磁盘空间,Fast-RCNN网络将特征提取器、分类器、回归器合并,使得训练过程不需要再将每阶段结果保存磁盘单独训练,可以一次性完成训练,加快了训练速度
谢谢你请我吃糖果
0%