Skip to content

YOLOv5

Vue d'ensemble

YOLOv5u représente une avancée dans les méthodologies de détection d'objets. Issu de l'architecture fondamentale du modèle développé par , YOLOv5u intègre la tête divisée sans ancrage et sans objet. YOLOv5 développé par Ultralytics, YOLOv5u intègre la tête divisée sans ancrage et sans objet, une caractéristique introduite précédemment dans les modèles de détection d'objets. YOLOv8 modèles. Cette adaptation affine l'architecture du modèle, ce qui permet d'améliorer le 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 à la fois dans la recherche et dans les applications pratiques.

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èle Poids pré-entraînés Tâche Inférence Validation Formation Exporter
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, 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è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 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 préformé *.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

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 est une version avancée de YOLOv5, intégrant la tête de division sans ancrage et sans objet qui améliore le compromis précision-vitesse pour les tâches de détection d'objets en temps réel. Contrairement à la version traditionnelle YOLOv5, YOLOv5u adopte un mécanisme de détection sans ancrage, ce qui le rend plus flexible et adaptable à divers scénarios. Pour des informations plus détaillées sur ses caractéristiques, tu peux te référer à l'aperçuYOLOv5 .

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 ?

The performance metrics of YOLOv5u models vary depending on the platform and hardware used. For example, the YOLOv5nu model achieves a 34.3 mAP on COCO dataset with a speed of 73.6 ms on CPU (ONNX) and 1.06 ms on A100 TensorRT. Detailed performance metrics for different YOLOv5u models can be found in the Performance Metrics section, which provides a comprehensive comparison across various devices.

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.



Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (15), Burhan-Q (1)

Commentaires