propose-ai
propose-ai

Endspurt… & Einladung zur Abschlusspräsentation

Zugegeben auch wenn es die letzten Wochen hier im Blog kein Lebenszeichen der Propose.AI 2 Projektgruppe gab, ging die Projektarbeit stetig weiter. Wer den Prototyp immer mal wieder besucht hat, könnte das bemerkt haben. Noch ist das Projekt noch nicht vorbei! Aktuell werden die letzten Aufgaben, wie das Testen der verschiedenen Embeddingansätze, sowie die Vorbereitung auf die Evaluation des Prototyps und die Anfertigung der Projekt-Dokumentation, abgeschlossen. Außerdem bereiten die Projektmitglieder die Abschlusspräsentation vor, welche am Freitag, den 09.10.2020, ab 14 Uhr stattfindet. Die Projektgruppe lädt herzlich zur letzten Präsentation ein. Mit diesem Link können Sie gerne die finalen Ergebnisse und Erkenntnisse der letzten zwölf Monate innerhalb von Microsoft Teams verfolgen. Ein Nutzerkonto ist nicht notwendig. Propose.AI2 freut sich über viele Zuhörer und Feedback.

Erweiterung der Feature Extraction: Haarfarbe

Um uns von einem Nutzer ein noch genaueres Bild machen können und so auch die Brillenvorschläge zu verbessern haben wir einem Merkmal gewidmet, dass bisher noch aus stand: Die Haarfarbe.
Um die Haarfarbe ermitteln zu können müssen wir zunächst die Haare aus dem Bild des Nutzers ausschneiden. Indem wir auf unsere bisherige Arbeit aufbauen können wir uns viel Arbeit für diesen Schritt sparen.

Wir nutzen unsere Gesichtserkennung, um zunächst den Kopf zu erkennen. Dann muss aus diesem Gesichtsausschnitt nur noch der Teil der Haare erkannt werden. Dafür können wir wiederum auf eine Version des CelebA Datensatzes zurückgreifen. Der CelebA-Mask-HQ Datensatz besteht aus vielen sehr detaillierten Segmentierungsmasken für alle möglichen Gesichtsmerkmale: Dabei unter anderem auch Haare.

Trainiert haben wir wiederum ein EfficientNetB0, um den Bildausschnitt der Haare zu bestimmen. Eine Herausforderung bei dieser Aufgabe sind die oft filigranen Haaransätze, die oft dazu führen, dass Teile vom Hintergrund mit eingeschlossen werden. Dies kann leicht dazu führen, dass eine falsche Haarfarbe erkannt werden kann. Dieses Problem ließ sich zu einem großen Teil mit einem sehr aggressiven threshold verhindern. Wobei immer noch kleine Teile des Hintergrundes mit eingeschlossen werden können.

Originale der bestimmten Masken links. Variante mit hohem threshold rechts

Nun können wir dazu übergehen die Haarfarbe der Person über die Pixelwerte zu bestimmen. Dazu haben wir zunächst die gleiche Farberkennung genutzt, die wir bereits für Kleidungsstücke verwendet haben. Hier wird einfach der häufigste RGB-Farbwert bestimmt und ausgegeben. Wir mussten schnell feststellen, dass unsere bisherige Farberkennung recht ungenau bei Haarfarben arbeitet.
Haare haben häufig starke Farbverläufe. Die Farberkennung konzentriert sich jedoch auf solide Farbblöcke. Außerdem kommt es häufig dazu, dass Teile der Haare überbelichtet werden. Besonders, wenn die Person von hinten beleuchtet wird. Dann erkennt die Farberkennung die helle solide Farbe des überbelichteten Teils des Ausschnittes, nicht jedoch die Haarfarbe.

Überbelichtungen können mit der bisherigen Farberkennung zu falschen Ergebnissen führen

Um dieses Problem zu lösen sind wir nun dazu übergegangen die dominante Farbe des Bildausschnitts mithilfe von klassischem k-means Clustering zu bestimmen. Clustering erlaubt das Erkennen von Strukturen in Daten. Hier interessieren wir uns vor allem für das erkennen von gemeinsamen Gruppen.
Die endgültige Farbe der Person wird dabei über die Mitte des umfangreichsten Clusters bestimmt.

