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 dans son architecture et son schéma d'entraînement, notamment l'implémentation d'un module de concaténation bidirectionnelle (BiC), d'une stratégie d'entraînement assistée par ancres (AAT), ainsi que d'un design amélioré pour le backbone et le cou afin d'obtenir une grande précision sur le COCO dataset.
Aperçu de YOLOv6. Schéma de l'architecture du modèle montrant les composants réseau redessinés et les stratégies d'entraînement qui ont conduit à des améliorations significatives des performances. (a) Le cou de YOLOv6 (N et S sont affichés). Remarque : pour M/L, RepBlocks est remplacé par CSPStackRep. (b) La structure d'un module BiC. (c) Un bloc SimCSPSPPF. (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 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 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 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.
Mé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 propose également des modèles quantifiés pour différentes precisions et des modèles optimisés pour les plateformes mobiles.
Exemples d'utilisation#
Cet exemple fournit des cas 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 YOLOv6 *.yaml 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 offre une gamme de modèles, chacun optimisé pour l'Object Detection haute performance. Ces modèles répondent à des besoins de calcul variables et à des exigences de accuracy, ce qui les rend polyvalents pour un large éventail d'applications.
| Modèle | Noms de fichiers | Tâches | Entraînement | Validation | Inférence | 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 donne un aperçu détaillé des variantes du modèle YOLOv6, mettant en valeur leurs capacités dans les tâches d'object detection et leur compatibilité avec divers modes opérationnels tels que l'Inference, la Validation, l'Training et l'Export. Ce support complet garantit que tu peux 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 :
@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 se trouve sur arXiv. Les auteurs ont rendu leur travail accessible au public, et la base de code peut être consultée sur GitHub. Nous saluons leurs efforts pour faire progresser le domaine et rendre leur travail accessible à l'ensemble de la communauté.
FAQ#
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.
Tu peux entraîner un modèle YOLOv6 en utilisant Ultralytics avec des commandes Python ou CLI simples. Par exemple :
Exemplefrom 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.
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 COCO dataset en utilisant un GPU NVIDIA T4. Pour en savoir plus sur les métriques de performance, consulte la section Performance Metrics.
L'entraînement assisté par ancres (AAT) dans YOLOv6 combine des éléments des approches basées sur des 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 bounding box, rendant YOLOv6 efficace dans diverses tâches de détection d'objets.
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 Supported Tasks and Modes pour un aperçu détaillé de chaque mode.
Le module de concaténation bidirectionnelle (BiC) de YOLOv6 améliore les signaux de localisation dans le cou du détecteur, offrant des améliorations de performance avec un impact négligeable sur la vitesse. Ce module combine efficacement différentes feature maps, 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 Key Features.