Ultralytics YOLO27:
Get Started

Dataset Argoverse#

Dataset Argoverse của Ultralytics (Argoverse-HD) là dataset phát hiện đối tượng 2D gồm 54.446 hình ảnh lái xe tự hành có nhãn — 39.384 ảnh huấn luyện và 15.062 ảnh validation — thuộc 8 lớp: 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. Hình ảnh được chụp từ camera phía trước, trung tâm trong cụm camera vòng quanh xe; annotation đến từ dự án streaming-perception của Đại học Carnegie Mellon, xây dựng trên dữ liệu lái xe Argoverse 1.1 của Argo AI. Đây là benchmark quy mô lớn trong thế giới thực để huấn luyện model thị giác máy tính phát hiện các đối tượng trên đường trong tình huống xe tự lái.

Khám phá Argoverse-HD trên Ultralytics Platform để xem trước các mẫu đã gán nhãn, kiểm tra thống kê dataset và sao chép dataset để huấn luyện.

Cần tải xuống thủ công

Tệp *.zip của Argoverse-HD (~31,5 GB) cần cho việc huấn luyện đã bị xóa khỏi Amazon S3 sau khi Ford đóng cửa Argo AI. Tệp có thể được tải xuống thủ công từ Google Drive — tính năng tự động tải xuống sẽ không hoạt động, vì vậy hãy tải archive và giải nén vào thư mục Argoverse trong thư mục dataset của bạn trước khi huấn luyện.

Tính năng chính#

  • 8 lớp 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 hình ảnh có nhãn — 39.384 ảnh huấn luyện và 15.062 ảnh validation — cùng một tập kiểm thử không có nhãn dành riêng cho thử thách eval.ai.
  • ~31,5 GB khung hình độ phân giải cao từ camera phía trước, trung tâm trong cụm camera vòng quanh xe, được ghi lại trong các cảnh lái xe tự hành ở đô thị.
  • Annotation được tự động chuyển sang định dạng YOLO trong lần sử dụng đầu tiên, vì vậy dataset có thể được huấn luyện trực tiếp bằng model phát hiện Ultralytics YOLO.

Cấu trúc dataset#

Bộ dữ liệu Argoverse-HD được chia thành ba tập con xác định trước, được định nghĩa trong cấu hình Argoverse.yaml:

Tập dữ liệuHình ảnhNhãn
Huấn luyện39,384Có
Validation15,062Có
Kiểm thử—Chưa gán nhãn (thử thách eval.ai)

Tất cả hình ảnh đều dùng chung 8 lớp đối tượng (chỉ số từ 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 tự động chuyển đổi các annotation Argoverse-HD gốc thành nhãn phát hiện YOLO ở lần đầu tiên bạn huấn luyện, vì vậy không cần tiền xử lý thủ công.

Ứng dụng#

Bộ dữ liệu 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ự lái — 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 xe tự hành.
  • Hệ thống hỗ trợ lái xe 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 cho người lái theo thời gian thực.
  • Giám sát giao thông — đếm và theo dõi người tham gia giao thông trong các khung cảnh đô thị để phục vụ phân tích thành phố thông minh.
  • Nghiên cứu và tạo mẫu — benchmark quy mô lớn trong điều kiện thực tế để tìm hiểu về huấn luyện model và dự đoán trên dữ liệu lái xe.

YAML của dataset#

Tệp YAML định nghĩa cấu hình bộ dữ liệu, bao gồm đường dẫn, lớp và các thông tin liên quan khác. Đối với bộ dữ liệu Argoverse, tệp 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#

Để huấn luyện model YOLO26n trên bộ dữ liệu Argoverse trong 100 epoch với kích thước ảnh 640, hãy sử dụng các mẫu mã sau. Để xem danh sách đầy đủ các đối số hiện có, tham khảo trang Huấn luyện model.

Ví dụ huấn luyện
from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)

