开源项目实战学习之YOLO11:ultralytics-cfg-datasets-Argoverse、carparts-seg.yaml文件(二)

👉 点击关注不迷路
👉 点击关注不迷路
👉 点击关注不迷路


  • african-wildlife.yaml
    • 通常用于配置与非洲野生动物相关的数据集或模型训练等任务。
    • 比如指定数据集的路径、划分训练集 / 验证集 / 测试集的方式,以及定义数据集中不同野生动物类别的名称等信息,为相关的研究、模型训练和分析提供配置依据。
  • Argoverse.yaml
    • 一般是针对 Argoverse 数据集或相关任务的配置文件。
    • 可能用于指定 Argoverse 数据集的存储位置、数据格式说明,以及在进行与自动驾驶、交通场景分析等相关任务时,对数据处理、模型训练参数等进行配置。
  • brain-tumor.yaml
    • 主要用于脑部肿瘤相关的项目,比如脑部肿瘤图像数据集的管理和模型训练配置
    • 它可以规定数据集的路径,包括不同模态(如 MRI、CT 等)图像的存放位置,以及标注信息的格式,还可能包含用于训练肿瘤检测、分割或分类模型的超参数等配置信息。
  • carparts-seg.yaml
    • 从名称推测,是用于汽车零部件分割任务的配置文件
    • 文件中会指定汽车零部件数据集的路径,如训练集、验证集和测试集图像的存储位置,同时会定义数据集中各个汽车零部件类别的名称,为汽车零部件分割模型的训练和评估提供必要的配置信息。
  • coco.yaml
    • COCO(Common Objects in Context)数据集是计算机视觉领域常用的数据集,这个文件是针对 COCO 数据集的配置文件。
    • 它会指定 COCO 数据集的路径,包括图像和标注文件的位置,定义数据集中 80 个类别的名称,还可能包含一些与模型训练、评估相关的参数配置,例如数据增强方式、模型输入尺寸等,方便在使用 COCO 数据集进行目标检测、实例分割、图像分类等任务时进行统一的配置和管理。

在这里插入图片描述

african-wildlife.yaml

  • african-wildlife.yaml
    # 数据集所在的根路径
    path: ../datasets/african-wildlife 
    
    # 训练集图片所在的相对路径,相对于path指定的根路径
    train: train/images 
    
    # 验证集图片所在的相对路径,相对于path指定的根路径
    val: valid/images 
    
    # 测试集图片所在的相对路径,相对于path指定的根路径
    test: test/images 
    
    # 类别名称映射,键为类别编号,值为对应的类别名称
    names:
      0: buffalo  # 编号为0的类别是水牛
      1: elephant # 编号为1的类别是大象
      2: rhino    # 编号为2的类别是犀牛
      3: zebra    # 编号为3的类别是斑马
    
    # 数据集的下载链接,可通过此链接下载数据集
    download: https://github.com/ultralytics/assets/releases/download/v0.0.0/african-wildlife.zip
    

