Набор данных Argoverse
Набор данных Argoverse - это коллекция данных, предназначенная для поддержки исследований в области задач автономного вождения, таких как 3D-слежение, прогнозирование движения и оценка глубины стерео. Разработанный компанией Argo AI, набор данных предоставляет широкий спектр высококачественных сенсорных данных, включая изображения высокого разрешения, облака точек LiDAR и картографические данные.
Примечание
Набор данных Argoverse *.zip
Файл, необходимый для обучения, был удален с Amazon S3 после закрытия Argo AI компанией Ford, но мы сделали его доступным для ручной загрузки на Google Драйв.
Основные характеристики
- Argoverse содержит более 290 тысяч помеченных треков 3D-объектов и 5 миллионов экземпляров объектов в 1 263 разных сценах.
- Набор данных включает в себя изображения с камер высокого разрешения, облака точек LiDAR и богато аннотированные HD-карты.
- Аннотации включают в себя трехмерные ограничительные рамки для объектов, треки объектов и информацию о траектории движения.
- Argoverse предоставляет несколько подмножеств для разных задач, таких как 3D-трекинг, прогнозирование движения и оценка глубины стерео.
Структура набора данных
Набор данных Argoverse разбит на три основных подмножества:
- Argoverse 3D Tracking: Это подмножество содержит 113 сцен с более чем 290К помеченных треков 3D-объектов, ориентированных на задачи отслеживания 3D-объектов. В него входят облака точек LiDAR, изображения с камер и информация о калибровке датчиков.
- Argoverse Motion Forecasting: Это подмножество состоит из 324K траекторий движения автомобилей, собранных из 60 часов данных о вождении, и подходит для задач прогнозирования движения.
- Argoverse Stereo Depth Estimation: Этот поднабор предназначен для задач оценки глубины стереоизображений и включает в себя более 10 тысяч пар стереоизображений с соответствующими облаками точек LiDAR для оценки истинной глубины.
Приложения
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 (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
Использование
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.
Пример поезда
Образцы данных и аннотации
Набор данных Argoverse содержит разнообразный набор сенсорных данных, включая изображения с камер, облака точек LiDAR и информацию с HD-карт, что обеспечивает богатый контекст для задач автономного вождения. Вот несколько примеров данных из этого набора, а также соответствующие аннотации к ним:
- Арговерс 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, поддерживает исследования в области автономного вождения. Он включает в себя более 290 тысяч помеченных треков 3D-объектов и 5 миллионов экземпляров объектов в 1 263 разных сценах. Набор данных содержит изображения с камер высокого разрешения, облака точек LiDAR и аннотированные HD-карты, что делает его ценным для таких задач, как 3D-слежение, прогнозирование движения и оценка стереоглубины.
Как обучить модель Ultralytics YOLO , используя набор данных Argoverse?
To train a YOLO11 model with the Argoverse dataset, use the provided YAML configuration file and the following code:
Пример поезда
Подробное объяснение аргументов ты найдешь на странице обучения модели.
Какие типы данных и аннотаций доступны в наборе данных Argoverse?
Набор данных Argoverse включает в себя различные типы сенсорных данных, такие как изображения с камер высокого разрешения, облака точек LiDAR и данные HD-карт. Аннотации включают в себя 3D-ограничители, треки объектов и информацию о траектории движения. Эти исчерпывающие аннотации необходимы для точного обучения модели в таких задачах, как отслеживание 3D-объектов, прогнозирование движения и оценка глубины стереоизображения.
Как устроен набор данных Argoverse?
Набор данных разделен на три основных подмножества:
- Argoverse 3D Tracking: Содержит 113 сцен с более чем 290К помеченных треков 3D-объектов, ориентированных на задачи отслеживания 3D-объектов. В него входят облака точек LiDAR, изображения с камер и информация о калибровке датчиков.
- Argoverse Motion Forecasting: Состоит из 324K траекторий движения автомобилей, собранных из 60 часов данных о вождении, и подходит для задач прогнозирования движения.
- Argoverse Stereo Depth Estimation: Включает в себя более 10 тысяч пар стереоизображений с соответствующими облаками точек LiDAR для оценки истинной глубины.
Где я могу скачать набор данных Argoverse теперь, когда его убрали с Amazon S3?
Набор данных Argoverse *.zip
Файл, который раньше был доступен на Amazon S3, теперь можно вручную загрузить с Google Драйв.
Для чего используется конфигурационный файл YAML в наборе данных Argoverse?
YAML-файл содержит пути к набору данных, классы и другую важную информацию. Для набора данных Argoverse это конфигурационный файл, Argoverse.yaml
С ним можно ознакомиться по следующей ссылке: Argoverse.yaml.
Подробнее о конфигурациях YAML читай в нашем руководстве по наборам данных.