文章目录
1、摘要
识别图像中主要对象的类别是卷积网络( C o n v N e t ConvNet ConvNet ) [17]多年来一直应用的任务,无论这些对象是手写字符[16]、房屋号[24]、无纹理玩具[18] 还是交通标志[3][26]无论来自 C a l t e c h − 101 Caltech-101 Caltech−101 数据集[14]的对象还是来自 1000 1000 1000 类 I m a g e N e t ImageNet ImageNet 数据集[15] 的对象。 C o n v N e t s ConvNets ConvNets 在 C a l t e c h − 101 Caltech - 101 Caltech−101 等小型数据集上的准确性虽然不错,但并没有打破记录。然而,更大数据集的出现使得 C o n v N e t s ConvNets ConvNets 显著提升在例如 1000 1000 1000 类 I m a g e N e t ImageNet ImageNet 数据集[5]上的性能。
C o n v N e t s ConvNets ConvNets 在许多这样的任务中的主要优势是,整个系统经过端到端的训练,从原始像素到最终类别,从而减轻了人工设计合适的特征提取器的需求。主要缺点是他们对标注的训练样本有很大的依赖。
本文的关键点在于训练单一卷积神经网络对图像中的目标进行持续的分类、定位和检测,从而提高分类检测和定位的精度。还介绍了一种通过累积预测边界框来定位和检测的新方法。作者建议通过组合许多定位预测,可以在不训练背景样本的情况下进行检测,并且可以避免耗时且复杂的自举训练过程。不在背景样本上训练也能让网络专注于正样本,以获得更高的准确性。
实验在 I m a g e N e t I L S V R C 2012 ImageNet~ILSVRC 2012 ImageNet ILSVRC2012 和 2013 2013 2013 数据集上进行,在 I L S V R C 2013 ILSVRC~2013 ILSVRC 2013 定位和检测任务中取得了当前最佳结果。
虽然 I m a g e N e t ImageNet ImageNet 分类数据集中的图像在很大程度上被选择为包含填充大部分图像的大致居中的对象,但感兴趣的对象在图像中的大小和位置有时会有很大差异。为解决这个问题:
- 第一个想法是在图像中的多个位置,以滑动窗口的方式,在多个尺度上应用 C o n v N e t ConvNet ConvNet 。然而,即使如此,许多观察窗可能包含物体的完全可识别部分(比如狗的头部),但不是整个物体,甚至是物体的中心。这具有良好的分类性能,但定位和检测性能较差。
- 第二个想法是训练系统不仅在每个窗口上产生类别分布,而且产生包含对象的边界框相对于窗口的位置和大小的预测。
- 第三个想法是将每个类别在不同位置和尺度下的置信度累计。
许多作者已经提议使用 C o n v N e t s ConvNets ConvNets 进行检测和定位,在多个尺度上运用滑动窗口可以追溯到 20 20 20 世纪 90 90 90 年代早期的多字符串[20]、面部[30]和手[22]的检测定位。最近, C o n v N e t s ConvNets ConvNets 已经显示出在自然图像中的文本检测[4]、人脸检测[8][23]和行人检测[25]方面的最佳性能。
几位作者还建议训练 C o n v N e t s ConvNets ConvNets 来直接预测要定位的对象的实例化参数,例如相对于观察窗的位置或对象的姿态。例如 O s a d c h y Osadchy Osadchy 等人[23]描述了一种用于同时进行人脸检测和姿态估计的 C o n v N e t ConvNet ConvNet。面部由 9 9 9 维输出空间中的 3 D 3D 3D 流形表示。流形上的位置指示姿态(俯仰、偏航和滚转)。当训练图像是一张脸时,训练网络在流形上已知姿势的位置上产生一个点。如果图像不是人脸,输出会被推离流形。在测试时,到流形的距离指示图像是否包含人脸,流形上最近点的位置指示姿势。 T a y l o r Taylor Taylor 等人[27][28]使用 C o n v N e t ConvNet ConvNet 来估计身体部位(手、头等)的位置,从而得出人体姿势。他们使用度量学习标准来训练网络在身体姿势流形上产生点。 H i n t o n Hinton Hinton 等人还建议训练网络计算特征的显式实例化参数,作为识别过程的一部分[12]。
其他作者已经提出通过基于 C o n v N e t ConvNet ConvNet 的分割来进行目标定位。最简单的方法是训练 C o n v N e t ConvNet ConvNet 将观察窗口的中心像素(或体积图像的体素)分类为区域之间的边界或非边界[13]。但是当必须对区域进行分类时,最好执行语义分割。主要的想法是训练 C o n v N e t ConvNet ConvNet 将观察窗的中心像素与它所属的对象的类别进行分类,使用该窗口作为决策的上下文。应用范围从生物图像分析[21],到移动机器人[10] 的障碍物标记,再到图片[7] 的标记。这种方法的优点是边界轮廓不需要是矩形,区域也不需要是外接良好的对象。缺点是训练需要密集的像素级标签。这种分割预处理或对象提议步骤最近在传统计算机视觉中流行起来,以减少用于检测的位置、比例和纵横比的搜索空间 [19][2][6][29]。因此,可以在搜索空间的最佳位置应用昂贵的分类方法,从而提高识别精度。此外,[29][1]表明这些方法通过大幅减少不太可能的目标区域来提高准确性,从而减少潜在的假正例。然而,在 I L S V R C 13 ILSVRC13 ILSVRC13 检测数据集上,我们的密集滑动窗口方法能够胜过对象提议方法。
K r i z h e v s k y Krizhevsky Krizhevsky 等人,[15] 最近使用大型 C o n v N e t ConvNet ConvNet 展示了令人印象深刻的分类性能。作者还参加了 I m a g e N e t 2012 ImageNet~2012 ImageNet 2012 竞赛,赢得了分类和定位挑战。尽管他们展示了令人印象深刻的定位性能,但是还没有公开的工作描述他们的方法。因此,我们的论文是第一篇清楚解释如何使用 C o n v N e t s ConvNets ConvNets 对 I m a g e N e t ImageNet ImageNet 数据进行定位和检测的论文。
在本文中,我们使用术语定位和检测的方式与他们在 I m a g e N e t 2013 ImageNet~2013 ImageNet 2013 竞赛中使用的方式一致,即唯一的区别是使用的评估标准,并且两者都包括预测图像中每个对象的边界框。
2、视觉任务
本论文研究三个视觉任务,难度逐渐增加:
- 分类
- 定位
- 检测
每个任务是下一个任务的子任务。虽然所有任务都是使用一个框架和一个共享的特征学习库来解决的,但是我们将在下面的章节中分别描述它们。
在分类任务中,每个图像都被分配了一个与图像中的主要对象相对应的标签。允许五次猜测来找出正确的答案(这是因为图像还可以包含多个未标记的对象)。定位任务类似于每个图像允许 5 5 5 次猜测,但是每次猜测都必须返回预测对象的边界框。要想被认为是正确的,预测框与 g r o u n d t r u t h groundtruth groundtruth 至少匹配 50 % 50\% 50% (使用PASCAL交并比的标准),并且用正确的类别标记(即,每个预测都是一个关联在一起的标签和边界框)。检测任务不同于定位,因为每个图像中可以有任意数量的对象(包括零个),并且误报会受到平均精度 ( m A P ) (mAP) (mAP) 测量的惩罚。定位任务是分类和检测之间的一个方便的中间步骤,它允许我们独立于特定于检测的挑战来评估我们的定位方法(如学习背景类)。注意,分类和定位共享同一个数据集,而检测也有其他数据,其中对象可能更小。检测数据还包含一组图像,其中某些对象不存在。这可以用于自举,但是我们没有在这项工作中使用它。
3、分类
我们的分类结构类似于 I L S V R C 12 ILSVRC12 ILSVRC12 由 K r i z h e v s k y e t Krizhevskyet Krizhevskyet 等人提出的最好的体系结构[15]。然而,我们改进了网络设计和推理步骤。由于时间限制, K r i z h e v s k y Krizhevsky Krizhevsky 的模型中的一些训练特征没有被研究,因此我们期望我们的结果能够得到进一步的改进。这些将在第 1.6 1.6 1.6 节未来的工作中讨论。
3.1、模型设计和训练
训练网络在 I m a g e N e t 2012 ImageNet 2012 ImageNet2012 训练集上。模型使用 K r i z h e v s k y Krizhevsky Krizhevsky 等人提出的相同固定输入大小的方法。如下一节所述,训练期间转向多尺度分类,每幅图像被降采样,使得最小维度为 256 256 256 像素。然后我们提取 5 5 5 个大小为 221 × 221 221\times221 221×221 像素的随机裁剪(及其水平翻转)并且将它们以大小为 128 128 128 的 m i n i − b a t c h e s mini-batches mini−batches 呈现给网络。网络权重用 ( µ , σ ) = ( 0 , 1 × 1 0 − 2 ) (µ, σ)=(0, 1\times10^{−2}) (µ,σ)=(0,1×10−2) 进行初始化,通过随机梯度下降进行更新,同时 m o m e n t u m momentum momentum 项为 0.6 0.6 0.6, l 2 l_2 l2 权重衰减项为 1 × 1 0 − 5 1\times10^{-5} 1×10−5。学习率初始化为 5 × 1 0 − 2 5\times10^{-2} 5×10−2,并且在 ( 30 , 50 , 60 , 70 , 80 ) (30,50,60,70,80) (30,50,60,70,80) 次迭代后依次衰减 0.5 0.5 0.5 倍。在分类器的第 6 6 6 、第 7 7 7 全连接层上 D r o p O u t DropOut DropOut 参数设为 0.5 0.5 0.5 。
表 1 1 1 和表 3 3 3 详细介绍了网络结构大小。
表 1 : 快 速 模 型 的 结 构 细 节 表~1:快速模型的结构细节 表 1:快速模型的结构细节
层 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Output |
---|---|---|---|---|---|---|---|---|
阶段 | conv+max | conv+max | conv | conv | conv+max | full | full | full |
#通道数 | 96 | 256 | 512 | 1024 | 1024 | 3072 | 4096 | 1000 |
核大小 | 11 × 11 11\times11 11×11 | 5 × 5 5\times5 5×5 | 3 × 3 3\times3 3×3 | 3 × 3 3\times3 3×3 | 3 × 3 3\times3 3×3 | - | - | - |
卷积步长 | 4 × 4 4\times4 4×4 | 1 × 1 1\times1 1×1 | 1 × 1 1\times1 1×1 | 1 × 1 1\times1 1×1 | 1 × |