Segmentação de imagens “zero-shot” a partir de instruções em linguagem natural

Guilherme Bernieri
Senior Sistemas
Published in
5 min readSep 12, 2023
Figura adaptada de Priscilla Du Preez na Unsplash

A segmentação de imagens é uma tarefa que consiste em dividir uma imagem em diferentes partes a fim de identificar e isolar objetos ou áreas de interesse específicas. Esta técnica é fundamental em diversas aplicações de visão computacional e inteligência artificial. A segmentação pode ser utilizada na identificação de objetos em imagens, remoção de elementos indesejados, análise de formas, reconhecimento de padrões, detecção de anomalias, entre outras.

Até recentemente, para treinar modelos de segmentação, era essencial dispor de grandes conjuntos de dados já rotulados. Isso implicava que cada novo objeto ou categoria requeria uma coleta e rotulação específicas de dados, o que tornava o treinamento um processo demorado e custoso. Contudo, novos avanços no campo do aprendizado de máquina, particularmente o zero-shot learning, têm revolucionado essa abordagem.

O zero-shot learning refere-se à capacidade de um modelo identificar ou categorizar objetos para os quais nunca foi treinado, utilizando informações ou conceitos aprendidos de outras categorias. Em vez de exigir dados rotulados para cada nova categoria, o zero-shot learning explora relações semânticas ou atributos compartilhados entre diferentes categorias para fazer previsões sobre dados desconhecidos, como pode ser vista na figura abaixo.

Fonte: v7labs

Neste artigo, vamos explorar a combinação de dois modelos do estado da arte na área de visão computacional: o Grounding DINO e o Segment Anything Model.

O Grounding DINO é um modelo de detecção de objetos zero-shot que pode identificar objetos mesmo quando não fazem parte do conjunto predefinido de classes do treinamento. Ele combina características dos métodos DINO e GLIP, utilizando técnicas de atenção para fundir características de texto e imagem, permitindo a detecção de objetos com base em descrições textuais.

Já o Segment Anything Model é um modelo de segmentação de imagens criado pela Meta Research, capaz de gerar máscaras de segmentação para diversos objetos em imagens, inclusive para aqueles que não faziam parte do conjunto de treinamento do modelo. Ele se destaca por permitir segmentações de forma autônoma, orientadas por pontos ou bounding boxes e é visto como um marco revolucionário para o campo da visão computacional, semelhante ao impacto do GPT em linguagem natural.

Quando combinados, esses modelos possibilitam segmentações precisas a partir de descrições textuais simples, eliminando a necessidade de treinar o modelo para cada nova categoria.

Segmentação baseada em linguagem natural

A fusão de modelos de segmentação de imagens com modelos de detecção de objetos e capacidades de processamento de linguagem natural abre um leque de novas oportunidades e desafios. A ideia de segmentar uma imagem a partir de uma instrução textual é intrigante e tem potencial para revolucionar a forma como interagimos com as imagens. Imagine poder segmentar objetos ou áreas de uma imagem simplesmente descrevendo-os com palavras, como “remova todos os carros vermelhos da imagem” ou “destaque todas as árvores no fundo”.

As instruções baseadas em linguagem natural são, por natureza, mais flexíveis e intuitivas do que as interfaces gráficas tradicionais. Isso facilita a adaptação do usuário e a implementação em diversos ambientes, desde design gráfico e edição de fotos até aplicações médicas, como segmentação de imagens médicas baseada em descrições sintomáticas.

A seguir, exploraremos a metodologia utilizada por trás dessa técnica, que combina os modelos Grounding DINO e Segment Anything Model para oferecer uma abordagem de alto nível na segmentação de imagens a partir de instruções textuais. Abordaremos detalhes da arquitetura implementada, descrevendo os componentes chave e as estratégias de integração. Isso permite uma compreensão mais aprofundada do processo envolvido, bem como suas potenciais implicações e aplicações em cenários futuros. A figura abaixo ilustra a arquitetura geral da solução.

A metodologia adotada emprega uma abordagem integrada para realizar a segmentação de imagens com base em instruções de texto. O processo começa com o uso do Grounding DINO, um modelo essencial para a identificação e localização de elementos em imagens através da linguagem natural. As entradas para este modelo são uma imagem e uma instrução textual, que, considerando as especificidades de seu treinamento, deve ser em inglês. Através dessa instrução, o Grounding DINO identifica os elementos relevantes na imagem e cria bounding boxes para localizá-los. Esse processo de interpretação textual é aprimorado pelo uso de uma implementação pré-treinada do modelo BERT, reconhecido pela seu desempenho em compreensão de linguagem natural.

Depois de identificar e localizar os elementos com o Grounding DINO, entra em cena o Segment Anything Model, especializado na geração de máscaras de segmentação. Esse modelo oferece uma abordagem flexível, podendo criar segmentações automaticamente, seja baseado em pontos de marcação ou nos bounding boxes fornecidos pelo Grounding DINO. Em termos técnicos, um codificador de imagem (encoder) cria um embedding único para a imagem, enquanto outro encoder transforma qualquer instrução em um vetor de embedding em tempo real. Essas duas fontes de informação são combinadas por um decodificador leve que prevê as máscaras de segmentação. Uma vez que o embedding da imagem é computado, o modelo pode gerar uma segmentação em poucos segundos a partir de qualquer instrução fornecida.

O objetivo principal dessa metodologia é isolar na imagem apenas o elemento referenciado pela instrução textual, removendo todos os demais componentes. Para alcançar isso, a imagem primeiramente deve ser analisada pelo Grounding DINO, que identifica e delimita todos os elementos associados à instrução. Em seguida, tanto a imagem original quanto os bounding boxes fornecidos pelo Grounding DINO são utilizados como entrada para o Segment Anything Model. Este, por sua vez, gera máscaras precisas para os elementos já delimitados. Para finalizar o processo, a biblioteca de visão computacional OpenCV é empregada para remover os elementos indesejados da imagem, mantendo somente as áreas especificadas pelas máscaras geradas.

Você já havia pensado que seria possível segmentar imagens por meio de uma descrição em texto? A fusão do Grounding DINO e do Segment Anything Model não apenas torna essa ideia uma realidade, mas também abre um mundo de possibilidades para a aplicação de visão computacional em diversos campos. Desde o design gráfico até a medicina, essa abordagem inovadora simplifica o processo de segmentação de imagens, eliminando a necessidade de treinar modelos específicos para cada nova categoria a ser identificada. Além disso, oferece uma interface textual intuitiva, tornando o processo mais acessível e flexível.

Referências

KIRILLOV, Alexander et al. Segment anything. arXiv preprint arXiv:2304.02643, 2023.

LIU, Shilong et al. Grounding dino: Marrying dino with grounded pre-training for open-set object detection. arXiv preprint arXiv:2303.05499, 2023.

https://www.v7labs.com/blog/zero-shot-learning-guide

--

--

Guilherme Bernieri
Senior Sistemas

Pesquisador | Inteligência Artificial | Tecnologia e Inovação