UltraFastYoloV5发布!基于剪枝技术的模型压缩,3ms推理的YoloV5mAP60+!

UltraFastYoloV5发布!基于剪枝技术的模型压缩,3ms推理的YoloV5mAP60+!

本文由林大佬原创,转载请注明出处,来自腾讯、阿里等一线AI算法工程师组成的QQ交流群欢迎你的加入: 1037662480

很久没有发文章了,前段时间受疫情的影响, 公司希望开发一个口罩佩戴检测的应用, 讲道理这很简单, 我记得在年初的时候有一个团队就发布了这么一个模型, 但我们尝试下来发现事情并没有那么简单, 原因是:

  • 开源的模型根本没法用, 只能做demo,实际场景下漏检非常严重;
  • 速度并不快. 很多人说30FPS不就已经够了吗? 公司给我们的就一个JetsonNano的开发板, 再快的模型跑到这上面都要凉凉.

因此, 一个很严峻的问题摆在我们面前, 如果基于现有的最牛逼的检测器开发一个足够快, 模型体积足够小, 同时精度又还OK的模型呢? 我们得出的解决方案只有一个:对Yolov5进行模型剪枝和量化!

说到这里, 实际上我们做的并没有那么透彻, 因为这不是一个完完全全的剪枝套路, 我们做的工作主要有三个:

  • 原始的YoloV5的backbone过于重, 先用一个小的backbone做一个baseline;
  • 对这个backbone的HEAD部分进行裁剪;
  • 对Detect Layer进行裁剪.
  • 对整个模型进行剪枝计算, 得到剪枝表, 估算我们要裁剪的部分, 得到裁剪之后的模型.

很多同学应该都有试过Yolov5的模型, 它的检测能力还是非常强的, 鄙人认为主要体现在它的结构除了包含Yolov4的所有优点以外, 相较于Yolov4训练过程更加的科学, 对于正样本的挖掘和有效训练可以说发挥到了极致. 另外不同数据集对于Anchor的作用是非常敏感的, 知乎也有大佬分析过这个因素对于最终训练结果的影响, 本人也做过实验, 一个无比正确的anchor决定了你的检测效果的80%,. 这也是为什么很多SSD系列的算法在不同数据集上有些人就是得不到好的结果 (包括EfficientDet). 因为缺乏一个正确的anchor的指导.

但本篇文章想阐述的是, 即便是Yolov5, 它也存在着极大的参数冗余. 这也是我们进行剪枝的一个出发点. 实验结果上经过我们的裁剪, Yolov5s的模型大小可以降低 29倍. 表格对比如下:

YoloV5sYolov5s-Pruned
model size29M1.3M
speed (TensorRT GPU)12ms4ms
CPU (ONNXRuntime)400ms30ms

这个数据所有的输入尺寸都为 1280x800. 最终我们的效果可以做到 4ms 1.3M的模型体积. 这对于移动端来说是非常友好的, 如果你想要更快的速度, 那么减小输入尺寸, 还可以获得加一倍的速度!

我们测试数据集就是对口罩进行检测数据集, 实际效果可以看到:

image-20200927130733800

image-20200927130812655

image-20200927130831205

image-20200927130847775

image-20200927130906461

对于小目标的检测效果还是非常不错的! 尤其是这是图片都是来自于没有被训练的百度图片, 说明模型的鲁棒性也还是OK的! 事实说明, 我们的裁剪策略是非常有效的, 对于一些面向移动端的场合, 这几乎是必经之路.

裁剪之前的准备

假如你关注了我们的专栏, 我们之前有写过一篇自己构建Yolov5模型的文章. 官方的Yolov5是没有办法进行裁剪的, 因为它的构建方式有点复杂, 很难对模型进行分析.

建议大家可以看我们之前的文章:

https://zhuanlan.zhihu.com/p/242456389

由于裁剪部分的操作还是有点复杂, 而且有点杂乱, 我们会在后续的文章中陆续教授,也可能以视频录制的形式开发出来,请大家关注我们的专栏, 或者我们的公众号来接受第一时间的推送.

image-20200820181257044

代码

Talk is cheap, 幸运的是我们所有的操作都在Yolov5的fork版本之上完成, 你可以很方便看到我们裁剪之后的模型, 甚至可以以和yolov5一模一样的训练方式,复现我们的结果. 大家可以在我们的平台找到对应的代码, 下载下来进行尝试:

http://manaai.cn/aicodes_detail3.html?id=66

更多

image-20200820181257044

如果你想学习人工智能,对前沿的AI技术比较感兴趣,可以加入我们的知识星球,获取第一时间资讯,前沿学术动态,业界新闻等等!你的支持将会鼓励我们更频繁的创作,我们也会帮助你开启更深入的深度学习之旅!

image-20200515153654923

往期文章

https://zhuanlan.zhihu.com/p/165009477

https://zhuanlan.zhihu.com/p/149398749

https://zhuanlan.zhihu.com/p/147622974

https://zhuanlan.zhihu.com/p/144727162

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值