YOLO12 : détection d’objets axée sur l’attention#
Présentation#
YOLO12, lancé début 2025, introduit une architecture axé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 à de nombreuses applications. Ce modèle atteint une grande précision en détection d’objets grâce à de nouvelles 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 développée par la communauté et peut présenter une instabilité à l’entraînement, une consommation mémoire élevée et un débit CPU plus faible en raison de ses blocs d’attention lourds ; Ultralytics recommande donc YOLO11 ou YOLO26 pour la plupart des charges de production.
Regarder : Comment utiliser YOLO12 pour la détection d’objets avec le package Ultralytics | YOLO12 est-il rapide ou lent ? 🚀
Fonctionnalités clés#
- Mécanisme d’attention par zone : une nouvelle approche d’auto-attention qui traite efficacement de grands champs récepteurs. Elle divise les cartes de caractéristiques en l régions de même taille (4 par défaut), horizontalement ou verticalement, évitant les opérations complexes tout en conservant un grand champ récepteur effectif. Cela réduit considérablement le coût de calcul par rapport à l’auto-attention standard.
- Réseaux résiduels efficaces d’agrégation de couches (R-ELAN) : un module d’agrégation de caractéristiques amélioré, basé sur ELAN et conçu pour relever les défis d’optimisation, en particulier dans les modèles à grande échelle axés sur l’attention. R-ELAN introduit :
- Des connexions résiduelles au niveau des blocs avec mise à l’échelle (semblable à la mise à l’échelle des couches).
- Une méthode d’agrégation de caractéristiques repensée, qui crée une structure de type goulot d’étranglement.
- Architecture d’attention optimisée : YOLO12 rationalise le mécanisme d’attention standard afin d’améliorer son efficacité et sa compatibilité avec le framework YOLO. Cela comprend :
- L’utilisation de FlashAttention pour réduire au minimum la surcharge liée aux accès mémoire.
- La suppression de l’encodage positionnel pour obtenir un modèle plus simple et plus rapide.
- L’ajustement du ratio MLP (de la valeur habituelle de 4 à 1,2 ou 2) pour mieux équilibrer les calculs entre les couches d’attention et les couches à propagation avant.
- La réduction de la profondeur des blocs empilés pour améliorer l’optimisation.
- L’utilisation d’opérations de convolution (lorsqu’elles sont pertinentes) pour leur efficacité de calcul.
- L’ajout d’une convolution séparable 7x7 (« percepteur de position ») au mécanisme d’attention afin d’encoder implicitement les informations de position.
- Prise en charge complète des tâches : YOLO12 prend en charge plusieurs tâches essentielles de vision par ordinateur : 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).
- Efficacité accrue : atteint une précision supérieure avec moins de paramètres que de nombreux modèles antérieurs, offrant ainsi un meilleur équilibre entre vitesse et précision.
- Déploiement flexible : conçu pour être déployé sur diverses plateformes, des appareils en périphérie au cloud.

