# 一、环境准备

首先创建一个 conda 虚拟环境,完成 yolo 相关依赖的搭建。

pip install yolo

pip install ultralytics

pip install ncnn

pip install onnx #用于格式转换

之后创建一个空目录,目录结构如下:

准备好需要用来训练的一部分图片(50-100 张左右即可,多点也可以)。将图片分别放到 images/trainimages/valimages/test 三个目录中。

# 二、数据标注

准备好环境之后,新建一个 classes.txt 文件放到 labels/train 文件夹下,按顺序写入你的类别名称。例如我这里训练的模型用于标注电池。

那你的文件内容就是:

battery

ok,创建完成之后就开始对数据进行正常标注,然后将结果导出到labels/train文件夹下

# 三、开始训练

首先需要写入一个配置文件xxx.yaml写到yolotrain目录下,内容如下

path: D:\yolotrain       # 数据集根目录
train: images/train      # 训练集相对路径
val: images/val          # 验证集相对路径
test: images/test        # 测试集相对路径

nc: 1                    # 类别数量
names: ["battery"]       # 类别名称列表

# 高级参数(可选)
roboflow: {}             # 兼容 RoboFlow 数据集
download: null           # 数据集下载URL

在虚拟环境下进入 yolotrain 目录输入指令开始训练:

yolo detect train data=D:/yolotrain/xxx.yaml model=yolov8s.pt epochs=100 imgsz=640 batch=16 device=0

若要进行验证把train改成val就行了,然后那个yolo模型我放在我的git仓库里了 yolo模型

# 四、导出onnx

yolo export model=D:/yolotrain/best.pt format=onnx

训练完后,可以从新得到的run文件夹下的best.pt(这个就是训练的最好的模型)文件挪到外面,在调用上面那个命令生成best.onnx文件

然后再创建一个xxx.yaml文件写入

type: yolov8
name: yolov8s-r20230520
display_name: koen
model_path: best.onnx
nms_threshold: 0.45
confidence_threshold: 0.25
classes:
  - battery

这个 display_name 可以按需修改,这个文件就是你模型的配置文件。

# 五、使用yaml操作

进入AnyLabeling软件,左侧tab栏有AI选项,点击,选择自定义模型,选择刚刚配置的yaml文件即可