Glossário

Transformador de visão (ViT)

Descubra o poder dos Transformadores de Visão (ViTs) na visão por computador. Saiba como eles superam as CNNs ao capturar o contexto global da imagem.

Um Vision Transformer (ViT) é um tipo de arquitetura de rede neural que aplica o modelo Transformer, de grande sucesso, originalmente concebido para o processamento de linguagem natural (PNL), a tarefas de visão computacional (CV). Introduzidos por investigadores da Google no artigo "Uma imagem vale 16x16 palavras", os ViTs representam um afastamento significativo das arquitecturas dominantes das redes neuronais convolucionais (CNN). Em vez de processar imagens com filtros deslizantes, uma ViT trata uma imagem como uma sequência de retalhos, o que lhe permite captar relações globais entre diferentes partes de uma imagem utilizando o mecanismo de auto-atenção.

Como funcionam os transformadores da visão

A ideia central por detrás de um ViT é processar uma imagem de forma a imitar a forma como os Transformers processam o texto. O processo envolve alguns passos fundamentais:

  1. Patching de imagem: A imagem de entrada é primeiro dividida numa grelha de patches de tamanho fixo e não sobrepostos. Por exemplo, uma imagem de 224x224 píxeis pode ser dividida em 196 partes, cada uma com 16x16 píxeis.
  2. Incorporação de amostras: Cada amostra é achatada num único vetor. Estes vectores são depois projectados num espaço de dimensão inferior para criar "patch embeddings". Uma "incorporação posicional" aprendível é adicionada a cada incorporação de fragmento para reter informações espaciais.
  3. Codificador Transformer: Esta sequência de embeddings é introduzida num codificador Transformer padrão. Através das suas camadas de auto-atenção, o modelo aprende as relações entre todos os pares de amostras, permitindo-lhe captar o contexto global de toda a imagem desde a primeira camada.
  4. Cabeça de classificação: Para tarefas como a classificação de imagens, uma incorporação extra aprendível (semelhante ao token [CLS] no BERT) é adicionada à sequência. A saída correspondente do Transformador é passada para uma camada de classificação final para produzir a previsão.

ViT Vs. CNNs

Embora tanto as ViTs como as CNNs sejam arquitecturas fundamentais na visão computacional, diferem significativamente na sua abordagem:

  • Preconceito indutivo: As CNNs possuem fortes preconceitos indutivos (pressupostos sobre os dados), como a localidade e a equivariância da tradução, através das suas camadas de convolução e agrupamento. Os ViTs têm preconceitos indutivos muito mais fracos, o que os torna mais flexíveis, mas também mais dependentes da aprendizagem de padrões diretamente a partir dos dados.
  • Dependência de dados: Devido às suas tendências mais fracas, os ViTs geralmente requerem conjuntos de dados maciços (por exemplo, ImageNet-21k) ou pré-treinamento extensivo para superar as CNNs de última geração. Com conjuntos de dados mais pequenos, as CNNs generalizam frequentemente melhor. É por isso que a aprendizagem por transferência é fundamental para as ViTs.
  • Contexto global vs. contexto local: As CNNs constroem caraterísticas hierárquicas a partir de padrões locais para padrões globais. Em contrapartida, as ViTs podem modelar interações globais entre manchas desde as camadas mais iniciais, captando potencialmente um contexto mais amplo de forma mais eficaz para determinadas tarefas.
  • Custo computacional: O treino de ViTs pode ser computacionalmente intensivo, exigindo frequentemente recursos significativos de GPU. Estruturas como PyTorch e TensorFlow fornecem implementações para treinar esses modelos.

Aplicações e modelos híbridos

Os ViTs demonstraram um desempenho excecional em várias aplicações, especialmente quando a compreensão do contexto global é fundamental.

  • Análise de imagens médicas: Os ViTs são altamente eficazes na análise de exames médicos, como ressonâncias magnéticas ou imagens histopatológicas. Por exemplo, na deteção de tumores, um ViT pode identificar relações entre tecidos distantes, ajudando a classificar os tumores com mais precisão do que os modelos que se concentram apenas nas texturas locais.
  • Condução autónoma: Nos automóveis de condução autónoma, os ViTs podem analisar cenas complexas para deteção e segmentação de objectos. Ao processar globalmente toda a cena, podem compreender melhor as interações entre veículos, peões e infra-estruturas, tal como descrito em vários estudos de IA automóvel.

O sucesso dos ViTs também inspirou arquitecturas híbridas. Modelos como o RT-DETR combinam um backbone CNN para uma extração eficiente de caraterísticas com um codificador-descodificador baseado em Transformers para modelar relações entre objectos. Esta abordagem tem como objetivo obter o melhor de dois mundos: a eficiência das CNN e o conhecimento do contexto global dos Transformers.

Para muitos aplicativos em tempo real, especialmente em dispositivos de borda com recursos limitados, modelos baseados em CNN altamente otimizados, como a família Ultralytics YOLO (por exemplo, YOLOv8 e YOLO11), geralmente fornecem um melhor equilíbrio entre velocidade e precisão. Pode ver uma comparação pormenorizada entre o RT-DETR e o YOLO11 para compreender as vantagens e desvantagens. A escolha entre um ViT e uma CNN depende, em última análise, da tarefa específica, dos dados disponíveis e do orçamento computacional.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Ligue-se, colabore e cresça com inovadores globais

Aderir agora
Ligação copiada para a área de transferência