Tâches et modes pris en charge#
YOLO12 prend en charge diverses tâches de vision par ordinateur. Le tableau ci-dessous indique les tâches prises en charge et les modes opérationnels (inférence, validation, entraînement et exportation) disponibles 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 de segmentation, de classification, de pose et OBB sont définies dans ultralytics/cfg/models/12/ ; ces variantes prennent donc en charge l’entraînement à partir de zéro avec la configuration .yaml, mais aucun fichier .pt préentraîné n’est actuellement disponible pour elles. Pour obtenir des points de contrôle préentraînés pour la segmentation, la pose, la classification ou OBB, Ultralytics recommande YOLO11 ou YOLO26.
| Type de modèle | Tâche | Poids préentraînés | Entraînement | Validation | Inférence | Export |
|---|---|---|---|---|---|---|
| YOLO12 | Détection | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentation | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classification | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Toutes les architectures YOLO12 prennent en charge chaque mode dès qu’un point de contrôle 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 OBB, tu dois entraîner ton propre point de contrôle à partir du fichier .yaml correspondant avant de lancer l’inférence, la validation ou l’exportation.
Indicateurs de performance#
YOLO12 présente des améliorations notables en matière de précision à toutes les échelles de modèle, avec certains compromis de vitesse par rapport aux modèles YOLO antérieurs les plus rapides. Voici les résultats quantitatifs pour la détection d’objets sur le jeu de validation COCO :
Performances de détection (COCO val2017)#
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT (ms) | paramètres (M) | FLOPs (B) | Comparaison (mAP/vitesse) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 7.5 | +2.1 %/-9 % (vs. YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.3 | +0.1 %/+42 % (vs. RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 70.7 | +1.0 %/-3 % (vs. YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 95.4 | +0.4 %/-8 % (vs. YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 208.9 | +0.6 %/-4 % (vs. YOLO11x) |
- Vitesse d’inférence mesurée sur un GPU NVIDIA T4 avec la précision FP16 de TensorRT.
- Les comparaisons indiquent l’amélioration relative de mAP et la variation en pourcentage de la vitesse (une valeur positive indique une accélération ; une valeur négative, un ralentissement). Elles 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 présente des exemples d’entraînement et d’inférence avec YOLO12. Pour une documentation plus complète sur ces modes et d’autres (notamment la validation et l’exportation), consulte les pages dédiées à la prédiction et à l’entraînement.
Les exemples ci-dessous portent sur les modèles YOLO12 Detect (pour la détection d’objets). Pour les autres tâches prises en charge (segmentation, classification, estimation de pose et détection d’objets orientés), consulte la documentation dédiée à chaque tâche : Segment, Classify, Pose et OBB.
Les modèles *.pt préentraînés (avec 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
# Charger un modèle YOLO12n préentraîné sur COCO
model = YOLO("yolo12n.pt")
# Entraîner le modèle sur le jeu de données d'exemple COCO8 pendant 100 époques
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Lancer l’inférence avec le modèle YOLO12n sur l’image 'bus.jpg'
results = model("path/to/bus.jpg")Améliorations clés#
-
Amélioration de l’extraction de caractéristiques :
- Attention par zone : traite efficacement de grands champs récepteurs et réduit le coût de calcul.
- Équilibre optimisé : améliore l’équilibre entre les calculs des réseaux d’attention et à propagation avant.
- R-ELAN : améliore l’agrégation de caractéristiques grâce à 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 des caractéristiques affinée : met en œuvre une méthode améliorée d’intégration des caractéristiques dans R-ELAN.
- FlashAttention : intègre FlashAttention pour réduire la surcharge liée aux accès mémoire.
-
Efficacité architecturale :
- Moins de paramètres : réduit 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 rationalisée : utilise une implémentation simplifiée de l’attention, sans encodage positionnel.
- Ratios MLP optimisés : ajuste les ratios MLP afin de répartir plus efficacement les ressources de calcul.
Configuration requise#
Par défaut, l’implémentation Ultralytics de YOLO12 ne nécessite pas FlashAttention. Toutefois, FlashAttention peut être compilé et utilisé en option avec YOLO12. Pour compiler FlashAttention, il faut l’un des GPU NVIDIA suivants :
- GPU Turing (p. ex. T4, gamme Quadro RTX)
- GPU Ampere (p. ex. gamme RTX30, A30/40/100)
- GPU Ada Lovelace (p. ex. gamme RTX40)
- GPU Hopper (p. ex., H100/H200)
Citations et remerciements#
Si tu utilises YOLO12 dans tes recherches, cite les travaux originaux de l'université de Buffalo et de l'Académie chinoise des sciences :
@inproceedings{tian2025yolov12,
title={YOLOv12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
booktitle={Advances in Neural Information Processing Systems},
volume={38},
pages={78433--78457},
year={2025},
url={https://proceedings.neurips.cc/paper_files/paper/2025/file/7103444259031cc58051f8c9a4868533-Paper-Conference.pdf}
}
@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}
}L'article sur YOLO12 a été publié dans les actes de NeurIPS 2025, avec une prépublication sur arXiv.
FAQ#
YOLO12 intègre plusieurs innovations clés pour équilibrer vitesse et précision. Le mécanisme d’attention par zones traite efficacement les grands champs réceptifs et réduit le coût de calcul par rapport à l’auto-attention standard. Les réseaux d’agrégation de couches résiduelles efficaces (R-ELAN) améliorent l’agrégation des caractéristiques et répondent aux difficultés d’optimisation des modèles plus grands, centrés sur l’attention. Une architecture d’attention optimisée, qui comprend l’utilisation de FlashAttention et la suppression de l’encodage positionnel, renforce encore l’efficacité. Ces caractéristiques permettent à YOLO12 d’atteindre une précision de pointe tout en conservant la vitesse d’inférence en temps réel, essentielle à de nombreuses applications.
YOLO12 est un modèle polyvalent qui prend en charge un large éventail 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 les détails). Cette prise en charge complète des tâches fait de YOLO12 un outil puissant pour des applications variées, de la robotique et de la conduite autonome à l’imagerie médicale et à l’inspection industrielle. Note que les poids
.ptpréentraînés sont actuellement publiés uniquement pour la détection ; les architectures de segmentation, de pose, de classification et d’OBB sont fournies sous forme de fichiers de configuration.yamlpour l’entraînement à partir de zéro.YOLO12 améliore considérablement la précision à toutes les échelles de modèle par rapport aux modèles YOLO précédents, comme YOLOv10 et YOLO11, au prix de certains compromis de vitesse par rapport aux modèles antérieurs les plus rapides. Par exemple, YOLO12n améliore le mAP de +2,1 % par rapport à YOLOv10n et de +1,2 % par rapport à YOLO11n sur le jeu de données COCO val2017. Par rapport à des modèles comme RT-DETR, YOLO12s offre une amélioration de +1,5 % du mAP et une hausse substantielle de 42 % de la vitesse. Ces mesures soulignent l’équilibre remarquable de YOLO12 entre précision et efficacité. Consulte la section sur les métriques de performance pour des comparaisons détaillées.
Par défaut, l’implémentation Ultralytics de YOLO12 ne nécessite pas FlashAttention. Toutefois, FlashAttention peut être compilé et utilisé en option avec YOLO12 afin de réduire au minimum la surcharge liée aux accès mémoire. Pour compiler FlashAttention, il faut l’un des GPU NVIDIA suivants : GPU Turing (p. ex., T4, série Quadro RTX), GPU Ampere (p. ex., série RTX30, A30/40/100), GPU Ada Lovelace (p. ex., série RTX40) ou GPU Hopper (p. ex., H100/H200). Cette souplesse permet de tirer parti des avantages de FlashAttention lorsque les ressources matérielles le permettent.
Cette page fournit des exemples d’utilisation élémentaires pour l’entraînement et l’inférence. Pour consulter une documentation complète sur ces modes et les autres, notamment la validation et l’exportation, consulte les pages dédiées à la prédiction et à l’entraînement. Pour en savoir plus sur des tâches spécifiques (segmentation, classification, estimation de pose et détection d’objets orientés), consulte la documentation correspondante : Segment, Classify, Pose et OBB. Ces ressources fournissent des conseils approfondis pour utiliser efficacement YOLO12 dans différents scénarios.