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