哇~这么Deep且又轻量的Network,实时目标检测

2018 年 8 月 15 日 计算机视觉战队

最近挺对不住关注“计算机视觉战队”平台的小伙伴,有段时间没有给大家分享比较硬比较充实的“干货”了,在此向大家表示抱歉,今天抽空之余,想和大家说说目标的实时检测。

论文:https://www.arxiv.org/pdf/1608.08021v3.pdf

文末有相应的代码,大家有兴趣的可以尝试去实现!

首先来具体介绍下这个技术的主要摘要:

摘要


主要介绍了如何通过调整和结合最新的技术创新,在最大限度地降低计算成本的同时,实现多类目标检测任务的最先进精度。根据CNN特征提取区域候选ROI分类的一般流程,主要对特征提取部分进行了重新设计,因为区域候选部分计算量不高,可以使用truncated SVD等常用技术对分类部分进行有效压缩

本次的设计原则是“减少多层的通道”,并采用一些构建块,包括级联的relu、in-ception和HyperNet。所设计的网络是一种深而轻量(薄)的网络,通过批量归一化、残差连接和基于平台检测的学习率进行训练。最终在著名的目标检测基准上取得了很不错的结果:

VOC 2007上的MAP(平均精度)为83.8%

VOC 2012(第二位)为82.5%

而在NVIDIA Titan X GPU上,Intel i7-6700 K CPU上的平均图像为750 ms/图像

从理论上讲,网络只需要12.3%的计算成本相比于ResNet-101。


近年来,卷积神经网络(CNNs)在目标检测方面取得了令人瞩目的进步。由于许多创新工作,最近的物体检测系统在汽车和监视等广泛的市场上达到了可接受的精确性。然而,在检测速度方面,即使是最好的算法也仍然面临着沉重的计算成本。虽然最近在网络压缩和量化方面的工作取得了很好的效果,但在网络设计阶段,降低计算量是非常重要的。

于是,提出了一种用于目标检测的轻量级特征提取网络体系结构——PVANET,它与其他先进的目标检测系统相比,在不降低精度的前提下,实现了实时的目标检测性能。

具体有如下体现:


  1. Computational cost:输入1065*640尺寸的图像在特征提取时,需要7.9GMAC(ResNet-101:80.5GMAC);

  2. Runtime performance:750ms/image (1.3FPS) ,Intel i7-6700K CPU (单核);46ms/image (21.7FPS),NVIDIA Titan X GPU;

  3. 精度: 83.8% mAP on VOC-2007; 82.5% mAP on VOC-2012 (2nd place)


关键设计原则是“多层少通道”。此外网络采用了一些最近的构建块(building blocks),可惜的事,一些都没有验证它们在目标检测任务中的有效性。


  • 将级联ReLU(C.ReLU)应用于CNN的早期阶段(即从网络输入的前几层),使计算次数减少一半而不失去准确性

  • Inception应用于特征生成子网络的剩余部分。在接收模块产生不同大小的接收字段的输出激活,从而增加前一层中接收字段大小的变化。可以观察到,叠加初始空间模块可以比线性卷积链更有效地捕获变化较大的目标

  • 采用了像HyperNet这样的多尺度表示的思想,结合了多个中间输出,从而可以同时考虑多层细节和非线性,如下图:

说了这么多,都没有给出详细框架图,现在我们直接开始解读网络细节问题。

网络的设计细节


  • C.ReLU

C.ReLU的动机来自于对CNN中间激活模式的有趣观察。在早期阶段,输出节点往往是“配对”的,因此一个节点的激活与另一个节点的相反。从这个观察来看,C.ReLU将输出通道的数量减少了一半,并通过简单地将相同的输出与负样本连接在一起,从而使早期阶段的速度提高了2倍,而不失去准确性。

下图显示了C.ReLU的实现。与原来的C.ReLU相比,在级联后增加了缩放和移位,使得每个通道的斜率和激活阈值可以与其相反的通道不同。

  • Inception:特征生成中Remaining构建块

对于目标检测任务,Inception既没有被广泛应用于现有的工作中,也没有被验证其有效性。

但是发现,Inception可以是在输入图像中捕获小目标和大目标的最具成本效益的构建块之一。为了学习捕捉大目标的视觉模式,CNN的输出特征应该与足够大的感受野相对应,这可以通过叠加3x3或更大的核来实现。

另一方面,为了捕获小型目标,输出特性应该与足够小的感受野相对应,以便精确地定位感兴趣的小区域。

下图就清楚地显示了Inception可以满足这两个需求。1x1卷积是实现这一目的关键,它保留了前一层的感受野。它只是增加了输入模式的非均匀性,减缓了一些输出特征的感受野的增长,从而使小尺寸的目标能够被精确捕获。

下图展示了Inception的实现。用两个顺序的3x3卷积代替5x5卷积。

  • HyperNet:多尺度中间输出的级联

注:HyperNet将在下期详细介绍。

多尺度表示法及其组合在最近的许多深度学习任务中被证明是有效的,有兴趣的朋友可以期待我们下期的介绍。在特征提取层结合细粒度细节和高度抽象的信息,可以帮助后续区域候选网络和分类网络检测不同尺度的目标。

然而,由于所有抽象层的直接连接都会产生具有更高计算要求的冗余信息,因此需要仔细设计不同抽象层的节点和抽象层数。如果您选择目标候选和分类还为时尚早的层,当我们考虑额外的计算复杂性时,这将没有多大帮助。

