Kurumsal kullanıma hazır güvenlik: ISO 27001 + SOC 2 Tip I uyumlu.
No license

Link to this sectionVisDrone Veri Kümesi#

VisDrone Dataset, algılama alt kümesi (VisDrone2019-DET) nesne algılama için 10 nesne sınıfıyla etiketlenmiş 8.629 hava görüntüsü (6.471 eğitim, 548 doğrulama ve 1.610 test-dev) sunan büyük ölçekli bir drone görüntüleme kıyaslama aracıdır. Çin, Tianjin Üniversitesi, Makine Öğrenimi ve Veri Madenciliği Laboratuvarı'ndaki AISKYEYE ekibi tarafından oluşturulmuştur.



Watch: How to Train Ultralytics YOLO on the VisDrone Dataset | Aerial Detection | Complete Tutorial 🚀

Tam VisDrone kıyaslama aracı, Çin genelindeki 14 farklı şehirde drone kameralarıyla çekilmiş 288 video klibi (261.908 kare) ve 10.209 sabit görüntüden oluşur; kentsel ve kırsal ortamları, seyrek ve kalabalık sahneleri ve çeşitli hava ve ışık koşullarını kapsar. Kareleri, sahne görünürlüğü, nesne sınıfı ve tıkanıklık gibi ekstra özniteliklerle birlikte 2,6 milyondan fazla manuel olarak etiketlenmiş sınırlayıcı kutu içerir. Ultralytics VisDrone.yaml yapılandırması, bu kıyaslama aracının VisDrone2019-DET sabit görüntü alt kümesini kullanır.

Link to this sectionTemel Özellikler#

  • Küçük, yoğun nesneler: Hava perspektifleri hedefleri minik ve kalabalık hale getirir; sadece 548 doğrulama görüntüsü, görüntü başına ortalama 70 nesne olmak üzere 38.759 etiketli kutu içerir.
  • Sahne çeşitliliği: Kentsel ve kırsal konumları, gündüz ve geceyi ve farklı hava koşullarını kapsayan 14 Çin şehrinden görüntüler.
  • Zengin açıklamalar: Tıkanıklık ve görünürlük öznitelikleriyle birlikte tüm kıyaslama aracında 2,6 milyondan fazla kutu.
  • Önceden tanımlanmış bölümler: Tutarlı değerlendirme için sabit eğitim / doğrulama / test-dev bölümleri (6.471 / 548 / 1.610 görüntü).

Link to this sectionVeri Kümesi Yapısı#

Ultralytics VisDrone yapılandırması, üç bölüme ayrılmış VisDrone2019-DET görüntü alt kümesini kapsar:

BölümGörüntülerAçıklama
Eğit (Train)6.471Dedektörü eğitmek için kullanılan etiketli hava görüntüleri
Doğrulama548Geliştirme sırasında değerlendirme için kullanılan görüntüler
Test-dev1.610Eğitilmiş modelin nihai değerlendirmesi için ayrılmış görseller

Dördüncü bir bölüm olan test-challenge (1.580 görüntü), VisDrone yarışması için saklı tutulur ve indirilmez, bu nedenle tam DET seti toplamda 10.209 görüntü içerir.

Veri seti 10 nesne sınıfını etiketler: yaya, insanlar, bisiklet, araba, van, kamyon, üç tekerlekli bisiklet, tenteli üç tekerlekli bisiklet, otobüs ve motor. VisDrone, yaya (ayakta duran veya yürüyen bir kişi) ile insanlar (başka herhangi bir pozisyondaki bir kişi) ayrımını yapar.

Otomatik YOLO dönüştürme

İlk kullanımda indirme betiği, orijinal VisDrone etiketlerini YOLO formatına dönüştürür ve (kullanılmayan "diğerleri" kategorisini de dışlayan) yoksayılması işaretlenmiş bölgeleri atlar.

Link to this sectionUygulamalar#

VisDrone'un yoğun sahneleri ve minik hedefleri, onu hava perspektifinden küçük nesne algılama için standart bir kıyaslama aracı haline getirir. Yaygın uygulamalar şunlardır:

  • İHA'lardan trafik izleme ve araç sayma
  • Kalabalık analizi ve kamu güvenliği gözetimi
  • Altyapı ve şantiye denetimi
  • Karışık sahnelerdeki küçük nesneleri algılama üzerine Bilgisayarlı görü araştırması

Diğer hava görüntüleme kıyaslama araçları için uydu odaklı xView veri seti veya yönlendirilmiş kutu DOTA-v2 veri seti kısmına bakabilirsin.

Link to this sectionVeri Kümesi YAML#

VisDrone.yaml dosyası, veri seti yapılandırmasını —veri seti yollarını, sınıf isimlerini ve otomatik indirme ve dönüştürme betiğini— tanımlar. Ultralytics deposunda https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml adresinde tutulmaktadır.

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 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
  from ultralytics.utils import ASSETS_URL, TQDM

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

      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 = [
      f"{ASSETS_URL}/VisDrone2019-DET-train.zip",
      f"{ASSETS_URL}/VisDrone2019-DET-val.zip",
      f"{ASSETS_URL}/VisDrone2019-DET-test-dev.zip",
      # f"{ASSETS_URL}/VisDrone2019-DET-test-challenge.zip",
  ]
  download(urls, dir=dir, 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

Link to this sectionKullanım#

~2 GB indirme

VisDrone, ilk eğitime başladığında otomatik olarak indirilir (toplamda yaklaşık 2 GB olan üç arşiv) ve ayıklama ve dönüştürme sırasında yaklaşık 4 GB boş disk alanına ihtiyaç duyar.

VisDrone veri kümesi üzerinde 640 görüntü boyutu ile 100 dönem (epoch) boyunca bir YOLO26n modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Kullanılabilir argümanların kapsamlı bir listesi için model Eğitim sayfasına bakabilirsin.

Eğitim Örneği
from ultralytics import YOLO

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

# Train the model - dataset will auto-download on first run
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)

