Faster RCNN论文阅读

2023-02-22,,

    引言

当前最先进的目标检测模型是由区域提案方法和基于区域的卷积神经网络引领的,由于共享计算,卷积网络花费的时间已经大大减小了,所以当前检测系统的瓶颈就是如何减小区域提案生成部分的花费时间。当前流行的区域提案方法之一SS就挺慢的,EdgeBoxes在提案生成的时候也很慢。

作者观察到用来生成特征图的基于区域的检测器(如fast RCNN)同样可以用于生成区域提案,于是作者提出使用一个深度卷积神经网络来计算提案,计算速度快到可以忽略,作者将这个用来计算提案的卷积网络叫做RPNs。它可以和后面的网络共享卷积层,于是计算每一个提案的边际成本就很低了。作者在检测器的前面加了几层卷积层用来生成实时的边框回归和目标置信分数,这几层卷积层构成了RPN。

作者引入了一个概念叫做anchor,它是一系列的尺度(大小)和比例(长宽比)不同的框。通过anchor这个概念所定义的模型避免了无数的图片或者不同尺度、比例的过滤器的使用。

为了将RPNs和Fast RCNN结合起来作者提出了一个交替进行训练和微调的反感,使用这个方案可以是网络寻思地融合并且卷积特征可以在两个模型里共享。

    相关工作

目标提案。当前主流的目标提案方法主要有两类,一是基于超像素的(SS、CPMC、MCG,超像素是用一个个小色块逐渐融合变成较大的色块使计算机处理图片更快且显示出了物体边界),二是基于滑窗的。目标提案模块是独立于检测模块的。

用于目标检测的深度网络。RCNN主要是作为一个分类器,它不预测物体边界,它分类的准确率取决于提案划分的准确率。作者提到两个用深度网络来预测物体边界的网络,一个是overfeat,它在卷积层之前加了个全连接层来预测边界。一个是multibox,它的最后用于分类的全连接层可以同时预测边界,不过它并没有在提案和检测这两个模块之间共享特征。共享卷积计算目前吸引人们的点主要是它带来的速度的提升而不是精度,像overfeat和SPPnet都是为了提升速度才引入的共享计算。

    Faster RCNN

Faster RCNN是有两个模块结合而成的,一个是用于生成区域提案的卷积神经网络,一个是用于检测的Fast RCNN,RPN使用注意力机制告诉fast RCNN图片的哪里是重点。

      RPN

RPN是一个全卷积网络(FCN)接受任意大小的图片输入,输出一系列的矩形的目标提案,每个框带有一个目标置信分数。为了和fast rcnn层共享一套卷积层,作者使用了ZF和VGG16,分别有5和13层可共享的卷积层。

作者在最后一个共享的卷积层的输出(n*n)上加了一个小的滑窗用来降维,它是3*3大小的(因为这个大小的实验效果最好),ZF和VGG16的滑窗过后的维度分别为256和512。之后的特征图送到两个兄弟网络,一个是用于边框回归的reg模块一个是用于目标分类的cls模块。

        anchors

anchors是一系列预设好框,作者用了三种尺度三种比例一共k=9种anchors。

在图片上的每一个像素点用这个9个anchors去划定区域提案,所以reg层有4k个输出(一个框4个点一共k个框),cls层有2k个输出(是不是目标)

拥有平移不变性的anchors

如果改变了图片的大小那么提案还有与其相关的函数都要改变,使用anchors就可以保证平移不变性。对比实验中multibox用的是稀疏的800个anchors,它不能保证平移不变性,而且multibox有(4+1)*800维的全连接层输出,作者的这个方法只有(9+1)*9 维的卷积输出,这样一来参数量也比multibox大大减小了(1536 * (4 + 1) * 800 for GoogleNet  in MultiBox→512 *(4 + 2) * for VGG16)

作为回归引用(Regression References的多尺度的anchors

目前流行的多尺度边框预测主要有两种,一种是基于图像金字塔,这种方法里图片被变换成好几个尺寸,每一个尺寸都计算一个特征图,这种方法是有效的但是很花时间。第二种方法是在特征图上使用多尺度的滑窗,比如DPM,它使用了几种边长比例不同的滑窗,每种滑窗使用不同大小的过滤器分别训练,这种方法可以被叫做过滤器金字塔。第二种方法常常和第一种方法结合在一起。

作者提出的这个anchors也是一种金字塔结构,它只需要使用一种大小的滑窗,这种多尺度的anchors设计使是实现共享卷积计算的关键。

        损失函数

每个anchor被打上1/0标签代表正/负样本,被标记为正样本的anchor有两种,一是和某个GT重叠的所有anchors里IOU最高的那个;二是和一个GT重叠度大于0.7的,一般来说主要是第二种情况,但少数样本会出现第一种情况。和任意一个GT的IOU都小于0.3的被标记为负样本,非正非负的样本不参与后续的训练。损失函数和fast RCNN一样是一个多任务的损失函数:

i是anchor在mini-batch里的索引,pi是预测的框里是否有目标的可能性,是GT标签为0或1,只有它等于1的时候回归损失才会被激活。ti是框的4个定位点,是GT的定位点。作者通过实验得出结果λ=10的时候效果最好,所以λ=10,使reg和cls的权重大致相等。

边框回归计算

x是预测的框,xa是anchor的框,x*是GT框。

有时间了再继续读完

Faster RCNN论文阅读的相关教程结束。

《Faster RCNN论文阅读.doc》

下载本文的Word格式文档,以方便收藏与打印。