🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI

Visión general del sistema

  • Scenarios
July 09, 2021
Yu Fang

stylepedia-1.png stylepedia-1.png

Fundada en 2003, Mozat es una empresa emergente con sede en Singapur y oficinas en China y Arabia Saudí. La empresa está especializada en la creación de aplicaciones para redes sociales, comunicación y estilo de vida. Stylepedia es una aplicación de vestuario creada por Mozat que ayuda a los usuarios a descubrir nuevos estilos y a conectar con otros apasionados de la moda. Sus principales características son la posibilidad de crear un armario digital, recomendaciones de estilo personalizadas, funciones de redes sociales y una herramienta de búsqueda de imágenes para encontrar artículos similares a los que se ven en Internet o en la vida real.

El sistema de búsqueda de imágenes de Stylepedia se basa enMilvus. La aplicación maneja tres tipos de imágenes: imágenes de usuario, imágenes de producto y fotografías de moda. Cada imagen puede incluir uno o más elementos, lo que complica aún más cada consulta. Para ser útil, un sistema de búsqueda de imágenes debe ser preciso, rápido y estable, características que sientan una sólida base técnica para añadir nuevas funcionalidades a la aplicación, como sugerencias de atuendos y recomendaciones de contenidos de moda.

Visión general del sistema

stylepedia-system-process.png stylepedia-sistema-proceso.png

El sistema de búsqueda de imágenes se divide en componentes offline y online.

Fuera de línea, las imágenes se vectorizan y se insertan en una base de datos vectorial (Milvus). En el flujo de trabajo de datos, las imágenes de productos y fotografías de moda relevantes se convierten en vectores de características de 512 dimensiones mediante modelos de detección de objetos y extracción de características. A continuación, los datos vectoriales se indexan y se añaden a la base de datos vectorial.

En línea, se consulta la base de datos de imágenes y se devuelven al usuario imágenes similares. Al igual que en el componente fuera de línea, una imagen consultada se procesa mediante modelos de detección de objetos y extracción de características para obtener un vector de características. A partir del vector de características, Milvus busca vectores similares TopK y obtiene sus correspondientes ID de imagen. Por último, tras el posprocesamiento (filtrado, clasificación, etc.), se obtiene una colección de imágenes similares a la imagen de consulta.

Implementación

La aplicación se divide en cuatro módulos:

  1. Detección de prendas
  2. Extracción de características
  3. Búsqueda de vectores de similitud
  4. Tratamiento posterior

Detección de prendas

En el módulo de detección de prendas, se utiliza YOLOv5, un marco de detección de objetivos de una etapa basado en anclajes, como modelo de detección de objetos por su pequeño tamaño y su inferencia en tiempo real. Ofrece cuatro tamaños de modelo (YOLOv5s/m/l/x), y cada tamaño específico tiene pros y contras. Los modelos más grandes ofrecen mejores resultados (mayor precisión), pero requieren mucha más potencia de cálculo y son más lentos. Como en este caso los objetos son relativamente grandes y fáciles de detectar, basta con el modelo más pequeño, YOLOv5s.

Las prendas de ropa de cada imagen se reconocen y recortan para que sirvan como entradas del modelo de extracción de características utilizado en el procesamiento posterior. Simultáneamente, el modelo de detección de objetos también predice la clasificación de las prendas según clases predefinidas (tops, prendas exteriores, pantalones, faldas, vestidos y peleles).

Extracción de características

La clave de la búsqueda de similitudes es el modelo de extracción de características. Las imágenes de prendas recortadas se incrustan en vectores de coma flotante de 512 dimensiones que representan sus atributos en un formato de datos numéricos legibles por máquina. Se adopta la metodología de aprendizaje métrico profundo (DML ) con EfficientNet como modelo troncal.

El aprendizaje métrico tiene como objetivo entrenar un módulo de extracción de características no lineal basado en CNN (o un codificador) para reducir la distancia entre los vectores de características correspondientes a la misma clase de muestras, y aumentar la distancia entre los vectores de características correspondientes a diferentes clases de muestras. En este escenario, la misma clase de muestras se refiere a la misma prenda de ropa.

