YOLO12 : Détection d'objets axée sur l'attention
Aperçu
YOLO12 introduit une architecture centrée sur l'attention qui s'écarte 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 précision de pointe en matière de détection d'objets grâce à des innovations méthodologiques novatrices dans les mécanismes d'attention et l'architecture globale du réseau, tout en maintenant des performances en temps réel.
Regarder : Comment utiliser YOLO12 pour la détection d'objets avec le package Ultralytics | YOLO12 est-il rapide ou lent ? 🚀
Principales caractéristiques
- Mécanisme d'attention de zone : Une nouvelle approche d'auto-attention qui traite efficacement les grands champs réceptifs. Il divise les cartes de caractéristiques en l régions de taille égale (par défaut 4), horizontalement ou verticalement, évitant les opérations complexes et maintenant un grand champ réceptif effectif. Cela réduit considérablement le coût de calcul par rapport à l'auto-attention standard.
- Réseaux d'agrégation de couches efficaces résiduelles (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, en particulier dans les modèles à grande échelle axés sur l'attention. R-ELAN introduit :
- Connexions résiduelles au niveau des blocs avec mise à l'échelle (similaire à la mise à l'échelle des couches).
- Une méthode de regroupement de caractéristiques repensée créant une structure de type goulot d'étranglement.
- Architecture d'attention optimisée: YOLO12 rationalise le mécanisme d'attention standard pour une plus grande efficacité et compatibilité avec le framework YOLO. Ceci comprend :
- Utilisation de FlashAttention pour minimiser la surcharge 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 la valeur typique de 4 à 1,2 ou 2) pour mieux équilibrer le calcul entre l'attention et les couches de propagation.
- Réduction de la profondeur des blocs empilés pour une optimisation améliorée.
- Exploitation des opérations de convolution (le cas échéant) pour leur efficacité de calcul.
- Ajout d'une convolution séparable 7x7 (le « percepteur de position ») au mécanisme d'attention pour encoder implicitement les informations de position.
- Prise en charge complète des tâches : YOLO12 prend en charge une gamme de tâches de vision par ordinateur de base : la détection d'objets, la segmentation d'instance, la classification d'images, l'estimation de pose et la détection d'objets orientés (OBB).
- Efficacité accrue : Atteint une plus grande précision 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 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 présente la prise en charge des tâches et les modes de fonctionnement (Inférence, Validation, Entraînement et Exportation) activés pour chacun :
Type de modèle | Tâche | Inférence | Validation | Entraînement | Exporter |
---|---|---|---|---|---|
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 pour toutes les échelles de modèles, avec certains compromis en termes de vitesse par rapport aux modèles YOLO antérieurs les plus rapides. Vous trouverez ci-dessous les résultats quantitatifs pour la détection d'objets sur l'ensemble de données de validation COCO :
Performance de détection (COCO val2017)
Performance
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 | 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 pourcentage de variation de la vitesse (positif indique plus rapide ; négatif indique plus lent). Les comparaisons sont faites avec les résultats publiés pour YOLOv10, YOLO11 et RT-DETR lorsque 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'Exportation), consultez 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 la pose), consultez la documentation spécifique à chaque tâche : Segment, Classify, OBB et Pose.
Exemple
Pré-entraîné *.pt
modèles (en utilisant PyTorch) et la configuration *.yaml
fichiers peuvent être passés aux YOLO()
class 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")
Les commandes de l'interface de ligne de commande (CLI) sont également disponibles :
# Load a COCO-pretrained YOLO12n model and train on the COCO8 example dataset for 100 epochs
yolo train model=yolo12n.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLO12n model and run inference on the 'bus.jpg' image
yolo predict model=yolo12n.pt source=path/to/bus.jpg
Améliorations clés
-
Extraction de caractéristiques améliorée :
- Attention de zone : Gère efficacement les grands champs réceptifs, réduisant ainsi le coût de calcul.
- Équilibre optimisé : Équilibre amélioré entre les calculs du réseau d'attention et du réseau feed-forward.
- 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 plus grands.
- Intégration améliorée des fonctionnalités : Met en œuvre une méthode améliorée d'intégration des fonctionnalités 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 : Permet d'obtenir un nombre de paramètres inférieur tout en conservant ou en améliorant la précision par rapport à de nombreux modèles précédents.
- Attention simplifiée : Utilise une implémentation d'attention simplifiée, évitant l'encodage positionnel.
- Ratios MLP optimisés : Ajuste les ratios MLP pour allouer plus efficacement les ressources de calcul.
Exigences
L'implémentation Ultralytics YOLO12, par défaut, ne nécessite pas FlashAttention. Cependant, FlashAttention peut être compilé et utilisé avec YOLO12 en option. Pour compiler FlashAttention, l'une des cartes graphiques NVIDIA suivantes est nécessaire :
- GPU Turing (par exemple, T4, série Quadro RTX)
- GPU Ampere (par exemple, la série RTX30, A30/40/100)
- GPU Ada Lovelace (par exemple, la série RTX40)
- GPU Hopper (par exemple, H100/H200)
Citations et remerciements
Si vous utilisez YOLO12 dans vos recherches, veuillez citer les travaux originaux 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 à réaliser une détection d'objets en temps réel tout en conservant une haute précision ?
YOLO12 intègre plusieurs innovations clés pour équilibrer vitesse et précision. Le mécanisme d'attention de zone traite efficacement les grands champs réceptifs, réduisant ainsi le coût 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, résolvant ainsi les problèmes d'optimisation dans les modèles plus grands centrés sur l'attention. L'architecture d'attention optimisée, y compris l'utilisation de FlashAttention et la suppression du codage 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 essentielle 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 un large éventail de tâches de vision par ordinateur de base. 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 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 effectuée en modes Inférence, Validation, Entraînement et Exportation.
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 pour toutes les échelles de modèles par rapport aux modèles YOLO précédents tels que YOLOv10 et YOLO11, avec certains compromis en termes de vitesse par rapport aux modèles précédents les plus rapides. Par exemple, YOLO12n atteint une amélioration de +2,1 % de la mAP par rapport à YOLOv10n et de +1,2 % par rapport à YOLO11n sur l'ensemble de données COCO val2017. Comparé à des modèles comme RT-DETR, YOLO12s offre une amélioration de +1,5 % de la mAP et une augmentation de vitesse substantielle de +42 %. Ces mesures mettent en évidence le fort équilibre de YOLO12 entre précision et efficacité. Consultez la section sur les mesures de performance pour des comparaisons détaillées.
Quelles sont les exigences matérielles pour exécuter YOLO12, en particulier pour l'utilisation de FlashAttention ?
Par défaut, l'implémentation Ultralytics YOLO12 n' exige pas FlashAttention. Cependant, FlashAttention peut être compilé et utilisé de manière optionnelle avec YOLO12 afin de 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, séries T4, Quadro RTX), GPU Ampere (par exemple, séries RTX30, A30/40/100), GPU Ada Lovelace (par exemple, séries RTX40) ou GPU Hopper (par exemple, 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'Exportation, consultez les pages dédiées Predict et Train. Pour des informations spécifiques à chaque tâche (segmentation, classification, détection d'objets orientés et estimation de la pose), consultez la documentation correspondante : Segment, Classify, OBB et Pose. Ces ressources fournissent des conseils approfondis pour utiliser efficacement YOLO12 dans divers scénarios.