VisDrone Veri Kümesi#
VisDrone Dataset, object detection 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 algılama alt kümesine (VisDrone2019-DET) sahip büyük ölçekli bir drone görüntüsü kıyaslama testidir. Ç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 testi, kentsel ve kırsal ortamları, seyrek ve kalabalık sahneleri, çeşitli hava ve aydınlatma koşullarını kapsayan, Çin'deki 14 farklı şehirde drone üzerine monte edilmiş kameralarla çekilen 288 video klibi (261.908 kare) ve 10.209 statik görüntüden oluşur. Kareleri, sahnede görünürlük, nesne sınıfı ve tıkanma gibi ek özelliklerle birlikte 2,6 milyondan fazla elle açıklama eklenmiş bounding boxes taşır. Ultralytics VisDrone.yaml yapılandırması, bu kıyaslama testinin VisDrone2019-DET statik görüntü alt kümesini kullanır.
Temel Ö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ü).
Veri 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üm | Görüntüler | Açıklama |
|---|---|---|
| Eğit (Train) | 6,471 | Dedektörü eğitmek için kullanılan etiketli hava görüntüleri |
| Doğrulama | 548 | Geliştirme sırasında evaluation için kullanılan görüntüler |
| Test-dev | 1,610 | Eğ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.
İ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.
Uygulamalar#
VisDrone'un yoğun sahneleri ve küçük hedefleri, onu havadan bakış açılarından small-object detection için standart bir kıyaslama testi 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
- Karmaşık sahnelerdeki küçük nesneleri algılama üzerine Computer vision araştırması
Diğer havadan görüntü kıyaslama testleri için uydu odaklı xView dataset veya yönlendirilmiş kutu DOTA-v2 dataset sayfasına bakın.
Veri Kümesi YAML#
VisDrone.yaml dosyası veri kümesi yapılandırmasını tanımlar; veri kümesi yolları, sınıf adları ve otomatik indirme ve dönüştürme betiği. https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml adresindeki Ultralytics deposunda korunur.
# 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 directoryKullanım#
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.
Bir YOLO26n modelini VisDrone veri kümesinde 640 görüntü boyutuyla 100 epoch boyunca eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Mevcut argümanların kapsamlı bir listesi için model Training sayfasına göz at.
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 havadan görüntüleri etiketlemek ve tarayıcınızda VisDrone eğitim çalışmalarını yönetmek için Ultralytics Platform kullanın.
Ö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.

Alı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:
@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 kümesini oluşturdukları ve sürdürdükleri için Çin Tianjin Üniversitesi Makine Öğrenimi ve Data Mining Laboratuvarı'ndaki AISKYEYE ekibine teşekkür ederiz. Daha fazla bilgi için VisDrone Dataset GitHub repository adresini ziyaret edin.
SSS#
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.
Ultralytics VisDrone yapılandırması 8.629 görüntü içerir: 6.471 eğitim için, 548 doğrulama için ve 1.610 test (test-dev) için. Tüm ayrımlar aynı 10 sınıfı paylaşır: yaya, insanlar, bisiklet, araba, minibüs, kamyon, üç tekerlekli bisiklet, tenteli üç tekerlekli bisiklet, otobüs ve motosiklet. Tam döküm için Dataset Structure konusuna bakın.
data="VisDrone.yaml"ile ilk kez eğitim yaptığınızda VisDrone otomatik olarak indirilir; manuel adım gerekmez. Betik, Ultralytics GitHub sürüm varlıklarından üç arşiv (yaklaşık 2 GB) getirir ve ek açıklamaları YOLO formatına dönüştürür. Yarışmanın saklı tutulan test-meydan okuması ayrımı dahil değildir.VisDrone üzerinde 640 görüntü boyutunda 100 epoch boyunca bir YOLO26n modeli eğit:
Eğitim Örneğifrom 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ı bölümüne göz at.
VisDrone'daki nesneler kareye göre çok küçüktür — genellikle yalnızca birkaç düzine pikseldir — ve yer düzeyindeki fotoğraflarda ayarlanmış dedektörleri zorlayan yoğun, ağır tıkanmış gruplar halinde görünür. Daha yüksek çözünürlükte eğitim almak ve tahmin yapmak (örneğin daha küçük bir yığınla
imgsz=1280) küçük hedefleri kurtarır ve SAHI tiled inference büyük görüntüleri dilimleyerek küçük nesnelerin her çıkarma penceresinin daha fazlasını kaplamasını sağlar.Tam VisDrone kıyaslama testi beş görevi kapsar — görüntülerde nesne algılama, videolarda nesne algılama, tek nesne takibi, multi-object tracking ve kalabalık sayımı — 288 video klip ve 10.209 statik görüntü genelinde. Ultralytics
VisDrone.yamlyapılandırması yalnızca görüntü algılama görevini (VisDrone2019-DET) kapsar, 6.471 eğitim, 548 doğrulama ve 1.610 test-dev görüntüsünü indirir."Detection and Tracking Meet Drones Challenge" (IEEE TPAMI, cilt 44, no. 11, 2022, DOI 10.1109/TPAMI.2021.3119563) makalesini alıntılayın; tam BibTeX girdisi yukarıdaki Citations and Acknowledgments bölümündedir.



