Bỏ để qua phần nội dung

Tập dữ liệu Argoverse

Bộ dữ liệu Argoverse là một tập hợp dữ liệu được thiết kế để hỗ trợ nghiên cứu các tác vụ lái xe tự động, chẳng hạn như theo dõi 3D, dự báo chuyển động và ước tính độ sâu âm thanh nổi. Được phát triển bởi Argo AI, bộ dữ liệu cung cấp một loạt dữ liệu cảm biến chất lượng cao, bao gồm hình ảnh có độ phân giải cao, đám mây điểm LiDAR và dữ liệu bản đồ.

Ghi

Tập dữ liệu Argoverse *.zip tệp cần thiết cho đào tạo đã bị xóa khỏi Amazon S3 sau khi Ford tắt Argo AI, nhưng chúng tôi đã cung cấp tệp này để tải xuống thủ công trên Google Lái xe.

Các tính năng chính

  • Argoverse chứa hơn 290K bản nhạc đối tượng 3D được gắn nhãn và 5 triệu phiên bản đối tượng trên 1.263 cảnh riêng biệt.
  • Bộ dữ liệu bao gồm hình ảnh camera có độ phân giải cao, đám mây điểm LiDAR và bản đồ HD được chú thích phong phú.
  • Chú thích bao gồm các hộp giới hạn 3D cho các đối tượng, đường đi đối tượng và thông tin quỹ đạo.
  • Argoverse cung cấp nhiều tập hợp con cho các tác vụ khác nhau, chẳng hạn như theo dõi 3D, dự báo chuyển động và ước tính độ sâu âm thanh nổi.

Cấu trúc tập dữ liệu

Tập dữ liệu Argoverse được tổ chức thành ba tập hợp con chính:

  1. Theo dõi Argoverse 3D: Tập hợp con này chứa 113 cảnh với hơn 290K bản nhạc đối tượng 3D được gắn nhãn, tập trung vào các tác vụ theo dõi đối tượng 3D. Nó bao gồm các đám mây điểm LiDAR, hình ảnh máy ảnh và thông tin hiệu chuẩn cảm biến.
  2. Dự báo chuyển động Argoverse: Tập hợp con này bao gồm 324K quỹ đạo xe được thu thập từ 60 giờ dữ liệu lái xe, phù hợp với các nhiệm vụ dự báo chuyển động.
  3. Ước tính độ sâu âm thanh nổi Argoverse: Tập hợp con này được thiết kế cho các nhiệm vụ ước tính độ sâu âm thanh nổi và bao gồm hơn 10K cặp hình ảnh âm thanh nổi với các đám mây điểm LiDAR tương ứng để ước tính độ sâu sự thật mặt đất.

Ứng dụng

Bộ dữ liệu Argoverse được sử dụng rộng rãi để đào tạo và đánh giá các mô hình học sâu trong các tác vụ lái xe tự động như theo dõi đối tượng 3D, dự báo chuyển động và ước tính độ sâu âm thanh nổi. Bộ dữ liệu cảm biến, chú thích đối tượng và thông tin bản đồ đa dạng của bộ dữ liệu làm cho nó trở thành một nguồn tài nguyên quý giá cho các nhà nghiên cứu và các học viên trong lĩnh vực lái xe tự động.

Tập dữ liệu YAML

Tệp YAML (Yet Another Markup Language) được sử dụng để xác định cấu hình tập dữ liệu. Nó chứa thông tin về đường dẫn, lớp và thông tin liên quan khác của tập dữ liệu. Đối với trường hợp của tập dữ liệu Argoverse, Argoverse.yaml Tệp được duy trì tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Argoverse.yaml.

ultralytics/cfg/datasets/Argoverse.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 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: ../datasets/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 tqdm import tqdm
  from ultralytics.utils.downloads import download
  from pathlib import Path

  def argoverse2yolo(set):
      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") 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

Sử dụng

Để đào tạo một YOLOv8n mô hình trên tập dữ liệu Argoverse cho 100 kỷ nguyên với kích thước hình ảnh là 640, bạn có thể sử dụng các đoạn mã sau. Để biết danh sách đầy đủ các đối số có sẵn, hãy tham khảo trang Đào tạo mẫu.

Ví dụ về tàu hỏa

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.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=yolov8n.pt epochs=100 imgsz=640

Dữ liệu mẫu và chú thích

Bộ dữ liệu Argoverse chứa một bộ dữ liệu cảm biến đa dạng, bao gồm hình ảnh camera, đám mây điểm LiDAR và thông tin bản đồ HD, cung cấp ngữ cảnh phong phú cho các tác vụ lái xe tự động. Dưới đây là một số ví dụ về dữ liệu từ tập dữ liệu, cùng với các chú thích tương ứng của chúng:

Hình ảnh mẫu tập dữ liệu

  • Theo dõi 3D Argoverse: Hình ảnh này minh họa một ví dụ về theo dõi đối tượng 3D, trong đó các đối tượng được chú thích bằng các hộp giới hạn 3D. Bộ dữ liệu cung cấp các đám mây điểm LiDAR và hình ảnh camera để tạo điều kiện phát triển các mô hình cho nhiệm vụ này.

Ví dụ này cho thấy sự đa dạng và phức tạp của dữ liệu trong tập dữ liệu Argoverse và nhấn mạnh tầm quan trọng của dữ liệu cảm biến chất lượng cao đối với các tác vụ lái xe tự động.

Trích dẫn và xác nhận

Nếu bạn sử dụng tập dữ liệu Argoverse trong công việc nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn bài báo sau:

@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 muốn ghi nhận Argo AI đã tạo và duy trì bộ dữ liệu Argoverse như một nguồn tài nguyên quý giá cho cộng đồng nghiên cứu lái xe tự trị. Để biết thêm thông tin về tập dữ liệu Argoverse và những người tạo ra nó, hãy truy cập trang web tập dữ liệu Argoverse.



Đã tạo 2023-11-12, Cập nhật 2024-01-14
Tác giả: glenn-jocher (4), Laughing-q (1)

Ý kiến