FastRCNN论文

RCNN首次将CNN引入了目标识别中,但其存在诸多问题。如将训练分成了多阶段,训练过程中耗费了大量的时间和空间以及检测速度过慢等。正是基于这些缺点,RCNN的作者提出了FastRCNN。很明显,FastRCNN的提出就是为了解决这些问题。作者分析了,RCNN速度过慢的问题主要是由于没有"sharing computation",存在过多重复的卷积计算。由此可以想到为什么不可以直接在CNN提取的特征图上利用边界框提取feature?下图为检测流程:

FastRCNN论文_第1张图片

如图所示,在利用CNN提取到feature map之后,不可避免的问题就是feature map的大小与原图大小并不匹配的情况。这里的处理很简单,直接利用相似图形的比例来进行缩放,以获取feature map上的候选框,从而得到不同大小的候选框特征。这里的另外一个问题就是,每个候选框的大小不一样,要想进行识别必须保证输入具有相同的尺寸。在这里没有使用简单的按比例缩放,而是将不同的候选框通过设置不同大小的核的pooling使得每个候选框在下一层输出相同大小的feature map。 在此处Fast RCNN使用的卷积神经网络为普通的fc7,但是有所改动,也有使用VGG16的神经网络。 前五个阶段是conv + relu + pooling的基本形式。

FastRCNN论文_第2张图片

例如要求输出的feature map的大小为w*h,那么对于大小为W*H的feature map,所使用的最大池化的kernel size为[W//w,H//h],

设需要的feature map为[16,16],而候选框的大小为32*64,则使用的最大池化kernel的大小为[2,4]。

通过上面的步骤已经可以得到每一个框的feature,然后再经过两个都是output是4096的全连接层。最后分别经过output个数是21和84的两个全连接层(这两个全连接层是并列的,不是前后关系)。前者是分类的输出,代表每个region proposal属于每个类别的得分。后者是回归的输出,代表每个候选框的四个坐标。

你可能感兴趣的:(FastRCNN论文)