yolov3增强版TensorRT加速MX250下28fps

yolov3增强版TensorRT加速MX250下28fps!JetsonNano必备

This article was original written by Jin Tian, welcome re-post, first come with https://jinfagang.github.io . but please keep this copyright info, thanks, any question could be asked via wechat: jintianiloveu

Yolo系列是一个很经典的目标检测算法,如果你的问题不是遮挡非常严重情况下的目标检测问题,使用yolo可以让你以最快的速度获得一个很高的精度,尤其是现在很多网络模型压缩,剪枝大多在yolo上进行,这使得人们对它的研究比其他的更多。事实上,yolov3也同样没有令人失望。

我们花了一点时间,将ASFF应用于yolov3,并修改了mobilenetv2作为backbone,来探索一个从训练到部署的统一化集成方案。通过在一些数据集上的训练我们发现,加上了ASFF的yolov3不仅仅在速度上依旧可以保持轻量高速,同时在精度上也很高。

对比目标检测界的杠靶子RetinaNet,你可以明显看到yolov3+asff相比于它是多么的强,不仅仅精度碾压,同时速度更是快,并且从某种意义上来说,它的精度甚至好于CenterNet。虽然比不上NasFPN,但至少可以与之媲美,不过毫无疑问,如果你想要一个跑的足够快但同时精度又足够高的算法,那么肯定它值得一尝试。

实际的训练出来的模型效果也表明了它在这一方面的强大能力,对于小目标的检测能力,以及看起来不可见的物体的洞察能力确实强于一般的目标检测算法。也难怪,人家可以在几块的速度下,达到最高43.9的mAP!

当然我们今天要介绍的不仅仅是它多牛逼,而是如何应用于现实的生产环境。简单来说,我们主要做两件事情:

  • 将yolov3+asff的代码导出为了onnx;
  • 对onnx模型进行优化,并使用TensorRT进行了加速;
  • 整个推理可以纯C++实现。

具体速度上我们可以对比:

Systemtest-dev mAPTime (V100)Time (2080ti)Time (1070)Time (1070 Trt)Time (MX250 Trt)
YOLOv3 60833.020ms26ms30ms/33ps21ms/47fps
YOLOv3 608+ BoFs37.020ms26ms
YOLOv3 608 (our baseline)38.820ms26ms
YOLOv3 608+ ASFF40.622ms30ms
YOLOv3 608+ ASFF*42.422ms30ms
YOLOv3 800+ ASFF*43.934ms38ms
YOLOv3 MobileNetV1 416 + BoFs28.6-22 ms
YOLOv3 MobileNetV2 416 (our baseline)29.0-22 ms
YOLOv3 MobileNetV2 416 +ASFF30.6-24 ms28ms/35fps17ms/59fps35ms/28fps

从上面的表格可以看到通过TensorRT的加速,可以在一个不是那么decent的卡上获得60fps的速度,想对于的输入尺寸是544,这不能说是很小的尺寸了,根据我们的经验,输入尺寸越大,越能保证模型的检出率。表中显卡MX250是一款笔记本显卡,你可以认为使用这个模型(yolov3 mobilenet asff)可以使得你的模型在你的笔记本上跑到realtime,当然前提是你安装了一款足够入门级的显卡。确实,28fps已经足够实时了。

ASFF的原理

asff其实有点像FPN,就如同它的名字一样,adaptively spatial feature fusion, 它学习到的特征不仅仅是多尺度的,而且是不同的纹理特征,这对于赋予网络识别不同的类别至关重要。事实上,在实验中,我们发现,添加asff之后,其对应的类别的置信度会得到增强。

相比与一些anchor free的算法,它在检测出物体的同时,对应的probability通常是更高的。

Talk is chip, show me the code

说起来容易,让大家知道我们实现了一个同时兼顾精度和速度的算法,同时可以使用tensorrt, MNN等库来进行部署侧加速,但是没有代码又如何让大家来尝试呢。

事实上Github也有很多实现,只不过他们不是一个完整的体系,同时也没有那么注重工程化,连能完整的导出onnx的代码都比较少。关于本文设计到的所有代码,大家可以在下面这个平台获取。

代码地址:http://manaai.cn/aicodes_detail3.html?id=51

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值