Maschinelles Lernen von automatisch generierten Daten

Neuronale Netze für die Bilderkennung mit 3D-Modellen trainieren

Als man sich bei Audi mit der automatischen Erkennung von Audis in Bildern beschäftigte, war schnell klar, dass ein Machine-Learning-Ansatz funktionieren muss. Zum einen gibt es eine schier unendliche Anzahl guter Bilder - im Netz und vor allem aber auch in den Datenbanken bei Audi und seinen Händlern. Zum anderen dürstet man ohnehin nach sinnvollen Anwendungen für künstliche Intelligenz in der Enterprise-Welt.

Was nicht so klar war, und was auch schnell als Herausforderung auffiel, war die Frage “Was machen wir mit den neuen Modellen?”. Klar: Je neuer ein Modell ist, desto weniger Bilder gibt es davon. Aber auch klar: Je neuer ein Modell ist, desto relevanter ist es für die Anwendung.

Die Lösung musste über 3D-Modelle führen. Solche sind immer vorhanden. Und zwar nicht nur technische 3D-Modelle aus der Konstruktion, sondern auch ästhetisch ausgereifte. Im Audi-Konfigurator werden ausschließlich Renderings von 3D-Modellen gezeigt. Diese werden teilweise sogar in Echtzeit generiert, wenn ein Benutzer den Konfigurator benutzt (das kann man auch in Product Configurators lesen).

Als Jan, der in der Konfiguratorlandschaft bei Audi Projekte entwickelt, mit dieser Frage auf mich zukam, haben wir zunächst über Lösungen mit Methoden der Computer Vision gesprochen: Mit dem Handy eine Sequenz von Bildern aufnehmen, daraus ein 3D-Modell generieren und dieses mit hinterlegten Modellen abgleichen. Das ist auch ein netter Ansatz, der aber technisch sehr anspruchsvoll ist und Grundlagenentwicklungen erfordert.

Eine Lösung mit Machine Learning wäre einfacher. Man bräuchte keine komplexen Verfahren zu entwickeln, der Rechner löste das Problem von selbst - praktisch. Mangels ausreichender Bilder für das Trainieren eines Klassifikators, drängte sich eine Frage auf: Kann man mit Renderings von 3D-Modellen mittels Deep Learning ein neuronales Netz trainieren, das dann die gelernten Dinge in echten Fotos erkennt?

Wer etwas Erfahrung mit maschinellem Lernen hat, der weiß: Ein Computer, bzw. ein neuronales Netz, sieht die Dinge anders als wir Menschen. Und er ist an anderen Stellen sensibel, als man es zunächst erwartet. Die Abstraktionsleistung, von einem 3D-Modell auf das Foto des realen Dings zu schließen, ergibt sich nicht selbstverständlich. Vielmehr war meine Erwartung, dass ein mit 3D-Modellen trainiertes neuronales Netz zwar sehr gut darin sein würde, 3D-Modelle der Dinge zu erkennen aber nicht die Dinge selbst (in Fotos). Wie sich herausstellen sollte, war meine Erwartung nicht ganz zutreffend.

Versuch

Wir haben es ausprobiert. Exemplarisch an einer simpel anmutenden Aufgabe: der Unterscheidung von Audis und Cola-Dosen. Beides schillernde, metallische Objekte mit Ecken, Kanten und Rundungen. Wenn sich diese mit der Methode von einander unterscheiden ließen, dann wäre gezeigt, dass der Transfer vom 3D-Modell zum echten Bild prinzipiell funktioniert.

Wir haben die Modelle in Blender geladen und ein kleines Python-Skript geschrieben, das ein paar tausend Renderings der Dose und des Autos aus verschiedenen Perspektiven erstellt und als Bild abspeichert. Diese Bilder haben wir verwendet, um mit Tensorflow ein Convolutional Neural Network (CNN) zu trainieren.

Renderings aus verschiedenen Perspektiven

Einen Tag lang wurden auf vier Prozessorkernen Bilder gerendert, das CNN damit gefüttert und siehe da: nichts. Der trainierte Classifier kann ein Auto nicht von einer Dose unterscheiden. Ganz so einfach geht es schonmal nicht.

