🚀 Testen Sie Zilliz Cloud, die vollständig verwaltete Milvus, kostenlos – erleben Sie 10x schnellere Leistung! Jetzt testen>>

milvus-logo
LFAI

System-Übersicht

  • Scenarios
July 09, 2021
Yu Fang

stylepedia-1.png stylepedia-1.png

Mozat wurde 2003 gegründet und ist ein Start-up-Unternehmen mit Hauptsitz in Singapur und Niederlassungen in China und Saudi-Arabien. Das Unternehmen hat sich auf die Entwicklung von Social-Media-, Kommunikations- und Lifestyle-Anwendungen spezialisiert. Stylepedia ist eine von Mozat entwickelte Kleiderschrank-App, die den Nutzern hilft, neue Stile zu entdecken und sich mit anderen Modebegeisterten zu vernetzen. Zu den wichtigsten Funktionen gehören die Möglichkeit, einen digitalen Kleiderschrank anzulegen, personalisierte Stilempfehlungen, Social-Media-Funktionen und eine Bildersuche, um ähnliche Artikel zu finden, wie man sie online oder im echten Leben gesehen hat.

Milvus wird verwendet, um das Bildsuchsystem in Stylepedia zu betreiben. Die App verarbeitet drei Bildtypen: Benutzerbilder, Produktbilder und Modefotos. Jedes Bild kann ein oder mehrere Elemente enthalten, was jede Abfrage noch komplizierter macht. Um nützlich zu sein, muss ein Bildsuchsystem genau, schnell und stabil sein. Diese Eigenschaften bilden eine solide technische Grundlage für die Erweiterung der App um neue Funktionen wie Outfitvorschläge und Empfehlungen für Modeinhalte.

System-Übersicht

stylepedia-system-process.png stylepedia-system-prozess.png

Das Bildsuchsystem ist in eine Offline- und eine Online-Komponente unterteilt.

Offline werden die Bilder vektorisiert und in eine Vektordatenbank (Milvus) eingefügt. Im Daten-Workflow werden relevante Produktbilder und Modefotos mit Hilfe von Objekterkennungs- und Merkmalsextraktionsmodellen in 512-dimensionale Merkmalsvektoren umgewandelt. Die Vektordaten werden dann indiziert und in die Vektordatenbank eingefügt.

Online wird die Bilddatenbank abgefragt und ähnliche Bilder werden dem Nutzer zurückgegeben. Ähnlich wie bei der Offline-Komponente wird ein abgefragtes Bild mit Objekterkennungs- und Merkmalsextraktionsmodellen verarbeitet, um einen Merkmalsvektor zu erhalten. Anhand des Merkmalsvektors sucht Milvus nach ähnlichen TopK-Vektoren und ermittelt die entsprechenden Bild-IDs. Nach der Nachbearbeitung (Filterung, Sortierung usw.) wird schließlich eine Sammlung von Bildern zurückgegeben, die dem abgefragten Bild ähnlich sind.

Implementierung

Die Implementierung gliedert sich in vier Module:

  1. Erkennung von Kleidungsstücken
  2. Merkmalsextraktion
  3. Vektorielle Ähnlichkeitssuche
  4. Nachbearbeitung

Erkennung von Kleidungsstücken

Im Modul für die Erkennung von Kleidungsstücken wird YOLOv5, ein einstufiges, ankerbasiertes Zielerkennungsmodell, als Objekterkennungsmodell verwendet, da es sehr klein ist und in Echtzeit funktioniert. Es bietet vier Modellgrößen (YOLOv5s/m/l/x), wobei jede spezifische Größe Vor- und Nachteile hat. Die größeren Modelle sind leistungsfähiger (höhere Genauigkeit), benötigen aber viel mehr Rechenleistung und laufen langsamer. Da es sich in diesem Fall um relativ große und leicht zu erkennende Objekte handelt, ist das kleinste Modell, YOLOv5s, ausreichend.

Die Kleidungsstücke in jedem Bild werden erkannt und ausgeschnitten, um als Input für das Modell zur Merkmalsextraktion zu dienen, das in der nachfolgenden Verarbeitung verwendet wird. Gleichzeitig sagt das Objekterkennungsmodell auch die Klassifizierung der Kleidungsstücke nach vordefinierten Klassen (Oberteile, Oberbekleidung, Hosen, Röcke, Kleider und Strampler) voraus.

Merkmalsextraktion

Der Schlüssel zur Ähnlichkeitssuche ist das Modell zur Merkmalsextraktion. Ausgeschnittene Bilder von Kleidungsstücken werden in 512-dimensionale Fließkomma-Vektoren eingebettet, die ihre Attribute in einem maschinenlesbaren numerischen Datenformat darstellen. Die Methodik des tiefen metrischen Lernens (DML) wird mit EfficientNet als Backbone-Modell eingesetzt.

