YOLO12: Deteção de Objetos Centrada na Atenção#
Visão geral#
Lançado no início de 2025, o YOLO12 introduz uma arquitetura centrada na atenção que se afasta das abordagens tradicionais baseadas em CNN utilizadas nos modelos YOLO anteriores, mantendo, contudo, a velocidade de inferência em tempo real essencial para muitas aplicações. Este modelo alcança uma elevada precisão na deteção de objetos através de inovações metodológicas nos mecanismos de atenção e na arquitetura geral da rede, mantendo simultaneamente o desempenho em tempo real. Apesar destas vantagens, o YOLO12 continua a ser uma versão orientada pela comunidade, que pode apresentar instabilidade no treino, consumo de memória elevado e menor desempenho da CPU devido aos seus blocos de atenção pesados. Por isso, a Ultralytics recomenda o YOLO11 ou o YOLO26 para a maioria das cargas de trabalho de produção.
Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀
Principais funcionalidades#
- Mecanismo de Atenção por Áreas: uma nova abordagem de autoatenção que processa campos recetivos grandes de forma eficiente. Divide os mapas de características em l regiões de tamanho igual (por predefinição, 4), na horizontal ou na vertical, evitando operações complexas e mantendo um campo recetivo efetivo amplo. Isto reduz significativamente o custo computacional em comparação com a autoatenção padrão.
- Redes de Agregação de Camadas Eficientes Residuais (R-ELAN): um módulo de agregação de características melhorado, baseado em ELAN, concebido para resolver desafios de otimização, especialmente em modelos de maior escala centrados na atenção. O R-ELAN introduz:
- Ligações residuais ao nível dos blocos com escalonamento (semelhante ao escalonamento de camadas).
- Um método de agregação de características redesenhado, que cria uma estrutura semelhante a um gargalo.
- Arquitetura de Atenção Otimizada: o YOLO12 simplifica o mecanismo de atenção padrão para obter maior eficiência e compatibilidade com o framework YOLO. Isto inclui:
- Utilização de FlashAttention para minimizar a sobrecarga de acesso à memória.
- Remoção da codificação posicional para obter um modelo mais simples e rápido.
- Ajuste do rácio MLP (do valor habitual de 4 para 1,2 ou 2) para equilibrar melhor a computação entre as camadas de atenção e de alimentação direta.
- Redução da profundidade dos blocos empilhados para melhorar a otimização.
- Utilização de operações de convolução (quando apropriado) devido à sua eficiência computacional.
- Adição de uma convolução separável 7x7 (o "recetor de posição") ao mecanismo de atenção para codificar implicitamente a informação posicional.
- Suporte Abrangente de Tarefas: o YOLO12 suporta várias tarefas essenciais de visão computacional: deteção de objetos, segmentação de instâncias, classificação de imagens, estimação de pose e deteção de objetos orientados (OBB).
- Eficiência Melhorada: alcança uma maior precisão com menos parâmetros do que muitos modelos anteriores, demonstrando um equilíbrio melhorado entre velocidade e precisão.
- Implementação Flexível: concebido para implementação numa grande variedade de plataformas, desde dispositivos de edge computing até infraestruturas na cloud.

