Ultralytics YOLO27 : Rejoins la liste d’attente.
Get Started

Jeu de données Roboflow 100#

Roboflow 100 (RF100), soutenu par Intel, est une référence de détection d’objets composée de 100 jeux de données variés. Elle vise à évaluer la capacité des modèles de vision par ordinateur, comme les modèles Ultralytics YOLO, à s’adapter à divers domaines, notamment la santé, l’imagerie aérienne et les jeux vidéo.

Roboflow 100 diverse object detection benchmark

Fonctionnalités clés#

  • Diversité des domaines : comprend 100 jeux de données couvrant sept domaines distincts : aérien, jeux vidéo, microscopique, sous-marin, documents, électromagnétique et monde réel.
  • Échelle : le benchmark comprend 224 714 images réparties sur 805 classes, représentant plus de 11 170 heures de travail d’annotation de données.
  • Standardisation : toutes les images sont prétraitées et redimensionnées à 640x640 pixels pour garantir une évaluation cohérente.
  • Évaluation rigoureuse : vise à éliminer l’ambiguïté des classes et exclut les classes sous-représentées afin d’obtenir une évaluation des modèles plus fiable.
  • Annotations : comprend des boîtes englobantes pour les objets, adaptées à l’entraînement et à l’évaluation des modèles de détection d’objets à l’aide de métriques comme le mAP.

Structure du jeu de données#

Le jeu de données Roboflow 100 est organisé en sept catégories, chacune comprenant une collection unique de jeux de données, d’images et de classes :

  • Aérien : 7 jeux de données, 9 683 images, 24 classes.
  • Jeux vidéo : 7 jeux de données, 11 579 images, 88 classes.
  • Microscopique : 11 jeux de données, 13 378 images, 28 classes.
  • Sous-marin : 5 jeux de données, 18 003 images, 39 classes.
  • Documents : 8 jeux de données, 24 813 images, 90 classes.
  • Électromagnétique : 12 jeux de données, 36 381 images, 41 classes.
  • Monde réel : 50 jeux de données, 110 615 images, 495 classes.

Cette structure offre un terrain d’essai varié et étendu pour les modèles de détection d’objets, qui reflète un large éventail de scénarios d’application du monde réel présents dans diverses solutions Ultralytics.

Évaluation comparative#

L’évaluation comparative d’un jeu de données consiste à évaluer les performances de modèles d’apprentissage automatique sur des jeux de données spécifiques à l’aide de métriques normalisées. Les métriques courantes comprennent l’exactitude, la précision moyenne (mAP) et le score F1. Pour en savoir plus, consulte notre guide des métriques de performance YOLO.

Résultats de l’évaluation comparative

Tous les résultats sont regroupés dans un seul répertoire runs/<task>/multitrain/ : chaque jeu de données fait l’objet d’un ajustement fin dans son propre sous-répertoire (avec son propre results.png), et les métriques par jeu de données et moyennes sont enregistrées dans multitrain_results.json, avec un graphique à barres multitrain_results.png. L’appel model.train() renvoie également un dictionnaire {dataset: metrics} pour un accès programmatique.

Exemple d’évaluation comparative

Le script ci-dessous télécharge depuis Roboflow les jeux de données Roboflow 100 répertoriés dans datasets_links.txt, puis ajuste finement un seul modèle de base (par exemple, YOLO26n) sur l’ensemble de la collection en un seul appel model.train(). En passant une liste de jeux de données, le modèle de base est ajusté finement sur chacun d’eux successivement, et les résultats entre jeux de données sont visualisés automatiquement.

import re
from pathlib import Path

from roboflow import Roboflow

from ultralytics import YOLO
from ultralytics.utils import ASSETS_URL, LOGGER, YAML
from ultralytics.utils.downloads import safe_download

# Download the RF100 datasets (requires a Roboflow API key)
rf = Roboflow(api_key="YOUR_ROBOFLOW_API_KEY")
safe_download(f"{ASSETS_URL}/datasets_links.txt")  # list of RF100 dataset links

datasets = []
for line in Path("datasets_links.txt").read_text().splitlines():
    try:
        _, _url, workspace, project, version = re.split("/+", line.strip())
        location = f"rf-100/{project}-{version}"
        rf.workspace(workspace).project(project).version(version).download("yolov8", location=location)
        yaml = Path(location) / "data.yaml"
        cfg = YAML.load(yaml)  # point train/val at the downloaded image folders
        cfg["train"], cfg["val"] = "train/images", "valid/images"
        YAML.save(yaml, cfg)
        datasets.append(str(yaml))
    except Exception as e:
        LOGGER.warning(f"Failed to prepare dataset from {line!r}: {e}")

# Fine-tune one base model across all RF100 datasets and visualize the cross-dataset results
model = YOLO("yolo26n.pt")
results = model.train(data=datasets, epochs=100, imgsz=640)  # {dataset: metrics}

# Per-dataset runs, multitrain_results.json (per-dataset + mean), and multitrain_results.png are saved
# together under runs/detect/multitrain. Read results in-memory or from the JSON for custom post-processing.
for dataset, metrics in results.items():
    if metrics:  # None if that dataset failed to train
        print(f"{dataset}: mAP50-95 = {metrics['metrics/mAP50-95(B)']:.4f}")

