Ultralytics-中文文档-七-

Ultralytics 中文文档(七)

VOC 数据集

原文:docs.ultralytics.com/datasets/detect/voc/

PASCAL VOC(视觉对象类别)数据集是一个著名的物体检测、分割和分类数据集。它旨在促进对各种物体类别的研究,并常用于评估计算机视觉模型。对于从事物体检测、分割和分类任务的研究人员和开发者来说,这是一个必备的数据集。

主要特点

  • VOC 数据集包括两个主要挑战:VOC2007 和 VOC2012。

  • 该数据集包含 20 种物体类别,包括常见的如汽车、自行车和动物,以及更具体的类别如船只、沙发和餐桌。

  • 注释包括物体检测和分类任务的对象边界框和类标签,以及分割任务的分割蒙版。

  • VOC 提供标准化的评估指标,如平均精度(mAP),用于物体检测和分类,使其适合比较模型性能。

数据集结构

VOC 数据集分为三个子集:

  1. 训练集:该子集包含用于训练物体检测、分割和分类模型的图像。

  2. 验证集:该子集包含用于模型训练期间验证目的的图像。

  3. 测试集:该子集包含用于测试和基准测试已训练模型的图像。此子集的地面真实注释不公开,其结果提交至PASCAL VOC 评估服务器进行性能评估。

应用

VOC 数据集广泛用于训练和评估深度学习模型,包括物体检测(如 YOLO、Faster R-CNN 和 SSD)、实例分割(如 Mask R-CNN)和图像分类。数据集具有多样的物体类别集合、大量标注图像和标准化评估指标,使其成为计算机视觉研究人员和从业者的重要资源。

数据集 YAML

YAML(另一种标记语言)文件用于定义数据集配置。它包含关于数据集路径、类别和其他相关信息的信息。在 VOC 数据集的情况下,VOC.yaml文件维护在github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VOC.yaml。

ultralytics/cfg/datasets/VOC.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# PASCAL VOC dataset http://host.robots.ox.ac.uk/pascal/VOC by University of Oxford
# Documentation: # Documentation: https://docs.ultralytics.com/datasets/detect/voc/
# Example usage: yolo train data=VOC.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── VOC  ← downloads here (2.8 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/VOC
train:  # train images (relative to 'path')  16551 images
  -  images/train2012
  -  images/train2007
  -  images/val2012
  -  images/val2007
val:  # val images (relative to 'path')  4952 images
  -  images/test2007
test:  # test images (optional)
  -  images/test2007

# Classes
names:
  0:  aeroplane
  1:  bicycle
  2:  bird
  3:  boat
  4:  bottle
  5:  bus
  6:  car
  7:  cat
  8:  chair
  9:  cow
  10:  diningtable
  11:  dog
  12:  horse
  13:  motorbike
  14:  person
  15:  pottedplant
  16:  sheep
  17:  sofa
  18:  train
  19:  tvmonitor

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download:  |
  import xml.etree.ElementTree as ET

  from tqdm import tqdm
  from ultralytics.utils.downloads import download
  from pathlib import Path

  def convert_label(path, lb_path, year, image_id):
  def convert_box(size, box):
  dw, dh = 1\. / size[0], 1\. / size[1]
  x, y, w, h = (box[0] + box[1]) / 2.0 - 1, (box[2] + box[3]) / 2.0 - 1, box[1] - box[0], box[3] - box[2]
  return x * dw, y * dh, w * dw, h * dh

  in_file = open(path / f'VOC{year}/Annotations/{image_id}.xml')
  out_file = open(lb_path, 'w')
  tree = ET.parse(in_file)
  root = tree.getroot()
  size = root.find('size')
  w = int(size.find('width').text)
  h = int(size.find('height').text)

  names = list(yaml['names'].values())  # names list
  for obj in root.iter('object'):
  cls = obj.find('name').text
  if cls in names and int(obj.find('difficult').text) != 1:
  xmlbox = obj.find('bndbox')
  bb = convert_box((w, h), [float(xmlbox.find(x).text) for x in ('xmin', 'xmax', 'ymin', 'ymax')])
  cls_id = names.index(cls)  # class id
  out_file.write(" ".join(str(a) for a in (cls_id, *bb)) + '\n')

  # Download
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
  urls = [f'{url}VOCtrainval_06-Nov-2007.zip',  # 446MB, 5012 images
  f'{url}VOCtest_06-Nov-2007.zip',  # 438MB, 4953 images
  f'{url}VOCtrainval_11-May-2012.zip']  # 1.95GB, 17126 images
  download(urls, dir=dir / 'images', curl=True, threads=3, exist_ok=True)  # download and unzip over existing paths (required)

  # Convert
  path = dir / 'images/VOCdevkit'
  for year, image_set in ('2012', 'train'), ('2012', 'val'), ('2007', 'train'), ('2007', 'val'), ('2007', 'test'):
  imgs_path = dir / 'images' / f'{image_set}{year}'
  lbs_path = dir / 'labels' / f'{image_set}{year}'
  imgs_path.mkdir(exist_ok=True, parents=True)
  lbs_path.mkdir(exist_ok=True, parents=True)

  with open(path / f'VOC{year}/ImageSets/Main/{image_set}.txt') as f:
  image_ids = f.read().strip().split()
  for id in tqdm(image_ids, desc=f'{image_set}{year}'):
  f = path / f'VOC{year}/JPEGImages/{id}.jpg'  # old img path
  lb_path = (lbs_path / f.name).with_suffix('.txt')  # new label path
  f.rename(imgs_path / f.name)  # move image
  convert_label(path, lb_path, year, id)  # convert labels to YOLO format 

使用

若要在 VOC 数据集上使用 640 像素大小进行 100 轮次的 YOLOv8n 模型训练,可以使用以下代码片段。有关可用参数的详细列表,请参阅模型训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="VOC.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=VOC.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

样本图像和注释

VOC 数据集包含多种类别和复杂场景的图像。以下是数据集中一些图像的示例,以及它们对应的标注:

数据集示例图像

  • 拼贴图像:这张图展示了由拼贴数据集图像组成的训练批次。拼贴是一种在训练过程中使用的技术,将多个图像合并成一张图像,以增加每个训练批次中对象和场景的多样性。这有助于提高模型对不同对象大小、长宽比和环境背景的泛化能力。

这个示例展示了 VOC 数据集中图像的多样性和复杂性,以及在训练过程中使用拼贴的好处。

引用和致谢

如果您在研究或开发中使用 VOC 数据集,请引用以下论文:

@misc{everingham2010pascal,
  title={The PASCAL Visual Object Classes (VOC) Challenge},
  author={Mark Everingham and Luc Van Gool and Christopher K. I. Williams and John Winn and Andrew Zisserman},
  year={2010},
  eprint={0909.5206},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
} 

我们要感谢 PASCAL VOC 联盟为计算机视觉社区创建和维护这一宝贵资源。有关 VOC 数据集及其创建者的更多信息,请访问 PASCAL VOC 数据集网站。

常见问题解答

PASCAL VOC 数据集是什么,为何在计算机视觉任务中如此重要?

PASCAL VOC(视觉对象类别)数据集是计算机视觉中物体检测、分割和分类的著名基准。它包含了跨 20 种不同对象类别的详细标注,如边界框、类别标签和分割掩码。研究人员广泛使用它来评估 Faster R-CNN、YOLO 和 Mask R-CNN 等模型的性能,因为它具有如均值平均精度(mAP)等标准化评估指标。

如何使用 VOC 数据集训练 YOLOv8 模型?

要使用 VOC 数据集训练 YOLOv8 模型,您需要在 YAML 文件中配置数据集。以下是一个示例,用于开始训练一个图像大小为 640 的 YOLOv8n 模型,训练 100 个 epochs:

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="VOC.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=VOC.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

VOC 数据集中包含的主要挑战是什么?

VOC 数据集包括两个主要挑战:VOC2007 和 VOC2012。这些挑战涵盖了物体检测、分割和分类在 20 种不同对象类别上的测试。每张图像都经过详细标注,包括边界框、类别标签和分割掩码。这些挑战提供了像 mAP 这样的标准化指标,便于比较和基准测试不同的计算机视觉模型。

PASCAL VOC 数据集如何增强模型的基准测试和评估?

PASCAL VOC 数据集通过其详细的标注和均值平均精度(mAP)等标准化指标增强了模型的基准测试和评估。这些指标对于评估物体检测和分类模型的性能至关重要。数据集中多样且复杂的图像确保了对各种现实场景进行全面的模型评估。

如何在 YOLO 模型中使用 VOC 数据集进行语义分割?

要在 YOLO 模型中使用 VOC 数据集进行语义分割任务,您需要在 YAML 文件中正确配置数据集。YAML 文件定义了训练语义分割模型所需的路径和类别。详细的设置请查看 VOC.yaml 中的 VOC 数据集 YAML 配置文件。

xView 数据集

原文:docs.ultralytics.com/datasets/detect/xview/

