AI日报派送佬头像
高效目标检测利器:X-AnyLabeling 加载自定义 YOLO 模型自动标注实操指南封面图

高效目标检测利器:X-AnyLabeling 加载自定义 YOLO 模型自动标注实操指南

在目标检测任务中,手动拉框不仅耗时耗力,还容易因为疲劳导致漏标误标。今天为大家分享一款目前非常流行的开源标注神器——X-AnyLabeling。

它不仅界面现代、运行稳定,更强大的是,它完美支持加载我们自己训练的模型进行一键自动预标注,并能无缝导出 YOLO 格式数据。本文将手把手带你走完从模型转换到自动标注,再到数据导出的全流程。


🛠️ 第一步:下载与安装

强烈建议大家直接下载免安装的 GUI 可执行文件,无需折腾 Python 环境。


🔄 第二步:将 .pt 模型转换为 .onnx 格式

X-AnyLabeling 的桌面端内置模型适配器主要针对 ONNX 格式进行了优化,因此我们需要先把训练好的 .pt 文件转换一下。打开终端,进入你的训练环境执行:

1. 如果是 YOLOv5 模型
在 YOLOv5 根目录下,执行官方自带的导出脚本:

python export.py --weights best.pt --include onnx --imgsz 640 --simplify

(注:如果报错缺库,先执行 pip install onnx onnxsim。执行完毕后,同目录下会生成 best.onnx 文件。)

2. 如果是 YOLOv8 (Ultralytics) 模型
新建一段 Python 脚本执行:

from ultralytics import YOLO

# 加载模型并导出
model = YOLO('best.pt')
model.export(format='onnx', imgsz=640, simplify=True, opset=12)

⚙️ 第三步:配置自定义模型的 YAML 文件(核心)

要让模型输出正确的标签,必须告诉软件你的类别是什么。这是自动标注不报错、标签不乱的核心步骤!

  1. 在 X-AnyLabeling 安装目录下,找到 configs/auto_labeling/ 文件夹。

  2. 找到一个与你模型架构匹配的 YAML 模板(比如 yolov5s.yaml 或 yolov8s.yaml)。

  3. 复制一份并重命名(例如 my_model.yaml),用记事本打开修改关键信息:

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 完全一致,否则模型会把类别张冠李戴。


✨ 第四步:加载模型,一键自动标注

前期工作准备完毕,接下来就是见证奇迹的时刻:

  1. 打开 X-AnyLabeling,点击 “文件” -> “打开文件夹”(快捷键 Ctrl + U),载入需要标注的图片文件夹。

  2. 在界面右侧工具栏寻找 “模型” 图标,点击下拉菜单,选择 “加载自定义模型”。


  3. 浏览并选择你刚才写好的 my_model.yaml 文件。

  4. 加载成功后,直接在键盘上按下快捷键 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 完全一致:

person
car
egg

第一行对应索引 0,第二行对应 1,以此类推。

2. 在软件中执行导出

  1. 点击顶部菜单栏的 “导出” (Export) 按钮。

  2. 在格式列表中选择 “YOLO HBB”(标准水平矩形框)或 “YOLO OBB”(旋转框),根据你的任务类型选择。

  3. 随后会弹出一个文件选择窗口,上传你刚刚准备好的 classes.txt 文件。

  4. 点击“确定/导出”,等待处理完成。

3. 导出的文件结构

导出成功后,X-AnyLabeling 默认会在当前图片目录的同级生成 labels 文件夹。最终结构如下:

你的项目目录/
├── 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 倍以上。

希望这篇实操方案能帮到正在做目标检测的你。如果有任何配置上的问题,欢迎在评论区留言交流!如果觉得有用,别忘了点赞收藏!

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/Smoothly_Lu/article/details/170048721

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--