基于R-FCN的目标检测外文翻译资料

 2022-08-08 11:08

英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料


基于R-FCN的目标检测

作者:Jifeng Dai YiLi Kaiming He Jian Sun

摘要:

我们使用R-FCN进行准确的有效的目标检测。与之前的区域检测进行对比,例如Fast/Faster R-CNN[18]应用于每个区域子网络都要花费数百次,而我们的区域检测是基于整幅图片的全卷积计算。为了达到这个目标,我们设计了一个位置敏感得分图去解决图像分类中平移不变性和目标检测中平移可变性这一两难境地。因此我们的方法自然采用全卷积图片分类主干部分,例如目标检测用最新的残差网络。在PASCAL VOC数据集的实验上,我们用101层Resnet达到了很好的效果。与此同时,我们的结果仅用了170m/s每张图片,比Faster R-CNN匹配快了2.5~20被左右。公开的代码可以在此网站中访问到:https://github.com/daijifeng001/r-fcn

  1. 简介

一个比较流行的关于目标检测的深度网络[8][6][18]划分方法可以通过ROI[6]划分为两个子网络:

  1. 独立于ROI的共享的全卷积子网络;
  2. 不共享计算的ROI-wise子网络。

这种分解[8]来源于较早之前的分类框架,例如AlexNet[10]和VGGNets[23]有两个子网络组成,一个是以空间池化层结束的卷积子网络,另一个是若干个全连接层。因此在图片分类网络中空间池化层很自然的在本实验中被转变成了物体检测网络[8][6][18]的ROI池化层。

但是最近最先进的图片分类网络,例如残差网络和GoogleNets都是用全卷积设计的。通过分析,使用所有的卷积层去构建一个进行目标检测的共享卷积网络是一件十分自然的事情,而不把ROI-wise子网络作为隐藏层。然而通过实证调查,这个方案的检测精确度极低,以至于无法提高网络分类的精确度。为了解决这个问题,在残差网络文献中,ROI池化层很不自然地被插进两组卷积层,从而创造了一个更深的ROI-wise[18]子网络来提高准确度,但是由于每个ROI的计算不共享,因此速度会比原来要慢。

我们认为上述不合理的设计是由于图片分类中增长的平移不变性与目标检测中的平移变换性之间的矛盾引起的。一方面,图像级别的分类任务侧重于平移不变性——在一幅图片中平移一个物体而不改变它的判别结果,因此深度全卷积网络结构在尽可能保持平移不变性是最好的,通过在ImageNet classification[9][24][26]上的良好表现得以证明。

图 1 基于R-FCN的目标检测的核心思想。在本插图中,通过全卷积网络产生一个k*k=3*3的位置敏感得分图。对于每一个在ROI中的k*k的bins,池化仅仅在k^2个图中一个呈现(通过用不同颜色进行标记)。

表 1 使用Res Net-101的区域检测方法

在另一方面,目标检测任务需要位置表示,从某种程度上说是平移可变换的。例如平移一个候选框里的物体应该产生一个有意义的反馈,用来描述候选框的物体的重叠程度。我们假定在图片分类网络中,卷积层越深,对平移越不敏感。为了解决这个两难境地——图片分类中的平移不变性和目标检测中的平移变换性,在ResNet[9]文献中的检测算法中插入了ROI池化层到卷积层——这个区域特异性操作破坏了平移不变性,而且当评估不同区域时,post-ROI卷积层不再是平移不变的了。然而这种设计牺牲了训练和测试的效率,因为他引入了大量的按区域划分的层。

在本篇文献中,我们开发出了一个称之为R-FCN的框架用于目标检测。我们的网络由共享的全卷积结构组成,就像FCN一样。为了把平移变换特性融进FCN[15]中,我们通过利用一堆特征化的卷积层作为FCN的输出来创建一个位置敏感得分图,每个得分图对相对空间位置信息进行编码。在FCN的顶层,我们附加了一个位置敏感ROI池化层来统领这些得分图的信息,这些得分图不带任何权重层(卷积层或全连接层)。整个结构是端对端的学习。所有可学习的层在整幅图片中都是可卷积的并且可共享的,并且仍然可以编码空间位置信息用于目标检测。图1说明了这个核心思路,表1比较了区域检测的各种算法。

使用101层的残差网络[9]作为主干,我们的R-FCN在PASCAL VOC 2007测试集上达到了83.6%的mAP,在2012测试集上达到了82.0%的mAP。同时,我们的结果实现了170ms/每张图片的速度,比Faster R-CNN ResNet-101快了2.5~20倍。这个实验结果说明了我们的方法成功解决了基于全卷积网络的图像级别的分类问题中的平移不变性和平移变换性之间的矛盾,全卷积图像级别分类器,比如ResNet能够被有效的转换成全卷积目标检测器。详细的代码请见::https://github.com/daijifeng001/r-fcn.

  1. 我们的方法