本次的设计选择与ION和HyperNet的观测结果没有什么不同,后者结合了①最后一层和②两个中间层,其尺度分别为最后一层的2倍和4倍。选择中等规模的层作为参考比例尺(=2x),并将4x缩放层和最后一层分别用向下缩放(pool)和向上缩放(线性插值)连接起来。


接下来就是训练阶段


  • 深度网络训练

人们普遍认为,随着网络的深入,网络培训变得越来越麻烦。

通过采用residual structures来解决这个问题。与最初的残差训练思想不同,将残余连接添加到初始层,以稳定深层网络体系结构的后期。

还在所有ReLU激活层之前添加了批处理规范化层。小批量样本统计在预训练期间使用,moving average统计随后作为固定的尺度和移位参数使用。学习速率策略对于网络的成功训练也是非常重要的。

策略是在平台检测的基础上动态地控制学习速度。测量损失的moving average,并确定在一定的迭代周期内,如果它的改善低于一个阈值,它就处于平稳状态。每当检测到平台时,学习速率就会降低一个常数因子。

在实验中,学习速率策略获得了显著的准确性。


Faster R-CNN with our feature extraction network

下表显示了PVANET的整体结构。

在早期阶段(卷积1_1,...,卷积3_4),C.ReLU适用于卷积层,使KxK Conv的计算量减少了一半。在KxK Conv之前和之后分别添加1x1Conv层,以减小输入大小,从而扩大表示容量。

将来自卷积3_4(具有向下缩放)、卷积4和卷积5 4的三个中间输出组合成512通道多尺度输出特征(卷积f),这些特征被输入到Faster R-CNN模块:

  • 为了计算效率,只有前128个信道被输入到区域候选网络(RPN)中。RPN是“3x3 conv(384个信道)-1x1 conv(25x(2)=150个声道”层的序列

  • R-CNN中产生感兴趣区域(ROIS)。对于每个ROI,6x6x512张量是由ROI 池化生成的,然后经过一系列全连接的“4096-4096-(21,84)”输出节点


实验


  • VOC 2007

  • 下表展示了模型在不同配置下的准确率。由于Inception和多尺度特征,RPN产生的初始的候选非常准确。

    因为结果表示超过200个proposals没有对检测的准确率起到显著的帮助,于是,在剩下的实验中把proposals 的数量固定在200个。其中也测量了当迭代回归不使用时用带有bounding-box voting的性能。


  • VOC 2012

  • 总结了PVANET+和一些先进的网络在VOC2012数据集上的比较。PVANET+达到了82.5%mAP,位列排行榜的第二名,超过其他竞争者除了"Faster R-CNN + ResNet-101"。

    然而第一名使用的ResNet-101比PVANET大很多,同时耗时。

    例如全局上下文和多尺度测试,导致至少比PVANET慢40倍。在下表,还比较了computation cost。在所有超过80%mAP的网络中,PVANET是唯一一个运行时间小于50ms的。考虑精度和计算cost,PVANET+是排行榜中最有效的网络。

    总结


    说了这么多,一直在说现在网络固然好,变的更深更鲁棒,但是现有的网络却是高度冗余的,于是,可以设计一个足够适合复杂视觉任务的薄而轻的网络。

    精心的采用和组合最近的技术创新对深度学习,使得大家有可能重新设计Faster R-CNN框架的特征提取部分,以最大限度地提高计算效率。

    尽管所提出的网络是为目标检测而设计的,但我相信该设计原则可以广泛应用于人脸识别和语义分析等其他任务,网络设计完全不依赖于网络的压缩和量化。现有的各种压缩和量化技术也适用于该网络,以进一步提高实际应用中的性能。

    作为一个例子,我们证明了像truncated SVD这样的简单技术可以在基于该网络的运行时性能上取得显著的改善。


    下期:HyperNet,有兴趣到时候一起在学习群讨论!

    如果想加入我们“计算机视觉战队”,请扫二维码加入学习群,我们一起学习进步,探索领域中更深奥更有趣的知识!

登录查看更多
7

相关内容

专知会员服务
160+阅读 · 2020年4月21日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
38+阅读 · 2020年2月21日
深度神经网络模型压缩与加速综述
专知会员服务
128+阅读 · 2019年10月12日
三分支网络——目前目标检测性能最佳网络框架
人工智能前沿讲习班
6+阅读 · 2019年3月5日
基于手机系统的实时目标检测
计算机视觉战队
8+阅读 · 2018年12月5日
这样可以更精确的目标检测——超网络
计算机视觉战队
6+阅读 · 2018年9月3日
期待已久的—YOLO V3
计算机视觉战队
20+阅读 · 2018年4月13日
SSD多盒实时目标检测教程
论智
13+阅读 · 2018年4月5日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
CoCoNet: A Collaborative Convolutional Network
Arxiv
6+阅读 · 2019年1月28日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
5+阅读 · 2018年5月16日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关资讯
三分支网络——目前目标检测性能最佳网络框架
人工智能前沿讲习班
6+阅读 · 2019年3月5日
基于手机系统的实时目标检测
计算机视觉战队
8+阅读 · 2018年12月5日
这样可以更精确的目标检测——超网络
计算机视觉战队
6+阅读 · 2018年9月3日
期待已久的—YOLO V3
计算机视觉战队
20+阅读 · 2018年4月13日
SSD多盒实时目标检测教程
论智
13+阅读 · 2018年4月5日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
Top
微信扫码咨询专知VIP会员