Saltar para o conteúdo
NILG.AI

Quero automatizar a minha empresa

Technical

Um Sistema de Recuperação de Conteúdo de Imagens Baseado em IA

Maria Loureiro · 7 de março de 2021

A medição de similaridade é o fundamento de qualquer sistema de recuperação de informação, gestão ou mineração de dados. Tanto na indústria como na comunidade científica, a detecção de similaridade tem-se revelado extremamente útil quando aplicada a diferentes casos de uso.

Ao longo do tempo, a quantidade de informação disponível na internet tem crescido exponencialmente, tornando mais difícil a sua análise e consumo sem o auxílio de sistemas de recuperação de informação ou ferramentas de filtragem, cujos elementos centrais correspondem à análise de similaridade entre diferentes segmentos de texto. Encontrar e filtrar informação relevante de acordo com preferências pessoais é uma tarefa demorada no esforço diário de se manter bem informado.

Além disso, a detecção de similaridade aplicada a imagens possui um grande número de aplicações possíveis em vários domínios. Em sistemas biométricos, particularmente em sistemas de reconhecimento de assinatura e reconhecimento facial, a detecção de similaridade de imagens é extremamente relevante em casos de detecção de falsificações e identificação visual, respectivamente (1). No setor do retalho, pode também ser de grande importância na detecção de produtos falsificados, através da determinação da similaridade entre uma imagem de consulta e uma base de dados de imagens válidas (2), reconhecimento de produtos em prateleiras de lojas (3) e recuperação de imagens baseada em conteúdo (CBIR), permitindo consultas baseadas em imagens em lojas online (4).

Desenvolvimento de um Sistema CBIR com um Dataset de Vestuário

Considerando a crescente procura por sistemas CBIR no comércio eletrónico e o crescimento evidente desta forma de retalho (5), durante o meu estágio na NILG.AI, desenvolvi uma demonstração de um sistema CBIR com um dataset de vestuário: o Apparel Images Dataset (6).

O dataset escolhido é composto por 11 385 fotografias amadores de artigos de vestuário (6), com um total de 6 cores diferentes e 5 tipos de artigos. Um total de 11 384 pares de imagens, positivos e negativos, foram criados a partir deste dataset para calcular a similaridade de imagens. Para estes pares, foram definidas duas tarefas distintas: tipo de vestuário e cor. Para cada uma destas tarefas, foram criados 5 692 pares, onde metade eram positivos e a outra metade negativos. Por outras palavras, para os pares cuja tarefa era a cor do vestuário, por exemplo, metade dos pares eram compostos por roupas com cores similares (pares positivos) e a outra metade com cores distintas (pares negativos).

Como exemplo, dois pares (um positivo e outro negativo) atribuídos à tarefa de tipo de vestuário são apresentados abaixo.

Para detectar a similaridade entre duas imagens, podem aplicar-se diferentes técnicas, desde medidas clássicas de similaridade utilizando métricas de distância até modelos de machine learning treinados. Independentemente da abordagem escolhida, o vetor de características de cada imagem (extraído de modelos de deep learning pré-treinados) pode ser utilizado como dados para calcular a similaridade.

Para a extração do vetor de características de cada imagem, foi utilizado um modelo pré-treinado: a rede neural convolucional VGG16, onde a última camada foi removida para obter o vetor de características (7).

Relativamente ao cálculo da similaridade, a Distância Euclidiana é uma técnica de medição simples mas poderosa que pode ser aplicada a dois vetores de características extraídos de um par de imagens. Uma alternativa é a Distância Cosseno, que calcula a diferença de direção, independentemente do comprimento de cada vetor de características, onde a distância é dada pelo ângulo entre os dois vetores (8). Ambas as métricas foram escolhidas para integrar o trabalho desenvolvido.

