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.
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.
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.
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:
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.
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:
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.