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
相关推荐
九狼几秒前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS9 分钟前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区1 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈1 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang2 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
shengjk13 小时前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能
西门老铁5 小时前
🦞OpenClaw 让 MacMini 脱销了,而我拿出了6年陈的安卓机
人工智能
恋猫de小郭6 小时前
AI 可以让 WIFI 实现监控室内人体位置和姿态,无需摄像头?
前端·人工智能·ai编程
是一碗螺丝粉6 小时前
5分钟上手LangChain.js:用DeepSeek给你的App加上AI能力
前端·人工智能·langchain