YOLO(You Only Look Once)是一种实时目标检测算法,通过单个卷积神经网络一次性预测图像中所有物体的边界框和类别概率,这种端到端的设计使其拥有极快的推理速度,能够达到每秒处理数十帧甚至上百帧图像,同时保持较高的检测精度。自2015年问世以来,YOLO家族持续演进,推出了YOLOv5、YOLOv8、YOLO11等多个版本,在速度与精度之间不断取得更优平衡,并扩展支持实例分割、姿态估计等任务,广泛应用于自动驾驶、工业质检、安防监控等实时场景。
  原始的YOLO模型文件无法在.net项目中使用,需要先将模型文件转换成通用的ONNX格式,然后再在.net项目中加载使用。可以在网上搜索转换好的onnx格式的模型文件,也可以通过多种方式将原始模型文件转换为onnx格式。本文学习使用python的Ultralytics库转换yolo模型。
  Ultralytics库是基于PyTorch的计算机视觉库,以YOLO系列模型为核心,提供统一简洁的API,支持目标检测、实例分割、姿态估计、图像分类和跟踪等任务。它封装了从训练、验证到部署的全流程,兼容多种硬件后端,并内置丰富的数据增强和调优工具。该库持续迭代最新YOLO版本(如YOLOv5至YOLO11)
  运行下面的命令安装Ultralytics库。

pip install ultralytics

  安装完成后,运行下面的代码下载并转换为onnx格式的模型文件(需要哪个版本的模型就在构造函数中填写对应的模型文件名,模型文件名可以在参考文献5中查看),也可以提前下载原始模型文件,然后在YOLO构造函数中输入本地模型文件路径进行转换。

from ultralytics import YOLO

model = YOLO('yolov5nu.pt')

# 将模型导出为ONNX格式
model.export(format='onnx') 

  模型转换完成后,使用onnx库检查转换的模型是否可用,代码如下所示:

import onnx

try:
    onnx_model = onnx.load(r'E:\MyPrograms\Python\ultralytics\yolov5nu.onnx')  
    onnx.checker.check_model(onnx_model)
    print("Model is valid!")
except Exception as e:
    print(f"An error occurred: {e}")

参考文献:
[1]https://docs.ultralytics.com/zh/
[2]https://www.cnblogs.com/Ytytyty/p/19155808
[3]https://docs.ultralytics.com/zh/modes/export/#arguments
[4]https://blog.csdn.net/weixin_29051811/article/details/158309048
[5]https://docs.ultralytics.com/zh/models/#featured-models

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