在目标检测任务中,手动拉框不仅耗时耗力,还容易因为疲劳导致漏标误标。今天为大家分享一款目前非常流行的开源标注神器------X-AnyLabeling。
它不仅界面现代、运行稳定,更强大的是,它完美支持加载我们自己训练的模型进行一键自动预标注,并能无缝导出 YOLO 格式数据。本文将手把手带你走完从模型转换到自动标注,再到数据导出的全流程。
🛠️ 第一步:下载与安装
强烈建议大家直接下载免安装的 GUI 可执行文件,无需折腾 Python 环境。
-
下载地址 :X-AnyLabeling GitHub Releases
https://github.com/CVHub520/X-AnyLabeling/releases -
在 Releases 页面找到对应系统的压缩包(如 Windows 选
.zip或.exe),解压后双击运行即可。
🔄 第二步:将 .pt 模型转换为 .onnx 格式
X-AnyLabeling 的桌面端内置模型适配器主要针对 ONNX 格式进行了优化,因此我们需要先把训练好的 .pt 文件转换一下。打开终端,进入你的训练环境执行:
1. 如果是 YOLOv5 模型
在 YOLOv5 根目录下,执行官方自带的导出脚本:
bash
python export.py --weights best.pt --include onnx --imgsz 640 --simplify
(注:如果报错缺库,先执行 pip install onnx onnxsim。执行完毕后,同目录下会生成 best.onnx 文件。)
2. 如果是 YOLOv8 (Ultralytics) 模型
新建一段 Python 脚本执行:
python
from ultralytics import YOLO
# 加载模型并导出
model = YOLO('best.pt')
model.export(format='onnx', imgsz=640, simplify=True, opset=12)
⚙️ 第三步:配置自定义模型的 YAML 文件(核心)
要让模型输出正确的标签,必须告诉软件你的类别是什么。这是自动标注不报错、标签不乱的核心步骤!
-
在 X-AnyLabeling 安装目录下,找到
configs/auto_labeling/文件夹。
-
找到一个与你模型架构匹配的 YAML 模板(比如
yolov5s.yaml或yolov8s.yaml)。 -
复制一份并重命名 (例如
my_model.yaml),用记事本打开修改关键信息:
bash
type: yolov8 # 根据你的模型填 yolov5 或 yolov8
name: my_custom_model
display_name: yolov8n # 你的检测模型
model_path: "D:/weights/best.onnx" # 【重要】填你刚才转出来的onnx文件绝对路径!
classes:
- person # 【重要】严格按训练时的类别顺序填写
- car
- egg
⚠️ 避坑提醒 :
classes下面的标签顺序千万不能错 ,必须和你训练集里的data.yaml完全一致,否则模型会把类别张冠李戴。
✨ 第四步:加载模型,一键自动标注
前期工作准备完毕,接下来就是见证奇迹的时刻:
-
打开 X-AnyLabeling,点击 "文件" -> "打开文件夹" (快捷键
Ctrl + U),载入需要标注的图片文件夹。
-
在界面右侧工具栏寻找 "模型" 图标,点击下拉菜单,选择 "加载自定义模型" 。



-
浏览并选择你刚才写好的
my_model.yaml文件。
-
加载成功后,直接在键盘上按下快捷键
I(或点击 AI 推理按钮)。模型会瞬间完成推理,画面上自动生成所有预测的标注框!
(提示:按 A 或 D 切换图片,继续按 I 进行推理)
✏️ 第五步:自动标注结果的微调方案
AI 识别难免有瑕疵,X-AnyLabeling 提供了极其便捷的修改方案:
-
修改单个标签 :直接在画布上右键点击 标注框,选择"编辑标签",选择正确的标签或手动输入(快捷键
Ctrl + E)。 -
删除错误框 :点击选中框,按键盘上的
Delete键删除。 -
批量修改:在右侧的标签列表中右键点击某个标签,选择"重命名",即可批量修改当前图片内的该类别标签。
📦 第六步:如何导出 YOLO 格式数据?(重点)
完成所有图片的"AI预标注+人工微调"后,你需要把数据导出为 YOLO 训练所需的格式。X-AnyLabeling 内置了便捷的导出功能,无需写脚本。
1. 准备类别文件 classes.txt
这是成功导出且标签不错乱的关键。X-AnyLabeling 导出时需要它来映射类别名称和数字索引(class_id)。
新建一个文本文档 classes.txt,每行写入一个类别,顺序必须与你的 data.yaml 完全一致 :

bash
person
car
egg
第一行对应索引
0,第二行对应1,以此类推。
2. 在软件中执行导出
-
点击顶部菜单栏的 "导出" (Export) 按钮。

-
在格式列表中选择 "YOLO HBB" (标准水平矩形框)或 "YOLO OBB"(旋转框),根据你的任务类型选择。
-
随后会弹出一个文件选择窗口,上传你刚刚准备好的
classes.txt文件。 -
点击"确定/导出",等待处理完成。
3. 导出的文件结构
导出成功后,X-AnyLabeling 默认会在当前图片目录的同级 生成 labels 文件夹。最终结构如下:
bash
你的项目目录/
├── images/ # 原始图片文件夹
│ ├── image1.jpg
│ └── ...
└── labels/ # 自动生成的标签文件夹
├── image1.txt # 与图片同名的标注文件
└── ...
每个 .txt 文件的内容格式为:<class_id> <center_x> <center_y> <width> <height>,所有坐标均已归一化(0~1之间)。
💡 注意 :X-AnyLabeling 不会自动划分训练集和验证集。如需标准的
train/val目录,请手动将图片和.txt文件分别移动到对应文件夹,并自行编写data.yaml文件。
⌨️ 附:自动标注与标注提效快捷键速查表
为了让你的"检查+微调"阶段效率翻倍,建议熟记以下快捷键:
| 功能 | 快捷键 | 说明 |
|---|---|---|
| 运行 AI 模型 | I |
一键对当前图片进行推理标注 |
| 上一张 / 下一张 | A / D |
快速切换图片,手不离开键盘 |
| 画矩形框 | R |
手动补框时使用 |
| 删除选中的框 | Delete |
删掉模型标错的框 |
| 编辑标签 | Ctrl + E |
快速修改当前选中框的标签 |
| 保存 | Ctrl + S |
记得随时保存标注结果 |
| 撤销 | Ctrl + Z |
标错了随时撤回 |
| 显示/隐藏标签 | Ctrl + L |
切换界面上文字的显示状态,防遮挡 |
📝 结语
通过 .pt 转 .onnx 加上配置 YAML 文件,你就可以让 X-AnyLabeling 完美发挥出自训练模型的能力;再配合标准的 classes.txt 一键导出,彻底打通了从"模型训练"到"数据扩充"的闭环。整体标注效率至少提升 5 倍以上。
希望这篇实操方案能帮到正在做目标检测的你。如果有任何配置上的问题,欢迎在评论区留言交流!如果觉得有用,别忘了点赞收藏!