xView数据集是最大的公共可用高空图像数据集之一,包含来自世界各地复杂场景的图像,并使用边界框进行注释。xView 数据集的目标是加速四个计算机视觉前沿领域的进展:

  1. 降低检测的最小分辨率。

  2. 提高学习效率。

  3. 使发现更多物体类别成为可能。

  4. 改善对细粒度类别的检测。

xView 建立在像“上下文中的常见物体”(COCO)这样的挑战成功之上,旨在利用计算机视觉分析来自太空的日益增长的可用图像,以便以新的方式理解视觉世界并解决一系列重要应用。

关键特性

  • xView 包含超过 100 万个物体实例,跨越 60 个类别。

  • 该数据集的分辨率为 0.3 米,提供比大多数公共卫星影像数据集更高分辨率的图像。

  • xView 具有多样化的小型、稀有、细粒度和多类型物体的边界框注释集合。

  • 附带一个使用 TensorFlow 物体检测 API 的预训练基线模型和一个 PyTorch 示例。

数据集结构

xView 数据集由从 WorldView-3 卫星收集的卫星图像组成,具有 0.3 米的地面采样距离。它包含超过 100 万个物体,跨越 60 个类别,覆盖超过 1,400 平方公里的图像。

应用

xView 数据集广泛用于训练和评估用于高空图像物体检测的深度学习模型。该数据集多样的物体类别和高分辨率图像使其成为计算机视觉领域研究人员和从业者的宝贵资源,特别是在卫星图像分析方面。

数据集 YAML

YAML(Yet Another Markup Language)文件用于定义数据集配置。它包含有关数据集路径、类别和其他相关信息的信息。在 xView 数据集中,xView.yaml文件维护在github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/xView.yaml。

ultralytics/cfg/datasets/xView.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# DIUx xView 2018 Challenge https://challenge.xviewdataset.org by U.S. National Geospatial-Intelligence Agency (NGA)
# --------  DOWNLOAD DATA MANUALLY and jar xf val_images.zip to 'datasets/xView' before running train command!  --------
# Documentation: https://docs.ultralytics.com/datasets/detect/xview/
# Example usage: yolo train data=xView.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── xView  ← downloads here (20.7 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/xView  # dataset root dir
train:  images/autosplit_train.txt  # train images (relative to 'path') 90% of 847 train images
val:  images/autosplit_val.txt  # train images (relative to 'path') 10% of 847 train images

# Classes
names:
  0:  Fixed-wing Aircraft
  1:  Small Aircraft
  2:  Cargo Plane
  3:  Helicopter
  4:  Passenger Vehicle
  5:  Small Car
  6:  Bus
  7:  Pickup Truck
  8:  Utility Truck
  9:  Truck
  10:  Cargo Truck
  11:  Truck w/Box
  12:  Truck Tractor
  13:  Trailer
  14:  Truck w/Flatbed
  15:  Truck w/Liquid
  16:  Crane Truck
  17:  Railway Vehicle
  18:  Passenger Car
  19:  Cargo Car
  20:  Flat Car
  21:  Tank car
  22:  Locomotive
  23:  Maritime Vessel
  24:  Motorboat
  25:  Sailboat
  26:  Tugboat
  27:  Barge
  28:  Fishing Vessel
  29:  Ferry
  30:  Yacht
  31:  Container Ship
  32:  Oil Tanker
  33:  Engineering Vehicle
  34:  Tower crane
  35:  Container Crane
  36:  Reach Stacker
  37:  Straddle Carrier
  38:  Mobile Crane
  39:  Dump Truck
  40:  Haul Truck
  41:  Scraper/Tractor
  42:  Front loader/Bulldozer
  43:  Excavator
  44:  Cement Mixer
  45:  Ground Grader
  46:  Hut/Tent
  47:  Shed
  48:  Building
  49:  Aircraft Hangar
  50:  Damaged Building
  51:  Facility
  52:  Construction Site
  53:  Vehicle Lot
  54:  Helipad
  55:  Storage Tank
  56:  Shipping container lot
  57:  Shipping Container
  58:  Pylon
  59:  Tower

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download:  |
  import json
  import os
  from pathlib import Path

  import numpy as np
  from PIL import Image
  from tqdm import tqdm

  from ultralytics.data.utils import autosplit
  from ultralytics.utils.ops import xyxy2xywhn

  def convert_labels(fname=Path('xView/xView_train.geojson')):
  # Convert xView geoJSON labels to YOLO format
  path = fname.parent
  with open(fname) as f:
  print(f'Loading {fname}...')
  data = json.load(f)

  # Make dirs
  labels = Path(path / 'labels' / 'train')
  os.system(f'rm -rf {labels}')
  labels.mkdir(parents=True, exist_ok=True)

  # xView classes 11-94 to 0-59
  xview_class2index = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, -1, 3, -1, 4, 5, 6, 7, 8, -1, 9, 10, 11,
  12, 13, 14, 15, -1, -1, 16, 17, 18, 19, 20, 21, 22, -1, 23, 24, 25, -1, 26, 27, -1, 28, -1,
  29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, -1, 46,
  47, 48, 49, -1, 50, 51, -1, 52, -1, -1, -1, 53, 54, -1, 55, -1, -1, 56, -1, 57, -1, 58, 59]

  shapes = {}
  for feature in tqdm(data['features'], desc=f'Converting {fname}'):
  p = feature['properties']
  if p['bounds_imcoords']:
  id = p['image_id']
  file = path / 'train_images' / id
  if file.exists():  # 1395.tif missing
  try:
  box = np.array([int(num) for num in p['bounds_imcoords'].split(",")])
  assert box.shape[0] == 4, f'incorrect box shape {box.shape[0]}'
  cls = p['type_id']
  cls = xview_class2index[int(cls)]  # xView class to 0-60
  assert 59 >= cls >= 0, f'incorrect class index {cls}'

  # Write YOLO label
  if id not in shapes:
  shapes[id] = Image.open(file).size
  box = xyxy2xywhn(box[None].astype(np.float), w=shapes[id][0], h=shapes[id][1], clip=True)
  with open((labels / id).with_suffix('.txt'), 'a') as f:
  f.write(f"{cls} {' '.join(f'{x:.6f}' for x in box[0])}\n")  # write label.txt
  except Exception as e:
  print(f'WARNING: skipping one label for {file}: {e}')

  # Download manually from https://challenge.xviewdataset.org
  dir = Path(yaml['path'])  # dataset root dir
  # urls = ['https://d307kc0mrhucc3.cloudfront.net/train_labels.zip',  # train labels
  #         'https://d307kc0mrhucc3.cloudfront.net/train_images.zip',  # 15G, 847 train images
  #         'https://d307kc0mrhucc3.cloudfront.net/val_images.zip']  # 5G, 282 val images (no labels)
  # download(urls, dir=dir)

  # Convert labels
  convert_labels(dir / 'xView_train.geojson')

  # Move images
  images = Path(dir / 'images')
  images.mkdir(parents=True, exist_ok=True)
  Path(dir / 'train_images').rename(dir / 'images' / 'train')
  Path(dir / 'val_images').rename(dir / 'images' / 'val')

  # Split
  autosplit(dir / 'images' / 'train') 

使用

要在 xView 数据集上训练一个模型 100 个周期,图像大小为 640,可以使用以下代码片段。有关可用参数的完整列表,请参阅模型训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="xView.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=xView.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

示例数据和注释

xView 数据集包含高分辨率卫星图像,具有多样化的物体,使用边界框进行注释。以下是来自该数据集的一些数据示例及其相应的注释:

数据集示例图像

  • 航拍图像:这幅图像展示了航拍图像中对象检测的示例,其中对象用边界框进行了注释。该数据集提供高分辨率卫星图像,以便为该任务开发模型。

此示例展示了 xView 数据集中数据的多样性和复杂性,并突显了高质量卫星图像对对象检测任务的重要性。

引用和致谢

如果您在研究或开发工作中使用 xView 数据集,请引用以下论文:

@misc{lam2018xview,
  title={xView: Objects in Context in Overhead Imagery},
  author={Darius Lam and Richard Kuzma and Kevin McGee and Samuel Dooley and Michael Laielli and Matthew Klaric and Yaroslav Bulatov and Brendan McCord},
  year={2018},
  eprint={1802.07856},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
} 

我们要感谢国防创新单位(DIU)和 xView 数据集的创建者,感谢他们为计算机视觉研究社区做出的宝贵贡献。有关 xView 数据集及其创建者的更多信息,请访问xView 数据集网站。

常见问题解答

xView 数据集是什么,以及它如何促进计算机视觉研究?

xView数据集是最大的公开高分辨率航拍图像集合之一,包含 60 个类别的超过 100 万个对象实例。它旨在增强计算机视觉研究的各个方面,如降低检测的最小分辨率、提高学习效率、发现更多对象类别以及推进细粒度对象检测。

如何使用 Ultralytics YOLO 在 xView 数据集上训练模型?

