下面将会自定义训练目标检测数据集
注意:没有特殊说明,路径均是以项目根目录为准
官方数据集
首先下载权重文件并将放到 ultralytics 项目根目录
之后测试预训练模型的效果,在根目录执行如下命令
yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg
之后我们查看保存的检测好的图片 /root/Development/ultralytics/runs/detect/predict2
训练 COCO128 数据集(这里可以配置 tensorboard 可视化面板,这里不赘述)
yolo train data=coco128.yaml model=yolov8n.pt epochs=3 lr0=0.01 batch=4
与此同时根目录下面生成了一个datasets文件夹,里面有 coco128 的数据集
注意:这里的 datasets 下载目录是在 ~/.config/Ultralytics/settings.yaml 文件中定义的,可以后续修改
之后查看存储的训练结果的文件夹,weights 文件夹里面装的是效果最好的一次权重文件以及最后一轮训练的权重文件
自定义数据集
下载数据集
【下载地址】:Mask Wearing Dataset - raw (roboflow.com)
然后下载 zip 压缩包即可
配置数据集
上传到项目根目录的 datasets,并重命名数据集为 MaskDataSet(本次演示直接使用下载的数据集,后面的部分步骤是针对自己制作数据集的要求)
data.yaml修改如下
path: …/datasets/MaskDataSet
train: ./train/images
val: ./valid/images
test: ./test/images
nc: 2
names: [‘mask’, ‘no-mask’]
roboflow:
workspace: joseph-nelson
project: mask-wearing
version: 4
license: Public Domain
url: https://universe.roboflow.com/joseph-nelson/mask-wearing/dataset/4
划分数据集
我们需要将数据集按照指定比例划分(训练集:验证集:测试集=7:2:1)
【数据集划分脚本】:division-of-data/DivisionOfData.py at main · kuisec/division-of-data (github.com)
标注数据集
安装 lableme,执行 pip install labelme,然后命令行输入 labelme即可进入图形化界面
但是注意:labelme 生成的标签是 json 文件的格式,后续需要转化成 txt 文件才能被 yolov 使用
这里说下两种标注工具 labelImg 和 labelme 的区别
labelimg 是一种矩形标注工具,常用于目标识别和目标检测,其标记数据输出为.xml和.txt
labelme 是一种多边形标注工具,可以准确的将轮廓标注出来,常用于分割,其标记输出格式为json
【数据集标注文件格式转换脚本】:DeepLearning/others/label_convert at master · KKKSQJ/DeepLearning (github.com)
训练数据集
yolo train data=datasets/MaskDataSet/data.yaml model=yolov8n.pt epochs=10 lr0=0.01 batch=4
使用效果最好的权重文件进行预测测试(需要提前上传 ultralytics/assets/mask.jpg口罩图片)
yolo predict model=runs/detect/train26/weights/best.pt source=ultralytics/assets/mask.jpg
查看最终效果
标签:实战,ultralytics,数据,YOLO,mask,根目录,labelme,data,演练 From: https://blog.csdn.net/m0_37302966/article/details/142912961