Durch Clustering werden Farben trotz Farbverläufe richtig erkannt

Da dieser Ansatz weit weniger fehleranfällig als unser bisheriger Ansatz ist, setzen wir diese neue Farberkennung nun auch für Kleidungsstücke ein.

Die letzte Zwischenpräsentation steht an…

Da wir jetzt im Monat Juli angekommen sind, ist die Zeit für die nächste und auch die letzte Zwischenpräsentation gekommen. Das Projekt Propose.AI2 erstreckt sich insgesamt über 12 Monate und endet Mitte Oktober diesen Jahres. Deshalb bleibt nur noch die Möglichkeit zwei Präsentationen zu halten, diese Zwischenpräsentation und eine Endpräsentation. Die Zwischenpräsentation findet in knapp 2 Wochen, am Freitag, den 17.07.2020 um 15 Uhr, statt. Die Projektgruppe freut sich ihren Fortschritt zu zeigen und den Endspurt in die letzte Phase einzuleiten. Zahlreiche Zuhörer sind erwünscht, die Präsentation wird wieder online statt finden. Die Präsentation kann über folgenden Einladungslink erreicht werden:  Link zur Präsentation

Die Inhalte der Zwischenpräsentation werden unter anderem sein: Thematik der Markenerkennen mit zwei verfolgten Ansätzen, die Verbesserung der Haarfarben-Erkennung und die Alternative zur Pipeline. Außerdem wird es einen Ausblick in die verbleibende Projektzeit geben und eine Beschreibung, wie die Gruppe, diese effektiv nutzen möchte. 

Vorstellung des Fortschritts bei der online Halbjahrespräsentation

Am 08. Mai präsentierte die Projektgruppe ihre Halbjahrespräsentation und konnte den verbesserten Prototyp in der Live-Demo vorzeigen. In diesem Vortrag wurden mehrere Optimierungen im Vergleich zur letzten Zwischenpräsentation hervorgehoben.  Die Berechnungszeit der Style-Analyse des Prototypen wurde im Vergleich zur ersten Präsentation von ca. 20-30 Sekunden auf ca. 4 Sekunden reduziert. Ebenfalls wurde die Einbindung der Services Farbe und Muster erwähnt. Zudem wurden Themen, wie die eingesetzten AI-Modelle und die aktuelle Pipeline, vorgestellt. Die eingesetzten Datasets der Gruppe für das Training der Modelle wurden auch besprochen. Insgesamt setzt die Projektgruppe momentan 12 Modelle ein, um den Style einer Person anhand eines Ganzkörperfotos zu identifizieren. Dabei verwenden die meisten Modelle Machine Learning.

In den nächsten Projektmonaten sollen diese weiterhin optimiert werden, eventuell werden weitere Modelle ergänzt oder zusammengefasst. Die Projektgruppe forscht außerdem nach alternativen Lösungsansätzen zur Brillenberatung. Dabei steht das Ausschließen des subjektiven Aspekts im Vordergrund.

Propose.AI 2 bedankt sich nochmals bei den Zuhörern der Halbjahrespräsentation für das Interesse und die anregenden Vorschläge und Ideen aus der Fragerunde. 

Einladung zu der Halbjahrespräsentation

Wie schnell die Zeit vergeht… bereits seit über einem halben Jahr arbeitet die Propose.AI2-Gruppe und möchte den Fortschritt des Projektes gerne teilen. Am 8. Mai, um 14 Uhr findet die Halbjahrespräsentation statt und alle sind herzlich eingeladen daran teilzuhaben. Die Projektgruppe stellt neben dem bisherigen Fortschritt (inklusive der Motivation und dem Ziel der Gruppe), auch den verbesserten Prototyp sowie einige technische Hintergrunde vor. Außerdem wird ein Ausblick in die verbleibenden Projektmonate geworfen. Wegen der bekannten Umstände wird die Präsentation online durchgeführt. Die Präsentation kann ohne ein Nutzerkonto über Microsoft Teams verfolgt werden. Bei Interesse bitte diesen Link verwenden, um die Präsentation am genannten Tag zu besuchen. Die Projektgruppe freut sich über ein zahlreiches Publikum.

