论文:Fast R-CNN
论文链接
优势
本文提出了一种基于快速区域的卷积网络方法(Fast R-CNN)用于物体检测。Fast R-CNN建立在先前的工作基础上,使用深度卷积网络有效地对目标区域进行分类。与之前的工作相比,Fast R-CNN采用了多项创新来提高训练和测试速度,同时提高了检测精度。 快速R-CNN训练非常深的VGG16网络比R-CNN快9倍,在测试时间快213倍,并在PASCAL VOC 2012上实现更高的mAP。与SPPnet相比,Fast R-CNN训练VGG16 3倍速更快 ,测试速度快10倍,并且更准确。
1、不再类似于R-CNN对每个region proposal进行卷积运算,region proposal之间有重叠,造成计算资源量费,Fast R-CNN是对一整张图片进行卷积运算。
2、用ROI pooling进行特征的尺寸变换,使得不同大小region proposal可得到相同大小feature map。
3、将regressor放进网络一起训练,每个类别对应一个regressor,同时用softmax代替原来的SVM分类器。
算法概述
训练过程
输入图片224*224,经过卷机网络得到feature map,进入ROI Pooling层,该层输入为卷积网络得到的feature map以及通过selective search得到的region proposal,region proposal的个数差不多2000。如图1所示,通过ROI Pooling层得到ROI feature,经过两个全连接层,输出为4096,而后分别经过两个并列关系的全联接层,左侧FC用于分类,右侧FC用于回归坐标。左侧FC输出为21,VOC数据集为20类以及背景类;右侧FC输出为84,表示,每个region proposal的4个坐标。最后为两个loss层,左侧为softmax loss,右侧为SmoothL1Loss。
测试过程
与训练基本相同,最后两个loss层要改成一个softmax层,输入是分类的score,输出概率。最后对每个类别采用NMS(non-maximun suppression)。
算法详解
输入:图片和对应的Region Proposal
ROI Pooling层:将大小不同的region proposal提取固定大小feature map。原理:h*w的region proposal分割成H*W个大小相同的网格,将region proposal映射到最后一个卷积层输出的feature map上,每个网格取最大值,得到大小为H*W的feature map。
训练中,每个mini-batch包含2张图像和128个region proposal(ROI),即每张图片包含64个ROI。然后从这些ROI中挑选约25%的ROI作为目标proposal,这些ROI和ground truth的IOU值为[0.5,1],其余为背景proposal,这些ROI和ground truth的IOU值为[0.1,0.5),另外只采用随机水平翻转的方式增加数据集。
测试的时候则每张图像大约2000个ROI。
损失函数:总loss由与构成,如图2所示。
式中,p表示预测score,p=(),u表示真是类别,表示预测的回归偏移,,v表示ground truth的值,。。
采用SVD改进全联接层:应用于ROI Pooling层之后的全联接层。权重矩阵W为u*v,U为u*t,V为v*t,SVD分解如下:
经过SVD,参数由u*v变为t*(u+v),只要t远小于min(u,v)即可简化全联接层计算。如图3所示。
实验结果
1、mAP得到提升。
2、训练与测试时间缩短。
3、multi-task训练有帮助。
S,M,L各模块有四列,分别如下所述:
第一列表示仅采用分类训练,测试也没有回归;
第二列采用论文中的分类加回归训练,但是测试时候没有回归;
第三列采用分段训练,测试时候有回归;
第四列采用论文中的分类加回归训练,且测试时候有回归。
由上表可知,每一列mAP都比第一列高。
4、单尺度与多尺度对比。
单尺度尺寸为600 pixels,多尺度为(480,576,688,864,1200)
由上表可知,多尺度虽然能在提升一点mAP,但是时间代价比较大。作者直接给出原因:深度卷积网络可以学习尺度不变性。这个待研究。
5、softmax VS SVM
由上表可知,softmax略微优于SVM,但相比于以前的多阶段训练方法,“一次性”微调就足够了。
6、更多proposal是否效果会更好?
由上图可知,随着proposal增加,mAP先升高后降低,过多的proposal会对模型产生轻微影响。
总结
Fast RCNN优点:将RCNN众多步骤整合在一起,不仅大大提高了检测速度,也提高了检测准确率。其中,对整张图像卷积而不是对每个region proposal卷积,ROI Pooling,分类和回归都放在网络一起训练的multi-task loss是算法的三个核心。另外还有SVD分解等是加速的小贡献,数据集的增加时mAP提高的小贡献。
Fast RCNN的主要缺点在于region proposal的提取使用selective search,目标检测时间大多消耗在这上面(提region proposal 2~3s,而提特征分类只需0.32s),这也是后续Faster RCNN的改进方向之一。
参考:https://blog.csdn.net/u014380165/article/details/72851319