Набор данных Argoverse

Набор данных Argoverse — это коллекция данных, предназначенная для поддержки исследований в задачах автономного вождения, таких как 3D-трекинг, прогнозирование движения и оценка стереоглубины. Разработанный Argo AI, набор данных предоставляет широкий спектр высококачественных сенсорных данных, включая изображения высокого разрешения, облака точек LiDAR и картографические данные.

Примечание

Файл *.zip набора данных Argoverse, необходимый для обучения, был удален из Amazon S3 после закрытия Argo AI компанией Ford, но мы сделали его доступным для скачивания вручную на Google Drive.

Основные характеристики

  • Argoverse содержит более 290 тыс. размеченных 3D-треков объектов и 5 миллионов экземпляров объектов в 1 263 различных сценах.
  • Набор данных включает изображения с камер высокого разрешения, облака точек LiDAR и детально аннотированные HD-карты.
  • Аннотации включают 3D-ограничивающие рамки для объектов, треки объектов и информацию о траекториях.
  • Argoverse предоставляет несколько подмножеств для различных задач, таких как 3D-трекинг, прогнозирование движения и оценка стереоглубины.

Структура набора данных

Набор данных Argoverse разделен на три основных подмножества:

  1. Argoverse 3D Tracking: это подмножество содержит 113 сцен с более чем 290 тыс. размеченных 3D-треков объектов и ориентировано на задачи 3D-трекинга объектов. Оно включает облака точек LiDAR, изображения с камер и информацию о калибровке датчиков.
  2. Argoverse Motion Forecasting: это подмножество состоит из 324 тыс. траекторий транспортных средств, собранных за 60 часов данных вождения, и подходит для задач прогнозирования движения.
  3. Argoverse Stereo Depth Estimation: это подмножество предназначено для задач оценки стереоглубины и включает более 10 тыс. пар стереоизображений с соответствующими облаками точек LiDAR для оценки глубины по «земной правде» (ground truth).

Приложения

Набор данных 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 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Argoverse-HD dataset (ring-front-center camera) by Argo AI: https://www.cs.cmu.edu/~mengtial/proj/streaming/
# 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: 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 pathlib import Path

  from ultralytics.utils import TQDM
  from ultralytics.utils.downloads import download

  def argoverse2yolo(annotation_file):
      """Convert Argoverse dataset annotations to YOLO format for object detection tasks."""
      labels = {}
      with open(annotation_file, encoding="utf-8") as f:
          a = json.load(f)
      for annot in TQDM(a["annotations"], desc=f"Converting {annotation_file} to YOLO format..."):
          img_id = annot["image_id"]
          img_name = a["images"][img_id]["name"]
          img_label_name = f"{Path(img_name).stem}.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 = annotation_file.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", encoding="utf-8") 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

Использование

Чтобы обучить модель YOLO26n на наборе данных Argoverse в течение 100 эпох с размером изображения 640, ты можешь использовать следующие фрагменты кода. Полный список доступных аргументов смотри на странице Обучение модели.

Пример обучения
from ultralytics import YOLO

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

# Train the model
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

Примеры данных и аннотаций

Набор данных Argoverse содержит разнообразные сенсорные данные, включая изображения с камер, облака точек LiDAR и информацию HD-карт, обеспечивая богатый контекст для задач автономного вождения. Вот несколько примеров данных из набора вместе с соответствующими аннотациями:

Пример 3D-трекинга набора данных Argoverse с аннотациями транспортных средств

  • Argoverse 3D Tracking: Это изображение демонстрирует пример 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.

Часто задаваемые вопросы (FAQ)

Что такое набор данных Argoverse и каковы его ключевые особенности?

Набор данных Argoverse, разработанный Argo AI, поддерживает исследования в области автономного вождения. Он включает более 290 тыс. размеченных 3D-треков объектов и 5 миллионов экземпляров объектов в 1 263 различных сценах. Набор данных предоставляет изображения с камер высокого разрешения, облака точек LiDAR и аннотированные HD-карты, что делает его ценным для таких задач, как 3D-трекинг, прогнозирование движения и оценка стереоглубины.

Как мне обучить модель Ultralytics YOLO, используя набор данных Argoverse?

Чтобы обучить модель YOLO26 с помощью набора данных Argoverse, используй предоставленный YAML-файл конфигурации и следующий код:

Пример обучения
from ultralytics import YOLO

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

# Train the model
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

Для подробного объяснения аргументов обратись к странице Обучение модели.

Какие типы данных и аннотаций доступны в наборе данных Argoverse?

Набор данных Argoverse включает различные типы сенсорных данных, такие как изображения с камер высокого разрешения, облака точек LiDAR и данные HD-карт. Аннотации включают 3D-ограничивающие рамки, треки объектов и информацию о траекториях. Эти полные аннотации важны для точного обучения моделей в таких задачах, как 3D-трекинг объектов, прогнозирование движения и оценка стереоглубины.

Как структурирован набор данных Argoverse?

Набор данных разделен на три основных подмножества:

  1. Argoverse 3D Tracking: содержит 113 сцен с более чем 290 тыс. размеченных 3D-треков объектов, ориентирован на задачи 3D-трекинга объектов. Включает облака точек LiDAR, изображения с камер и информацию о калибровке датчиков.
  2. Argoverse Motion Forecasting: состоит из 324 тыс. траекторий транспортных средств, собранных за 60 часов данных вождения, подходит для задач прогнозирования движения.
  3. Argoverse Stereo Depth Estimation: включает более 10 тыс. пар стереоизображений с соответствующими облаками точек LiDAR для оценки глубины по «земной правде».

Где я могу скачать набор данных Argoverse теперь, когда он был удален из Amazon S3?

Файл *.zip набора данных Argoverse, ранее доступный на Amazon S3, теперь можно скачать вручную с Google Drive.

Для чего используется YAML-файл конфигурации в наборе данных Argoverse?

YAML-файл содержит пути к набору данных, классы и другую важную информацию. Для набора данных Argoverse файл конфигурации Argoverse.yaml можно найти по следующей ссылке: Argoverse.yaml.

Для получения дополнительной информации о конфигурациях YAML смотри наше руководство по наборам данных.

Комментарии