跳至内容

Argoverse 数据集

Argoverse数据集旨在支持自动驾驶任务研究,如三维跟踪、运动预测和立体深度估计。该数据集由 Argo AI 开发,提供各种高质量传感器数据,包括高分辨率图像、激光雷达点云和地图数据。

备注

Argoverse 数据集 *.zip 在福特关闭 Argo AI 后,训练所需的文件已从亚马逊 S3 上删除,但我们已将其提供给用户在以下网站上手动下载 Google 驾驶.

主要功能

  • Argoverse 包含 1,263 个不同场景中超过 290K 个标记的 3D 物体轨迹和 500 万个物体实例。
  • 数据集包括高分辨率相机图像、激光雷达点云和注释丰富的高清地图。
  • 注释包括物体的三维边界框、物体轨迹和轨迹信息。
  • Argoverse 为不同任务提供了多个子集,如 3D 跟踪、运动预测和立体深度估计。

数据集结构

Argoverse 数据集主要分为三个子集:

  1. Argoverse 3D 跟踪:该子集包含 113 个场景,超过 29 万条标注的三维物体轨迹,主要用于三维物体跟踪任务。其中包括激光雷达点云、相机图像和传感器校准信息。
  2. Argoverse 运动预测:该子集包括从 60 小时驾驶数据中收集的 324K 个车辆轨迹,适用于运动预测任务。
  3. Argoverse 立体深度估计:该子集专为立体深度估算任务而设计,包含 10K 多张立体图像对和相应的激光雷达点云,用于地面实况深度估算。

应用

The Argoverse dataset is widely used for training and evaluating deep learning models in autonomous driving tasks such as 3D object tracking, motion forecasting, and stereo depth estimation. The dataset's diverse set of sensor data, object annotations, and map information make it a valuable resource for researchers and practitioners in the field of autonomous driving.

数据集 YAML

YAML(另一种标记语言)文件用于定义数据集配置。它包含数据集的路径、类和其他相关信息。就 Argoverse 数据集而言,YAML 文件中的 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

使用方法

To train a YOLO11n model on the Argoverse dataset for 100 epochs with an image size of 640, you can use the following code snippets. For a comprehensive list of available arguments, refer to the model Training page.

列车示例

from ultralytics import YOLO

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

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

样本数据和注释

Argoverse 数据集包含各种传感器数据,包括摄像头图像、激光雷达点云和高清地图信息,为自动驾驶任务提供了丰富的背景信息。以下是数据集中的一些数据示例及其相应的注释:

数据集样本图像

  • Argoverse 3D 跟踪:这张图片展示了三维物体追踪的一个示例,其中的物体都标注了三维边界框。该数据集提供了激光雷达点云和相机图像,便于为这项任务开发模型。

该示例展示了 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 数据集及其主要特点是什么?

Argo AI 开发的Argoverse数据集支持自动驾驶研究。该数据集包含 1,263 个不同场景中超过 29 万条标注的三维物体轨迹和 500 万个物体实例。该数据集提供了高分辨率的摄像头图像、激光雷达点云和带注释的高清地图,因此对三维跟踪、运动预测和立体深度估计等任务非常有价值。

如何使用 Argoverse 数据集训练Ultralytics YOLO 模型?

To train a YOLO11 model with the Argoverse dataset, use the provided YAML configuration file and the following code:

列车示例

from ultralytics import YOLO

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

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

有关参数的详细解释,请参阅模型培训页面。

Argoverse 数据集中有哪些类型的数据和注释?

Argoverse 数据集包括各种传感器数据类型,如高分辨率相机图像、激光雷达点云和高清地图数据。注释包括三维边界框、物体轨迹和轨迹信息。这些全面的注释对于在三维物体跟踪、运动预测和立体深度估计等任务中进行精确的模型训练至关重要。

Argoverse 数据集的结构是怎样的?

数据集主要分为三个子集:

  1. Argoverse 3D 跟踪:包含 113 个场景,超过 29 万条标注的三维物体轨迹,重点关注三维物体跟踪任务。其中包括激光雷达点云、相机图像和传感器校准信息。
  2. Argoverse 运动预测:包括从 60 小时驾驶数据中收集的 324K 个车辆轨迹,适用于运动预测任务。
  3. Argoverse 立体深度估算:包括 10K 多张立体图像对和相应的激光雷达点云,用于地面实况深度估算。

Argoverse 数据集已从 Amazon S3 中删除,请问从哪里下载?

Argoverse 数据集 *.zip 文件,现在可以从以下地址手动下载 Google 驾驶.

Argoverse 数据集的 YAML 配置文件是用来做什么的?

YAML 文件包含数据集的路径、类和其他重要信息。对于 Argoverse 数据集,配置文件、 Argoverse.yaml您可以通过以下链接找到该网站: Argoverse.yaml.

有关 YAML 配置的更多信息,请参阅我们的数据集指南。

📅 Created 11 months ago ✏️ Updated 23 days ago

评论