Smart Shelf: digital twin of a Migros Shelf with Computer Vision and Deep Learning
Project Idea Metadata
- Project Idea Name: Smart Shelf: digital twin of a Migros Shelf with Computer Vision and Deep Learning
- Date: 11/25/2022 9:52:44 AM
- Administrators:
Project Idea Description
Ziele
Grundsätzlich ist das Ziel am Ende einen Algorithmus zu haben, welcher es ermöglicht ein Bild eines Regals mit einem Bild des original Regalplan zu vergleichen. D.h. man erhält ein Feedback, ob die jeweiligen Produkte am richtigen Ort platziert sind. Eine wünschenswerte Erweiterung wäre das Zählen der Häufigkeit eines Produktes, was Bestandteil der Inventur ist und momentan noch von Hand gemacht wird. Damit alles benutzerfreundlich gestaltet ist, wird eine einfache Webapplikation entwickelt, wo ein Bild als Input hochgeladen werden kann, welches dann mit einem spezifischen Regalplan verglichen wird.
Untenstehend wird das gesamte Endziel nochmals in einzelne Ziele unterteilt und in der richtigen Reihenfolge sortiert, wie sie erarbeitet werden.
- In einem ersten Schritt ist es wichtig, dass die einzelnen Produkte, in unserem Fall, die verschiedenen Schokoladensorten erkannt werden. Es wird also ein Classifier entwickelt, der jedes Produkt für sich erkennt.
- In einem nächsten Schritt wird mithilfe von Object Detection die Lokalisierung der einzelnen Produkte auf einem Regal vorgenommen. So kann dieses anschliessend mit dem Regalplan verglichen werden.
- Mithilfe einer vereinfachten Webapp (in Zukunft mobile app), soll es am Schluss möglich sein, ein im Geschäft gemachtes Foto hochzuladen und so mit einem bestehenden Regalplan abzugleichen. Dabei sollen Produkte, welche nicht am richtigen Platz stehen oder auch zu füllende Lücken mit beispielsweise einem roten Rahmen angezeigt werden.
Daten
Da die Daten die Grundlage des gesamten Modells bilden, ist deren Auswahl und Aufbereitung elementar. Das Projekt konzentriert sich in einem ersten Schritt nur auf eine Produktgruppe, was bedeutet, dass sich die Datenmenge in Grenzen hält. Je mehr Produkte man natürlich hinzunimmt, desto grösser wird zum einen die Anzahl der Daten und desto komplexer das Training, da es mehrere ähnliche Produkte geben kann. Es gibt hier zwei mögliche Varianten, wie die Daten gesammelt werden können:
- Die Migros führt einen Onlineshop, wo jedes einzelne Produkt ihres Angebots ersichtlich ist und auch direkt gekauft werden kann. Zur Veranschaulichung beinhaltet jede Produktbeschreibung auch ein Bild des Produktes. So könnte in einem ersten Schritt das Modell mithilfe von diesen Produktbildern trainiert werden. Um noch zusätzliche Bilder zu erzeugen kann Data Augmentation genutzt werden, damit man mehr als 1 Bild pro Produkt hat.
- Es kann natürlich sein, dass diese Bilder zu optimal sein, also nicht die Realität widerspiegeln. Wenn in einem Geschäft ein Foto von einem Regal macht, gibt es Störfaktoren, wie etwa das Licht, Schatten, Überlappungen oder schräge Positionierung, die eine Klassifizierung erschweren. In diesem Fall macht es Sinn dann in einem zweiten Schritt vor Ort noch weitere Fotos von Produkten aus verschiedenen Perspektiven zu machen und diese dann von Hand zu labeln.
Methoden
Für den ersten Teil wird ein Image Classifier (Convolutional Neural Networks, CNNs, werden angewendet, inklusiv pre-trained CNNs) entwickelt zum Erkennen der einzelnen Produkte. Dabei kann probiert werden, einen von Grund auf zu erstellen oder dann auf ein vor trainiertes Modell zurückzugreifen, welches auf das Projekt angepasst bzw. erweitert wird.
Für die anschliessende Object Detection im Regal, wo es darum geht, die einzelnen Produkte zu lokalisieren, wird sehr wahrscheinlich Yolo verwendet, welches ein Algorithmus ist, der ein CNN zur genauen Lokalisierung der Objekte verwendet. Generell ist die Idee, dass das gesamte Projekt mit Tensorflow gemacht wird. Verschiedene Algorithmen werden getestet.
Milestones
Folgende Milestones definieren den Umfang dieser Projektarbeit. Manche Daten sind dabei fix und einzelne müssen noch in Zusammenarbeit mit Auftraggeber und Betreuer definiert werden.
- Projektstart 20.02.2023
- Pitchpräsentation 24.02.2023
- Erkennen der einzelnen Produkte 31.03.2023
- Zwischenpräsentation (03.04 - 28.04.2023)
- Erkennen mehrerer Produkte im Regal 28.04.2023
- Lokalisieren der einzelnen Produkte 19.05.2023
- Ende Projektarbeit 09.06.2023
- Schlusspräsentation (19.06 - 08.07.2023)
Risiken / Massnahmen
Zu wenig Trainingsdaten
Bei den Produktfotos kann es sein, dass es zu wenig Daten pro Produkt hat. Dieses Problem kann aber einfach mithilfe von Data Augmentation gelöst werden, wo künstlich neue Bilder erzeugt werden durch Drehen, Vergrössern, Unschärfe, usw.
Zu saubere Trainingsdaten
Wie bereits erwähnt, könnte es sein, dass die Produktfotos zu sauber sind. Das Ziel von Produktfotos ist es ja, das Produkt perfekt zu fotografieren, was meistens in einem aufwendigen Setting gemacht wird. Dies entspricht aber nicht der Realität, wodurch häufig Störfaktoren das Bild beeinflussen. Um solche Störfaktoren mit einzubeziehen, können nachträglich noch weitere Bilder vor Ort von den Produkten gemacht werden.
Schlechte Performance
Das Risiko liegt darin, dass das trainierte Modell schlecht performt und dadurch nur wenige oder im schlimmsten Fall gar keine Produkte erkennt. Es werden daher verschiedene Modelle trainiert und auch auf bereits vor trainierte Modelle zurückgegriffen, die für den Use Case noch angepasst werden. Es wird dabei jeweils sauber dokumentiert, welches Modell wie gut performt.
Zeit
Um dieses Problem schon im Vornherein zu umgehen, wird der Fokus am Anfang nur auf eine Produktgruppe, hier Schokolade, gelegt. Die aufgrund der sehr markanten Form und den unterschiedlichen Farben der einzelnen Sorten. Falls noch genügend Zeit vorliegt, kann noch ein weiteres Produkt integriert werden.
The goal of this project is to build computer vision models to generate a digital twin of a Migros Shelf. By using a database of images of products, the algorithmshas the goal of determining (localizing) the position of each product and re-create in digital form the shelf organization (the position of each product). This can be used to optimize positioning of products and to study effectiveness of different product placement.