Argoverse.yaml

  • Argoverse.yaml
    # 数据集的根路径,指定了数据集在文件系统中的位置
    path: ../datasets/Argoverse
    
    # 训练集图片所在的相对路径,相对于path指定的根路径
    train: Argoverse-1.1/images/train/
    
    # 验证集图片所在的相对路径,相对于path指定的根路径
    val: Argoverse-1.1/images/val/
    
    # 测试集图片所在的相对路径,相对于path指定的根路径
    test: Argoverse-1.1/images/test/
    
    # 类别名称映射,键为类别编号,值为对应的类别名称
    names:
      0: person  # 编号为0的类别是行人
      
      1: bicycle # 编号为1的类别是自行车
      
      2: car     # 编号为2的类别是汽车
      
      3: motorcycle # 编号为3的类别是摩托车
      
      4: bus     # 编号为4的类别是公交车
      
      5: truck   # 编号为5的类别是卡车
      
      6: traffic_light # 编号为6的类别是交通信号灯
      
      7: stop_sign # 编号为7的类别是停车标志
    
    # 数据集下载及格式转换的Python代码
    download: |
      # 导入json模块,用于处理JSON格式的数据
      import json
      
      # 导入Path类,用于处理文件路径
      from pathlib import Path
      
      # 导入tqdm库,用于显示进度条
      from tqdm import tqdm
      
      # 从ultralytics库中导入download函数,可能用于下载文件
      from ultralytics.utils.downloads import download
    
      def argoverse2yolo(set):
          """
          将Argoverse数据集的标注信息转换为YOLO格式,用于目标检测任务。
          :param set: 包含标注信息的JSON文件路径
          """
          # 用于存储每个图像对应的标注信息
          labels = {}
          
          # 打开JSON文件并加载其中的标注信息
          a = json.load(open(set, "rb"))
          
          # 遍历所有标注信息,使用tqdm显示进度条
          for annot in tqdm(a["annotations"], desc=f"Converting {set} to YOLOv5 format..."):
              # 获取当前标注对应的图像ID
              img_id = annot["image_id"]
              
              # 根据图像ID获取图像的名称
              img_name = a["images"][img_id]["name"]
              
              # 生成对应的标注文件名称,将图像文件扩展名替换为txt
              img_label_name = f"{img_name[:-3]}txt"
    
              # 获取当前标注的类别ID
              cls = annot["category_id"]  
              
              # 获取边界框的坐标和尺寸信息
              x_center, y_center, width, height = annot["bbox"]
              
              # 计算归一化后的中心坐标x
              x_center = (x_center + width / 2) / 1920.0  
              
              # 计算归一化后的中心坐标y
              y_center = (y_center + height / 2) / 1200.0  
              
              # 归一化边界框的宽度
              width /= 1920.0  
              
              # 归一化边界框的高度
              height /= 1200.0  
    
              # 计算标注文件的存储目录
              img_dir = set.parents[2] / "Argoverse-1.1" / "labels" / a["seq_dirs"][a["images"][annot["image_id"]]["sid"]]
              
              # 如果标注文件存储目录不存在,则创建该目录
              if not img_dir.exists():
                  img_dir.mkdir(parents=True, exist_ok=True)
    
              # 构建标注文件的完整路径
              k = str(img_dir / img_label_name)
              
              # 如果该标注文件路径还未在labels字典中,则初始化一个空列表
              if k not in labels:
                  labels[k] = []
              
              # 将当前标注信息添加到对应的标注文件列表中
              labels[k].append(f"{cls} {x_center} {y_center} {width} {height}\n")
    
          # 遍历所有标注文件路径
          for k in labels:
              # 打开标注文件并写入标注信息
              with open(k, "w", encoding="utf-8") as f:
                  f.writelines(labels[k])
    
    
      # 获取数据集的根目录
      dir = Path(yaml["path"])
      
      # 定义数据集的下载链接
      urls = ["https://drive.google.com/file/d/1st9qW3BeIwQsnR0t8mRpvbsSWIo16ACi/view?usp=drive_link"]
      
      # 打印警告信息,提示需要手动下载数据集
      print("\n\nWARNING: Argoverse dataset MUST be downloaded manually, autodownload will NOT work.")
      
      # 打印警告信息,提示手动下载数据集的链接和保存位置
      print(f"WARNING: Manually download Argoverse dataset '{urls[0]}' to '{dir}' and re-run your command.\n\n")
    
      # 定义标注文件所在的目录
      annotations_dir = "Argoverse-HD/annotations/"
      
      # 'tracking'目录重命名为'images'目录
      (dir / "Argoverse-1.1" / "tracking").rename(dir / "Argoverse-1.1" / "images")
      # 遍历训练集和验证集的标注文件
      for d in "train.json", "val.json":
          # 调用argoverse2yolo函数将标注信息转换为YOLO格式
          argoverse2yolo(dir / annotations_dir / d)
    

brain-tumor.yaml

  • brain-tumor.yaml
    # 数据集在文件系统中的根路径,后续的 train、val、test 路径都基于此路径
    path: ../datasets/brain-tumor
    
    # 训练集图片所在的相对路径,相对于上面指定的 path 路径
    train: train/images
    
    # 验证集图片所在的相对路径,相对于 path 路径
    val: valid/images
    
    # 测试集图片所在的相对路径,此处留空可能表示暂时未指定测试集路径
    test:
    
    # 类别名称映射,键为类别编号,值为对应的类别名称
    names:
      # 编号为 0 的类别代表阴性(无肿瘤)
      0: negative
      
      # 编号为 1 的类别代表阳性(有肿瘤)
      1: positive
    
    # 数据集的下载链接,可通过该链接获取此数据集
    download: https://github.com/ultralytics/assets/releases/download/v0.0.0/brain-tumor.zip
    

