热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

tiny识别不出yolov4_超越YOLOv4tiny!比YOLOv3快7倍!YOLObile:移动端上的目标检测...

https:arxiv.orgabs2009.05697https:github.comCoCoPIE-PruningCoCoPIE-ModelZootreemasterYOLOb

https://arxiv.org/abs/2009.05697

https://github.com/CoCoPIE-Pruning/CoCoPIE-ModelZoo/tree/master/YOLObile

YOLObile

比YOLOv3快7倍,同时准确率更高。在手机上实现19FPS实时高准确率目标检测,已开源。

由于近年来在深度神经网络(DNN)的领域的突破,物体检测作为计算机视觉领域的主要任务之一,引起了学术界和工业界的广泛研究。物体检测在众多计算机视觉任务中被广泛采用,包括图像标注、事件检测、物体追踪、分割和活动识别等,其应用包括自动驾驶、无人机避障、机器人视觉、人机交互和增强现实等。考虑到在这些实际场景中的应用,物体检测网络往往被需要在保持高准确率的同时拥有较低计算延迟。而现有的物体检测网络,在资源有限的平台上,尤其是像手机和嵌入式设备上部署这类应用时,很难同时实现高准确率与实时检测。

在过去的几年中,有很多优秀的物体检测网络被相继提出。其中的two-stage检测网络包括RCNN系列和SPPNet等,还有one-stage检测网络如YOLO系列,SSD和Retina-Net等。相较于two-stage网络,one-stage网络在牺牲一定准确率的情况下换来了更快的执行速度。即便如此,这些网络依然需求较大的计算量来达到可接受的准确率,这成为了这些网络难以在移动设备上实现实时推理的主要阻碍。为此,一些轻量级(lightweight)物体检测网络被提出,如SSD-Lite, YOLO-Lite, YOLO-tiny等,以满足在移动设备上快速的物体检测。但是这些轻量级网络的解决方案效果依然不理想,因为他们会导致检测准确率的大幅降低。

近日,由美国东北大学王言治研究组,威廉玛丽学院任彬研究组和匹兹堡大学汤旭龙老师共同提出了名为YOLObile的手机端物体检测加速框架。YOLObile框架通过“压缩-编译”协同设计在手机端实现了高准确率实时物体检测。该框架使用了一种新提出的名为“块打孔”的权重剪枝方案,来对模型进行有效的压缩。他们还提出了一种高效的GPU-CPU协同计算优化方案来进一步提高计算资源的利用率和执行速度,并在他们的编译器优化技术的协助下,最终在手机端实现高准确率的实时物体检测。相比YOLOv3完整版,该框架快7倍,在手机上实现19FPS实时高准确率目标检测。并且同时准确率(mAP)高于YOLOv3,并没有牺牲准确率提高计算速度。

开源模型与代码见:

https://github.com/CoCoPIE-Pruning/CoCoPIE-ModelZoo/tree/master/YOLObile

他们的实验结果表明,当使用YOLOv4为基础模型进行优化时,他们的优化框架可以成功将原模型大小压缩小14倍,在未使用GPU-CPU协同计算优化时,将每秒检测帧数(FPS)提升至17,且达到49的准确率(mAP)。

从下图中可以看到,与众多具有代表性的物体检测网络相比,他们的优化模型在准确率与速度两方面同时具有优异的表现,而不再是简单的牺牲大幅准确率来获取一定程度的速度提升。

下表展示了YOLObile与其他具有代表性的物体检测网络在准确率与速度方面的具体比较。值得注意的是,他们的GPU-CPU协同计算优化方案可以进一步将执行速度提高至19FPS。

“块打孔”权重剪枝方案

在YOLObile优化框架中,他们使用了新提出的名为“块打孔”的权重剪枝(weight pruning)方案。这种剪枝方案意在获得较高的剪枝结构自由度的同时,还能使剪枝后的模型结构较好的利用硬件并行计算。这样就从两方面分别保证了剪枝后模型的准确率以及较高的运算速度。

在这种剪枝方案中,每层的权重矩阵将被划分为等大小的多个小区块(block),因此,每个小区块中将包含来自m个filter的n个channel的权重。在每个小区块中,他们对被修剪权重的位置做出了如下的限定,需要修剪所有filter相同位置的一个或多个权重,同时也修剪所有通道相同位置的一个或多个权重。从另一个角度来看,这种剪枝方案将权重的修剪位置将贯穿了整个小区块中所有的卷积核(kernel)。

1.在准确率方面,通过划分多个小区块,这种剪枝方法实现了更加细粒度的剪枝。相较于传统的结构化剪枝(剪除整个filter或channel),这种方式具有更高的剪枝结构自由度,从而更好地保持了模型的准确率。

