Table of Contents

Bonprix AI Projekt

Die Projektdateien befinden sich hier:: dev02:/home/picalike/projects/bonprix_ai

This page is not current, more current information is found in bonprix_ai_service and the git

Repository

https://git.picalike.corpex-kunden.de/incubator/bonprix-ai

API

Das besprochene Interface sieht wie folgt aus:

Der api_key wird mit bonprix geteilt, ohne diesen ist kein Zugang möglich. Derzeitiger Stand ist ein Mockup Modus, der zufällig Daten generiert. Die Rückgabe ist aber gemäß der Taxonomie, also gültige Attribute + Ausrägungen, dann jeweils mit zufälligen Scores

Werkvertrag (Erste Version)

https://docs.google.com/document/d/1hbqpF5AfeEAjJEVZeWc0ttoXHmaFcAN4/edit

(PDF) [persistenter Link aus Slack…]

Bilder: Agentur

Werden derzeit NICHT verwendet

Ordner mit Bildern ist hier zu finden:
https://drive.google.com/drive/folders/1oSLEY_N9kbsk-flmsgFLzq_u-vCf9iMm

Datei mit Übersicht der fehlenden Attribute:
https://docs.google.com/spreadsheets/d/1g_Cy4a4thasKb5A-H5nYEZptFdkYmekT/edit#gid=1752532373