使用 Ultralytics YOLO 在 xView 数据集上训练模型,请按照以下步骤进行:

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="xView.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=xView.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

有关详细的参数和设置,请参阅模型训练页面。

xView 数据集的关键特性是什么?

xView 数据集以其全面的特性脱颖而出:- 超过 100 万个 60 个不同类别的对象实例。- 地面分辨率为 0.3 米的高分辨率影像。- 包括小型、稀有和细粒度对象类型,所有这些都用边界框进行了注释。- 提供了一个预训练的基线模型和 TensorFlow 和 PyTorch 的示例。

xView 数据集的数据结构及其如何标注?

xView 数据集由 WorldView-3 卫星收集的高分辨率卫星图像组成,地面采样距离为 0.3 米。它包含约 1400 平方公里的影像中超过 100 万个对象,涵盖 60 个类别。数据集中的每个对象都用边界框进行了注释,非常适合用于训练和评估用于航拍图像中对象检测的深度学习模型。有关详细概述,请参阅此处的数据集结构部分。

如何在我的研究中引用 xView 数据集?

如果您在研究中使用 xView 数据集,请引用以下论文:

BibTeX

@misc{lam2018xview,
  title={xView: Objects in Context in Overhead Imagery},
  author={Darius Lam and Richard Kuzma and Kevin McGee and Samuel Dooley and Michael Laielli and Matthew Klaric and Yaroslav Bulatov and Brendan McCord},
  year={2018},
  eprint={1802.07856},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
} 

关于 xView 数据集的更多信息,请访问官方xView 数据集网站。

Roboflow 100 数据集

原文:docs.ultralytics.com/datasets/detect/roboflow-100/

Roboflow 100 由Roboflow开发,由英特尔赞助,是一个突破性的物体检测基准。它包括从超过 90,000 个公共数据集中抽样的 100 个多样化数据集。该基准旨在测试模型对包括医疗、航空影像和视频游戏在内的各种领域的适应性。

Roboflow 100 概述

主要特点

  • 包括来自七个领域的 100 个数据集:航空影像、视频游戏、显微镜下、水下、文档、电磁和现实世界。

  • 该基准包括 224,714 张图像,涵盖 805 个类别,感谢超过 11,170 小时的标注工作。

  • 所有图像均调整为 640x640 像素,重点消除类别模糊和过滤不充分的类别。

  • 标注包括物体的边界框,适合用于训练和评估物体检测模型。

数据集结构

Roboflow 100 数据集分为七个类别,每个类别包含一组独特的数据集、图像和类别:

  • 航空影像:包括 7 个数据集,共计 9,683 张图像,涵盖 24 个不同类别。

  • 视频游戏:包括 7 个数据集,共计 11,579 张图像,涵盖 88 个类别。

  • 显微镜下:包括 11 个数据集,共计 13,378 张图像,涵盖 28 个类别。

  • 水下:包括 5 个数据集,共计 18,003 张图像,涵盖 39 个类别。

  • 文档:包括 8 个数据集,共计 24,813 张图像,分为 90 个类别。

  • 电磁:包括 12 个数据集,共计 36,381 张图像,涵盖 41 个类别。

  • 现实世界:最大的类别,包括 50 个数据集,共计 110,615 张图像,涵盖 495 个类别。

这种结构为物体检测模型提供了一个多样化和广泛的测试平台,反映了真实的应用场景。

基准测试

数据集基准测试通过使用像准确率、平均精度和 F1 分数等标准化指标,评估特定数据集上机器学习模型的性能。

基准测试

基准测试结果将存储在"ultralytics-benchmarks/evaluation.txt"中。

基准测试示例

import os
import shutil
from pathlib import Path

from ultralytics.utils.benchmarks import RF100Benchmark

# Initialize RF100Benchmark and set API key
benchmark = RF100Benchmark()
benchmark.set_key(api_key="YOUR_ROBOFLOW_API_KEY")

# Parse dataset and define file paths
names, cfg_yamls = benchmark.parse_dataset()
val_log_file = Path("ultralytics-benchmarks") / "validation.txt"
eval_log_file = Path("ultralytics-benchmarks") / "evaluation.txt"

# Run benchmarks on each dataset in RF100
for ind, path in enumerate(cfg_yamls):
    path = Path(path)
    if path.exists():
        # Fix YAML file and run training
        benchmark.fix_yaml(str(path))
        os.system(f"yolo detect train data={path} model=yolov8s.pt epochs=1 batch=16")

        # Run validation and evaluate
        os.system(f"yolo detect val data={path} model=runs/detect/train/weights/best.pt > {val_log_file} 2>&1")
        benchmark.evaluate(str(path), str(val_log_file), str(eval_log_file), ind)

        # Remove the 'runs' directory
        runs_dir = Path.cwd() / "runs"
        shutil.rmtree(runs_dir)
    else:
        print("YAML file path does not exist")
        continue

print("RF100 Benchmarking completed!") 

应用场景

Roboflow 100 对于与计算机视觉和深度学习相关的各种应用至关重要。研究人员和工程师可以利用这一基准来:

  • 在多领域背景下评估物体检测模型的性能。

  • 测试模型在超越常见物体识别的真实场景中的适应性。

  • 通过在包括医疗、航空影像和视频游戏等多样数据集上进行基准测试,评估物体检测模型的能力。

欲了解更多关于实际应用的想法和灵感,请务必查看我们关于实际项目的指南。

使用方法

Roboflow 100 数据集可在 GitHub 和 Roboflow Universe 上找到。

您可以直接从 Roboflow 100 GitHub 仓库访问它。此外,在 Roboflow Universe 上,您可以通过单击每个数据集内的导出按钮灵活下载各个数据集。

样本数据和注释

Roboflow 100 包含了来自各个角度和领域的多样化图像和视频数据集。以下是 RF100 基准测试中带注释图像的示例。

样本数据和注释

上述 Roboflow 100 基准测试中的多样性是传统基准测试的重大进步,传统基准测试通常集中于优化有限领域内的单一指标。

引用和致谢

如果您在研究或开发工作中使用 Roboflow 100 数据集,请引用以下论文:

