当前位置:   article > 正文

Fast-RCNN的改进_faster rcnn改进

faster rcnn改进

1. 回顾RCNN与SPP-Net模型

要了解Fast-RCNN的改进,首先要了解RCNN与SPP-Net的网络模型,其主要结构如下图所示:

RCNN流程主要是SS提取Region proposals,然后Crop/wap到归一化尺寸,输入到CNN进行训练,提取特征向量。最后将CNN提取的特征向量输入到SVM中进行分类,得到Region Proposals的labels。由于Region Proposals的Bounding Box与Ground Truth存在偏差,可能导致最终识别不准确,因此作者加入了一个BBox Regression,它的作用主要是微调Bounding Box的框,使得其尽可能与Ground Truth吻合。

SPP-Net流程与RCNN最大的区别是用整图训练CNN,这样就避免了RCNN存在的重复训练问题。首先对原始图片同时进行两个操作,一个是将整图输入到CNN进行训练,一个是利用SS提取若干Region Proposals,Region Proposals的信息在CNN上不使用,就只是保存着。在整图CNN训练结束以后,Conv5可以获得一个全图的特征图。这时候利用原图与特征图的映射(主要通过感受野实现),获取每个Region Proposals的特征图。后面就和RCNN类似,SVM对fc输出的特征向量进行分类,然后用BBox回归。

由于fc的输入需要是一个固定的尺寸,而Region Proposals的特征图的尺寸与Region Proposals的本身大小有关,所以不可能一致,对特征图也不存在Crop/Wrap方式来归一化,那么该怎么办呢?SPP-Net利用了图像金字塔原理,利用几种核将特征图归一化为固定尺寸。

2. RCNN与SPP-Net存在的缺点

(1)RCNN和SPP-Net训练的时候,pipeline是隔离的,他要首先提取Region Proposals,然后输入CNN训练,训练完成以后再输入SVM训练,最后还要再做一个BBox Regression。一个网络模型分了好几个单独的步骤。而FRCN将SVM和BBox Regression都做进了CNN,实现了end-to-end的joint training。

(2)RCNN和SPP-Net的训练的时间和空间开销比较大,RCNN由于是CNN与SVM分开的,因此在CNN训练结束之后,需要大量的磁盘空间来存储训练得到的Region Proposals的特征,时间方面,RCNN需要对每一个Region Proposals做CNN,时间开销大。在FRCN中,利用image-centric的训练方式通过卷积的share特性来降低运算开销,同时,由于它是一个end to end的训练方式,去掉了SVM这一步,所以所有的特征都暂存在显存中,不需要额外的磁盘开销。

(3)RCNN测试的时间开销大,RCNN测试时,需要先对原图做SS提取~2k张Region Proposals 。然后针对每个Region Proposals还要训练,开销很大。SPP-Net对此已有改进,FRCN中进一步通过single scale testing和SVD分解全连接来提速。其中single scale testing指的是在ROI中不再利用多尺度的图像金字塔,而是一个固定的模板,不存在尺度的缩放。

3. FRCN的网络模型

FRCN和SPP-Net一样,对原图主要有两个操作,一个是对原图使用SS提取~2k个Region Proposals,另一个是将原图输入到CNN网络中,进行训练,在Conv5得到原图的特征图后,利用Region Proposals和特征图的对应关系,获得Region Proposals的特征图,然后利用ROI对将特征图归一化,这边ROI是SPP-Net中的SPP层的特殊化。然后在FC层就可以得到归一化的特征向量。然后将其分别输入到BBox回归和Softmax分类中。

4. FRCN的贡献:

 (1)实现大部分end-to-end训练(提proposal阶段除外): 所有的特征都暂存在显存中,就不需要额外的磁盘空间。joint training (SVM分类,bbox回归 联合起来在CNN阶段训练)把最后一层的Softmax换成两个,一个是对区域的分类Softmax(包括背景),另一个是对bounding box的微调。这个网络有两个输入,一个是整张图片,另一个是候选proposals算法产生的可能proposals的坐标。(对于SVM和Softmax,论文在SVM和Softmax的对比实验中说明,SVM的优势并不明显,故直接用Softmax将整个网络整合训练更好。对于联合训练: 同时利用了分类的监督信息和回归的监督信息,使得网络训练的更加鲁棒,效果更好。这两种信息是可以有效联合的。)

(2)提出了一个RoI层,算是SPP的变种,SPP是pooling成多个固定尺度,RoI只pooling到单个固定的尺度 (论文通过实验得到的结论是多尺度学习能提高一点点mAP,不过计算量成倍的增加,故单尺度训练的效果更好。)

(3)指出SPP-net训练时的不足之处,并提出新的训练方式,就是把同张图片的Proposals作为一批进行学习,而proposals的坐标直接映射到conv5层上,这样相当于一个batch一张图片的所以训练样本只卷积了一次。文章提出他们通过这样的训练方式或许存在不收敛的情况,不过实验发现,这种情况并没有发生。这样加快了训练速度。 (实际训练时,一个batch训练两张图片,每张图片训练64个RoIs(Region of Interest))。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/250263
推荐阅读
相关标签
  

闽ICP备14008679号