YOLO12 : Détection d'objets centrée sur l'attention
Vue d'ensemble
YOLO12 introduit une architecture centrée sur l'attention qui s'écarte des approches traditionnelles basées sur le CNN utilisées dans les modèles YOLO précédents, tout en conservant la vitesse d'inférence en temps réel essentielle pour de nombreuses applications. Ce modèle atteint une précision de pointe dans la détection des objets grâce à des innovations méthodologiques dans les mécanismes d'attention et l'architecture globale du réseau, tout en conservant des performances en temps réel.
Regarder : Comment utiliser YOLO12 pour la détection d'objets avec le logiciel Ultralytics | YOLO12 est-il rapide ou lent ?
Caractéristiques principales
- Mécanisme d'attention de zone: Une nouvelle approche de l'auto-attention qui traite efficacement les grands champs réceptifs. Elle divise les cartes de caractéristiques en régions de taille égale (4 par défaut), horizontalement ou verticalement, en évitant les opérations complexes et en conservant un champ réceptif efficace de grande taille. Cela permet de réduire considérablement les coûts de calcul par rapport à l'auto-attention standard.
- Réseaux d'agrégation de couches à efficacité résiduelle (R-ELAN): Un module d'agrégation de caractéristiques amélioré basé sur ELAN, conçu pour répondre aux défis d'optimisation, en particulier dans les modèles centrés sur l'attention à grande échelle. R-ELAN introduit :
- Connexions résiduelles au niveau des blocs avec mise à l'échelle (similaire à la mise à l'échelle des couches).
- Une méthode d'agrégation des caractéristiques repensée créant une structure de type goulot d'étranglement.
- Architecture de l'attention optimisée: YOLO12 rationalise le mécanisme d'attention standard pour plus d'efficacité et de compatibilité avec le cadre YOLO . Cela inclut :
- Utilisation de FlashAttention pour minimiser les coûts d'accès à la mémoire.
- Suppression de l'encodage positionnel pour un modèle plus propre et plus rapide.
- Ajustement du ratio MLP (de 4 à 1,2 ou 2) pour mieux équilibrer les calculs entre les couches d'attention et d'anticipation.
- Réduction de la profondeur des blocs empilés pour une meilleure optimisation.
- Exploiter les opérations de convolution (le cas échéant) pour leur efficacité informatique.
- Ajout d'une convolution séparable 7x7 (le "percepteur de position") au mécanisme d'attention pour encoder implicitement l'information de position.
- Prise en charge complète des tâches: YOLO12 prend en charge une série de tâches essentielles de vision par ordinateur : détection d'objets, segmentation d'instances, classification d'images, estimation de la pose et détection d'objets orientés (OBB).
- Efficacité accrue: Permet d'obtenir une plus grande précision avec moins de paramètres par rapport à de nombreux modèles antérieurs, ce qui démontre un meilleur équilibre entre la vitesse et la précision.
- Déploiement flexible: Conçu pour être déployé sur diverses plates-formes, depuis les appareils périphériques jusqu'à l'infrastructure en nuage.
Tâches et modes pris en charge
YOLO12 prend en charge une variété de tâches de vision par ordinateur. Le tableau ci-dessous présente la prise en charge des tâches et les modes opérationnels (Inférence, Validation, Entraînement et Exportation) activés pour chacune d'entre elles :
Type de modèle | Tâche | Inférence | Validation | Formation | Exportation |
---|---|---|---|---|---|
YOLO12 | Détection | ✅ | ✅ | ✅ | ✅ |
YOLO12-seg | Segmentation | ✅ | ✅ | ✅ | ✅ |
YOLO12-pose | Pose | ✅ | ✅ | ✅ | ✅ |
YOLO12-cls | Classification | ✅ | ✅ | ✅ | ✅ |
YOLO12-obb | OBB | ✅ | ✅ | ✅ | ✅ |
Mesures de performance
YOLO12 démontre des améliorations significatives de la précision à toutes les échelles du modèle, avec quelques compromis en termes de vitesse par rapport aux modèles YOLO antérieurs les plus rapides. Les résultats quantitatifs de la détection d'objets sur l'ensemble de données de validation COCO sont présentés ci-dessous :
Performance de détection (COCO val2017)
Performance
Modèle | taille (pixels) |
mAPval 50-95 |
Vitesse CPU ONNX (ms) |
Vitesse T4 TensorRT (ms) |
params (M) |
FLOPs (B) |
Comparaison (mAP/vitesse) |
---|---|---|---|---|---|---|---|
YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 6.5 | +2,1%/-9% (vs. YOLOv10n) |
YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 21.4 | +0,1%/+42% (vs. RT-DETRv2) |
YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 67.5 | +1,0%/-3% (vs. YOLO11m) |
YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 88.9 | +0,4%/-8% (vs. YOLO11l) |
YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 199.0 | +0,6%/-4% (vs. YOLO11x) |
- Vitesse d'inférence mesurée sur un GPU NVIDIA T4 avec TensorRT FP16 precision.
- Les comparaisons montrent l'amélioration relative de la PAP et le pourcentage de changement de vitesse (positif indique plus rapide ; négatif indique plus lent). Les comparaisons sont effectuées par rapport aux résultats publiés pour YOLOv10, YOLO11 et RT-DETR lorsqu'ils sont disponibles.
Exemples d'utilisation
Cette section fournit des exemples de formation et d'inférence avec YOLO12. Pour une documentation plus complète sur ces modes et d'autres (y compris la validation et l'exportation), consultez les pages dédiées à la prédiction et à la formation.
Les exemples ci-dessous se concentrent sur les modèles de détection YOLO12 (pour la détection d'objets). Pour les autres tâches prises en charge (segmentation, classification, détection d'objets orientés et estimation de la pose), reportez-vous à la documentation spécifique à chaque tâche : Segmenter, Classifier, OBB et Poser.
Exemple
Pré-entraîné *.pt
(à l'aide de PyTorch) et la configuration *.yaml
peuvent être transmis à la fonction YOLO()
pour créer une instance de modèle dans Python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLO12n model
model = YOLO("yolo12n.pt")
# 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 YOLO12n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
Des commandes de l'interface de ligne de commandeCLI sont également disponibles :
Principales améliorations
-
Extraction améliorée des caractéristiques:
- Attention à la zone: Traite efficacement les grands champs réceptifs, en réduisant les coûts de calcul.
- Équilibre optimisé: Meilleur équilibre entre l'attention et les calculs du réseau en amont.
- R-ELAN: améliore l'agrégation des caractéristiques en utilisant l'architecture R-ELAN.
-
Innovations en matière d'optimisation:
- Connexions résiduelles: Introduit des connexions résiduelles avec mise à l'échelle pour stabiliser l'entraînement, en particulier dans les modèles de grande taille.
- Intégration affinée des fonctionnalités: Met en œuvre une méthode améliorée pour l'intégration des fonctionnalités dans R-ELAN.
- FlashAttention: Incorpore FlashAttention pour réduire la surcharge d'accès à la mémoire.
-
Efficacité architecturale:
- Paramètres réduits: Permet de réduire le nombre de paramètres tout en maintenant ou en améliorant la précision par rapport à de nombreux modèles précédents.
- Attention simplifiée: Utilise une mise en œuvre simplifiée de l'attention, en évitant l'encodage positionnel.
- Ratios MLP optimisés: Ajuste les ratios MLP afin d'allouer plus efficacement les ressources informatiques.
Exigences
L'implémentation d'Ultralytics YOLO12, par défaut, ne nécessite pas FlashAttention. Cependant, FlashAttention peut être optionnellement compilé et utilisé avec YOLO12. Pour compiler FlashAttention, l'un des GPU NVIDIA suivants est nécessaire :
- GPU Turing (par exemple, T4, Quadro RTX series)
- GPU Ampere (par exemple, série RTX30, A30/40/100)
- GPU Ada Lovelace (par exemple, série RTX40)
- GPU Hopper (par exemple, H100/H200)
Citations et remerciements
Si vous utilisez YOLO12 dans votre recherche, veuillez citer le travail original de l'Université de Buffalo et de l'Université de l'Académie chinoise des sciences :
@article{tian2025yolov12,
title={YOLOv12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
journal={arXiv preprint arXiv:2502.12524},
year={2025}
}
@software{yolo12,
author = {Tian, Yunjie and Ye, Qixiang and Doermann, David},
title = {YOLOv12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}
FAQ
Comment YOLO12 parvient-il à détecter des objets en temps réel tout en conservant une grande précision ?
YOLO12 intègre plusieurs innovations clés pour équilibrer la vitesse et la précision. Le mécanisme d'attention de zone traite efficacement les grands champs réceptifs, réduisant ainsi les coûts de calcul par rapport à l'auto-attention standard. Les réseaux d'agrégation de couches efficaces résiduelles (R-ELAN) améliorent l'agrégation des caractéristiques, ce qui permet de résoudre les problèmes d'optimisation dans les grands modèles centrés sur l'attention. L'architecture optimisée de l'attention, y compris l'utilisation de FlashAttention et la suppression de l'encodage positionnel, améliore encore l'efficacité. Ces caractéristiques permettent à YOLO12 d'atteindre une précision de pointe tout en maintenant la vitesse d'inférence en temps réel, cruciale pour de nombreuses applications.
Quelles sont les tâches de vision par ordinateur prises en charge par YOLO12 ?
YOLO12 est un modèle polyvalent qui prend en charge un large éventail de tâches de vision par ordinateur. Il excelle dans la détection d'objets, la segmentation d'instances, la classification d'images, l'estimation de la pose et la détection d'objets orientés (OBB)(voir détails). Cette prise en charge complète des tâches fait de YOLO12 un outil puissant pour diverses applications, de la robotique et de la conduite autonome à l'imagerie médicale et à l'inspection industrielle. Chacune de ces tâches peut être exécutée en modes Inférence, Validation, Entraînement et Exportation.
Comment YOLO12 se compare-t-il aux autres modèles YOLO et aux concurrents tels que RT-DETR?
YOLO12 démontre des améliorations significatives de la précision à toutes les échelles du modèle par rapport aux modèles YOLO précédents tels que YOLOv10 et YOLO11, avec quelques compromis en termes de vitesse par rapport aux modèles précédents les plus rapides. Par exemple, YOLO12n obtient une amélioration de +2,1 % en termes de mAP par rapport à YOLOv10n et de +1,2 % par rapport à YOLO11n sur l'ensemble de données COCO val2017. Par rapport à des modèles tels que RT-DETRYOLO12s offre une amélioration de +1,5% du mAP et une augmentation substantielle de la vitesse de +42%. Ces mesures mettent en évidence le solide équilibre de YOLO12 entre la précision et l'efficacité. Voir la section sur les mesures de performance pour des comparaisons détaillées.
Quelle est la configuration matérielle requise pour faire fonctionner YOLO12, en particulier pour utiliser FlashAttention ?
Par défaut, l'implémentation Ultralytics YOLO12 ne nécessite pas FlashAttention. Cependant, FlashAttention peut être optionnellement compilé et utilisé avec YOLO12 pour minimiser la surcharge d'accès à la mémoire. Pour compiler FlashAttention, l'un des GPU NVIDIA suivants est nécessaire : GPU Turing (par exemple, T4, Quadro RTX series), GPU Ampere (par exemple, RTX30 series, A30/40/100), GPU Ada Lovelace (par exemple, RTX40 series), ou GPU Hopper (par exemple, H100/H200). Cette flexibilité permet aux utilisateurs d'exploiter les avantages de FlashAttention lorsque les ressources matérielles le permettent.
Où puis-je trouver des exemples d'utilisation et une documentation plus détaillée sur YOLO12 ?
Cette page fournit des exemples d'utilisation de base pour la formation et l'inférence. Pour une documentation complète sur ces modes et d'autres, y compris la validation et l'exportation, consultez les pages dédiées à la prédiction et à la formation. Pour des informations spécifiques à une tâche (segmentation, classification, détection d'objets orientés et estimation de la pose), reportez-vous à la documentation correspondante : Segmenter, Classifier, OBB et Poser. Ces ressources fournissent des conseils détaillés sur l'utilisation efficace de YOLO12 dans divers scénarios.