YOLO视觉检测应用标注篇(六)

全自动标注

上一篇,我们介绍了基于SAM2的半自动标注。
这一篇,我们将介绍基于YOLO的全自动标注

工具

工具依然是X-Anylabeling
下载等信息这里就不赘述了,有需要请看半自动标注篇

原理

主要的原理就是需要有一个预训练的模型来进行辅助识别。
通过小批量的数据集训练得到一个best.pt的模型,用这个模型来进行大规模的图像标注。

模型准备

首先,需要有一个预训练的YOLO模型,比如yolo11n.pt或者best.pt
然后,将其转为onnx格式

TIP
必须先安装必要的库
可能需要指定版本以避免出错

可使用以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import torch
from ultralytics import YOLO

def convert_yolo_to_onnx(pt_path, onnx_path, imgsz=640):
"""
将YOLO PyTorch模型转换为ONNX格式

参数:
pt_path (str): 输入的.pt模型路径
onnx_path (str): 输出的.onnx保存路径
imgsz (int): 输入图像的尺寸(默认640)
"""
# 加载预训练的YOLO模型
model = YOLO(pt_path)

# 导出为ONNX格式
success = model.export(
format="onnx",
imgsz=imgsz,
dynamic=True, # 启用动态输入尺寸
simplify=True, # 简化ONNX模型
opset=12, # ONNX算子集版本
)

print(f"导出 {'成功' if success else '失败'}!")

if __name__ == "__main__":
# 输入输出路径配置
input_pt = "best.pt" # 修改为你的输入文件路径
output_onnx = "best.onnx" # 修改为你期望的输出路径

# 执行转换
convert_yolo_to_onnx(input_pt, output_onnx)

转换完成后将到可用于全自动标注的best.onnx模型

配置文件准备

下面,我们将准备best.yaml配置文件用于全自动标注
请参考下面的示例:

1
2
3
4
5
6
7
8
type: yolo11
name: yolo11n
display_name: package_best
model_path: best.onnx
nms_threshold: 0.45
confidence_threshold: 0.25
classes:
- package

也可以从X-Anylabeling的Model Zoo中下载合适的配置文件与模型。
请根据实际情况进行修改。

加载目录

模型及配置文件的放置与半自动标注那篇一样,这里不再赘述。
有需要请查看半自动标注篇

载入模型

X-Anylabeling中选择AI,然后加载自定义模型,在模型目录选择自定义yaml文件,就可以导入自定义的模型了

实现全自动标注

导入图片后,
在AI设置中选择需要的置信度等参数,然后点击运行
运行

在左侧边栏选择一次运行所有图片
一次运行所有图片按钮
一次运行全部确认
确认后即完成所有图片的标注。

人工确认

从下列的示意图我们可以看到,由于过拟合的存在,并不是package的目标物被错误标注了,我们需要进行删除
错误标注
选择左侧编辑后,可以删除、拖动、放大及缩小标注矩形框,进行人工修正
人工完成所有的修正后,导出YOLO标注txt文件即完成了标注。

导出标注文件

导出标注文件与半自动标注那篇一样,这里不再赘述。
有需要请查看半自动标注篇

小结

至此,相信YOLO数据集的准备应该可以比较有效率地完成了。


YOLO视觉检测应用标注篇(六)
http://kevin.zone.id/2025/04/19/label3/
作者
Kevin
发布于
2025年4月19日
许可协议