圈圈虫 · 2021年09月15日

Tengine 支持 NPU 模型部署-YOLOX

YOLOv5 自从问世以来,让多目标检测任务在速度和精度上都达到了非常好的表现效果。所以最近被国内优秀的人工智能产品和解决方案公司https://www.megvii.com/

开源的 YOLOX 全面超越
https://github.com/Megvii-BaseDetection/YOLOX

image.png
LOGO 很美!

image.png
全面超越

旷视的同学这次的开源非常符合开(bai)源(piao)精神,提供了 ncnn、TensorRT、OpenVINO 的 example 示例(居然没有 Tengine……)

image.png
加油鸭

还好 Tengine 社区的小伙伴很给力,很快就 PR 了 YOLOX 的 example,既然这样看看 YOLOX-S 在 Khadas VIM3 上的表现结果吧。

image.png
峰值算力 5Tops 的 SBC,非常好玩。

Tengine 同国内优秀 NPU IP 厂商的开源项目 TIM-VX 早已完成适配,进一步提高了神经网络模型在 Khadas VIM3 部署效率。

准备 YOLOX-S 的模型

参考 YOLOX 提供的文档,导出 ONNX 模型

使用 大缺弦 的 onnx-sim 优化 ONNX 网络结构

image.png
大老师 yyds !

移除模型中原有的 focus 结构,Tengine 已提供相关工具,很好用的。同时由于 VIM3 暂时不支持 swish 所以使用该工具的同时也强行转换成了 hardswish。https://github.com/OAID/Tengine/tree/tengine-lite/tools/optimize
image.png
顿时清爽了

ONNX2Tengine

建议直接使用 Tengine 仓库自带的 convert_tool,原有的项目Tengine-Convert-Tools 后续会停止维护。编译的时候需要手动打开 convert_tool 的编译选项。

cmake -DTENGINE_BUILD_CONVERT_TOOL=ON

其余过程,及模型量化相关的操作,可以参考之前 YOLOv5 的文章https://zhuanlan.zhihu.com/p/360138163

运行结果

最终在 Khadas VIM3 上的耗时表现,输入尺寸采用 416*416

khadas@Khadas:~/qtang/tengine-lite/build$ ./examples/tm_yolox_timvx -m ~/models/yolox_s_u8.tmfile -i ~/images/ssd_dog.jpg -r 10
tengine-lite library version: 1.4-dev
Repeat 10 times, thread 1, avg time 26.19 ms, max_time 26.43 ms, min_time 25.83 ms
--------------------------------------
detection num: 3
 1:  78%, [ 111,  130,  566,  415], bicycle
 7:  38%, [ 471,   67,  680,  164], truck
16:  38%, [ 128,  216,  315,  551], dog

image.png
Khadas VIM3 NPU Uint8 量化模型检测结果
image.png

总结

主要贡献:

  1. 尝试了从 YOLOX-Nano、YOLOX-Tiny、YOLOX-S 在 Khadas VIM3 中 NPU 上的适配;
  2. 进一步探索用 HardSwish 直接替换(不做 finetune)Swish 激活函数的可行性;
  3. 分享社区贡献者提出的一种更高效的 Focus 计算方案(待验证)。

遗留问题:

YOLOX 继续发扬了 YOLOv5s 奇怪的激活函数,对边缘 AI 计算加速器不太友好。

image.png
好气!

原文:知乎
作者:圈圈虫

相关文章

我是圈圈虫,一个热爱技术的中年大叔。快加入 OPEN AI LAB 开发者技术 QQ 群(829565581)来找我吧!溜了~~
入群秘令:CNN

更多Tengine相关内容请关注Tengine-边缘AI推理框架专栏。
推荐阅读
关注数
3393
内容数
68
Tengine是一款轻量级模块化高性能的神经网络推理引擎 ;欢迎体验Tengine,[链接] 《Tengine开发者入门资料包》[链接]
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息