概览:对于下面的R-CNN,我们采用了流行的二级的目标检测策略[7][8][6][1][18][22]:(1)候选区域;(2)区域分类。尽管不依赖于region proposal的方法确实存在(比如[17][14]),基于区域的系统在一些基准[5][13][20]上仍然具有最好的准确率。我们通过RPN来抽选候选区域,它自身是一个全卷积结构。接下来[18]我们在RPN和R-FCN中共享这些特性。图2展示了整个系统的概览。

图 2 R-FCN的整体架构。RPN产生候选ROI,然后ROI会被应用于得分图。所有可学习的权重层在整幅图片中都是可卷积的并且是可计算的。每个ROI的计算开销都是可以忽略的。

考虑到位置候选,R-FCN结构用来将ROI分类为各种物体的背景。在R-FCN中,所有可学习的权重层都是可卷积的并且是在整幅图片中进行计算。最后一个卷积层产生一堆k^2个得分图对应于用来描述相对位置的k*k空间网格。例如对于k*k-3*3,这9个得分图将物体类别编码为9种情况——左上、中上、右上、hellip;hellip;、右下)。

R-FCN以位置敏感ROI池化层作为结束层。他将最后一个卷积层的输出结果聚集起来,然后产生每一个ROI得分记录。和[8][6]不同,我们的位置敏感ROI池化层产生的是有选择性的池化,并且k*k容器的每个条目仅仅聚集来自k*k得分地图的响应。通过端对端的训练,ROI层带领最后一层卷积层去学习特征化的位置敏感得分图。图1说明了这个过程。图3、4是两个可视化的例子。本算法的具体细节介绍参加后面条目。

主干架构:本篇文献中的R-FCN算法是基于ResNet-101[9]的,虽然其他的深度学习网络[10][23]也可以应用。ResNet-101有100个带global average pooling的卷积层,有一个1000级的fc层。我们去掉了平均池化和fc层,然后只是要卷积层来计算特征图。我们利用作者发布的ResNet-101,在ImageNet[20]上进行预训练。在ResNet-101中,最后一个卷积块是2048维度,我们附加了一个随机初始化的1024维度的1x1的卷积层来降低维度(更精确的,我们增加了卷积层的深度),然后我们使用了k^2(c 1) 个通道来产生得分图,下面有具体的介绍。

位置敏感得分图amp;位置敏感ROI池化:为了在每个ROI中明确编码位置信息,我们通过一个规则网格把每个ROI分成k*k个bins。对于w*h的ROI区域,每一个bin的大小约等于w/k*h/k[8][6]。在我们的方法中,最后一个卷积层是被用来为每个类别产生k^2个得分图的。在第i行第j列的bin(0le;i,jle;k-1)中,我们定义了一个位置敏感ROI池化操作,仅仅将结果汇集到第(i,j)个得分图上:

在这个公式中:是针对于第c个目录的第(i,j)个bin的集合反应:是个得分图中其中一个图;表示ROI的左上角;n表示bin中像素个数;theta;表示网络中所有可学习的参数。第(i,j)个bin的范围是:和。关于上述等式,在图1中有解释,其中一个颜色代表一个(i,j)对。上述等式使用的是平均池化(我们整篇文献使用的都是这个),当然最大池化也有很好的表现。

这个个得分图用来对ROI区域进行投票,在这篇文献中,我们仅仅通过平均得分进行投票,对于每个ROI产生(c 1)维的向量:。然后我们计算了每一个目录项的softmax响应:。在训练和在推理中对ROI评级的时候,它们被用来估计交叉熵损失。

进一步的,我们用相似的方法定位了边界框回归[7][6]。除了上面的个卷积层,我们附加了一个维的向量,然后通过平均投票被聚合为一个4维向量。这个4维向量用参数化一个边框[6]。需要注意的是为了简单起见我们利用的是类别无关的边界框回归,但是对应的特殊类别也是可使用的(比如,一个个输出层)。

位置敏感得分图有一部分灵感来自于实例级的语义分割FCNs[3]。进一步的,我们引入了位置敏感ROI池化层来统领物体检测得分图的学习。在ROI层之后,由于没有可学习的层,所以能够进行几乎无代价的区域级计算,同时加速训练和测试。

