Skip to content

Ultralytics YOLOv5

Vue d'ensemble

YOLOv5u represents an advancement in object detection methodologies. Originating from the foundational architecture of the YOLOv5 model developed by Ultralytics, YOLOv5u integrates the anchor-free, objectness-free split head, a feature previously introduced in the YOLOv8 models. This adaptation refines the model's architecture, leading to an improved accuracy-speed tradeoff in object detection tasks. Given the empirical results and its derived features, YOLOv5u provides an efficient alternative for those seeking robust solutions in both research and practical applications.

Ultralytics YOLOv5

Caractéristiques principales

  • Tête fendue sans ancrage Ultralytics Head : 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. Cependant, YOLOv5u modernise cette approche. En adoptant une tête Ultralytics divisée sans ancrage, il garantit un mécanisme de détection plus souple et plus adaptatif, améliorant ainsi les performances dans divers scénarios.

  • Optimisation du compromis précision-vitesse : la vitesse et la précision vont souvent dans des directions opposées. Mais YOLOv5u remet en question ce compromis. Il offre un équilibre calibré, assurant des détections en temps réel sans faire de compromis sur 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.

  • Variété de modèles pré-entraînés : Comprenant que différentes tâches nécessitent différents ensembles d'outils, 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, il y a un modèle sur mesure qui t'attend. Cette variété garantit que tu n'utilises pas simplement une solution unique, mais un modèle spécifiquement adapté à ton défi unique.

Tâches et modes pris en charge

Les modèles YOLOv5u, avec 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èlePoids pré-entraînésTâcheInférenceValidationFormationExporter
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uDétection d'objets

Ce tableau fournit un aperçu détaillé des variantes du modèle YOLOv5u, en 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 les utilisateurs peuvent exploiter pleinement les capacités des modèles YOLOv5u dans un large éventail de scénarios de détection d'objets.

Mesures de performance

Performance

Voir Detection Docs pour des exemples d'utilisation de ces modèles formés sur COCO, qui comprennent 80 classes préformé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 de formation et d'inférence sur YOLOv5 . Pour une documentation complète sur ces modes et d'autres , voir les pages Predict, Train, Val et Export docs.

Exemple

PyTorch pretrained *.pt ainsi que la configuration *.yaml peuvent être transmis à l'outil YOLO() pour créer une instance de modèle dans 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")

CLI Des commandes sont disponibles pour exécuter directement les modèles :

# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=path/to/bus.jpg

Citations et remerciements

Ultralytics YOLOv5 Publication

Ultralytics has not published a formal research paper for YOLOv5 due to the rapidly evolving nature of the models. We focus on advancing the technology and making it easier to use, rather than producing static documentation. For the most up-to-date information on YOLO architecture, features, and usage, please refer to our GitHub repository and documentation.

Si tu utilises YOLOv5 ou YOLOv5u dans ta recherche, 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 fournis sous les licences AGPL-3.0 et Enterprise.

FAQ

Qu'est-ce que Ultralytics YOLOv5u et en quoi diffère-t-il de YOLOv5?

Ultralytics YOLOv5u is an advanced version of YOLOv5, integrating the anchor-free, objectness-free split head that enhances the accuracy-speed tradeoff for real-time object detection tasks. Unlike the traditional YOLOv5, YOLOv5u adopts an anchor-free detection mechanism, making it more flexible and adaptive in diverse scenarios. For more detailed information on its features, you can refer to the YOLOv5 Overview.

Comment la tête sans ancrage Ultralytics améliore-t-elle les performances de détection des objets dans YOLOv5u ?

La tête Ultralytics sans ancrage de YOLOv5u améliore les performances de la détection d'objets en éliminant la dépendance à l'égard des boîtes d'ancrage prédéfinies. Il en résulte un mécanisme de détection plus souple et plus adaptatif qui peut gérer différentes 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, ce qui rend YOLOv5u adapté aux applications en temps réel. Pour en savoir plus sur son architecture, consulte la section Caractéristiques principales.

Puis-je utiliser des modèles YOLOv5u pré-entraînés pour différentes tâches et différents 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, 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.

Comment les mesures de performance des modèles YOLOv5u se comparent-elles sur les différentes plateformes ?

Les mesures 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 34,3 mAP sur l'ensemble de données COCO avec une vitesse de 73,6 ms sur CPU (ONNX) et 1,06 ms sur A100 TensorRT. Les mesures détaillées des performances des différents modèles YOLOv5u se trouvent dans la section Mesures des performances, qui fournit une comparaison complète entre divers appareils.

Comment puis-je entraîner un modèle YOLOv5u à l'aide de l'API Ultralytics Python ?

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 ensemble 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)
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

Pour des instructions plus détaillées, visite la section Exemples d'utilisation.

📅 Created 11 months ago ✏️ Updated 2 days ago

Commentaires