Digitalisierung | 25. Juni 2020 | von Rudolph Triebel

Wie künstliche Intelligenz uns hilft, Robotern das "Sehen" beizubringen

Rollin Justin
Roboter Justin in einer simulierten Umgebung
Quelle: DLR (CC-BY 3.0)
Roboter Rollin' Justin in einer künstlich erzeugten Umgebung

In der Robotik gibt es noch viele grundlegende Probleme, die gelöst werden müssen, um einen Roboter nützlich im Haushalt oder der Pflege einzusetzen. Eine der spannenden Fragen ist: Wie können Roboter "sehen" und ihre Umgebung erkennen? Forscher Rudolph Triebel veranschaulicht, wie künstliche Intelligenz lernt, durch Farben und Zahlen Objekte wie Stühle oder Tische zu erkennen. In diesem Kontext stellt er die in seiner Abteilung entwickelte Software BlenderProc vor.##markend##

Das "Gehirn" eines Roboters ist im Wesentlichen ein Computer, der die Eingabesignale der Sensoren des Roboters verarbeitet - auch Perzeption genannt - und dann Befehle an die Motoren schickt. Dies ist das Arbeitsgebiet meiner Abteilung "Perzeption und Kognition” am Institut für Robotik und Mechatronik. Hier entwickeln wir Verfahren zur Datenerfassung mithilfe verschiedener Sensoren, zur effizienten Speicherung und vor allem zur Interpretation dieser Daten. Einen besonderen Stellenwert haben dabei Bilddaten aus Einzel- und Stereokamerasystemen sowie Tiefendaten, bei denen zusätzlich zur Farbe auch noch der Abstand zwischen Kamera und Objekt gemessen wird. Vereinfacht ausgedrückt dienen diese Sensoren dazu, dem Roboter das "Sehen" zu ermöglichen.

Von Zahlen zu Bildern

Damit ein Roboter aber seine Umgebung nicht nur "sehen", sondern darin auch Dinge erkennen kann, benötigen wir eine Verknüpfung zwischen der Farbinformation, die aus den Bildern kommt und der sogenannten Semantik, welche beschreibt, was genau dieses Bild darstellt. Für den Computer besteht ein Bild aus mehreren Millionen einzelnen Bildelementen, genannt Pixel (engl. picture element). Jedes Pixel ist ein Farbpunkt mit einer eindeutigen Farbe, welche als Zahl abgespeichert wird. Das heißt ein Bild besteht aus einer großen Menge von Zahlen, die in nützliche Informationen umgewandelt werden müssen, um zu erkennen, was sich auf dem Bild befindet.

Kuenstlich erzeugtes Bild mit seiner farblichen Segmentierung
Quelle: DLR (CC-BY 3.0)
Links: Künstlich erzeugtes Bild eines Schlafzimmers (=Eingabewert).
Rechts: Die dazugehörige Segmentierung, d.h. jede Farbe entspricht einer Objektklasse (=Ausgabwert).

Konkret besteht also die Aufgabe der Ingenieure darin, ein Computerprogramm zu schreiben, das jedem Bildelement die Zahl zuweist, welche zur entsprechenden Objektklasse gehört. Bei einer Objektklasse geht es dabei nicht nur um den einen konkreten Stuhl, den wir sehen, sondern um einen Stuhl als solchen - die Klasse der Stühle. Für die vorhandenen Objektklassen müssen (in unserem Bild also "Stuhl", "Tisch" oder "Fußboden") die entsprechenden Zahlen vorher festgelegt werden, damit die Zuordnung eindeutig ist. Das gesuchte Computerprogramm kann man sich dann vereinfacht als eine mathematische Funktion vorstellen, welche aus dem Eingabebild x die Segmentierung y berechnet.
 
Das große Problem besteht nun darin, dass ein menschlicher Programmierer diese Funktion nicht einfach aufschreiben kann, da die Zusammenhänge zwischen Eingabe und Ausgabe viel zu komplex sind. Es lassen sich hier keine einfachen Regeln erstellen - zum Beispiel, dass jedes weiße Pixel automatisch einer Wand zugeordnet wird, da es auch andere weiße Pixel gibt und die Wand Schattierungen haben kann. Außerdem können Probleme etwa bei der Verdeckung auftreten: Objekte sind nur teilweise sichtbar, da andere Objekte sich zum Teil davor befinden.
 
Deswegen verwendet man stattdessen das maschinelle Lernen. Vereinfacht ausgedrückt: aus einer vorhandenen Menge von Eingabebildern und zugehörigen Segmentierungen wird die Funktion so berechnet, dass ihre Ausgabe y mit der bekannten Segmentierung möglichst übereinstimmt. Der Algorithmus erlernt mit Hilfe der Daten, Ausgabebilder (wie in unserem Beispiel das rechte Bild) selbstständig zu erzeugen. Anschließend kann er die erlernte Funktion auch auf neue Daten anwenden. Ein einziges Bild-Paar reicht aber als Datenquelle nicht aus, um die Funktion zu erlernen. Je mehr Bild-Daten - wir nennen diese "Trainingsdaten" - zur Verfügung stehen, desto bessere Ergebnisse kann die künstliche Intelligenz erzielen.

