Blog

E-commerce: La inteligencia artificial mejora el reconocimiento de colores en imágenes

Blog
La inteligencia artificial mejora el reconocimiento de colores en imágenes para e-commerce

El mundo que nos rodea está lleno de una amplia gama de colores, desde los vibrantes tonos del arco iris hasta las sutiles variaciones en los tonos neutros. Nuestros ojos tienen la capacidad de distinguir y apreciar la riqueza de colores que nos rodean, pero ¿qué sucede cuando queremos que una máquina realice la misma tarea?

El reconocimiento preciso de colores en imágenes es un desafío complejo debido a la gran diversidad de tonalidades, matices y variaciones de luminosidad que existen en el espectro cromático. Cada color tiene su propia identidad, su propia personalidad, y capturar esa esencia con precisión es una tarea que requiere de un enfoque inteligente.

En el mundo del comercio electrónico, las imágenes de productos desempeñan un papel crucial a la hora de atraer a los clientes y persuadirlos para que realicen una compra. Sin embargo, una de las preocupaciones más comunes en este contexto es asegurarse de que los colores mostrados en las imágenes sean lo más precisos posible. Esto es especialmente relevante cuando se trata de objetos cuyo color es un factor determinante en la decisión de compra, como prendas de vestir, productos de decoración o dispositivos electrónicos.

El desafío radica en lograr que el color proporcionado como parámetro en el texto coincida fielmente con el color que realmente se observa en el objeto de interés en la imagen. Esto implica una tarea compleja de clasificación y reconocimiento de colores, ya que es necesario discernir no solo colores básicos, sino también matices sutiles y variaciones. Un pequeño error en la representación del color puede generar confusiones o decepciones en los clientes, lo que puede afectar negativamente la confianza y la satisfacción con la compra realizada.

Es fundamental contar con un modelo de inteligencia artificial capaz de analizar y comparar el color proporcionado como parámetro con el color observable en la imagen del producto. Al lograr una correspondencia exacta entre el color descrito y el color real, los minoristas electrónicos pueden brindar a los clientes una experiencia de compra más confiable y evitar malentendidos o devoluciones debido a discrepancias en los colores.

Descripción del problema

El desafío radica en la gestión de una amplia gama de colores, alrededor de 100, lo que dificulta discernir sutiles diferencias entre ellos. Por ejemplo, tonalidades de rojo, azul o verde pueden presentar variaciones casi imperceptibles para el ojo humano. Esta complejidad dificulta la tarea de clasificar y representar fielmente el color de las imágenes.

Sin embargo, es importante tener en cuenta que no es factible rechazar los productos de los comercios basándose únicamente en pequeñas diferencias de color. Adoptar una política de rechazo estricta por estas variaciones sutiles podría llevar a que los comercios busquen otras plataformas de venta para sus productos, lo que impactaría negativamente en la diversidad y la competitividad en el retail electrónico. 

Al encontrar una solución que permita manejar estas variaciones sutiles de color, se fomenta un entorno comercial favorable, donde la diversidad de productos está disponible para los clientes y se mantiene la competitividad.

Otro desafío importante es el desequilibrio en la disponibilidad de muestras de entrenamiento para los diferentes colores. En el caso de los 100 colores con sutiles diferencias, algunos de ellos pueden tener cientos de miles de muestras disponibles para entrenar el modelo, mientras que otros solo cuentan con unas pocas decenas. Esta disparidad en la cantidad de muestras por color puede generar dificultades durante el proceso de entrenamiento del modelo de inteligencia artificial.

El problema radica en que un desequilibrio en la cantidad de muestras puede afectar negativamente el rendimiento y la capacidad de generalización del modelo. Los colores con un número limitado de muestras pueden resultar subrepresentados en el proceso de entrenamiento, lo que podría afectar su capacidad para reconocer y clasificar correctamente esos colores en nuevas imágenes.

Preparando la solución

Para abordar el problema, se implementaron diversas estrategias. En primer lugar, se decidió agrupar los colores iniciales en 14 categorías de color más generales. Esto permitió simplificar la tarea de predicción, ya que en lugar de tener que considerar los 100 colores originales, el vendedor puede elegir entre esos colores, pero internamente se los asocia a uno de estos grupos predefinidos. De esta manera, el modelo evalúa si el color seleccionado corresponde a la categoría asociada.

Sin embargo, el desafío relacionado con el desequilibrio de muestras en los grupos seguía presente. Para abordar este problema, se decidió tomar como referencia el grupo con la menor cantidad de muestras, alrededor de 30.000,  y utilizar esa cantidad en todos los demás grupos de los 14 colores. Esto permitió igualar la cantidad de muestras en cada categoría y evitar sesgos en el proceso de entrenamiento.

