自定义数据集

标注:

1.在当前yolov12终端下  pip install labelimg   ,下载标注工具

2.终端输入  labelimg  ,启动标注工具

3.在 view 里面勾选 "auto save model"

4.点击左侧open dir  选择需要标注的图片目录 如"F:\yolov12-main\yolov12-main\yolotest\images"

5.点击左侧change save dir  选择保存标注(label)的目录  如"F:\yolov12-main\yolov12-main\yolotest\labels"

6.点击左侧 create RectBox开始标注

划分:

7.将labels目录下的   classes.txt移动到yolotest目录下,与images和labels平级。

8.通过下面的 split.py,设定图片和标注的目录,以及输出的训练集和val集的目录

import os, shutil
from sklearn.model_selection import train_test_split


val_size = 0.2
postfix = 'jpg'
imgpath = r'F:\yolov12-main\yolov12-main\yolotest\images'
txtpath =  r'F:\yolov12-main\yolov12-main\yolotest\labels'


#dataset与images和labels平级目录,会自动创建
output_train_img_folder =r'F:\yolov12-main\yolov12-main\yolotest\dataset1/images/train'

output_val_img_folder =  r'F:\yolov12-main\yolov12-main\yolotest\dataset1/images/val'

output_train_txt_folder =  r'F:\yolov12-main\yolov12-main\yolotest\dataset1\labels/train'

output_val_txt_folder =  r'F:\yolov12-main\yolov12-main\yolotest\dataset1\labels/val'

os.makedirs(output_train_img_folder, exist_ok=True)
os.makedirs(output_val_img_folder, exist_ok=True)
os.makedirs(output_train_txt_folder, exist_ok=True)
os.makedirs(output_val_txt_folder, exist_ok=True)


listdir = [i for i in os.listdir(txtpath) if 'txt' in i]
train, val = train_test_split(listdir, test_size=val_size, shuffle=True, random_state=0)


for i in train:
    img_source_path = os.path.join(imgpath, '{}.{}'.format(i[:-4], postfix))
    txt_source_path = os.path.join(txtpath, i)

    img_destination_path = os.path.join(output_train_img_folder, '{}.{}'.format(i[:-4], postfix))
    txt_destination_path = os.path.join(output_train_txt_folder, i)

    shutil.copy(img_source_path, img_destination_path)
    shutil.copy(txt_source_path, txt_destination_path)

for i in val:
    img_source_path = os.path.join(imgpath, '{}.{}'.format(i[:-4], postfix))
    txt_source_path = os.path.join(txtpath, i)

    img_destination_path = os.path.join(output_val_img_folder, '{}.{}'.format(i[:-4], postfix))
    txt_destination_path = os.path.join(output_val_txt_folder, i)

    shutil.copy(img_source_path, img_destination_path)
    shutil.copy(txt_source_path, txt_destination_path)


配置文件设置:

9.在data.yaml 数据配置文件中,配置数据的路径,names的顺序与classes.txt保持一致。

10.在train.py中,设置模型配置文件的路径

运行:

11.运行train.py,训练模型。

飞浆找的现成数据集

第一步:(json->txt)

把里面json格式的label改成yolo可识别的txt格式

第二步:(改data.xml)

修改data.xml中,images里面的train和val的路径

修改data.xml中,nc的数量

修改data.xml中,类别名称

第三步:运行

注意:

1、data.xml中只用填写images中训练集和测试集的数据的位置,yolo会自动到images同目录下找labels的位置,所以拿到数据集里面的 图片+json数据后,需要划分为下面的格式:

2、

pycharm中的项目支持查看历史版本的项目代码,可以回滚跳转

可执行自定义数据集版本:

比对不同参数下训练结果

epoch=10,batch=8,imgsz=640

epoch=10,batch=32,imgsz=320

epoch=10,batch=32,imgsz=480

epoch=100,batch=32,imgsz=320

训练一个模型后进行视频检测

训练结果:

运行命令:

yolo detect predict model=runs/train/exp11/weights/best.pt source="F:\edge download file\yolov5-code-main\datasets\BVN.mp4" show=True

参考文章:

YOLOv12环境配置,手把手教你使用YOLOv12训练自己的数据集和推理(附YOLOv12网络结构图),全文最详细教程_yolo12-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