Glossário

Transformador de visão (ViT)

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

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

O Vision Transformer (ViT) marca um desenvolvimento fundamental na visão computacional (CV), aplicando a arquitetura Transformer de grande sucesso, inicialmente concebida para o processamento de linguagem natural (PNL), a tarefas baseadas em imagens. Ao contrário das redes neurais convolucionais (CNNs) tradicionais, que processam imagens usando filtros localizados camada por camada, as ViTs dividem uma imagem em fragmentos de tamanho fixo, tratam-nos como uma sequência de tokens (semelhantes a palavras numa frase) e processam-nos usando o mecanismo de auto-atenção do Transformer. Isto permite que os ViTs captem o contexto global e as dependências de longo alcance dentro de uma imagem de forma mais eficaz do que muitas arquitecturas CNN, conduzindo a resultados de ponta em vários parâmetros de referência, especialmente quando treinados em grandes conjuntos de dados como o ImageNet.

Como funcionam os transformadores de visão

A ideia central do ViT consiste em reformular o paradigma do processamento de imagens. Uma imagem de entrada é primeiro dividida numa grelha de manchas não sobrepostas. Cada fragmento é achatado num vetor e depois projetado linearmente num espaço de incorporação. Para reter a informação espacial, são adicionados a estes espaços de incorporação os elementos de posição. Esta sequência de vectores, que representa agora as manchas da imagem com as suas posições, é introduzida num codificador Transformer padrão, conforme descrito no documento original "An Image is Worth 16x16 Words".

O codificador Transformer, composto por várias camadas, baseia-se fortemente no mecanismo de auto-atenção. Este mecanismo permite que o modelo pondere dinamicamente a importância de diferentes manchas em relação umas às outras, permitindo-lhe aprender relações entre partes distantes da imagem. Este campo recetivo global contrasta com o campo recetivo tipicamente local das CNNs, dando aos ViTs uma vantagem na compreensão do contexto geral da cena. Recursos como o The Illustrated Transformer oferecem explicações intuitivas dos conceitos subjacentes ao Transformer. Estruturas como PyTorch e TensorFlow fornecem implementações desses componentes.

Relevância e aplicações

Os transformadores de visão tornaram-se altamente relevantes na aprendizagem profunda moderna devido à sua escalabilidade e desempenho impressionante, particularmente com pré-treino em grande escala. A sua capacidade de modelar o contexto global torna-os adequados para uma vasta gama de tarefas de CV para além da classificação básica de imagens, incluindo:

  • Deteção de objectos: Modelos como RT-DETRque utilizam frequentemente componentes de transformadores, atingem uma elevada precisão na localização de objectos.
  • Segmentação de imagens: Os ViTs podem ser adaptados para tarefas de previsão densas, como a segmentação de diferentes objectos ou regiões numa imagem, como se vê em modelos como o Segment Anything Model (SAM).
  • Análise de imagens médicas: Os ViTs ajudam a detetar padrões subtis indicativos de doenças em exames como os raios X ou as ressonâncias magnéticas, melhorando potencialmente a precisão do diagnóstico em IA nos cuidados de saúde. Por exemplo, podem identificar formas ou distribuições complexas de tumores que podem ser difíceis para modelos focados localmente.
  • Veículos autónomos: Compreender todo o cenário do trânsito, incluindo veículos distantes, peões e sinais de trânsito, é crucial para uma navegação segura. A modelagem de contexto global da ViTs auxilia na compreensão abrangente da cena para aplicações de IA em automóveis.

Os ViTs estão cada vez mais integrados em plataformas como o Ultralytics HUB e bibliotecas como o Hugging Face Transformers, tornando-os acessíveis para pesquisa e implantação. Também podem ser optimizados para a implementação de IA Edge em dispositivos como o NVIDIA Jetson.

ViT Vs. CNNs

Embora tanto os ViTs como as CNNs sejam arquitecturas fundamentais na visão computacional (ver A History of Vision Models), diferem significativamente na sua abordagem:

  • Processamento: As CNNs utilizam operações de convolução com núcleos deslizantes, concentrando-se em padrões locais e construindo caraterísticas hierárquicas. As ViTs utilizam a auto-atenção através de manchas de imagem, concentrando-se nas relações globais desde o início.
  • Preconceito indutivo: As CNNs têm fortes preconceitos indutivos incorporados (como a localidade e a equivariância da tradução) adequados para imagens, tornando-as frequentemente mais eficientes em termos de dados em conjuntos de dados mais pequenos. Os ViTs têm tendências indutivas mais fracas e, normalmente, requerem conjuntos de dados maiores (ou estratégias sofisticadas de pré-treino como as utilizadas pelo CLIP) para generalizar bem.
  • Arquitetura: As CNN são constituídas por camadas convolucionais, camadas de agrupamento e camadas totalmente ligadas. Os ViTs adoptam a estrutura normalizada do codificador Transformer. Os modelos híbridos, que combinam espinhas dorsais convolucionais com cabeças/pescoços Transformer (por exemplo, variantesRT-DETR ), têm por objetivo tirar partido dos pontos fortes de ambos.

A escolha entre ViT e CNN depende frequentemente da tarefa específica, dos dados disponíveis e dos recursos computacionais. Os ViTs são geralmente excelentes quando estão disponíveis grandes quantidades de dados de treino, enquanto as CNNs, como as do projeto Ultralytics YOLO continuam a ser altamente eficazes e eficientes, em especial para a deteção de objectos em tempo real em dispositivos com restrições.

Lê tudo