Vision Transformer (ViT)
Explora o poder dos Vision Transformers (ViT). Aprende como o self-attention e a tokenização de patches revolucionam a visão computacional além das CNNs com o Ultralytics.
Um Vision Transformer (ViT) é uma arquitetura de aprendizado profundo que adapta os mecanismos de autoatenção originalmente projetados para Natural Language Processing (NLP) para resolver tarefas visuais. Ao contrário de uma Convolutional Neural Network (CNN) tradicional, que processa imagens através de uma hierarquia de grades de pixels locais, um ViT trata uma imagem como uma sequência de patches discretos. Essa abordagem foi popularizada pelo artigo de pesquisa histórico "An Image is Worth 16x16 Words", que demonstrou que arquiteturas de transformadores puras poderiam alcançar desempenho de ponta em computer vision (CV) sem depender de camadas de convolução. Ao aproveitar a atenção global, os ViTs conseguem capturar dependências de longo alcance em uma imagem inteira desde a primeira camada.
Como funcionam os Vision Transformers#
A inovação fundamental do ViT é a forma como ele estrutura os dados de entrada. Para tornar uma imagem compatível com um Transformer padrão, o modelo divide a informação visual em uma sequência de vetores, imitando a forma como um modelo de linguagem processa uma frase de palavras.
-
Patch Tokenization: A imagem de entrada é dividida em uma grade de quadrados de tamanho fixo, tipicamente 16x16 pixels. Cada quadrado é achatado em um vetor, tornando-se efetivamente um token visual.
-
Linear Projection: Esses patches achatados passam por uma camada linear treinável para criar embeddings densos. Esta etapa mapeia os valores de pixels brutos para um espaço de alta dimensionalidade que o modelo pode processar.
-
Positional Encoding: Como a arquitetura processa sequências em paralelo e carece de uma compreensão inerente de ordem ou espaço, positional encodings aprendíveis são adicionados aos embeddings dos patches. Isso permite que o modelo retenha informações espaciais sobre onde cada patch pertence na imagem original.
-
Self-Attention Mechanism: A sequência entra no codificador Transformer, onde a self-attention permite que cada patch interaja com todos os outros patches simultaneamente. Isso permite que a rede aprenda o contexto global, entendendo como um pixel no canto superior esquerdo se relaciona com um no canto inferior direito.
-
Classification Head: Para tarefas como image classification, um "token de classe" especial é frequentemente colocado no início da sequência. O estado de saída final desse token serve como a representação agregada da imagem, que é então alimentada em um classificador, como um multilayer perceptron (MLP).
Vision Transformers vs. CNNs#
Embora ambas as arquiteturas tenham como objetivo entender dados visuais, elas diferem significativamente em sua filosofia operacional. As CNNs possuem um forte "viés indutivo" conhecido como invariância de translação, o que significa que elas assumem inerentemente que recursos locais (como bordas e texturas) são importantes independentemente de sua posição. Isso torna as CNNs altamente eficientes em termos de dados e eficazes em datasets menores.
Por outro lado, os Vision Transformers têm menos viés específico de imagem. Eles devem aprender relações espaciais do zero usando quantidades massivas de training data, como os conjuntos de dados JFT-300M ou ImageNet completo. Embora isso torne o treinamento mais intensivo computacionalmente, permite que os ViTs escalem notavelmente bem; com dados suficientes e compute power, eles podem superar as CNNs capturando estruturas globais complexas que as convoluções locais podem perder.
Aplicações no Mundo Real#
A capacidade de entender o contexto global torna os ViTs particularmente úteis para ambientes complexos e de alto risco.
- Medical Image Analysis: Em healthcare AI, os ViTs são usados para analisar exames de alta resolução, como ressonâncias magnéticas ou lâminas de histopatologia. Por exemplo, na tumor detection, um ViT pode correlacionar anomalias texturais sutis no tecido com mudanças estruturais mais amplas em toda a lâmina, identificando padrões malignos que o processamento local pode ignorar.
- Satellite Imagery and Remote Sensing: Os ViTs se destacam na satellite image analysis onde as relações entre os objetos abrangem grandes distâncias. Por exemplo, conectar um local de desmatamento a uma estrada de extração de madeira distante requer a compreensão do "panorama geral" de uma paisagem, uma tarefa em que a atenção global de um ViT supera o campo receptivo limitado de CNNs padrão.
Utilizando Transformers com Ultralytics#
A biblioteca ultralytics suporta arquiteturas baseadas em Transformer, mais notavelmente o RT-DETR (Real-Time Detection Transformer). Embora o principal YOLO26 seja frequentemente preferido por seu equilíbrio entre velocidade e precisão em dispositivos de borda, o RT-DETR oferece uma alternativa poderosa para cenários que priorizam o contexto global.
O exemplo a seguir em Python demonstra como carregar um modelo pré-treinado baseado em Transformer e executar a inferência:
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model (Vision Transformer-based)
model = RTDETR("rtdetr-l.pt")
# Run inference on an image source
# The model uses self-attention to detect objects globally
results = model("https://ultralytics.com/images/bus.jpg")
# Display the detection results
results[0].show()Perspectiva Futura#
A pesquisa está evoluindo rapidamente para enfrentar o alto custo computacional dos ViTs. Técnicas como FlashAttention estão tornando esses modelos mais rápidos e eficientes em termos de memória. Além disso, arquiteturas híbridas que combinam a eficiência das CNNs com a atenção dos Transformers estão se tornando comuns. Para equipes que buscam gerenciar esses fluxos de trabalho avançados, a Ultralytics Platform oferece um ambiente unificado para anotar dados, treinar modelos complexos via nuvem e implantá-los em diversos terminais.