训练:在预先计算了候选区域之后,端对端的训练R-FCN结构是非常简单的。接下来[6],我们的损失函数定义为在每个ROI上的交叉熵损失和边界回归损失的总和:

上式中,是ROI的ground-truth label(表示的是背景);是用于分类的交叉熵损失函数;是边界回归损失函数,表示ground truth box;表示的是,如果参数为真,则等于1,否则为0.我们设置的平衡权重lambda;=1[6]。当ROI与实际边框的重叠部分至少有0.5的IoU时,那么我们认为是积极地,否则是消极地。

在训练时,在我们的方法中采用OHEM是非常容易的。每个可忽略的ROI区域计算使得样例挖掘是无偿的。假定每张图片有N个候选,在前向传播时,我们估算所有N个候选损失。然后我们对所有ROI按照损失进行排序,然后挑选B个具有最高损失的ROI。反向传播算法[19]是基于选择的样例来演算的。因为我们的每个ROI的计算都是近似可以忽略的,所以前进时间基本上不会受N的影响。而OHEM Fast R-CNN[22]可能是会花费双倍的训练时间。在表3中我们提供了一个详细的时间数据。

我们使用了0.0005的权重衰减系数和0.9的动量。在缺省情况下,我们使用单尺度的训练:图片被统一调整为600个像素的大小[6][18]。每个GPU处理1张图片,选取B=128ROI来用于反向传播。我们使用了8个GPU来训练模型。我们微调了R-FCN,对于20k个小批量我们使用了0.001的学习速率;而对于VOC上10k个小批量,我们使用了0.0001的学习速率。为了让R-FCN共享RPN的特征,我们采用了四步交替训练[18],在RPN和R-FCN中交替训练。

测试:正如图2描述的,RPN和R-FCN共享的特征图被计算(在一个单尺度为600的图像上)。然后RPN模块选择出了ROI,而R-FCN模块评估了针对每一个物体项的得分和无边界回归。在测试阶段,我们评估了[18]300个ROI区域,进行了公平的比较。结果通过NMS来进行后期处理,使用了0.3IoU的阈值,作为标准练习。

图 3 对于人类目录项检测的可视化R-FCN例子

图 4 可视化例子:ROI与物体没有完全覆盖

多孔算法和步长:我们的全卷积网络架构是用于语义分割的FCN基础上进行修改的,并享有它的好处。特别的,我们将ResNet-101的有效步长从32像素减少到16像素,从而增加了得分图分辨率。在conv4[9]之前的所有层(包括conv4)(步长为16)保持不变;在第一个conv5块的stride=2改为stride=1;在conv5阶段的所有卷积滤波都被孔算法[2][15]进行修改,用来补偿步长的减少。为了公平的比较,RPN是在conv4阶段的顶层(和R-FCN共享)进行计算的,正如[9]使用Faster R-CNN一样,所以RPN没有被影响。下表显示的是R-FCN的结果。(,没有难例子挖掘)将mAP提高了2.6个点。

可视化:在图3和图4中,我们展示了当时,通过R-FCN学习到的位置敏感得分图。这些特征图受到物体的具体相对位置的强烈影响。例如:“上中敏感”得分图对于那些大致接近目标的上中位置的显示了较高的分数。如果一个候选框与真实物体精确的重合了(图3),那么大多数的个bins会被强烈的激活,然后会得到较高的分数。相反的,如果候选边框与真实物体并没有完全准确的重合(图4),那么ROI里有一些个bins不会被激活,从而导致得分很低。

  1. 相关工作

R-CNN[7]已经演示了带深度网络的候选区域[27][28]的有效性。R-CNN评估那些关于裁剪过的和带覆盖区域的卷积网络,并且计算在区域之间是不共享的(表1)。SPPnet[8],Fast R-CNN[6]和Faster R-CNN[18]是半卷积的,在卷积子网络中是共享对整图的计算的,在另一个子网络是各自计算独立的区域。

已经有物体检测器可以被认为是全卷积模型。OverFeat[21]通过在共享的卷积特征图上滑动多尺度窗口来检测目标。同样的,在Fast R-CNN[6]和[12]中,也研究能取代候选区域的滑动窗口。在这些情况下,可以将单尺度的滑动窗口改造成一个单层的卷积层。在Faster R-CNN中的RPN组件是一个全卷积检测器,用来预测是一个关于多尺寸参考边框的实际边框。原始的RPN是类别无关的。但是对应的特定于类的对应物是可应用的,接下来我们会演示的。

另一个用于目标检测的是fc layer用来基于整幅图片的完整目标检测,如[25][4][17]

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[258215],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。