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) representa uma mudança significativa no campo da visão computacional, adaptando a arquitetura Transformer, originalmente desenvolvida para o processamento de linguagem natural, a tarefas de reconhecimento de imagem. Ao contrário das redes neurais convolucionais (CNNs) tradicionais que processam imagens camada por camada, as ViTs dividem uma imagem em fragmentos menores e tratam esses fragmentos como tokens em uma sequência, como as palavras em uma frase. Esta nova abordagem permite que os ViTs aproveitem o poderoso mecanismo de auto-atenção do Transformer para capturar relações globais dentro de uma imagem, levando a um desempenho de ponta em várias tarefas de visão computacional.

Como funcionam os transformadores de visão

Na sua essência, um Transformador de visão processa imagens dividindo-as primeiro numa grelha de manchas de tamanho fixo. Esses fragmentos são então achatados e transformados linearmente em embeddings, que são essencialmente representações vetoriais. São adicionados a estes "patch embeddings" elementos posicionais para reter informação espacial, crucial para a compreensão da estrutura da imagem. Esta sequência de fragmentos incorporados é depois introduzida num codificador Transformer padrão.

O codificador Transformer consiste em várias camadas de redes de auto-atenção e feed-forward com várias cabeças. O componente chave aqui é o mecanismo de auto-atenção, que permite que o modelo pondere a importância de cada patch em relação a todos os outros patches ao processar a imagem. Isto permite que o ViT compreenda o contexto global da imagem, captando dependências de longo alcance que podem ser perdidas por CNNs que se concentram em caraterísticas locais. Esta compreensão do contexto global é um dos principais pontos fortes dos Vision Transformers. Para aprofundar os princípios subjacentes, recursos como "The Illustrated Transformer", de Jay Allammar, fornecem excelentes explicações visuais sobre a arquitetura do Transformador.

Relevância e aplicações

Os transformadores de visão ganharam rapidamente destaque devido ao seu desempenho e escalabilidade impressionantes. A sua capacidade de capturar o contexto global e a sua capacidade de beneficiar de grandes conjuntos de dados tornaram-nos altamente relevantes em aplicações modernas de aprendizagem profunda. As principais aplicações dos ViTs incluem:

  • Classificação de imagens: Os ViTs obtiveram os melhores resultados em benchmarks de classificação de imagens, ultrapassando frequentemente o desempenho dos modelos tradicionais baseados em CNN. A sua arquitetura é particularmente eficaz quando treinada em grandes conjuntos de dados como o ImageNet.
  • Deteção de objectos: Os transformadores de visão são cada vez mais utilizados como base em estruturas de deteção de objectos. Modelos como RT-DETR da Ultralytics utilizam os transformadores de visão para obter um desempenho em tempo real com elevada precisão.
  • Segmentação de imagens: Os ViTs são também eficazes em tarefas de segmentação de imagens, permitindo uma classificação precisa ao nível do pixel para aplicações como a análise de imagens médicas e a condução autónoma. Por exemplo, o Segment Anything Model (SAM ) utiliza um backbone ViT para as suas poderosas capacidades de segmentação.

As aplicações no mundo real abrangem vários sectores. Nos cuidados de saúde, os ViTs ajudam na análise de imagens médicas para melhorar o diagnóstico. Na agricultura, melhoram a monitorização das culturas e a deteção de doenças. Além disso, a sua eficiência e precisão tornam-nos adequados para a implementação em dispositivos de ponta, tal como explorado nos guias para NVIDIA Jetson e Raspberry Pi.

Transformadores de visão vs. CNNs

Embora as CNNs tenham sido durante muito tempo a arquitetura dominante na visão computacional, os Transformadores de Visão oferecem uma abordagem fundamentalmente diferente. As CNNs são excelentes na captura de padrões locais através de camadas convolucionais, o que as torna eficientes para tarefas em que as caraterísticas locais são cruciais. No entanto, podem por vezes ter dificuldades em captar dependências de longo alcance e o contexto global. Os ViTs, por outro lado, captam inerentemente o contexto global através dos seus mecanismos de auto-atenção, proporcionando uma vantagem em tarefas que exigem uma compreensão holística da cena.

Apesar dos seus pontos fortes, os ViTs requerem normalmente conjuntos de dados significativamente maiores para treino, em comparação com as CNNs, para obter um desempenho ótimo. As CNNs podem ser mais eficientes do ponto de vista computacional para conjuntos de dados mais pequenos e tarefas centradas na extração de caraterísticas locais. A escolha entre ViTs e CNNs depende frequentemente da aplicação específica, do tamanho do conjunto de dados e dos recursos computacionais disponíveis. Os transformadores de visão representam uma evolução significativa na visão computacional, demonstrando o poder dos mecanismos de atenção e abrindo caminho para futuros avanços neste domínio.

Lê tudo