图像识别——目标检测入门之 Fast R-CNN

Posted 百度校园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像识别——目标检测入门之 Fast R-CNN相关的知识,希望对你有一定的参考价值。

点击菜单栏“粉丝福利”
拿小度,兑手机!

,针对R-CNN有以下三个问题:

1、不论是训练还是预测,都需要对 selective search 出来的 2000 个 ROI 全部通过 CNN 的 forward 过程来获取特征,这个过程非常慢。
2、卷积神经网的特征提取器和用来预测分类的 SVM 是分开的,也就是特征提取的过程不会因 SVM 和回归的调整而更新。
3、R-CNN 有非常复杂的操作流程,而且每一步都是分裂的,如特征提取器通过softmax 分类获得,最终分类结果由 SVM 获得,矩形框的位置通过回归方式获得。


针对以上三个问题来我们将介绍 Firshick 等人于 2015 年提出的 Fast R-CNN,它非常巧妙地解决了 R-CNN 主要的几个问题。Fast R-CNN 的训练和预测过程如图所示,具体训练步骤如下:

图像识别(二)——目标检测入门之 Fast R-CNN

(a)Fast R-CNN 训练过程示意图(图片素材来源于网络)


图像识别(二)——目标检测入门之 Fast R-CNN

(b)Fast R-CNN 预测过程示意图(图片素材来源于网络)


(1)将整张图片和 ROI 直接输入到全卷积的 CNN 中,得到特征层和对应在特征层上的 ROI(特征层的 ROI 信息可用其几何位置加卷积坐标公式推导得出)。


(2)与 R-CNN 类 似, 为 了 使 不 同 尺 寸 的 ROI 可 以 统 一 进 行 训 练,FastR-CNN 将每块候选区域通过池化的方法调整到指定的 M*N,所以此时特征层上调整后的 ROI 作为分类器的训练数据。与 R-CNN 不同的是,这里将分类和回归任务合并到一起进行训练,这样就将整个流程串了起来。


Fast R-CNN 的池化示意图如图所示,即先将整张图通过卷积神经网络,然后在特征层上找到 ROI 对应的位置并取出,对取出的 ROI 进行池化(此处的池化方法有很多)。


池化后,所有 2000个 M*N 个训练数据通过全连接层并分别经过 2 个 head:softmax 分类以及 L2 回归,最终的损失函数为分类和回归的损失函数的加权和。通过这样的方式就实现了端到端的训练。

图像识别(二)——目标检测入门之 Fast R-CNN

Fast R-CNN 的池化示意图(图片素材来源于网络)


Fast R-CNN 极大地提升了目标检测训练和预测的速度,如图所示。


从图中我们可以看出,Fast R-CNN 把训练时长从 R-CNN 的 84 小时下降到了8.75 小时,每张图片平均总预测时长从 49 秒降到 2.3 秒。从图中我们还可以看出,在 Fast R-CNN 预测的这 2.3 秒中,真正的预测过程仅仅占用 0.32 秒,而Region proposal 占用了绝大多数的时间。

图像识别(二)——目标检测入门之 Fast R-CNN

R-CNN 和 Fast R-CNN 训练和测试时间对比


相比R-CNN,主要两处不同:

(1)最后一层卷积层后加了一个ROI pooling layer;

(2)损失函数使用了多任务损失函数(multi-task loss),将边框回归直接加入到CNN网络中训练


改进:

(1) 测试时速度慢:R-CNN把一张图像分解成大量的建议框,每个建议框拉伸形成的图像都会单独通过CNN提取特征.实际上这些建议框之间大量重叠,特征值之间完全可以共享,造成了运算能力的浪费.

FAST-RCNN将整张图像归一化后直接送入CNN,在最后的卷积层输出的feature map上,加入建议框信息,使得在此之前的CNN运算得以共享.

(2) 训练时速度慢:R-CNN在训练时,是在采用SVM分类之前,把通过CNN提取的特征存储在硬盘上.这种方法造成了训练性能低下,因为在硬盘上大量的读写数据会造成训练速度缓慢.

FAST-RCNN在训练时,只需要将一张图像送入网络,每张图像一次性地提取CNN特征和建议区域,训练数据在GPU内存里直接进Loss层,这样候选区域的前几层特征不需要再重复计算且不再需要把大量数据存储在硬盘上.

(3) 训练所需空间大:R-CNN中独立的SVM分类器和回归器需要大量特征作为训练样本,需要大量的硬盘空间.FAST-RCNN把类别判断和位置回归统一用深度网络实现,不再需要额外存储.


原文链接:https://zhuanlan.zhihu.com/p/137928680


以上是关于图像识别——目标检测入门之 Fast R-CNN的主要内容,如果未能解决你的问题,请参考以下文章

目标检测算法之Fast R-CNN算法详解

RCNN,Fast RCNN,Faster RCNN 的前生今世:R-CNN

目标检测算法(R-CNN,fast R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3)

6. 目标检测算法之Fast R-CNN算法详解

第二十九节,目标检测算法之Fast R-CNN算法详解

R-CNN/Fast R-CNN/Faster R-CNN