@misc{2211.13523,
  Author  =  {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
  Title  =  {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
  Eprint  =  {arXiv:2211.13523},
} 

我们衷心感谢 Roboflow 团队和所有贡献者在创建和维护 Roboflow 100 数据集中所作的努力。

如果您有兴趣探索更多数据集以增强您的目标检测和机器学习项目,请随时访问我们的全面数据集收藏。

FAQ

Roboflow 100 数据集是什么,对目标检测有何重要意义?

Roboflow 100 数据集由 Roboflow 开发,并由 Intel 赞助,是一个重要的目标检测基准。它包括来自超过 90,000 个公共数据集的 100 个多样化数据集,涵盖了健康医疗、航空影像和视频游戏等多个领域。这种多样性确保模型能够适应各种真实场景,增强其鲁棒性和性能。

如何使用 Roboflow 100 数据集对我的目标检测模型进行基准测试?

要使用 Roboflow 100 数据集进行基准测试,您可以从 Ultralytics 库中实现 RF100Benchmark 类。以下是一个简单的示例:

基准测试示例

import os
import shutil
from pathlib import Path

from ultralytics.utils.benchmarks import RF100Benchmark

# Initialize RF100Benchmark and set API key
benchmark = RF100Benchmark()
benchmark.set_key(api_key="YOUR_ROBOFLOW_API_KEY")

# Parse dataset and define file paths
names, cfg_yamls = benchmark.parse_dataset()
val_log_file = Path("ultralytics-benchmarks") / "validation.txt"
eval_log_file = Path("ultralytics-benchmarks") / "evaluation.txt"

# Run benchmarks on each dataset in RF100
for ind, path in enumerate(cfg_yamls):
    path = Path(path)
    if path.exists():
        # Fix YAML file and run training
        benchmark.fix_yaml(str(path))
        os.system(f"yolo detect train data={path} model=yolov8s.pt epochs=1 batch=16")

        # Run validation and evaluate
        os.system(f"yolo detect val data={path} model=runs/detect/train/weights/best.pt > {val_log_file} 2>&1")
        benchmark.evaluate(str(path), str(val_log_file), str(eval_log_file), ind)

        # Remove 'runs' directory
        runs_dir = Path.cwd() / "runs"
        shutil.rmtree(runs_dir)
    else:
        print("YAML file path does not exist")
        continue

print("RF100 Benchmarking completed!") 

Roboflow 100 数据集涵盖了哪些领域?

Roboflow 100 数据集涵盖了七个领域,每个领域都为目标检测模型提供了独特的挑战和应用:

  1. Aerial: 7 个数据集,9,683 张图像,24 个类别

  2. Video Games: 7 个数据集,11,579 张图像,88 个类别

  3. Microscopic: 11 个数据集,13,378 张图像,28 个类别

  4. Underwater: 5 个数据集,18,003 张图像,39 个类别

  5. Documents: 8 个数据集,24,813 张图像,90 个类别

  6. Electromagnetic: 12 个数据集,36,381 张图像,41 个类别

  7. Real World: 50 个数据集,110,615 张图像,495 个类别

这种设置允许在不同的真实应用程序中进行广泛和多样化的模型测试。

如何访问和下载 Roboflow 100 数据集?

Roboflow 100 数据集可在 GitHub 和 Roboflow Universe 上获取。你可以从 GitHub 下载整个数据集,或者使用 Roboflow Universe 上的导出按钮选择个别数据集。

在我的研究中引用 Roboflow 100 数据集时应包括什么?

在你的研究中使用 Roboflow 100 数据集时,请确保正确引用。以下是推荐的引用方式:

引用

@misc{2211.13523,
  Author  =  {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
  Title  =  {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
  Eprint  =  {arXiv:2211.13523},
} 

欲了解更多详情,请参阅我们的全面数据集收藏。

脑瘤数据集

原文:docs.ultralytics.com/datasets/detect/brain-tumor/

脑瘤检测数据集包含来自 MRI 或 CT 扫描的医学图像,包括有关脑瘤存在、位置和特征的信息。这些数据集对于训练计算机视觉算法以自动化脑瘤识别至关重要,有助于早期诊断和治疗规划。

www.youtube.com/embed/ogTBBD8McRk

观看:使用 Ultralytics HUB 进行脑瘤检测

数据集结构

脑瘤数据集分为两个子集:

  • 训练集:包含 893 张图像,每张图像均配有相应的标注。

  • 测试集:包括 223 张图像,每张图像均配有相应的标注。

应用

利用计算机视觉进行脑瘤检测的应用能够实现早期诊断、治疗规划和肿瘤进展的监测。通过分析 MRI 或 CT 扫描等医学影像数据,计算机视觉系统能够准确识别脑瘤,有助于及时的医疗干预和个性化治疗策略。

数据集 YAML

YAML(Yet Another Markup Language)文件用于定义数据集配置。它包含有关数据集路径、类别和其他相关信息的信息。对于脑瘤数据集,brain-tumor.yaml 文件保存在 github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/brain-tumor.yaml。

ultralytics/cfg/datasets/brain-tumor.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# Brain-tumor dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/brain-tumor/
# Example usage: yolo train data=brain-tumor.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── brain-tumor  ← downloads here (4.05 MB)

# 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/brain-tumor  # dataset root dir
train:  train/images  # train images (relative to 'path') 893 images
val:  valid/images  # val images (relative to 'path') 223 images
test:  # test images (relative to 'path')

# Classes
names:
  0:  negative
  1:  positive

# Download script/URL (optional)
download:  https://github.com/ultralytics/assets/releases/download/v0.0.0/brain-tumor.zip 

用法

若要在脑瘤数据集上使用大小为 640 的图像训练一个 YOLOv8n 模型,可以使用提供的代码片段进行 100 个 epoch 的训练。有关可用参数的详细列表,请参阅模型的训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="brain-tumor.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=brain-tumor.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

推理示例

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/best.pt")  # load a brain-tumor fine-tuned model

# Inference using the model
results = model.predict("https://ultralytics.com/assets/brain-tumor-sample.jpg") 
# Start prediction with a finetuned *.pt model
yolo  detect  predict  model='path/to/best.pt'  imgsz=640  source="https://ultralytics.com/assets/brain-tumor-sample.jpg" 

样本图像和标注

脑瘤数据集涵盖了大量展示多种物体类别和复杂场景的图像。以下展示了数据集中的图像示例及其相应的标注。

脑瘤数据集样本图像

  • 镶嵌图像:这里展示了一个包含镶嵌数据集图像的训练批次。镶嵌是一种训练技术,将多个图像合并成一个,增强了批处理的多样性。这种方法有助于提高模型在各种物体大小、长宽比和背景情境中的泛化能力。

此示例突显了脑瘤数据集内图像的多样性和复杂性,强调在训练阶段引入镶嵌技术的优势。

引用和致谢

该数据集已根据 AGPL-3.0 许可 发布。

常见问题解答

Ultralytics 文档中可用的大脑肿瘤数据集的结构是什么?

大脑肿瘤数据集分为两个子集:训练集包含 893 张图像及其对应的注释,而测试集则包括 223 张带有配对注释的图像。这种结构化分割有助于开发用于检测大脑肿瘤的强大且准确的计算机视觉模型。有关数据集结构的更多信息,请访问数据集结构部分。

如何使用 Ultralytics 在大脑肿瘤数据集上训练 YOLOv8 模型?

使用 Python 和 CLI 方法可以在大脑肿瘤数据集上训练 YOLOv8 模型 100 个 epoch,图像尺寸为 640px。以下是两种方法的示例:

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="brain-tumor.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=brain-tumor.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

若要查看可用参数的详细列表,请参阅训练页面。

在医疗保健领域中使用大脑肿瘤数据集有哪些好处?

在 AI 项目中使用大脑肿瘤数据集可以实现对大脑肿瘤的早期诊断和治疗计划。它有助于通过计算机视觉自动化大脑肿瘤识别,促进准确及时的医疗干预,支持个性化治疗策略。这一应用在提高患者预后和医疗效率方面具有重要潜力。

如何使用经过微调的 YOLOv8 模型对大脑肿瘤数据集进行推理?

使用经过微调的 YOLOv8 模型可以通过 Python 或 CLI 方法进行推理。以下是示例:

推理示例

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/best.pt")  # load a brain-tumor fine-tuned model

# Inference using the model
results = model.predict("https://ultralytics.com/assets/brain-tumor-sample.jpg") 
# Start prediction with a finetuned *.pt model
yolo  detect  predict  model='path/to/best.pt'  imgsz=640  source="https://ultralytics.com/assets/brain-tumor-sample.jpg" 

我在哪里可以找到大脑肿瘤数据集的 YAML 配置?

大脑肿瘤数据集的 YAML 配置文件可以在brain-tumor.yaml找到。该文件包含了用于在该数据集上训练和评估模型所需的路径、类别和其他相关信息。

非洲野生动物数据集

原文:docs.ultralytics.com/datasets/detect/african-wildlife/

该数据集展示了南非自然保护区中四类常见动物,包括水牛、大象、犀牛和斑马的图像,深入了解它们的特征。对于训练计算机视觉算法至关重要,该数据集有助于在各种栖息地中识别动物,从动物园到森林,支持野生动物研究。

www.youtube.com/embed/biIW5Z6GYl0

观看: 使用 Ultralytics YOLOv8 检测非洲野生动物

数据集结构

非洲野生动物对象检测数据集分为三个子集:

  • 训练集:包含 1052 张图像,每张图像都有相应的标注。

  • 验证集:包括 225 张图像,每张图像都有配对的标注。

  • 测试集:包括 227 张图像,每张图像都有配对的标注。

应用

这个数据集可以应用于各种计算机视觉任务,如目标检测、目标跟踪和研究。具体来说,它可用于训练和评估模型,以识别图像中的非洲野生动物对象,这在野生动物保护、生态研究以及自然保护区和受保护区的监测工作中具有应用。此外,它还可以作为教育目的的宝贵资源,帮助学生和研究人员研究和理解不同动物物种的特征和行为。

数据集 YAML

一个 YAML(另一种标记语言)文件定义了数据集配置,包括路径、类别和其他相关细节。对于非洲野生动物数据集,african-wildlife.yaml文件位于github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/african-wildlife.yaml。

ultralytics/cfg/datasets/african-wildlife.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# African-wildlife dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/african-wildlife/
# Example usage: yolo train data=african-wildlife.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── african-wildlife  ← downloads here (100 MB)

# 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/african-wildlife  # dataset root dir
train:  train/images  # train images (relative to 'path') 1052 images
val:  valid/images  # val images (relative to 'path') 225 images
test:  test/images  # test images (relative to 'path') 227 images

# Classes
names:
  0:  buffalo
  1:  elephant
  2:  rhino
  3:  zebra

# Download script/URL (optional)
download:  https://github.com/ultralytics/assets/releases/download/v0.0.0/african-wildlife.zip 

使用

若要使用图像大小为 640 训练 100 个时期的 YOLOv8n 模型,可以使用提供的代码示例。有关可用参数的详细列表,请参阅模型的训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="african-wildlife.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=african-wildlife.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

推理示例

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/best.pt")  # load a brain-tumor fine-tuned model

# Inference using the model
results = model.predict("https://ultralytics.com/assets/african-wildlife-sample.jpg") 
# Start prediction with a finetuned *.pt model
yolo  detect  predict  model='path/to/best.pt'  imgsz=640  source="https://ultralytics.com/assets/african-wildlife-sample.jpg" 

示例图像和标注

非洲野生动物数据集包括展示多样化动物物种及其自然栖息地的广泛图像。以下是数据集中的图像示例,每个图像都附有相应的标注。

非洲野生动物数据集示例图像

  • 马赛克图像:这里,我们展示了一个由马赛克数据集图像组成的训练批次。马赛克是一种训练技术,将多个图像合并成一个,丰富批次的多样性。这种方法有助于增强模型跨不同对象大小、长宽比和上下文的泛化能力。

这个例子展示了非洲野生动物数据集中图像的多样性和复杂性,强调了在训练过程中包含镶嵌技术的好处。

引用和致谢

数据集已在AGPL-3.0 许可证下发布可用。

常见问题解答

非洲野生动物数据集是什么,如何在计算机视觉项目中使用它?

非洲野生动物数据集包括南非自然保护区中四种常见动物物种的图像:水牛、大象、犀牛和斑马。它是训练目标检测和动物识别的计算机视觉算法的宝贵资源。该数据集支持诸如目标跟踪、研究和保护工作等多种任务。有关其结构和应用的更多信息,请参阅数据集结构部分和数据集应用。

如何使用非洲野生动物数据集训练 YOLOv8 模型?

您可以使用african-wildlife.yaml配置文件在非洲野生动物数据集上训练 YOLOv8 模型。以下是如何为 100 个 epochs 训练 YOLOv8n 模型并使用 640 的图像尺寸的示例:

示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="african-wildlife.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=african-wildlife.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

若要获取更多的训练参数和选项,请参阅训练文档。

我在哪里可以找到非洲野生动物数据集的 YAML 配置文件?

名为african-wildlife.yaml的非洲野生动物数据集的 YAML 配置文件可以在此 GitHub 链接找到。该文件定义了数据集配置,包括路径、类别和其他对训练机器学习模型至关重要的细节。有关更多细节,请参阅数据集 YAML 部分。

我可以看到非洲野生动物数据集的示例图像和注释吗?

是的,非洲野生动物数据集包括展示不同动物物种在其自然栖息地中的广泛图像。您可以在示例图像和其相应注释部分查看样本图像。本部分还展示了使用镶嵌技术将多个图像组合成一个以增强批量多样性,提升模型的泛化能力。

如何利用非洲野生动物数据集支持野生动物保护和研究?

非洲野生动物数据集通过训练和评估模型来识别不同栖息地中的非洲野生动物,是支持野生动物保护和研究的理想工具。这些模型可以帮助监测动物种群、研究它们的行为并识别保护需求。此外,该数据集还可用于教育目的,帮助学生和研究人员了解不同动物物种的特征和行为。更多详情请参见应用部分。

签名检测数据集

原文:docs.ultralytics.com/datasets/detect/signature/

该数据集专注于检测文档中的手写签名。它包含各种带注释的文档类型,为文档验证和欺诈检测应用提供了宝贵的见解。作为训练计算机视觉算法的基础数据集,该数据集帮助识别各种文档格式中的签名,支持文档分析的研究和实际应用。

数据集结构

签名检测数据集分为三个子集:

  • 训练集:包含 143 张图像,每张图像均带有相应的注释。

  • 验证集:包括 35 张图像,每张图像均附有对应的注释。

应用

该数据集可应用于各种计算机视觉任务,如目标检测、目标跟踪和文档分析。具体而言,它可用于训练和评估用于识别文档中签名的模型,这在文档验证、欺诈检测和档案研究等方面具有应用价值。此外,它还可以作为教育目的的宝贵资源,使学生和研究人员能够研究和了解不同文档类型中签名的特征和行为。

数据集 YAML

YAML(Yet Another Markup Language)文件定义了数据集配置,包括路径和类信息。对于签名检测数据集,signature.yaml 文件位于github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/signature.yaml。

ultralytics/cfg/datasets/signature.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# Signature dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/signature/
# Example usage: yolo train data=signature.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── signature  ← downloads here (11.2 MB)

# 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/signature  # dataset root dir
train:  train/images  # train images (relative to 'path') 143 images
val:  valid/images  # val images (relative to 'path') 35 images

# Classes
names:
  0:  signature

# Download script/URL (optional)
download:  https://github.com/ultralytics/assets/releases/download/v0.0.0/signature.zip 

使用方法

要在签名检测数据集上用 YOLOv8n 模型进行 100 个 epochs 的训练,图像大小设为 640,请使用提供的代码示例。有关可用参数的详细列表,请参阅模型的训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="signature.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  detect  train  data=signature.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

推理示例

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/best.pt")  # load a signature-detection fine-tuned model

# Inference using the model
results = model.predict("https://ultralytics.com/assets/signature-s.mp4", conf=0.75) 
# Start prediction with a finetuned *.pt model
yolo  detect  predict  model='path/to/best.pt'  imgsz=640  source="https://ultralytics.com/assets/signature-s.mp4"  conf=0.75 

样本图像和注释

签名检测数据集包含各种展示不同文档类型和带注释签名的图像。以下是数据集中的图像示例,每个示例都附有相应的注释。

签名检测数据集示例图像

  • 镶嵌图像:在这里,我们展示了一个包含镶嵌数据集图像的训练批次。镶嵌是一种训练技术,将多个图像组合成一个,丰富了批次的多样性。这种方法有助于增强模型在不同签名大小、长宽比和上下文中的泛化能力。

本示例展示了签名检测数据集中图像的多样性和复杂性,强调了在训练过程中包含镶嵌技术的好处。

引用和致谢

该数据集已根据AGPL-3.0 许可证发布。

常见问题解答

签名检测数据集是什么,如何使用?

签名检测数据集是一个包含有注释图像的集合,旨在检测各种文档类型中的人类签名。它可以应用于计算机视觉任务,如对象检测和跟踪,主要用于文档验证、欺诈检测和档案研究。该数据集帮助训练模型识别不同背景下的签名,对研究和实际应用都具有价值。

如何在签名检测数据集上训练 YOLOv8n 模型?

要在签名检测数据集上训练 YOLOv8n 模型,请按以下步骤操作:

  1. 从signature.yaml下载signature.yaml数据集配置文件。

  2. 使用下面的 Python 脚本或 CLI 命令开始训练:

训练示例

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolov8n.pt")

# Train the model
results = model.train(data="signature.yaml", epochs=100, imgsz=640) 
yolo  detect  train  data=signature.yaml  model=yolov8n.pt  epochs=100  imgsz=640 

欲了解更多详细信息,请参阅训练页面。

签名检测数据集的主要应用是什么?

签名检测数据集可用于:

  1. 文档验证:自动验证文档中人类签名的存在和真实性。

  2. 欺诈检测:识别法律和金融文件中的伪造或欺诈签名。

  3. 档案研究:协助历史学家和档案管理员对历史文档进行数字分析和编目。

  4. 教育:支持计算机视觉和机器学习领域的学术研究和教学。

如何使用在签名检测数据集上训练的模型执行推断?

要使用在签名检测数据集上训练的模型执行推断,请按以下步骤操作:

  1. 加载您的精调模型。

  2. 使用下面的 Python 脚本或 CLI 命令执行推断:

推断示例

from ultralytics import YOLO

# Load the fine-tuned model
model = YOLO("path/to/best.pt")

# Perform inference
results = model.predict("https://ultralytics.com/assets/signature-s.mp4", conf=0.75) 
yolo  detect  predict  model='path/to/best.pt'  imgsz=640  source="https://ultralytics.com/assets/signature-s.mp4"  conf=0.75 

签名检测数据集的结构是什么,如何获取更多信息?

签名检测数据集分为两个子集:

  • 训练集:包含有 143 张带有注释的图像。

  • 验证集:包含有 35 张带有注释的图像。

欲了解详细信息,请参考数据集结构部分。此外,您可以在位于signature.yaml的signature.yaml文件中查看完整的数据集配置。

实例分割数据集概述

原文:docs.ultralytics.com/datasets/segment/

支持的数据集格式

Ultralytics YOLO 格式

用于训练 YOLO 分割模型的数据集标签格式如下:

  1. 每个图像一个文本文件:数据集中每个图像都有一个相应的文本文件,文件名与图像文件相同,扩展名为".txt"。

  2. 每个对象一行:文本文件中的每一行对应图像中的一个对象实例。

  3. 每行的对象信息:每行包含对象实例的以下信息:

    • 对象类索引:表示对象类的整数(例如,人为 0,汽车为 1 等)。

    • 对象边界坐标:围绕掩模区域的边界坐标,归一化为 0 到 1 之间。

分割数据集文件中单行的格式如下:

<class-index> <x1> <y1> <x2> <y2> ... <xn> <yn> 

在此格式中,<类索引> 是对象的类索引,<x1> <y1> <x2> <y2> ... <xn> <yn> 是对象分割掩模的边界坐标。坐标之间用空格分隔。

这是 YOLO 数据集格式的单个图像示例,包含由 3 点段和 5 点段组成的两个对象。

0 0.681 0.485 0.670 0.487 0.676 0.487
1 0.504 0.000 0.501 0.004 0.498 0.004 0.493 0.010 0.492 0.0104 

提示

  • 每行的长度不需要相等。

  • 每个分割标签必须至少有 3 个 xy 点:<类索引> <x1> <y1> <x2> <y2> <x3> <y3>

数据集 YAML 格式

Ultralytics 框架使用 YAML 文件格式定义用于训练检测模型的数据集和模型配置。以下是用于定义检测数据集的 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/coco8-seg  # dataset root dir
train:  images/train  # train images (relative to 'path') 4 images
val:  images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0:  person
  1:  bicycle
  2:  car
  # ...
  77:  teddy bear
  78:  hair drier
  79:  toothbrush 

train 和 val 字段指定分别包含训练和验证图像的目录路径。

names 是类名的字典。名称的顺序应与 YOLO 数据集文件中对象类索引的顺序相匹配。

用法

示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-seg.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  segment  train  data=coco8-seg.yaml  model=yolov8n-seg.pt  epochs=100  imgsz=640 

支持的数据集

支持的数据集

  • COCO:一个全面的对象检测、分割和字幕数据集,涵盖了各种类别的超过 200K 张标记图像。

  • COCO8-seg:COCO 的紧凑版,包含 8 张图像,用于快速测试分割模型训练,在ultralytics存储库中进行 CI 检查和工作流验证时非常理想。

  • Carparts-seg:专注于汽车部件分割的专业数据集,非常适合汽车应用。它包括多种车辆,具有详细的个别汽车组件注释。

  • Crack-seg:专为各种表面裂缝分割而设计的数据集。对于基础设施维护和质量控制至关重要,提供详细的图像用于训练模型识别结构弱点。

  • Package-seg:专注于不同类型包装材料和形状分割的数据集。它对物流和仓储自动化特别有用,有助于开发包装处理和分类系统。

添加您自己的数据集

如果您有自己的数据集,并希望将其用于使用 Ultralytics YOLO 格式训练分割模型,请确保其遵循上述“Ultralytics YOLO 格式”中指定的格式。将您的注释转换为所需格式,并在 YAML 配置文件中指定路径、类别数量和类名。

转换或转换标签格式

将 COCO 数据集格式转换为 YOLO 格式

您可以使用以下代码片段将流行的 COCO 数据集格式标签轻松转换为 YOLO 格式:

示例

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True) 

此转换工具可用于将 COCO 数据集或任何 COCO 格式的数据集转换为 Ultralytics YOLO 格式。

请务必仔细检查您想使用的数据集是否与您的模型兼容,并遵循必要的格式约定。正确格式化的数据集对于成功训练对象检测模型至关重要。

自动标注

自动标注是一个重要的功能,允许您使用预训练检测模型生成分割数据集。它使您能够快速准确地对大量图像进行注释,无需手动标注,从而节省时间和精力。

使用检测模型生成分割数据集

要使用 Ultralytics 框架自动标注您的数据集,可以如下所示使用 auto_annotate 函数:

示例

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model="sam_b.pt") 
参数 类型 描述 默认值
data str 包含要注释图像的文件夹的路径。 None
det_model str,可选 预训练的 YOLO 检测模型。默认为 'yolov8x.pt'。 'yolov8x.pt'
sam_model str,可选 预训练的 SAM 分割模型。默认为 'sam_b.pt'。 'sam_b.pt'
device str,可选 运行模型的设备。默认为空字符串(CPU 或 GPU,如果可用)。 ''
output_dir str 或 None,可选 保存注释结果的目录。默认为与 'data' 目录相同的 'labels' 文件夹。 None

auto_annotate 函数接受您的图像路径,以及用于指定预训练检测和 SAM 分割模型、运行模型的设备以及保存注释结果的输出目录的可选参数。

利用预训练模型的力量,自动标注可以显著减少创建高质量分割数据集所需的时间和精力。这一特性特别适用于处理大量图像集合的研究人员和开发人员,因为它允许他们集中精力进行模型开发和评估,而不是手动标注。

常见问题解答

Ultralytics YOLO 支持哪些数据集格式来进行实例分割?

Ultralytics YOLO 支持多种数据集格式,例如实例分割,其中主要格式是其自身的 Ultralytics YOLO 格式。数据集中的每个图像都需要一个对应的文本文件,其中包含分割成多行的对象信息(每个对象一行),列出类索引和归一化的边界框坐标。有关 YOLO 数据集格式的详细说明,请访问 Instance Segmentation Datasets Overview。

我如何将 COCO 数据集注释转换为 YOLO 格式?

使用 Ultralytics 工具将 COCO 格式的注释转换为 YOLO 格式非常简单。您可以使用ultralytics.data.converter模块中的convert_coco函数:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True) 

这个脚本将您的 COCO 数据集注释转换为所需的 YOLO 格式,适用于训练您的 YOLO 模型。有关详细信息,请参阅 Port or Convert Label Formats。

我如何为训练 Ultralytics YOLO 模型准备一个 YAML 文件?

要为使用 Ultralytics 训练 YOLO 模型做准备,您需要定义数据集路径和类名。以下是一个 YAML 配置的示例:

path:  ../datasets/coco8-seg  # dataset root dir
train:  images/train  # train images (relative to 'path') 
val:  images/val  # val images (relative to 'path') 

names:
  0:  person
  1:  bicycle
  2:  car
  # ... 

确保根据您的数据集更新路径和类名。有关更多信息,请查看 Dataset YAML Format 部分。

Ultralytics YOLO 中的自动注释功能是什么?

Ultralytics YOLO 中的自动注释允许您使用预训练的检测模型为您的数据集生成分割注释。这显著减少了手动标注的需求。您可以如下使用auto_annotate函数:

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model="sam_b.pt") 

