İçeriğe geç

VisDrone Veri Kümesi

VisDrone Veri Kümesi, Çin'deki Tianjin Üniversitesi'ndeki Makine Öğrenimi ve Veri Madenciliği Laboratuvarı'ndaki AISKYEYE ekibi tarafından oluşturulan büyük ölçekli bir kıyaslama standardıdır. Drone tabanlı görüntü ve video analizi ile ilgili çeşitli bilgisayar görüşü görevleri için dikkatlice açıklanmış temel doğruluk verileri içerir.



İzle: Drone Görüntü Analizi için VisDrone Veri Kümesinde Ultralytics YOLO Modelleri Nasıl Eğitilir

VisDrone, çeşitli drone'a monte edilmiş kameralar tarafından çekilen 261.908 kare ve 10.209 statik görüntü içeren 288 video klibinden oluşmaktadır. Veri kümesi, konum (Çin genelinde 14 farklı şehir), çevre (kentsel ve kırsal), nesneler (yayalar, araçlar, bisikletler, vb.) ve yoğunluk (seyrek ve kalabalık sahneler) dahil olmak üzere çok çeşitli yönleri kapsar. Veri kümesi, farklı senaryolar ve hava ve aydınlatma koşulları altında çeşitli drone platformları kullanılarak toplanmıştır. Bu kareler, yayalar, arabalar, bisikletler ve üç tekerlekli bisikletler gibi hedeflerin 2,6 milyondan fazla sınırlayıcı kutusu ile manuel olarak açıklanmıştır. Daha iyi veri kullanımı için sahne görünürlüğü, nesne sınıfı ve tıkanma gibi özellikler de sağlanmaktadır.

Veri Seti Yapısı

VisDrone veri kümesi, her biri belirli bir göreve odaklanan beş ana alt kümeye ayrılmıştır:

  1. Görev 1: Görüntülerde nesne algılama
  2. Görev 2: Videolarda nesne algılama
  3. Görev 3: Tek nesne takibi
  4. Görev 4: Çoklu nesne takibi
  5. Görev 5: Kalabalık sayımı

Uygulamalar

VisDrone veri kümesi, nesne algılama, nesne takibi ve kalabalık sayımı gibi drone tabanlı bilgisayarla görme görevlerinde derin öğrenme modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılmaktadır. Veri kümesinin çeşitli sensör verileri, nesne açıklamaları ve nitelikleri, onu drone tabanlı bilgisayarla görme alanındaki araştırmacılar ve uygulayıcılar için değerli bir kaynak haline getirmektedir.

Veri Seti YAML

Bir YAML (Yet Another Markup Language) dosyası, veri kümesi yapılandırmasını tanımlamak için kullanılır. Veri kümesinin yolları, sınıfları ve diğer ilgili bilgileri hakkında bilgiler içerir. Visdrone veri kümesi örneğinde, VisDrone.yaml dosyası şu adreste tutulur: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml.

ultralytics/cfg/datasets/VisDrone.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
# Documentation: https://docs.ultralytics.com/datasets/detect/visdrone/
# Example usage: yolo train data=VisDrone.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── VisDrone ← downloads here (2.3 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: VisDrone # dataset root dir
train: images/train # train images (relative to 'path') 6471 images
val: images/val # val images (relative to 'path') 548 images
test: images/test # test-dev images (optional) 1610 images

# Classes
names:
  0: pedestrian
  1: people
  2: bicycle
  3: car
  4: van
  5: truck
  6: tricycle
  7: awning-tricycle
  8: bus
  9: motor

# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
  import os
  from pathlib import Path
  import shutil

  from ultralytics.utils.downloads import download


  def visdrone2yolo(dir, split, source_name=None):
      """Convert VisDrone annotations to YOLO format with images/{split} and labels/{split} structure."""
      from PIL import Image
      from tqdm import tqdm

      source_dir = dir / (source_name or f"VisDrone2019-DET-{split}")
      images_dir = dir / "images" / split
      labels_dir = dir / "labels" / split
      labels_dir.mkdir(parents=True, exist_ok=True)

      # Move images to new structure
      if (source_images_dir := source_dir / "images").exists():
          images_dir.mkdir(parents=True, exist_ok=True)
          for img in source_images_dir.glob("*.jpg"):
              img.rename(images_dir / img.name)

      for f in tqdm((source_dir / "annotations").glob("*.txt"), desc=f"Converting {split}"):
          img_size = Image.open(images_dir / f.with_suffix(".jpg").name).size
          dw, dh = 1.0 / img_size[0], 1.0 / img_size[1]
          lines = []

          with open(f, encoding="utf-8") as file:
              for row in [x.split(",") for x in file.read().strip().splitlines()]:
                  if row[4] != "0":  # Skip ignored regions
                      x, y, w, h = map(int, row[:4])
                      cls = int(row[5]) - 1
                      # Convert to YOLO format
                      x_center, y_center = (x + w / 2) * dw, (y + h / 2) * dh
                      w_norm, h_norm = w * dw, h * dh
                      lines.append(f"{cls} {x_center:.6f} {y_center:.6f} {w_norm:.6f} {h_norm:.6f}\n")

          (labels_dir / f.name).write_text("".join(lines), encoding="utf-8")


  # Download (ignores test-challenge split)
  dir = Path(yaml["path"])  # dataset root dir
  urls = [
      "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip",
      "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip",
      "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip",
      # "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip",
  ]
  download(urls, dir=dir, curl=True, threads=4)

  # Convert
  splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
  for folder, split in splits.items():
      visdrone2yolo(dir, split, folder)  # convert VisDrone annotations to YOLO labels
      shutil.rmtree(dir / folder)  # cleanup original directory

