AAAI 2021 | 在手机上实现19FPS实时的YOLObile目标检测

论坛 期权论坛     
选择匿名的用户   2021-5-23 01:19   0   0
<div id="js_content">
<p><img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-cd24cb3b348fe8eaf48258b40e44b8c9"></p>
<p style="text-align: right">作者|机器之心编辑部</p>
<p style="text-align: right"> 来源|机器之心<br></p>
<p>本文提出了一套模型压缩和编译结合的目标检测加速框架,根据编译器的硬件特性而设计的剪枝策略能够在维持高 mAP 的同时大大提高运行速度,压缩了 14 倍的 YOLOv4 能够在手机上达到 19FPS 的运行速度并且依旧维持 49mAP(COCO dataset)的高准确率。相比 YOLOv3 完整版,该框架快出 7 倍,并且没有牺牲准确率。该框架由美国东北大学王言治研究组和威廉玛丽学院任彬研究组共同提出。</p>
<p style="text-align: justify">随着近年来 CNN 在目标检测领域的发展和创新,目标检测有了更加广泛的应用。考虑到在实际场景中的落地需求,目标检测网络往往需要在保持高准确率的同时拥有较低的计算延迟。而现有的目标检测网络,在资源有限的平台上,尤其是手机和嵌入式设备上部署这类应用时,很难同时实现高准确率与实时检测。</p>
<p style="text-align: justify">在过去的几年中,有很多优秀的目标检测网络被相继提出。其中的 two-stage 检测网络包括 RCNN 系列和 SPPNet 等,还有 one-stage 检测网络如 YOLO 系列,SSD 和 Retina-Net 等。相较于 two-stage 网络,one-stage 网络在牺牲一定准确率的情况下换来了更快的执行速度。即便如此,这些网络依然需要较大的计算量来达到可接受的准确率,这成为了这些网络难以在移动设备上实现实时推理的主要阻碍。为此,一些轻量级 (lightweight) 目标检测网络模型被提出,如 SSD-Lite, YOLO-Lite, YOLO-tiny 等,以实现移动设备上的快速目标检测。但是这些轻量级网络的解决方案效果依然不理想。</p>
<p style="text-align: justify">为了更好地满足目标检测框架的落地需求,CoCoPIE 团队:美国东北大学王言治研究组和威廉玛丽学院任彬研究组共同提出了名为 YOLObile 的手机端目标检测加速框架。YOLObile 框架通过「压缩 - 编译」协同设计在手机端实现了高准确率实时目标检测。该框架使用一种新提出的名为「block-punched」的权重剪枝方案,对模型进行有效的压缩。在编译器优化技术的协助下,在手机端实现高准确率的实时目标检测。该研究还提出了一种高效的手机 GPU - 手机 CPU 协同计算优化方案,进一步提高了计算资源的利用率和执行速度。</p>
<p style="text-align: justify">相比 YOLOv4 的原版,加速后的 YOLObile 的运行速度提高了 4 倍,并且维持了 49mAP 的准确率。相比 YOLOv3 完整版,该框架快 7 倍,在手机上实现了 19FPS 的实时高准确率目标检测。同时准确率高于 YOLOv3,并没有用牺牲准确率来提高计算速度。</p>
<p style="text-align: center"><img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-aaef237512bb4113e7e866434b63d596"></p>
<p style="text-align: left"><strong>论文标题:</strong></p>
<p style="text-align: left">YOLObile: Real-Time Object Detection on Mobile Devices via Compression-Compilation Co-Design</p>
<p style="text-align: left"><strong>论文链接:</strong></p>
<p style="text-align: left">https://arxiv.org/abs/2009.05697</p>
<p style="text-align: left"><strong>代码链接:</strong></p>
<p style="text-align: left">https://github.com/nightsnack/YOLObile</p>
<p style="text-align: left"><strong>demo链接:</strong></p>
<p style="text-align: left">https://www.bilibili.com/video/BV1bz4y1y7CR</p>
<p><img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-c7ef3b4684a6fd4b506b656040cf0d54"></p>
<p style="text-align: center"><img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-9374abec2789aa064b90521494958d48"></p>
<p style="text-align: left"><strong>研究方法</strong></p>
<p style="text-align: left"><strong>替换硬件支持性不好的操作符</strong></p>
<p style="text-align: justify">在原版的 YOLOv4 中,有一些操作符不能够最大化地利用硬件设备的执行效率,比如带有指数运算的激活函数可能会造成运行的延迟增加,成为降低延时提高效率的瓶颈。该研究把这些操作符相应地替换成对硬件更加友好的版本,还有一些操作符是 ONNX 还未支持的(YOLObile 用 ONNX 作为模型的存储方式),研究者把它替换成 ONNX 支持的运算符。</p>
<p style="text-align: justify">比如,在 YOLOv4 引入的新模块 Spatial Attention Module (SAM)中,用了 sigmoid 作为分支的激活函数,该研究在尝试把它换成 hard-sigmoid 后发现:准确率和直接删除相比几乎一致,增加的模块又会增加计算量,所以研究者将其删除了。</p>
<p style="text-align: justify">Mish
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP