YOLO v5 PyTorch 训练数据标注文件 YAML 格式

文章目录

    从 roboflow 标注数据之后,导出的 YOLO v5 PyTorch 配置文件 YAML 格式 (TXT annotations and YAML config used with YOLOv5),里面的文件路径非常不友好,每次都需要修改调整。

    特别是要上传到 colab 训练,在 google drive 里在线修改 yaml 文件非常麻烦。因为为了防止

    Exception: Dataset not found

    我都是用的绝对路径。

    我的疑问是,是否存在一种路径组织方式可以同时满足本地和线上 (colab / kaggle),不需要来回改本地绝对路径。

    周末陪我妈在毓璜顶医院排队做 CT 的时候,我翻看公众号上关于 yolo v5 的一些使用经验,无意发现原来 yolo v5 自带了一些标注好的训练数据,当然只是配置文件,里面包含了对应的下载地址。以 GlobalWheat2020.yaml 为例,里面有个 path 参数,其定义了数据文件目录与 train.py 的相对路径,这样就方便多了。

    合理的数据文件夹存放目录

    与 yolov5 代码平级的目录 datasets,然后 datasets 目录下是不同的数据集,例如:GlobalWheat2020,如下图的结构

    yolov5 训练集目录结构

    path 里使用相对路径即可。

    path: ../datasets/some_app      # 相对 train.py 的路径
    train: some_dir    # 相对 path 的路径
    test: some_dir
    val: some_dir
    

    下面是两种格式的对比,显然第二种方式更合理。

    roboflow 导出的 yaml 格式

    train: ../train/images
    val: ../valid/images
    test: ../test/images
    
    nc: 1
    names: ['elephant']
    

    yolo v5 自带的 GlobalWheat2020.yaml 格式

    # YOLOv5 🚀 by Ultralytics, GPL-3.0 license
    # Global Wheat 2020 dataset http://www.global-wheat.com/ by University of Saskatchewan
    # Example usage: python train.py --data GlobalWheat2020.yaml
    # parent
    # ├── yolov5
    # └── datasets
    #     └── GlobalWheat2020  ← downloads here (7.0 GB)
    
    
    # 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/GlobalWheat2020  # dataset root dir
    train: # train images (relative to 'path') 3422 images
      - images/arvalis_1
      - images/arvalis_2
      - images/arvalis_3
      - images/ethz_1
      - images/rres_1
      - images/inrae_1
      - images/usask_1
    val: # val images (relative to 'path') 748 images (WARNING: train set contains ethz_1)
      - images/ethz_1
    test: # test images (optional) 1276 images
      - images/utokyo_1
      - images/utokyo_2
      - images/nau_1
      - images/uq_1
    
    # Classes
    names:
      0: wheat_head
    

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式