EfficientNet tiene en cuenta tanto la velocidad como la precisión a la hora de escalar uniformemente la anchura, la profundidad y la resolución de la red. EfficientNet-B4 se utiliza como red de extracción de características, y la salida de la última capa totalmente conectada son las características de imagen necesarias para realizar la búsqueda de similitud vectorial.

Milvus es una base de datos vectorial de código abierto que admite operaciones de creación, lectura, actualización y eliminación (CRUD), así como búsquedas casi en tiempo real en conjuntos de datos de billones de bytes. En Stylepedia, se utiliza para la búsqueda de similitudes vectoriales a gran escala porque es altamente elástica, estable, fiable y rapidísima. Milvus amplía las capacidades de bibliotecas de índices vectoriales ampliamente utilizadas (Faiss, NMSLIB, Annoy, etc.) y proporciona un conjunto de API sencillas e intuitivas que permiten a los usuarios seleccionar el tipo de índice ideal para un escenario determinado.

Dados los requisitos del escenario y la escala de los datos, los desarrolladores de Stylepedia utilizaron la distribución de Milvus sólo para CPU emparejada con el índice HNSW. Se han creado dos colecciones indexadas, una para productos y otra para fotografías de moda, para alimentar diferentes funcionalidades de la aplicación. Cada colección se divide a su vez en seis particiones basadas en los resultados de detección y clasificación para reducir el alcance de la búsqueda. Milvus realiza búsquedas en decenas de millones de vectores en milisegundos, proporcionando un rendimiento óptimo al tiempo que mantiene bajos los costes de desarrollo y minimiza el consumo de recursos.

Postprocesamiento

Para mejorar la similitud entre los resultados de la recuperación de imágenes y la imagen de consulta, utilizamos el filtrado por colores y el filtrado por etiquetas clave (longitud de las mangas, longitud de la ropa, estilo del cuello, etc.) para filtrar las imágenes no aptas. Además, se utiliza un algoritmo de evaluación de la calidad de la imagen para asegurarse de que las imágenes de mayor calidad se presentan primero a los usuarios.

Aplicación

Los usuarios pueden hacer fotos de su propia ropa y subirlas a su armario digital de Stylepedia para, a continuación, recuperar las imágenes de productos más parecidas a las que han subido.

stylepedia-search-results.png stylepedia-búsqueda-resultados.png

Sugerencias de conjuntos

Al realizar una búsqueda de similitudes en la base de datos de Stylepedia, los usuarios pueden encontrar fotografías de moda que contengan un artículo de moda específico. Puede tratarse de una prenda nueva que alguien esté pensando en comprar o de algo de su propia colección que podría llevarse o combinarse de forma diferente. A continuación, mediante la agrupación de las prendas con las que suele combinarse, se generan sugerencias de conjuntos. Por ejemplo, una chaqueta negra de motorista puede combinar con una gran variedad de prendas, como unos vaqueros pitillo negros. A continuación, los usuarios pueden consultar fotografías de moda relevantes en las que se produzca esta combinación en la fórmula seleccionada.

stylepedia-jacket-outfit.png stylepedia-chaqueta-outfit.png

stylepedia-jacket-snapshot.png stylepedia-chaqueta-snapshot.png

Recomendaciones de fotografías de moda

Basándose en el historial de navegación de un usuario, sus gustos y el contenido de su armario digital, el sistema calcula la similitud y ofrece recomendaciones personalizadas de fotografías de moda que pueden ser de su interés.

stylepedia-user-wardrobe.png stylepedia-usuario-armario.png

stylepedia-streetsnap-rec.png stylepedia-streetsnap-rec.png

Mediante la combinación de metodologías de aprendizaje profundo y visión por ordenador, Mozat fue capaz de construir un sistema de búsqueda de similitud de imágenes rápido, estable y preciso utilizando Milvus para potenciar varias funciones de la app Stylepedia.

No sea un extraño

  • Encuentre o contribuya a Milvus en GitHub.
  • Interactúe con la comunidad a través de Slack.
  • Conéctese con nosotros en Twitter.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

Sigue Leyendo