前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用ONNXRuntime部署阿里达摩院开源DAMO-YOLO目标检测,一共包含27个onnx模型(代码开源)

使用ONNXRuntime部署阿里达摩院开源DAMO-YOLO目标检测,一共包含27个onnx模型(代码开源)

作者头像
计算机视觉研究院
发布2023-09-20 15:24:57
8470
发布2023-09-20 15:24:57
举报
文章被收录于专栏:计算机视觉战队

公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式

计算机视觉研究院专栏

Column of Computer Vision Institute

ONNXRuntime是微软推出的一款推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后端包括CPU,GPU,TensorRT,DML等。可以说ONNXRuntime是对ONNX模型最原生的支持。

01

概述

虽然大家用ONNX时更多的是作为一个中间表示,从pytorch转到onnx后直接喂到TensorRT或MNN等各种后端框架了= =,但这并不能否认ONNXRuntime是一款非常优秀的推理框架(微软出品,必属精品)。而且由于其自身只包含推理功能(1.2版本,最新的ONNXRuntime甚至已经可以训练,可见微软在其上面的野心还是有的),对比主流框架源码看起来没有那么复杂难懂,通过阅读其源码可以非常清晰的理解深度学习框架的一些核心功能原理(op注册,内存管理,运行逻辑等)。接下来的一系列文章尝试对ONNXRuntime的源码进行阅读学习,对理解深度学习框架的工作原理还是很有帮助的。

下面是使用ONNXRuntime的一个简单例子:

代码语言:javascript
复制
import numpy as np
import onnx
import onnxruntime as ort

image = cv2.imread("image.jpg")
image = np.expand_dims(image, axis=0)

onnx_model = onnx.load_model("resnet18.onnx")
sess = ort.InferenceSession(onnx_model.SerializeToString())
sess.set_providers(['CPUExecutionProvider'])
input_name = sess.get_inputs()[0].name
output_name = sess.get_outputs()[0].name

output = sess.run([output_name], {input_name : image_data})
prob = np.squeeze(output[0])
print("predicting label:", np.argmax(prob))

总体来看,整个ONNXRuntime的运行可以分为三个阶段,Session构造,模型加载与初始化和运行。和其他所有主流框架相同,ONNXRuntime最常用的语言是python,而实际负责执行框架运行的则是C++。

——转自知乎-黑羽

现在我们基于“hpcboka”贡献的onnxweight,我们一起来学习实践部署的能力。

使用ONNXRuntime部署DAMO-YOLO目标检测,包含C++和Python两个版本的程序。起初,我想使用opencv做部署的,但是opencv的dnn模块读取onnx文件出错, 无赖只能使用onnxruntime做部署了。

本套程序一共提供了27个onnx模型, onnx文件需要从百度云盘下载。

链接:https://pan.baidu.com/s/10-5ke_fs2omqUMSgKTJV0Q 提取码:w9kp

其中在百度云盘里一共有30个onnx模型文件,但是逐个读取onnx文件做推理时, 发现有3个onnx文件在onnxruntime读取时出错了,在程序里的choices参数里声明了 27个模型文件的名称。

相应代码请关注“计算机视觉研究院”,回复“onnx部署”即可获取!

END

转载请联系本公众号获得授权

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-14 09:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉战队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档