onnx 图像分类

本文介绍了如何使用Netron工具可视化PyTorch模型,并详细说明了如何将PyTorch模型转换为ONNX格式,以便在本地终端通过ONNXRuntime进行部署和推理。作者提供了安装配置步骤、模型转换示例以及实际预测图像的全流程操作。

参考文章:

【netron】模型可视化工具netron-优快云博客

Pytorch图像分类模型部署-ONNX Runtime本地终端推理_哔哩哔哩_bilibili

使用netron可视化模型结构

1)使用在线版

浏览器访问:Netron

点击 “Open Model” 按钮,选择要可视化的模型文件即可

2)下载本地版

终端进行安装: pip install netron
安装完成后,在脚本中 调用包 import netron
运行程序 netron.start("model.onnx"), 会自动打开浏览器进行可视化 (最后有例子)

我习惯用 pytorch,但是 netron 对 pytorch 的 .pt 和 .pth 文件不是很友好,所以,我都是先转换为 onnx 格式,再进行可视化,下面举例。

简化可视化模型:

ONNX模型转换及使用指南-优快云博客

onnx的概念 

使用纯OpenCvSharp部署YOLOv11 - ONNX图像分类模型,可按以下方式进行: 1. **准备环境**:确保开发环境已安装OpenCvSharp和必要的.NET框架,如VS2019和.NET Framework 4.7.2。同时,需要YOLOv11的ONNX模型文件、配置文件(描述模型架构)和类别名称文件[^1]。 2. **加载模型**:使用OpenCvSharp的DNN模块加载YOLOv11的ONNX模型,将模型文件路径传递给DNN模块的相关函数。示例代码如下: ```csharp using OpenCvSharp; using OpenCvSharp.Dnn; // 加载模型 Net net = CvDnn.ReadNetFromONNX("yolov11.onnx"); ``` 3. **预处理图像**:对输入图像进行预处理,如调整大小、归一化等,以满足模型的输入要求。示例代码如下: ```csharp // 读取图像 Mat image = Cv2.ImRead("input.jpg"); // 调整图像大小 Mat resizedImage = new Mat(); Cv2.Resize(image, resizedImage, new Size(640, 640)); // 归一化 Mat blob = CvDnn.BlobFromImage(resizedImage, 1.0 / 255.0, new Size(640, 640), new Scalar(0, 0, 0), true, false); ``` 4. **推理与后处理**:将预处理后的图像输入到模型中,获取分类结果。对结果进行后处理,包括解析输出、应用非极大值抑制(如果需要)等,以获得最终的分类结果。示例代码如下: ```csharp // 设置输入 net.SetInput(blob); // 前向传播 Mat output = new Mat(); net.Forward(output); // 后处理(此处省略具体后处理逻辑) // 例如解析输出、非极大值抑制等 ``` 5. **显示结果**:将分类结果显示在界面上,通过OpenCvSharp的图像显示功能实现。示例代码如下: ```csharp // 在图像上绘制结果(此处省略具体绘制逻辑) // 例如绘制检测框、显示类别和置信度等 // 显示图像 Cv2.ImShow("Result", image); Cv2.WaitKey(0); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值