05实战经验X-anylabelingAI自动标注数据集-onnx简单解绍(2025年12月)

1.onnx介绍(Open Neural Network Exchange)

为什么导出成ONNX?

  • 导出成 ONNX 后,你就可以用 TensorRT、OpenVINO、ONNX Runtime 等工具加速推理。

个人理解:

(1)专为推理优化,去除非必要计算节点,更加轻量级, 移除训练相关参数,模型体积通常减小30-50%,更加**标准化,**统一的模型表示,避免框架依赖。

(2)以yolo为例,训练出来的best.pt文件,(它主要进行训练和推理,需要完整的pytorch环境,模型相对于onnx也较大,相对于onnx也较慢,跨平台有限,主要是依赖gpu)。

对于.pt转换之后的onnx文件,(它主要进行推理,仅仅依赖ONNX Runtime,相对于.pt文件优化后更快(10-30%))

1.需要按照必要的库文件,这里采用了镜像源加速。

复制代码
# 安装必要库
pip install onnx onnxruntime onnxslim -i https://pypi.tuna.tsinghua.edu.cn/simple

2.基础转换(单行命令代码)

复制代码
# 使用YOLOv8 CLI直接转换(CLI 是 Command-Line Interface(命令行界面))
#(与图形用户界面(GUI)不同,CLI 不依赖鼠标点击,而是靠键盘输入指令)
yolo export model=yolov8n.pt format=onnx

2.高级转换脚本(带详细配置)ptToOnnx.py

复制代码
from ultralytics import YOLO

model = YOLO("yolov8n1.pt")
model.export(
    format="onnx",
    imgsz=640,  # 固定输入尺寸
    opset=13,
#YOLOv8 官方推荐使用 opset=12 或 13。指定 ONNX 的 算子集版本(Operator Set Version) 为 13
    simplify=True,#在导出 ONNX 后,自动对模型进行图优化简化
    dynamic=False  # ← 关键!禁用动态输入(即动态的输入图片尺寸)
)

运行这段代码后,会在 best.pt 所在目录下生成一个新文件:

复制代码
yolov8n1.onnx

3.验证onnx模型是否正确,创建verifyOnnx.py

复制代码
import onnxruntime as ort

model_path = "yolov8n1.onnx"
session = ort.InferenceSession(model_path)
input_name = session.get_inputs()[0].name
input_shape = session.get_inputs()[0].shape
print("Input shape:", input_shape)

验证无误

4.编写yaml文件,定义模型属性,yaml文件放置位置不限,c_coco128_detection.yaml

复制代码
type: yolov8
name: c_coco128-yolov8-r20251226
display_name: c_coco128 Detection (YOLOv8)
provider: cfk
model_path: C:/Users/liupei/Desktop/ultralytics-v8.2.82/yolov8n1.onnx
conf_threshold: 0.3
iou_threshold: 0.5
max_det: 100
classes:
  - person
  - bicycle
  - car
  - motorcycle
  - airplane
  - bus
  - train
  - truck
  - boat
  - traffic light
  - fire hydrant
  - stop sign
  - parking meter
  - bench
  - bird
  - cat
  - dog
  - horse
  - sheep
  - cow
  - elephant
  - bear
  - zebra
  - giraffe
  - backpack
  - umbrella
  - handbag
  - tie
  - suitcase
  - frisbee
  - skis
  - snowboard
  - sports ball
  - kite
  - baseball bat
  - baseball glove
  - skateboard
  - surfboard
  - tennis racket
  - bottle
  - wine glass
  - cup
  - fork
  - knife
  - spoon
  - bowl
  - banana
  - apple
  - sandwich
  - orange
  - broccoli
  - carrot
  - hot dog
  - pizza
  - donut
  - cake
  - chair
  - couch
  - potted plant
  - bed
  - dining table
  - toilet
  - tv
  - laptop
  - mouse
  - remote
  - keyboard
  - cell phone
  - microwave
  - oven
  - toaster
  - sink
  - refrigerator
  - book
  - clock
  - vase
  - scissors
  - teddy bear
  - hair drier
  - toothbrush

5.在x-anylabeling中加载自定义模型

  • 打开 X-AnyLabeling;

  • 点击顶部菜单栏的 AI 按钮(或按 Ctrl+A);

  • 在模型下拉列表底部,选择 "...加载自定义模型";

  • 选择你刚创建的 c_coco128_detection.yaml文件;

  • 成功加载后,模型名称 "c_coco128 Detection (YOLOv8)" 会出现在下拉列表中;

  • 选择"c_coco128 Detection (YOLOv8)"后,点击开始按钮,即可全部标注所有图片。

  • 如下图

点击运行

ps:遇到问题

复制代码
ModuleNotFoundError: No module named 'cv2'

解决方法,下载对应opencv的依赖包,采用清华源加速

复制代码
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
相关推荐
John_ToDebug2 分钟前
在代码的黄昏,建筑师诞生:从打字员到AI协作设计者的范式革命
人工智能·程序人生
水中加点糖3 分钟前
小白都能看懂的——车牌检测与识别(最新版YOLO26快速入门)
人工智能·yolo·目标检测·计算机视觉·ai·车牌识别·lprnet
Yaozh、7 分钟前
【神经网络中的Dropout随机失活问题】
人工智能·深度学习·神经网络
mailangduoduo7 分钟前
零基础教学连接远程服务器部署项目——VScode版本
服务器·pytorch·vscode·深度学习·ssh·gpu算力
墩墩冰16 分钟前
计算机图形学 实现直线段的反走样
人工智能·机器学习
Pyeako21 分钟前
深度学习--卷积神经网络(下)
人工智能·python·深度学习·卷积神经网络·数据增强·保存最优模型·数据预处理dataset
OPEN-Source23 分钟前
大模型实战:搭建一张“看得懂”的大模型应用可观测看板
人工智能·python·langchain·rag·deepseek
zzz的学习笔记本25 分钟前
AI智能体时代的记忆 笔记(由大模型生成)
人工智能·智能体
AGI-四顾32 分钟前
文生图模型选型速览
人工智能·ai
大尚来也32 分钟前
一篇搞懂AI通识:用大白话讲清人工智能的核心逻辑
人工智能