《------往期经典推荐------》
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
引言
在处理YOLOv8-YOLO12模型训练数据时,标签文件的格式非常重要,因为它们定义了模型需要学习的对象位置和类别信息。本文将对其进行目标检测的模型训练所使用的数据格式及结构进行详细介绍。
YOLOv8-12标签格式
YOLOv8-YOLO12使用文本文件来存储每个图像的标签信息。每个图像对应一个标签文件,标签文件的命名通常与图像文件名相对应(例如,如果图像文件名为image.jpg,则标签文件名为image.txt)。
标签文件内容格式如下:
每个标签文件可以包含多个行
,每行代表一个检测框(bounding box)及其类别
。格式如下:
<object-class> <x_center> <y_center> <width> <height>
<object - class>:目标类别,从0开始编号,0代表第一个类别,1代表第二个类别,以此类推。
<x_center> 和 <y_center>:目标框中心点的x和y坐标(相对于图像的宽度和高度),值的范围是0到1。
< width > 和 < height >:目标框的宽度和高度(相对于图像的宽度和高度),值的范围是0到1。
示例:
假设有一个图像文件dog.jpg,其中包含一只狗和一只猫,它们的标签文件dog.txt可能看起来像这样:
0 0.5 0.7 0.3 0.4 # 狗,中心在(0.5, 0.7),宽度为0.3,高度为0.4
1 0.3 0.6 0.2 0.3 # 猫,中心在(0.3, 0.6),宽度为0.2,高度为0.3
这里,0代表狗的类别(假设狗是第一个类别),1代表猫的类别(假设猫是第二个类别)。
数据集结构
在使用YOLOv8进行训练之前,确保你的数据集文件夹结构正确,并且有一个包含所有图像和对应标签文件的目录。
通常,数据集目录结构如下:
dataset/
├── images/
│ ├── train/
│ ├──├──image1.jpg
│ ├── ├──image2.jpg
│ └── …
│ ├── val/
│ ├──├──image3.jpg
│ ├── ├──image4.jpg
│ └── …
└── labels/
│ ├──train/
│ ├──├──image1.txt
│ ├──├── image2.txt
│ └── …
│ ├──val/
│ ├──├──image3.txt
│ ├──├── image4.txt
其中images目录存放训练集train与验证集val的图片文件,
labels目录存放训练集train与验证集val图片对应的标签文件
确保你的标签文件遵循上述格式,这样YOLOv8模型才能正确读取并理解这些信息来进行训练。
创建数据集配置文件
同时我们需要新建一个data.yaml文件,用于存储训练数据的路径及模型需要进行检测的类别。YOLOv11在进行模型训练时,会读取该文件的信息,用于进行模型的训练与验证。data.yaml的具体内容如下:
train: D:\2MyCVProgram\2DetectProgram\SkinCancerDetection_v11\datasets\Data/train/images
val: D:\2MyCVProgram\2DetectProgram\SkinCancerDetection_v11\datasets\Data/valid/images
nc: 2
names: ['benign', 'malignant']
其中nc表示模型训练的类别数目,names表示模型训练的类别名称
注意事项
类别编号
:确保你的数据集中所有类别的编号与标签文件中使用的编号一致。通常,这需要在你的数据集配置文件中指定类别名称及其对应的编号。
坐标转换
:如果你的数据集使用的是像素坐标而不是归一化坐标(即x和y的值在0到图像宽度/高度的范围内),你需要将坐标转换为归一化形式。转换公式为:
x_center_norm = x_center / image_width
y_center_norm = y_center / image_height
width_norm = width / image_width
height_norm = height / image_height
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!