İçeriğe geç

Argoverse Veri Kümesi

Argoverse veri seti, 3D izleme, hareket tahmini ve stereo derinlik tahmini gibi otonom sürüş görevlerindeki araştırmaları desteklemek için tasarlanmış bir veri koleksiyonudur. Argo AI tarafından geliştirilen veri seti, yüksek çözünürlüklü görüntüler, LiDAR nokta bulutları ve harita verileri de dahil olmak üzere çok çeşitli yüksek kaliteli sensör verileri sağlar.

Not

Argoverse veri seti *.zip Eğitim için gerekli dosya Argo AI'nin Ford tarafından kapatılmasından sonra Amazon S3'ten kaldırıldı, ancak dosyayı şu adresten manuel olarak indirilebilir hale getirdik Google Drive.

Temel Özellikler

  • Argoverse, 1.263 farklı sahnede 290 binden fazla etiketli 3B nesne izi ve 5 milyon nesne örneği içerir.
  • Veri setinde yüksek çözünürlüklü kamera görüntüleri, LiDAR nokta bulutları ve zengin açıklamalı HD haritalar bulunmaktadır.
  • Ek açıklamalar nesneler için 3B sınırlayıcı kutular, nesne izleri ve yörünge bilgilerini içerir.
  • Argoverse, 3D izleme, hareket tahmini ve stereo derinlik tahmini gibi farklı görevler için birden fazla alt küme sağlar.

Veri Kümesi Yapısı

Argoverse veri kümesi üç ana alt küme halinde düzenlenmiştir:

  1. Argoverse 3D İzleme: Bu alt küme, 3D nesne izleme görevlerine odaklanan 290 binden fazla etiketli 3D nesne izine sahip 113 sahne içerir. LiDAR nokta bulutlarını, kamera görüntülerini ve sensör kalibrasyon bilgilerini içerir.
  2. Argoverse Hareket Tahmini: Bu alt küme, hareket tahmini görevleri için uygun olan 60 saatlik sürüş verilerinden toplanan 324 bin araç yörüngesinden oluşur.
  3. Argoverse Stereo Derinlik Tahmini: Bu alt küme stereo derinlik tahmini görevleri için tasarlanmıştır ve zemin gerçeği derinlik tahmini için karşılık gelen LiDAR nokta bulutları ile 10.000'den fazla stereo görüntü çifti içerir.

Uygulamalar

Argoverse veri kümesi, 3B nesne izleme, hareket tahmini ve stereo derinlik tahmini gibi otonom sürüş görevlerinde derin öğrenme modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılmaktadır. Veri setinin çeşitli sensör verileri, nesne açıklamaları ve harita bilgileri, onu otonom sürüş alanındaki araştırmacılar ve uygulayıcılar için değerli bir kaynak haline getirmektedir.

Veri Kümesi YAML

Veri kümesi yapılandırmasını tanımlamak için bir YAML (Yet Another Markup Language) dosyası kullanılır. Veri kümesinin yolları, sınıfları ve diğer ilgili bilgiler hakkında bilgiler içerir. Argoverse veri kümesi için Argoverse.yaml dosyası şu adreste tutulur 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

Kullanım

Argoverse veri kümesi üzerinde 640 görüntü boyutuyla 100 epok için bir YOLOv8n modelini eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Kullanılabilir bağımsız değişkenlerin kapsamlı bir listesi için Model Eğitimi sayfasına bakın.

Tren Örneği

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

Örnek Veriler ve Açıklamalar

Argoverse veri kümesi, kamera görüntüleri, LiDAR nokta bulutları ve HD harita bilgileri de dahil olmak üzere çeşitli sensör verileri içerir ve otonom sürüş görevleri için zengin bir bağlam sağlar. İşte veri kümesinden bazı veri örnekleri ve bunlara karşılık gelen ek açıklamalar:

Veri kümesi örnek görüntüsü

  • Argoverse 3D İzleme: Bu görüntü, nesnelerin 3B sınırlayıcı kutularla açıklandığı bir 3B nesne izleme örneğini göstermektedir. Veri seti, bu görev için modellerin geliştirilmesini kolaylaştırmak üzere LiDAR nokta bulutları ve kamera görüntüleri sağlamaktadır.

Bu örnek Argoverse veri setindeki verilerin çeşitliliğini ve karmaşıklığını ortaya koymakta ve otonom sürüş görevleri için yüksek kaliteli sensör verilerinin önemini vurgulamaktadır.

Atıflar ve Teşekkür

Argoverse veri setini araştırma veya geliştirme çalışmalarınızda kullanırsanız, lütfen aşağıdaki makaleye atıfta bulunun:

@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}
}

Otonom sürüş araştırma topluluğu için değerli bir kaynak olarak Argoverse veri setini oluşturduğu ve sürdürdüğü için Argo AI'ye teşekkür ederiz. Argoverse veri seti ve yaratıcıları hakkında daha fazla bilgi için Argoverse veri seti web sitesini ziyaret edin.



Oluşturuldu 2023-11-12, Güncellendi 2024-01-14
Yazarlar: glenn-jocher (4), Laughing-q (1)

Yorumlar