翻译PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection

摘要:

      本文介绍了如何通过适应和结合最近的技术创新,最大限度地降低计算成本,从而实现多类别对象检测任务中的最新精度。继“CNN特征提取+区域提案+ RoI分类”这一常用管道之后,我们主要重新设计特征提取部分,因为区域提案部分计算量不大,并且分类部分可以用截短SVD等常用技术进行有效压缩。我们的设计原则是少层多渠道”,并采用了一些构建模块,包括连接的ReLU,Inception和HyperNet。所设计的网络是深入细致的,并通过基于平台检测的批量归一化,残留连接和学习速率调度来训练。 我们在众所周知的物体检测基准测试中获得了可靠的结果:在VOC2007上的81.8%mAP(平均精度)和在VOC2012上的82.5%mAP(第二名),而单核处理的英特尔i7-6700K CPU仅为750ms / NVIDIA Titan X GPU上46ms /图像。

1 介绍

卷积神经网络(CNNs)在数年内在物体检测方面取得了令人瞩目的进步。由于许多创新性的工作,最近的物体检测系统在汽车和监控等广泛的市场中已经达到商业化的可接受精度。然而,就检测速度而言,即使是最好的算法仍然承受着沉重的计算成本。尽管最近在网络压缩和量化方面的工作显示出有希望的结果,但在网络设计阶段降低计算成本非常重要。

本文介绍了我们用于物体检测的轻量级特征提取网络体系结构,名为PVANET,与其他最先进的系统相比,该体系结构可实现实时对象检测性能,而不会降低准确性:

计算成本:7.9GMAC,用于1065x640输入的特征提取(参见ResNet-101 [1]:80.5GMAC1)

运行时性能:采用单内核的Intel i7-6700K CPU上的750ms /图像(1.3FPS); NVIDIA Titan X GPU上的46ms /图像(21.7FPS)

准确性:VOC-2007上81.8%的mAP; VOC-2012的82.5%mAP(第二名)

关键设计原则是“更少层数的渠道少”。 此外,我们的网络采用了一些最近的构建模块,而其中一些模块尚未在物体检测任务中验证其有效性:

       级联整流线性单元(C.ReLU)[2]应用于CNN的早期阶段(即网络输入的前几层),以减少一半的计算次数而不会降低精度

       Inception[3]适用于剩余的我们的特征生成子网络。 Inception模块产生不同大小感受野的输出激活,从而增加前一层感受野大小的变化。 我们观察到叠加起始模块可以比线性卷积链更有效地捕获大小不同的物体。

       我们采用了像HyperNet这样的多尺度表示的思想[4],它结合了几个中间输出,因此可以同时考虑多层次的细节和非线性。

我们将证明,我们薄而深的网络可以通过批量归一化[5],残留连接[1]和基于平稳检测的学习速率调度[1]有效地进行训练。

在剩下的论文中,我们简要描述我们的网络设计(第2节)并总结PVANET的详细结构(第3节)。 最后,我们提供了关于VOC-2007和VOC-2012基准的一些实验结果,并提供了详细的培训和测试设置(第4节)。

2  网络设计详情

2.1 C.ReLU:特征生成的早期构建块

C.ReLU的动机来自对CNN中的中间激活模式的有趣观察。 在早期阶段,输出节点往往是“配对”的,这样一个节点的激活就是另一个节点的对立面。 从这一观察结果来看,C.ReLU将输出通道的数量减少了一半,并且通过简单地将相同的输出与负数连接在一起将其加倍,这导致早期阶段的2倍加速而不失准确性。

图1说明了我们的C.ReLU实现。 与最初的C.ReL相比,我们在拼接后追加缩放和移位,以允许每个通道的斜率和激活阈值可以与其相反通道的斜率和激活阈值不同。

翻译PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection_第1张图片

               图 1

图1:我们的C.ReLU构建模块。 否定只是将-1与Convolution的输出相乘。 比例/偏移对每个通道应用可训练的权重和偏差,允许否定部分的激活具有适应性。

2.2  Inception: 特征生成的剩余构件块

对于物体检测任务,Inception没有被广泛应用于现有的工作,也没有被证实其有效性。我们发现Inception可以成为捕获输入图像中的小型和大型物体的最具成本效益的构建模块之一。为了学习捕捉大对象的视觉模式,CNN的输出特征应该对应于足够大的感受域,这可以通过叠加3×3或更大的内核的卷积来容易地实现。另一方面,为了捕捉小尺寸物体,输出特征应该对应于足够小的接受区域以精确地定位小的感兴趣区域

图2清楚地表明,Inception可以满足这两个要求。 通过保留前一层的接受域,1x1卷积对此起着关键作用。 只要增加输入模式的非线性,就会减缓某些输出特征的感受域的增长,从而可以精确捕获小尺寸的对象。 图3说明了我们的Inception实现。 5×5卷积被两个3×3卷积的序列替换。

