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
相关推荐
Warren2Lynch1 天前
利用 AI 协作优化软件更新逻辑:构建清晰的 UML 顺序图指南
人工智能·uml
ModelWhale1 天前
当“AI+制造”遇上商业航天:和鲸助力头部企业,构建火箭研发 AI 中台
人工智能
ATMQuant1 天前
量化指标解码13:WaveTrend波浪趋势 - 震荡行情的超买超卖捕手
人工智能·ai·金融·区块链·量化交易·vnpy
weixin_509138341 天前
语义流形探索:大型语言模型中可控涌现路径的实证证据
人工智能·语义空间
soldierluo1 天前
大模型的召回率
人工智能·机器学习
Gofarlic_oms11 天前
Windchill用户登录与模块访问失败问题排查与许可证诊断
大数据·运维·网络·数据库·人工智能
童话名剑1 天前
人脸识别(吴恩达深度学习笔记)
人工智能·深度学习·人脸识别·siamese网络·三元组损失函数
_YiFei1 天前
2026年AIGC检测通关攻略:降ai率工具深度测评(含免费降ai率方案)
人工智能·aigc
GISer_Jing1 天前
AI Agent 智能体系统:A2A通信与资源优化之道
人工智能·aigc
Dev7z1 天前
基于深度学习的车辆分类方法研究与实现-填补国内新能源车型和品牌识别空白
深度学习·yolo