Also die Gründe untersucht. Eine Idee drängte sich schnell auf: womöglich maß das CNN dem einheitlichen Hintergrund und/oder dem Übergang vom Hintergrund zum Objekt zuviel Gewicht bei. Ähnlich einem Beispiel, das Ribeiro / Singh / Guestrin in einem Paper anführen, das sich mit der Sichtbarmachung der ausschlaggebenden Merkmale von Classifiern befasst. In diesem Beispiel wurde ein Classifier trainiert, der Wölfe erkennt. Bei einem Bild eines Huskys war sich das neuronale Netz absolut sicher, dass es sich um einen Wolf handele. Die Untersuchung mit dem sich im Paper vorgestellten LIME-Verfahren zeigte, dass das neuronale Netz den Schnee, der im Hintergrund des Huskys zu sehen war als relevant und ausschlaggebend erachtete, da unter den Trainingsbildern offenbar zahlreiche einen Wolf ebenfalls im Schnee zeigten.

Um dem (nicht existierenden) Hintergrund unserer 3D-Modelle die Relevanz zu nehmen, galt es also, für Diversität bei den Hintergründen zu sorgen. Um eine größere Ähnlichkeit mit Fotos zu erzielen, haben wir uns entschieden, die Hintergründe nicht abstrakt zu generieren, sondern Fotos zu verwenden. Tausende Fotos. Mit wiederum einem kleinen Python-Skript haben wir unsere 3D-Modelle in die zufälligen Fotos gesetzt. Dabei wurde die Platzierung innerhalb des Bildes zufällig gewählt. Vier dieser Bilder sind im Titelbild abgebildet.

Das neue neuronale Netz war schnell trainiert und tatsächlich: Die Probe mit den verschiedenen Testdatensätzen zeigte, dass in etwa 90% der Fälle korrekt identifiziert wurde, ob auf einem Bild eine Cola-Dose oder ein Audi zu sehen war. Da geht doch was.

Ein Blick auf die falsch klassifizierten Testbilder zeigte auch sofort, woran es noch hakte: Die fälschlich als Cola-Dose erkannten Autos waren fast alle rot! So simpel. Es gibt direkt ein wenig Halt und macht maschinelles Lernen etwas greifbarer, wenn etwas so vordergründigem wie der Farbe eine signifikante Relevanz beigemessen wird.

Also nochmal an die 3D-Modelle ran. Das Skript zum Erzeugen der Renderings wurde erweitert, auch die Außenfarbe des Autos zu verändern. Wieder wurden die Renderings in zufälliger Position auf zufällige Hintergründe geklebt. Und wieder wurde schnell das CNN trainiert. Und voilà: 98% korrekte Klassifikationen über unseren Testdaten.

Verschieden gefärbte Renderings vor zufälligen Hintergrundbildern.

Unter den roten Autos gab es nur noch zwei falsch einsortierte Bilder. Bei genauerer Betrachtung zeigte sich, dass eines davon gar nicht ein Auto sondern ein realistisches Spielzeugmodell des Audis zeigte. Das war mir bei der ersten Sichtung gar nicht aufgefallen. Unserem neuronalen Netz schon.

Teilen

Buchveröffentlichung: Product Configurators

Fabios Buch ist da: Product Configurators - Tools and Strategies for the Personalization of Objects

Ich freue mich, dass ich neben den hochkarätigen Co-Autoren einen der drei Teile des Buches beisteuern durfte.

Teilen

Sage mir, wer Du bist, und ich sage Dir, was Du brauchst

Vor etwa fünf Jahren, im Sommer 2012, hat mir Fabio Schillaci ein Konzept für einen Konfigurator vorgestellt, der anders war als alle anderen Konfiguratoren.

Abgesehen davon, dass vor dieser kurzen Zeit Konfiguratoren überhaupt noch relativ gering verbreitet waren: Fabio hatte schon die wenigen Konventionen, die es gab, überholt und etwas Neues entworfen.

Für sein Sofa-Bett-Hybrid SOBE+ hatte der Architekt ein Konfigurator-Konzept entwickelt, bei dem erst einmal keine Details über das Möbel abgefragt werden, sondern vielmehr über den künftigen Besitzer. Dieser war im ersten Schritt der Konfiguration aufgefordert, Metaphern im “Becken der Wünsche” zu platzieren (siehe Bild).

Wie wichtig ist mir Nieselregen? Und wie sicher bin ich mir darüber? Welche Haltung nehme ich bevorzugt ein? – Dieser Art waren die Fragen auf dem Weg zum Möbel.

Die Studie für einen Konfigurator hat mich fasziniert. Doch das Faszinosum war eher abstrakt, das Konzept reizte mich künstlerisch, einen praktischen Nutzen maß ich ihm damals nicht bei. Noch nicht.

