Argoverseデータセット#
Ultralytics Argoverse データセット(Argoverse-HD)は、54,446枚のラベル付き自動運転画像(トレーニング用に39,384枚、検証用に15,062枚)からなる2D object detection データセットであり、person、bicycle、car、motorcycle、bus、truck、traffic light、stop signの8つのクラスで構成されています。画像は車両のリングフロントセンターカメラから撮影されており、アノテーションはカーネギーメロン大学のストリーミングパーセプションプロジェクトによるもので、Argo AI の Argoverse 1.1 駆動データに基づいています。これは、自動運転シナリオにおける道路オブジェクトを検出する computer vision モデルをトレーニングするための、大規模で現実世界のベンチマークです。
Argoverse-HD on Ultralytics Platform を探索して、アノテーション済みサンプルのプレビュー、データセットの統計情報の確認、およびトレーニング用のクローン作成を行います。
トレーニングに必要な Argoverse-HD の *.zip ファイル(~31.5 GB)は、Ford による Argo AI の閉鎖に伴い、Amazon S3 から削除されました。Google Drive から手動でダウンロード可能です。自動ダウンロードは機能しないため、トレーニング前にアーカイブをダウンロードしてください。
主な特徴#
- 8つの物体検出クラス: 人、自転車、自動車、オートバイ、バス、トラック、信号機、一時停止標識。
- 54,446枚のラベル付き画像(トレーニング用に39,384枚、検証用に15,062枚)、および eval.ai challenge 用に予約されたラベルなしのテストスプリットが含まれています。
- 約31.5 GBの都市部の自動運転シーンで撮影された高解像度のリングフロントセンターカメラフレーム。
- アノテーションは初回使用時に自動的にYOLO形式に変換されるため、データセットはUltralytics YOLO検出モデルで直接トレーニング可能です。
データセットの構造#
Argoverse-HD データセットは、Argoverse.yaml 設定によって定義される3つの事前定義されたサブセットに分割されます。
| 分割 | 画像 | ラベル |
|---|---|---|
| トレーニング | 39,384 | はい |
| バリデーション | 15,062 | はい |
| テスト | — | ラベルなし(eval.ai challenge) |
すべての画像は同一の8つのオブジェクトクラス(インデックス0~7)を共有しています:人、自転車、自動車、オートバイ、バス、トラック、信号機、一時停止標識。
手動ダウンロード後、Ultralyticsはトレーニング初回時に元のArgoverse-HDアノテーションをYOLO検出ラベルに自動変換するため、手動の前処理は不要です。
アプリケーション#
Argoverse-HD データセットは、自動運転におけるさまざまな object detection アプリケーションをサポートします。
- 自動運転のパーセプション — 前方カメラから車両、歩行者、自転車を検出し、autonomous-vehicle のナビゲーションをサポートします。
- 先進運転支援システム (ADAS) — 信号機や一時停止標識を認識し、ドライバーへのリアルタイムアラートを提供します。
- 交通監視 — スマートシティ分析のために、都市環境における道路利用者をカウントおよび追跡します。
- 研究とプロトタイピング — 運転データに対する model training と prediction の学習用となる、大規模で現実世界のベンチマークです。
データセット YAML#
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 labels使用方法#
Argoverse データセットで画像サイズ640を使用して YOLO26n モデルを100 epochs トレーニングするには、次のコードサンプルを使用します。利用可能な引数の詳細なリストについては、モデルの Training ページを参照してください。
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)トレーニングが完了したら、ファインチューニングされたモデルを使用して、新しい運転画像または動画に対して inference を実行します。
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")サンプルデータとアノテーション#
Argoverse-HDデータセットには、リングフロントセンターカメラから撮影された高解像度の走行画像が含まれており、8つのオブジェクトクラスに対する2Dバウンディングボックスがアノテーションされています。以下はデータセット内の画像とそのアノテーションの例です:

- 注釈付き走行シーン: この画像は、自動車や歩行者などの道路オブジェクトを示しており、YOLOモデルがトレーニング中に予測することを学習する形式である2Dバウンディングボックスでラベル付けされています。
引用と謝辞#
このデータセットで使用されるArgoverse-HD 2D検出アノテーションは、カーネギーメロン大学のストリーミング認識に関する研究によるものです。研究や開発でこのデータセットを使用する場合は、次のように引用してください:
@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 検出アノテーションを提供してくださったカーネギーメロン大学と、自動運転研究コミュニティにとって貴重なリソースとして元の Argoverse データセットを作成してくださった Argo AI に感謝いたします。
よくある質問 (FAQ)#
Ultralytics Argoverse データセット(Argoverse-HD)は、person、bicycle、car、motorcycle、bus、truck、traffic light、stop signの8つのクラスにわたる54,446枚の自動運転画像からなる2D object detection データセットです。前方の車両カメラから道路オブジェクトを検出するモデルのトレーニングと評価に使用され、自動運転パーセプション、ADAS、交通監視の研究をサポートします。
Argoverse-HDデータセットには8つのクラス(人、自転車、自動車、オートバイ、バス、トラック、信号機、一時停止標識)と54,446枚のラベル付き画像(トレーニング用39,384枚、検証用15,062枚)に加え、eval.aiチャレンジ用に確保されたラベルなしのテスト分割が含まれています。
Ultralytics では、より広い Argoverse プログラムの 3D トラッキング、モーション予測、LiDAR 研究スイートではなく、2D object detection データセット(2D バウンディングボックス付きの Argoverse-HD カメラフレーム)です。
yolo26n.ptなどの標準的な検出モデルでトレーニングします。最初にデータセットを手動でダウンロードし(下記を参照)、
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 ページを参照してください。
以前は Amazon S3 でホストされていた Argoverse-HD の
*.zipファイル(~31.5 GB)は、Google Drive から手動でダウンロードできるようになりました。自動ダウンロードは機能しないため、トレーニングコマンドを実行する前にアーカイブを取得してください。はい。Ultralytics Platform を使用すると、Argoverse-HD などの大規模なデータセットをアップロードおよびバージョニングし、重いローカル設定なしでクラウド上で object detection モデルをトレーニングおよびデプロイできます。detection datasets overview で関連するデータセットを閲覧することもできます。



