Meet YOLO26: next-gen vision AI.

Link to this sectionJeu de données VisDrone#

Le jeu de données VisDrone est un benchmark à grande échelle créé par l'équipe AISKYEYE du laboratoire de Machine Learning et Data Mining 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.



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

VisDrone est composé de 288 clips vidéo totalisant 261 908 images et 10 209 images statiques, capturées par diverses caméras embarquées sur des drones. Le jeu de données couvre un large éventail d'aspects, incluant la localisation (14 villes différentes à travers la Chine), l'environnement (urbain et rural), les objets (piétons, véhicules, vélos, etc.) et la densité (scènes clairsemées et foules). Le jeu de données a été collecté à l'aide de diverses plateformes de drones dans des scénarios, des conditions météorologiques et des situations d'éclairage variés. 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 comme la visibilité de la scène, la classe de l'objet et l'occlusion sont également fournis pour une meilleure utilisation des données.

Link to this sectionStructure du jeu de données#

Le jeu de données VisDrone est organisé en cinq sous-ensembles principaux, chacun se concentrant sur une tâche spécifique :

  1. Tâche 1 : Détection d'objets dans les images
  2. Tâche 2 : Détection d'objets dans les vidéos
  3. Tâche 3 : Suivi d'objet unique
  4. Tâche 4 : Suivi multi-objets
  5. Tâche 5 : Comptage de foule

Link to this sectionApplications#

Le jeu de données VisDrone est largement utilisé pour entraîner et évaluer des modèles de deep learning dans des tâches de vision par ordinateur par drone telles que la détection d'objets, le suivi d'objets et le comptage de foule. L'ensemble diversifié de données de capteurs, d'annotations d'objets et d'attributs du jeu de données en fait une ressource précieuse pour les chercheurs et les praticiens dans le domaine de la vision par ordinateur par drone.

Link to this sectionYAML du jeu de données#

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 du 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 maintenu à 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
  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 sectionUtilisation#

Pour entraîner un modèle YOLO26n sur le jeu de données VisDrone pendant 100 epochs avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, consulte la page Entraînement du modèle.

Exemple d'entraînement
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)

Link to this sectionExemples de données et d'annotations#

Le jeu de données VisDrone contient un ensemble diversifié d'images et de vidéos capturées par des caméras embarquées sur des drones. Voici quelques exemples de données issues du jeu de données, accompagnés de leurs annotations correspondantes :

Imagerie aérienne par drone du jeu de données VisDrone avec détection d'objets

  • Tâche 1 : Détection d'objets dans les images - Cette image illustre un exemple de détection d'objets dans les images, où les objets sont annotés avec des boîtes englobantes. Le jeu de données fournit une grande variété d'images prises dans différents lieux, environnements et densités pour faciliter le développement de modèles pour cette tâche.

Cet exemple met en évidence la variété et la complexité des données du jeu de données VisDrone et souligne l'importance de données de capteurs de haute qualité pour les tâches de vision par ordinateur par drone.

Link to this sectionCitations et remerciements#

Si tu utilises le jeu de données VisDrone dans tes travaux de recherche ou de développement, merci de citer l'article suivant :

Citation
@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 de Machine Learning et Data Mining de l'université de Tianjin, en Chine, pour la création et la maintenance du jeu de données VisDrone en tant que ressource précieuse pour la communauté de recherche en vision par ordinateur par drone. Pour plus d'informations sur le jeu de données VisDrone et ses créateurs, visite le dépôt GitHub du jeu de données VisDrone.

Link to this sectionFAQ#

Link to this sectionQu'est-ce que le jeu de données VisDrone et quelles sont ses principales caractéristiques ?#

Le jeu 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 caractéristiques principales incluent :

  • 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 des piétons, des voitures, des vélos et des tricycles.
  • Diversité : Collecté dans 14 villes, dans des environnements urbains et ruraux, sous des conditions météorologiques et d'éclairage différentes.
  • Tâches : Divisé en cinq tâches principales : détection d'objets dans les images et les vidéos, suivi d'objet unique et suivi multi-objets, et comptage de foule.

Link to this sectionComment puis-je utiliser le jeu de données VisDrone pour entraîner un modèle YOLO26 avec Ultralytics ?#

Pour entraîner un modèle YOLO26 sur le jeu de données VisDrone pendant 100 epochs avec une taille d'image de 640, tu peux suivre ces étapes :

Exemple d'entraînement
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)

Pour des options de configuration supplémentaires, merci de consulter la page Entraînement du modèle.

Link to this sectionQuels sont les principaux sous-ensembles du jeu de données VisDrone et leurs applications ?#

Le jeu de données VisDrone est divisé en cinq sous-ensembles principaux, chacun adapté à une tâche de vision par ordinateur spécifique :

  1. Tâche 1 : Détection d'objets dans les images.
  2. Tâche 2 : Détection d'objets dans les vidéos.
  3. Tâche 3 : Suivi d'objet unique.
  4. Tâche 4 : Suivi multi-objets.
  5. Tâche 5 : Comptage de foule.

Ces sous-ensembles sont largement utilisés pour entraîner et évaluer des modèles de deep learning dans des applications par drone telles que la surveillance, la gestion du trafic et la sécurité publique.

Link to this sectionOù 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, se trouve dans le dépôt Ultralytics au lien suivant : VisDrone.yaml.

Link to this sectionComment puis-je citer le jeu de données VisDrone si je l'utilise dans mes recherches ?#

Si tu utilises le jeu de données VisDrone dans tes travaux de recherche ou de développement, merci de citer l'article suivant :

Citation
@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}
}

Commentaires