# Huấn luyện model
results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

Sau khi huấn luyện, hãy chạy suy luận bằng model đã tinh chỉnh trên hình ảnh hoặc video lái xe mới:

Ví dụ suy luận
from ultralytics import YOLO

# Tải model
model = YOLO("path/to/best.pt")  # tải model đã tinh chỉnh trên Argoverse

# Suy luận bằng model
results = model.predict("path/to/driving-scene.jpg")

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

Bộ dữ liệu Argoverse-HD chứa các hình ảnh lái xe độ phân giải cao được chụp từ camera trung tâm phía trước dạng vòng, kèm BBox 2D cho 8 lớp đối tượng. Dưới đây là hình ảnh mẫu từ bộ dữ liệu cùng với các annotation tương ứng:

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

  • Khung cảnh lái xe đã được gán nhãn: Hình ảnh này cho thấy 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 nhãn bằng BBox 2D, định dạng mà các model YOLO học cách dự đoán trong quá trình huấn luyện.

Trích dẫn và lời cảm ơn#

Các annotation phát hiện 2D Argoverse-HD được sử dụng trong bộ dữ liệu này xuất phát từ công trình streaming-perception của Đại học Carnegie Mellon. Nếu sử dụng bộ dữ liệu 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 Đại học Carnegie Mellon đối với các annotation phát hiện Argoverse-HD và của Argo AI trong việc tạo bộ dữ liệu Argoverse ban đầu, một tài nguyên quý giá cho cộng đồng nghiên cứu xe tự hành.

Câu hỏi thường gặp#

  • Bộ dữ liệu Argoverse của Ultralytics (Argoverse-HD) là bộ dữ liệu phát hiện đối tượng 2D gồm 54.446 hình ảnh lái xe tự hành thuộc 8 lớp — 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. Bộ dữ liệu được dùng để huấn luyện 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ự lái, ADAS và giám sát giao thông.

  • Bộ dữ liệu Argoverse-HD có 8 lớp (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 hình ảnh đã gán nhãn — 39.384 hình ảnh dùng cho huấn luyện và 15.062 hình ảnh dùng cho validation — cùng một tập kiểm thử chưa gán nhãn dành riêng cho thử thách eval.ai.

  • Trong Ultralytics, đây là bộ dữ liệu phát hiện đối tượng 2D (các khung hình camera Argoverse-HD với BBox 2D), không phải bộ công cụ nghiên cứu theo dõi 3D, dự báo chuyển động hay LiDAR thuộc chương trình Argoverse rộng hơn. Bạn huấn luyện bộ dữ liệu này bằng model phát hiện tiêu chuẩn như yolo26n.pt.

  • Trước tiên, hãy tải bộ dữ liệu xuống theo cách thủ công (xem bên dưới), sau đó huấn luyện bằng tệp cấu hình Argoverse.yaml:

    Ví dụ
    from ultralytics import YOLO
    
    # Tải model
    model = YOLO("yolo26n.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)
    
    # Huấn luyện model
    results = model.train(data="Argoverse.yaml", epochs=100, imgsz=640)

    Để biết giải thích chi tiết về các đối số, tham khảo trang Huấn luyện model.

  • Tệp *.zip của Argoverse-HD (~31.5 GB), trước đây được lưu trữ trên Amazon S3, hiện có thể 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 tệp lưu trữ và giải nén vào thư mục Argoverse trong thư mục bộ dữ liệu trước khi chạy lệnh huấn luyện.

  • Có. Ultralytics Platform cho phép bạn tải lên và quản lý phiên bản các bộ dữ liệu lớn như Argoverse-HD, sau đó huấn luyện và triển khai model phát hiện đối tượng trên cloud mà không cần thiết lập môi trường cục bộ phức tạp. Bạn cũng có thể duyệt các bộ dữ liệu liên quan trong tổng quan về bộ dữ liệu phát hiện.

Bình luận