Link to this sectionНабор данных Argoverse#
Набор данных Ultralytics Argoverse (Argoverse-HD) — это набор данных для 2D обнаружения объектов, содержащий 54 446 размеченных изображений автономного вождения — 39 384 для обучения и 15 062 для валидации — по 8 классам: человек, велосипед, автомобиль, мотоцикл, автобус, грузовик, светофор и знак «стоп». Изображения получены с фронтальной камеры автомобиля, а аннотации взяты из проекта по потоковому восприятию Университета Карнеги — Меллона, построенного на основе данных вождения Argo AI Argoverse 1.1. Это масштабный реальный эталон для обучения моделей компьютерного зрения распознаванию дорожных объектов в сценариях беспилотного вождения.
Файл *.zip для Argoverse-HD (~31,5 ГБ), необходимый для обучения, был удален с Amazon S3 после закрытия Argo AI компанией Ford. Он доступен для ручной загрузки с Google Drive — автоматическая загрузка не сработает, поэтому скачай архив перед началом обучения.
Link to this sectionКлючевые особенности#
- 8 классов обнаружения объектов: человек, велосипед, автомобиль, мотоцикл, автобус, грузовик, светофор и знак «стоп».
- 54 446 размеченных изображений — 39 384 для обучения и 15 062 для валидации — плюс неразмеченный тестовый набор, зарезервированный для конкурса eval.ai.
- ~31,5 ГБ кадров высокого разрешения с фронтальной камеры, снятых в условиях городского автономного вождения.
- Аннотации автоматически преобразуются в формат YOLO при первом использовании, поэтому набор данных сразу готов к работе с моделями обнаружения Ultralytics YOLO.
Link to this sectionСтруктура набора данных#
Набор данных Argoverse-HD разделен на три предопределенных подмножества, описанных в конфигурации Argoverse.yaml:
| Split | Изображения | Метки |
|---|---|---|
| Обучение | 39 384 | Да |
| Validation | 15 062 | Да |
| Тестовый | — | Без разметки (конкурс eval.ai) |
Все изображения содержат одни и те же 8 классов объектов (индексы 0–7): человек, велосипед, автомобиль, мотоцикл, автобус, грузовик, светофор и знак «стоп».
После ручной загрузки Ultralytics автоматически преобразует исходные аннотации Argoverse-HD в метки обнаружения YOLO при первом запуске обучения, поэтому ручная предобработка не требуется.
Link to this sectionПрименение#
Набор данных Argoverse-HD поддерживает ряд приложений обнаружения объектов в автономном вождении:
- Восприятие для беспилотных автомобилей — обнаружение транспортных средств, пешеходов и велосипедистов с фронтальной камеры для поддержки навигации автономных транспортных средств.
- Усовершенствованные системы помощи водителю (ADAS) — распознавание светофоров и знаков «стоп» для оповещения водителя в реальном времени.
- Мониторинг дорожного движения — подсчет и отслеживание участников дорожного движения в городских условиях для аналитики «умного города».
- Исследования и прототипирование — крупный реальный эталон для изучения обучения моделей и предсказания на данных вождения.
Link to this sectionYAML набора данных#
YAML-файл определяет конфигурацию набора данных, включая пути, классы и другие важные детали. Для набора данных Argoverse файл Argoverse.yaml поддерживается по адресу https://github.com/ultralytics/ultralytics/blob/main/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.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 labelsLink to this sectionИспользование#
Чтобы обучить модель 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)После обучения запусти инференс с помощью дообученной модели на новых изображениях или видео вождения:
from ultralytics import YOLO
# Load a model
model = YOLO("path/to/best.pt") # load an Argoverse fine-tuned model
# Inference using the model
results = model.predict("path/to/driving-scene.jpg")Link to this sectionПримеры данных и разметки#
Набор данных Argoverse-HD содержит изображения высокого разрешения, снятые фронтальной камерой, с аннотациями в виде 2D ограничивающих рамок для 8 классов объектов. Ниже представлен пример изображения из набора данных с соответствующими аннотациями:
![]()
- Аннотированная сцена вождения: на этом изображении показаны дорожные объекты — например, транспортные средства и пешеходы, — помеченные 2D ограничивающими рамками, формат которых модели YOLO учатся предсказывать во время обучения.
Link to this sectionЦитирование и благодарности#
Аннотации 2D обнаружения Argoverse-HD, используемые в этом наборе данных, взяты из работы по потоковому восприятию Университета Карнеги — Меллона. Если ты используешь этот набор данных в своих исследованиях или разработках, пожалуйста, укажи источник:
@inproceedings{li2020towards,
title={Towards Streaming Perception},
author={Li, Mengtian and Wang, Yu-Xiong and Ramanan, Deva},
booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
pages={473--488},
year={2020}
}
@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}
}Мы хотим выразить признательность Университету Карнеги — Меллона за аннотации обнаружения Argoverse-HD и Argo AI за создание оригинального набора данных Argoverse как ценного ресурса для сообщества исследователей автономного вождения.
Link to this sectionFAQ#
Link to this sectionЧто такое набор данных Argoverse и для чего он используется?#
Набор данных Ultralytics Argoverse (Argoverse-HD) — это набор данных для 2D обнаружения объектов, содержащий 54 446 изображений автономного вождения по 8 классам: человек, велосипед, автомобиль, мотоцикл, автобус, грузовик, светофор и знак «стоп». Он используется для обучения и оценки моделей, которые обнаруживают дорожные объекты с помощью фронтальной камеры автомобиля, поддерживая исследования в области восприятия для беспилотного вождения, ADAS и мониторинга дорожного движения.
Link to this sectionСколько классов и изображений в наборе данных Argoverse?#
Набор данных Argoverse-HD содержит 8 классов (человек, велосипед, автомобиль, мотоцикл, автобус, грузовик, светофор и знак «стоп») и 54 446 размеченных изображений — 39 384 для обучения и 15 062 для валидации, — а также неразмеченный тестовый набор, зарезервированный для конкурса eval.ai.
Link to this sectionЯвляется ли набор данных Argoverse в Ultralytics 2D или 3D обнаружением?#
В Ultralytics это набор данных для 2D обнаружения объектов (кадры камеры Argoverse-HD с 2D ограничивающими рамками), а не пакет для 3D-отслеживания, прогнозирования движения или LiDAR-исследований из более широкой программы Argoverse. Ты можешь обучать его с помощью стандартной модели обнаружения, такой как yolo26n.pt.
Link to this sectionКак обучить модель YOLO26, используя набор данных Argoverse?#
Сначала загрузи набор данных вручную (см. ниже), затем запусти обучение с использованием файла конфигурации 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)Для подробного объяснения аргументов обратись к странице Training модели.
Link to this sectionГде я могу скачать набор данных Argoverse теперь, когда он был удален с Amazon S3?#
Файл *.zip для Argoverse-HD (~31,5 ГБ), ранее размещенный на Amazon S3, теперь можно загрузить вручную с Google Drive. Автоматическая загрузка не сработает, поэтому получи архив перед выполнением команды обучения.
Link to this sectionМогу ли я использовать набор данных Argoverse с платформой Ultralytics?#
Да. Платформа Ultralytics позволяет загружать и версионировать большие наборы данных, такие как Argoverse-HD, а затем обучать и развертывать модели обнаружения объектов в облаке без сложной локальной настройки. Ты также можешь просмотреть похожие наборы данных в обзоре наборов данных для обнаружения.