Fast R-CNN目标检测算法是在R-CNN目标检测算法的基础之上,做了改进,关于R-CNN目标检测算法可通过点击链接进行了解。

        首先,介绍Fast R-CNN目标检测算法的基本流程:

        1、将图片输入到卷积神经网络中,提取特征,都到特征图

        2、在特征图上,提取候选框,提取到的候选框大小不一

        3、将大小不一的候选框传入ROI Pooling层,得到固定大小的输出,之后将其传到全连接层

        4、最后对全连接层的输出,分类做分类和回归

目标检测模型评估指标 目标检测算法流程_卷积


        这里需要对Fast R-CNN的细节做一些说明,它是如何改进R-CNN的:

        1、候选框的生成方式

        从上图中,我们可以看到,在一开始的时候,我们并没有对原始输入图片做Selective Search算法,提取候选框。而是在卷积神经网络提取到的特征图上产生候选框,这样做的目的就是为了避免反复的进行特征提取,从而提高效率。

        那么如何在特征图上提取候选框?首先,我们必须知道感受野的概念,那就是经过卷积神经网络得到的特征图上的一块区域,对应着原始图片上的一块区域,这是有对应关系的。那么,我们通过对原始输入图片做Selective Search算法,得到了候选框,然后通过映射关系就可以在特征图上截取出相应的候选框。这样就完成了在特征图上产生候选框的工作。

        注意:Fast R-CNN依然使用了Selective Search算法,但是使用的方式与R-CNN不同,通过这个改变避免了反复的进行特征提取。

        2、ROI Pooling层

        在特征图上提取到的候选框大小不一,没有办法直接连接到全连接层。Fast R-CNN就借鉴了SppNet中的空间金字塔池化,产生了ROI Pooling层,使得不同大小的候选框输入到ROI Pooling层之后得到固定大小的输出,从而可以和全连接层进行连接。想要了解SppNet的可以点击链接。

        3、不再使用SVM分类器,而是使用softmax进行分类

        总结,Fast R-CNN在R-CNN的基础上,做了很大的改进,检测速度也有了很大的提升。主要的改进就是候选框的生成方式、ROI Pooling层以及使用softmax进行分类。但是它的检测速度仍然很慢,主要的原因就是在产生候选框的时候,仍然使用Selective Search算法,导致检测的效率不高。