Im vergangenen Monat kam schließlich Sanchez zu uns in die Firma. Sanchez ist Coach und Trainer für Management und Vertrieb, und er wollte mit uns einen Trainingskonfigurator entwickeln.

Im Gepäck hatte Sanchez ein Angebot von etwa 150 verschiedenen Lektionen, die Themen zugeordnet waren, die wiederum unter Kategorien geordnet waren. Um eine Auswahl in einer solchen Struktur vorzunehmen, wird standardmäßig ein Variantenselektor eingesetzt, bei dem man erst die Kategorie wählt, dann ein paar Themen unter dieser Kategorie auswählt, um schließlich in einer nun hinreichend kleinen gefilterten Liste passende Lektionen mit einem Häkchen zu versehen. Ein geradliniger aber auch langweiler Ansatz.

Sanchez wollte etwas anderes. Er wollte etwas, das die Gedanken des Besuchers lesen kann. Etwas wie den Akinator, den er als Beispiel nannte.

Der Schlüssel dazu ist die Verlagerung der Perspektive. Der Benutzer eines Konfigurators ist in der Regel kein Experte für das Ding, das er konfiguriert. Entsprechend können wir bei der Entwicklung von Konfiguratoren auch nicht immer davon ausgehen, dass Benutzer sich mit dem Produkt auskennen und die Sprache verstehen, mit der es beschrieben wird. Die Vermittlung verfügbarer und passender Ausprägungen muss der Konfigurator leisten - und das bestenfalls in einer Art und Weise, zu der ein Benutzer leicht Zugang findet. Also in einer Sprache und mit Inhalten, die der Benutzer kennt.

Für den Trainingskonfigurator haben wir dazu schließlich den Ansatz von SOBE+ aufgegriffen. In einer mehrstufigen Konfiguration erfragen wir zunächst Ziele, die mit dem Training erreicht werden sollen. Ein Ziel ist in der Sprache des Benutzers formuliert. “Souverän telefonieren können” ist zum Beispiel ein solches Ziel.

Nach den Zielen stellen wir Fragen nach den Teilnehmern. Welche Rolle haben sie im Unternehmen, wer sind dessen Kunden, bestehen Vorbildungen? Geschickt ausgewertet reichen diese Angaben aus, ein individuelles Trainingspaket zu erzeugen.

Welche Lektionen dann ausgewählt werden, hängt von der Kombination von Zielen und Eigenschaften der Teilnehmer ab. Da es zigtausende Kombinationen gibt, geschieht die Auswahl durch einen Algorithmus. Und am Ende wirkt es fast magisch, wie gut die Zusammenstellung von Trainingslektion passt. Ein bisschen wie beim Akinator.

Teilen

Was kostet ein Konfigurator?

Ein Konfigurator kostet zwischen wenigen tausend Euro einmalig und einigen Millionen jährlich. Eine ziemlich große Spanne.

Um zu bestimmen, wie viel ein Konfigurator für ein konkretes Vorhaben genau kostet, ist eine detaillierte fachliche Abstimmung nötig.

Um eine schnelle erste Eingrenzung zu bekommen, haben wir ein Tool zur Preisberechnung für Konfiguratoren entwickelt.

Das Tool ist hier frei zugänglich: http://wievielkosteteinkonfigurator.konfiguratoren.info

Über Feedback freuen wir uns.

Teilen

CIIT - Digitalisierung in Theorie und Praxis

Am Donnerstag fand die dritte Ausgabe des Colloquium Industrielle IT statt. Die Veranstalter SIBB und IMI hatten diesmal zu Rhenus in Großbeeren eingeladen.

Beim CIIT werden Unternehmen aus IT und Industrie zusammen gebracht. Das war wie immer ein interessanter Kontrast. Die IT-Unternehmen stellten ausgefeilte Komplettlösungen vor, während aus der Industrie von einer Digitalisierung in kleinsten Schritten berichtet wurde.

In der Realität ist die Digitalisierung ein Prozess mit Herausforderungen, die aus Besonderheiten der Branche oder des Unternehmens entstehen.

In der abstrakten Idealwelt der Softwarehersteller gibt es diese Hürden nicht. Entsprechend wirken die Beiträge unserer Branche mitunter etwas abgehoben. Ich kann mir vorstellen, dass die Wir-können-alles-Attitüde der IT den einen oder anderen Industriellen eher abschreckt.

