Saltar para o conteúdo

YOLO12: Deteção de objectos centrada na atenção

Visão geral

O YOLO12 introduz uma arquitetura centrada na atenção que se afasta das abordagens tradicionais baseadas em CNN utilizadas em modelos YOLO anteriores, mas mantém a velocidade de inferência em tempo real essencial para muitas aplicações. Este modelo atinge uma precisão de deteção de objectos topo de gama através de inovações metodológicas nos mecanismos de atenção e na arquitetura geral da rede, mantendo o desempenho em tempo real.



Ver: Como utilizar o YOLO12 para a deteção de objectos com o pacote Ultralytics | O YOLO12 é rápido ou lento? 🚀

Caraterísticas principais

  • Mecanismo de atenção de área: Uma nova abordagem de auto-atenção que processa grandes campos receptivos de forma eficiente. Divide os mapas de caraterísticas em regiões de igual dimensão (por defeito, 4), horizontal ou verticalmente, evitando operações complexas e mantendo um grande campo recetivo efetivo. Isto reduz significativamente o custo computacional em comparação com a auto-atenção padrão.
  • Redes de agregação de camadas residuais eficientes (R-ELAN): Um módulo de agregação de caraterísticas melhorado baseado no ELAN, concebido para enfrentar os desafios de otimização, especialmente em modelos centrados na atenção em grande escala. O R-ELAN apresenta:
    • Ligações residuais ao nível do bloco com escalonamento (semelhante ao escalonamento de camadas).
    • Um método de agregação de caraterísticas redesenhado que cria uma estrutura semelhante a um estrangulamento.
  • Arquitetura de atenção optimizada: O YOLO12 simplifica o mecanismo de atenção padrão para maior eficiência e compatibilidade com a estrutura YOLO . Isto inclui:
    • Utilização do FlashAttention para minimizar a sobrecarga de acesso à memória.
    • Remoção da codificação posicional para um modelo mais limpo e mais rápido.
    • Ajustar o rácio MLP (do típico 4 para 1,2 ou 2) para equilibrar melhor o cálculo entre as camadas de atenção e de avanço.
    • Reduzir a profundidade dos blocos empilhados para uma melhor otimização.
    • Tirar partido das operações de convolução (quando adequado) para a sua eficiência computacional.
    • Adição de uma convolução separável 7x7 (o "percepcionador de posição") ao mecanismo de atenção para codificar implicitamente a informação posicional.
  • Suporte abrangente de tarefas: O YOLO12 suporta uma série de tarefas essenciais de visão computacional: deteção de objectos, segmentação de instâncias, classificação de imagens, estimativa de pose e deteção orientada de objectos (OBB).
  • Eficiência melhorada: Atinge uma maior precisão com menos parâmetros em comparação com muitos modelos anteriores, demonstrando um melhor equilíbrio entre velocidade e precisão.
  • Implantação flexível: Projetado para implantação em diversas plataformas, desde dispositivos de borda até infraestrutura de nuvem.

Visualização da comparação YOLO12

Tarefas e modos suportados

O YOLO12 suporta uma variedade de tarefas de visão computacional. A tabela abaixo mostra o suporte de tarefas e os modos operacionais (Inferência, Validação, Treinamento e Exportação) habilitados para cada uma delas:

Tipo de modelo Tarefa Inferência Validação Formação Exportação
YOLO12 Deteção
YOLO12-seg Segmentação
YOLO12-pose Pose
YOLO12-cls Classificação
YOLO12-obb OBB

Métricas de desempenho

O YOLO12 demonstra melhorias significativas na precisão em todas as escalas do modelo, com algumas compensações na velocidade em comparação com os modelos YOLO anteriores mais rápidos. Abaixo estão os resultados quantitativos para a deteção de objectos no conjunto de dados de validação COCO:

Desempenho de deteção (COCO val2017)

Desempenho

Modelo tamanho
(pixéis)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT
(ms)
params
(M)
FLOPs
(B)
Comparação
(mAP/Velocidade)
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)
  • Velocidade de inferência medida numa GPU NVIDIA T4 com precisão FP16 TensorRT .
  • As comparações mostram a melhoria relativa no mAP e a alteração percentual na velocidade (positivo indica mais rápido; negativo indica mais lento). As comparações são efectuadas com os resultados publicados para YOLOv10, YOLO11 e RT-DETR , quando disponíveis.

Exemplos de utilização

Esta secção fornece exemplos de formação e inferência com o YOLO12. Para obter documentação mais completa sobre estes e outros modos (incluindo Validação e Exportação), consulte as páginas dedicadas a Prever e Treinar.

Os exemplos abaixo centram-se nos modelos YOLO12 Detect (para deteção de objectos). Para outras tarefas suportadas (segmentação, classificação, deteção orientada de objectos e estimativa de pose), consulte a respectiva documentação específica da tarefa: Segmentar, Classificar, OBB e Pose.

Exemplo

