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

Um Vision Transformer (ViT) é um tipo de arquitetura de rede neural adaptada dos modelos Transformer originalmente concebidos para o Processamento de Linguagem Natural (NLP). Introduzidos por investigadores Google no artigo "An Image is Worth 16x16 Words", os ViTs aplicam o mecanismo de auto-atenção do Transformer diretamente a sequências de fragmentos de imagens, tratando o processamento de imagens como uma tarefa de modelação de sequências. Esta abordagem marcou uma mudança significativa em relação ao domínio das Redes Neuronais Convolucionais (CNN) na visão computacional (CV).

Como funcionam os transformadores de visão

Em vez de processar as imagens pixel a pixel utilizando filtros convolucionais, um ViT começa por dividir uma imagem de entrada em fragmentos de tamanho fixo e não sobrepostos. Estes fragmentos são depois achatados em vectores, incorporados linearmente e aumentados com incorporação posicional para reter informação espacial (semelhante à forma como as posições das palavras são codificadas em PNL). Esta sequência de vectores é depois introduzida num codificador Transformer padrão, que utiliza camadas de auto-atenção multi-cabeças para ponderar a importância de diferentes manchas em relação umas às outras. A saída final do codificador Transformer é normalmente passada para uma cabeça de classificação simples (como um Perceptron Multi-Layer) para tarefas como a classificação de imagens. Esta arquitetura permite aos ViTs modelar eficazmente as dependências de longo alcance e o contexto global de uma imagem.

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 em conjuntos de dados como o ImageNet ou conjuntos de dados proprietários ainda maiores. 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, incluindo:

Os ViTs estão cada vez mais integrados em plataformas como o Ultralytics HUB e em bibliotecas como a Hugging Face Transformers, tornando-os acessíveis para investigação e implementação utilizando estruturas como PyTorch e TensorFlow. Também podem ser optimizados para a implementação de IA Edge em dispositivos como o NVIDIA Jetson ou o Edge TPU da Google, utilizando ferramentas como o TensorRT.

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:

  • Preconceito indutivo: As CNN possuem fortes preconceitos indutivos em relação à localidade e à equivariância da tradução através das suas camadas de convolução e de agrupamento. Os ViTs têm tendências indutivas mais fracas, baseando-se mais na aprendizagem de padrões a partir dos dados, em particular as relações entre partes distantes de uma imagem através da auto-atenção.
  • Dependência de dados: Os ViTs geralmente requerem grandes quantidades de dados de treinamento (ou pré-treinamento extensivo) para superar os CNNs de última geração. Com conjuntos de dados menores, as CNNs geralmente generalizam melhor devido às suas tendências incorporadas.
  • Custo computacional: O treinamento de ViTs pode ser computacionalmente intensivo, muitas vezes exigindo recursos significativos GPU . No entanto, a velocidade de inferência pode ser competitiva, especialmente para modelos maiores. Os modelosRT-DETR , por exemplo, oferecem desempenho em tempo real, mas podem ter necessidades de recursos mais elevadas do que os modelos YOLO baseados em CNN comparáveis.
  • Contexto global vs. contexto local: As CNNs criam caraterísticas hierárquicas a partir de padrões locais. Os ViTs podem modelar as interações globais entre as manchas desde as camadas mais antigas, captando potencialmente um contexto mais amplo de forma mais eficaz para determinadas tarefas.

A escolha entre ViT e CNN depende frequentemente da tarefa específica, dos conjuntos de dados disponíveis e dos recursos computacionais. Os ViTs são geralmente excelentes quando estão disponíveis grandes quantidades de dados de treino e o contexto global é fundamental. As CNNs, como as que são utilizadas como base na Ultralytics YOLO da Ultralytics (por exemplo, YOLOv8, YOLOv10, YOLO11), continua a ser altamente eficaz e eficiente, especialmente para a deteção de objectos em tempo real em dispositivos limitados. As arquitecturas híbridas que combinam caraterísticas convolucionais com camadas transformadoras (como no RT-DETR) também representam uma direção promissora, tentando tirar partido dos pontos fortes de ambas as abordagens. O ajuste fino de modelos pré-treinados, quer sejam baseados em ViT ou CNN, é uma prática comum que utiliza técnicas como a aprendizagem por transferência.

Lê tudo