YOLO12 : Détection d'objets centrée sur l'attention
Présentation
YOLO12, publié début 2025, introduit une architecture centrée sur l'attention qui s'éloigne des approches traditionnelles basées sur les 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 grande précision de détection d'objets grâce à des innovations méthodologiques dans les mécanismes d'attention et l'architecture globale du réseau, tout en maintenant des performances en temps réel. Malgré ces avantages, YOLO12 reste une version pilotée par la communauté qui peut présenter une instabilité lors de l'entraînement, une consommation de mémoire élevée et un débit CPU plus lent en raison de ses blocs d'attention lourds. Ultralytics recommande donc YOLO11 ou YOLO26 pour la plupart des charges de travail en production.
Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀
Fonctionnalités clés
- Mécanisme Area Attention : Une nouvelle approche d'auto-attention qui traite efficacement les grands champs récepteurs. Elle divise les cartes de caractéristiques en l régions de taille égale (4 par défaut), horizontalement ou verticalement, évitant les opérations complexes et conservant un large champ récepteur effectif. Cela réduit considérablement le coût computationnel par rapport à l'auto-attention standard.
- Réseaux d'agrégation de couches efficaces résiduels (R-ELAN) : Un module d'agrégation de caractéristiques amélioré basé sur ELAN, conçu pour résoudre les défis d'optimisation, particulièrement dans les modèles centrés sur l'attention à grande échelle. R-ELAN introduit :
- Des connexions résiduelles au niveau des blocs avec mise à l'échelle (similaire à la mise à l'échelle des couches).
- Une méthode d'agrégation de caractéristiques repensée créant une structure en forme de goulot d'étranglement.
- Architecture d'attention optimisée : YOLO12 rationalise le mécanisme d'attention standard pour une efficacité accrue et une compatibilité avec le framework YOLO. Cela inclut :
- L'utilisation de FlashAttention pour minimiser la surcharge d'accès à la mémoire.
- La suppression du codage positionnel pour un modèle plus propre et plus rapide.
- L'ajustement du ratio MLP (de 4 typiquement à 1,2 ou 2) pour mieux équilibrer le calcul entre l'attention et les couches de transfert direct (feed-forward).
- La réduction de la profondeur des blocs empilés pour une optimisation améliorée.
- L'exploitation des opérations de convolution (si approprié) pour leur efficacité computationnelle.
- L'ajout d'une convolution séparable 7x7 (le "percepteur de position") au mécanisme d'attention pour coder implicitement les informations positionnelles.
- Support complet des tâches : YOLO12 prend en charge une gamme de tâches fondamentales de vision par ordinateur : détection d'objets, segmentation d'instances, classification d'images, estimation de pose et détection d'objets orientés (OBB).
- Efficacité améliorée : Atteint une précision plus élevée avec moins de paramètres par rapport à de nombreux modèles antérieurs, démontrant un meilleur équilibre entre vitesse et précision.
- Déploiement flexible : Conçu pour un déploiement sur diverses plateformes, des appareils de bord (edge) à l'infrastructure cloud.

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 montre la prise en charge des tâches et les modes opérationnels (Inférence, Validation, Entraînement et Export) activés pour chacune :
Seuls les poids de détection (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt) sont publiés sur ultralytics/assets. Les architectures pour la segmentation, la classification, la pose et l'OBB sont définies dans ultralytics/cfg/models/12/, donc ces variantes prennent en charge l'entraînement à partir de zéro via la configuration .yaml, mais aucun fichier .pt pré-entraîné n'est disponible actuellement pour elles. Pour des checkpoints pré-entraînés de segmentation, de pose, de classification ou d'OBB, Ultralytics recommande YOLO11 ou YOLO26.
| Type de modèle | Tâche | Poids pré-entraînés | Inférence | Validation | Entraînement | Exportation |
|---|---|---|---|---|---|---|
| YOLO12 | Détection | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentation | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classification | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Toutes les architectures YOLO12 prennent en charge chaque mode une fois qu'un checkpoint entraîné est disponible. La colonne Pretrained Weights indique uniquement si Ultralytics publie un .pt pré-entraîné officiel sur ultralytics/assets : pour la segmentation, la pose, la classification et l'OBB, tu dois entraîner ton propre checkpoint à partir du .yaml correspondant avant d'exécuter l'inférence, la validation ou l'exportation.
Mesures de performance
YOLO12 démontre des améliorations significatives de la précision sur toutes les échelles de modèles, avec quelques compromis sur la vitesse par rapport aux modèles YOLO antérieurs les plus rapides. Tu trouveras ci-dessous les résultats quantitatifs pour la détection d'objets sur le jeu de données de validation COCO :
Performance de détection (COCO val2017)
| 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 la précision TensorRT FP16.
- Les comparaisons montrent l'amélioration relative du mAP et le changement de pourcentage en 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 pour l'entraînement et l'inférence avec YOLO12. Pour une documentation plus complète sur ces modes et d'autres (y compris la Validation et l'Export), consulte les pages dédiées Predict et Train.
Les exemples ci-dessous se concentrent sur les modèles YOLO12 Detect (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 pose), réfère-toi à la documentation spécifique à chaque tâche : Segment, Classify, OBB et Pose.
Les modèles pré-entraînés *.pt (utilisant PyTorch) et les fichiers de configuration *.yaml peuvent être transmis à la classe YOLO() pour créer une instance de modèle en 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")Améliorations clés
-
Extraction de caractéristiques améliorée :
- Area Attention : Gère efficacement les grands champs récepteurs, réduisant le coût computationnel.
- Équilibre optimisé : Équilibre amélioré entre les calculs d'attention et les réseaux de transfert direct.
- R-ELAN : Améliore l'agrégation des caractéristiques en utilisant l'architecture R-ELAN.
-
Innovations d'optimisation :
- Connexions résiduelles : Introduit des connexions résiduelles avec mise à l'échelle pour stabiliser l'entraînement, surtout dans les modèles plus grands.
- Intégration de caractéristiques raffinée : Implémente une méthode améliorée pour l'intégration des caractéristiques au sein de R-ELAN.
- FlashAttention : Intègre FlashAttention pour réduire la surcharge d'accès à la mémoire.
-
Efficacité architecturale :
- Paramètres réduits : Atteint un nombre de paramètres plus faible tout en maintenant ou en améliorant la précision par rapport à de nombreux modèles précédents.
- Attention rationalisée : Utilise une implémentation d'attention simplifiée, évitant le codage positionnel.
- Ratios MLP optimisés : Ajuste les ratios MLP pour allouer plus efficacement les ressources computationnelles.
Exigences
L'implémentation Ultralytics YOLO12, par défaut, ne nécessite pas FlashAttention. Cependant, FlashAttention peut être compilé et utilisé optionnellement avec YOLO12. Pour compiler FlashAttention, l'un des GPU NVIDIA suivants est nécessaire :
- GPU Turing (ex: T4, série Quadro RTX)
- GPU Ampere (ex: série RTX30, A30/40/100)
- GPU Ada Lovelace (ex: série RTX40)
- GPU Hopper (ex: H100/H200)
Citations et remerciements
Si tu utilises YOLO12 dans tes recherches, merci de citer le travail original de University at Buffalo et de la University of Chinese Academy of Sciences :
@article{tian2025yolo12,
title={YOLO12: 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 = {YOLO12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}FAQ
Comment YOLO12 atteint-il la détection d'objets en temps réel tout en maintenant une précision élevée ?
YOLO12 intègre plusieurs innovations clés pour équilibrer vitesse et précision. Le mécanisme d'attention Area traite efficacement les grands champs récepteurs, réduisant le coût computationnel par rapport à l'auto-attention standard. Les réseaux d'agrégation de couches efficaces résiduels (R-ELAN) améliorent l'agrégation des caractéristiques, résolvant les défis d'optimisation dans les modèles centrés sur l'attention plus grands. L'architecture d'attention optimisée, y compris l'utilisation de FlashAttention et la suppression du codage positionnel, améliore encore l'efficacité. Ces fonctionnalités 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 tâches de vision par ordinateur YOLO12 prend-il en charge ?
YOLO12 est un modèle polyvalent qui prend en charge une large gamme de tâches fondamentales de vision par ordinateur. Il excelle dans la détection d'objets, la segmentation d'instances, la classification d'images, l'estimation de pose et la détection d'objets orientés (OBB) (voir détails). Ce support complet des tâches fait de YOLO12 un outil puissant pour des applications diverses, de la robotique et la conduite autonome à l'imagerie médicale et l'inspection industrielle. Note que les poids .pt pré-entraînés sont actuellement publiés pour la détection uniquement ; les architectures de segmentation, de pose, de classification et d'OBB sont fournies sous forme de configurations .yaml pour un entraînement à partir de zéro.
Comment YOLO12 se compare-t-il aux autres modèles YOLO et aux concurrents comme RT-DETR ?
YOLO12 démontre des améliorations significatives de la précision sur toutes les échelles de modèles par rapport aux modèles YOLO précédents comme YOLOv10 et YOLO11, avec quelques compromis sur la vitesse par rapport aux modèles antérieurs les plus rapides. Par exemple, YOLO12n atteint une amélioration de +2,1% mAP par rapport à YOLOv10n et +1,2% par rapport à YOLO11n sur le jeu de données COCO val2017. Comparé à des modèles comme RT-DETR, YOLO12s offre une amélioration de +1,5% mAP et une augmentation substantielle de +42% en vitesse. Ces métriques soulignent le fort équilibre de YOLO12 entre précision et efficacité. Voir la section des métriques de performance pour des comparaisons détaillées.
Quelles sont les exigences matérielles pour exécuter YOLO12, notamment pour utiliser FlashAttention ?
Par défaut, l'implémentation Ultralytics YOLO12 ne nécessite pas FlashAttention. Cependant, FlashAttention peut être compilé et utilisé optionnellement 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 (ex: T4, série Quadro RTX), GPU Ampere (ex: série RTX30, A30/40/100), GPU Ada Lovelace (ex: série RTX40) ou GPU Hopper (ex: H100/H200). Cette flexibilité permet aux utilisateurs de tirer parti des 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 pour YOLO12 ?
Cette page fournit des exemples d'utilisation de base pour l'entraînement et l'inférence. Pour une documentation complète sur ces modes et d'autres, y compris la Validation et l'Export, consulte les pages dédiées Predict et Train. Pour des informations spécifiques aux tâches (segmentation, classification, détection d'objets orientés et estimation de pose), réfère-toi à la documentation respective : Segment, Classify, OBB et Pose. Ces ressources fournissent des conseils approfondis pour utiliser efficacement YOLO12 dans divers scénarios.