Kullanım

640 görüntü boyutuyla 100 epoch için VisDrone veri kümesinde bir YOLO11n modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Mevcut argümanların kapsamlı bir listesi için model Eğitim sayfasına bakın.

Eğitim Örneği

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=VisDrone.yaml model=yolo11n.pt epochs=100 imgsz=640

Örnek Veri ve Açıklamalar

VisDrone veri kümesi, drone'a monte edilmiş kameralar tarafından çekilen çeşitli görüntü ve videolar içerir. İşte veri kümesinden bazı veri örnekleri ve bunlara karşılık gelen açıklamaları:

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

  • Görev 1: Görüntülerde nesne algılama - Bu görüntü, nesnelerin sınırlayıcı kutularla işaretlendiği görüntülerde nesne algılamanın bir örneğini göstermektedir. Veri seti, bu görev için modellerin geliştirilmesini kolaylaştırmak amacıyla farklı konumlardan, ortamlardan ve yoğunluklardan alınmış çok çeşitli görüntüler sunar.

Örnek, VisDrone veri setindeki verilerin çeşitliliğini ve karmaşıklığını sergilemekte ve drone tabanlı bilgisayar görüşü görevleri için yüksek kaliteli sensör verilerinin önemini vurgulamaktadır.

Alıntılar ve Teşekkürler

Araştırma veya geliştirme çalışmalarınızda VisDrone veri kümesini kullanıyorsanız, lütfen aşağıdaki makaleye atıfta bulunun:

@ARTICLE{9573394,
  author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Detection and Tracking Meet Drones Challenge},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3119563}}

Çin, Tianjin Üniversitesi, Makine Öğrenimi ve Veri Madenciliği Laboratuvarı'ndaki AISKYEYE ekibine, drone tabanlı bilgisayarla görü araştırma topluluğu için değerli bir kaynak olarak VisDrone veri kümesini oluşturdukları ve sürdürdükleri için teşekkür etmek isteriz. VisDrone veri kümesi ve yaratıcıları hakkında daha fazla bilgi için VisDrone Veri Kümesi GitHub deposunu ziyaret edin.

SSS

VisDrone Veri Seti nedir ve temel özellikleri nelerdir?

VisDrone Veri Kümesi, Çin'deki Tianjin Üniversitesi'ndeki AISKYEYE ekibi tarafından oluşturulan büyük ölçekli bir kıyaslama standardıdır. Drone tabanlı görüntü ve video analizi ile ilgili çeşitli bilgisayar görüşü görevleri için tasarlanmıştır. Temel özellikler şunlardır:

  • Kompozisyon: 261.908 kare ve 10.209 statik görüntü içeren 288 video klip.
  • Açıklamalar: Yayalar, arabalar, bisikletler ve üç tekerlekli bisikletler gibi nesneler için 2,6 milyondan fazla sınırlayıcı kutu.
  • Çeşitlilik: 14 şehirde, kentsel ve kırsal ortamlarda, farklı hava ve ışık koşullarında toplanmıştır.
  • Görevler: Beş ana göreve ayrılmıştır: Görüntülerde ve videolarda nesne tespiti, tek ve çoklu nesne takibi ve kalabalık sayımı.

Ultralytics ile bir YOLO11 modelini eğitmek için VisDrone Veri Kümesini nasıl kullanabilirim?

VisDrone veri kümesi üzerinde 640 görüntü boyutuyla 100 epok için bir YOLO11 modeli eğitmek için şu adımları izleyebilirsiniz:

Eğitim Örneği

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n.pt")

# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=VisDrone.yaml model=yolo11n.pt epochs=100 imgsz=640

Ek yapılandırma seçenekleri için lütfen model Eğitim sayfasına bakın.

VisDrone veri kümesinin ana alt kümeleri ve uygulamaları nelerdir?

VisDrone veri kümesi, her biri belirli bir bilgisayarla görme görevi için uyarlanmış beş ana alt kümeye ayrılmıştır:

  1. Görev 1: Görüntülerde nesne algılama.
  2. Görev 2: Videolarda nesne tespiti.
  3. Görev 3: Tek nesne takibi.
  4. Görev 4: Çoklu nesne takibi.
  5. Görev 5: Kalabalık sayımı.

Bu alt kümeler, gözetim, trafik izleme ve kamu güvenliği gibi drone tabanlı uygulamalarda derin öğrenme modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılmaktadır.

Ultralytics'te VisDrone veri kümesi için yapılandırma dosyasını nerede bulabilirim?

VisDrone veri kümesi için yapılandırma dosyası, VisDrone.yaml, aşağıdaki bağlantıdaki Ultralytics deposunda bulunabilir: VisDrone.yaml.

Araştırmamda kullanırsam VisDrone veri kümesine nasıl atıfta bulunabilirim?

Araştırma veya geliştirme çalışmalarınızda VisDrone veri kümesini kullanıyorsanız, lütfen aşağıdaki makaleye atıfta bulunun:

@ARTICLE{9573394,
  author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Detection and Tracking Meet Drones Challenge},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3119563}
}


📅 1 yıl önce oluşturuldu ✏️ 4 ay önce güncellendi

Yorumlar