carparts-seg.yaml

  • carparts-seg.yaml
    # 数据集在文件系统中的根路径,后续 train、val、test 路径均相对于此路径
    path: ../datasets/carparts-seg
    
    # 训练集图像所在的相对路径,该路径下存放用于模型训练的图像数据
    train: train/images
    
    # 验证集图像所在的相对路径,此路径下的图像用于在训练过程中验证模型的性能
    val: valid/images
    
    # 测试集图像所在的相对路径,路径下的图像用于最终评估训练好的模型的性能
    test: test/images
    
    # 类别名称映射,键为类别编号,值为对应的类别名称
    names:
      0: back_bumper    # 编号 0 代表汽车后保险杠类别
      
      1: back_door      # 编号 1 代表汽车后门类别
      
      2: back_glass     # 编号 2 代表汽车后挡风玻璃类别
      
      3: back_left_door # 编号 3 代表汽车左后门类别
      
      4: back_left_light # 编号 4 代表汽车左后灯类别
      
      5: back_light     # 编号 5 代表汽车后灯类别
      
      6: back_right_door # 编号 6 代表汽车右后门类别
      
      7: back_right_light # 编号 7 代表汽车右后灯类别
      
      8: front_bumper   # 编号 8 代表汽车前保险杠类别
      
      9: front_door     # 编号 9 代表汽车前门类别
      
      10: front_glass   # 编号 10 代表汽车前挡风玻璃类别
      
      11: front_left_door # 编号 11 代表汽车左前门类别
      
      12: front_left_light # 编号 12 代表汽车左前灯类别
      
      13: front_light    # 编号 13 代表汽车前灯类别
      
      14: front_right_door # 编号 14 代表汽车右前门类别
      
      15: front_right_light # 编号 15 代表汽车右前灯类别
      
      16: hood          # 编号 16 代表汽车发动机罩类别
      
      17: left_mirror   # 编号 17 代表汽车左后视镜类别
      
      18: object        # 编号 18 代表通用物体类别
      
      19: right_mirror  # 编号 19 代表汽车右后视镜类别
      
      20: tailgate      # 编号 20 代表汽车尾门类别
      
      21: trunk         # 编号 21 代表汽车后备箱类别
      
      22: wheel         # 编号 22 代表汽车车轮类别
    
    # 数据集的下载链接,通过该链接可以获取此汽车零部件分割数据集
    download: https://github.com/ultralytics/assets/releases/download/v0.0.0/carparts-seg.zip
    

