Ultralytics YOLO27 :

Meituan YOLOv6#

Présentation#

Meituan YOLOv6, lancé 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 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é 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.

Modèle de détection d’objets en temps réel YOLOv6 de Meituan Diagramme de l’architecture du modèle YOLOv6 Présentation de YOLOv6. Diagramme de l’architecture du modèle montrant les composants réseau repensés et les stratégies d’entraînement à l’origine d’améliorations significatives des performances. (a) Le neck de YOLOv6 (N et S sont représentés). 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 apportant des gains de performance avec une dégradation négligeable de la vitesse.
  • Stratégie d’entraînement assisté par ancres (AAT) : Ce modèle propose AAT afin de tirer parti des avantages des paradigmes avec 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 avec une entrée haute résolution lors de sa sortie.
  • Stratégie d’auto-distillation : Une nouvelle stratégie d’auto-distillation est mise en œuvre pour améliorer les performances des modèles YOLOv6 de plus petite taille, en renforçant la branche de régression auxiliaire pendant l’entraînement, puis en la supprimant lors de l’inférence afin d’éviter une baisse marquée de la vitesse.

Métriques de performance#

YOLOv6 propose différents modèles préentraînés à 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 propose également des modèles quantifiés pour différentes précisions, ainsi que 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 consulter la documentation complète sur ces modes et les autres, voir les pages de documentation Predict, Train, Val et Export.

Exemple

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")

Tâches et modes pris en charge#

La série YOLOv6 propose une gamme de modèles, chacun optimisé pour la détection d’objets hautes performances. Ces modèles répondent à différents besoins en calcul et exigences de précision, ce qui les rend polyvalents pour un large éventail d’applications.

ModèleNoms de fichiersTâchesEntraînementValidationInférenceExportation
YOLOv6-Nyolov6n.yamlDétection d’objets
YOLOv6-Syolov6s.yamlDétection d’objets
YOLOv6-Myolov6m.yamlDétection d’objets
YOLOv6-Lyolov6l.yamlDétection d’objets
YOLOv6-Xyolov6x.yamlDétection d’objets

Ce tableau fournit une présentation détaillée des variantes du modèle YOLOv6, en mettant en évidence leurs capacités pour les tâches de détection d’objets et leur compatibilité avec différents modes opérationnels tels que l’inférence, la validation, l’entraînement et l’exportation. Cette prise en charge complète 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 importantes dans le domaine de la détection d’objets en temps réel :

Citation
@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 accessible au public, et le code source est disponible sur GitHub. Nous saluons leurs efforts pour faire progresser ce domaine et rendre leur travail accessible à une communauté plus large.

FAQ#

  • Meituan YOLOv6, lancé en 2022, est un détecteur d’objets qui équilibre vitesse et précision, conçu pour les applications en temps réel. Il intègre des améliorations architecturales notables, comme le module de concaténation bidirectionnelle (BiC) et une stratégie d’entraînement assisté 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.

  • Le module de concaténation bidirectionnelle (BiC) de YOLOv6 améliore les signaux de localisation dans le neck du détecteur, offrant de meilleures performances avec un impact négligeable sur la vitesse. Ce module combine efficacement différentes cartes de caractéristiques, ce qui augmente 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.

  • Tu peux entraîner un modèle YOLOv6 avec Ultralytics à l’aide de commandes Python ou CLI simples. Par exemple :

    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, consulte la page Train.

  • YOLOv6 propose plusieurs versions, chacune optimisée pour différents besoins en matière de performances :

    • 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 à l’aide d’un GPU NVIDIA T4. Pour en savoir plus sur les métriques de performance, consulte la section Métriques de performance.

  • L’entraînement assisté par ancres (AAT) dans YOLOv6 combine des éléments des approches avec 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 afin d’améliorer les prédictions des boîtes englobantes, ce qui rend YOLOv6 efficace pour diverses tâches de détection d’objets.

  • YOLOv6 prend en charge différents 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 une présentation détaillée de chaque mode.

Commentaires