In meinem Vortrag mit dem Titel Produktkonfiguratoren - Der Kunde am Anfang der Wertschöpfungskette ging es darum, wie sich ein Kunde als Akteur in die automatisierte Wertschöpfungskette der Industrie 4.0 integrieren lässt. In diesem Zusammenhang wichtig: gute Konfiguratoren sind gute Kommunikationswerkzeuge!

Über das Feedback habe ich mich gefreut, ebenso über die anregenden Gespräche im Anschluss, u.a. zu den Themen Usability, Industrie 4.0 und Digitalisierung, die ich in kommenden Posts aufgreifen werde.

Am 6. April 2017 gebe ich einen Talk zu Industrie 4.0 und Mass Customization auf der ZuseExpo.

Foto: Breitbandbüro des Bundes / Florian Schuh

Teilen

Definition Konfigurator

Eine einheitliche Definition für den Begriff Konfigurator (bzw. synonym Produktkonfigurator) gibt es nicht. Jedenfalls keine, die allseits akzeptiert und angewandt wird. Das liegt daran, dass je nach Kontext unterschiedliche Aspekte des Konfigurators wichtig sind.

Bestehende Definitionen unterscheiden sich entsprechend hauptsächlich in kontextabhängigen Details und Spezialisierungen. Zum Beispiel wird häufig angegeben, dass ein Konfigurator ein Computerprogramm ist. Dadurch wird die Definition etwas spezieller und schließt beispielsweise Maschinen aus.

Eine Definition, die keine solche Spezialisierungen enthält, könnte so lauten:
(Achtung, die Definition ist unvollständig, bitte unten weiterlesen!)

Ein Konfigurator ist ein Werkzeug, das es ermöglicht, eine gültige Ausprägung eines variantenreichen Produktes zu bestimmen.

Diese schlanke Definition beinhaltet bereits fast alle elementaren Merkmale eines Konfigurators: Hinter dem Wort “gültige” steht der Aspekt der Regeln. Regeln beschreiben u.a. welche Kombinationen erlaubt und welche verboten sind. Die Definition berücksichtigt den Variantenreichtum des Produktes und erklärt, dass der Benutzer des Konfigurators die Merkmale des Produktes spezifiziert.

Der Definition fehlt aber noch eine wichtige Zutat. Es fehlt die Forderung, dass die Konfiguration Auswirkungen in der Fertigung des Produktes haben muss. Nur mit dieser Forderung kann eine Unterscheidung zwischen einem Konfigurator und einem Hilfsmittel zur bloßen Produktauswahl erreicht werden.

Beispiel: Auf einer Webseite kann ein Pullover in verschiedenen Farben und Größen ausgewählt werden. Ist diese Webseite ein Konfigurator?

Manche beantworten diese Frage mit Ja. Hersteller von Plugins zur Variantenselektion für Shopsysteme beispielsweise.

Ganz allgemein haben Softwarehersteller und Entwickler eine eher ambivalente Haltung zu der Frage. Schließlich betrifft es ihre Arbeit nicht, ob das Produkt vor oder nach der Nutzung ihres Programms gefertigt wird.

Aus wissenschaftlicher, industrieller, gesellschaftlicher oder kultureller Sicht aber lautet die Antwort Nein.

Für die Industrie ist es gerade die Herausforderung, nach Kundenwunsch individualisierte Produkte herzustellen. Diese Massenfertigung von Unikaten, man spricht von der Losgröße 1, wird derzeit für immer mehr Betriebe Realität - zumeist dank der Digitalisierung.

Dieses Konzept wird als Mass Customization bezeichnet. Die Mass Customization ist nicht nur Gegenstand betriebswirtschaftlicher sondern auch kultureller und gesellschaftlicher Forschung. Sie hat sich mehr und mehr zur eigenen Disziplin entwickelt. Mehr zu den sozio-kulturellen Implikationen gibt es in einem späteren Post.

Nehmen wir diesen Aspekt mit auf, erhalten wir eine Definition dafür, wie wir auf diesem Blog Konfiguratoren verstehen:

Ein Konfigurator ist ein Werkzeug, das es ermöglicht, eine gültige Ausprägung eines variantenreichen Produktes für die individuelle Fertigung zu definieren.

Teilen

Unterschied Konfigurator und Produktkonfigurator

Es gibt keinen Unterschied zwischen einem Konfigurator und einem Produktkonfigurator. Die Begriffe werden synonym verwendet.

Im nächsten Beitrag wird der Begriff genauer untersucht.

Teilen