Ultralytics 中文文档(七)
VOC 数据集
PASCAL VOC(视觉对象类别)数据集是一个著名的物体检测、分割和分类数据集。它旨在促进对各种物体类别的研究,并常用于评估计算机视觉模型。对于从事物体检测、分割和分类任务的研究人员和开发者来说,这是一个必备的数据集。
主要特点
-
VOC 数据集包括两个主要挑战:VOC2007 和 VOC2012。
-
该数据集包含 20 种物体类别,包括常见的如汽车、自行车和动物,以及更具体的类别如船只、沙发和餐桌。
-
注释包括物体检测和分类任务的对象边界框和类标签,以及分割任务的分割蒙版。
-
VOC 提供标准化的评估指标,如平均精度(mAP),用于物体检测和分类,使其适合比较模型性能。
数据集结构
VOC 数据集分为三个子集:
-
训练集:该子集包含用于训练物体检测、分割和分类模型的图像。
-
验证集:该子集包含用于模型训练期间验证目的的图像。
-
测试集:该子集包含用于测试和基准测试已训练模型的图像。此子集的地面真实注释不公开,其结果提交至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 数据集
xView数据集是最大的公共可用高空图像数据集之一,包含来自世界各地复杂场景的图像,并使用边界框进行注释。xView 数据集的目标是加速四个计算机视觉前沿领域的进展:
-
降低检测的最小分辨率。
-
提高学习效率。
-
使发现更多物体类别成为可能。
-
改善对细粒度类别的检测。
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 数据集
Roboflow 100 由Roboflow开发,由英特尔赞助,是一个突破性的物体检测基准。它包括从超过 90,000 个公共数据集中抽样的 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 数据集涵盖了七个领域,每个领域都为目标检测模型提供了独特的挑战和应用:
-
Aerial: 7 个数据集,9,683 张图像,24 个类别
-
Video Games: 7 个数据集,11,579 张图像,88 个类别
-
Microscopic: 11 个数据集,13,378 张图像,28 个类别
-
Underwater: 5 个数据集,18,003 张图像,39 个类别
-
Documents: 8 个数据集,24,813 张图像,90 个类别
-
Electromagnetic: 12 个数据集,36,381 张图像,41 个类别
-
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},
}
欲了解更多详情,请参阅我们的全面数据集收藏。
脑瘤数据集
脑瘤检测数据集包含来自 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找到。该文件包含了用于在该数据集上训练和评估模型所需的路径、类别和其他相关信息。
非洲野生动物数据集
该数据集展示了南非自然保护区中四类常见动物,包括水牛、大象、犀牛和斑马的图像,深入了解它们的特征。对于训练计算机视觉算法至关重要,该数据集有助于在各种栖息地中识别动物,从动物园到森林,支持野生动物研究。
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 部分。
我可以看到非洲野生动物数据集的示例图像和注释吗?
是的,非洲野生动物数据集包括展示不同动物物种在其自然栖息地中的广泛图像。您可以在示例图像和其相应注释部分查看样本图像。本部分还展示了使用镶嵌技术将多个图像组合成一个以增强批量多样性,提升模型的泛化能力。
如何利用非洲野生动物数据集支持野生动物保护和研究?
非洲野生动物数据集通过训练和评估模型来识别不同栖息地中的非洲野生动物,是支持野生动物保护和研究的理想工具。这些模型可以帮助监测动物种群、研究它们的行为并识别保护需求。此外,该数据集还可用于教育目的,帮助学生和研究人员了解不同动物物种的特征和行为。更多详情请参见应用部分。
签名检测数据集
该数据集专注于检测文档中的手写签名。它包含各种带注释的文档类型,为文档验证和欺诈检测应用提供了宝贵的见解。作为训练计算机视觉算法的基础数据集,该数据集帮助识别各种文档格式中的签名,支持文档分析的研究和实际应用。
数据集结构
签名检测数据集分为三个子集:
-
训练集:包含 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 模型,请按以下步骤操作:
-
从signature.yaml下载
signature.yaml
数据集配置文件。 -
使用下面的 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
欲了解更多详细信息,请参阅训练页面。
签名检测数据集的主要应用是什么?
签名检测数据集可用于:
-
文档验证:自动验证文档中人类签名的存在和真实性。
-
欺诈检测:识别法律和金融文件中的伪造或欺诈签名。
-
档案研究:协助历史学家和档案管理员对历史文档进行数字分析和编目。
-
教育:支持计算机视觉和机器学习领域的学术研究和教学。
如何使用在签名检测数据集上训练的模型执行推断?
要使用在签名检测数据集上训练的模型执行推断,请按以下步骤操作:
-
加载您的精调模型。
-
使用下面的 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
文件中查看完整的数据集配置。
实例分割数据集概述
支持的数据集格式
Ultralytics YOLO 格式
用于训练 YOLO 分割模型的数据集标签格式如下:
-
每个图像一个文本文件:数据集中每个图像都有一个相应的文本文件,文件名与图像文件相同,扩展名为".txt"。
-
每个对象一行:文本文件中的每一行对应图像中的一个对象实例。
-
每行的对象信息:每行包含对象实例的以下信息:
-
对象类索引:表示对象类的整数(例如,人为 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 数据集
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 数据集分为三个子集:
-
Train2017:该子集包含 118K 张用于训练实例分割模型的图像。
-
Val2017:该子集包括 5K 张用于模型训练期间验证目的的图像。
-
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 数据集被划分为三个子集,用于特定的训练和评估需求:
-
Train2017: 包含 118K 张图像,主要用于训练实例分割模型。
-
Val2017: 包括 5K 张图像,在训练过程中用于验证。
-
Test2017: 包括 20K 张图像,专门用于测试和基准测试已训练模型的性能。请注意,此子集的地面实况注释不公开提供,性能结果提交至COCO 评估服务器进行评估。
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 裂缝分割数据集
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 },
}
此引用格式确保了对数据集创建者的适当认可,并确认了其在您的研究中的使用。