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
相关推荐
视觉&物联智能7 小时前
【杂谈】-企业人工智能超越实验:安全拓展的实践路径
人工智能·安全·aigc·agent·agi
ting94520007 小时前
Kirki 深度技术解析:WordPress 自定义控件开发与可视化配置底层原理
人工智能·架构
掘金一周7 小时前
想换一辆电车,JYM有什么推荐 | 沸点周刊 5.21
前端·人工智能·后端
创世宇图7 小时前
【AI入门知识点】LLM 原理是什么?为什么 ChatGPT 看起来像“会思考”?
人工智能·ai·llm·token
不爱吃糖的程序媛7 小时前
2026年Electron 鸿蒙PC环境搭建指南
人工智能·华为·harmonyos
码途漫谈7 小时前
让 AI 编程不断线:9Router 的本地模型路由与 Token 节流术
人工智能·ai·开源·ai编程
nashane7 小时前
HarmonyOS 6学习:长截图功能开发中的滚动拼接与权限处理实战
人工智能·华为·harmonyos
zhojiew8 小时前
在本地PostgreSQL使用pgvector构建生成式 AI 应用的实践
数据库·人工智能·postgresql
枫叶林FYL8 小时前
项目九:异步高性能爬虫与数据采集中枢 —— 基于 Crawl<sub>4</sub>AI 与 Playwright 的现代化数据采集平台 项目总览
爬虫·python·深度学习·wpf
hogenlaw8 小时前
AI 编程概念扫盲
人工智能