BlenderProc: Unser "digitaler Trainer"

Am Deutschen Zentrum für Luft- und Raumfahrt (DLR) haben wir daher ein neuartiges Verfahren entwickelt, das solche Trainingsdaten automatisch erzeugen kann. Die Idee ist, die abgebildeten Szenen im Computer zu simulieren und dabei möglichst realistische Bilder der Szenen zu erzeugen. Diese Technik wird beispielsweise auch in Animationsfilmen  verwendet, um künstliche Welten oder Figuren zu erschaffen.

Unsere hierfür entwickelte OpenSource-Software heißt BlenderProc, da sie auf dem Programm Blender beruht. BlenderProc berechnet aus vorgegebenen Objektpositionen und Beleuchtungsrichtungen für jedes Pixel den genauen Verlauf der Lichtstrahlen (engl. ray tracing). Daraus entsteht ein äußerst realistisches Bild, das von einem echten Kamerabild nur noch schwer zu unterscheiden ist. In unseren Beispielen werden so das linke Bild des Schlafzimmers sowie die beiden Bilder mit Roboter Rollin' Justin erzeugt.

Künstlich erzeugtes Bild mit der Software BlenderProc
Quelle: DLR (CC-BY 3.0)
Der Hintergrund sieht erstaunlich echt aus, wurde aber mit der Software BlenderProc künstlich erzeugt

Der große Vorteil dieser künstlich generierten Daten ist, dass man die Information, die gelernt werden soll, automatisch miterzeugen kann. Zu jedem künstlich erzeugten Farbpixel kann so gleichzeitig die Objektklasse berechnet werden. Darüber hinaus können viele andere interessante Informationen ermittelt werden - wie die Tiefe jedes Pixels, also der Abstand zwischen Kamera und Objekt. In unserem Schlafzimmer-Beispiel kann BlenderProc aufgrund der Farben "ausrechnen" oder "sehen", wie stark die Neigung des Tisches ist, wie groß der Abstand zwischen Bild und Bett ist oder welche Tiefe der Nachttisch hat. Ein Mensch hingegen kann nicht genau beschreiben, wie groß zum Beispiel die Neigung von Stuhl oder Tisch ist.

Aus all diesen Berechnungen kann ein Trainingsdatensatz erzeugt werden, der beliebig groß ist, indem man die virtuelle Kamera an möglichst viele, zufällig ausgewählte Positionen setzt und die Ansicht von dort neu generiert. Es handelt sich hierbei immer um Werte, welche die künstliche Intelligenz erlernen kann. Eine solch erlernte Funktion kann sie schließlich auf neue, "echte" Daten anwenden - ein Pflegeroboter zum Beispiel kann Bilder von einem Wohnzimmer aufnehmen und die errechnete Funktion für diese reale Umgebung nutzen.
 
Unsere Software besteht im Einzelnen aus mehreren Modulen, welche hintereinander ausgeführt werden. Diese laden zuerst die simulierte Szene und platzieren anschließend die Kamera an verschiedenen Stellen des Raumes. Am Ende werden die Bilder und Segmentierungen erzeugt. Dieser Ablauf kann für verschiedene Räume beliebig oft wiederholt werden. Wenn man diese Daten verwendet, um den maschinellen Lernalgorithmus zu trainieren, kann man den Roboter dazu bringen, solche neuen und unbekannten Szenen ebenfalls semantisch zu segmentieren.
 
Ähnlich wie wir Menschen lernt der Roboter, auf den "gesehenen" Bildern schrittweise immer mehr zu erkennen - auch wenn er dabei wesentlich mehr Trainingsdaten als ein Mensch benötigt. Dank BlenderProc sind wir aber zuversichtlich, dass ein Roboter eines Tages seine Umgebung so gut beschreiben kann wie wir. Dadurch können wir einem Pflegeroboter in Zukunft beibringen, zum Beispiel eine verloren geglaubte Brille wiederzufinden. Wir werden "sehen"!

Wer noch tiefer in die Materie einsteigen will: Als Open-Source-Software bieten wir mit BlenderProc eine offene Schnittstelle an, die andere Forscher nutzen können. Sie enthält viele Beispiele, die den Einstieg erleichtern.

TrackbackURL

Über den Autor

PD Dr. Rudolph Triebel leitet seit 2015 die Abteilung "Perzeption und Kognition" des Institutes für Robotik und Mechatronik am DLR. zur Autorenseite

Artikel mit ähnlichen Themen

Was? Wie? Warum? Erklärbare künstliche Intelligenz in der Robotik

26. Februar 2020 | von Rudolph Triebel

Wie viel wissen die Roboter am DLR-Institut für Robotik und Mechatronik darüber, was sie tun und war... weiterlesen