zoukankan      html  css  js  c++  java
  • 卓越的目标检测器Pelee

    Densenet的改良—PeleeNET

    Pelee: A Real-Time Object Detection System on Mobile Devices

    论文地址:https://arxiv.org/abs/1804.06882

      Peleenet专注于优化小型网络,针对densenet的结构做出了改良,达到了目前最先进的水准。在已有的在移动设备上执行的深度学习模型例如 MobileNet、 ShuffleNet 等都严重依赖于在深度上可分离的卷积运算,而缺乏有效的实现。在本文中,来自加拿大西安大略大学的研究者提出了称为 PeleeNet 的有效架构,它没有使用传统的卷积来实现。PeleeNet 实现了比目前最先进的 MobileNet 更高的图像分类准确率,并降低了计算成本。研究者进一步开发了实时目标检测系统 Pelee,以更低的成本超越了 YOLOv2 的目标检测性能,并能流畅地在 iPhone6s、iPhone8 上运行。

    PeleeNET是DenseNet (Huang et al. (2016a)) 的一个变体。专门用于移动设备。PeleeNet 遵循 DenseNet 的创新连接模式和一些关键设计原则。它也被设计来满足严格的内存和计算预算。在 Stanford Dogs (Khosla et al.(2011)) 数据集上的实验结果表明:PeleeNet 的准确率要比 DenseNet 的原始结构高 5.05%,比 MobileNet (Howard et al. (2017)) 高 6.53%。PeleeNet 在 ImageNet ILSVRC 2012 (Deng et al. (2009)) 上也有极具竞争力的

    结果。PeleeNet 的 top-1 准确率要比 MobileNet 高 0.6%。需要指出的是,PeleeNet 的模型大小是 MobileNet 的 66%。

    PeleeNET的主题架构如下:


    在输出的部分,对接了一个stem block 然后接了改良版的dense block 获取图像的特征。接着用transition layer来进行将维。在经过这些一系列的特征提取之后,使用全局平均池化接全连阶层分类。

    下面来讲解每个部分:


    stem block由图中结构组成。受到inceptionV4的启发,作者设计了更有效率的stem block 如图(b)所示,这个模块可以有效的提升模型的特征表达能力。而不会添加特别多的额外计算量,比其他的扩张模型表现更好。比如提升第一层卷积层的通道数,或提升增长率。

    两路稠密层:受 GoogLeNet (Szegedy et al. (2015)) 的两路稠密层的激发,研究者使用了一个两路密集层来得到不同尺度的感受野。其中一路使用一个 3×3 的较小卷积核,它能够较好地捕捉小尺度的目标。另一路使用两个 3×3 的卷积核来学习大尺度目标的视觉特征。该结构如图(a) 所示。K是卷积核的数量。瓶颈层通道的动态数量:另一个亮点就是瓶颈层通道数目会随着输入维度的变化而变化,以保证输出通道的数目不会超过输出通道。与原始的 DenseNet 结构相比,实验表明这种方法在节省 28.5% 的计算资源的同时仅仅会对准确率有很小的影响。

    没有压缩的转换层:实验表明,DenseNet 提出的压缩因子会损坏特征表达,PeleeNet 在转换层中也维持了与输入通道相同的输出通道数目。复合函数:为了提升实际的速度,采用后激活的传统智慧(Convolution - Batch Normalization (Ioffe & Szegedy (2015)) - Relu))作为我们的复合函数,而不是 DenseNet 中所用的预激活。对于后激活而言,所有的批正则化层可以在推理阶段与卷积层相结合,这可以很好地加快速度。为了补偿这种变化给准确率带来的不良影响,研究者使用一个浅层的、较宽的网络结构。在最后一个密集块之后还增加了一个 1×1 的卷积层,以得到更强的表征能力。

    作者使用自己的PeleeNet作为前端,后接Single Shot MultiBox Detector,SSD)的后端组合而成的pelee在 PASCAL VOC (Everingham et al. (2010)) 2007 数据集上达到了 76.4% 的准确率,在 COCO 数据集上达到了 22.4% 的准确率。在准确率、速度和模型大小方面,Pelee 系统都优于YOLOv2 (Redmon & Farhadi (2016))。为了平衡速度和准确率所做的增强设置如下。

    SSD论文讲解如下https://www.cnblogs.com/ansang/p/9361631.html

    特征图选择:以不同于原始 SSD 的方式构建目标检测网络,原始 SSD 仔细地选择了 5 个尺度的特征图 (19 x 19、10 x 10、5 x 5、3 x 3、1 x 1)。为了减少计算成本,没有使用 38×38 的特征图。在pelee上面,作者使用残差预测块进行预测:遵循 Lee 等人提出的设计思想(2017),即:使特征沿着特征提取网络传递。对于每一个用于检测的特征图,在实施预测之前构建了一个残差 (He et al.(2016)) 块(ResBlock)。ResBlock 的结构如图 2 所示:

     

    1x1 的核将计算成本减少了 21.5%。

    用于预测的小型卷积核:残差预测块让我们应用 1×1 的卷积核来预测类别分数和边界框设置成为可能。实验表明:使用 1×1 卷积核的模型的准确率和使用 3×3 的卷积核所达到的准确率几乎相同。研究者在 iOS 上提供了 SSD 算法的实现。他们已经成功地将 SSD 移植到了 iOS 上,并且提供了优化的代码实现。该系统在 iPhone 6s 上以 17.1 FPS 的速度运行,在 iPhone8 上以 23.6 FPS的速度运行。在 iPhone 6s(2015 年发布的手机)上的速度要比在 Intel i7-6700K@4.00GHz CPU 上的官方算法实现还要快 2.6 倍。

     

    1不同的设计选择的效果得到的性能

    2 Stanford Dogs 数据集上的结果。MACs:乘法累加的次数,用于度量融合乘法和加法运算次数

     

    3:在 ImageNet ILSVRC 2012 数据集上的结果

     

    4不同设计选择上的性能结果

    5:在 PASCAL VOC 2007 数据集上的结果。数据:07+12VOC2007 VOC2012 联合训练;07+12+COCO,先在 COOC 数据集上训练 35000 次,然后在 07+12 上继续微调。 

    6实际设备上的速度

     

    7 COCO test-dev2015 数据集上的结果

  • 相关阅读:
    GROK解析正则表达式
    夜神模拟器和Hbuilder连接
    使用notepad++批量在每行首尾添加内容
    mybatis-plus
    laravel controller 层---数据库操作
    laravel controller 层---请求参数传递
    laravel controller 层---数据验证
    laravel model 层
    laravel 博客收藏,转载篇
    laravel 用法大全开始
  • 原文地址:https://www.cnblogs.com/ansang/p/9358658.html
Copyright © 2011-2022 走看看