图2:3个Inception模块链中中间输出的(预期)接受域大小的分布示例。 每个模块连接3个不同内核大小的卷积层,分别为1x1,3x3和5x5。 每个模块中的输出通道数分别设置为前一个模块通道数的{1 / 2,1 / 4,1 / 4}。 后一个Inception模块可以学习更大范围尺寸的视觉模式,以及更高水平的非线性。

图3 :(左)我们的初始构建块。 5x5卷积被替换为两个3x3卷积层以提高效率。 (右)用于将特征地图尺寸缩小一半的启动。

2.3  HyperNet:多级中间输出级联

多尺度表示及其组合在许多近期的深度学习任务中被证明是有效的[4,6,7]。 在特征提取层中将细粒度的细节与高度抽象的信息相结合,有助于下面的区域提取网络和分类网络检测不同尺度的对象。 然而,由于所有抽象层的直接级联可能产生具有更高计算需求的冗余信息,因此我们需要仔细设计不同抽象层的数量和抽象层数。 如果您选择目标提议和分类为时尚早的图层,那么当我们考虑额外的计算复杂性时,它将没有什么帮助

我们的设计选择与ION [6]和HyperNet [4]的观察结果没有什么不同,后者分别结合了1)最后一层和2)两个中间层,其尺度分别是最后一层的2倍和4倍。 我们选择中等尺寸的图层作为参考尺度(= 2x),并分别将缩放(池化)和放大(线性插值)连接到4x缩放层和最后一层。

Table 1   PVANET的详细结构所有conv层都与批量标准化,通道缩放和移位以及ReLU激活层相结合。 假设输入图像大小为1056x640,则理论计算成本为加法和乘法的数量(MAC).KxK C.ReLU指的是一系列“1x1 - KxK - 1x1”conv层,其中KxK是C. ReLU块,如图1所示。conv1_1没有1x1的conv层。 “C.ReLU”列显示每个conv层的输出通道数量。 对于残差,将1x1转化用于将pool1_1投射到conv2_1,conv2_3投射到conv3_1,conv3_4投射到conv4_1,并将conv4_4投射到conv5_1。Inception包含四个子序列:1x1 conv(#1x1); “1x1 - 3x3”conv(#3x3); “1x1 - 3x3 - 3x3”conv(#5x5);“3x3 max-pool - 1x1 conv”(#pool,仅适用于步幅2)。 “#out”是指连接这些子序列后的1x1 conv。显示每个conv层的输出通道数。多尺度特征通过四个步骤获得:conv3_4通过步长2的3x3最大池被缩减为“downscale”; conv5_4通过4x4逐通道解卷积放大为“upscale”,其权重固定为双线性插值; “downscale”,conv4_4和“upscale”通过通道级联结合成“concat”;在1x1 conv之后,获得最终输出(convf)。

2.4  深度网络训练

人们普遍认为,随着网络越来越深入,网络的培训变得更加麻烦。 我们通过采用残差结构来解决这个问题[1]。 与原始的剩余训练想法不同,我们在初始层添加了剩余连接以稳定我们深层网络体系结构的后期部分

我们还在所有ReLU激活层之前添加批量标准化[5]层。 在预训练期间使用小批量样本统计,之后将移动平均的统计作为固定的缩放和移位参数。

学习率政策对于成功培训网络也很重要。 我们的策略是基于平台检测动态地控制学习率[1]。 我们测量损失的移动平均值,并且如果在一定的迭代周期内其改进低于阈值,则将其确定为高原。 每当检测到高原时,学习速率就会降低一个常数。 在实验中,我们的学习率政策带来了准确性的显着提高。

使用我们的特征提取网络Faster R-CNN

表1显示了PVANET的整个结构。 在早期阶段(conv1_1,...,conv3_4),C.ReLU适用于卷积层,以将KxK conv的计算成本降低一半。 在KxK conv之前和之后添加1x1 conv层,以分别减小输入大小和扩大表示容量。

来自conv3_4(具有缩小比例),conv4_4和conv5_4(具有放大比例)的三个中间输出被合并到512通道多尺度输出特征(convf)中,这些输出特征被馈送到Faster R-CNN模块中:

           为了计算效率,只有convf中的前128个通道被馈送到区域提议网络(RPN)中。 我们的RPN是一系列“3x3 conv(384个通道) - 1x1 conv(25x(2 + 4)= 150个通道2)”图层,从中生成感兴趣区域(RoIs)

          R-CNN全部收集512个频道。 对于每个RoI,通过RoI池生成6x6x512张量,然后通过“4096 - 4096 - (21 + 84)”输出节点的完全连接层序列。

4 实验结果

PVANET采用ILSVRC2012训练图像进行1000级图像分类预训练。所有图像被调整大小为256x256,随机裁剪192x192补丁并用作网络输入。


以下内容:略



你可能感兴趣的:(翻译)