SISTEMA Y MÉTODO PARA BUSCAR PRODUCTOS EN CATÁLOGOS
CAMPO DE APLICACIÓN
La presente invención se relaciona con la industria de retail y búsqueda de productos en catálogos. De manera particular, la invención se relaciona con una tecnología para búsqueda de productos en catálogos digitales a través de imágenes, dibujos a hechos a mano (sketch), videos o texto
ANTECEDENTES DE LA INVENCIÓN
El estado del arte describe una serie de tecnologías destinadas a la búsqueda en catálogos. Por ejemplo, el documento WO2013184073A1 describe una tecnología exclusivamente para búsqueda de ropa, basándose en la detección de partes del cuerpo. Este documento no propone un mecanismo de búsqueda de productos en general, incluyendo objetos de diseño, construcción, hogar, moda, entre otros
El documento US20120054177 divulga un método de representación y búsqueda de sketches, pero que no está dirigida al caso de búsqueda en catálogos. Este método se basa en detectar "salient curves" tanto en la consulta como en las imágenes de la base de datos. La similitud entre una sketch y una imagen se basa en medir la similitud entre "salient curves" mediante una variación de la distancia de Chamfer que usa información de posición y orientación de los puntos de las curvas.
Por otro lado, el documento US201 10274314 se relaciona con una aplicación de reconocimiento de ropa en videos. En primer lugar, se detecta la ocurrencia de una persona mediante un algoritmo de detección de rostros, luego un proceso de segmentación es realizado usando la estrategia basada en crecimiento por regiones sobre el espacio de color L*a*b*. Para reconocer la ropas se entrena un modelo SVM con diversos descriptores de
imágenes como HOG, BoW and DCT. Aunque este documento muestra una componente semántica relacionada con la clasificación de ropa, no está enfocada en búsqueda de cualquier tipo de productos.
Otro tipo de solución es la presentada por el documento US20140328544A1 . Este documento describe un sistema de reconocimiento y etiquetado de sketches que hace uso de un conjunto de imágenes previamente etiquetadas. Así, el sistema asocia un sketch de entrada con un conjunto de imágenes del dataset, esto se realiza mediante un sistema de búsqueda por similitud, luego las etiquetas o textos asociados con las imágenes son utilizadas para generar un modelo probabilístico que determina las mejores etiquetas para el sketch de entrada. Esta propuesta no está orientada a búsqueda de productos en catálogos.
El documento US20150049943A1 muestra una aplicación de búsqueda de imágenes usando una estructura tipo árbol para representar las características de las imágenes. Esta solución carece una componente de clasificación semántica, y no incluye búsquedas por sketches y videos.
La solución mostrada por el documento US006728706B2 se relaciona con un sistema de búsqueda de productos en catálogos donde cada producto se representa por vectores de características y la similitud se obtiene mediante una función de distancia. Este documento no describe el uso de clasificadores para predecir categorías probables de la imagen de entrada y combinar los resultados de buscar en las categorías probables y en todas las categorías.
Los documentos US20050185060A1 y US007565139B2 describen un sistema de búsqueda de imágenes a partir de fotografías de celular. Está pensado como parte de una guía de museo o de ciudad. Si la fotografía contiene un texto se realiza un reconocimiento óptico de caracteres y si contiene rostros se realiza una identificación de rostros. Estos documentos
no describen un sistema basado en productos de un catálogo donde se buscan objetos usando características visuales sin la necesidad de reconocimiento óptico de caracteres.
PROBLEMA TÉCNICO
En el escenario actual de ventas por Internet, un potencial cliente interesado en comprar un producto específico cuenta con tres opciones: 1 ) ingresar al sitio de la tienda, navegar por las categorías del catálogo, navegar por el listado de productos en cada categoría relevante; 2) ingresar al sitio de la tienda, utilizar el buscador de productos basado en palabras claves; y 3) ingresar a un buscador de Internet (por ejemplo, Google), buscar usando palabras claves y, dentro de los resultados obtenidos, elegir la página de alguna tienda de interés que ofrezca el producto.
Por una parte, las opciones 2 y 3 (basadas en palabras claves) pueden ser muy efectivas para cierto tipo de productos. Por ejemplo, si alguien desea comprar un disco duro de cierta capacidad y marca, tres palabras pueden ser suficientes para saber si la tienda favorita lo tiene disponible o no. Sin embargo, aún cuando este enfoque es efectivo para muchos productos, debemos señalar que el ingreso de textos largos en un smartphone puede ser desalentador. Por ejemplo, si se desea cotizar el precio en tienda del producto "Leche semi- descremada en polvo 400 gramos" bastaría con escribir esas palabras en el buscador de la tienda, lo que muchos usuarios preferirían evitar. En efecto, esta es una de las razones que ha motivado el actual desarrollo de aplicaciones de auto-completado y dictado de texto por voz.
Por otra parte, cuando el producto tiene características relacionadas a su aspecto o su diseño, como es el caso de adornos, ropa, muebles y otros, las opciones 2 y 3 no son efectivas. Por ejemplo, para buscar una lámpara colgante ovalada, de color verde y líneas negras, las palabras claves genéricas como "lámpara" encuentran muchos resultados, mientras que palabras más específicas como "ovalada" o "verde" pueden no encontrar nada si es que no se etiquetó el producto con ellas. En este caso, la opción de navegar el
catálogo por categorías (opción 1 ) es usualmente la única alternativa viable ya que la búsqueda basada en palabras requiere que cada producto contenga una completa descripción de su aspecto así como también el usuario utilice esas palabras para buscarlo. Lamentablemente, este etiquetado exhaustivo resulta impráctico tanto por el costo de etiquetado como por la diversidad de criterios bajo los que las personas describimos los objetos.
SOLUCIÓN TÉCNICA
La presente invención se relaciona con una tecnología para búsqueda de productos en catálogos digitales a través de imágenes, dibujos a hechos a mano (sketch), videos o texto. El objetivo es proveer a los usuarios de una tecnología eficiente, efectiva, oportuna y muy atractiva para encontrar productos en catálogos de tiendas. La tecnología de la presente invención es eficiente, pues requiere poco esfuerzo del usuario para tener resultados al instante; es efectiva, pues permite obtener productos relevantes; es oportuna, ya que el usuario puede usar la aplicación en su smartphone en el momento que lo desee; y es muy atractiva ya que provee una experiencia lúdica. Además, la tecnología se caracteriza por ser altamente expresiva, pues la búsqueda se basa en analizar el propio contenido de una imagen.
La tecnología propuesta permite realizar búsquedas de productos en catálogos a partir de imágenes capturadas por el usuario con una gran efectividad en sus resultados al utilizar una combinación de características visuales y etiquetas descriptivas automáticamente generadas por clasificadores previamente entrenados. La presente invención aprovecha las cualidades de los dispositivos móviles para que un usuario pueda tomar una foto del producto que desea, hacer un dibujo (sketch) o bien grabar una escena que contenga los productos que desea encontrar. Además el usuario puede opcionalmente agregar texto para restringir la búsqueda a ciertos productos o categorías de productos.
La presente invención permite variados casos de uso, algunos de los cuales se mencionan a continuación:
1 . Búsqueda por etiqueta: El usuario busca un producto específico y toma una fotografía de la etiqueta o del código de barras. Por ejemplo, el usuario puede fotografiar la etiqueta de un vino o un envase de jugo y el sistema entrega exactamente el producto buscado así como su precio en tienda. Este método resulta ser mucho más amigable y entrega una experiencia superior para el usuario comparado con escribir palabras claves, como el caso anteriormente descrito de "Leche semi-descremada en polvo 400 gramos".
2. Búsqueda por fotografía: El usuario fotografía un producto de diseño que le interesa y desea revisar la existencia de algún producto en el catálogo que sea similar. Por ejemplo, un usuario fotografía un jarrón que vio en un departamento piloto y el sistema muestra diferentes productos que sean similares según algún criterio, como pueden ser productos con la misma combinación de colores, jarrones de diferentes formas y colores, otros productos con patrones similares visualmente.
3. Búsqueda por sketch: El usuario desea buscar un producto con un diseño específico pero no dispone de un objeto a fotografiar, por lo que puede dibujar una forma general del producto en un dispositivo con pantalla táctil. El sistema muestra al usuario productos que tienen una forma global similar a la ingresada, productos que tienen bordes en las mismas orientaciones de las del dibujo.
4. Búsqueda por video: El usuario graba una escena que contiene uno o más productos de interés, por ejemplo, una habitación o un comedor. El sistema busca en el catálogo y muestra los productos del catálogo más parecidos a los que aparecen en la escena.
VENTAJAS TÉCNICAS
La presente invención comprende los siguientes beneficios comparados con métodos tradicionales de resolver este tipo de problema descritos en el estado del arte:
Altamente expresiva: Utiliza el propio contenido de la imagen como consulta, además de poder incluir palabras claves en forma complementaria, lo que da un mayor poder de expresividad. La comunicación por dibujos sketch es una forma natural de comunicación entre los humanos, simple y altamente descriptiva que representa los componentes estructurales de lo que el usuario desea buscar.
Rápida: El usuario no necesita escribir el mejor texto para describir lo que desea. Basta con simplemente ubicar un producto frente a la cámara de su dispositivo o dibuje un sketch. El tiempo de búsqueda es de unos pocos segundos, por lo que el usuario puede obtener resultados en forma inmediata.
Efectiva: Al basarnos en consultas altamente descriptivas, la calidad de la búsqueda es mayor. Esto significa que el sistema permite recuperar una alta tasa de objetos relevantes a la consulta, lo que permite aumentar las ventas en línea comparado con buscadores por palabras claves.
Oportuna: Al usar tecnología móvil, nuestra tecnología siempre está disponible cuando se presenta una oportunidad de compra. Por ejemplo, si un cliente ve o imagina un producto de interés, utiliza la tecnología propuesta y lo busca en su tienda favorita.
Atractiva al usuario: La facilidad de uso y el efecto lúdico de dibujar y sorprenderse con el resultado de la búsqueda lo hacen muy atractivo y logra una grata experiencia para los usuarios.
BREVE DESCRIPCIÓN DE LAS FIGURAS
Figura 1 muestra un esquema general del sistema de búsqueda. Figura 2 muestra la fase de preparación del sistema. Figura 3 muestra los pasos para resolver una consulta de un usuario. Figura 4 muestra los pasos para resolver una consulta Visual+Textual. Figura 5 muestra los pasos para resolver una consulta Visual.
Figura 6 detalla los componentes en el módulo de Búsqueda Visual Auto-descriptiva (320). Figura 7 detalla los componentes en el módulo de Búsqueda Visual General (330). DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
La presente invención se relaciona con un sistema para búsqueda de productos en catálogos y el método asociado.
El esquema general del sistema para búsqueda de productos involucra una interacción con usuarios, al menos una unidad de procesamiento y al menos un catálogo de productos de una o más tiendas (ver Figura 1 ). Un usuario (100) envía consultas de búsqueda de productos (300) a la unidad de procesamiento (200) a través de una red de unidades de procesamiento (1 10). El buscador de productos mantiene una unidad de almacenamiento de datos (121 ) que comprende al menos una pluralidad de catálogos de productos de una pluralidad de tiendas (120). El usuario crea y envía las consultas mediante una aplicación en un dispositivo (1 10) que tiene conexión a red y permite tomar fotografías, realizar dibujos y/o grabar videos.
Un catálogo de productos de la unidad de almacenamiento de datos (121 ) comprende un conjunto de productos ofrecidos por una tienda para su venta. Cada producto viene representado por una descripción y una o más imágenes de ejemplo. Una categoría corresponde a una agrupación de productos. Las categorías organizan los productos en el catálogo según algún criterio definido por cada tienda. Cada producto en el catálogo pertenece a una o más categorías.
Durante la fase de preparación del sistema (ver Figura 2), el sistema para búsqueda de productos agrega los productos de tiendas a la base de datos. Un módulo de extracción de características de texto (280) procesa la descripción de los productos y crea un vector de características de texto (505) para cada producto. Un módulo o componente de extracción de características visuales (210) procesa las imágenes y genera un vector de características visuales (510) para cada producto. Un módulo o componente de auto-etiquetado (230) procesa las imágenes y crea etiquetas (515) que agrupan productos que muestran características visuales similares según algún criterio como color, forma, tipo de objeto, entre otros.
El módulo de extracción de características visuales (210) calcula el vector de características visuales por medio de algoritmos de descripción local, como por ejemplo, SIFT, SURF, HOG o alguna variante, lo que proporciona invariancia ante ciertas transformaciones geométricas, cambios de perspectiva y oclusión. Los descriptores locales calculados para una imagen son codificados o agregados usando un codebook para obtener el vector de características visuales de una imagen de un producto. El codebook es el resultado de aplicar un algoritmo de agrupamiento o clustering, como K-Means, sobre una muestra de los descriptores locales de todas las imágenes del catálogo. De este modo, el codebook corresponde a los K centros obtenidos por el algoritmo de clustering:
V = . vK}
La agregación de descriptores locales permite generar un solo vector de características por imagen. Una implementacion del proceso de agregación usa la estrategia Bag of Features (BoF). Sea / una imagen y LI={X -,,X2,...,XNI} el conjunto de Λ/, descriptores locales de la imagen /; bajo la estrategia BoF. cada uno de los descriptores de / se codifica con un código de longitud igual al tamaño del codebook. Así, el código de x se obtiene como sigue:
donde g es una función kernel y d(.) es una función de distancia. La función kernel se elige de modo que a mayor valor de distancia menor valor de g. El vector de características de I es calculado mediante una estrategia de pooling sobre los códigos generados con respecto los descriptores locales de /. Una implementacion utiliza pooling basado en suma, el cual obtiene el vector de características de / sumando los códigos de los descriptores locales:
Otra implementacion de agregación es VLAD (Vector of Locally Aggregated Descriptor), que toma en cuenta mayor información de los descriptores locales. En este caso, se obtiene un vector residual entre cada descriptor local y los centroides que definen el codebook. Así, el vector residual de x, con respecto al centroide j se define como:
Luego, los vector residuales son acumulados con respecto a cada cluster.
Para generar el vector de características de /, de acuerdo con VLAD, los vectores residuales acumulados son concatenados como se muestra a continuación:-
J¾™ R, RK
De acuerdo con lo descrito anteriormente, el módulo de extracción de características visuales (210) recibe una imagen /y genera un vector de características D,.
El módulo de auto-etiquetado (230) clasifica una imagen de acuerdo a diferentes criterios de clasificación. Una implementacion de este componente define tres criterios: color, forma y tipo. Así, el módulo de auto-etiquetado consiste en tres modelos de clasificación, uno por cada criterio. Cada modelo es generado por un componente de "Generación de Modelos de Clasificación" (220) mediante un proceso de aprendizaje supervisado, el cual requiere un conjunto de imágenes de productos para entrenamiento (002). En el conjunto de entrenamiento, cada imagen está asociada a una o más categorías de acuerdo con el criterio de clasificación establecido. Para el proceso de entrenamiento se utilizan características visuales de las imágenes. Estas características pueden ser definidas manualmente o automáticamente mediante el mismo clasificador. Una implementacion de este componente utiliza modelos de clasificación en donde las características se aprenden automáticamente, por ejemplo, usando una red neurona! convolucional. En otra implementacion se puede ocupar un modelo discriminativo en donde las características son definidas manualmente. Ejemplos de estos modelos pueden ser Máquinas de Vectores de Soporte (SVM), Redes Neuronales, K-Vecinos más cercanos (KNN) y Random Forest. Los modelos generados en el proceso de entrenamiento (002) son almacenado en un componente de "Modelos Clasificadores" (401 ).
El módulo de extracción de características de texto (280) procesa la descripción de los productos para generar un descriptor siguiendo el modelo vectorial tf-idf {term frequency-
inverse document frequency). Todas las palabras de las descripciones son procesadas para eliminar palabras muy repetidas {stop-lis , o sin significado, como artículos y preposiciones. A las palabras se obtiene su raíz léxica y para cada texto de descripción de un producto se calcula la frecuencia de la ocurrencia de cada raíz de palabra. La frecuencia de cada raíz de palabra es multiplicada por el logaritmo del inverso de la fracción de descripciones de productos donde aparece esa raíz.
Los vectores de características de texto y vectores de características visuales calculados para los productos son guardados en una base de datos (402). Para los vectores de texto se calcula una estructura de índice invertido que consiste en crear una tabla que para cada palabra contiene la lista de descripciones de producto que contiene esa palabra. Esto permite obtener en forma eficiente todos los productos que contienen cierta palabra ingresada por el usuario. Para los vectores de características visuales se calcula un índice multidimensional, que permite obtener en forma eficiente los vectores más cercanos a un vector de consulta.
La Figura 3 muestra un esquema de funcionamiento del sistema de acuerdo a una modalidad de la presente invención. Un usuario (100) utiliza una aplicación en un dispositivo móvil (1 10) para crear una Consulta (300). La Consulta puede ser del tipo Consulta Visual+Textual (301 ), si el usuario ingresa un ejemplo visual del producto buscado junto con una componente textual, o del tipo Consulta Visual (302), si el usuario ingresa solamente un ejemplo visual del producto buscado. Un ejemplo visual puede ser una fotografía de un objeto, un video conteniendo objetos o un dibujo hecho a mano representando formas del objeto buscado. Una componente textual corresponde a una o más palabras que describen alguna característica del producto buscado. La Consulta (300) es enviada a través de la Red de Computadores (1 10) a una Unidad de Procesamiento (400), la que resuelve la búsqueda y envía de regreso una Respuesta de Consulta (001 ) conteniendo los productos que fueron relevantes para la Consulta.
La unidad de procesamiento (200) carga la base de datos de productos (402) y todos los datos calculados durante la fase de preparación del sistema (Figura 2), recibe Consultas (300), busca productos en el catálogo de productos y retorna productos relevantes al usuario (001 ). El método utilizado por la unidad de procesamiento para resolver una consulta dependerá de si se recibe una Consulta Visual+Textual (301 ) o una Consulta Visual (302).
Una Consulta Visual+Textual (301 ) contiene un ejemplo visual de un objeto y una componente textual. El proceso involucrado para resolver este tipo de consulta se muestra en la Figura 4. La componente textual se utilizada para restringir el espacio de búsqueda de productos. Se utiliza el índice invertido para buscar todos los productos que contienen al menos una de las palabras de la componente textual, así la búsqueda por similitud se restringirá exclusivamente a este listado de productos textuales (520). El módulo de extracción de características visuales (210) procesa el ejemplo visual para obtener un vector de características visuales (525). Este vector se compara con todos los productos en el listado de productos textuales a través de un componente o módulo de búsqueda por similitud (240). La comparación entre vectores visuales se realiza mediante una función de distancia, que puede ser por ejemplo distancia Euclidiana, distancia Manhattan, distancia Mahalanobis, distancia Hellinger, Chi cuadrado, entre otras. El módulo de Búsqueda por Similitud (240) retorna una Lista de Productos Relevantes (003) que pasa por un módulo o componente de agrupamiento de resultados (260) para producir el resultado de la consulta.
Una Consulta Visual (302) contiene solamente un ejemplo visual de un objeto. A diferencia la Consulta Visual+Textual (301 ), el usuario no ingresa texto alguno. El proceso de búsqueda visual (Figura 5) se compone de dos módulos: un módulo de Búsqueda Visual Auto-Descriptiva (320) y un módulo de Búsqueda Visual General (330). Cada módulo produce una lista de productos relevantes que son combinadas mediante el componente de Combinación de Listas (340) para generar una Lista de Productos Relevantes (003). En
forma similar al caso anterior, la lista de productos relevantes es enviada a un componente de agrupamiento (260) para obtener la respuesta final de la consulta.
El módulo de Búsqueda Visual Auto-descriptiva (320) utiliza la componente de auto- etiquetado para generar automáticamente un conjunto de etiquetas (530) que describen el ejemplo de consulta (Figura 6). Con la descripción generada, un módulo de Selección de Productos (270) obtiene el subconjunto de productos que tiene al menos una etiqueta en común con el ejemplo de consulta. Se calcula el vector de características visuales (525) del ejemplo de consulta y se realiza una búsqueda por similitud restringida al subconjunto de productos con coincidencia de etiquetas. La búsqueda por similitud obtiene los K productos con mayor similitud al ejemplo de consulta en el subconjunto de productos los que son retornados como una Lista de Productos VAD (visual auto-descriptiva) (004),
El módulo Búsqueda Visual General (330) busca productos considerando todos los productos existentes en la base de datos. Se calcula el vector de características visuales (525) del ejemplo de consulta y se realiza una búsqueda por similitud dentro de todos los productos. La búsqueda por similitud obtiene los K productos con mayor similitud al ejemplo de consulta en la base de datos, los que son retornados como una Lista de Productos VG (visual general) (005),
La relevancia de un producto es un valor numérico mayor a cero, score, que representa el grado de coincidencia entre la solicitud de búsqueda y las características del producto. El módulo de Combinación de Listas (340) mezcla la Lista de Productos VAD (004) y la Lista de Productos VG (005). Esta mezcla corresponde a sumar el valor de relevancia de cada producto en cada búsqueda por similitud, acumulando la relevancia de los productos duplicados. Los K productos que obtienen la mayor relevancia acumulada generan la Lista de Productos Relevantes (003).
El módulo de Agrupamiento de Resultados (260) recibe una Lista de Productos Relevantes (003) y organiza los productos con respecto a las clases predominantes. A cada una de las clases se le asigna una votación con respecto a los productos de tal clase que aparece en la lista y se seleccionan las M clases más votadas. La votación considera sumar la relevancia de cada producto en la lista para cada categoría. La Respuesta de Consulta (001 ) es el listado con las categorías más votadas junto a los productos que votaron por ella. Esta Respuesta de Consulta se retorna a la aplicación cliente para que sea visualizada por el usuario.