Jeu de données VisDrone
L'ensemble de données VisDrone est un benchmark à grande échelle créé par l'équipe AISKYEYE du laboratoire d'apprentissage automatique et d'exploration de données de l'université de Tianjin, en Chine. Il contient des données de vérité terrain soigneusement annotées pour diverses tâches de vision par ordinateur liées à l'analyse d'images et de vidéos par drone.
Regarder : Comment entraîner les modèles Ultralytics YOLO sur l'ensemble de données VisDrone pour l'analyse d'images de drones
VisDrone est composé de 288 clips vidéo avec 261 908 images et 10 209 images statiques, capturées par diverses caméras montées sur des drones. L'ensemble de données couvre un large éventail d'aspects, notamment la localisation (14 villes différentes en Chine), l'environnement (urbain et rural), les objets (piétons, véhicules, bicyclettes, etc.) et la densité (scènes clairsemées et bondées). L'ensemble des données a été collecté à l'aide de diverses plateformes de drones dans différents scénarios et conditions météorologiques et d'éclairage. Ces images sont annotées manuellement avec plus de 2,6 millions de boîtes englobantes de cibles telles que des piétons, des voitures, des vélos et des tricycles. Des attributs tels que la visibilité de la scène, la classe d'objet et l'occlusion sont également fournis pour une meilleure utilisation des données.
Structure de l'ensemble de données
L'ensemble de données VisDrone est organisé en cinq sous-ensembles principaux, chacun se concentrant sur une tâche spécifique :
- Tâche 1: Détection d'objets dans les images
- Tâche 2: détection d'objets dans les vidéos
- Tâche 3: suivi d'un seul objet
- Tâche 4: suivi de plusieurs objets
- Tâche 5: comptage des foules
Applications
L'ensemble de données VisDrone est largement utilisé pour la formation et l'évaluation de modèles d'apprentissage profond dans les tâches de vision par ordinateur basées sur les drones, telles que la détection d'objets, le suivi d'objets et le comptage de foules. L'ensemble diversifié de données de capteurs, d'annotations d'objets et d'attributs fait de ce jeu de données une ressource précieuse pour les chercheurs et les praticiens dans le domaine de la vision par ordinateur basée sur les drones.
Jeu de données YAML
Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins d'accès au jeu de données, les classes et d'autres informations pertinentes. Dans le cas du jeu de données Visdrone, le fichier VisDrone.yaml
est conservé à l'adresse suivante https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml.
ultralytics/cfg/datasets/VisDrone.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 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: ../datasets/VisDrone # dataset root dir
train: VisDrone2019-DET-train/images # train images (relative to 'path') 6471 images
val: VisDrone2019-DET-val/images # val images (relative to 'path') 548 images
test: VisDrone2019-DET-test-dev/images # test 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
from ultralytics.utils.downloads import download
def visdrone2yolo(dir):
from PIL import Image
from tqdm import tqdm
def convert_box(size, box):
# Convert VisDrone box to YOLO xywh box
dw = 1. / size[0]
dh = 1. / size[1]
return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh
(dir / 'labels').mkdir(parents=True, exist_ok=True) # make labels directory
pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
for f in pbar:
img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
lines = []
with open(f, 'r') as file: # read annotation.txt
for row in [x.split(',') for x in file.read().strip().splitlines()]:
if row[4] == '0': # VisDrone 'ignored regions' class 0
continue
cls = int(row[5]) - 1
box = convert_box(img_size, tuple(map(int, row[:4])))
lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
with open(str(f).replace(f'{os.sep}annotations{os.sep}', f'{os.sep}labels{os.sep}'), 'w') as fl:
fl.writelines(lines) # write label.txt
# Download
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
for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
visdrone2yolo(dir / d) # convert VisDrone annotations to YOLO labels
Utilisation
Pour entraîner un modèle YOLO11n sur le jeu de données VisDrone pour 100 époques avec une taille d'image de 640, vous pouvez utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, reportez-vous à la page Entraînement du modèle.
Exemple de train
Exemples de données et d'annotations
Le jeu de données VisDrone contient un ensemble varié d'images et de vidéos capturées par des caméras montées sur des drones. Voici quelques exemples de données issues de ce jeu de données, ainsi que les annotations correspondantes :
- Tâche 1: Détection d'objets dans les images - Cette image montre un exemple de détection d'objets dans les images, où les objets sont annotés avec des boîtes de délimitation. L'ensemble de données fournit une grande variété d'images prises dans des lieux, des environnements et des densités différents afin de faciliter le développement de modèles pour cette tâche.
Cet exemple illustre la variété et la complexité des données contenues dans le jeu de données VisDrone et souligne l'importance de disposer de données de capteurs de haute qualité pour les tâches de vision par ordinateur basées sur les drones.
Citations et remerciements
Si vous utilisez le jeu de données VisDrone dans vos travaux de recherche ou de développement, veuillez citer l'article suivant :
@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}}
Nous tenons à remercier l'équipe AISKYEYE du laboratoire d'apprentissage automatique et d'exploration des données de l'université de Tianjin, en Chine, pour avoir créé et maintenu le jeu de données VisDrone, qui constitue une ressource précieuse pour la communauté des chercheurs en vision par ordinateur basée sur les drones. Pour plus d'informations sur le jeu de données VisDrone et ses créateurs, visitez le dépôt GitHub du jeu de données VisDrone.
FAQ
Qu'est-ce que le jeu de données VisDrone et quelles sont ses principales caractéristiques ?
L'ensemble de données VisDrone est un benchmark à grande échelle créé par l'équipe AISKYEYE de l'université de Tianjin, en Chine. Il est conçu pour diverses tâches de vision par ordinateur liées à l'analyse d'images et de vidéos par drone. Ses principales caractéristiques sont les suivantes
- Composition: 288 clips vidéo avec 261 908 images et 10 209 images statiques.
- Annotations: Plus de 2,6 millions de boîtes englobantes pour des objets tels que les piétons, les voitures, les bicyclettes et les tricycles.
- Diversité: Les données ont été recueillies dans 14 villes, dans des environnements urbains et ruraux, dans des conditions météorologiques et d'éclairage différentes.
- Tâches: Elles sont divisées en cinq tâches principales : détection d'objets dans les images et les vidéos, suivi d'un objet unique et de plusieurs objets, et comptage de foules.
Comment puis-je utiliser le Dataset VisDrone pour entraîner un modèle YOLO11 avec Ultralytics?
Pour entraîner un modèle YOLO11 sur l'ensemble de données VisDrone pour 100 époques avec une taille d'image de 640, vous pouvez suivre les étapes suivantes :
Exemple de train
Pour d'autres options de configuration, veuillez vous référer à la page de formation du modèle.
Quels sont les principaux sous-ensembles du jeu de données VisDrone et leurs applications ?
L'ensemble de données VisDrone est divisé en cinq sous-ensembles principaux, chacun étant adapté à une tâche de vision par ordinateur spécifique :
- Tâche 1: Détection d'objets dans les images.
- Tâche 2: détection d'objets dans les vidéos.
- Tâche 3: suivi d'un seul objet.
- Tâche 4: suivi de plusieurs objets.
- Tâche 5: comptage des foules.
Ces sous-ensembles sont largement utilisés pour la formation et l'évaluation des modèles d'apprentissage profond dans les applications basées sur les drones, telles que la surveillance, le contrôle du trafic et la sécurité publique.
Où puis-je trouver le fichier de configuration pour le jeu de données VisDrone dans Ultralytics?
Le fichier de configuration pour le jeu de données VisDrone, VisDrone.yaml
est disponible sur le site Ultralytics au lien suivant :
VisDrone.yaml.
Comment puis-je citer le jeu de données VisDrone si je l'utilise dans ma recherche ?
Si vous utilisez le jeu de données VisDrone dans vos travaux de recherche ou de développement, veuillez citer l'article suivant :
@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}
}