Metrisches Lernen zielt darauf ab, ein CNN-basiertes nichtlineares Merkmalsextraktionsmodul (oder einen Encoder) zu trainieren, um den Abstand zwischen den Merkmalsvektoren, die der gleichen Klasse von Proben entsprechen, zu verringern und den Abstand zwischen den Merkmalsvektoren, die verschiedenen Klassen von Proben entsprechen, zu vergrößern. In diesem Szenario bezieht sich die gleiche Klasse von Mustern auf das gleiche Kleidungsstück.

EfficientNet berücksichtigt bei der einheitlichen Skalierung von Netzwerkbreite, -tiefe und -auflösung sowohl Geschwindigkeit als auch Präzision. EfficientNet-B4 wird als Netzwerk zur Merkmalsextraktion verwendet, und die Ausgabe der letzten vollständig verknüpften Schicht sind die Bildmerkmale, die zur Durchführung der Vektorähnlichkeitssuche benötigt werden.

Milvus ist eine Open-Source-Vektordatenbank, die das Erstellen, Lesen, Aktualisieren und Löschen (CRUD) von Datensätzen mit einer Größe von einer Billion Byte sowie die Suche in nahezu Echtzeit unterstützt. In Stylepedia wird sie für die groß angelegte Vektorähnlichkeitssuche verwendet, da sie äußerst elastisch, stabil, zuverlässig und blitzschnell ist. Milvus erweitert die Fähigkeiten weit verbreiteter Vektorindexbibliotheken (Faiss, NMSLIB, Annoy usw.) und bietet eine Reihe einfacher und intuitiver APIs, mit denen Benutzer den idealen Indextyp für ein bestimmtes Szenario auswählen können.

Angesichts der Anforderungen des Szenarios und des Datenumfangs verwendeten die Stylepedia-Entwickler die CPU-only-Distribution von Milvus in Kombination mit dem HNSW-Index. Zwei indizierte Sammlungen, eine für Produkte und eine für Modefotografien, wurden erstellt, um verschiedene Anwendungsfunktionalitäten zu unterstützen. Jede Sammlung wird auf der Grundlage der Erkennungs- und Klassifizierungsergebnisse in sechs Partitionen unterteilt, um den Suchbereich einzugrenzen. Milvus führt die Suche auf mehreren Millionen Vektoren in Millisekunden durch und bietet so eine optimale Leistung, während die Entwicklungskosten niedrig gehalten und der Ressourcenverbrauch minimiert werden.

Nachbearbeitung

Um die Ähnlichkeit zwischen den Ergebnissen der Bildsuche und dem gesuchten Bild zu verbessern, verwenden wir Farbfilter und Filter für Schlüsselbegriffe (Ärmellänge, Kleidungslänge, Kragenform usw.), um ungeeignete Bilder herauszufiltern. Darüber hinaus wird ein Algorithmus zur Bewertung der Bildqualität verwendet, um sicherzustellen, dass den Nutzern zuerst die qualitativ besseren Bilder präsentiert werden.

Anwendung

Die Benutzer können Bilder ihrer eigenen Kleidung machen und sie in ihren digitalen Kleiderschrank bei Stylepedia hochladen, um dann die Produktbilder abzurufen, die ihren hochgeladenen Bildern am ähnlichsten sind.

stylepedia-search-results.png stylepedia-suche-ergebnisse.png

Outfit-Vorschläge

Durch eine Ähnlichkeitssuche in der Stylepedia-Datenbank können die Nutzer Modefotos finden, die ein bestimmtes Kleidungsstück enthalten. Dabei kann es sich um neue Kleidungsstücke handeln, die jemand kaufen möchte, oder um etwas aus der eigenen Kollektion, das anders getragen oder kombiniert werden könnte. Durch die Gruppierung der Artikel, mit denen sie häufig kombiniert werden, werden dann Outfitvorschläge generiert. So kann beispielsweise eine schwarze Bikerjacke mit einer Vielzahl von Kleidungsstücken kombiniert werden, etwa mit einer schwarzen Skinny Jeans. Die Nutzer können dann relevante Modefotos durchsuchen, auf denen diese Kombination in der ausgewählten Formel vorkommt.

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

stylepedia-jacket-snapshot.png stylepedia-jacke-schnappschuss.png

Empfehlungen für Modefotos

Auf der Grundlage des Browserverlaufs eines Nutzers, seiner Vorlieben und des Inhalts seines digitalen Kleiderschranks berechnet das System Ähnlichkeiten und bietet maßgeschneiderte Empfehlungen für Modefotos, die von Interesse sein könnten.

stylepedia-user-wardrobe.png stylepedia-benutzer-kleiderschrank.png

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

Durch die Kombination von Deep-Learning- und Computer-Vision-Methoden konnte Mozat ein schnelles, stabiles und genaues System für die Suche nach Bildähnlichkeiten entwickeln, das Milvus nutzt, um verschiedene Funktionen in der Stylepedia-App zu unterstützen.

Seien Sie kein Fremder

  • Finden Sie Milvus auf GitHub oder tragen Sie dazu bei.
  • Interagiere mit der Community über Slack.
  • Verbinde dich mit uns auf 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

Weiterlesen