这个函数自动化了注释过程,使其更快速、高效。有关详细信息,请探索自动注释部分。

COCO-Seg 数据集

原文:docs.ultralytics.com/datasets/segment/coco/

COCO-Seg 数据集是 COCO(上下文中的常见对象)数据集的扩展,专门设计用于帮助对象实例分割的研究。它使用与 COCO 相同的图像,但引入了更详细的分割注释。该数据集是研究人员和开发人员在实例分割任务中,特别是在训练 YOLO 模型时的重要资源。

COCO-Seg 预训练模型

| 模型 | 大小 ^((像素)) | mAP^(框 50-95) | mAP^(掩码 50-95) | 速度 ^(CPU ONNX

(毫秒)) | 速度 ^(A100 TensorRT

(毫秒)) | 参数 ^((M)) | FLOPs ^((B)) |

--- --- --- --- --- --- --- ---
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

关键特性

  • COCO-Seg 保留了 COCO 的原始 330K 张图像。

  • 数据集包含与原始 COCO 数据集相同的 80 个对象类别。

  • 注释现在包括每个图像中每个对象的更详细的实例分割掩码。

  • COCO-Seg 提供标准化的评估指标,如对象检测的平均精度(mAP)和实例分割任务的平均召回率(mAR),以便有效比较模型性能。