Ek hava görüntülerini etiketlemek ve tarayıcında VisDrone eğitimlerini yönetmek için Ultralytics Platform'u kullanabilirsin.

Link to this sectionÖrnek Veriler ve Etiketler#

Aşağıdaki örnek tipik bir VisDrone sahnesini gösterir: yayaların ve araçların küçük, yoğun paketlenmiş hedefler olarak göründüğü ve birçoğunun kısmen birbirini kapattığı işlek bir yolun üzerindeki bir hava perspektifi.

VisDrone veri kümesi nesne algılamalı hava drone görüntüleri

Link to this sectionAlıntılar ve Teşekkür#

VisDrone veri kümesini araştırma veya geliştirme çalışmalarında kullanırsan, lütfen aşağıdaki makaleye atıfta bulun:

Alıntı
@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={2022},
  volume={44},
  number={11},
  pages={7380-7399},
  doi={10.1109/TPAMI.2021.3119563}}

VisDrone veri setini oluşturdukları ve sürdürdükleri için Çin, Tianjin Üniversitesi, Makine Öğrenimi ve Veri Madenciliği Laboratuvarı'ndaki AISKYEYE ekibine teşekkür ederiz. Daha fazla bilgi için VisDrone Veri Seti GitHub deposunu ziyaret et.

Link to this sectionSSS#

Link to this sectionVisDrone veri seti ne için kullanılır?#

VisDrone, nesnelerin küçük, yoğun ve yukarıdan görüldüğü drone ile çekilmiş görüntüler üzerinde dedektörleri eğitmek ve kıyaslamak için kullanılır. Hava perspektifleri, kalabalık sahneler ve çeşitli koşulların birleşimi, onu İHA tabanlı trafik izleme, kalabalık analizi ve küçük nesne algılama araştırmaları için standart bir test alanı haline getirir.

Link to this sectionVisDrone kaç görüntüye ve sınıfa sahiptir?#

Ultralytics VisDrone yapılandırması 8.629 görüntü içerir: 6.471 eğitim, 548 doğrulama ve 1.610 test (test-dev) için. Tüm bölümler aynı 10 sınıfı paylaşır: yaya, insanlar, bisiklet, araba, van, kamyon, üç tekerlekli bisiklet, tenteli üç tekerlekli bisiklet, otobüs ve motor. Tam döküm için Veri Seti Yapısı bölümüne bakabilirsin.

Link to this sectionVisDrone veri setini nasıl indirebilirim?#

VisDrone, data="VisDrone.yaml" ile ilk eğitimini başlattığında otomatik olarak indirilir; manuel bir işlem gerekmez. Betik, Ultralytics GitHub yayın varlıklarından üç arşiv (yaklaşık 2 GB) çeker ve etiketleri YOLO formatına dönüştürür. Yarışmanın saklı tutulan test-challenge bölümü dahil edilmemiştir.

Link to this sectionVisDrone veri setinde YOLO26 modelini nasıl eğitirim?#

VisDrone üzerinde 640 görüntü boyutunda 100 epoch boyunca bir YOLO26n modeli eğit:

Eğitim Örneği
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="VisDrone.yaml", epochs=100, imgsz=640)

Ayrıntılı yapılandırmalar için Eğitim sayfasına ve model eğitimi ipuçlarına bak.

Link to this sectionVisDrone nesne dedektörleri için neden zordur ve doğruluğu nasıl artırabilirim?#

VisDrone'daki nesneler kareye oranla çok küçüktür (genellikle sadece birkaç düzine piksel) ve yer seviyesindeki fotoğraflar üzerinde eğitilmiş dedektörleri zorlayan yoğun, ağır tıkanmış gruplar halinde görünürler. Daha yüksek çözünürlükte (örneğin daha küçük bir yığınla imgsz=1280) eğitim ve tahmin yapmak küçük hedefleri kurtarır ve SAHI döşemeli çıkarım, büyük görüntüleri dilimleyerek küçük nesnelerin her çıkarım penceresinde daha fazla yer kaplamasını sağlar.

Link to this sectionVisDrone-DET ile tam VisDrone kıyaslama aracı arasındaki fark nedir?#

Tam VisDrone kıyaslama aracı beş görevi kapsar: görüntülerde nesne algılama, videolarda nesne algılama, tek nesne takibi, çoklu nesne takibi ve kalabalık sayma; bunlar 288 video klibi ve 10.209 sabit görüntü boyunca uzanır. Ultralytics VisDrone.yaml yapılandırması sadece görüntü algılama görevini (VisDrone2019-DET) kapsar ve 6.471 eğitim, 548 doğrulama ve 1.610 test-dev görüntüsünü indirir.

Link to this sectionAraştırmamda VisDrone'u nasıl kaynak gösterebilirim?#

"Detection and Tracking Meet Drones Challenge" başlıklı makaleyi (IEEE TPAMI, cilt 44, no. 11, 2022, DOI 10.1109/TPAMI.2021.3119563) kaynak göster; tam BibTeX girişi yukarıdaki Alıntılar ve Teşekkür bölümündedir.

Yorumlar