基于深度学习方法的复杂场景下目标检测外文翻译资料

 2022-08-06 14:11:08

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


Fast R-CNN

Ross Girshick

Microsoft Research

rbg@microsoft.com

摘要

本文提出了一种快速的基于区域的卷积网络目标检测方法方法(Fast R-CNN)。Fast R-CNN 在前人工作的基础上,利用深卷积网络对目标方案进行有效分类。 与之前的工作相比,Fast R-CNN采用了多种创新技术来提高训练和测试速度,同时也提高了检测精度。 Fast R-CNN 训练非常深的VGG16网络比R-CNN快9倍,测试时快213倍,在PASCAL VOC 2012上实现更高的平均准确率(mAP)。与SPPnet相比,Fast R-CNN训练VGG16快3倍,测试快10倍,且更精确。Fast R-CNN在Python和C 中实现(使用Caffe)并且可以在https://github.com/rbgirshick/fast-rcnn.获得开源代码

1.介绍

目前,深度卷积网络[14,16]显著提高了图像分类[14]和目标检测[9,19]的准确性。与图像分类相比,目标检测是一项更具挑战性的任务,需要更多复杂的方法来解决。由于这种复杂性,使用目前的方法(e.g.,[9,11,19,25])在多级管道中训练模型是缓慢和粗糙的。

复杂性是因为检测需要精确定位对象,从而产生两个主要挑战。第一,必须处理众多候选目标位置(通常称为“提案”)。第二,这些候选目标位置只提供一个粗略的定位,必须对其进行改进才能实现精确的定位。这些问题的解决方案往往会影响速度、准确性或简单性。

在本文中,我们简化了最先进的基于卷积神经目标检测器的训练过程[9,11]。我们提出一个单级的训练算法,这种算法同时学习分类目标的候选方案和改进他们的空间位置。

这种方法训练超深探测网络(VGG16[20])比R-CNN[9]快9倍、比SPPnet[11]快3倍。在运行时,检测网络在0.3秒内处理图像(不包括处理众多候选对象位置的时间)同时在PASCAL VOC 2012 [7]上实现

mAP的最高精度66%。(而R-CNN为62%).1

1.1. R-CNN和SPPnet

基于区域的卷积网络方法(R-CNN)[9]通过使用一个深度对目标建议进行分类,获得了优异的目标检测精度。然而,R-CNN有明显的缺点:

  1. 多阶段训练的过程。R-CNN首先采用log损失在目标提案上微调卷积神经网络,然后,训练适合卷积网络特征的SVM,这些SMV作为目标检测器,使用微调来代替softmax分类器。在第三阶段,进行边界框回归。
  2. 训练空间和时间消耗大。对于SVM和边界框回归的训练,特征是从每一幅图像的每一个目标提案提取出来并写入磁盘中的。使用深度网络,例如VGG16,对于VOC 2007训练集的5K图像来说,这个过程要使用GPU训练两天半,这些特征需要数百GB的存储空间来存储。.
  3. 目标检测速度慢。在测试时,特征是从每一幅测试图像的每一个目标提案中提取出来的,采用VGG16的检测器处理一幅图像需要47s(在GPU上)。

R-CNN速度慢是因为每一个目标提案都会通过卷积神经网络进行前向计算,而不共享计算。空间金字塔池化网络(SPPnets)[11]通过共享计算来加速R-CNN。SPPnet方法为整个输入图像计算一个卷积特征映射,然后使用从共享特征映射中提取的特征向量对每个目标提案进行分类。通过最大池化提案内部的部分特征映射来形成一个固定大小的输出(例如:6times;6)达到特征提取的目的。多种大小的输出汇集在一起,然后连接成空间金字塔池化(SPP)[15]。在测试时,SPPnet加速了R-CNN10到100倍,在训练时,由于更快的提案特征提取过程,也加速了3倍。

SPPnet也有明显的缺点。像R-CNN一样,它的训练过程也是一个多阶段过程,这个过程围绕特征提取、采用log损失对网络进行微调、训练SVM和最后的拟合边界框回归展开。特征也要写入磁盘。但与R-CNN不同的是,在[11]中提出的微调算法不更新空间金字塔池化之前的卷积层。不出所料,这些限制(固定卷积层)限制了深度网络的准确率。

1.2. 贡献

我们提出了一种新的训练算法,在改进R-CNN和SPPnet的速度和精度的同时,弥补了它们的不足。我们称这种方法为Fast R-CNN是因为它的训练和测试比较快。Fast R-CNN方法有几个优点:

  1. 检测质量(mAP)高于R-CNN,SPPnet
  2. 训练是单阶段的,采用多任务损失
  3. 训练可以更新所有网络层
  4. 功能缓存不需要磁盘存储

Fast R-CNN在Python和C 中实现(使用Caffe)并且可以在https://github.com/rbgirshick/fast-rcnn.获得开源代码

2. Fast R-CNN架构与训练

1示出了Fast R-CNN结构。Fast R-CNN网络将一幅完整的图像和一系列目标提案作为输入。该网络首先采用多个卷积层(conv)和最大池化层生成卷积特征映射来处理整个图像。然后,对于每一个目标提案,感兴趣区域(RoI)池化层从特征映射中提取出一个固定长度的特征向量。每一个特征向量被输入到一系列全连接层,后面是两个同级输出层:一层是在所有K个目标类加上一个全方位的背景类产生softmax概率估计;另一层则对每个K类目标输出4个真实数字,每一组的4个值编码了一个K类目标的精确的边界框位置。

