专栏名称: 计算机视觉研究院
主要由来自于大学的研究生组成的团队,本平台从事机器学习与深度学习领域,主要在人脸检测与识别,多目标检测研究方向。本团队想通过计算机视觉战队平台打造属于自己的品牌,让更多相关领域的人了解本团队,结识更多相关领域的朋友,一起来学习,共同进步!
目录
相关文章推荐
CHINADAILY  ·  Editorial丨Reengagement ... ·  昨天  
CHINADAILY  ·  原来讲究的人买T恤,会看这些方面 ·  昨天  
纪法指引  ·  【镜鉴】市委书记陈金虎,任上被查! ·  昨天  
新京报评论  ·  曝光被性侵女演员隐私为道德和法律不容 | ... ·  2 天前  
CHINADAILY  ·  Editorial丨Make-believe ... ·  3 天前  
51好读  ›  专栏  ›  计算机视觉研究院

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

计算机视觉研究院  · 公众号  ·  · 2018-10-17 07:57

正文

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

论文: 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的性能。







请到「今天看啥」查看全文