2.在硬件表现方面,因为在同一小区块中,所有filter修剪被修剪的位置相同,所以在并行计算时,所有filter将统一跳过读取相同的输入数据,从而减轻处理这些filter的线程之间的内存压力。而限制修剪小区块内各channel的相同位置,确保了所有channel共享相同的计算模式,从而消除处理每个channel的线程之间的计算差异。因此,这种剪枝方案可以大幅度的降低在计算过程中处理稀疏结构的额外开销,从而达到更好的加速效果。

GPU-CPU协同计算优化方案

YOLObile中还使用了GPU-CPU协同计算的方式来进一步降低整个网络的运算时间。现在主流的移动端DNN推理加速框架,如TensorFlow-Lite,MNN和TVM都只能支持CPU或GPU单独运算,因此也导致了潜在的计算资源浪费。YOLObile提出针对网络中的分支结构,比如YOLOv4中大量使用的Cross Stage Partial (CSP)结构,使用CPU来辅助GPU同时进行一些相互无依赖关系的分支运算,从而更好地利用计算资源,减少网络的运算时间。YOLObile框架将待优化的网络分支分为有卷积运算分支和无卷及运算分支,并对于两种情况分别给出了优化方案。

更多技术细节请参考文章

https://arxiv.org/abs/2009.05697

更多手机端AI实时应用视频请查看链接

https://space.bilibili.com/573588276

结语

如何在资源受限的移动设备上实现实时物体检测是一个极具挑战性的难题。现有的物体检测网络很难同时保证高准确率和低网络运算时间。YOLObile优化框架,通过压缩技术与编译器优化的协同设计,提供了一个有效的解决方案,成功的在手机端实现了高准确实时的物体检测任务。



推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • JavaScript中的数组是数据集合的核心结构之一,内置了多种实用的方法。掌握这些方法不仅能提高开发效率,还能显著提升代码的质量和可读性。本文将详细介绍数组的创建方式及常见操作方法。 ... [详细]
  • 由中科院自动化所、中科院大学及南昌大学联合研究提出了一种新颖的双路径生成对抗网络(TP-GAN),该技术能通过单一侧面照片生成逼真的正面人脸图像,显著提升了不同姿态下的人脸识别效果。 ... [详细]
  • 多智能体深度强化学习中的分布式奖励估计
    本文探讨了在多智能体系统中应用分布式奖励估计技术,以解决由于环境和代理互动引起的奖励不确定性问题。通过设计多动作分支奖励估计和策略加权奖励聚合方法,本研究旨在提高多智能体强化学习(MARL)的有效性和稳定性。 ... [详细]
  • 在Ubuntu 14.04 (Desktop AMD64) 上安装与配置ROS Indigo
    本文档详细介绍了如何在Ubuntu 14.04 (Desktop AMD64) 系统上安装和配置ROS Indigo。包括设置软件源、安装ROS核心组件、初始化rosdep以及创建ROS工作空间等步骤。 ... [详细]
  • 《计算机视觉:算法与应用》第二版初稿上线,全面更新迎接未来
    经典计算机视觉教材《计算机视觉:算法与应用》迎来了其第二版,现已开放初稿下载。本书由Facebook研究科学家Richard Szeliski撰写,自2010年首版以来,一直是该领域的标准参考书。 ... [详细]
  • 远程访问用户 Kindle通过电子书实现控制
    介绍自2007年以来,亚马逊已售出数千万台Kindle,令人印象深刻。但这也意味着数以千万计的人可能会因为这些Kindle中的软件漏洞而被黑客入侵。他 ... [详细]
  • Android开发经验分享:优化用户体验的关键因素
    随着Android市场的不断扩展,用户对于移动应用的期望也在不断提高。本文探讨了在Android开发中如何优化用户体验,以及为何用户体验的重要性超过了技术本身。 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 自动驾驶中的9种传感器融合算法
    来源丨AI修炼之路在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的 ... [详细]
  • 江苏启动鲲鹏生态产业园首批应用孵化项目
    2019年9月19日,在华为全联接大会上,江苏鲲鹏生态产业园正式启动了首批鲲鹏应用孵化项目。南京市委常委、江北新区党工委专职副书记罗群等多位嘉宾出席并见证了这一重要时刻。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 本文深入探讨了CART(分类与回归树)的基本原理及其在随机森林中的应用。重点介绍了CART的分裂准则、防止过拟合的方法、处理样本不平衡的策略以及其在回归问题中的应用。此外,还详细解释了随机森林的构建过程、样本均衡处理、OOB估计及特征重要性的计算。 ... [详细]
author-avatar
挥霍无罪1988
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有