Meituan YOLOv6
Présentation
Meituan YOLOv6, 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) et une conception améliorée du backbone et du neck pour une grande précision sur le jeu de données COCO.
Overview of YOLOv6. Model architecture diagram showing the redesigned network components and training strategies that have led to significant performance improvements. (a) The neck of YOLOv6 (N and S are shown). Note for M/L, RepBlocks is replaced with CSPStackRep. (b) The structure of a BiC module. (c) A SimCSPSPPF block. (source).
Fonctionnalité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 de vitesse négligeable.
- Stratégie d'entraînement assistée par ancres (AAT) : Ce modèle propose l'AAT pour profiter des avantages des paradigmes anchor-based et anchor-free sans compromettre l'efficacité de l'inférence.
- Conception améliorée du backbone et du neck : En approfondissant YOLOv6 pour inclure un autre étage dans le backbone et le neck, ce modèle a atteint de solides performances sur le jeu de données COCO en entrée 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 YOLOv6 plus petits, améliorant la branche de régression auxiliaire pendant l'entraînement et la supprimant lors de l'inférence pour éviter une baisse de vitesse marquée.
Mesures de performance
YOLOv6 propose divers modèles pré-entraînés avec différentes échelles :
- YOLOv6-N : 37,5 % AP sur COCO val2017 à 1187 FPS avec un GPU NVIDIA T4.
- YOLOv6-S : 45,0 % AP à 484 FPS.
- YOLOv6-M : 50,0 % AP à 226 FPS.
- YOLOv6-L : 52,8 % AP à 116 FPS.
- YOLOv6-L6 : Précision de pointe 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.
Exemples 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 passés à 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")Tâches et modes pris en charge
La série YOLOv6 propose une gamme de modèles, chacun optimisé pour une détection d'objets haute performance. Ces modèles répondent à des besoins computationnels variés et à des exigences de précision, ce qui les rend polyvalents pour un large éventail d'applications.
| Modèle | Noms de fichiers | Tâches | Inférence | Validation | Entraînement | Exportation |
|---|---|---|---|---|---|---|
| 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 donne un aperçu détaillé des variantes du modèle YOLOv6, soulignant 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 puisses exploiter pleinement les capacités des modèles YOLOv6 dans une large gamme de scénarios de détection d'objets.
Citations 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 peut être trouvé sur arXiv. Les auteurs ont rendu leur travail public et la base de code est accessible sur GitHub. Nous apprécions leurs efforts pour faire avancer le domaine et rendre leur travail accessible à la communauté au sens large.
FAQ
Qu'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 des 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 de vitesse minimale, faisant de YOLOv6 un choix compétitif pour les tâches de détection d'objets.
Comment le module de concaténation bidirectionnelle (BiC) de 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 de vitesse négligeable. 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 caractéristiques de YOLOv6, consulte la section Caractéristiques principales.
Comment puis-je entraîner un modèle YOLOv6 en utilisant Ultralytics ?
Tu peux entraîner un modèle YOLOv6 en utilisant Ultralytics avec de simples commandes Python ou CLI. 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 Entraîner.
Quelles sont les différentes versions de YOLOv6 et leurs indicateurs de performance ?
YOLOv6 propose plusieurs versions, chacune optimisée pour différentes exigences de performance :
- YOLOv6-N : 37,5 % AP à 1187 FPS
- YOLOv6-S : 45,0 % AP à 484 FPS
- YOLOv6-M : 50,0 % AP à 226 FPS
- YOLOv6-L : 52,8 % AP à 116 FPS
- YOLOv6-L6 : Précision de pointe 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 indicateurs de performance, voir la section Indicateurs de performance.
Comment la stratégie d'entraînement assistée par ancres (AAT) bénéficie-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 de boîtes englobantes, rendant YOLOv6 efficace dans diverses tâches de détection d'objets.
Quels 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'exportation. 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.