Technical
Un Sistema de Recuperación de Contenido de Imágenes Basado en IA
Maria Loureiro · 7 de marzo de 2021
La medición de similitud es la base de cualquier sistema de recuperación de información, gestión o minería de datos. Tanto en la industria como en la comunidad científica, la detección de similitud ha demostrado ser sumamente útil cuando se aplica a diferentes casos de uso.
Con el paso del tiempo, la información disponible en internet ha crecido de manera exponencial, lo que dificulta su análisis y consumo sin la ayuda de sistemas de recuperación de información o herramientas de filtrado, cuyos elementos fundamentales corresponden al análisis de similitud entre diferentes segmentos de texto. Encontrar y filtrar información relevante de acuerdo con las preferencias personales es una tarea que requiere tiempo en el esfuerzo diario por mantenerse bien informado.
Además, la detección de similitud aplicada a imágenes también presenta un gran número de aplicaciones posibles en varios campos. En sistemas biométricos, particularmente en sistemas de reconocimiento de firmas y rostros, la detección de similitud de imágenes es sumamente relevante en casos de detección de falsificaciones e identificación visual, respectivamente (1). En la industria del comercio minorista, también puede ser de gran importancia para la detección de productos falsificados, determinando la similitud entre una imagen de consulta y una base de datos de imágenes válidas (2), el reconocimiento de productos en estanterías (3) y la recuperación de imágenes basada en contenido (CBIR), permitiendo consultas basadas en imágenes en tiendas en línea (4).
Desarrollo de un Sistema CBIR Utilizando un Dataset de Prendas de Vestir
Considerando la demanda creciente de sistemas CBIR en compras en línea y el crecimiento evidente de esta forma de comercio electrónico minorista (5), durante mi pasantía en NILG.AI, desarrollé una demostración de un sistema CBIR con un dataset de prendas de vestir: el Apparel Images Dataset (6).
El dataset elegido está compuesto por 11 385 fotografías amateur de prendas de vestir (6), con un total de 6 colores diferentes y 5 tipos de artículos. Se creó un total de 11 384 pares de imágenes, tanto positivos como negativos, a partir de este dataset para luego calcular la similitud de imágenes. Para estos pares, se definieron dos tareas distintas: tipo de prenda y color. Para cada una de estas tareas, se crearon 5692 pares, donde la mitad eran positivos y la otra mitad negativos. En otras palabras, para los pares con la tarea de color de prenda, por ejemplo, la mitad de los pares estaban compuestos por prendas con color similar (pares positivos) y la otra mitad con colores distintos (pares negativos).
A continuación se presentan dos ejemplos de pares, uno positivo y otro negativo, asignados con la tarea de tipo de prenda.
Para detectar la similitud entre dos imágenes, pueden aplicarse diferentes técnicas, desde mediciones de similitud clásicas, utilizando métricas de distancia, hasta modelos de machine learning entrenados. Independientemente del enfoque elegido, el vector de características de cada imagen, extraído de modelos de aprendizaje profundo preentrenados, puede utilizarse como datos para calcular la similitud.
Para la extracción del vector de características de cada imagen, se utilizó un modelo preentrenado: la red neuronal convolucional VGG16, donde se eliminó la última capa para obtener el vector de características (7).
Con respecto al cálculo de similitud, la Distancia Euclidiana es una técnica de medición simple pero potente que puede aplicarse a dos vectores de características extraídos de un par de imágenes. Otra alternativa es la Distancia del Coseno, que calcula la diferencia en dirección, independientemente de la longitud de cada vector de características, donde la distancia se obtiene del ángulo entre los dos vectores (8). Ambas métricas se seleccionaron para integrar el trabajo desarrollado.
Con respecto a los modelos de machine learning, también hay varias opciones posibles que pueden utilizarse en este tipo de medición de similitud. Logistic Regression y Random Forest son dos modelos ampliamente utilizados, con una gran variedad de aplicaciones, y ambos se seleccionaron como técnicas de detección de similitud, utilizando el vector de características extraído para entrenar el modelo. Para Logistic Regression en particular, también se incluyó la normalización de características en el pipeline, ya que mejoró los resultados de la clasificación.
Los cuatro enfoques se evaluaron con respecto a los coeficientes de Pearson y Spearman entre el valor de similitud dado por cada técnica y la clasificación objetivo de cada par de imágenes. Los resultados se pueden ver en la siguiente tabla.
| Método | Pearson | Spearman |
|---|---|---|
| Cosine Similarity | 0,387 | 0,358 |
| Inverse Euclidean Distance | 0,298 | 0,276 |
| Logistic Regression | 0,721 | 0,719 |
| Random Forest | 0,696 | 0,705 |
Aunque se obtuvieron claramente mejores resultados con los modelos de machine learning en comparación con las métricas de similitud, como era de esperar, todos los enfoques probados se incluyeron en la demostración final.
Para el front-end de la demostración, se utilizó Streamlit, una biblioteca de código abierto de Python, que permitió crear fácilmente una aplicación interactiva para el sistema desarrollado. Además, la aplicación se implementó utilizando Docker, para crear un entorno reproducible y facilitar su uso en diferentes máquinas.
La aplicación desarrollada, como se mencionó anteriormente, recupera las imágenes más similares en el dataset cuando se comparan con la imagen bajo análisis. Esta última puede ser elegida por el usuario y cargada en el sitio web, o puede ser seleccionada aleatoriamente por el algoritmo, dentro de las imágenes disponibles en el dataset. Además, la aplicación también permite al usuario elegir uno de los enfoques mencionados anteriormente para calcular la detección de similitud.
A continuación se presentan algunos ejemplos del sistema desarrollado.
Página Inicial de la Aplicación
Ejemplo con el uso de Distancia Euclidiana como medida de similitud y prueba con una imagen aleatoria del dataset:
Ejemplo con el uso de un modelo Logistic Regression preentrenado como medida de similitud y prueba con una imagen cargada que no está incluida en el dataset:
Observaciones Finales
Como se mencionó anteriormente, existe un gran número de casos de uso relacionados con la detección de similitud de imágenes, lo que demuestra su potencial de crecimiento durante los próximos años. La demostración en vivo explicada aquí y desarrollada para un sistema de recuperación de imágenes basado en contenido es solo un pequeño ejemplo de las posibilidades en esta área. Esperamos que este artículo te inspire para desarrollar nuevos proyectos por tu cuenta o con la ayuda del equipo de NILG.AI.
Referencias
- 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.
- Daoud E, Vu Nguyen Hai D, Nguyen H, Gaedke M. IMPROVING FAKE PRODUCT DETECTION USING AI- BASED TECHNOLOGY (2020).
- Tonioni A, Serra E, Di Stefano L. A deep learning pipeline for product recognition on store shelves (2018). 25-31 p.
- Machado RSR, editor. Image visual similarity with deep learning: application to a fashion ecommerce company. 2017.
- 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/.
- [Dataset] Antonov A. Apparel images dataset. 6. (2020).
- 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.
- 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.
