Ultralytics YOLOv5
Aperçu
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é précédemment introduite dans les modèles YOLOv8. Cette adaptation affine l'architecture du modèle, ce qui améliore le compromis précision-vitesse dans les tâches de détection d'objets. Compte tenu des résultats empiriques et de ses fonctionnalités dérivées, YOLOv5u offre une alternative efficace pour ceux qui recherchent des solutions robustes dans la recherche et les applications pratiques.
Principales caractéristiques
-
Tête Ultralytics divisé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 les emplacements des objets. Cependant, YOLOv5u modernise cette approche. En adoptant une tête Ultralytics divisée sans ancres, il garantit un mécanisme de détection plus flexible et adaptatif, améliorant ainsi les performances dans divers scénarios.
-
Compromis optimisé entre précision et vitesse : La vitesse et la précision tirent 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 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 ensembles d'outils, YOLOv5u fournit une pléthore de modèles pré-entraînés. Que vous vous concentriez sur l'inférence, la validation ou la formation, un modèle sur mesure vous attend. Cette variété garantit que vous n'utilisez pas simplement une solution unique, mais un modèle spécifiquement adapté à votre défi unique.
Tâches et modes pris en charge
Les modèles YOLOv5u, avec divers 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 | Entraînement | Exporter |
---|---|---|---|---|---|---|
YOLOv5u | yolov5nu , yolov5su , yolov5mu , yolov5lu , yolov5xu , yolov5n6u , yolov5s6u , yolov5m6u , yolov5l6u , yolov5x6u |
Détection d'objets | ✅ | ✅ | ✅ | ✅ |
Ce tableau fournit une vue d'ensemble détaillée des variantes du modèle YOLOv5u, soulignant leur applicabilité dans les tâches de détection d'objets et leur prise en charge de divers modes de fonctionnement 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
Consultez la documentation sur la détection pour des exemples d'utilisation avec 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 | 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 d'entraînement et d'inférence YOLOv5. Pour une documentation complète sur ces modes et d'autres, consultez les pages de documentation Predict, Train, Val et Export.
Exemple
PyTorch pré-entraînés *.pt
ainsi que la configuration des modèles *.yaml
fichiers peuvent être passés aux YOLO()
class 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")
Des commandes CLI 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
Publication Ultralytics YOLOv5
Ultralytics n'a pas publié d'article de recherche formel pour YOLOv5 en raison de la nature rapidement évolutive des modèles. Nous nous concentrons sur l'avancement 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, veuillez consulter notre dépôt GitHub et notre documentation.
Si vous utilisez YOLOv5 ou YOLOv5u dans vos recherches, veuillez citer 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}
}
Veuillez noter que les modèles YOLOv5 sont fournis sous les licences AGPL-3.0 et Entreprise.
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 le "split head" sans ancrage et sans "objectness" 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 ancrage, ce qui le rend plus flexible et adaptable dans divers scénarios. Pour plus d'informations sur ses fonctionnalités, vous pouvez consulter la Présentation de YOLOv5.
Comment la tête Ultralytics sans ancres améliore-t-elle les performances de la détection d'objets dans YOLOv5u ?
Le "head" Ultralytics sans ancrage dans YOLOv5u améliore les performances de détection d'objets en éliminant la dépendance aux "anchor boxes" prédéfinies. Il en résulte un mécanisme de détection plus flexible et adaptable, capable de 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, rendant YOLOv5u adapté aux applications en temps réel. Apprenez-en davantage sur son architecture dans la section Fonctionnalités clés.
Puis-je utiliser des modèles YOLOv5u pré-entraînés pour différentes tâches et modes ?
Oui, vous pouvez 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 de tirer parti des capacités des modèles YOLOv5u dans différents contextes opérationnels. Pour une vue d'ensemble détaillée, consultez la section Tâches et modes pris en charge.
Comment les mesures de performance des modèles YOLOv5u se comparent-elles sur différentes plateformes ?
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 l'ensemble de données COCO avec une vitesse de 73,6 ms sur CPU (ONNX) et de 1,06 ms sur A100 TensorRT. Des métriques de performance détaillées pour différents modèles YOLOv5u sont disponibles dans la section Métriques de performance, qui fournit une comparaison complète sur différents appareils.
Comment puis-je entraîner un modèle YOLOv5u à l'aide de l'API python Ultralytics ?
Vous pouvez entraîner un modèle YOLOv5u en chargeant un modèle pré-entraîné et en exécutant la commande d'entraînement avec votre 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, consultez la section Exemples d'utilisation.