Ultralytics YOLO27 :

Ultralytics YOLOv5#

Présentation#

YOLOv5u représente une avancée dans les méthodes de détection d’objets. Issu de l’architecture fondamentale du modèle YOLOv5 développé par Ultralytics, YOLOv5u intègre une tête séparée sans ancres ni score d’objectness, une fonctionnalité 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 de ses fonctionnalités dérivées, YOLOv5u constitue une solution efficace pour les personnes qui recherchent des solutions robustes dans les applications de recherche comme 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 d’origine ne sont pas compatibles avec la bibliothèque Ultralytics

Ultralytics fournit une variante de YOLOv5 sans ancres. 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 Ultralytics Platform

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

Fonctionnalités clés#

  • Tête séparée Ultralytics 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 la position des objets. Cependant, YOLOv5u modernise cette approche. En adoptant une tête séparée Ultralytics sans ancres, il garantit un mécanisme de détection plus flexible et adaptatif, ce qui améliore les performances dans divers scénarios.

  • Compromis précision-vitesse optimisé : La vitesse et la précision évoluent souvent en sens opposés. Mais YOLOv5u remet en question ce compromis. Il offre un équilibre ajusté qui garantit 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, comme les véhicules autonomes, la robotique et l’analyse vidéo en temps réel.

  • Variété de modèles préentraînés : Comme les différentes tâches nécessitent des outils différents, YOLOv5u fournit une vaste sélection 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é garantit que tu n’utilises pas simplement une solution universelle, mais un modèle spécifiquement ajusté à ton problème particulier.

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 un large éventail 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érenceExportation
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uDétection d’objets

Ce tableau présente une vue d’ensemble détaillée des variantes du modèle YOLOv5u, en mettant en évidence leur applicabilité aux tâches de détection d’objets et leur prise en charge de différents modes opérationnels tels que l’inférence, la validation, l’entraînement et l’export. 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#

Performances

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èleYAMLtaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
A100 TensorRT
(ms)
paramètres
(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.331.3
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.397.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.2261.3
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1549.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.51002.8

Exemples d’utilisation#

Cet exemple fournit des exemples simples d’entraînement et d’inférence avec YOLOv5. Pour consulter la documentation complète sur ces modes et les autres, consulte les pages de documentation Prédiction, Entraînement, Validation et Export.

Exemple

Les modèles *.pt préentraînés avec 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

# Load a COCO-pretrained YOLOv5nu model
model = YOLO("yolov5nu.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 YOLOv5nu model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Citations et remerciements#

Publication d’Ultralytics YOLOv5

Ultralytics n’a pas publié d’article de recherche officiel 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, les fonctionnalités et l’utilisation de YOLO, 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 :

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 les licences AGPL-3.0 et Enterprise.

FAQ#

  • Ultralytics YOLOv5u est une version avancée de YOLOv5 qui intègre une tête séparée sans ancres ni score d’objectness, améliorant le compromis entre précision et 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 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 supprimant la dépendance aux boîtes d’ancrage prédéfinies. Il en résulte un mécanisme de détection plus flexible et adaptatif, capable de gérer plus efficacement des objets de différentes tailles et formes. 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 plus en détail 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, 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’export. Cette flexibilité te permet d’exploiter les capacités des modèles YOLOv5u pour répondre à différents besoins opérationnels. Pour une vue d’ensemble détaillée, consulte la section Tâches et modes pris en charge.

  • Les métriques 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 l’ensemble de données COCO, avec une vitesse de 73,6 ms sur CPU (ONNX) et de 1,06 ms sur un A100 avec TensorRT. Tu trouveras les métriques de performance détaillées des différents modèles YOLOv5u 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 YOLOv5nu model
    model = YOLO("yolov5nu.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 obtenir des instructions plus détaillées, consulte la section Exemples d’utilisation.

Commentaires