yolov5训练自定义数据

  1. 创建数据集
    YOLOv5模型必须在标记数据上进行训练,才能学习该数据中的对象类别。
    1.1 创建dataset.yaml
    COCO128是一个示例小型教程数据集,由COCO train2017中的前128张图像组成。这些相同的128张图像用于训练和验证,以验证我们的训练管道能够过拟合。
    如下所示,是数据集配置文件,它定义了:
    1)数据集根目录路径与训练、验证和测试图像目录的相对路径(或带有路径的*.txt文件)
    2)类的数量 nc
    3)一个类名列表
# 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
nc: 80  # number of classes
names: [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
         'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
         'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
         'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
         'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
         'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
         'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
         'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
         'hair drier', 'toothbrush' ]  # class names

1.2 创建标签
使用标注工具标记图像后,讲标签导出为YOLO格式,每个图像有一个*.txt文件(如果图像中没有对象,则不需要*.txt文件)。txt文件规范为:

  • 每个对象一行
  • 每一行都是 class x_center y_center width height 格式
  • 框坐标必须采用标准化xywh格式(从0到1)。如果您的框以像素为单位,则将x_center和width除以图像宽度,将y_center和height除以图像高度。
  • 类号索引是从0开始的yolov5训练自定义数据_第1张图片
    yolov5训练自定义数据_第2张图片
    1.3 组织目录
    根据以下示例组织train image和val image和标签。YOLOv5假设 /coco128 位于 /yolov5 目录旁边的 /datasets 目录中。YOLOv5通过将每个图像路径中 /images/ 的最后一个实例替换为 /labels/ 来自动为每个图像定位标签。
../datasets/coco128/images/im0.jpg  # image
../datasets/coco128/labels/im0.txt  # label

yolov5训练自定义数据_第3张图片

  1. 选择一个模型
    选择一个预训练模型开始训练。有关预训练模型的比较参考README。

  2. 训练
    通过指定数据集、batch-size、image size和预训练的 --weights yolov5s.pt,在COCO128上训练YOLOv5s模型。预训练权重是从最新的YOLOv5版本自动下载的。

# Train YOLOv5s on COCO128 for 3 epochs
$ python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt

tips:始终从本地数据集进行训练。网络挂载会很慢。添加 --cache ram或 --cache disk 以加快训练速度。

  1. 可视化

weights和Biases日志
权重和偏移现在与YOLOv5集成,用于训练运行的实时可视化和云记录。这允许更好的允许比较和自省,以及提高团队成员之间的可见性和协作。要启用W&B日志记录,要安装wandb,然后正常训练。

$ pip install wandb

训练期间通过https://wandb.ai查看更新。

本地日志
所有结果都默认记录到runs/train,并为每个新训练创建一个新的实验目录。

内容译自yolo DOC

你可能感兴趣的:(yolo,图像识别,深度学习,人工智能,计算机视觉)