2.1. RoI池化层

RoI池化层采用最大池化操作将任何有效的RoI内部特征转换为具有Htimes;W(例如7times;7)固定空间范围的小的特征映射,H和W为层超参数,它们独立于任何的RoI。在本文中,RoI是一个进入卷积层特征图的矩形窗口。每个RoI由一个四元组(r,c,h,w)定义,该元组指定其左上角(r,c)及其高度和宽度(h,w)。

图1. Fast R-CNN结构。将输入图像和多个RoI输入到完全卷积网络中。每个被合并成一个固定大小的特征映射,然后通过完全连接层(FCs)映射到一个特征向量。网络每个RoI有两个输出向量:softmax概率和每个类的边界框回归偏移。该体系结构是端到端训练的,具有多任务损失。

RoI max pooling通过将htimes;w RoI窗口划分为一个子窗口近似为h/Htimes;w/W的Htimes;W网格,然后使用最大池化操作将每个子窗口中的值放入相应的输出网格单元中。池独立应用于每个特征映射系统,如标准的最大池。RoI层只是SPPnets[11]中使用的空间金字塔池化层的特例,其中只有一个金字塔池化层。我们使用[11]中给出的池的子窗口计算。

2.2. 预先训练的网络初始化

我们用三个预先训练好的ImageNet[4]网络进行实验,每个网络都有五个最大池层,并且在五到十三个卷积层之间(参见第4.1节了解网络细节)。当一个预先训练的网络初始化一个Fast R-CNN网络时,它会经历三个转变。

首先,用一个RoI池化层替换最后一个最大池化层,它通过设置H和W来与网络的第一个全连接层相适应(例如:VGG16的H和W为7)。

然后,网络的最后一个全连接层和soft-max(训练用于1000类ImageNet图像分类) 用之前所描述的两个同级输出层(一个全连接层和K 1类的softmax和类特定的边界框回归)替换。

最后,网络被修改为接受两个数据输入:一系列图像和一系列图像的RoI。

2.3. 检测微调

采用反向传播计算所有网络权重是Fast R-CNN的一项非常重要的能力。首先,让我来解释一下为什么SPPnet在空间金字塔池化层下不能更新权重。

根本原因是当来自于不同图像的训练样本通过SPP层时,它所使用的反向传播算法的效率是非常低的,这是由SPPnet和R-CNN的训练方式所决定的。这种低效源于这样一个事实,那就是每一个RoI有一个非常大的感受野,通常包含整个图像。由于前向传播必须处理整个感受野,而训练输入又很大(通常是整个图像)。

我们提出了一种更加有效的训练方式,那就是在训练时利用特征共享的优点。在Fast R-CNN的训练中,随机梯度下降(SGD)的小批采用分层次采样,首先采样N幅图像,然后从每幅图像中采样R/N个RoI。关键的是,来自同一图像的RoI在前向和后向过程中共享计算和内存。使用N的小批量减少小批量的计算量。例如当N等于2,R等于128时,这个训练过程要比从128幅不同的图像中采样一个RoI(即R-CNN和SPPnet的策略)快64倍。

这一策略的一个担忧就是,这可能会导致训练收敛缓慢,因为同一幅图像中的RoI是具有相关性的。我们将N和R分别设置为2和128,并且使用比R-CNN更少的SGD迭代次数,我们取得了一个不错的结果,使得这种担忧没有成为一个实际问题。

除了分层抽样之外,Fast R-CNN使用了具有一个微调阶段的流线型训练过程,这个微调阶段联合优化了一个softmax分类器和边界框回归,而不是训练一个softmax分类器、SVM和三个独立阶段的回归[9,11]。这个过程的组成部分(损失、小批量采样策略、RoI池化层的反向传播、SGD超参数)在下面进行讲述。

多任务损失。Fast R-CNN网络有两个同级输出层。第一个输出K 1个类别的概率的离散分布(每个RoI),p=(p0,...,pK)。通常,p是由完全连接层的K 1输出上的softmax计算的。第二个同级层为每个K对象类输出边界框回归偏移量,tk=tkx,tky,tkw,tkh,K为索引。我们使用[9]中给出的tk的参数化方法,其中tk明确了一个尺度不变的转化方式和一个对于目标提案在log-space保持高宽比偏移的方法。

每个的训练ROI都对应一个真实的类别u和定位框回归目标标记值v。我们在每个标记的ROI上使用了一个复合任务损失L用于分类任何和定位框回归的联合训练:

L(p,u,tu,v)=Lcls(p,u) lambda;[uge;1]Lloc(tu,v), (1)

其中Lcls(p,u)=minus;logpu是真实的类别u的log损失。第二个任务损失,Lloc,定义在类u的一个真实边界框回归目标元组上,v=(vx,vy,vw,vh),和一个预测元组tu=(tux,tuy,tuw,tuh),同样定义在类u上。当uge;1时,Iverson括号指示函数[uge;1]的值为1,否则为0。按照惯例,背景类标记为u=0。对于背景RoIs没有定位框的概念,因此Lloc被忽略。对于边界框回归,我们使用损失

其中

是一种稳健的L1损失,与R-CNN和SPPnet中使用的L2损失相比,它对异常值不太敏感。当回归目标是无限的时,L2损失的训练需要仔细调整学习率,以防

止梯度爆炸。公式3消除了这种敏感性。

公式

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


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

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

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