论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习

本文是何凯明大神他们组的faster rcnn文章

论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第1张图片

上图是faster RCNN一系列文章的发展历程与区别,从fast RCNN到faster RCNN主要区别就是建议框生成算法由SS变成了RPN,另外整个网络变成了一个整体的结构,使得算法进一步加快。

Faster RCNN的模型结构图如下图所示,RPN网络与检测网络共享卷积层,目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)被统一到一个深度网络框架之内,实现了端对端的检测框架,大大提高了运行速度。


论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第2张图片

Faster RCNN可以简单地看做“区域生成网络+fast RCNN“的系统,用区域生成网络代替fast RCNN中的Selective Search方法。所以本文着重介绍了RPN的相关内容。

RPN是全卷积神经网络,用于提取候选框。之前的共享卷积层用ZF net,所以输入一个224*224的图像,经过卷积层特征提取变成51*39*256的特征图,其中256为通道数。RPN的作用就是将51*39*256的特征图输出建议框。而建议框的生成方式就是在共享的卷积层上进行小窗口(n*n)滑动,也就是一个n*n的卷积层,然后映射到256维的向量上,接着这个向量被喂给两个同级的全连接网络b box的回归和分类网络,全连接网络用1*1的卷积层实现,所以RPN网络是全卷积网络实现。

论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第3张图片

在RPN小窗口滑动时,每个中心作为anchor的中心,以3种尺度和三种长宽比生成3*3=9个anchor,而b box的回归层就是所有anchor的位置参数(4k,x,y,w,h),分类层的输出就是对每个建议框是目标/非目标的估计概率(2k,p1,p2)。Anchor拥有平移不变性,所以RPN所需要的参数非常少,减少过拟合的可能。

为了给每个anchor分配一个二分类的标签(是否是目标),作者定义正标签为两类(i)与某个ground truth(GT)包围盒有最高IoU重叠的anchor(也许不到0.7),(ii)与任意GT包围盒有大于0.7的IoU交叠的anchor。定义负标签为与所有GT包围盒的IoU比率都低于0.3的anchor,非负非正的anchor没有意义。根据以上,作者定义损失函数为:

其中,i是一个mini-batch中anchor的索引,Pi是anchor i是目标的预测概率。如果anchor为正,GT标签Pi* 就是1,如果anchor为负,Pi* 就是0。ti是一个向量,表示预测的包围盒的4个参数化坐标,ti* 是与正anchor对应的GT包围盒的坐标向量。

Lcls是两个类别(目标vs.非目标)的对数损失,定义为:

对于回归损失,为:

其中R是定义的鲁棒的损失函数(smooth L1):

因为整个网络损失函数中定义为Pi*和回归损失函数的乘积,所以只有正样本时此项才有值,回归损失函数中的参数有:

论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第4张图片

其中不带*的为b box的参数,带*的是GT的参数。

RPN是全卷积网络实现,所以采用反向传播算法,用SDG进行优化,安装正负anchor1:1的比例随机地在一个图像中采样256个anchor,计算mini-batch的损失函数,共享卷积层用ImageNet预训练。

文中选择了4步训练算法,通过交替优化来学习共享的特征。 

第一步,依上述训练RPN,该网络用ImageNet预训练的模型初始化,并端到端微调用于区域建议任务。第二步,利用第一步的RPN生成的建议框,由Fast R-CNN训练一个单独的检测网络,这个检测网络同样是由ImageNet预训练的模型初始化的,这时候两个网络还没有共享卷积层。第三步,用检测网络初始化RPN训练,但固定共享的卷积层,并且只微调RPN独有的层,现在两个网络共享卷积层了。第四步,保持共享的卷积层固定,微调Fast R-CNN的fc层。这样,两个网络共享相同的卷积层,构成一个统一的网络。

对于anchor,文中用3个简单的尺度,包围盒面积为128x128,256x256,512x512,和3个简单的长宽比,1:1,1:2,2:1提取大概20K个框,但文中忽略所有跨越图像边界的anchor,只剩下6K个框,然后采用非极大值抑制IoU阈值为0.7,这样每个图像只剩2k个建议区域,然后用2k个RPN建议框训练Fast R-CNN。

实验:

PASCAL VOC 2007上进行实验,结果如下表:

论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第5张图片

作者在此基础上也进行了很多对比实验,比如建议框数量,只选择前100个建议框时,mAP为55.1%,仍旧很好,但如果增加建议框至6K,不采用非极大值抑制,mAP值并不会提升,表明非极大值抑制算法不会降低检测mAP。另外作者分别去掉了分类和回归层,没有分类层时,从没有计算得分的区域随机抽取N个建议框。N =1k 时mAP几乎没有变化(55.8%),但当N=100则大大降低为44.6%。这表明,cls得分是排名最高的建议框准确的原因。在测试时移除reg层(这样的建议框就直接是anchor框了),mAP下降到52.1%。这表明,高品质的建议框主要归功于回归后的位置。单是anchor框不足以精确检测。 

其他的实验结果如下,faster rcnn在速度上明显高于其他网络,也就是因为RPN的速度比SS高很多,而且检测精度也有提升。

论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第6张图片
论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第7张图片


作者还进行了召回率的对比,如下图,该图显示,当建议框数量由2k下降到300时,RPN方法的表现很好。这就解释了使用少到300个建议框时,为什么RPN有良好的最终检测mAP。

论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习_第8张图片

你可能感兴趣的:(论文学习11“Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” 文章学习)