yolov5 的标签格式
参考链接:
https://github.com/ultralytics/yolov5/issues/9816
翻译内容
你好!。感谢您询问YOLOv5🚀数据集格式。用于分割的XY坐标与用于长方体中心的标准坐标相同。
为了正确训练,您的数据必须为YOLOv5格式。有关数据集设置的完整文档以及开始培训您的第一个模型所需的所有步骤,请参阅我们的训练定制数据教程。以下是该教程的几个节选:
1.1 创建 dataset.yaml
COCO128
是一个示例性的小教程数据集,由COCO train2017
中的前128张图像组成。这些相同的128张图像用于训练和验证,以验证我们的训练管道是否会过拟合。data/COCO128.yaml
是数据集配置文件(如下面所示),它定义了
1)数据集的根目录路径,train/val/test图像目录(或带有图像路径的*.txt文件)的相对路径
2)类名字典。
data/COCO128.yaml:
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes (80 COCO classes)
names:
0: person
1: bicycle
2: car
...
77: teddy bear
78: hair drier
79: toothbrush
1.2 创建 lables
使用Roboflow Annotate这样的工具为图像添加标签后,将标签导出为YOLO格式,并使用一个*.txt
文件(如果图像中没有对象,则不需要*.txt文件
)。*.txt
文件规格如下:
- 每个对象一行
- 每行的格式是:
class x_center y_center width height
- 方框的坐标必须要归一化到(0-1),如果方框以像素为单位,请将x_center和width除以图像宽度,将y_center和height除以图像高度。
- 类别必须从0开始,。
对应于下面图像的标签文件包含2个人(类别0)和一个领带(类别27):
1.3 组织目录
根据以下示例组织您的训练和val图像和标签。YOLOv5假设/coco128
位于/YOLOv5
目录旁边的/dataset
目录中。YOLOv5通过将每个图像路径中/images/的最后一个实例替换为/labels/,自动查找每个图像的标签。例如:
../datasets/coco128/images/im0.jpg # image
../datasets/coco128/labels/im0.txt # label
Good luck 🍀 and let us know if you have any other questions!