Vue d'ensemble du système
stylepedia-1.png
Fondée en 2003, Mozat est une start-up dont le siège se trouve à Singapour et qui possède des bureaux en Chine et en Arabie saoudite. L'entreprise est spécialisée dans la création d'applications de médias sociaux, de communication et de style de vie. Stylepedia est une application de garde-robe créée par Mozat qui aide les utilisateurs à découvrir de nouveaux styles et à entrer en contact avec d'autres passionnés de mode. Ses principales caractéristiques sont la possibilité de créer une garde-robe numérique, des recommandations de style personnalisées, une fonctionnalité de médias sociaux et un outil de recherche d'images pour trouver des articles similaires à ceux vus en ligne ou dans la vie réelle.
Milvus est utilisé pour alimenter le système de recherche d'images de Stylepedia. L'application traite trois types d'images : les images d'utilisateurs, les images de produits et les photographies de mode. Chaque image peut inclure un ou plusieurs éléments, ce qui complique encore plus chaque requête. Pour être utile, un système de recherche d'images doit être précis, rapide et stable, des caractéristiques qui constituent une base technique solide pour l'ajout de nouvelles fonctionnalités à l'application, telles que les suggestions de tenues et les recommandations de contenu de mode.
Vue d'ensemble du système
stylepedia-system-process.png
Le système de recherche d'images est divisé en deux parties, l'une hors ligne et l'autre en ligne.
Hors ligne, les images sont vectorisées et insérées dans une base de données vectorielle (Milvus). Dans le flux de données, les images de produits et les photographies de mode pertinentes sont converties en vecteurs de caractéristiques à 512 dimensions à l'aide de modèles de détection d'objets et d'extraction de caractéristiques. Les données vectorielles sont ensuite indexées et ajoutées à la base de données vectorielle.
En ligne, la base de données d'images est interrogée et les images similaires sont renvoyées à l'utilisateur. Comme pour la composante hors ligne, l'image interrogée est traitée par des modèles de détection d'objets et d'extraction de caractéristiques afin d'obtenir un vecteur de caractéristiques. À l'aide de ce vecteur, Milvus recherche les vecteurs similaires TopK et obtient les identifiants des images correspondantes. Enfin, après un post-traitement (filtrage, tri, etc.), une collection d'images similaires à l'image de la requête est renvoyée.
Mise en œuvre
L'implémentation se décompose en quatre modules :
- Détection de vêtements
- Extraction des caractéristiques
- Recherche de similarité vectorielle
- Post-traitement
Détection de vêtements
Dans le module de détection de vêtements, YOLOv5, un cadre de détection de cibles en une étape, basé sur l'ancrage, est utilisé comme modèle de détection d'objets en raison de sa petite taille et de son inférence en temps réel. Il propose quatre tailles de modèle (YOLOv5s/m/l/x), et chaque taille spécifique présente des avantages et des inconvénients. Les modèles plus grands sont plus performants (plus grande précision) mais nécessitent beaucoup plus de puissance de calcul et s'exécutent plus lentement. Dans le cas présent, les objets étant relativement grands et faciles à détecter, le plus petit modèle, YOLOv5s, suffit.
Les vêtements de chaque image sont reconnus et découpés pour servir d'entrées au modèle d'extraction des caractéristiques utilisé dans le traitement ultérieur. Simultanément, le modèle de détection d'objets prédit également la classification des vêtements selon des classes prédéfinies (hauts, vêtements d'extérieur, pantalons, jupes, robes et barboteuses).
Extraction des caractéristiques
Le modèle d'extraction des caractéristiques est la clé de la recherche de similitudes. Les images de vêtements recadrées sont intégrées dans des vecteurs à virgule flottante de 512 dimensions qui représentent leurs attributs dans un format de données numériques lisible par une machine. La méthodologie d'apprentissage métrique profond (DML) est adoptée avec EfficientNet comme modèle de base.
L'apprentissage métrique vise à former un module d'extraction de caractéristiques non linéaires basé sur le CNN (ou un encodeur) afin de réduire la distance entre les vecteurs de caractéristiques correspondant à la même classe d'échantillons et d'augmenter la distance entre les vecteurs de caractéristiques correspondant à des classes d'échantillons différentes. Dans ce scénario, la même classe d'échantillons correspond au même vêtement.
EfficientNet tient compte à la fois de la vitesse et de la précision lors de la mise à l'échelle uniforme de la largeur, de la profondeur et de la résolution du réseau. EfficientNet-B4 est utilisé comme réseau d'extraction de caractéristiques, et la sortie de la dernière couche entièrement connectée est constituée des caractéristiques d'image nécessaires pour effectuer la recherche de similarité vectorielle.
Recherche de similarité vectorielle
Milvus est une base de données vectorielles open-source qui prend en charge les opérations de création, de lecture, de mise à jour et de suppression (CRUD) ainsi que la recherche en temps quasi réel sur des ensembles de données d'un trillion d'octets. Dans Stylepedia, elle est utilisée pour la recherche de similarités vectorielles à grande échelle parce qu'elle est très élastique, stable, fiable et rapide comme l'éclair. Milvus étend les capacités des bibliothèques d'index vectoriels largement utilisées (Faiss, NMSLIB, Annoy, etc.) et fournit un ensemble d'API simples et intuitives qui permettent aux utilisateurs de sélectionner le type d'index idéal pour un scénario donné.
Compte tenu des exigences du scénario et de l'échelle des données, les développeurs de Stylepedia ont utilisé la distribution CPU-only de Milvus associée à l'index HNSW. Deux collections indexées, l'une pour les produits et l'autre pour les photographies de mode, sont construites pour alimenter différentes fonctionnalités de l'application. Chaque collection est ensuite divisée en six partitions en fonction des résultats de la détection et de la classification afin de réduire la portée de la recherche. Milvus effectue des recherches sur des dizaines de millions de vecteurs en quelques millisecondes, offrant ainsi des performances optimales tout en maintenant les coûts de développement à un niveau bas et en minimisant la consommation de ressources.
Post-traitement
Pour améliorer la similarité entre les résultats de la recherche d'images et l'image de la requête, nous utilisons le filtrage des couleurs et des étiquettes clés (longueur de la manche, longueur du vêtement, style de col, etc.) pour filtrer les images non admissibles. En outre, un algorithme d'évaluation de la qualité des images est utilisé pour s'assurer que les images de meilleure qualité sont présentées aux utilisateurs en premier.
Application
Téléchargement par l'utilisateur et recherche d'images
Les utilisateurs peuvent prendre des photos de leurs propres vêtements et les télécharger dans leur placard numérique Stylepedia, puis récupérer les images de produits les plus similaires à leurs téléchargements.
stylepedia-recherche-résultats.png
Suggestions de tenues
En effectuant une recherche de similarité dans la base de données Stylepedia, les utilisateurs peuvent trouver des photos de mode qui contiennent un article de mode spécifique. Il peut s'agir de nouveaux vêtements que quelqu'un envisage d'acheter ou d'un article de sa propre collection qui pourrait être porté ou associé différemment. Ensuite, grâce au regroupement des articles avec lesquels l'article est souvent associé, des suggestions de tenues sont générées. Par exemple, une veste de motard noire peut être associée à différents articles, tels qu'une paire de jeans noirs. Les utilisateurs peuvent alors parcourir des photographies de mode pertinentes où cette association se produit dans la formule sélectionnée.
stylepedia-veste-tailleur.png
stylepedia-veste-capture.png
Recommandations de photographies de mode
Sur la base de l'historique de navigation de l'utilisateur, de ses goûts et du contenu de sa garde-robe numérique, le système calcule la similarité et fournit des recommandations personnalisées de photographies de mode susceptibles de l'intéresser.
stylepedia-user-wardrobe.png
stylepedia-streetsnap-rec.png
En combinant des méthodologies d'apprentissage profond et de vision par ordinateur, Mozat a pu construire un système de recherche de similarité d'images rapide, stable et précis en utilisant Milvus pour alimenter diverses fonctionnalités de l'application Stylepedia.
Ne soyez pas un inconnu
- Mise en œuvre
- Application
- Ne soyez pas un inconnu
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word