Ultralytics YOLO27:

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.

Modelo da comunidade

O YOLO12 é mantido principalmente para benchmarking e investigação. Se precisares de um treino estável, utilização de memória previsível e inferência otimizada na CPU, escolhe o YOLO11 ou o YOLO26 para implementaçã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.

Visualização da comparação do YOLO12

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:

Disponibilidade de pesos pré-treinados

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 modeloTarefaPesos pré-treinadosTreinoValidaçãoInferênciaExportação
YOLO12Deteção
YOLO12-segSegmentação
YOLO12-clsClassificação
YOLO12-posePose
YOLO12-obbOBB

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)#

Desempenho
Modelotamanho
(píxeis)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT
(ms)
parâmetros
(M)
FLOPs
(B)
Comparação
(mAP/Velocidade)
YOLO12n64040.6-1.642.67.5+2,1%/-9% (vs. YOLOv10n)
YOLO12s64048.0-2.619.323.3+0,1%/+42% (vs. RT-DETRv2)
YOLO12m64052.5-4.8620.270.7+1,0%/-3% (vs. YOLO11m)
YOLO12l64053.7-6.7726.495.4+0,4%/-8% (vs. YOLO11l)
YOLO12x64055.2-11.7959.1208.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.

Exemplo

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#

  1. 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.
  2. 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.
  3. 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:

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:

Citação
@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 .pt pré-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 .yaml para 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.

Comentários