Tarefas e modos suportados#
O YOLO12 suporta várias tarefas de visão computacional. A tabela abaixo mostra o suporte de tarefas e os modos operacionais (Inferência, Validação, Treino e Exportação) ativados para cada uma:
Apenas os pesos de deteção (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt) são disponibilizados em ultralytics/assets. As arquiteturas de segmentação, classificação, pose e OBB estão definidas em ultralytics/cfg/models/12/, pelo que essas variantes suportam treino a partir do zero através da configuração .yaml, mas atualmente não existem ficheiros .pt pré-treinados disponíveis para as mesmas. Para obter checkpoints pré-treinados de segmentação, pose, classificação ou OBB, a Ultralytics recomenda o YOLO11 ou o YOLO26.
| Tipo de modelo | Tarefa | Pesos pré-treinados | Treino | Validação | Inferência | Exportação |
|---|---|---|---|---|---|---|
| YOLO12 | Deteção | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentação | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classificação | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Todas as arquiteturas YOLO12 suportam todos os modos assim que estiver disponível um checkpoint treinado. A coluna Pretrained Weights indica apenas se a Ultralytics publica um .pt pré-treinado oficial em ultralytics/assets: para segmentação, pose, classificação e OBB, tens de treinar o teu próprio checkpoint a partir da configuração .yaml correspondente antes de executares a inferência, a validação ou a exportação.
Métricas de desempenho#
O YOLO12 demonstra melhorias significativas de precisão em todas as escalas de modelos, com alguns compromissos na velocidade em comparação com os modelos YOLO anteriores mais rápidos. Apresentam-se abaixo os resultados quantitativos para a deteção de objetos no conjunto de validação COCO:
Desempenho da deteção (COCO val2017)#
| Modelo | tamanho (píxeis) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT (ms) | parâmetros (M) | FLOPs (B) | Comparação (mAP/Velocidade) |
|---|---|---|---|---|---|---|---|
| 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) |
- A velocidade de inferência foi medida numa GPU NVIDIA T4 com precisão TensorRT FP16.
- As comparações mostram a melhoria relativa no mAP e a alteração percentual na velocidade (um valor positivo indica maior rapidez; um valor negativo indica menor rapidez). As comparações são feitas com base nos resultados publicados para YOLOv10, YOLO11 e RT-DETR, quando disponíveis.
Exemplos de utilização#
Esta secção apresenta exemplos de treino e inferência com YOLO12. Para obter documentação mais abrangente sobre estes e outros modos (incluindo Validação e Exportação), consulta as páginas dedicadas de Previsão e Treino.
Os exemplos abaixo centram-se nos modelos YOLO12 de Deteção (para deteção de objetos). Para outras tarefas suportadas (segmentação, classificação, estimação de pose e deteção de objetos orientados), consulta a documentação específica de cada tarefa: Segmentação, Classificação, Pose e OBB.
Os modelos *.pt pré-treinados (utilizando PyTorch) e os ficheiros de configuração *.yaml podem ser passados à classe YOLO() para criar uma instância do modelo em 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")Principais melhorias#
-
Extração de Características Melhorada:
- Atenção por Áreas: processa eficientemente campos recetivos grandes, reduzindo o custo computacional.
- Equilíbrio Otimizado: equilíbrio melhorado entre as computações da atenção e da rede de alimentação direta.
- R-ELAN: melhora a agregação de características através da arquitetura R-ELAN.
-
Inovações na Otimização:
- Ligações Residuais: introduz ligações residuais com escalonamento para estabilizar o treino, especialmente em modelos maiores.
- Integração Refinada de Características: implementa um método melhorado para a integração de características no R-ELAN.
- FlashAttention: incorpora FlashAttention para reduzir a sobrecarga de acesso à memória.
-
Eficiência Arquitetural:
- Parâmetros Reduzidos: alcança uma menor quantidade de parâmetros, mantendo ou melhorando a precisão em comparação com muitos modelos anteriores.
- Atenção Simplificada: utiliza uma implementação simplificada da atenção, evitando a codificação posicional.
- Rácios MLP Otimizados: ajusta os rácios MLP para alocar os recursos computacionais de forma mais eficaz.
Requisitos#
Por predefinição, a implementação YOLO12 da Ultralytics não requer FlashAttention. No entanto, é possível compilar e utilizar opcionalmente FlashAttention com o YOLO12. Para compilar FlashAttention, é necessária uma das seguintes GPUs NVIDIA:
- GPUs Turing (por exemplo, T4, série Quadro RTX)
- GPUs Ampere (por exemplo, série RTX30, A30/40/100)
- GPUs Ada Lovelace (por exemplo, série RTX40)
- GPUs Hopper (por exemplo, H100/H200)
Citações e agradecimentos#
Se utilizares o YOLO12 na tua investigação, cita o trabalho original da University at Buffalo e da University of Chinese Academy of 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}
}O artigo do YOLO12 foi publicado nas atas da NeurIPS 2025, com um preprint disponível no arXiv.
Perguntas frequentes#
O YOLO12 incorpora várias inovações essenciais para equilibrar velocidade e precisão. O mecanismo de atenção por Áreas processa eficientemente campos recetivos grandes, reduzindo o custo computacional em comparação com a autoatenção padrão. As Redes de Agregação de Camadas Eficientes Residuais (R-ELAN) melhoram a agregação de características, resolvendo desafios de otimização em modelos maiores centrados na atenção. A Arquitetura de Atenção Otimizada, que inclui a utilização de FlashAttention e a remoção da codificação posicional, melhora ainda mais a eficiência. Estas funcionalidades permitem ao YOLO12 alcançar uma precisão de vanguarda, mantendo a velocidade de inferência em tempo real essencial para muitas aplicações.
O YOLO12 é um modelo versátil que suporta uma vasta gama de tarefas essenciais de visão computacional. Destaca-se na deteção de objetos, segmentação de instâncias, classificação de imagens, estimação de pose e deteção de objetos orientados (OBB) (consulta os detalhes). Este suporte abrangente de tarefas torna o YOLO12 uma ferramenta poderosa para diversas aplicações, desde robótica e condução autónoma até imagiologia médica e inspeção industrial. Nota que os pesos
.ptpré-treinados são atualmente publicados apenas para deteção; as arquiteturas de segmentação, pose, classificação e OBB são fornecidas como configurações.yamlpara treino a partir do zero.O YOLO12 demonstra melhorias significativas de precisão em todas as escalas de modelos em comparação com modelos YOLO anteriores, como YOLOv10 e YOLO11, com alguns compromissos na velocidade em comparação com os modelos anteriores mais rápidos. Por exemplo, o YOLO12n alcança uma melhoria de +2,1% no mAP em relação ao YOLOv10n e de +1,2% em relação ao YOLO11n no conjunto de dados COCO val2017. Em comparação com modelos como o RT-DETR, o YOLO12s oferece uma melhoria de +1,5% no mAP e um aumento substancial de +42% na velocidade. Estas métricas realçam o forte equilíbrio do YOLO12 entre precisão e eficiência. Consulta a secção de métricas de desempenho para obter comparações detalhadas.
Por predefinição, a implementação YOLO12 da Ultralytics não requer FlashAttention. No entanto, é possível compilar e utilizar opcionalmente FlashAttention com o YOLO12 para minimizar a sobrecarga de acesso à memória. Para compilar FlashAttention, é necessária uma das seguintes GPUs NVIDIA: GPUs Turing (por exemplo, T4, série Quadro RTX), GPUs Ampere (por exemplo, série RTX30, A30/40/100), GPUs Ada Lovelace (por exemplo, série RTX40) ou GPUs Hopper (por exemplo, H100/H200). Esta flexibilidade permite aos utilizadores tirar partido dos benefícios do FlashAttention quando os recursos de hardware o permitem.
Esta página fornece exemplos de utilização básicos para treino e inferência. Para obter documentação abrangente sobre estes e outros modos, incluindo Validação e Exportação, consulta as páginas dedicadas de Previsão e Treino. Para obter informações específicas sobre cada tarefa (segmentação, classificação, estimação de pose e deteção de objetos orientados), consulta a documentação correspondente: Segmentação, Classificação, Pose e OBB. Estes recursos fornecem orientações detalhadas para utilizar eficazmente o YOLO12 em vários cenários.