Tập dữ liệu Argoverse
Tập dữ liệu Argoverse là 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 stereo. Được phát triển bởi Argo AI, tập dữ liệu này cung cấp nhiều loại dữ liệu cảm biến chất lượng cao, bao gồm hình ảnh độ phân giải cao, đám mây điểm LiDAR và dữ liệu bản đồ.
Tệp *.zip của tập dữ liệu Argoverse cần thiết cho việc huấn luyện đã bị xóa khỏi Amazon S3 sau khi Ford đóng cửa 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 Drive.
Các tính năng chính
- Argoverse chứa hơn 290 nghìn track đối tượng 3D được gán nhãn và 5 triệu instance đối tượng trên 1.263 phân cảnh khác nhau.
- Tập dữ liệu bao gồm hình ảnh camera độ phân giải cao, đám mây điểm LiDAR và các bản đồ HD được chú thích phong phú.
- Các chú thích bao gồm khung bao (bounding box) 3D cho các đối tượng, track đối tượng và thông tin quỹ đạo.
- Argoverse cung cấp nhiều tập con cho các tác vụ khác nhau, như theo dõi 3D, dự báo chuyển động và ước tính độ sâu stereo.
Cấu trúc tập dữ liệu
Tập dữ liệu Argoverse được tổ chức thành ba tập con chính:
- Argoverse 3D Tracking: Tập con này chứa 113 phân cảnh với hơn 290 nghìn track đố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 đám mây điểm LiDAR, hình ảnh camera và thông tin hiệu chuẩn cảm biến.
- Argoverse Motion Forecasting: Tập con này bao gồm 324 nghìn quỹ đạo phương tiện được thu thập từ 60 giờ dữ liệu lái xe, phù hợp cho các tác vụ dự báo chuyển động.
- Argoverse Stereo Depth Estimation: Tập con này được thiết kế cho các tác vụ ước tính độ sâu stereo và bao gồm hơn 10 nghìn cặp hình ảnh stereo với các đám mây điểm LiDAR tương ứng cho việc ước tính độ sâu thực tế (ground truth).
Ứng dụng
Tập dữ liệu Argoverse được sử dụng rộng rãi để huấn luyện và đánh giá các model deep learning 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 stereo. Tập hợp đa dạng các dữ liệu cảm biến, chú thích đối tượng và thông tin bản đồ của tập dữ liệu này biến nó thành một nguồn tài nguyên quý giá cho các nhà nghiên cứu và thực hành trong lĩnh vực lái xe tự động.
Dataset YAML
Tệp YAML (Yet Another Markup Language) được sử dụng để định nghĩa cấu hình tập dữ liệu. Nó chứa thông tin về các đường dẫn, lớp (class) và các thông tin liên quan khác của tập dữ liệu. Đối với tập 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 🚀 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.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 labelsCách sử dụng
Để huấn luyện model YOLO26n trên tập dữ liệu Argoverse trong 100 epoch với kích thước ảnh là 640, bạn có thể sử dụng các đoạn code sau. Để xem danh sách đầy đủ các đối số khả dụng, hãy tham khảo trang Huấn luyện model.
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)Dữ liệu mẫu và Chú thích
Tập dữ liệu Argoverse chứa một tập hợp 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:
![]()
- Argoverse 3D Tracking: Hình ảnh này minh họa một ví dụ về theo dõi đối tượng 3D, nơi các đối tượng được chú thích bằng khung bao (bounding box) 3D. Tập dữ liệu cung cấp đám mây điểm LiDAR và hình ảnh camera để hỗ trợ phát triển các model cho tác 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à làm nổi bật tầm quan trọng của dữ liệu cảm biến chất lượng cao cho các tác vụ lái xe tự động.
Trích dẫn và Ghi nhận
Nếu bạn sử dụng tập dữ liệu Argoverse trong nghiên cứu hoặc công việc phát triển của mình, vui lòng trích dẫn bài báo sau đây:
@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 vì đã tạo và duy trì tập 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ự động. Để 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.
Câu hỏi thường gặp (FAQ)
Tập dữ liệu Argoverse là gì và các tính năng chính của nó là gì?
Tập dữ liệu Argoverse, được phát triển bởi Argo AI, hỗ trợ nghiên cứu lái xe tự động. Nó bao gồm hơn 290 nghìn track đối tượng 3D được gán nhãn và 5 triệu instance đối tượng trên 1.263 phân cảnh khác nhau. Tập dữ liệu cung cấp hình ảnh camera độ phân giải cao, đám mây điểm LiDAR và bản đồ HD được chú thích, giúp nó có giá trị cho các tác vụ như theo dõi 3D, dự báo chuyển động và ước tính độ sâu stereo.
Làm thế nào để tôi có thể huấn luyện một model Ultralytics YOLO bằng cách sử dụng tập dữ liệu Argoverse?
Để huấn luyện model YOLO26 với tập dữ liệu Argoverse, hãy sử dụng tệp cấu hình YAML được cung cấp và đoạn code sau:
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)Để có giải thích chi tiết về các đối số, hãy tham khảo trang Huấn luyện model.
Những loại dữ liệu và chú thích nào có sẵn trong tập dữ liệu Argoverse?
Tập dữ liệu Argoverse bao gồm các loại dữ liệu cảm biến khác nhau như hình ảnh camera độ phân giải cao, đám mây điểm LiDAR và dữ liệu bản đồ HD. Các chú thích bao gồm khung bao (bounding box) 3D, track đối tượng và thông tin quỹ đạo. Những chú thích toàn diện này rất cần thiết cho việc huấn luyện model chính xác trong các tác vụ như theo dõi đối tượng 3D, dự báo chuyển động và ước tính độ sâu stereo.
Tập dữ liệu Argoverse được cấu trúc như thế nào?
Tập dữ liệu được chia thành ba tập con chính:
- Argoverse 3D Tracking: Chứa 113 phân cảnh với hơn 290 nghìn track đố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 đám mây điểm LiDAR, hình ảnh camera và thông tin hiệu chuẩn cảm biến.
- Argoverse Motion Forecasting: Bao gồm 324 nghìn quỹ đạo phương tiện được thu thập từ 60 giờ dữ liệu lái xe, phù hợp cho các tác vụ dự báo chuyển động.
- Argoverse Stereo Depth Estimation: Bao gồm hơn 10 nghìn cặp hình ảnh stereo với các đám mây điểm LiDAR tương ứng cho việc ước tính độ sâu thực tế (ground truth).
Tôi có thể tải xuống tập dữ liệu Argoverse ở đâu bây giờ khi nó đã bị xóa khỏi Amazon S3?
Tệp *.zip của tập dữ liệu Argoverse, trước đây có sẵn trên Amazon S3, giờ đây có thể được tải xuống thủ công từ Google Drive.
Tệp cấu hình YAML được sử dụng để làm gì với tập dữ liệu Argoverse?
Tệp YAML chứa các đường dẫn, lớp (class) và các thông tin thiết yếu khác của tập dữ liệu. Đối với tập dữ liệu Argoverse, tệp cấu hình Argoverse.yaml có thể được tìm thấy tại liên kết sau: Argoverse.yaml.
Để biết thêm thông tin về các cấu hình YAML, hãy xem hướng dẫn tập dữ liệu của chúng tôi.