数据集结构

COCO-Seg 数据集分为三个子集:

  1. Train2017:该子集包含 118K 张用于训练实例分割模型的图像。

  2. Val2017:该子集包括 5K 张用于模型训练期间验证目的的图像。

  3. Test2017:该子集包含 20K 张用于测试和基准训练模型的图像。该子集的真实注释未公开,结果提交至 COCO 评估服务器 进行性能评估。

应用

COCO-Seg 广泛用于训练和评估实例分割中的深度学习模型,如 YOLO 模型。大量的注释图像、对象类别的多样性以及标准化的评估指标使其成为计算机视觉研究人员和从业者不可或缺的资源。

数据集 YAML

使用 YAML(Yet Another Markup Language)文件定义数据集配置。它包含有关数据集路径、类别和其他相关信息的信息。在 COCO-Seg 数据集的情况下,coco.yaml文件位于github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml。

ultralytics/cfg/datasets/coco.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/detect/coco/
# Example usage: yolo train data=coco.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco  ← downloads here (20.1 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/coco  # dataset root dir
train:  train2017.txt  # train images (relative to 'path') 118287 images
val:  val2017.txt  # val images (relative to 'path') 5000 images
test:  test-dev2017.txt  # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# Classes
names:
  0:  person
  1:  bicycle
  2:  car
  3:  motorcycle
  4:  airplane
  5:  bus
  6:  train
  7:  truck
  8:  boat
  9:  traffic light
  10:  fire hydrant
  11:  stop sign
  12:  parking meter
  13:  bench
  14:  bird
  15:  cat
  16:  dog
  17:  horse
  18:  sheep
  19:  cow
  20:  elephant
  21:  bear
  22:  zebra
  23:  giraffe
  24:  backpack
  25:  umbrella
  26:  handbag
  27:  tie
  28:  suitcase
  29:  frisbee
  30:  skis
  31:  snowboard
  32:  sports ball
  33:  kite
  34:  baseball bat
  35:  baseball glove
  36:  skateboard
  37:  surfboard
  38:  tennis racket
  39:  bottle
  40:  wine glass
  41:  cup
  42:  fork
  43:  knife
  44:  spoon
  45:  bowl
  46:  banana
  47:  apple
  48:  sandwich
  49:  orange
  50:  broccoli
  51:  carrot
  52:  hot dog
  53:  pizza
  54:  donut
  55:  cake
  56:  chair
  57:  couch
  58:  potted plant
  59:  bed
  60:  dining table
  61:  toilet
  62:  tv
  63:  laptop
  64:  mouse
  65:  remote
  66:  keyboard
  67:  cell phone
  68:  microwave
  69:  oven
  70:  toaster
  71:  sink
  72:  refrigerator
  73:  book
  74:  clock
  75:  vase
  76:  scissors
  77:  teddy bear
  78:  hair drier
  79:  toothbrush