Pré-treinado *.pt modelos (utilizando PyTorch) e configuração *.yaml podem ser passados para os ficheiros YOLO() para criar uma instância de 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")

Os comandos da interface de linha de comandoCLI) também estão disponíveis:

# 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

Principais melhorias

  1. Extração de caraterísticas melhorada:

    • Atenção à área: Lida eficazmente com grandes campos receptivos, reduzindo o custo computacional.
    • Equilíbrio optimizado: Melhoria do equilíbrio entre a atenção e os cálculos da rede feed-forward.
    • R-ELAN: Melhora a agregação de caraterísticas utilizando a arquitetura R-ELAN.
  2. Inovações de otimização:

    • Conexões residuais: Introduz conexões residuais com escalonamento para estabilizar o treinamento, especialmente em modelos maiores.
    • Integração de caraterísticas refinada: Implementa um método melhorado de integração de caraterísticas no R-ELAN.
    • FlashAttention: Incorpora o FlashAttention para reduzir a sobrecarga de acesso à memória.
  3. Eficiência arquitetónica:

    • Parâmetros reduzidos: Atinge uma contagem de parâmetros mais baixa, 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 optimizados: Ajusta as proporções de MLP para alocar recursos computacionais de forma mais eficaz.

Requisitos

A implementação do Ultralytics YOLO12, por defeito, não requer o FlashAttention. No entanto, o FlashAttention pode ser opcionalmente compilado e usado com o YOLO12. Para compilar o FlashAttention, é necessária uma das seguintes GPUs NVIDIA :

Citações e agradecimentos

Se utilizar o YOLO12 na sua investigação, cite o trabalho original da Universidade de Buffalo e da Universidade da Academia Chinesa de Ciências:

@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

Como é que o YOLO12 consegue a deteção de objectos em tempo real, mantendo uma elevada precisão?

O YOLO12 incorpora várias inovações importantes para equilibrar a velocidade e a precisão. O mecanismo de atenção de área processa eficientemente grandes campos receptivos, reduzindo o custo computacional em comparação com a auto-atenção padrão. As Residual Efficient Layer Aggregation Networks (R-ELAN) melhoram a agregação de caraterísticas, abordando os desafios de otimização em modelos centrados na atenção de maior dimensão. A Arquitetura de Atenção Optimizada, incluindo a utilização do FlashAttention e a remoção da codificação posicional, aumenta ainda mais a eficiência. Estas caraterísticas permitem ao YOLO12 alcançar uma precisão de ponta, mantendo a velocidade de inferência em tempo real crucial para muitas aplicações.

Que tarefas de visão computacional são suportadas pelo YOLO12?

O YOLO12 é um modelo versátil que suporta uma vasta gama de tarefas essenciais de visão computacional. Destaca-se na deteção de objectos, segmentação de instâncias, classificação de imagens, estimativa de pose e deteção orientada de objectos (OBB)(ver detalhes). Este suporte abrangente de tarefas faz do YOLO12 uma ferramenta poderosa para diversas aplicações, desde a robótica e a condução autónoma até à imagiologia médica e à inspeção industrial. Cada uma dessas tarefas pode ser executada nos modos Inferência, Validação, Treinamento e Exportação.

Como é que o YOLO12 se compara com outros modelos YOLO e concorrentes como o RT-DETR?

O YOLO12 demonstra melhorias significativas na precisão em todas as escalas do modelo em comparação com modelos YOLO anteriores, como YOLOv10 e YOLO11, com algumas compensações 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 +1,2% em relação ao YOLO11n no conjunto de dados COCO val2017. Em comparação com modelos como RT-DETRo YOLO12s oferece uma melhoria de +1,5% no mAP e um aumento substancial de +42% na velocidade. Essas métricas destacam o forte equilíbrio do YOLO12 entre precisão e eficiência. Consulte a secção de métricas de desempenho para comparações detalhadas.

Quais são os requisitos de hardware para executar o YOLO12, especialmente para utilizar o FlashAttention?

Por defeito, a implementação do Ultralytics YOLO12 não requer o FlashAttention. No entanto, o FlashAttention pode ser opcionalmente compilado e usado com o YOLO12 para minimizar a sobrecarga de acesso à memória. Para compilar o 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 das vantagens do FlashAttention quando os recursos de hardware o permitem.

Onde posso encontrar exemplos de utilização e documentação mais detalhada sobre o YOLO12?

Esta página fornece exemplos básicos de utilização para formação e inferência. Para obter documentação completa sobre estes e outros modos, incluindo Validação e Exportação, consulte as páginas dedicadas a Prever e Treinar. Para obter informações específicas sobre tarefas (segmentação, classificação, deteção de objectos orientados e estimativa de pose), consulte a respectiva documentação: Segmentar, Classificar, OBB e Pose. Estes recursos fornecem orientação aprofundada para a utilização efectiva do YOLO12 em vários cenários.

📅C riado há 1 mês ✏️ Atualizado há 27 dias

Comentários