Ultralytics YOLOv5#
Présentation#
YOLOv5u représente une avancée dans les méthodes de détection d’objets. Issue de l’architecture de base du modèle YOLOv5 développé par Ultralytics, YOLOv5u intègre une tête découplée sans ancres et sans objectness, une caractéristique introduite précédemment dans les modèles YOLOv8. Cette adaptation affine l’architecture du modèle et améliore le compromis entre précision et vitesse pour les tâches de détection d’objets. Au vu des résultats empiriques et des caractéristiques qui en découlent, YOLOv5u constitue une solution efficace pour celles et ceux qui recherchent des solutions robustes, tant pour la recherche que pour les applications pratiques.

Ultralytics propose une variante sans ancres du modèle YOLOv5. Les modèles entraînés avec le dépôt ultralytics/yolov5 ne peuvent pas être chargés avec la bibliothèque ultralytics/ultralytics. Pour utiliser YOLOv5 ici, entraîne un nouveau modèle à partir d’un point de contrôle Ultralytics YOLOv5u (par exemple, yolov5su.pt).
Découvre et exécute directement les modèles YOLOv5 sur la plateforme Ultralytics.
Fonctionnalités clés#
-
Tête Ultralytics découplée sans ancres : Les modèles traditionnels de détection d’objets s’appuient sur des boîtes d’ancrage prédéfinies pour prédire l’emplacement des objets. YOLOv5u modernise toutefois cette approche. En adoptant une tête Ultralytics découplée sans ancres, le modèle garantit un mécanisme de détection plus flexible et adaptatif, ce qui améliore ses performances dans divers scénarios.
-
Compromis précision-vitesse optimisé : Vitesse et précision sont souvent antagonistes. YOLOv5u remet toutefois ce compromis en question. Il offre un équilibre ajusté, permettant des détections en temps réel sans compromettre la précision. Cette caractéristique est particulièrement précieuse pour les applications qui exigent des réponses rapides, comme les véhicules autonomes, la robotique et l’analyse vidéo en temps réel.
-
Diversité de modèles préentraînés : Comme différentes tâches nécessitent différents outils, YOLOv5u propose une vaste gamme de modèles préentraînés. Que tu te concentres sur l’inférence, la validation ou l’entraînement, un modèle adapté à tes besoins t’attend. Cette variété te permet d’éviter les solutions universelles et d’utiliser un modèle spécifiquement ajusté à ton défi.
Tâches et modes pris en charge#
Les modèles YOLOv5u, avec leurs différents 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 | Entraînement | Validation | Inférence | Export |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
Ce tableau présente un aperçu détaillé des variantes du modèle YOLOv5u, en soulignant leur pertinence pour les tâches de détection d’objets et leur 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 permet aux utilisateurs d’exploiter pleinement les capacités des modèles YOLOv5u dans un large éventail de scénarios de détection d’objets.
Indicateurs de performance#
Consulte la documentation sur la détection pour voir des exemples d'utilisation de ces modèles entraînés sur COCO, qui comprennent 80 classes préentraînées.
| Modèle | YAML | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse A100 TensorRT (ms) | paramètres (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 | 31.3 |
| yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 97.6 |
| yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 261.3 |
| yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 549.4 |
| yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.5 | 1002.8 |
Exemples d'utilisation#
Cet exemple présente des exemples simples d’entraînement et d’inférence YOLOv5. Pour consulter la documentation complète sur ces modes et les autres modes, consulte les pages de documentation Predict, Train, Val et Export.
Les modèles *.pt préentraînés PyTorch ainsi que les fichiers de configuration *.yaml peuvent être transmis à la classe YOLO() pour créer une instance de modèle en Python :
from ultralytics import YOLO
# Charger un modèle YOLOv5nu préentraîné sur COCO
model = YOLO("yolov5nu.pt")
# Afficher les informations du modèle (facultatif)
model.info()
# Entraîner le modèle sur le jeu de données d'exemple COCO8 pendant 100 époques
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Exécuter l’inférence avec le modèle YOLOv5nu sur l’image « bus.jpg »
results = model("path/to/bus.jpg")Citations et remerciements#
Ultralytics n’a pas publié d’article de recherche formel sur YOLOv5 en raison de l’évolution rapide des modèles. Nous nous concentrons sur l’avancement de la technologie et sa facilité d’utilisation plutôt que sur la production d’une documentation statique. Pour obtenir les informations les plus récentes sur l’architecture YOLO, ses fonctionnalités et son utilisation, consulte notre dépôt GitHub et notre documentation.
Si tu utilises YOLOv5 ou YOLOv5u dans tes recherches, cite 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}
}Note que les modèles YOLOv5 sont proposés sous les licences AGPL-3.0 et Enterprise.
FAQ#
Ultralytics YOLOv5u est une version avancée de YOLOv5 qui intègre une tête découplée sans ancres et sans objectness, améliorant le compromis entre précision et vitesse pour les tâches de détection d’objets en temps réel. Contrairement à YOLOv5 traditionnel, YOLOv5u adopte un mécanisme de détection sans ancres, ce qui le rend plus flexible et adaptatif dans différents scénarios. Pour en savoir plus sur ses fonctionnalités, consulte la présentation de YOLOv5.
La tête Ultralytics sans ancres de YOLOv5u améliore les performances de détection d’objets en éliminant la dépendance aux boîtes d’ancrage prédéfinies. Le mécanisme de détection qui en résulte est plus flexible et adaptatif, et peut traiter différentes tailles et formes d’objets plus efficacement. Cette amélioration contribue directement à un compromis équilibré entre précision et vitesse, ce qui rend YOLOv5u adapté aux applications en temps réel. Découvre son architecture dans la section Fonctionnalités clés.
Oui, tu peux utiliser des modèles YOLOv5u préentraînés pour différentes tâches, comme la détection d’objets. Ces modèles prennent en charge plusieurs modes, notamment 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 répondre à différents besoins opérationnels. Pour un aperçu détaillé, consulte la section Tâches et modes pris en charge.
Les indicateurs de performance des modèles YOLOv5u varient selon la plateforme et le matériel utilisés. Par exemple, le modèle YOLOv5nu atteint 34.3 mAP sur le jeu de données COCO, avec une vitesse de 73.6 ms sur CPU (ONNX) et de 1.06 ms sur A100 TensorRT. Tu trouveras les indicateurs détaillés des différents modèles YOLOv5u dans la section Indicateurs de performance, qui propose une comparaison complète sur différents appareils.
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 :
Exemplefrom ultralytics import YOLO # Charger un modèle YOLOv5nu préentraîné sur COCO model = YOLO("yolov5nu.pt") # Afficher les informations du modèle (facultatif) model.info() # Entraîner le modèle sur le jeu de données d'exemple COCO8 pendant 100 époques results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Pour des instructions plus détaillées, consulte la section Exemples d’utilisation.