Meituan YOLOv6
Vue d'ensemble
Meituan YOLOv6 est un détecteur d'objets de pointe qui offre un équilibre remarquable entre vitesse et précision, ce qui en fait un choix populaire pour les applications en temps réel. Ce modèle présente plusieurs améliorations notables de son architecture et de son schéma de formation, notamment la mise en œuvre d'un module de concaténation bidirectionnelle (BiC), d'une stratégie de formation assistée par ancrage (AAT) et d'une conception améliorée de l'épine dorsale et du cou pour une précision de pointe sur l'ensemble de données COCO.
Vue d'ensemble de YOLOv6. Diagramme de l'architecture du modèle montrant les composants du réseau remaniés et les stratégies de formation qui ont conduit à des améliorations significatives des performances. (a) Le cou de YOLOv6 (N et S sont représentés). Notez que pour M/L, RepBlocks est remplacé par CSPStackRep. (b) La structure d'un module BiC. (c) Un bloc SimCSPSPPF. (source).
Caractéristiques principales
- Module de concaténation bidirectionnelle (BiC) : YOLOv6 introduit un module BiC dans le cou du détecteur, améliorant les signaux de localisation et apportant des gains de performance avec une dégradation négligeable de la vitesse.
- Stratégie de formation assistée par ancrage (AAT) : Ce modèle propose l'AAT pour bénéficier des avantages des paradigmes avec et sans ancrage sans compromettre l'efficacité de l'inférence.
- Conception améliorée de l'épine dorsale et du cou : En approfondissant YOLOv6 pour inclure une autre étape dans la colonne vertébrale et le cou, ce modèle atteint des performances de pointe sur l'ensemble de données COCO avec une entrée à haute résolution.
- Stratégie d'autodistillation : Une nouvelle stratégie d'autodistillation est mise en œuvre pour améliorer les performances des petits modèles de YOLOv6, en améliorant la branche de régression auxiliaire pendant la formation et en la supprimant lors de l'inférence afin d'éviter une baisse marquée de la vitesse.
Mesures de performance
YOLOv6 propose plusieurs modèles pré-entraînés avec des échelles différentes :
- YOLOv6-N : 37.5% AP sur COCO val2017 Ă 1187 FPS avec NVIDIA T4 GPU.
- YOLOv6-S : 45,0% AP Ă 484 FPS.
- YOLOv6-M : 50,0% AP Ă 226 FPS.
- YOLOv6-L : 52,8% AP Ă 116 FPS.
- YOLOv6-L6 : une 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 de formation et d'inférence de YOLOv6. 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 Ă la fonction YOLO()
pour créer une instance de modèle dans 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")
CLI sont disponibles pour exécuter directement les modèles :
Tâches et modes pris en charge
La série YOLOv6 offre une gamme de modèles, chacun optimisé pour la détection d'objets de haute performance. Ces modèles répondent à des besoins de calcul et à des exigences de précision variables, ce qui les rend polyvalents pour un large éventail d'applications.
Type de modèle | Poids pré-entraînés | Tâches prises en charge | Inférence | Validation | Formation | Exportation |
---|---|---|---|---|---|---|
YOLOv6-N | yolov6-n.pt |
DĂ©tection d'objets | âś… | âś… | âś… | âś… |
YOLOv6-S | yolov6-s.pt |
DĂ©tection d'objets | âś… | âś… | âś… | âś… |
YOLOv6-M | yolov6-m.pt |
DĂ©tection d'objets | âś… | âś… | âś… | âś… |
YOLOv6-L | yolov6-l.pt |
DĂ©tection d'objets | âś… | âś… | âś… | âś… |
YOLOv6-L6 | yolov6-l6.pt |
DĂ©tection d'objets | âś… | âś… | âś… | âś… |
Ce tableau fournit un aperçu détaillé des variantes du modèle YOLOv6, en 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'exportation. Ce support complet permet aux utilisateurs d'exploiter pleinement les capacités des modèles YOLOv6 dans un large éventail 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 :
L'article original sur YOLOv6 est disponible 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 est un détecteur d'objets de pointe qui allie vitesse et précision, idéal pour les applications en temps réel. Il présente des améliorations architecturales notables telles que le module de concaténation bidirectionnelle (BiC) et une stratégie de formation assistée par l'ancrage (AAT). Ces innovations permettent des gains de performance substantiels avec une dégradation minimale de la vitesse, ce qui fait 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 Bi-directional Concatenation (BiC) de YOLOv6 améliore les signaux de localisation dans le cou du détecteur, ce qui permet d'améliorer les performances avec un impact négligeable sur la vitesse. Ce module combine efficacement différentes cartes de caractéristiques, augmentant ainsi la capacité du modèle à détecter des objets avec précision. Pour plus de détails sur les caractéristiques de YOLOv6, reportez-vous à la section Caractéristiques principales.
Comment puis-je entraîner un modèle YOLOv6 en utilisant Ultralytics?
Vous pouvez entraîner un modèle YOLOv6 en utilisant Ultralytics avec de simples commandes Python ou CLI . Par exemple :
Exemple
Pour plus d'informations, consultez la page Train.
Quelles sont les différentes versions de YOLOv6 et leurs performances ?
YOLOv6 propose plusieurs versions, chacune optimisée pour des exigences de performance différentes :
- 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 : une précision de pointe dans des scénarios en temps réel
Ces modèles sont évalués sur l'ensemble de données COCO à l'aide d'un ordinateur NVIDIA T4 GPU. Pour plus d'informations sur les mesures de performance, voir la section Mesures de performance.
Comment la stratégie de formation assistée par ancrage (AAT) profite-t-elle à YOLOv6 ?
La formation assistée par ancrage (AAT) dans YOLOv6 combine des éléments d'approches basées sur l'ancrage et sans ancrage, 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'apprentissage pour améliorer les prédictions de la boîte englobante, ce qui rend YOLOv6 efficace dans diverses tâches de détection d'objets.
Quels sont les modes opérationnels supportés par les modèles YOLOv6 sur Ultralytics?
YOLOv6 prend en charge différents modes opérationnels, notamment l'inférence, la validation, la formation et l'exportation. Cette flexibilité permet aux utilisateurs d'exploiter pleinement les capacités du modèle dans différents scénarios. Consultez la section Tâches et modes pris en charge pour un aperçu détaillé de chaque mode.