Erweiterung der Feature Extraction: Kopf und Haare

Bisher wurden für die Bestimmung eines Styles nur die Kleidungsstücke und ihre Merkmale ausgewertet. Die Kleidung einer Person bildet die wichtigste Datengrundlage für unsere Arbeit. Doch wir können weit mehr Daten aus einem Bild gewinnen, als nur Kleidungsstücke und Accessoires.

Für den nächsten Schritt werden wir unsere Feature Extraction Engine um eine Gesichtserkennung erweitern, um so zukünftig auch Merkmale, wie die Frisur und ihre Haarfarbe, einen Bart, Hut oder etwa Schminke erkennen zu können. All dies sind Merkmale, welche in die eigene äußere Erscheinung eingehen und wichtig für unsere Auswertung sind.

Für die Umsetzung muss zuerst bestimmt werden, wo und ob sich ein Kopf in dem betrachteten Bild befindet. Angelehnt an die Object Detection, welche für die Kleidungsstücke verwendet wird, setzen wir ein Mask RCNN, implementiert im Detectron 2, ein. Trainiert wird das neuronale Netz auf dem WIDER FACE Datensatz, der über 32.203 Bilder mit markierten Gesichtern verfügt.

(p=0. 9989 )

Die Gesichtserkennung ist eines der prominentesten Beispiele, wie die künstliche Intelligenz Anwendung in unserem täglichen Leben findet. Als solches ist dieses Problem bereits in den vergangen Jahren stark untersucht worden. Die Qualität von modernen Datensätzen und immer effizientere neuronale Netze ermöglichen es uns Gesichter mit einer hohen Genauigkeit zu erkennen.

Der blau hervorgehobene Bereich im Bild ist die vom neuronalen Netz bestimmte Position des Gesichts. Um für unsere spätere Nutzung auch die Haare und mögliche Accessoires, wie Ketten, Fliegen oder Krawatten erkennen zu können skalieren wir den betrachteten Ausschnitt auf den rot dargestellten Bereich.

Nachdem die Position des Kopfes bestimmt wurde können wir mit der Feature Extraction beginnen. Genutzt werden zwei EfficientNet B0 Netze. Das erste Netz wurde auf dem CelebA Datensatz traniert, der viele unterschiedliche Merkmale zum Gesicht und Accessoires enthält. Aus dem Datensatz wurden dabei nur Merkmale übernommen, die zu einem Stil gezählt werden können. Äußere Merkmale, wie beispielsweise die Gesichtsform wurden bewusst ignoriert, da sie nicht von einer Person selbst bestimmt werden können. Das zweite Netz bestimmt ausschließlich die Frisur der Person und wurde auf dem Figaro1k Datensatz trainiert, der zwischen sieben Frisuren unterscheidet. Die erkannten Merkmale beider Netze können anschließend kombiniert werden.

Die für dieses Beispiel ermittelten Merkmale sind:
Frisur: gerade Haare
Bart: 5 o’clock Shadow
Erscheinung: Männlich

Schwierigkeiten bereitete uns bei dieser Aufgabe vor allem die Bestimmung der Frisur. Die Auswahl an Datensätzen, die Frisuren beinhalten ist sehr gering. Zudem war uns wichtig eine Frisur detailliert zu bestimmen, was die Auswahl weiter einschränkt. Der genutzte Figaro1k Datensatz besitzt vergleichsweise umfangreiche sieben Klassen, umfasst jedoch auch nur knapp über 1.000 Bilder. Um eine ausreichende Genauigkeit zu erreichen haben wir die Trainingsbilder umfassend mithilfe von Bild Augentation erweitern müssen.

Die Feature Extraction für Kopf und Haare trägt einen wichtigen Teil zur Bestimmung des Styles bei. Wir arbeiten auch weiterhin daran die Qualität unserer Auswertungen zu verbessern.

Der Brillenpool wird erweitert