Simone hat in einer Excel-Tabelle (Teams→Dateien: https://teams.microsoft.com/l/file/94EFE4B8-4219-4A65-81F9-121AB4B20FF5?tenantId=8794e153-c3bd-4479-8bea-61aeaf167d5a&fileType=xlsx&objectUrl=https%3A%2F%2Fog2gether.sharepoint.com%2Fsites%2FAP-PicalikeBonprix%2FFreigegebene%20Dokumente%2FGeneral%2Fbonprix%20ai.xlsx&baseUrl=https%3A%2F%2Fog2gether.sharepoint.com%2Fsites%2FAP-PicalikeBonprix&serviceName=teams&threadId=19:af1e5fb777474f8c836fc3dcad70cdf5@thread.tacv2&groupId=fe409595-49b8-456c-9e8f-e1572057781f) Feedback zu den Bildern zusammengetragen.

FAZIT: Externe Agentur-Bilder sollen nicht direkt mit Styles verknüpft werden, sonder dienen als zusätzliches Trainingsmaterial.

(Öffentlicher) Dienst

Der Dienst wird nach außen hin, unter http://api.picalike.com:8060 [/get_image_attributes]. Die Anfrage wird auf sandy.picalike.corpex-kunden.de:8060 weitergeleitet. Dort läuft (bald) der eigentliche Dienst.

Auf sandy lebt der Dienst unter:
/home/picalike/bonprix_ai

Der API-Key ist fest auf 59db0943c6ef48544ffdfa4a0a3c9e10 gesetzt.

Test für den Dienst:

curl http://api.picalike.com:8060/health

Rahmen

MVP Deadline: 8 Wochen nach Zugang des letzten Daten-Batches

Ziel: einen Web-Dienst, basierend auf FastAPI, der eine Annotation (Attribute) von Produkt-Bildern von Bonprix ermöglicht.

INPUT: Mehrere Arbeitsbilder, wobei das Format 'Professional' oder 'Schnapsschuss' sein kann.

OUTPUT: JSON-Dokument (Dictionary) mit Format gemäß Vertrag, d.h. erkannte Attribute + Score + Ausprägung + Score.

Meetings

Jeden Freitag um 08:30, um einmal mögliche Fragen durchgehen und Fortschritte zu präsentieren.
Im März ist es noch jeden Mittwoch um 08:30.

Gespräche

Notizen zu Gesprächen. Ziel ist es auch, eine Guideline für Daten gemeinsam zu erarbeiten, da die Bilder bisher nicht nach gewählten Kriterien ausgewählt worden. Das schließt Bildgröße, Ausrichtung, etc. ein.

24. August 2021

03. August 2021

07. Mai 2021

30. April 2021

28. April 2021

16. April 2021

09. April 2021

01. April 2021

Wir haben uns noch mit Adrian getroffen, um nochmal zu klären, ob wir nicht auf Bildebene trainieren können. Fazit: bei widersprüchlichen Einzelvorhersagen ist eine Aggregation schwierig, weshalb wir auf Style-Ebene bleiben, um eine “kohärente” Vorhersage für die Bildmenge, also den Style zurückzugeben.

31. März 2021

Deadline: 12.4 für den Prototypen

24. März 2021 (Zusätzliche Daten von der Agentur)

17. März 2021 (Erste Auswertung: one-vs-rest)

16. März 2021 (Telefonat mit Adrian)

12. März 2021

Montag soll es den nächsten Schwung Daten geben.

Unser Commit bis Mittwoch: einmal eine einfache Pipeline (Attribute erkennen) anwenden und denen erste Ergebnisse mitteilen.

Offene Fragen

Daten

Wir haben 532 Beispiele erhalten.

Eindeutige ID ist 'style_id', Bild-URLs sind unter 'images' mit Annotationen für die Perspektive. Die restlichen Einträge sind Attribute als key-value-Paare.

Es gibt insgesamt 41 normale Attribute, mit 321 Ausprägungen.

[Genauere Übersicht der Datei sollte noch folgen]

Es werden drei Arten von Kategorien im Feed bereitgestellt.

UPDATE 1 (9.3.2021):

Nach Feedback haben wir erneut Daten erhalten.

Diese beinhalten 152 Attribute. Das mapping Attribut - ID kann hier gefunden werden:

https://docs.google.com/spreadsheets/d/1hoKGdZV0OmqCcXbQd85iXmL94k72wQQx/edit#gid=1560664826

Eine Liste der Ausprägungen ist nun auch vorhanden:

https://docs.google.com/spreadsheets/d/1JPmV4bkZYI1k4g0-9VPrBTxMhGumi_2u/edit#gid=1338974510

Mögliche Konzepte

Da ein Produkt aus mehreren Bildern besteht wäre es sinnvoll, auch mehre Bilder für die Vorhersage von Attributen zu verwenden. Dafür gibt es sogenannte Multi-Image Netze [https://arxiv.org/pdf/2101.04909.pdf%5D, die eine Transformer-Schicht verwenden, und dann (Sum-)Pooling, um die variable Menge an Bildern in eine Darstellung fester Länge zu überführen.

Übersicht Multi-Label Classification

https://d-nb.info/118841030X/34 Abschnitt 3

Hinweis: wir beschränken uns bei der Recherche und Methodik auf Ansätze basierend auf Neuronalen Netzen.

Mögliche Architektur

https://arxiv.org/pdf/2011.14027.pdf

Passt nahezu perfekt und ist zu 80% genau der Ansatz, den ich mir auch überlegt habe.

FIXME ich habe einige vorläufige Experimente durchgeführt und es gibt einige offene Fragen, die vor der Implementierung geklärt werden müssen.

Metriken

Da für die Aufgabe mehrere unterschiedliche Klassifikationsstufen nötig sind ist es nicht trivial eine Metrik auszuwählen. Die aufgezählten Metriken gehen davon aus, dass die Netz-Ausgabe durch ein beliebiges Verfahren, z. B. Thresholding, zu Nullen und Einsen konvertiert wurde.

Die Liste von Metriken ist zusammengestellt aus den folgenden Quellen:

https://towardsdatascience.com/journey-to-the-center-of-multi-label-classification-384c40229bff
https://mmuratarat.github.io/2020-01-25/multilabel_classification_metrics
https://en.wikipedia.org/wiki/Multi-label_classification#Statistics_and_evaluation_metrics

Relevante Metriken sind:

Generell sind Labels nicht gleichverteilt, sodass Metriken ggf. extra Gewichtungen benötigen.