Ultralytics YOLO27:

Argoverse 데이터셋#

Ultralytics Argoverse 데이터셋(Argoverse-HD)은 8개 클래스(사람, 자전거, 자동차, 오토바이, 버스, 트럭, 신호등, 정지 표지판)로 구성된 54,446개의 라벨이 지정된 자율주행 이미지(학습용 39,384개, 검증용 15,062개)를 포함하는 2D 객체 검출 데이터셋입니다. 이미지는 차량의 링 프론트 센터 카메라로 촬영되었으며, 어노테이션은 Argo AI의 Argoverse 1.1 주행 데이터를 기반으로 구축된 Carnegie Mellon University의 streaming-perception 프로젝트에서 제공됩니다. 이 데이터셋은 자율주행 시나리오에서 도로 객체를 검출하는 컴퓨터 비전 모델을 학습하기 위한 대규모 실제 환경 벤치마크입니다.

Ultralytics Platform의 Argoverse-HD에서 어노테이션이 지정된 샘플을 미리 보고, 데이터셋 통계를 확인하고, 학습을 위해 복제할 수 있습니다.

수동 다운로드 필요

학습에 필요한 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 구성으로 정의된 세 개의 사전 정의된 하위 집합으로 분할됩니다:

분할이미지라벨
학습39,384
검증15,062
테스트라벨 없음(eval.ai challenge)

모든 이미지에는 동일한 8개 객체 클래스(인덱스 0–7)가 사용됩니다: 사람, 자전거, 자동차, 오토바이, 버스, 트럭, 신호등, 정지 표지판.

자동 YOLO 변환

수동 다운로드 후 Ultralytics는 처음 학습할 때 원본 Argoverse-HD 어노테이션을 YOLO 검출 라벨로 자동 변환하므로, 수동 전처리가 필요하지 않습니다.

응용 분야#

Argoverse-HD 데이터셋은 자율주행 분야에서 다양한 객체 검출 애플리케이션을 지원합니다:

  • 자율주행 인식 — 전방 카메라에서 차량, 보행자, 자전거 이용자를 검출하여 자율주행 차량 내비게이션을 지원합니다.
  • 첨단 운전자 보조 시스템(ADAS) — 실시간 운전자 알림을 위해 신호등과 정지 표지판을 인식합니다.
  • 교통 모니터링 — 스마트 시티 분석을 위해 도시 장면에서 도로 이용자를 카운트하고 추적합니다.
  • 연구 및 프로토타이핑 — 주행 데이터를 활용한 모델 학습예측을 위한 대규모 실제 환경 벤치마크입니다.

데이터셋 YAML#

YAML 파일은 경로, 클래스 및 기타 관련 세부 정보를 포함한 데이터셋 구성을 정의합니다. 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.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 데이터셋에서 YOLO26n 모델을 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)

학습이 완료되면 fine-tuned 모델로 새로운 주행 이미지 또는 동영상에 대해 추론을 실행합니다:

추론 예제
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 바운딩 박스가 어노테이션된 고해상도 주행 이미지가 포함되어 있습니다. 다음은 해당 어노테이션이 포함된 데이터셋 이미지 예시입니다:

어노테이션이 지정된 도로 객체가 있는 Argoverse-HD 자율주행 장면

  • 어노테이션이 지정된 주행 장면: 이 이미지에는 차량과 보행자 같은 도로 객체가 2D 바운딩 박스로 라벨링되어 있으며, 이는 YOLO 모델이 학습 중 예측하도록 학습하는 형식입니다.

인용 및 감사의 글#

이 데이터셋에 사용된 Argoverse-HD 2D 검출 어노테이션은 Carnegie Mellon University의 streaming-perception 연구에서 제공되었습니다. 연구 또는 개발에 이 데이터셋을 사용하는 경우 다음을 인용해 주세요:

인용문
@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 검출 어노테이션을 제공한 Carnegie Mellon University와 자율주행 연구 커뮤니티를 위한 귀중한 리소스로서 원본 Argoverse 데이터셋을 제작한 Argo AI에 감사드립니다.

FAQ#

  • Ultralytics Argoverse 데이터셋(Argoverse-HD)은 8개 클래스(사람, 자전거, 자동차, 오토바이, 버스, 트럭, 신호등, 정지 표지판)로 구성된 54,446개의 자율주행 이미지를 포함하는 2D 객체 검출 데이터셋입니다. 전방 차량 카메라에서 도로 객체를 검출하는 모델을 학습하고 평가하는 데 사용되며, 자율주행 인식, ADAS 및 교통 모니터링 연구를 지원합니다.

  • Argoverse-HD 데이터셋에는 8개 클래스(사람, 자전거, 자동차, 오토바이, 버스, 트럭, 신호등, 정지 표지판)와 라벨이 지정된 이미지 54,446개(학습용 39,384개, 검증용 15,062개)가 있으며, eval.ai challenge를 위해 예약된 라벨 없는 테스트 분할도 포함됩니다.

  • Ultralytics에서 이는 3D 추적, 모션 예측 또는 더 광범위한 Argoverse 프로그램의 LiDAR 연구 제품군이 아닌 2D 객체 검출 데이터셋입니다(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)

    인수에 대한 자세한 설명은 모델 학습 페이지를 참조하세요.

  • 이전에 Amazon S3에서 호스팅되었던 Argoverse-HD *.zip 파일(~31.5 GB)은 이제 Google Drive에서 수동으로 다운로드할 수 있습니다. 자동 다운로드는 작동하지 않으므로 학습 명령을 실행하기 전에 아카이브를 가져와야 합니다.

  • 예. Ultralytics Platform을 사용하면 Argoverse-HD와 같은 대규모 데이터셋을 업로드하고 버전을 관리한 다음, 복잡한 로컬 설정 없이 클라우드에서 객체 검출 모델을 학습하고 배포할 수 있습니다. 검출 데이터셋 개요에서 관련 데이터셋을 찾아볼 수도 있습니다.

댓글