数据集概览#
Ultralytics 支持多种数据集,以便开展目标检测、实例分割、语义分割、深度估计、分类、姿态估计和有向边界框(OBB)等计算机视觉任务。下面列出了主要的 Ultralytics 数据集,随后是每项计算机视觉任务及其对应数据集的摘要。跟踪模式在目标检测、分割、姿态和 OBB 模型之上运行,无需针对跟踪器进行专门训练;请参阅跟踪数据集。
Watch: Ultralytics Datasets Overview
对象检测#
边界框目标检测是一种计算机视觉技术,通过在每个对象周围绘制边界框来检测并定位图像中的对象。
- African-wildlife:包含非洲野生动物图像的数据集,包括水牛、大象、犀牛和斑马。
- Argoverse:包含城市环境中 3D 跟踪和运动预测数据的数据集,具有丰富的标注。
- Brain-tumor:用于检测脑肿瘤的数据集,包含 MRI 或 CT 扫描图像,以及肿瘤是否存在、位置和特征等详细信息。
- COCO:上下文中的常见物体(COCO)是一个大规模目标检测、分割和图像描述数据集,包含 80 个对象类别。
- COCO8:来自 COCO train2017 的前 8 张图像的较小子集,其中 4 张用于训练,4 张用于验证,适用于快速测试。
- COCO8-Grayscale:将 RGB 转换为灰度后创建的 COCO8 灰度版本,适用于单通道模型评估。
- COCO8-Multispectral:通过插值 RGB 波长创建的 COCO8 10 通道多光谱版本,适用于光谱感知模型评估。
- COCO12-Formats:一个涵盖 12 种受支持图像格式(AVIF、BMP、DNG、HEIC、JP2、JPEG、JPG、MPO、PNG、TIF、TIFF、WebP)的 12 张图像测试数据集,用于验证图像加载管线。
- COCO128:从 COCO train2017 的前 128 张图像中提取的较小子集,适合测试。
- Construction-PPE:包含建筑工地图像的数据集,标注了头盔、背心、手套、靴子和护目镜等关键安全装备,以及缺失设备的标签,支持开发用于合规检查和工人保护的 AI 模型。
- Global Wheat 2020:包含 2020 全球小麦挑战赛所用麦穗图像的数据集。
- HomeObjects-3K:包含标注室内场景的数据集,涉及 12 种常见家居物品,非常适合开发和测试智能家居系统、机器人和增强现实中的计算机视觉模型。
- KITTI:一个知名的自动驾驶数据集,包含立体视觉、LiDAR 和 GPS/IMU 输入,用于在各种道路场景中进行 2D 目标检测。
- LVIS:一个大规模目标检测、分割和图像描述数据集,包含 1203 个对象类别。
- Medical-pills:包含药品药片标注图像的数据集,旨在帮助开展药品质量控制、分拣和确保符合行业标准等任务。
- Objects365:用于目标检测的高质量大规模数据集,包含 365 个对象类别和超过 600K 张标注图像。
- OpenImagesV7:由 Google 提供的综合数据集,包含 1.7M 张训练图像和 42k 张验证图像。
- RF100:多样化的目标检测基准,涵盖七个图像领域中的 100 个数据集,用于全面评估模型。
- Signature:包含各种文档及其标注签名图像的数据集,支持文档验证和欺诈检测研究。
- SKU-110K:包含零售环境中密集目标检测数据的数据集,拥有超过 11K 张图像和 170 万个边界框。
- TT100K:清华-腾讯 100K 交通标志数据集,包含涵盖 221 个标志类别的 16,817 张街景图像。
- VisDrone:包含无人机拍摄图像中的目标检测和多目标跟踪数据的数据集,拥有超过 10K 张图像和视频序列。
- VOC:用于目标检测和分割的 Pascal 视觉对象类别(VOC)数据集,包含 20 个对象类别和超过 11K 张图像。
- xView:用于俯视图像目标检测的数据集,包含 60 个对象类别和超过 100 万个标注对象。
实例分割#
实例分割是一种计算机视觉技术,涉及在像素级别识别和定位图像中的对象。不同于仅对每个像素进行分类的语义分割,实例分割可以区分同一类别中的不同实例。
- Carparts-seg:专门用于识别车辆部件的数据集,满足设计、制造和研究需求,同时适用于目标检测和分割任务。
- COCO:用于目标检测、分割和图像描述任务的大规模数据集,包含超过 200K 张标注图像。
- COCO8-seg:用于实例分割任务的较小数据集,包含 COCO 中 8 张图像的子集及其分割标注。
- COCO128-seg:用于实例分割任务的较小数据集,包含 COCO 中 128 张图像的子集及其分割标注。
- Crack-seg:专门用于检测道路和墙壁裂缝的数据集,同时适用于目标检测和分割任务。
- Package-seg:专门用于识别仓库或工业环境中包裹的数据集,适用于目标检测和分割应用。
语义分割#
语义分割为图像中的每个像素分配类别标签,为自动驾驶、场景解析和土地覆盖制图等应用生成密集场景图。
- Cityscapes:城市街景语义分割数据集,包含 19 个训练类别。
- Cityscapes8:Cityscapes 的紧凑型 8 张图像子集,用于快速检查语义分割流程。
- ADE20K:场景解析数据集,包含 150 个语义类别。
深度估计#
单目深度估计根据单张 RGB 图像预测以米为单位的逐像素深度图,支持 3D 场景重建、机器人导航以及 AR/VR 应用。
- Depth8:SUN RGB-D 的紧凑型 8 张图像子集,用于快速检查流程。
- ARKitScenes:使用 Apple ARKit LiDAR 捕获的真实室内 RGB-D,这是最大的真实训练源。
- SUN RGB-D:使用四种不同的 RGB-D 传感器捕获的真实室内场景。
- DIODE:来自测量级激光扫描仪的稠密室内和室外深度。
- Hypersim:具有完美逐像素深度的照片级真实感合成室内场景。
- TartanAir:具有高达约 80 米稠密深度的合成 AirSim 环境。
- Virtual KITTI 2:具有稠密深度的 KITTI 驾驶场景的合成再现。
- KITTI:带有 Velodyne LiDAR 深度的现实世界室外自动驾驶场景,也是 KITTI Eigen 基准测试。
- ImageNet (pseudo-labeled):带有用于蒸馏的 Depth Anything 3 伪标签的 ImageNet-1K 图像。
- NYU Depth V2:使用 Microsoft Kinect v1 采集的标准室内深度基准数据集。
- ETH3D:高精度室内和室外激光扫描仪基准测试。
- Make3D:分布外室外校园基准测试。
- iBims-1:用于深度边缘和平面表面的高质量室内基准测试。
分类#
图像分类是一项计算机视觉任务,根据图像的视觉内容将其归入一个或多个预定义的类别。
- Caltech 101:包含 101 个对象类别图像的数据集,用于图像分类任务。
- Caltech 256:Caltech 101 的扩展版本,包含 256 个对象类别和更具挑战性的图像。
- CIFAR-10:包含 60K 张 32x32 彩色图像的数据集,分为 10 个类别,每个类别有 6K 张图像。
- CIFAR-100:CIFAR-10 的扩展版本,包含 100 个对象类别,每个类别有 600 张图像。
- Fashion-MNIST:包含 70,000 张 10 类时尚物品灰度图像的数据集,用于图像分类任务。
- ImageNet:用于目标检测和图像分类的大规模数据集,包含超过 1400 万张图像和 20,000 个类别。
- ImageNet-10:ImageNet 的较小子集,包含 10 个类别,可加快实验和测试速度。
- Imagenette:ImageNet 的较小子集,包含 10 个容易区分的类别,可加快训练和测试。
- Imagewoof:ImageNet 中更具挑战性的子集,包含 10 个犬种类别,用于图像分类任务。
- MNIST:包含 70,000 张手写数字灰度图像的数据集,用于图像分类任务。
- MNIST160:从 MNIST 训练集和测试集的每个数字(0-9)中各取前 8 张图像,共包含 160 张图像。
姿态估计#
姿态估计是一种用于确定对象相对于相机或世界坐标系姿态的技术,涉及识别对象上的关键点或关节,尤其是人或动物的关键点或关节。
- COCO:包含人体姿态标注的大规模数据集,专为姿态估计任务设计。
- COCO8-pose:用于姿态估计任务的较小数据集,包含 COCO 中 8 张图像的子集及人体姿态标注。
- Dog-pose:包含约 8,500 张以狗为主题的图像,每只狗标注 24 个关键点,专为姿态估计任务设计。
- Hand-Keypoints:包含超过 26,000 张以人手为主题的图像,每只手标注 21 个关键点,专为姿态估计任务设计。
- Tiger-pose:包含 263 张以老虎为主题的图像,每只老虎标注 12 个关键点,用于姿态估计任务。
有向边界框(OBB)#
有向边界框(OBB)是计算机视觉中的一种方法,使用旋转边界框检测图像中的倾斜对象,常用于航空和卫星图像。与传统边界框不同,OBB 能更好地贴合不同方向的对象。
- DOTA-v2:热门的 OBB 航空图像数据集,包含 170 万个实例和 11,268 张图像。
- DOTA8:从 DOTAv1 划分集的前 8 张图像中提取的较小子集,其中 4 张用于训练、4 张用于验证,适合快速测试。
- DOTA128:DOTA 数据集的 128 张图像子集,其中图像用于训练和验证,在大小与多样性之间取得了良好平衡,适合测试 OBB 模型。
贡献新数据集#
贡献新数据集需要完成多个步骤,以确保其与现有基础设施良好匹配。以下是必要步骤:
Watch: How to Contribute to Ultralytics Datasets
贡献新数据集的步骤#
-
收集图像:收集属于该数据集的图像。这些图像可以来自各种来源,例如公共数据库或你自己的图像集。
-
标注图像:根据任务需求,为这些图像标注边界框、分割区域或关键点。
-
导出标注:将这些标注转换为 Ultralytics 支持的 YOLO
*.txt文件格式。 -
组织数据集:按照正确的文件夹结构整理数据集。顶层目录应包含
images/和labels/,并且每个目录中都应包含train/和val/子目录。dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/ -
创建
data.yaml文件:在数据集的根目录中创建一个data.yaml文件,用于描述数据集、类别及其他必要信息。 -
优化图像(可选):如果你希望减小数据集大小以提高处理效率,可以使用下面的代码优化图像。这不是必需步骤,但对于减小数据集大小和提高下载速度很有帮助。
-
压缩数据集:将整个数据集文件夹压缩为 zip 文件。
-
编写文档并创建 PR:创建文档页面,描述你的数据集及其如何融入现有框架。然后提交拉取请求(PR)。有关如何提交 PR 的更多详细信息,请参阅 Ultralytics 贡献指南。
优化和压缩数据集的示例代码#
from pathlib import Path
from ultralytics.data.utils import compress_one_image
from ultralytics.utils.downloads import zip_directory
# Define dataset directory
path = Path("path/to/dataset")
# Optimize images in dataset (optional)
for f in path.rglob("*.jpg"):
compress_one_image(f)
# Zip dataset into 'path/to/dataset.zip'
zip_directory(path)按照这些步骤操作,你就可以贡献一个与 Ultralytics 现有结构良好集成的新数据集。
常见问题#
贡献新数据集需要完成多个步骤:
- 收集图像:从公共数据库或个人图像集中收集图像。
- 标注图像:根据任务需求,添加边界框、分割区域或关键点。
- 导出标注:将标注转换为 YOLO
*.txt格式。 - 组织数据集:使用包含
train/和val/目录的文件夹结构,每个目录中都包含images/和labels/子目录。 - 创建
data.yaml文件:包含数据集描述、类别及其他相关信息。 - 优化图像(可选):减小数据集大小,提高效率。
- 压缩数据集:将数据集压缩为 zip 文件。
- 编写文档并创建 PR:描述你的数据集,并按照 Ultralytics 贡献指南提交拉取请求。
请访问贡献新数据集获取完整指南。
Ultralytics Platform 提供强大的数据集管理和分析功能,包括:
- 无缝数据集管理:在一个地方上传、组织和管理你的数据集。
- 即时训练集成:无需额外设置,直接使用已上传的数据集训练模型。
- 可视化工具:探索并可视化你的数据集图像和标注。
- 数据集分析:深入了解你的数据集分布和特征。
该平台简化了从数据集管理到模型训练的过渡,使整个流程更加高效。详细了解 Ultralytics Platform Datasets。
Ultralytics YOLO 模型为计算机视觉任务提供了多项独特功能:
- 实时性能:具备高速推理和训练能力,适用于对时效性要求较高的应用。
- 多功能性:在统一框架中支持检测、实例分割、语义分割、深度估计、分类和姿态估计任务。
- 预训练模型:可获取适用于各种应用的高性能预训练模型,从而缩短训练时间。
- 广泛的社区支持:活跃的社区和全面的文档,为问题排查和开发提供支持。
- 易于集成:提供用于与现有项目和工作流集成的简洁 API。
在 Ultralytics Models 页面进一步了解 YOLO 模型。
要使用 Ultralytics 工具优化并压缩数据集,请参考以下示例代码:
优化和压缩数据集from pathlib import Path from ultralytics.data.utils import compress_one_image from ultralytics.utils.downloads import zip_directory # Define dataset directory path = Path("path/to/dataset") # Optimize images in dataset (optional) for f in path.rglob("*.jpg"): compress_one_image(f) # Zip dataset into 'path/to/dataset.zip' zip_directory(path)此流程有助于减小数据集大小,从而提高存储效率并加快下载速度。详细了解如何优化并压缩数据集。