Jeu de données Roboflow 100#
Roboflow 100, sponsorisé par Intel, est un jeu de données de référence novateur pour la détection d’objets. Il comprend 100 jeux de données variés. Ce benchmark est spécialement conçu pour tester l’adaptabilité des modèles de vision par ordinateur, comme les modèles Ultralytics YOLO, à divers domaines, notamment la santé, l’imagerie aérienne et les jeux vidéo.
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.
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.
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 une ressource précieuse pour diverses applications liées à la vision par ordinateur et au deep learning. Les chercheurs et les ingénieurs peuvent exploiter ce benchmark pour :
- Évaluer les performances de modèles de détection d’objets dans un contexte multidomaine.
- Tester l’adaptabilité et la robustesse des modèles dans des scénarios du monde réel, au-delà des jeux de données de référence courants comme COCO ou PASCAL VOC.
- Évaluer les capacités de modèles de détection d’objets sur divers jeux de données, y compris dans des domaines spécialisés comme la santé, l’imagerie aérienne et les jeux vidéo.
- Comparer les performances des modèles selon différentes architectures de réseaux neuronaux et techniques d’optimisation.
- Repérer les difficultés propres à chaque domaine, qui peuvent nécessiter des conseils spécialisés sur l’entraînement des modèles ou des approches d’ajustement fin comme l’apprentissage par transfert.
Pour trouver d’autres idées et sources d’inspiration sur les applications du monde réel, découvre nos guides de projets pratiques ou consulte Ultralytics Platform pour simplifier l’entraînement des modèles et leur déploiement.
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. Tu peux accéder directement au jeu de données depuis ce dépôt et l’utiliser pour tes évaluations comparatives. Une fois les jeux de données téléchargés et préparés comme indiqué ci-dessus, tu peux ajuster finement les modèles Ultralytics sur toute la collection en un seul appel model.train(), en passant 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.
La diversité du benchmark Roboflow 100 représente une avancée notable par rapport aux benchmarks traditionnels, qui visent souvent à optimiser une seule métrique dans un domaine restreint. Cette approche globale contribue au développement de modèles de vision par ordinateur plus robustes et polyvalents, capables d’obtenir de bons résultats dans une multitude de scénarios différents.
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 :
@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.
Si tu souhaites découvrir d’autres jeux de données pour enrichir tes projets de détection d’objets et d’apprentissage automatique, consulte notre collection complète de jeux de données, qui comprend divers autres jeux de données de détection.
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 présentent des défis uniques pour les modèles de détection d’objets :
- Aérien : 7 jeux de données (par exemple, images satellites, vues prises par drone).
- Jeux vidéo : 7 jeux de données (par exemple, objets issus de différents environnements de jeu).
- Microscopique : 11 jeux de données (par exemple, cellules, particules).
- Sous-marin : 5 jeux de données (par exemple, vie marine, objets immergés).
- Documents : 8 jeux de données (par exemple, zones de texte, éléments de formulaire).
- Électromagnétique : 12 jeux de données (par exemple, signatures radar, visualisations de données spectrales).
- 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} }Pour approfondir, consulte notre collection complète de jeux de données ou découvre d’autres jeux de données de détection compatibles avec les modèles Ultralytics.