coco.yaml

  • coco.yaml-79种类别
    # 数据集在文件系统中的根路径,后续的 train、val、test 路径均相对于此路径
    path: ../datasets/coco
    
    # 训练集文件,包含训练图像相关信息的文件路径,相对于 path 路径
    train: train2017.txt
    
    # 验证集文件,包含验证图像相关信息的文件路径,相对于 path 路径
    val: val2017.txt
    
    # 测试集文件,包含测试图像相关信息的文件路径,相对于 path 路径
    test: test-dev2017.txt
    
    # 类别名称映射,键为类别编号,值为对应的类别名称
    names:
      0: person           # 编号 0 代表行人类别
      
      1: bicycle          # 编号 1 代表自行车类别
      
      2: car              # 编号 2 代表汽车类别
      
      3: motorcycle       # 编号 3 代表摩托车类别
      
      4: airplane         # 编号 4 代表飞机类别
      
      5: bus              # 编号 5 代表公交车类别
      
      6: train            # 编号 6 代表火车类别
      
      7: truck            # 编号 7 代表卡车类别
      
      8: boat             # 编号 8 代表船类别
      
      9: traffic light    # 编号 9 代表交通信号灯类别
      
      10: fire hydrant    # 编号 10 代表消防栓类别
      
      11: stop sign       # 编号 11 代表停车标志类别
      
      12: parking meter   # 编号 12 代表停车计时器类别
      
      13: bench           # 编号 13 代表长椅类别
      
      14: bird            # 编号 14 代表鸟类类别
      
      15: cat             # 编号 15 代表猫类别
      
      16: dog             # 编号 16 代表狗类别
      
      17: horse           # 编号 17 代表马类别
      
      18: sheep           # 编号 18 代表绵羊类别
      
      19: cow             # 编号 19 代表牛类别
      
      20: elephant        # 编号 20 代表大象类别
      
      21: bear            # 编号 21 代表熊类别
      
      22: zebra           # 编号 22 代表斑马类别
      
      23: giraffe         # 编号 23 代表长颈鹿类别
      
      24: backpack        # 编号 24 代表背包类别
      
      25: umbrella        # 编号 25 代表雨伞类别
      
      26: handbag         # 编号 26 代表手提包类别
      
      27: tie             # 编号 27 代表领带类别
      
      28: suitcase        # 编号 28 代表行李箱类别
      
      29: frisbee         # 编号 29 代表飞盘类别
      
      30: skis            # 编号 30 代表滑雪板类别
      
      31: snowboard       # 编号 31 代表滑雪板(单板)类别
      
      32: sports ball     # 编号 32 代表运动球类类别
      
      33: kite            # 编号 33 代表风筝类别
      
      34: baseball bat    # 编号 34 代表棒球棒类别
      
      35: baseball glove  # 编号 35 代表棒球手套类别
      
      36: skateboard      # 编号 36 代表滑板类别
      
      37: surfboard       # 编号 37 代表冲浪板类别
      
      38: tennis racket   # 编号 38 代表网球拍类别
      
      39: bottle          # 编号 39 代表瓶子类别
      
      40: wine glass      # 编号 40 代表酒杯类别
      
      41: cup             # 编号 41 代表杯子类别
      
      42: fork            # 编号 42 代表叉子类别
      
      43: knife           # 编号 43 代表刀类别
      
      44: spoon           # 编号 44 代表勺子类别
      
      45: bowl            # 编号 45 代表碗类别
      
      46: banana          # 编号 46 代表香蕉类别
      
      47: apple           # 编号 47 代表苹果类别
      
      48: sandwich        # 编号 48 代表三明治类别
      
      49: orange          # 编号 49 代表橙子类别
      
      50: broccoli        # 编号 50 代表西兰花类别
      
      51: carrot          # 编号 51 代表胡萝卜类别
      
      52: hot dog         # 编号 52 代表热狗类别
      
      53: pizza           # 编号 53 代表披萨类别
      
      54: donut           # 编号 54 代表甜甜圈类别
      
      55: cake            # 编号 55 代表蛋糕类别
      
      56: chair           # 编号 56 代表椅子类别
      
      57: couch           # 编号 57 代表沙发类别
      
      58: potted plant    # 编号 58 代表盆栽植物类别
      
      59: bed             # 编号 59 代表床类别
      
      60: dining table    # 编号 60 代表餐桌类别
      
      61: toilet          # 编号 61 代表马桶类别
      
      62: tv              # 编号 62 代表电视类别
      
      63: laptop          # 编号 63 代表笔记本电脑类别
      
      64: mouse           # 编号 64 代表鼠标类别
      
      65: remote          # 编号 65 代表遥控器类别
      
      66: keyboard        # 编号 66 代表键盘类别
      
      67: cell phone      # 编号 67 代表手机类别
      
      68: microwave       # 编号 68 代表微波炉类别
      
      69: oven            # 编号 69 代表烤箱类别
      
      70: toaster         # 编号 70 代表烤面包机类别
      
      71: sink            # 编号 71 代表水槽类别
      
      72: refrigerator    # 编号 72 代表冰箱类别
      
      73: book            # 编号 73 代表书籍类别
      
      74: clock           # 编号 74 代表时钟类别
      
      75: vase            # 编号 75 代表花瓶类别
      
      76: scissors        # 编号 76 代表剪刀类别
      
      77: teddy bear      # 编号 77 代表泰迪熊类别
      
      78: hair drier      # 编号 78 代表吹风机类别
      
      79: toothbrush      # 编号 79 代表牙刷类别
    
    # 数据集下载的 Python 代码
    download: |
      #  pathlib 模块导入 Path 类,用于处理文件路径
      from pathlib import Path
      
      #  ultralytics 库的 utils.downloads 模块导入 download 函数,用于下载文件
      from ultralytics.utils.downloads import download
    
      # 是否使用分割标注数据的标志
      segments = True
      
      # 获取数据集的根目录
      dir = Path(yaml["path"])
      # 定义基础下载链接
      url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/"
      
      # 根据 segments 标志选择不同的标注数据压缩包
      urls = [url + ("coco2017labels-segments.zip" if segments else "coco2017labels.zip")]
      
      # 调用 download 函数下载标注数据压缩包到数据集根目录的父目录
      download(urls, dir=dir.parent)
    
      # 定义图像数据的下载链接列表
      urls = [
          "http://images.cocodataset.org/zips/train2017.zip",  # 训练集图像压缩包,约 19G,包含 118k 张图像
          
          "http://images.cocodataset.org/zips/val2017.zip",    # 验证集图像压缩包,约 1G,包含 5k 张图像
          
          "http://images.cocodataset.org/zips/test2017.zip",   # 测试集图像压缩包,约 7G,包含 41k 张图像(可选)
      ]
      
      # 调用 download 函数下载图像数据压缩包到数据集根目录下的 images 子目录,使用 3 个线程进行下载
      download(urls, dir=dir / "images", threads=3)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言析数智

创作不易,感谢客官的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值