Aktuell hat sich die Projektgruppe erneut in Kleingruppen organisiert, um die Projektaufgaben weiterhin zu erfüllen. Eine Kleingruppe bezeichnet sich als das Brillenpool-Team. Bereits in der ersten Zwischenpräsentation stellte die Projektgruppe ihren zusammengestellten Brillenpool zu den einzelnen Styles vor. Jetzt geht es darum, die vorhandene Brillenauswahl um Aspekte wie Alter und Geschlecht des Kunden, aber auch um weitere Farben der Brillen, zu erweitern. Denn das Ziel ist es den Kunden später eine große Vielfalt von Brillen anhand ihres durch die Künstliche Intelligenz ermittelten Styles vorzuschlagen. Damit also nicht jede/jeder, die beispielsweise den Style „Freizeit“ zu geordnet bekommen hat, dieselben Brillen angeboten bekommt, wird die bisherige Auswahl an Brillen vergrößert. Die Auswahl der Brillen ist soll weitestgehend personalisiert auf den Kunden zugeschnitten sein, um eine optimierte Beratung anbieten zu können. Dabei fokussiert sich das Brillenpool-Team bei der Auswahl der Brillen ausschließlich auf Brillen, die bei Brille24 erhältlich sind. Die Brillenpool-Ergebnisse werden durch eine Expertin von Brille24 verifiziert, bevor die Projektgruppe weiter mit diesem Pool arbeiten wird.

Online-Meetings während COVID- 19

Momentan finden die Treffen der Projektgruppe ausschließlich digital statt. Alle Mitglieder und ebenfalls die Betreuer sind daran interessiert die Verbreitung des Corona Virus einzuschränken und nutzen deshalb die Möglichkeiten der Technik, um weiter zu arbeiten. Mithilfe von Audio-/Videokonferenz, unter anderem mittels Jitsi, bleibt die Gruppe weiterhin produktiv und alle Mitglieder arbeiten an ihren Aufgaben. 

Die Arbeit geht weiter

Nach der ersten Zwischenpräsentation arbeitet die Projektgruppe daran, den Prototyp zu verbessern und zu erweitern. Dazu werden bestehende Modelle weiterhin bearbeitet und analysiert und es werden Modelle für neue Features, wie Muster und Accessoires, erstellt. Außerdem wird das bisher eingesetzte Regelwerk überarbeitet. Es muss aktuell noch entschieden werden, wie die einzelnen Modelle, die für die einzelnen Features verwendet werden, ausgewertet werden können. Deshalb muss die Projektgruppe eine Auswertungsmethode wählen. Zudem ist die Gruppe dabei 100 Testbilder zu Styles zu labeln, um zu analysieren, wie weit die Meinungen bezüglich der Styles auseinander gehen. Danach kann entschieden werden, wie das weitere Vorgehen aussehen wird und ob es möglich ist, dass nur 1 oder 2 PG-Mitglieder beziehungsweise Kleingruppen die Styles labeln. Die nächste Präsentation mit Zwischenergebnissen findet Ende April statt.

Die erste Zwischenpräsentation

Am 25.02.2020 durfte die Projektgruppe eine erste Zwischenpräsentation halten. Es wurden Brille24-Mitarbeiter und die VLBA-Abteilung eingeladen. Der bisherige Stand des Projektverlaufs und erste Ergebnisse wurden präsentiert. Vier der Projektmitglieder stellten dazu unter anderem die ermittelten Styles, die genutzte Pipeline und den aktuellen, entwickelten Prototyp in Form einer Live-Demo vor. Dabei wurde zuerst ein Fokus auf das Ziel der Gruppe sowie auf die Motivation gelegt, bevor es um die inhaltliche Arbeit ging. Dazu wurden aktuelle Lösungen besprochen und Herausforderungen aufgeführt. Abschließend wurde der Ausblick für die restliche Projektzeit vorgestellt, indem das weitere Vorhaben der Gruppe, besonders die nächsten Schritte erläutert wurden. Nach der Präsentation gab es eine Fragerunde, in welcher auch Feedback und Anregungen für das Projekt gesammelt wurden.  

In geselliger Runde ließ die Projektgruppe mit ein paar Snacks und Erfrischungen die erfolgreiche Präsentation sowie das Feedback auf sich wirken.