Argoverse数据集
Argoverse数据集是一个专为支持自动驾驶任务(如3D跟踪、运动预测和立体深度估计)而设计的数据集合。由Argo AI开发,该数据集提供了包括高分辨率图像、LiDAR点云和地图数据在内的大量高质量传感器数据。
Note
由于福特关闭了Argo AI,用于训练的Argoverse数据集*.zip
文件已从Amazon S3移除,但我们已将其提供在Google Drive供手动下载。
主要特点
- Argoverse包含超过29万个标记的3D对象轨迹和500万个对象实例,分布在1,263个不同的场景中。
- 数据集包括高分辨率相机图像、LiDAR点云和丰富注释的HD地图。
- 注释包括对象的3D边界框、对象轨迹和轨迹信息。
- Argoverse为不同任务提供了多个子集,如3D跟踪、运动预测和立体深度估计。
数据集结构
Argoverse数据集分为三个主要子集:
- Argoverse 3D跟踪:该子集包含113个场景,超过29万个标记的3D对象轨迹,专注于3D对象跟踪任务。它包括LiDAR点云、相机图像和传感器校准信息。
- Argoverse运动预测:该子集包含从60小时驾驶数据中收集的32.4万个车辆轨迹,适用于运动预测任务。
- Argoverse立体深度估计:该子集专为立体深度估计任务设计,包含超过1万个立体图像对及其对应的LiDAR点云,用于地面真实深度估计。
应用
Argoverse数据集广泛用于训练和评估自动驾驶任务中的深度学习模型,如3D对象跟踪、运动预测和立体深度估计。数据集的多样化传感器数据、对象注释和地图信息使其成为自动驾驶领域研究人员和从业者的宝贵资源。
数据集YAML
YAML(Yet Another Markup Language)文件用于定义数据集配置。它包含数据集路径、类别和其他相关信息。对于Argoverse数据集,Argoverse.yaml
文件保存在https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Argoverse.yaml。
ultralytics/cfg/datasets/Argoverse.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 license
# Argoverse-HD dataset (ring-front-center camera) https://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI
# Documentation: https://docs.ultralytics.com/datasets/detect/argoverse/
# Example usage: yolo train data=Argoverse.yaml
# parent
# ├── ultralytics
# └── datasets
# └── Argoverse ← downloads here (31.5 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/Argoverse # dataset root dir
train: Argoverse-1.1/images/train/ # train images (relative to 'path') 39384 images
val: Argoverse-1.1/images/val/ # val images (relative to 'path') 15062 images
test: Argoverse-1.1/images/test/ # test images (optional) https://eval.ai/web/challenges/challenge-page/800/overview
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: bus
5: truck
6: traffic_light
7: stop_sign
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
import json
from tqdm import tqdm
from ultralytics.utils.downloads import download
from pathlib import Path
def argoverse2yolo(set):
labels = {}
a = json.load(open(set, "rb"))
for annot in tqdm(a['annotations'], desc=f"Converting {set} to YOLOv5 format..."):
img_id = annot['image_id']
img_name = a['images'][img_id]['name']
img_label_name = f'{img_name[:-3]}txt'
cls = annot['category_id'] # instance class id
x_center, y_center, width, height = annot['bbox']
x_center = (x_center + width / 2) / 1920.0 # offset and scale
y_center = (y_center + height / 2) / 1200.0 # offset and scale
width /= 1920.0 # scale
height /= 1200.0 # scale
img_dir = set.parents[2] / 'Argoverse-1.1' / 'labels' / a['seq_dirs'][a['images'][annot['image_id']]['sid']]
if not img_dir.exists():
img_dir.mkdir(parents=True, exist_ok=True)
k = str(img_dir / img_label_name)
if k not in labels:
labels[k] = []
labels[k].append(f"{cls} {x_center} {y_center} {width} {height}\n")
for k in labels:
with open(k, "w") as f:
f.writelines(labels[k])
# Download 'https://argoverse-hd.s3.us-east-2.amazonaws.com/Argoverse-HD-Full.zip' (deprecated S3 link)
dir = Path(yaml['path']) # dataset root dir
urls = ['https://drive.google.com/file/d/1st9qW3BeIwQsnR0t8mRpvbsSWIo16ACi/view?usp=drive_link']
print("\n\nWARNING: Argoverse dataset MUST be downloaded manually, autodownload will NOT work.")
print(f"WARNING: Manually download Argoverse dataset '{urls[0]}' to '{dir}' and re-run your command.\n\n")
# download(urls, dir=dir)
# Convert
annotations_dir = 'Argoverse-HD/annotations/'
(dir / 'Argoverse-1.1' / 'tracking').rename(dir / 'Argoverse-1.1' / 'images') # rename 'tracking' to 'images'
for d in "train.json", "val.json":
argoverse2yolo(dir / annotations_dir / d) # convert Argoverse annotations to YOLO labels
使用方法
要在Argoverse数据集上训练一个YOLO11n模型,图像大小为640,训练100个epoch,可以使用以下代码片段。有关可用参数的完整列表,请参阅模型训练页面。
训练示例
样本数据和注释
Argoverse数据集包含多样化的传感器数据,包括相机图像、LiDAR点云和HD地图信息,为自动驾驶任务提供了丰富的上下文。以下是数据集中的一些数据示例及其对应的注释:
- Argoverse 3D跟踪:此图像展示了一个3D对象跟踪的示例,其中对象用3D边界框进行注释。数据集提供了LiDAR点云和相机图像,以促进该任务模型的开发。
该示例展示了Argoverse数据集中数据的多样性和复杂性,并强调了高质量传感器数据对自动驾驶任务的重要性。
引用和致谢
如果你在研究或开发工作中使用了Argoverse数据集,请引用以下论文:
@inproceedings{chang2019argoverse,
title={Argoverse: 3D Tracking and Forecasting with Rich Maps},
author={Chang, Ming-Fang and Lambert, John and Sangkloy, Patsorn and Singh, Jagjeet and Bak, Slawomir and Hartnett, Andrew and Wang, Dequan and Carr, Peter and Lucey, Simon and Ramanan, Deva and others},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={8748--8757},
year={2019}
}
我们想感谢Argo AI创建和维护Argoverse数据集,作为自动驾驶研究社区的宝贵资源。有关Argoverse数据集及其创建者的更多信息,请访问Argoverse数据集网站。
常见问题
什么是Argoverse数据集及其主要特点?
Argoverse数据集由Argo AI开发,支持自动驾驶研究。它包含超过29万个标注的3D对象轨迹和500万个对象实例,分布在1,263个不同的场景中。该数据集提供高分辨率摄像头图像、LiDAR点云和标注的高清地图,使其在3D跟踪、运动预测和立体深度估计等任务中具有重要价值。
如何使用Argoverse数据集训练Ultralytics YOLO模型?
要使用Argoverse数据集训练YOLO11模型,请使用提供的YAML配置文件和以下代码:
训练示例
有关参数的详细解释,请参阅模型训练页面。
Argoverse数据集中有哪些类型的数据和标注?
Argoverse数据集包含多种传感器数据类型,如高分辨率摄像头图像、LiDAR点云和高清地图数据。标注包括3D边界框、对象轨迹和轨迹信息。这些全面的标注对于3D对象跟踪、运动预测和立体深度估计等任务中的准确模型训练至关重要。
Argoverse数据集的结构是怎样的?
该数据集分为三个主要子集:
- Argoverse 3D跟踪:包含113个场景,超过29万个标注的3D对象轨迹,专注于3D对象跟踪任务。它包括LiDAR点云、摄像头图像和传感器校准信息。
- Argoverse运动预测:包含从60小时驾驶数据中收集的32.4万个车辆轨迹,适用于运动预测任务。
- Argoverse立体深度估计:包含超过1万个立体图像对及其对应的LiDAR点云,用于地面真实深度估计。
现在Argoverse数据集已从Amazon S3移除,我该如何下载?
之前在Amazon S3上可用的Argoverse数据集*.zip
文件,现在可以从Google Drive手动下载。
使用Argoverse数据集时,YAML配置文件的作用是什么?
YAML文件包含数据集的路径、类别和其他重要信息。对于Argoverse数据集,配置文件Argoverse.yaml
可以在以下链接找到:Argoverse.yaml。
有关YAML配置的更多信息,请参阅我们的数据集指南。