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
相关推荐
m0_726365831 分钟前
Ai漫剧系统 几分钟,让AI 把一篇小说变成了一部漫剧成片:从剧本到视频的全流程系统实现
人工智能·语言模型·ai作画·音视频
AIwenIPgeolocation13 分钟前
出海应用合规与风控平衡术:可信ID的全球安全实践
人工智能·安全
WordPress学习笔记14 分钟前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
AI技术增长18 分钟前
Pytorch图像去噪实战(六):CBDNet真实噪声去噪实战,解决合成噪声模型落地效果差的问题
pytorch·深度学习·机器学习
直奔標竿22 分钟前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
科技社35 分钟前
咪咕互娱亮相数字中国峰会:“精品游戏+轻量终端”组合,打开数字娱乐新想象
人工智能
数智化精益手记局1 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
Flying pigs~~2 小时前
RAG 完整面试指南:原理、优化、幻觉解决方案
人工智能·prompt·rag·智能体·检索增强生成·rag优化
博.闻广见2 小时前
AI_概率统计-2.常见分布
人工智能·机器学习
企业架构师老王2 小时前
2026制造业安全生产隐患识别AI方案:从主流产品对比看企业级AI Agent的非侵入式落地路径
人工智能·安全·ai