Relativamente a modelos de machine learning, existem também várias opções possíveis que podem ser utilizadas neste tipo de medição de similaridade. Regressão Logística e Random Forest são dois modelos amplamente utilizados, com uma grande variedade de aplicações, e ambos foram selecionados como técnicas de detecção de similaridade, utilizando o vetor de características extraído para treinar o modelo. Para a Regressão Logística em particular, a normalização de características foi também incluída no pipeline, uma vez que melhorou os resultados da classificação.

As quatro abordagens foram avaliadas com base nos coeficientes de Pearson e Spearman entre o valor de similaridade fornecido por cada técnica e a classificação alvo de cada par de imagens. Os resultados podem ser vistos na tabela abaixo.

MétodoPearsonSpearman
Cosine Similarity0.3870.358
Inverse Euclidean Distance0.2980.276
Logistic Regression0.7210.719
Random Forest0.6960.705

Embora os modelos de machine learning tenham claramente alcançado melhores resultados em comparação com métricas de similaridade, como esperado, todas as abordagens testadas foram incluídas na demonstração final.

Para a interface da demonstração, foi utilizado Streamlit (uma biblioteca Python de código aberto), que ajudou a criar facilmente uma aplicação interativa para o sistema desenvolvido. Além disso, a aplicação foi implementada utilizando Docker, para criar um ambiente reprodutível e facilitar o seu uso em diferentes máquinas.

A aplicação desenvolvida, como mencionado anteriormente, recupera as imagens mais similares no dataset quando comparadas com a imagem em análise. Esta última pode ser escolhida pelo utilizador e enviada para o website ou pode ser selecionada aleatoriamente pelo algoritmo, dentro das imagens disponíveis no dataset. Além disso, a aplicação permite também ao utilizador escolher uma das abordagens anteriormente mencionadas para calcular a detecção de similaridade.

Alguns exemplos do sistema desenvolvido são apresentados abaixo.

Página Inicial da Aplicação

Exemplo com utilização da Distância Euclidiana como medida de similaridade e teste com uma imagem aleatória do dataset:

Exemplo com utilização de um modelo de Regressão Logística pré-treinado como medida de similaridade e teste com uma imagem enviada que não está incluída no dataset:

Considerações Finais

Como mencionado anteriormente, existe um grande número de casos de uso relacionados com detecção de similaridade de imagens, mostrando o seu potencial de crescimento nos próximos anos. A demonstração ativa aqui explicada e desenvolvida para um sistema de recuperação de imagens baseado em conteúdo é apenas um pequeno exemplo das possibilidades nesta área. Esperamos que este artigo o inspire a desenvolver novos projetos por si próprio ou com a ajuda da equipa NILG.AI!

Referências

  1. Bashir A, Tabassum M, Naeem N. Biometric Image Enhancement, Feature Extraction and Recognition Comprising FFT and Gabor Filtering: Proceedings of the 2018 Computing Conference, Volume 1. (2019). p. 581-91.
  2. Daoud E, Vu Nguyen Hai D, Nguyen H, Gaedke M. IMPROVING FAKE PRODUCT DETECTION USING AI- BASED TECHNOLOGY (2020).
  3. Tonioni A, Serra E, Di Stefano L. A deep learning pipeline for product recognition on store shelves (2018). 25-31 p.
  4. Machado RSR, editor. Image visual similarity with deep learning: application to a fashion ecommerce company. 2017.
  5. Sabanoglu T. Global retail e-commerce sales 2014-2023 (2020) [cited 2021]. Available from: https://www.statista.com/statistics/379046/worldwide-retail-e-commerce-sales/.
  6. [Dataset] Antonov A. Apparel images dataset. 6. (2020).
  7. Flomo G. How to cluster images based on visual similarity (2020) [cited 2020]. Available from: https://towardsdatascience.com/how-to-cluster-images-based-on-visual-similarity-cd6e7209fe34.
  8. Dengsheng Z, Guojun L, editors. Evaluation of similarity measurement for image retrieval. International Conference on Neural Networks and Signal Processing, 2003 Proceedings of the 2003; 2003 14-17 Dec. 2003.