VisDrone Veri Seti
VisDrone Veri Seti, Çin'deki Tianjin Üniversitesi Makine Öğrenmesi ve Veri Madenciliği Laboratuvarı'ndaki AISKYEYE ekibi tarafından oluşturulan geniş ölçekli bir karşılaştırma setidir. Drone tabanlı görüntü ve video analizine yönelik çeşitli bilgisayarlı görü görevleri için dikkatle etiketlenmiş temel doğruluk (ground truth) verilerini içerir.
Watch: How to Train Ultralytics YOLO26 on the VisDrone Dataset | Aerial Detection | Complete Tutorial 🚀
VisDrone, çeşitli drone kameralarıyla çekilmiş 261.908 karelik 288 video klibinden ve 10.209 statik görüntüden oluşur. Veri seti; konum (Çin genelinde 14 farklı şehir), ortam (kentsel ve kırsal), nesneler (yayalar, araçlar, bisikletler vb.) ve yoğunluk (seyrek ve kalabalık sahneler) gibi çok çeşitli yönleri kapsar. Veri seti, farklı senaryolarda, hava ve ışık koşullarında çeşitli drone platformları kullanılarak toplanmıştır. Bu kareler, yayalar, arabalar, bisikletler ve üç tekerlekli bisikletler gibi hedeflere ait 2,6 milyondan fazla sınırlayıcı kutu (bounding box) ile manuel olarak etiketlenmiştir. Daha iyi veri kullanımı için sahne görünürlüğü, nesne sınıfı ve tıkanıklık gibi nitelikler de sağlanmıştır.
Veri Kümesi Yapısı
VisDrone veri seti, her biri belirli bir göreve odaklanan beş ana alt kümeye ayrılmıştır:
- Görev 1: Görüntülerde nesne algılama
- Görev 2: Videolarda nesne algılama
- Görev 3: Tek nesne takibi
- Görev 4: Çoklu nesne takibi
- Görev 5: Kalabalık sayımı
Uygulamalar
VisDrone veri seti, nesne algılama, nesne takibi ve kalabalık sayımı gibi drone tabanlı bilgisayarlı görü görevlerinde derin öğrenme modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılır. Veri setinin çeşitli sensör verileri, nesne etiketleri ve nitelikleri, drone tabanlı bilgisayarlı görü alanındaki araştırmacılar ve uygulayıcılar için onu değerli bir kaynak haline getirir.
Veri Kümesi YAML Dosyası
Veri seti yapılandırmasını tanımlamak için bir YAML (Yet Another Markup Language) dosyası kullanılır. Bu dosya, veri setinin yolları, sınıfları ve diğer ilgili bilgiler hakkında veriler içerir. VisDrone veri seti durumunda, VisDrone.yaml dosyası https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml adresinde tutulmaktadır.
# 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
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 veri setinde 640 görüntü boyutuyla 100 epoch boyunca bir YOLO26n modeli eğitmek için aşağıdaki kod parçacıklarını kullanabilirsin. Mevcut argümanların kapsamlı bir listesi için Eğitim sayfası modeline başvur.
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)Örnek Veriler ve Açıklamalar
VisDrone veri seti, drone kameralarıyla çekilmiş çok çeşitli görüntü ve videolar içerir. İşte veri setinden bazı örnekler ve bunlara karşılık gelen etiketler:

- Görev 1: Görüntülerde nesne algılama - Bu görüntü, nesnelerin sınırlayıcı kutularla etiketlendiği, görüntülerde nesne algılama ö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ınan çok çeşitli görüntüler sağlar.
Bu örnek, VisDrone veri setindeki verilerin çeşitliliğini ve karmaşıklığını sergilerken, drone tabanlı bilgisayarlı görü görevleri için yüksek kaliteli sensör verilerinin önemini vurgular.
Alıntılar ve Teşekkür
VisDrone veri setini 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={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3119563}}VisDrone veri setini drone tabanlı bilgisayarlı görü araştırma topluluğu için değerli bir kaynak olarak oluşturdukları ve sürdürdükleri için Çin, Tianjin Üniversitesi, Makine Öğrenmesi ve Veri Madenciliği Laboratuvarı'ndaki AISKYEYE ekibine teşekkür ederiz. VisDrone veri seti ve yaratıcıları hakkında daha fazla bilgi için VisDrone Veri Seti GitHub deposunu ziyaret et.
SSS
VisDrone Veri Seti nedir ve temel özellikleri nelerdir?
VisDrone Veri Seti, Çin'in Tianjin Üniversitesi'ndeki AISKYEYE ekibi tarafından oluşturulan geniş ölçekli bir karşılaştırma setidir. Drone tabanlı görüntü ve video analizine ilişkin çeşitli bilgisayarlı görü görevleri için tasarlanmıştır. Temel özellikleri şunlardır:
- Yapı: 261.908 karelik 288 video klibi ve 10.209 statik görüntü.
- Etiketler: Yayalar, arabalar, bisikletler ve üç tekerlekli bisikletler gibi nesneler için 2,6 milyondan fazla sınırlayıcı kutu.
- Çeşitlilik: 14 şehir genelinde, kentsel ve kırsal ortamlarda, farklı hava ve ışık koşullarında toplanmıştır.
- Görevler: Görüntü ve videolarda nesne algılama, tek ve çoklu nesne takibi ve kalabalık sayımı olmak üzere beş ana göreve ayrılmıştır.
VisDrone Veri Seti'ni kullanarak Ultralytics ile nasıl YOLO26 modeli eğitebilirim?
VisDrone veri setinde 640 görüntü boyutuyla 100 epoch boyunca bir YOLO26 modeli eğitmek için şu adımları takip edebilirsin:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)Ek yapılandırma seçenekleri için lütfen model Eğitim sayfasına başvur.
VisDrone veri setinin ana alt kümeleri nelerdir ve uygulamaları nelerdir?
VisDrone veri seti, her biri belirli bir bilgisayarlı görü görevine uyarlanmış beş ana alt kümeye ayrılmıştır:
- Görev 1: Görüntülerde nesne algılama.
- Görev 2: Videolarda nesne algılama.
- Görev 3: Tek nesne takibi.
- Görev 4: Çoklu nesne takibi.
- Görev 5: Kalabalık sayımı.
Bu alt kümeler, gözetleme, 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ılır.
VisDrone veri seti için yapılandırma dosyasını Ultralytics içinde nerede bulabilirim?
VisDrone veri seti için yapılandırma dosyası olan VisDrone.yaml, Ultralytics deposunda şu bağlantıda bulunabilir:
VisDrone.yaml.
Araştırmamda kullanırsam VisDrone veri setine nasıl atıfta bulunabilirim?
VisDrone veri setini 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={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3119563}
}