# Download script/URL (optional)
download:  |
  from ultralytics.utils.downloads import download
  from pathlib import Path

  # Download labels
  segments = True  # segment or box labels
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
  urls = [url + ('coco2017labels-segments.zip' if segments else 'coco2017labels.zip')]  # labels
  download(urls, dir=dir.parent)
  # Download data
  urls = ['http://images.cocodataset.org/zips/train2017.zip',  # 19G, 118k images
  'http://images.cocodataset.org/zips/val2017.zip',  # 1G, 5k images
  'http://images.cocodataset.org/zips/test2017.zip']  # 7G, 41k images (optional)
  download(urls, dir=dir / 'images', threads=3) 

用法

要在 COCO-Seg 数据集上训练 100 个 epochs、图像大小为 640 的 YOLOv8n-seg 模型,您可以使用以下代码片段。有关可用参数的详细列表,请参考模型训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-seg.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco-seg.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  segment  train  data=coco-seg.yaml  model=yolov8n-seg.pt  epochs=100  imgsz=640 

示例图像和注释

与其前身 COCO 一样,COCO-Seg 包含各种对象类别和复杂场景的图像。然而,COCO-Seg 为图像中的每个对象引入了更详细的实例分割蒙版。以下是数据集中一些图像的示例,以及它们对应的实例分割蒙版:

数据集示例图像

  • 拼接图像:这张图片展示了由拼接数据集图像组成的训练批次。拼接是一种在训练过程中将多个图像合并成单个图像的技术,以增加每个训练批次中对象和场景的多样性。这有助于模型泛化到不同的对象大小、长宽比和上下文。

该示例展示了 COCO-Seg 数据集中图像的多样性和复杂性,以及在训练过程中使用拼接的好处。

引用和致谢

如果您在研究或开发工作中使用 COCO-Seg 数据集,请引用原始 COCO 论文,并承认其扩展到 COCO-Seg:

@misc{lin2015microsoft,
  title={Microsoft COCO: Common Objects in Context},
  author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
  year={2015},
  eprint={1405.0312},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
} 

我们感谢 COCO 联盟为计算机视觉社区创建和维护这一宝贵资源。有关 COCO 数据集及其创建者的更多信息,请访问COCO 数据集网站。

常见问题解答

COCO-Seg 数据集是什么,与原始 COCO 数据集有何不同?

COCO-Seg数据集是原始 COCO(Context 中的公共对象)数据集的扩展,专为实例分割任务设计。虽然使用与 COCO 数据集相同的图像,但 COCO-Seg 包括更详细的实例分割标注,使其成为专注于对象实例分割的研究人员和开发人员的强大资源。

如何使用 COCO-Seg 数据集训练 YOLOv8 模型?

要在 COCO-Seg 数据集上使用大小为 640 的图像,训练 100 个 epochs 的 YOLOv8n-seg 模型,您可以使用以下代码片段。有关可用参数的详细列表,请参考模型训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-seg.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco-seg.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  segment  train  data=coco-seg.yaml  model=yolov8n-seg.pt  epochs=100  imgsz=640 

COCO-Seg 数据集的关键特点是什么?

COCO-Seg 数据集包括几个关键特点:

  • 保留了 COCO 数据集的原始 330K 张图像。

  • 注释了原始 COCO 中发现的相同 80 个对象类别。

  • 为每个对象提供更详细的实例分割掩模。

  • 使用标准化的评估指标,如物体检测的平均精度(mAP)和实例分割任务的平均召回率(mAR)。

有关 COCO-Seg 的预训练模型及其性能指标是什么?

COCO-Seg 数据集支持多个预训练的 YOLOv8 分割模型,具有不同的性能指标。以下是可用模型及其关键指标的摘要:

| 模型 | 大小 ^((像素)) | mAP^(box 50-95) | mAP^(mask 50-95) | 速度 ^(CPU ONNX

(ms)) | 速度 ^(A100 TensorRT

(ms)) | 参数 ^((M)) | FLOPs ^((B)) |

--- --- --- --- --- --- --- ---
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

COCO-Seg 数据集的结构是如何的,它包含哪些子集?

COCO-Seg 数据集被划分为三个子集,用于特定的训练和评估需求:

  1. Train2017: 包含 118K 张图像,主要用于训练实例分割模型。

  2. Val2017: 包括 5K 张图像,在训练过程中用于验证。

  3. Test2017: 包括 20K 张图像,专门用于测试和基准测试已训练模型的性能。请注意,此子集的地面实况注释不公开提供,性能结果提交至COCO 评估服务器进行评估。

COCO8-Seg 数据集

原文:docs.ultralytics.com/datasets/segment/coco8-seg/

介绍

Ultralytics COCO8-Seg 是一个小型但多功能的实例分割数据集,由 COCO 2017 年度训练集的前 8 张图像组成,其中 4 张用于训练,4 张用于验证。该数据集非常适合用于测试和调试分割模型,或者尝试新的检测方法。8 张图像足够小,易于管理,同时又足够多样化,可以用来检验训练流程中的错误,并在训练更大数据集之前进行健全性检查。

此数据集适用于使用 Ultralytics HUB 和 YOLOv8。

数据集 YAML

YAML(另一种标记语言)文件用于定义数据集配置。它包含关于数据集路径、类别和其他相关信息的信息。对于 COCO8-Seg 数据集,coco8-seg.yaml 文件位于 github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco8-seg.yaml。

ultralytics/cfg/datasets/coco8-seg.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/segment/coco8-seg/
# Example usage: yolo train data=coco8-seg.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-seg  ← downloads here (1 MB)

# 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/coco8-seg  # dataset root dir
train:  images/train  # train images (relative to 'path') 4 images
val:  images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes
names:
  0:  person
  1:  bicycle
  2:  car
  3:  motorcycle
  4:  airplane
  5:  bus
  6:  train
  7:  truck
  8:  boat
  9:  traffic light
  10:  fire hydrant
  11:  stop sign
  12:  parking meter
  13:  bench
  14:  bird
  15:  cat
  16:  dog
  17:  horse
  18:  sheep
  19:  cow
  20:  elephant
  21:  bear
  22:  zebra
  23:  giraffe
  24:  backpack
  25:  umbrella
  26:  handbag
  27:  tie
  28:  suitcase
  29:  frisbee
  30:  skis
  31:  snowboard
  32:  sports ball
  33:  kite
  34:  baseball bat
  35:  baseball glove
  36:  skateboard
  37:  surfboard
  38:  tennis racket
  39:  bottle
  40:  wine glass
  41:  cup
  42:  fork
  43:  knife
  44:  spoon
  45:  bowl
  46:  banana
  47:  apple
  48:  sandwich
  49:  orange
  50:  broccoli
  51:  carrot
  52:  hot dog
  53:  pizza
  54:  donut
  55:  cake
  56:  chair
  57:  couch
  58:  potted plant
  59:  bed
  60:  dining table
  61:  toilet
  62:  tv
  63:  laptop
  64:  mouse
  65:  remote
  66:  keyboard
  67:  cell phone
  68:  microwave
  69:  oven
  70:  toaster
  71:  sink
  72:  refrigerator
  73:  book
  74:  clock
  75:  vase
  76:  scissors
  77:  teddy bear
  78:  hair drier
  79:  toothbrush

# Download script/URL (optional)
download:  https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-seg.zip 

使用方法

要在 COCO8-Seg 数据集上使用图像大小为 640 的 YOLOv8n-seg 模型进行 100 个 epochs 的训练,可以使用以下代码片段。要获取可用参数的全面列表,请参阅模型训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-seg.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  segment  train  data=coco8-seg.yaml  model=yolov8n-seg.pt  epochs=100  imgsz=640 

示例图像和标注

这里展示了 COCO8-Seg 数据集中一些图像的示例,以及它们对应的标注:

数据集示例图像

  • 马赛克图像:这幅图展示了由马赛克数据集图像组成的训练批次。马赛克是训练过程中使用的一种技术,将多个图像合并成单个图像,以增加每个训练批次中的对象和场景的多样性。这有助于提高模型对不同对象大小、长宽比和上下文的泛化能力。

此示例展示了 COCO8-Seg 数据集中图像的多样性和复杂性,以及训练过程中使用马赛克的好处。