Para solucionar el problema de colores que se encuentran entre el límite de 2 categorías diferentes, como un gris muy oscuro y un negro algo opaco, se decidió adoptar un enfoque donde el modelo recibe como entrada un color y una imagen, y devuelve el grado de certeza entre la correspondencia de los mismos. 

Se construyó un dataset que consiste en el color real del producto, la imagen correspondiente y el resultado esperado, donde el output es «corresponde» cuando el color pasado coincide con el color real del producto, y se generó otro conjunto de datos con las mismas imágenes y un color distinto al real, donde el output es «no corresponde». Estos conjuntos de datos permitieron entrenar al modelo para que pueda reconocer y clasificar correctamente la correspondencia entre un color y el objeto de interés de la imagen, permitiendo ignorar pequeñas diferencias que puedan existir entre los distintos matices de colores.

Creación del modelo

En la creación y evaluación del modelo, se utilizó un conjunto de alrededor de 1.000.000 registros ( 500.000 imágenes con un color real, y las mismas imágenes con un color erróneo, aclarando en cada caso cuando corresponde y cuando no), las cuales se dividieron en conjuntos de train, test y validación. Estos conjuntos se utilizaron para entrenar el modelo y evaluar su desempeño.

El modelo a desarrollar tiene 2 entradas:

  • El color, utilizando un vector “one hot encoding” de dimensión 14, representativo de los colores utilizados para entrenar el modelo
  • Una imagen redimensionada

La salida del mismo es la coincidencia o no de estos parámetros enviados.

Arquitectura

Para el input del color utilizamos 3 capas densas con función de activación “relu”, siendo cada una de estas progresivamente más pequeña que la anterior.

arquitectura inteligencia artificial

Para la imagen en cambio se utilizaron una serie de capas Conv2D de 32 filtros y kernel de tamaño 3×3 con una función de activación relu, utilizando luego de cada una de estas una capa de MaxPooling2D

arquitectura inteligencia artificial

Luego se concatenan los 2 modelos, para crear un sólo modelo con 2 entradas y una salida, con varias capas densas y una de dropout en el medio.

arquitectura inteligencia artificial

Finalmente se compila el modelo final con un learning rate de 0.0001 y como función de pérdida se utilizó la entropía cruzada binaria

arquitectura inteligencia artificial

Evaluación e iteración del modelo

Una vez que el modelo fue entrenado con una versión inicial, durante el proceso de ajuste y optimización del mismo se identificaron problemas de overfitting al utilizar un learning rate por default. Para abordar esta situación, se aplicaron técnicas de regularización, específicamente se normalizó el modelo a través de una capa de dropout con un factor de 0.5. Además, se redujo el learning rate a 1E-6 con el objetivo de mejorar la capacidad de generalización y evitar el sobreajuste del modelo a los datos de entrenamiento. 

Con esta implementación se logró obtener un Accuracy de 0.83 sobre el set de test y validación, un resultado sumamente aceptable.

Se puede observar un Area Under Curve de 0.89 en la siguiente curva ROC, lo que nos muestra el buen resultado obtenido en el clasificador.

La matriz de confusión nos muestra los resultados obtenidos

Resultados obtenidos y conclusión

Al evaluar el modelo en un ambiente real, se comprobó que el mismo tiene un recall elevado, permitiendo identificar el 80% de los artículos que poseen problemas en el color. Esto nos permite asegurar con un alto grado de confianza que en los casos en los que el modelo no muestre problemas de color en la publicación, la misma efectivamente será correcta y podrá ser aprobada automáticamente siempre que no se halle la presencia de otro tipo de errores evaluados en otros modelos (como correspondencia entre categoría e imagen del producto,  mención de la competencia en campos de texto, calidad de la imagen, etc). 

Podemos llegar a la conclusión de que su evaluación, en conjunto a otras provenientes de otros modelos, permiten automatizar la tarea de aprobación de productos en un marketplace con mucha facilidad y un alto grado de confianza, logrando reducir el tiempo de una tarea que puede demorar horas, días o hasta semanas a tan sólo unos pocos segundos. Gracias a esto, los productos están actualizados constantemente y velozmente, lo que permite reducir el attrition de los retails y, en consecuencia, aumentar la cantidad y calidad de productos publicados a ofrecer.

Contacto

Contactanos

¿Cómo podemos ayudarte?