Ultralytics YOLO27:

Dataset Argoverse#

Dataset Argoverse của Ultralytics (Argoverse-HD) là dataset phát hiện đối tượng 2D gồm 54.446 ảnh lái xe tự hành đã gán nhãn — 39.384 ảnh dùng để train và 15.062 ảnh dùng để validation — với 8 class: người, xe đạp, ô tô, xe máy, xe buýt, xe tải, đèn giao thông và biển báo dừng. Các ảnh được chụp từ camera ring-front-center của một phương tiện, còn annotation đến từ dự án streaming-perception của Carnegie Mellon University, được xây dựng trên dữ liệu lái xe Argoverse 1.1 của Argo AI. Đây là một benchmark quy mô lớn trong điều kiện thực tế để train các model computer vision phát hiện các đối tượng trên đường trong những tình huống xe tự hành.

Khám phá Argoverse-HD trên Ultralytics Platform để xem trước các sample đã gán annotation, kiểm tra thống kê dataset và clone dataset để train.

Yêu cầu tải xuống thủ công

File *.zip của Argoverse-HD (~31.5 GB) cần cho quá trình train đã bị gỡ khỏi Amazon S3 sau khi Ford đóng cửa Argo AI. File này hiện có thể được tải xuống thủ công từ Google Drive — tính năng tải xuống tự động sẽ không hoạt động, vì vậy hãy tải archive trước khi train.

Tính năng chính#

  • 8 class phát hiện đối tượng: người, xe đạp, ô tô, xe máy, xe buýt, xe tải, đèn giao thông và biển báo dừng.
  • 54.446 ảnh đã gán nhãn — 39.384 ảnh dùng để train và 15.062 ảnh dùng để validation — cùng một tập test chưa gán nhãn dành riêng cho eval.ai challenge.
  • ~31.5 GB các frame độ phân giải cao từ camera ring-front-center, được chụp trong những bối cảnh xe tự hành đô thị.
  • Annotation được tự động chuyển đổi sang format YOLO trong lần sử dụng đầu tiên, vì vậy dataset có thể được train trực tiếp với các model detection Ultralytics YOLO.

Cấu trúc bộ dữ liệu#

Dataset Argoverse-HD được chia thành ba subset được định nghĩa sẵn, theo cấu hình Argoverse.yaml:

SplitẢnhNhãn
Huấn luyện39,384
Validation15,062
TestChưa gán nhãn (eval.ai challenge)

Tất cả ảnh đều sử dụng cùng 8 class đối tượng (chỉ số 0–7): người, xe đạp, ô tô, xe máy, xe buýt, xe tải, đèn giao thông và biển báo dừng.

Tự động chuyển đổi sang YOLO

Sau khi tải xuống thủ công, Ultralytics sẽ tự động chuyển annotation gốc của Argoverse-HD thành các nhãn detection YOLO trong lần đầu tiên bạn train, vì vậy không cần preprocessing thủ công.

Ứng dụng#

Dataset Argoverse-HD hỗ trợ nhiều ứng dụng phát hiện đối tượng trong lĩnh vực lái xe tự hành:

  • Nhận thức cho xe tự hành — phát hiện phương tiện, người đi bộ và người đi xe đạp từ camera hướng về phía trước để hỗ trợ điều hướng phương tiện tự hành.
  • Hệ thống hỗ trợ người lái nâng cao (ADAS) — nhận diện đèn giao thông và biển báo dừng để đưa ra cảnh báo theo thời gian thực cho người lái.
  • Giám sát giao thông — đếm và theo dõi người tham gia giao thông trong các bối cảnh đô thị để phục vụ analytics cho thành phố thông minh.
  • Nghiên cứu và prototyping — một benchmark quy mô lớn trong điều kiện thực tế để nghiên cứu train modelprediction trên dữ liệu lái xe.

YAML của bộ dữ liệu#

Một file YAML định nghĩa cấu hình dataset, bao gồm các path, class và những chi tiết liên quan khác. Đối với dataset Argoverse, file Argoverse.yaml được duy trì tại 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