引用和致谢

如果您在研究或开发工作中使用 COCO 数据集,请引用以下论文:

@misc{lin2015microsoft,
  title={Microsoft COCO: Common Objects in Context},
  author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
  year={2015},
  eprint={1405.0312},
  archivePrefix={arXiv},
  primaryClass={cs.CV}
} 

我们要感谢 COCO 联盟为计算机视觉社区创建和维护这一宝贵资源。有关 COCO 数据集及其创建者的更多信息,请访问 COCO 数据集网站。

常见问题解答

COCO8-Seg 数据集是什么,以及它在 Ultralytics YOLOv8 中的应用?

COCO8-Seg 数据集是 Ultralytics 提供的一个紧凑型实例分割数据集,由 COCO 2017 训练集中的前 8 张图像组成,其中 4 张用于训练,4 张用于验证。该数据集专为测试和调试分割模型或尝试新的检测方法而设计。在与 Ultralytics 的 YOLOv8 和 HUB 配合使用时特别有用,可用于快速迭代和管道错误检查,以备在扩展到更大数据集之前。有关详细用法,请参阅模型训练页面。

如何使用 COCO8-Seg 数据集训练 YOLOv8n-seg 模型?

要在 COCO8-Seg 数据集上使用图像尺寸为 640 的 YOLOv8n-seg 模型进行 100 个 epoch 的训练,您可以使用 Python 或 CLI 命令。这里有一个快速示例:

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-seg.pt")  # Load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  segment  train  data=coco8-seg.yaml  model=yolov8n-seg.pt  epochs=100  imgsz=640 

要详细了解可用参数和配置选项,请查看训练文档。

COCO8-Seg 数据集对模型开发和调试有何重要性?

COCO8-Seg 数据集因其可管理性和多样性而非常理想,尽管规模较小。它仅包含 8 张图像,为测试和调试分割模型或新检测方法提供了快速途径,而不需要处理更大数据集的额外开销。这使其成为在承诺进行大规模数据集训练前进行健全性检查和管道错误识别的高效工具。关于数据集格式的更多信息,请点击这里。

COCO8-Seg 数据集的 YAML 配置文件在哪里可以找到?

COCO8-Seg 数据集的 YAML 配置文件位于 Ultralytics 代码库中。您可以直接访问该文件这里。该 YAML 文件包含了关于数据集路径、类别和模型训练与验证所需的配置设置的基本信息。

在 COCO8-Seg 数据集训练中使用拼接技术有哪些好处?

在训练过程中使用拼接技术有助于增加每个训练批次中对象和场景的多样性和变化。这种技术将多个图像合成单个复合图像,增强了模型对不同对象大小、长宽比和场景背景的泛化能力。对于像 COCO8-Seg 这样的小数据集,拼接技术有助于提高模型的鲁棒性和准确性。有关拼接图像的示例,请参阅样本图像和注释部分。

Roboflow Universe 裂缝分割数据集

原文:docs.ultralytics.com/datasets/segment/crack-seg/

Roboflow的裂缝分割数据集是专为参与交通和公共安全研究的个人设计的广泛资源。无论是开发自动驾驶汽车模型还是仅仅探索计算机视觉应用于娱乐目的,它都同样有益。

这个数据集包含来自不同道路和墙面场景的共 4029 张静态图像,对于裂缝分割相关任务而言是一项宝贵的资产。无论您是深入研究交通研究的复杂性,还是希望提高自动驾驶汽车模型的准确性,这个数据集都提供了丰富和多样的图像集合,支持您的努力。

数据集结构

裂缝分割数据集内的数据划分如下:

  • 训练集:包括 3717 张带有对应注释的图像。

  • 测试集:包括 112 张图像及其相应的注释。

  • 验证集:包括 200 张带有对应注释的图像。

应用场景

裂缝分割在基础设施维护中有着实际应用,有助于识别和评估结构性损伤。它还通过使自动化系统能够检测和处理及时修复路面裂缝,从而在增强道路安全方面发挥着关键作用。

数据集 YAML

使用 YAML(另一种标记语言)文件来定义数据集的配置,包括路径、类别和其他相关信息。具体而言,对于裂缝分割数据集,管理和访问crack-seg.yaml文件位于github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/crack-seg.yaml。

ultralytics/cfg/datasets/crack-seg.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# Crack-seg dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/segment/crack-seg/
# Example usage: yolo train data=crack-seg.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── crack-seg  ← downloads here (91.2 MB)

# 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/crack-seg  # dataset root dir
train:  train/images  # train images (relative to 'path') 3717 images
val:  valid/images  # val images (relative to 'path') 112 images
test:  test/images  # test images (relative to 'path') 200 images

# Classes
names:
  0:  crack

# Download script/URL (optional)
download:  https://github.com/ultralytics/assets/releases/download/v0.0.0/crack-seg.zip 

用途

要在裂缝分割数据集上使用 Ultralytics YOLOv8n 模型进行 100 个 epochs 的训练,并使用 640 的图像尺寸,您可以使用以下代码片段。有关可用参数的详细列表,请参考模型训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-seg.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="crack-seg.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  segment  train  data=crack-seg.yaml  model=yolov8n-seg.pt  epochs=100  imgsz=640 

示例数据和注释

裂缝分割数据集包含多个角度捕获的图像和视频的多样化集合。以下是数据集中的数据示例及其相应的注释:

数据集示例图像

  • 此图展示了图像对象分割的示例,显示了用于识别对象的标注边界框和掩模。该数据集包括了在不同位置、环境和密度下拍摄的多种图像,使其成为开发专用模型的综合资源。

  • 该示例突显了裂缝分割数据集中所包含的多样性和复杂性,强调了高质量数据在计算机视觉任务中的关键作用。

引用和致谢

如果您将裂缝分割数据集纳入您的研究或开发工作中,请引用以下论文:

@misc{  crack-bphdr_dataset,
  title  =  { crack Dataset },
  type  =  { Open Source Dataset },
  author  =  { University },
  howpublished  =  { \url{ https://universe.roboflow.com/university-bswxt/crack-bphdr } },
  url  =  { https://universe.roboflow.com/university-bswxt/crack-bphdr },
  journal  =  { Roboflow Universe },
  publisher  =  { Roboflow },
  year  =  { 2022 },
  month  =  { dec },
  note  =  { visited on 2024-01-23 },
} 

我们要感谢 Roboflow 团队创建和维护裂缝分割数据集,作为道路安全和研究项目的宝贵资源。有关裂缝分割数据集及其创建者的更多信息,请访问裂缝分割数据集页面。

常见问题

什么是 Roboflow 裂缝分割数据集?

Roboflow 裂缝分割数据集是一个专门设计用于交通和公共安全研究的综合性集合,包含了 4029 张静态图像。它非常适合于自动驾驶汽车模型开发和基础设施维护等任务。该数据集包括训练、测试和验证集,有助于准确的裂缝检测和分割。

如何使用 Ultralytics YOLOv8 训练裂缝分割数据集的模型?

要在裂缝分割数据集上训练 Ultralytics YOLOv8 模型,请使用以下代码片段。详细的说明和更多参数可以在模型训练页面找到。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-seg.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="crack-seg.yaml", epochs=100, imgsz=640) 
# Start training from a pretrained *.pt model
yolo  segment  train  data=crack-seg.yaml  model=yolov8n-seg.pt  epochs=100  imgsz=640 

我为什么要在我的自动驾驶汽车项目中使用裂缝分割数据集?

裂缝分割数据集由 4029 张道路和墙壁图像组成,非常适用于自动驾驶汽车项目,提供了多种场景。这种多样性增强了用于裂缝检测的模型的准确性和鲁棒性,对于维护道路安全和确保及时基础设施修复至关重要。

Ultralytics YOLO 为裂缝分割提供了哪些独特功能?

Ultralytics YOLO 提供了哪些先进的实时目标检测、分割和分类功能,使其在裂缝分割任务中非常理想?其处理大型数据集和复杂场景的能力确保了高准确性和效率。例如,模型的训练、预测和导出模式覆盖了从训练到部署的全面功能。

如何在我的研究论文中引用 Roboflow 裂缝分割数据集?

如果您在研究中使用了裂缝分割数据集,请使用以下 BibTeX 引用:

@misc{  crack-bphdr_dataset,
  title  =  { crack Dataset },
  type  =  { Open Source Dataset },
  author  =  { University },
  howpublished  =  { \url{ https://universe.roboflow.com/university-bswxt/crack-bphdr } },
  url  =  { https://universe.roboflow.com/university-bswxt/crack-bphdr },
  journal  =  { Roboflow Universe },
  publisher  =  { Roboflow },
  year  =  { 2022 },
  month  =  { dec },
  note  =  { visited on 2024-01-23 },
} 

此引用格式确保了对数据集创建者的适当认可,并确认了其在您的研究中的使用。

posted @ 2024-08-08 13:58  绝不原创的飞龙  阅读(282)  评论(0)    收藏  举报