Link to this sectionMeituan YOLOv6#
Link to this sectionPrésentation#
Le YOLOv6 de Meituan, sorti en 2022, offre un excellent équilibre entre vitesse et précision, ce qui en fait un choix populaire pour les applications en temps réel. Ce modèle introduit plusieurs améliorations notables au niveau de son architecture et de son schéma d'entraînement, notamment l'implémentation d'un module de concaténation bidirectionnelle (BiC), une stratégie d'entraînement assistée par ancres (AAT), ainsi qu'une conception améliorée du backbone et du neck pour une grande précision sur le jeu de données COCO.
Aperçu de YOLOv6. Diagramme de l'architecture du modèle montrant les composants réseau repensés et les stratégies d'entraînement qui ont conduit à des améliorations significatives des performances. (a) Le neck de YOLOv6 (N et S sont montrés). À noter que pour M/L, RepBlocks est remplacé par CSPStackRep. (b) La structure d'un module BiC. (c) Un bloc SimCSPSPPF. (source).
Link to this sectionFonctionnalités clés#
- Module de concaténation bidirectionnelle (BiC) : YOLOv6 introduit un module BiC dans le neck du détecteur, améliorant les signaux de localisation et offrant des gains de performance avec une dégradation négligeable de la vitesse.
- Stratégie d'entraînement assistée par ancres (AAT) : Ce modèle propose l'AAT pour profiter des avantages des paradigmes basés sur les ancres et sans ancres sans compromettre l'efficacité de l'inférence.
- Conception améliorée du backbone et du neck : En approfondissant YOLOv6 pour inclure une étape supplémentaire dans le backbone et le neck, ce modèle a atteint de solides performances sur le jeu de données COCO à haute résolution lors de sa sortie.
- Stratégie d'auto-distillation : Une nouvelle stratégie d'auto-distillation est implémentée pour booster les performances des modèles plus petits de YOLOv6, en améliorant la branche de régression auxiliaire pendant l'entraînement et en la supprimant lors de l'inférence pour éviter une baisse marquée de la vitesse.
Link to this sectionMétriques de performance#
YOLOv6 fournit divers modèles pré-entraînés avec différentes échelles :
- YOLOv6-N : 37,5 % d'AP sur COCO val2017 à 1187 FPS avec un GPU NVIDIA T4.
- YOLOv6-S : 45,0 % d'AP à 484 FPS.
- YOLOv6-M : 50,0 % d'AP à 226 FPS.
- YOLOv6-L : 52,8 % d'AP à 116 FPS.
- YOLOv6-L6 : Précision à la pointe de la technologie en temps réel.
YOLOv6 fournit également des modèles quantifiés pour différentes précisions et des modèles optimisés pour les plateformes mobiles.
Link to this sectionExemples d'utilisation#
Cet exemple fournit des exemples simples d'entraînement et d'inférence avec YOLOv6. Pour une documentation complète sur ces modes et d'autres, consulte les pages de documentation Predict, Train, Val et Export.
Les fichiers *.yaml de YOLOv6 peuvent être transmis à la classe YOLO() pour construire le modèle correspondant en Python :
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# 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 YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Link to this sectionTâches et modes pris en charge#
La série YOLOv6 offre une gamme de modèles, chacun optimisé pour une détection d'objets haute performance. Ces modèles répondent à des besoins computationnels et des exigences de précision variés, ce qui les rend polyvalents pour un large éventail d'applications.
| Modèle | Noms de fichiers | Tâches | Inférence | Validation | Entraînement | Exporter (Export) |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
Ce tableau fournit un aperçu détaillé des variantes du modèle YOLOv6, mettant en évidence leurs capacités dans les tâches de détection d'objets et leur compatibilité avec divers modes opérationnels tels que l' Inférence, la Validation, l' Entraînement et l' Export. Ce support complet garantit que tu peux exploiter pleinement les capacités des modèles YOLOv6 dans une large gamme de scénarios de détection d'objets.
Link to this sectionCitations et remerciements#
Nous tenons à remercier les auteurs pour leurs contributions significatives dans le domaine de la détection d'objets en temps réel :
@misc{li2023yolov6,
title={YOLOv6 v3.0: A Full-Scale Reloading},
author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
year={2023},
eprint={2301.05586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}L'article original sur YOLOv6 est disponible sur arXiv. Les auteurs ont rendu leur travail public, et le code peut être consulté sur GitHub. Nous apprécions leurs efforts pour faire avancer le domaine et rendre leur travail accessible à la communauté au sens large.
Link to this sectionFAQ#
Link to this sectionQu'est-ce que Meituan YOLOv6 et qu'est-ce qui le rend unique ?#
Meituan YOLOv6, sorti en 2022, est un détecteur d'objets qui équilibre vitesse et précision, conçu pour les applications en temps réel. Il présente des améliorations architecturales notables comme le module de concaténation bidirectionnelle (BiC) et une stratégie d'entraînement assistée par ancres (AAT). Ces innovations apportent des gains de performance substantiels avec une dégradation minimale de la vitesse, faisant de YOLOv6 un choix compétitif pour les tâches de détection d'objets.
Link to this sectionComment le module de concaténation bidirectionnelle (BiC) dans YOLOv6 améliore-t-il les performances ?#
Le module de concaténation bidirectionnelle (BiC) dans YOLOv6 améliore les signaux de localisation dans le neck du détecteur, offrant des améliorations de performance avec un impact négligeable sur la vitesse. Ce module combine efficacement différentes cartes de caractéristiques, augmentant la capacité du modèle à détecter les objets avec précision. Pour plus de détails sur les fonctionnalités de YOLOv6, consulte la section Fonctionnalités clés.
Link to this sectionComment puis-je entraîner un modèle YOLOv6 en utilisant Ultralytics ?#
Tu peux entraîner un modèle YOLOv6 en utilisant Ultralytics avec des commandes Python ou CLI simples. Par exemple :
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Pour plus d'informations, visite la page Train.
Link to this sectionQuelles sont les différentes versions de YOLOv6 et leurs métriques de performance ?#
YOLOv6 propose plusieurs versions, chacune optimisée pour différentes exigences de performance :
- YOLOv6-N : 37,5 % d'AP à 1187 FPS
- YOLOv6-S : 45,0 % d'AP à 484 FPS
- YOLOv6-M : 50,0 % d'AP à 226 FPS
- YOLOv6-L : 52,8 % d'AP à 116 FPS
- YOLOv6-L6 : Précision à la pointe de la technologie dans les scénarios en temps réel
Ces modèles sont évalués sur le jeu de données COCO en utilisant un GPU NVIDIA T4. Pour en savoir plus sur les métriques de performance, consulte la section Métriques de performance.
Link to this sectionComment la stratégie d'entraînement assistée par ancres (AAT) profite-t-elle à YOLOv6 ?#
L'entraînement assisté par ancres (AAT) dans YOLOv6 combine des éléments des approches basées sur les ancres et sans ancres, améliorant les capacités de détection du modèle sans compromettre l'efficacité de l'inférence. Cette stratégie exploite les ancres pendant l'entraînement pour améliorer les prédictions des boîtes englobantes, rendant YOLOv6 efficace dans diverses tâches de détection d'objets.
Link to this sectionQuels modes opérationnels sont pris en charge par les modèles YOLOv6 dans Ultralytics ?#
YOLOv6 prend en charge divers modes opérationnels, notamment l'Inférence, la Validation, l'Entraînement et l'Export. Cette flexibilité te permet d'exploiter pleinement les capacités du modèle dans différents scénarios. Consulte la section Tâches et modes pris en charge pour un aperçu détaillé de chaque mode.