Applications#

Roboflow 100 est utile pour de nombreux travaux en vision par ordinateur et en deep learning. Les chercheurs et les ingénieurs peuvent utiliser cette référence pour :

Utilisation#

Le jeu de données Roboflow 100, y compris ses métadonnées et ses liens de téléchargement, est disponible dans le dépôt GitHub officiel de Roboflow 100. Une fois les jeux de données téléchargés et préparés comme indiqué ci-dessus, les modèles Ultralytics peuvent être affinés sur l’ensemble de la collection en un seul appel model.train(), en lui transmettant la liste des fichiers YAML des jeux de données.

Données et annotations d’exemple#

Roboflow 100 regroupe des jeux de données contenant des images variées, prises sous différents angles et dans divers domaines. Tu trouveras ci-dessous des exemples d’images annotées incluses dans le benchmark RF100, qui illustrent la variété des objets et des scènes. Des techniques comme l’augmentation des données peuvent encore accroître la diversité pendant l’entraînement.

Roboflow 100 sample images with annotations

Contrairement aux références traditionnelles, qui visent souvent à optimiser une seule métrique dans un domaine restreint, Roboflow 100 couvre de nombreux domaines. Cette diversité aide à développer des modèles de vision par ordinateur plus robustes, capables de bien fonctionner dans des situations très variées.

Citations et remerciements#

Si tu utilises le jeu de données Roboflow 100 dans le cadre de tes recherches ou de tes travaux de développement, cite l’article original :

Citation
@misc{rf100benchmark,
    Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
    Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
    Year = {2022},
    Eprint = {arXiv:2211.13523},
    url = {https://arxiv.org/abs/2211.13523}
}

Nous remercions chaleureusement l’équipe Roboflow et tous les contributeurs pour leurs efforts considérables dans la création et la maintenance du jeu de données Roboflow 100, une ressource précieuse pour la communauté de la vision par ordinateur.

FAQ#

  • Le jeu de données Roboflow 100 est un benchmark pour les modèles de détection d’objets. Il comprend 100 jeux de données variés couvrant des domaines comme la santé, l’imagerie aérienne et les jeux vidéo. Il est important, car il fournit un moyen normalisé de tester l’adaptabilité et la robustesse des modèles dans un large éventail de scénarios du monde réel, au-delà des benchmarks traditionnels souvent limités à un domaine.

  • Le jeu de données Roboflow 100 couvre sept domaines variés, qui posent des défis uniques aux modèles de détection d’objets :

    1. Aérien : 7 jeux de données (par exemple, images satellites, vues prises par drone).
    2. Jeux vidéo : 7 jeux de données (par exemple, objets issus de différents environnements de jeu).
    3. Microscopique : 11 jeux de données (par exemple, cellules, particules).
    4. Sous-marin : 5 jeux de données (par exemple, vie marine, objets immergés).
    5. Documents : 8 jeux de données (par exemple, zones de texte, éléments de formulaire).
    6. Électromagnétique : 12 jeux de données (par exemple, signatures radar, visualisations de données spectrales).
    7. Monde réel : 50 jeux de données (une vaste catégorie qui inclut les objets du quotidien, les scènes, le commerce de détail, etc.).

    Cette variété fait de RF100 une excellente ressource pour évaluer la capacité de généralisation des modèles de vision par ordinateur.

  • Lorsque tu utilises le jeu de données Roboflow 100, cite l’article original pour créditer ses créateurs. Voici la citation BibTeX recommandée :

    Citation
    @misc{rf100benchmark,
        Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
        Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
        Year = {2022},
        Eprint = {arXiv:2211.13523},
        url = {https://arxiv.org/abs/2211.13523}
    }

Commentaires2

  1. mariem158GitHub

    les étapes pour télécharger ce dataset roboflow100 pour détection aerienne ?

    1. Glenn JocherUltralytics(modifié)

      @mariem158 bonjour!

      Pour télécharger et utiliser le dataset Roboflow 100 pour la détection aérienne, suivez ces étapes :

      1. Accédez à Roboflow Universe:

      2. Téléchargez le Dataset:

        • Cliquez sur le dataset aérien de votre choix.
        • Utilisez le bouton "Export" pour télécharger les annotations et les images dans le format souhaité (par exemple, COCO, YOLO).
      3. Utilisez le Dataset avec Ultralytics YOLO:

        • Assurez-vous d'avoir les dernières versions de torch et ultralytics installées.
        • Voici un exemple de code pour entraîner un modèle YOLO26 avec un dataset aérien téléchargé :
        from ultralytics import YOLO
        
        # Charger le modèle YOLO26
        model = YOLO('yolo26n.pt')
        
        # Entraîner le modèle avec le dataset aérien
        model.train(data='path/to/aerial_dataset.yaml', epochs=100, imgsz=640)
      4. Benchmarking:

        • Vous pouvez également utiliser le script de benchmarking fourni dans la documentation pour évaluer les performances de votre modèle sur différents datasets du Roboflow 100.

      Pour plus de détails, consultez la documentation complète sur le dataset Roboflow 100 ici.

      N'hésitez pas à revenir si vous avez d'autres questions ! 😊

      Cordialement, L'équipe Ultralytics