Cách sử dụng#

Để train model YOLO26n trên dataset Argoverse trong 100 epoch với image size 640, hãy sử dụng các sample code sau. Để xem danh sách đầy đủ các argument khả dụng, hãy tham khảo trang Training của model.

Ví dụ huấn luyện
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)

Sau khi train xong, hãy chạy inference bằng model đã fine-tune trên các ảnh hoặc video lái xe mới:

Ví dụ 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")

Dữ liệu mẫu và Annotation#

Dataset Argoverse-HD chứa các ảnh lái xe độ phân giải cao được chụp từ camera ring-front-center, với các bounding box 2D được gán annotation cho 8 class đối tượng. Dưới đây là một ảnh mẫu từ dataset cùng với các annotation tương ứng:

Bối cảnh lái xe tự hành Argoverse-HD với các đối tượng trên đường đã được gán annotation

  • Bối cảnh lái xe đã gán annotation: Ảnh này hiển thị các đối tượng trên đường — chẳng hạn như phương tiện và người đi bộ — được gắn bounding box 2D, là format mà các model YOLO học cách dự đoán trong quá trình train.

Trích dẫn và ghi nhận đóng góp#

Các annotation detection 2D của Argoverse-HD được sử dụng trong dataset này đến từ công trình streaming-perception của Carnegie Mellon University. Nếu sử dụng dataset trong nghiên cứu hoặc phát triển, vui lòng trích dẫn:

Trích dẫn
@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}
}

Chúng tôi xin ghi nhận đóng góp của Carnegie Mellon University đối với các annotation detection Argoverse-HD và của Argo AI vì đã tạo ra dataset Argoverse ban đầu, một tài nguyên giá trị cho cộng đồng nghiên cứu xe tự hành.

FAQ#

  • Dataset Argoverse của Ultralytics (Argoverse-HD) là dataset phát hiện đối tượng 2D gồm 54.446 ảnh lái xe tự hành thuộc 8 class — người, xe đạp, ô tô, xe máy, xe buýt, xe tải, đèn giao thông và biển báo dừng. Dataset được sử dụng để train và đánh giá các model phát hiện đối tượng trên đường từ camera hướng về phía trước của phương tiện, hỗ trợ nghiên cứu về nhận thức cho xe tự hành, ADAS và giám sát giao thông.

  • Dataset Argoverse-HD có 8 class (người, xe đạp, ô tô, xe máy, xe buýt, xe tải, đèn giao thông và biển báo dừng) và 54.446 ảnh đã gán nhãn — 39.384 ảnh dùng để train và 15.062 ảnh dùng để validation — cùng một tập test chưa gán nhãn dành riêng cho eval.ai challenge.

  • Trong Ultralytics, đây là dataset phát hiện đối tượng 2D (các frame camera Argoverse-HD với bounding box 2D), không phải bộ nghiên cứu tracking 3D, dự báo chuyển động hoặc LiDAR thuộc chương trình Argoverse rộng hơn. Bạn train dataset này bằng một model detection tiêu chuẩn như yolo26n.pt.

  • Trước tiên, hãy tải dataset xuống thủ công (xem bên dưới), sau đó train bằng file cấu hình Argoverse.yaml:

    Ví dụ
    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)

    Để xem giải thích chi tiết về các argument, hãy tham khảo trang Training của model.

  • File *.zip của Argoverse-HD (~31.5 GB), trước đây được lưu trữ trên Amazon S3, hiện có thể được tải xuống thủ công từ Google Drive. Tính năng tải xuống tự động sẽ không hoạt động, vì vậy hãy tải archive trước khi chạy lệnh train.

  • Có. Ultralytics Platform cho phép bạn upload và version các dataset lớn như Argoverse-HD, sau đó train và deploy các model phát hiện đối tượng trên cloud mà không cần thiết lập cục bộ phức tạp. Bạn cũng có thể duyệt các dataset liên quan trong tổng quan về các dataset detection.

Bình luận