Ultralytics YOLOv5
Présentation
YOLOv5u représente une avancée dans les méthodologies de détection d'objets. Issu de l'architecture fondamentale du modèle YOLOv5 développé par Ultralytics, YOLOv5u intègre une tête divisée sans ancres et sans objectivité (anchor-free, objectness-free), une fonctionnalité précédemment introduite dans les modèles YOLOv8. Cette adaptation affine l'architecture du modèle, conduisant à un meilleur compromis précision-vitesse dans les tâches de détection d'objets. Compte tenu des résultats empiriques et de ses caractéristiques dérivées, YOLOv5u constitue une alternative efficace pour ceux qui recherchent des solutions robustes, tant dans la recherche que dans les applications pratiques.

Ultralytics propose une variante sans ancres du modèle YOLOv5. Les modèles entraînés avec le dépôt YOLOv5 original ne peuvent pas être utilisés avec la bibliothèque Ultralytics.
Explore et exécute les modèles YOLOv5 directement sur la plateforme Ultralytics.
Fonctionnalités clés
-
Tête Ultralytics divisée sans ancres : Les modèles de détection d'objets traditionnels reposent sur des boîtes d'ancrage prédéfinies pour prédire l'emplacement des objets. Cependant, YOLOv5u modernise cette approche. En adoptant une tête Ultralytics divisée sans ancres, il garantit un mécanisme de détection plus flexible et adaptatif, améliorant ainsi les performances dans divers scénarios.
-
Compromis précision-vitesse optimisé : La vitesse et la précision tirent souvent dans des directions opposées. Mais YOLOv5u remet en question ce compromis. Il offre un équilibre calibré, garantissant des détections en temps réel sans compromettre la précision. Cette fonctionnalité est particulièrement précieuse pour les applications exigeant des réponses rapides, telles que les véhicules autonomes, la robotique et l'analyse vidéo en temps réel.
-
Variété de modèles pré-entraînés : Comprenant que différentes tâches nécessitent des jeux d'outils différents, YOLOv5u fournit une pléthore de modèles pré-entraînés. Que tu te concentres sur l'inférence, la validation ou l'entraînement, un modèle sur mesure t'attend. Cette variété garantit que tu n'utilises pas simplement une solution universelle, mais un modèle spécifiquement affiné pour ton défi unique.
Tâches et modes pris en charge
Les modèles YOLOv5u, avec divers poids pré-entraînés, excellent dans les tâches de détection d'objets. Ils prennent en charge une gamme complète de modes, ce qui les rend adaptés à diverses applications, du développement au déploiement.
| Type de modèle | Poids pré-entraînés | Tâche | Inférence | Validation | Entraînement | Exportation |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
Ce tableau fournit un aperçu détaillé des variantes du modèle YOLOv5u, soulignant leur applicabilité dans les tâches de détection d'objets et la prise en charge de divers modes opérationnels tels que l'Inférence, la Validation, l'Entraînement et l' Exportation. Cette prise en charge complète garantit que tu puisses exploiter pleinement les capacités des modèles YOLOv5u dans un large éventail de scénarios de détection d'objets.
Mesures de performance
Consulte les Docs de détection pour des exemples d'utilisation avec ces modèles entraînés sur COCO, qui incluent 80 classes pré-entraînées.
| Modèle | YAML | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse A100 TensorRT (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
| yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
| yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
| yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
| yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
| yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
Exemples d'utilisation
Cet exemple fournit des exemples simples d'entraînement et d'inférence avec YOLOv5. Pour la documentation complète sur ces modes et d'autres modes, consulte les pages de documentation Inférence, Entraînement, Validation et Exportation.
PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Citations et remerciements
Ultralytics n'a pas publié de document de recherche formel pour YOLOv5 en raison de la nature évolutive des modèles. Nous nous concentrons sur l'avancement de la technologie et sur la facilitation de son utilisation, plutôt que sur la production d'une documentation statique. Pour obtenir les informations les plus récentes sur l'architecture, les fonctionnalités et l'utilisation de YOLO, veuillez te référer à notre dépôt GitHub et à notre documentation.
Si tu utilises YOLOv5 ou YOLOv5u dans tes recherches, merci de citer le dépôt Ultralytics YOLOv5 comme suit :
@software{yolov5,
title = {Ultralytics YOLOv5},
author = {Glenn Jocher},
year = {2020},
version = {7.0},
license = {AGPL-3.0},
url = {https://github.com/ultralytics/yolov5},
doi = {10.5281/zenodo.3908559},
orcid = {0000-0001-5950-6979}
}Veuillez noter que les modèles YOLOv5 sont fournis sous licence AGPL-3.0 et Enterprise.
FAQ
Qu'est-ce qu'Ultralytics YOLOv5u et en quoi diffère-t-il de YOLOv5 ?
Ultralytics YOLOv5u est une version avancée de YOLOv5, intégrant la tête divisée sans ancres et sans objectivité qui améliore le compromis précision-vitesse pour les tâches de détection d'objets en temps réel. Contrairement au YOLOv5 traditionnel, YOLOv5u adopte un mécanisme de détection sans ancres, le rendant plus flexible et adaptatif dans divers scénarios. Pour plus d'informations détaillées sur ses fonctionnalités, tu peux te référer à l'Aperçu de YOLOv5.
Comment la tête Ultralytics sans ancres améliore-t-elle les performances de détection d'objets dans YOLOv5u ?
La tête Ultralytics sans ancres dans YOLOv5u améliore les performances de détection d'objets en éliminant la dépendance aux boîtes d'ancrage prédéfinies. Cela aboutit à un mécanisme de détection plus flexible et adaptatif capable de gérer diverses tailles et formes d'objets avec une plus grande efficacité. Cette amélioration contribue directement à un compromis équilibré entre précision et vitesse, rendant YOLOv5u adapté aux applications en temps réel. Apprends-en davantage sur son architecture dans la section Fonctionnalités clés.
Puis-je utiliser des modèles YOLOv5u pré-entraînés pour différentes tâches et modes ?
Oui, tu peux utiliser des modèles YOLOv5u pré-entraînés pour diverses tâches telles que la Détection d'objets. Ces modèles prennent en charge plusieurs modes, y compris l'Inférence, la Validation, l'Entraînement et l'Exportation. Cette flexibilité permet aux utilisateurs d'exploiter les capacités des modèles YOLOv5u pour différentes exigences opérationnelles. Pour un aperçu détaillé, consulte la section Tâches et modes pris en charge.
Comment les mesures de performance des modèles YOLOv5u se comparent-elles sur différentes plates-formes ?
Les mesures de performance des modèles YOLOv5u varient en fonction de la plate-forme et du matériel utilisés. Par exemple, le modèle YOLOv5nu atteint un mAP de 34.3 sur le jeu de données COCO avec une vitesse de 73.6 ms sur CPU (ONNX) et 1.06 ms sur A100 TensorRT. Des mesures de performance détaillées pour différents modèles YOLOv5u peuvent être trouvées dans la section Mesures de performance, qui fournit une comparaison complète entre divers appareils.
Comment puis-je entraîner un modèle YOLOv5u en utilisant l'API Python d'Ultralytics ?
Tu peux entraîner un modèle YOLOv5u en chargeant un modèle pré-entraîné et en exécutant la commande d'entraînement avec ton jeu de données. Voici un exemple rapide :
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Pour des instructions plus détaillées, visite la section Exemples d'utilisation.