Argoverse 데이터 세트
Argoverse 데이터 세트는 3D 추적, 동작 예측, 스테레오 깊이 추정과 같은 자율 주행 작업 연구를 지원하도록 설계된 데이터 모음입니다. Argo AI에서 개발한 이 데이터 세트는 고해상도 이미지, LiDAR 포인트 클라우드, 지도 데이터를 포함한 광범위한 고품질 센서 데이터를 제공합니다.
참고
Argoverse 데이터 세트 *.zip
학습에 필요한 파일이 Ford의 Argo AI 폐쇄 후 Amazon S3에서 제거되었지만, 다음 위치에서 수동으로 다운로드할 수 있도록 했습니다. Google Drive.
주요 기능
- Argoverse는 1,263개의 개별 장면에서 29만 개 이상의 레이블이 지정된 3D 객체 트랙과 5백만 개의 객체 인스턴스를 포함합니다.
- 이 데이터 세트에는 고해상도 카메라 이미지, LiDAR 포인트 클라우드 및 풍부하게 주석이 달린 HD 지도가 포함되어 있습니다.
- 주석에는 객체에 대한 3D 경계 상자, 객체 트랙 및 궤적 정보가 포함됩니다.
- Argoverse는 3D 추적, 동작 예측, 스테레오 깊이 추정과 같은 다양한 작업을 위한 여러 하위 세트를 제공합니다.
데이터 세트 구조
Argoverse 데이터 세트는 세 가지 주요 하위 세트로 구성됩니다.
- Argoverse 3D 추적: 이 하위 세트는 3D 객체 추적 작업에 중점을 두고 29만 개 이상의 레이블이 지정된 3D 객체 트랙이 있는 113개의 장면을 포함합니다. 여기에는 LiDAR 포인트 클라우드, 카메라 이미지 및 센서 보정 정보가 포함됩니다.
- Argoverse 동작 예측: 이 하위 세트는 동작 예측 작업에 적합한 60시간 분량의 운전 데이터에서 수집한 324K 차량 궤적으로 구성됩니다.
- Argoverse 스테레오 깊이 추정: 이 하위 세트는 스테레오 깊이 추정 작업을 위해 설계되었으며, 지상 실측 깊이 추정을 위한 해당 LiDAR 포인트 클라우드가 있는 10K 개 이상의 스테레오 이미지 쌍을 포함합니다.
응용 분야
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) 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: 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(set):
"""Convert Argoverse dataset annotations to YOLO format for object detection tasks."""
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", 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
사용법
이미지 크기가 640인 Argoverse 데이터 세트에서 YOLO11n 모델을 100 epoch 동안 학습시키려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 학습 페이지를 참조하십시오.
훈련 예제
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 데이터 세트에는 카메라 이미지, LiDAR 포인트 클라우드 및 HD 지도 정보를 포함한 다양한 센서 데이터 세트가 포함되어 있어 자율 주행 작업에 대한 풍부한 컨텍스트를 제공합니다. 다음은 데이터 세트의 데이터 예제와 해당 주석입니다.
- Argoverse 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}
}
자율 주행 연구 커뮤니티를 위한 귀중한 리소스로서 Argoverse 데이터 세트를 만들고 유지 관리한 Argo AI에 감사를 표합니다. Argoverse 데이터 세트 및 제작자에 대한 자세한 내용은 Argoverse 데이터 세트 웹사이트를 방문하십시오.
FAQ
Argoverse 데이터 세트와 주요 기능은 무엇입니까?
Argo AI에서 개발한 Argoverse 데이터 세트는 자율 주행 연구를 지원합니다. 여기에는 1,263개의 개별 장면에서 29만 개 이상의 레이블이 지정된 3D 객체 트랙과 5백만 개의 객체 인스턴스가 포함되어 있습니다. 이 데이터 세트는 고해상도 카메라 이미지, LiDAR 포인트 클라우드 및 주석이 달린 HD 맵을 제공하므로 3D 추적, 동작 예측 및 스테레오 깊이 추정과 같은 작업에 유용합니다.
Argoverse 데이터 세트를 사용하여 Ultralytics YOLO 모델을 어떻게 훈련할 수 있습니까?
Argoverse 데이터 세트로 YOLO11 모델을 학습하려면 제공된 YAML 구성 파일과 다음 코드를 사용하십시오.
훈련 예제
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 데이터 세트에는 고해상도 카메라 이미지, LiDAR 포인트 클라우드 및 HD 맵 데이터와 같은 다양한 센서 데이터 유형이 포함되어 있습니다. 주석에는 3D 경계 상자, 객체 트랙 및 궤적 정보가 포함됩니다. 이러한 포괄적인 주석은 3D 객체 추적, 동작 예측 및 스테레오 깊이 추정과 같은 작업에서 정확한 모델 훈련에 필수적입니다.
Argoverse 데이터 세트는 어떻게 구성되어 있습니까?
데이터 세트는 세 가지 주요 하위 집합으로 나뉩니다.
- Argoverse 3D 추적: 3D 객체 추적 작업에 중점을 두고 29만 개 이상의 레이블이 지정된 3D 객체 트랙이 있는 113개의 장면을 포함합니다. LiDAR 포인트 클라우드, 카메라 이미지 및 센서 보정 정보가 포함되어 있습니다.
- Argoverse 동작 예측: 동작 예측 작업에 적합한 60시간 분량의 운전 데이터에서 수집한 324,000개의 차량 궤적으로 구성됩니다.
- Argoverse 스테레오 깊이 추정: ground truth 깊이 추정을 위해 해당 LiDAR 포인트 클라우드가 있는 10,000개 이상의 스테레오 이미지 쌍을 포함합니다.
Amazon S3에서 제거된 Argoverse 데이터 세트는 어디에서 다운로드할 수 있습니까?
Argoverse 데이터 세트 *.zip
Amazon S3에서 이전에 사용할 수 있었던 파일을 이제 다음에서 수동으로 다운로드할 수 있습니다. Google Drive.
Argoverse 데이터 세트에서 YAML 구성 파일은 어떤 용도로 사용됩니까?
YAML 파일에는 데이터 세트의 경로, 클래스 및 기타 필수 정보가 포함되어 있습니다. Argoverse 데이터 세트의 경우 구성 파일인 Argoverse.yaml
은 다음 링크에서 찾을 수 있습니다. Argoverse.yaml.
YAML 구성에 대한 자세한 내용은 데이터 세트 가이드를 참조하십시오.