专栏首页CVer超越YOLOv4-tiny!比YOLOv3快7倍!YOLObile:移动端上的目标检测

超越YOLOv4-tiny!比YOLOv3快7倍!YOLObile:移动端上的目标检测

本文系CVer粉丝投稿,欢迎分享优质工作

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优化框架,通过压缩技术与编译器优化的协同设计,提供了一个有效的解决方案,成功的在手机端实现了高准确实时的物体检测任务。

论文PDF下载

本文论文PDF已打包好,在CVer公众号后台回复:YOLObile,即可下载访问

资料下载

在CVer公众号后台回复:目标检测二十年,即可下载39页的目标检测最全综述,共计411篇参考文献。

下载2

后台回复:CVPR2020,即可下载代码开源的论文合集

后台回复:ECCV2020,即可下载代码开源的论文合集

后台回复:YOLO,即可下载YOLOv4论文和代码

文章分享自微信公众号:
CVer

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • AAAI2021 | 在手机上实现19FPS实时的YOLObile目标检测,准确率超高

    随着近年来 CNN 在目标检测领域的发展和创新,目标检测有了更加广泛的应用。考虑到在实际场景中的落地需求,目标检测网络往往需要在保持高准确率的同时拥有较低的计算...

    公众号机器学习与生成对抗网络
  • YOLO 系目标检测算法家族全景图!

    YOLO目标检测算法诞生于2015年6月,从出生的那一天起就是“高精度、高效率、高实用性”目标检测算法的代名词。

    CV君
  • 超越YOLOv5的PP-YOLOv2和1.3M超轻量PP-YOLO Tiny都来了!

    单阶段目标检测界的扛把子 --YOLO,以其 「又快又好的效果」 在学术及产业界全面风靡。自 20 年下半年 YOLOv4、YOLOv5、PP-YOLO、YOL...

    机器之心
  • 【论文分享】在NVIDIA Jetson NANO上使用深度神经网络进行实时草莓检测

    机器学习是人工智能领域的一个热门话题,是智能农业机械的关键技术。深度学习是机器学习发展的前沿,它在自然语言处理和计算机视觉等许多方面都取得了优异的成绩。深度卷积...

    GPUS Lady
  • 超越YOLOv5,1.3M超轻量,高效易用,这个目标检测开源项目太香了!

    这个目标检测神器简直香炸了!它不仅连续登录Github全球趋势榜,拥有的全球尖端算法论文也接连登录全球技术趋势榜PaperWithCode。

    昱良
  • 目标检测实战:4种YOLO目标检测的C++和Python两种版本实现

    本文作者使用C++编写一套基于OpenCV的YOLO目标检测,包含了经典的YOLOv3,YOLOv4,Yolo-Fastest和YOLObile这4种YOLO目...

    Color Space
  • 目标检测神器来了!

    刚刚全面升级的PaddleDetection2.0,它全面兼顾高性能算法、便捷开发、高效训练及完备部署,也因此受到广大开发者的喜爱,连续登录Github全球趋势...

    Datawhale
  • 超越YOLOv5的PP-YOLOv2和1.3M超轻量PP-YOLO Tiny都来了!

    单阶段目标检测界的扛把子--YOLO,以其 「又快又好的效果」 在学术及产业界全面风靡。自 20 年下半年 YOLOv4、YOLOv5、PP-YOLO、YOLO...

    用户1386409
  • CVPR21目标检测新框架:只需要一层特征(干货满满,建议收藏)

    论文地址:https://arxiv.org/pdf/2103.09460.pdf

    AI算法与图像处理
  • 超越YOLOv5!1.3M超轻量,又好又快!目标检测神器来了

    不论你需要通用目标检测、实例分割、旋转框检测,还是行人检测、人脸检测、车辆检测等垂类算法;

    Amusi
  • 1.8M超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200

    目标检测一直是计算机视觉领域的一大难题,其目标是找出图像中的所有感兴趣区域,并确定这些区域的位置和类别。目标检测中的深度学习方法已经发展了很多年,并出现了不同类...

    公众号机器学习与生成对抗网络
  • 1.8M超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200

    目标检测一直是计算机视觉领域的一大难题,其目标是找出图像中的所有感兴趣区域,并确定这些区域的位置和类别。目标检测中的深度学习方法已经发展了很多年,并出现了不同类...

    OpenCV学堂
  • YOLOv4团队开源最新力作!1774fps、COCO最高精度,分别适合高低端GPU的YOLO

    本文是YOLOv4的原班人马(包含CSPNet一作与YOLOv4一作AB大神)在YOLO系列的继续扩展,从影响模型扩展的几个不同因素出发,提出了两种分别适合于低...

    深度学习技术前沿公众号博主
  • CVPR21目标检测新框架:不再是YOLO,而是只需要一层特征(干货满满,建议收藏)

    论文地址:https://arxiv.org/pdf/2103.09460.pdf

    计算机视觉研究院
  • 算法SOTA、功能全面、性能最佳,PaddleDetection 2.0重磅升级!

    目标检测技术作为视觉技术届的顶梁柱,不仅单兵作战在人脸、车辆、商品、缺陷检测等场景有出色的表现,也是文本识别,图像检索、视频分析、目标跟踪等复合技术的核心模块,...

    用户1386409
  • 深入浅出Yolo系列之Yolox核心基础完整讲解

    在Yolov4、Yolov5刚出来时,大白就写过关于Yolov3、Yolov4、Yolov5的文章,并且做了一些讲解的视频,反响都还不错。

    AIWalker
  • YOLOv4-Tiny来了!371 FPS!

    实际上,YOLOv4-Tiny 在大前天(2020.06.25)的晚上就正式发布了,但鉴于当时处于端午假期,Amusi 特意没有更新,希望各位CVers过个好节...

    Amusi
  • 推理速度快YOLOV4五倍的YOLObile:通过压缩编译在移动端实时检测(附论文下载)

    在本次工作中,提出了一个基于压缩编译协同设计的移动设备实时目标检测框架YOLObile。此外,还提出了一种新的剪枝方案——区块剪枝,该方案适用于任意核大小的卷积...

    计算机视觉研究院
  • 推理速度快YOLOV4五倍的YOLObile:通过压缩编译在移动端实时检测(附论文下载)

    目标检测技术的迅速发展和广泛应用,引起了人们对目标检测器的精度和速度的关注。然而,目前最先进的目标检测工作要么是精度导向使用大模型,但导致高延迟,要么是速度导向...

    磐创AI

扫码关注云+社区

领取腾讯云代金券