英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
Faster R-CNN:基于区域建议网络的实时目标检测
摘要
目前最先进的目标检测网络是利用区域建议算法来推测目标位置。先进的像 SPPnet和Fast R-CNN 可以减少这些检测网络的运行时间,此时计算区域建议成为了瓶颈问题。本文中,我们将介绍一种区域建议网络,该网络与检测网络共享全图的卷积特征,使得区域建议几乎不花时间。RPN是一个全卷积网络,在每个位置同时预测目标边界和对象得分。RPN是端到端训练的,生成高质量区域建议框,用于Fast R-CNN来检测。通过一种简单的交替运行优化方法,RPN和Fast R-CNN可以在训练时共享卷积特征。对于非常深的VGG-16模型[19],我们的检测系统在GPU上的帧率为5fps(包含所有步骤),在PASCAL VOC 2007和PASCAL VOC 2012上实现了最高的目标检测准确率(2007是73.2%mAP,2012是70.4%mAP),每个图像用了300个建议框。
1.引言
最近在目标检测中取得的进步得益于由区域建议方法(例如[22])和基于区域的卷积神经网络(R-CNN)[6]取得的成功来推动的。尽管基于区域的CNN在[6]中刚提出时在计算上消耗很大,幸好后来这个消耗通过建议框之间共享卷积[7,5]大大降低了。最新的Fast R-CNN[5]在忽略了生成区域建议框的时间下,用非常深的网络[19]实现了近实时检测的速率。现在,建议框是最先进的检测系统中的计算瓶颈。
区域建议方法通常依赖于消耗小的特征和经济的获取方案。选择性搜索(SS)[22],是最流行的方法之一,它贪婪地融合了基于工程低级特征的超级像素。与高效检测网络[5]相比,SS要慢一个数量级,CPU运行时每个图像速度为2s。EdgeBoxes[24]在建议框质量和速度之间做出了目前最好的权衡,大约每个图像0.2s。尽管如此,区域建议步骤依旧花费了和检测网络差不多的时间。
有人可能注意到基于区域的快速CNN利用了GPU,而在研究中使用的区域建议方法是在CPU上实现的,使得运行时间的比较是不公平的。一种明显可以提速生成建议框的方法是在GPU上实现它,这也许是一种很有效的工程解决方案,但重新实现会忽略了下游的检测网络,也因此错失了共享计算的重要机会。
本文中,我们展示算法的变化——用深度网络计算区域建议框——这是一种简洁有效的解决方案,建议框计算几乎不会给检测网络的计算带来消耗。为此,我们引入新颖的区域建议网络(RPNs),它与最先进的目标检测网络[7,5]共享卷积层。在测试时,通过共享卷积,计算建议框的边际成本是很小的(例如每个图像10ms)。
我们观察发现,基于区域的检测器例如Fast R-CNN,使用的卷积(conv)特征映射,同样可以用于生成区域建议。我们在这些卷积特征上增加两个额外的卷积层来构建RPN:第一个层把每个卷积映射位置编码为一个短的(例如256-d)特征向量,第二个层在每个卷积映射位置,输出这个位置上多种尺度和长宽比的k个区域建议的对象得分和回归边界(k=9是典型值)。
我们的RPN是一种全卷积网络(FCN)[14],可以针对生成检测建议框的任务端到端地训练。为了统一RPN和Fast R-CNN[5]目标检测网络,我们提出一种简单的训练方案,即保持建议框固定,微调区域建议和微调目标检测之间交替进行。这个方案收敛很快,最后形成可让两个任务共享卷积特征的标准网络。
我们在PASCAL VOC检测标准集[4]上评估我们的方法, fast R-CNN结合RPN的检测准确率超过了作为有力基准的fast R-CNN结合选择性搜索的方法。同时,我们的方法没有了SS测试时的计算负担,对于生成建议框的有效运行时间只有10毫秒。利用[19]中网络非常深的深度模型,我们的检测方法在GPU上依然有5fps的帧率(包括所有步骤),因此就速度和准确率(PASCAL VOC 2007上是73.2%mAP,PASCAL VOC 2012上是70.4%)而言,这是一个实用的目标检测系统。
2.相关工作
最近几篇文章中提出了用深度网络定位类确定或类不确定的包围盒[21, 18, 3, 20] 的方法。在OverFeat方法[18]中,训练全连接(fc)层用来预测假定只有一个目标的定位任务的包围盒坐标。fc层再转入卷积层来检测多个类特定的目标。MultiBox方法[3, 20]从最后一个fc层同时预测多个(例如800)包围盒的网络中生成区域建议,R-CNN[6]也用这个检测。他们的建议框网络应用于单个图像或多个大图像的切割部分(例如224x224)[20]。我们在后文中讲我们的方法时会更深层次地讨论OverFeat和MultiBox。
卷积的共享计算[18, 7, 2, 5]在视觉识别方面的高效、精确,已经吸引了越来越多的关注。OverFeat论文[18]从图像金字塔计算卷积特征,用于分类、定位、检测。在共享的卷积特征映射上自适应大小的pooling(SPP)[7]能有效用于基于区域的目标检测[7, 16]和语义分割[2]。Fast R-CNN[5]实现了在共享卷积特征上训练的端到端检测器,显示出令人惊叹的准确率和速度。
3.区域建议网络
区域建议网络(RPN)将一个图像(任意大小)作为输入,输出矩形目标建议框的集合,每个框有一个对象得分。我们用全卷积网络[14]对这个过程建模,本章会详细描述。因为我们的最终目标是和Fast R-CNN目标检测网络[15]共享计算,所以假设这两个网络共享一系列卷积层。在实验中,我们详细研究Zeiler和Fergus的模型[23](ZF),它有5个可共享的卷积层,以及Simonyan和Zisserman的模型[19](VGG),它有13个可共享的卷积层。
为了生成区域建议框,我们在最后一个共享的卷积层输出的卷积特征映射上滑动一个小型网络,这个网络全连接到输入卷积特征映射的nxn的空间窗口上。
图1:左:区域建议网络(RPN)。右:用RPN建议框在PASCAL VOC 2007测试集上的检测实例。我们的方法可以在很大范围的尺度和长宽比中检测目标。
每个滑动窗口映射到一个低维向量上(对于ZF是256-d,对于VGG是512-d,每个特征映射的一个滑动窗口对应一个数值)。这个向量输出给两个同级的全连接的层——包围盒回归层(reg)和包围盒分类层(cls)。本文中n=3,注意图像的有效感受野很大(ZF是171像素,VGG是228像素)。图1(左)以这个小网络在某个位置的情况举了个例子。注意,由于小网络是滑动窗口的形式,所以全连接的层(nxn的)被所有空间位置共享(指所有位置用来计算内积的nxn的层参数相同)。这种结构实现为nxn的卷积层,后接两个同级的1x1的卷积层(分别对应reg和cls),ReLU[15]应用于nxn卷积层的输出。
平移不变的候选窗口
在每一个滑动窗口的位置,我们同时预测k个区域建议,所以reg层有4k个输出,即k个box的坐标编码。cls层输出2k个得分,即对每个建议框是目标/非目标的估计概率(为简单起见,是用二类的softmax层实现的cls层,还可以用logistic回归来生成k个得分)。k个建议框被相应的k个称为候选窗口的box参数化。每个候选窗口以当前滑动窗口中心为中心,并对应一种尺度和长宽比,我们使用3种尺度和3种长宽比,这样在每一个滑动位置就有k=9个候选窗口。对于大小为WxH(典型值约2,400)的卷积特征映射,总共有WHk个候选窗口。我们的方法有一个重要特性,就是平移不变性,对候选窗口和对计算候选窗口相应的建议框的函数而言都是这样。
作为比较,MultiBox方法[20]用k-means生成800个候选窗口,但不具有平移不变性。如果平移了图像中的目标,建议框也应该平移,也应该能用同样的函数预测建议框。此外,因为MultiBox的候选窗口不具有平移不变性,所以它需要(4 1)x800-d的输出层,而我们的方法只要(4 2)x9-d的输出层。我们的建议框层少一个数量级的参数(MultiBox用GoogleLeNet[20]需要2700万vs.RPN用VGG-16需要240万),这样在如PASCAL VOC这种小数据集上出现过拟合的风险较小。
学习区域建议的损失函数
为了训练RPN,我们给每个候选窗口分配一个二进制的标签(是否为目标)。我们分配正标签给两类候选窗口:(i)与某个ground truth(ground truth)包围盒有最高的IoU(Intersection-over-Union,交集并集之比)重叠的候选窗口(也许不到0.7),(ii)与任意ground truth包围盒有大于0.7的IoU交叠的候选窗口。注意到一个ground truth包围盒可能分配正标签给多个候选窗口。我们分配负标签给与所有ground truth包围盒的IoU比率都低于0.3的候选窗口。非正非负的候选窗口对训练目标没有任何作用。
根据这些定义,我们将Fast RCNN [5]中的多任务丢失后的目标函数最小化,将图像的损失函数定义为:
们对图像的损失函数定义为:损失函数定义为
在这里,i是一个mini-batch中候选窗口的索引,Pi是候选窗口 i是目标的预测概率。如果候选窗口为正,ground truth标签Pi* 就是1,如果候选窗口为负,Pi* 就是0。ti是一个向量,表示预测的包围盒的4个参数化坐标,对于回归损失*,我们用来计算,其中R是[5]中定义的鲁棒的损失函数(smooth L1)。Pi* Lreg这一项意味着只有正候选窗口(Pi* =1)才有回归损失,其他情况就没有(Pi* =0)。cls层和reg层的输出分别由{pi}和{ti}组成,这两项分别由Ncls和Nreg以及一个平衡权重lambda;归一化
对于回归,我们采用[6]中的4个坐标的参数化:
采用4个坐标:
x,y,w,h指的是包围盒中心的(x, y)坐标、宽、高。变量x,xa,x*分别指预测的包围盒、候选窗口的包围盒、ground truth的围盒(对y,w,h也是一样)的x坐标。可以理解为从候选窗口包围盒到附近的ground truth包围盒的包围盒回归。
无论如何,我们用了一种与之前的基于特征映射的方法[7, 5]不同的方法实现了包围盒算法。在[7, 5]中,包围盒回归在从任意大小的区域中pooling到的特征上执行,回归权重是所有不同大小的区域共享的。在我们的方法中,用于回归的特征在特征映射中具有相同的空间大小(nxn)。考虑到各种不同的大小,需要学习一系列k个包围盒回归量。每一个回归量对应于一个尺度和长宽比,k个回归量之间不共享权重。因此,即使特征具有固定的尺寸/尺度,预测各种尺寸的包围盒仍然是可能的。
优化
RPN很自然地实现为全卷积网络[14],可以通过反向传播和随机梯度下降(SGD)[12]进行端到端训练。我们遵循[5]中的“以图像为中心”采样策略训练这个网络。每个mini-batch由包含了许多正负候选窗口的单个图像组成。我们可以优化所有候选窗口的损失函数,但是这会偏向于负样本,因为它们是主要的。作为替代,我们随机地在一个图像中采样256个候选窗口,计算mini-batch的损失函数,其中采样的正负候选窗口的比例是1:1。如果一个图像中的正样本数小于128,我们就用负样本填补这个mini-batch。
我们通过从标准差为0.01的零均值高斯分布中获取的权重来随机初始化所有新层。所有其他层(即共享的卷积层)是通过对ImageNet分类[17]预训练的模型来初始化的,这也是标准做法[6]。我们调整ZF网络的所有层,以及conv3_1,并为VGG网络做准备,以节约内存[5]。我们在PASCAL数据集上对于60k个mini-batch用的学习率为0.001,对于下一20k个mini-batch用的学习率是0.0001。动量是0.9,权重衰减为0.0005[11]。我们的实现使用了Caffe[10]。
区域建议与目标检测共享卷积特征
迄今为止,我们已经描述了如何为生成区域建议训练网络,而没有考虑基于区域的目标检测CNN如何利用这些建议框。对于检测网络,我们采用Fast R-CNN[5],现在描述一种算法,学习由RPN和Fast R-CNN之间共享的卷积层。
RPN和Fast R-CNN都是独立训练的,要用不同方式修改它们的卷积层。因此我们需要开发一种允许两个网络间共享卷积层的技术,而不是分别学习两个网络。注意到这不是仅仅定义一个包含了RPN和Fast R-CNN的单独网络,然后用反向传播联合优化它那么简单。原因是Fast R-CNN训练依赖于固定的目标建议框,而且并不清楚当同时改变建议机制时,学习Fast R-CNN会不会收敛。虽然这种联合优化在未来工作中是个有意思的问题,我们开发了一种实用的4步训练算法,通过交替优化来学习共享的特征。
第一步,我们依上述训练RPN,该网络用ImageNet预训练的模型初始化,并端到端微调用于区域建议任务。第二步,我们利用第一步的RPN生成的建议框,由Fast R-CNN训练一个单独的检测网络,这个检测网络同样是由ImageNet预训练的模型初始化的,这时候两个网络还没有共享卷积层。第三步,我们用检测网络初始化RPN训练,但我们固定共享的卷积层,并且只微调RPN独有的层,现在两个网络共享卷积层了。第四步,保持共享的卷积层固定,微调Fast R-
全文共13730字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[14221],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。