YOLO Vision 2026 :

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 la tête divisée sans ancres et sans objectivité, une fonctionnalité introduite précédemment dans les modèles YOLOv8. Cette adaptation affine l'architecture du modèle, conduisant à un compromis précision-vitesse amélioré dans les tâches de détection d'objets. Compte tenu des résultats empiriques et de ses fonctionnalités dérivées, YOLOv5u constitue une alternative efficace pour ceux qui recherchent des solutions robustes tant dans la recherche que dans les applications pratiques.

Architecture et performances du modèle de détection d'objets YOLOv5

Les modèles entraînés avec le dépôt YOLOv5 original ne sont pas compatibles avec la bibliothèque Ultralytics

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).

Essaie sur la plateforme Ultralytics

Explore et exécute des modèles YOLOv5 directement sur Ultralytics Platform.

Fonctionnalités clés#

  • Tête scindée Ultralytics sans ancres : Les modèles de détection d'objets traditionnels reposent sur des boîtes d'ancrage prédéfinies pour prédire les emplacements des objets. Cependant, YOLOv5u modernise cette approche. En adoptant une tête scindée Ultralytics 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 vont souvent dans des directions opposées. Mais YOLOv5u remet en question ce compromis. Il offre un équilibre étalonné, garantissant des détections en temps réel sans compromettre la précision. Cette fonctionnalité est particulièrement précieuse pour les applications qui exigent 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 différents outils, YOLOv5u propose 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 une solution unique, mais un modèle spécifiquement affiné pour ton défi unique.

Tâches et modes pris en charge#

Les modèles YOLOv5u, dotés de divers poids pré-entraînés, excèlent 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èlePoids pré-entraînésTâcheEntraînementValidationInférenceExporter (Export)
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uDétection d'objets

Ce tableau donne un aperçu détaillé des variantes du modèle YOLOv5u, mettant en évidence leur applicabilité dans 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 garantit que tu peux exploiter pleinement les capacités des modèles YOLOv5u dans un large éventail de scénarios de détection d'objets.

Métriques de performance#

Performance

Consulte la documentation sur la 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èleYAMLtaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.37.8
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.324.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.265.7
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1137.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.4250.7

Exemples d'utilisation#

Cet exemple fournit des exemples simples d'entraînement et d'inférence pour YOLOv5. Pour une documentation complète sur ces modes et d'autres, consulte les pages de documentation Predict, Train, Val et Export.

Exemple

Des modèles pré-entraînés PyTorch *.pt ainsi que des fichiers de configuration *.yaml peuvent être passés à la classe YOLO() pour créer une instance de modèle en 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#

Publication Ultralytics YOLOv5

Ultralytics n'a pas publié d'article de recherche officiel pour YOLOv5 en raison de la nature en rapid évolution des modèles. Nous nous concentrons sur l'amélioration de la technologie et sur sa simplification d'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, réfère-toi à 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 :

Citation
@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 fournis sous licences AGPL-3.0 et Enterprise.

FAQ#

  • 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, ce qui le rend plus flexible et adaptatif dans divers scénarios. Pour plus d'informations détaillées sur ses fonctionnalités, tu peux consulter 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 englobantes prédéfinies. Il en résulte 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 la précision et la vitesse, rendant YOLOv5u adapté aux applications en temps réel. Apprends-en davantage sur son architecture dans la section Fonctionnalités clés.

  • 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, notamment l'inférence, la validation, l'entraînement et l'exportation. Cette flexibilité te permet de tirer parti des 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.

  • Les métriques de performance des modèles YOLOv5u varient en fonction de la plateforme 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 de 1,06 ms sur A100 TensorRT. Les métriques de performance détaillées pour les différents modèles YOLOv5u se trouvent dans la section Métriques de performance, qui fournit 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 :

    Exemple
    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.

Commentaires