
NAO-Roboter: Objekterkennung mit Deep Learning
Dokumentinformationen
Autor | Yann Philippczyk |
Schule | Hochschule der Medien Stuttgart |
Fachrichtung | Medieninformatik |
Dokumenttyp | Bachelorarbeit |
Sprache | German |
Format | |
Größe | 3.78 MB |
Zusammenfassung
I. Convolutionale Neuronale Netze CNNs für die Objekterkennung
Diese Bachelorarbeit untersucht die Implementierung von Objekterkennung auf dem NAO Roboter mit Hilfe von Convolutionalen Neuronalen Netzen (CNNs). CNNs, inspiriert vom visuellen Kortex von Säugetieren, sind besonders effektiv für Bildverarbeitungsaufgaben. Im Gegensatz zu voll verbundenen neuronalen Netzen nutzen CNNs lokale Verbindungen und Filter, um Effizienz und Genauigkeit bei der Objekterkennung zu steigern. Die Arbeit konzentriert sich auf die Anwendung vortrainierter Modelle, um die Trainingszeit zu verkürzen und die Implementierung zu vereinfachen.
2.1 Biologische Inspiration und Architektur von CNNs
Der Abschnitt beginnt mit der Feststellung, dass Convolutionale Neuronale Netze (CNNs) sowohl von biologischen neuronalen Netzen im Gehirn als auch vom visuellen Kortex von Säugetieren inspiriert sind. Obwohl CNNs viele Ähnlichkeiten mit anderen tiefen neuronalen Netzen aufweisen – Neuronen mit gewichteten Parametern, Berechnung von Ausgaben und Training durch adaptierten Gradientenabstieg und Backpropagation – besitzen sie eine einzigartige Architektur, die sie besonders für die Objekterkennung in Bildern und Videos geeignet macht. Ein Hauptunterschied zu regulären neuronalen Netzen liegt in den konvolutionellen Schichten. Reguläre Netze sind für Bilder aufgrund der schlechten Skalierbarkeit voll verbundener Neuronen in der ersten verborgenen Schicht ungeeignet. Jedes Neuron in dieser Schicht hat Gewichte, die gleich dem Produkt aus Breite, Höhe und Tiefe des Bildes sind (die Tiefe entspricht typischerweise der Anzahl der Farbkanäle, 3 bei RGB-Bildern). Bei einem Bild mit einer Auflösung von 200x200 resultieren daraus 120.000 Parameter pro Neuron, was zu sehr langen Trainingszeiten und einer hohen Wahrscheinlichkeit für Overfitting führt. Dies wird als entscheidender Nachteil im Vergleich zu CNNs dargestellt.
2.2 Konvolutionsschichten und Rezeptive Felder
Im Gegensatz zu voll verbundenen Netzwerken sind Neuronen in konvolutionellen Schichten lokal verbunden und bilden sogenannte Spalten. Jede Spalte sieht nicht den gesamten Input gleichzeitig, sondern nur eine lokale Region, das sogenannte rezeptive Feld. Ein Beispiel einer Spalte mit einer Tiefe von 5 Neuronen und ihrem rezeptiven Feld wird in Abbildung 1 illustriert. Das rezeptive Feld ist deutlich kleiner als der Originaleingabe, erstreckt sich aber über die volle Tiefe des Bildes (z.B. 3x3x3). Die Spalten fungieren als Filter, die auf lokale Eingabemuster reagieren. Jeder Filter wird mit einem vordefinierten Schritt über das Bild bewegt, wobei er aktiviert und trainiert wird, wenn bestimmte Bildmerkmale erkannt werden. Die Faltung der Eingaben führt zu einer Aktivierungsmap für jeden Filter, wie in Abbildung 1 rechts gezeigt. Diese lokale Verarbeitung und die Verwendung von Filtern sind zentrale Aspekte, die CNNs für die Bildverarbeitung effizienter machen als voll verbundene Netze.
II. Das Caffe Framework
Die Implementierung basiert auf dem Caffe-Framework, einer bekannten Plattform für Deep Learning. Caffe bietet eine effiziente Architektur mit CPU- und GPU-Unterstützung für die schnelle Verarbeitung von Bildern. Die Arbeit nutzt die Möglichkeiten von Caffe zur Klassifizierung von Objekten und betont die Verwendung von vortrainierten Modellen aus ImageNet, einer großen Bilddatenbank. Die Fähigkeit von Caffe, auch abstraktere Klassen zuzuordnen (sog. "hedging your bets"), wird ebenfalls angesprochen.
3.1 Architektur und Funktionsweise von Caffe
Der Abschnitt beschreibt das Caffe-Framework als die Grundlage der Implementierung der Objekterkennung. Caffe wird als effiziente Plattform für Deep Learning charakterisiert, die sowohl CPU- als auch GPU-Berechnungen unterstützt. Die Architektur von Caffe beinhaltet verschiedene Layer-Typen, darunter Data Layers für die Rohdatenverarbeitung (z.B. aus Datenbanken oder direkt aus dem Speicher), Vision Layers für die Bildverarbeitung (einschließlich Convolution und Pooling Layers), Aktivierungs- und Neuronenschichten für elementweise Operationen (z.B. mit ReLUs) und Loss Layers für den Lernprozess (z.B. durch Berechnung eines Softmax-Loss). Die Möglichkeit des einfachen Wechsels zwischen CPU und GPU Berechnungen wird als praktischer Vorteil hervorgehoben, da dies die Geschwindigkeit der Verarbeitung beeinflusst. Die Beschreibung der verschiedenen Layer-Typen und ihrer Funktionen verdeutlicht die Modularität und Flexibilität des Frameworks.
3.2 Klassifizierung und Hedging your Bets
Ein wichtiger Aspekt des Caffe-Frameworks, der im Text erläutert wird, ist die Fähigkeit, nicht nur hoch spezifische Klassifizierungen für ein erkanntes Objekt zu berechnen, sondern auch abstraktere, übergeordnete Klassen zuzuordnen. Dieser Prozess wird als "hedging your bets" bezeichnet und basiert auf der hierarchischen Struktur der ImageNet-Daten. ImageNet ist als baumartige Struktur organisiert, mit abstrakteren Entitäten weiter oben in Richtung Wurzel und konkreten Objektklassen an den Blättern. Ein Beispiel für einen solchen Baum wird in Abbildung 3 gezeigt, wobei die abstrakte Klasse "Animal" als Wurzel und konkrete Klassen wie "Zebra" und "Kangaroo" als Blätter dargestellt sind. Die Methode "hedging your bets" ermöglicht es Caffe, im Falle unsicherer Klassifizierungen auf abstraktere, aber korrekte Klassen zurückzugreifen, anstatt eine möglicherweise falsche, spezifischere Klassifizierung auszugeben. Dies wird an einem Beispiel mit einem Golden Retriever veranschaulicht, der im Falle einer niedrigen Wahrscheinlichkeit für die spezifische Klasse "Chihuahua" stattdessen als "Dog" klassifiziert wird.
III. Der NAO Roboter und die NAOqi API
Der NAO Roboter dient als Plattform für die Objekterkennung. Die Arbeit nutzt die NAOqi API für den Zugriff auf die Roboterfunktionen, insbesondere die Kameras für Bildaufnahme und die Motoren zur Kopfbewegung. Die Berechnungen des Deep Learning Modells werden jedoch nicht direkt auf dem NAO durchgeführt, sondern auf einem leistungsstärkeren externen System aufgrund der hohen Rechenanforderungen von CNNs.
4.1 Der NAO Roboter als Plattform
Dieser Abschnitt beschreibt die Verwendung des NAO Roboters als Hardwareplattform für die Objekterkennung. Es wird zwar erwähnt, dass die Software Choregraphe in dieser Arbeit nicht direkt verwendet wurde, das mit Choregraphe ausgelieferte Werkzeug Monitor hingegen spielte eine wichtige Rolle bei der Entwicklung und dem Testen der Implementierung. Monitor bietet Zugriff auf die von den Robotkameras erzeugten Bildströme und ermöglicht es dem Benutzer, die Szene aus der Perspektive des Roboters zu betrachten. Die Konfiguration verschiedener Kameraparameter wie Auflösung, Framerate und Kontrast ist über Monitor möglich. Ein wichtiger Punkt ist, dass die Bildaufnahme für die eigentliche Objekterkennung über Parameter gesteuert wird, die unabhängig von den in Monitor eingestellten Parametern sind. Die Möglichkeit, zwischen der oberen und unteren Kamera umzuschalten, wird ebenfalls als nützliche Funktion von Monitor hervorgehoben. Die Integration eines Kamerastroms in die Benutzeroberfläche wurde als redundant betrachtet, da Monitor bereits verfügbar ist.
4.2 Die NAOqi API und ihre Komponenten
Der zentrale Aspekt dieses Abschnitts ist die Nutzung der NAOqi API (Application Programming Interface) von Aldebaran Robotics. NAOqi Vision, ein Teil der API, wird zur Bildaufnahme mit ALVideoDevice verwendet. Zusätzlich werden die APIs NAOqi Motion und NAOqi Audio erwähnt. NAOqi Motion ermöglicht den Zugriff auf alle Funktionen zur Steuerung von Bewegung und Navigation, wobei ALMotion in der entwickelten Benutzeroberfläche zur Bewegung des Roboterkopfes eingesetzt wird. NAOqi Audio ermöglicht die Nutzung von Sprachausgabe (ALTextToSpeech) und Spracherkennung (ALSpeechRecognition) für die Mensch-Maschine-Interaktion. Diese API ermöglichte die Entwicklung des Dialogsystems. Die Beschreibung der verschiedenen API-Komponenten und ihrer Funktionen unterstreicht die Möglichkeiten der NAOqi API für die Integration der Objekterkennung in ein umfassenderes Robotersystem. Die Auswahl der spezifischen API-Module verdeutlicht die gezielte Nutzung der verfügbaren Funktionalitäten für die Objekterkennungsaufgabe.
IV. Implementierung und Algorithmen
Die Implementierung umfasst zwei Modi: lokale und Remote-Klassifizierung. Der Multibox-Algorithmus wird eingesetzt, um mehrere Objekte gleichzeitig zu erkennen. Dieser Algorithmus ist klassenagnostisch und kann somit auch Objekte identifizieren, die nicht in den vortrainierten Modellen enthalten sind. Die Arbeit vergleicht implizit den Multibox Ansatz mit anderen Ansätzen, wie z.B. YOLO, wobei die Herausforderungen bei der Verwendung von YOLO aufgrund der begrenzten Anzahl an vortrainierten Klassen hervorgehoben werden. Die Benutzerschnittstelle ermöglicht es dem Benutzer, den Roboterkopf zu steuern, Parameter einzustellen und die Ergebnisse der Objekterkennung zu überprüfen. Die Ergebnisse werden sowohl akustisch als auch visuell ausgegeben.
6.1 Implementierung der Objekterkennung auf dem NAO Roboter
Die Implementierung der Objekterkennung erfolgte mithilfe des NAOqi Frameworks von Aldebaran. Es wurden zwei separate Python-Skripte für die lokale und die Remote-Klassifizierung erstellt. Obwohl die internen Funktionen dieser Modi Unterschiede in den erwarteten Parametern und der Formatierung der Rückgabewerte aufweisen, ist die grundlegende Vorgehensweise zur Berechnung der Erkennungsergebnisse gleich. Die Berechnungen finden nicht direkt auf dem NAO-Roboter statt, sondern auf einem externen System mit höherer Rechenleistung (insbesondere einer Grafikkarte), da die Objekterkennung mit CNNs rechenintensiv ist. Diese Entscheidung wurde getroffen, um schnellere Ergebnisse zu erzielen, da die Rechenkapazität des NAO-Roboters für die Anforderungen des Caffe-Frameworks und insbesondere des Multibox-Algorithmus nicht ausreicht. Die Implementierung basiert auf Prototypen aus der Entwurfsphase und verwendet die NAOqi API für die Kommunikation mit dem Roboter und zur Ausführung von Befehlen.
6.2 Benutzerschnittstelle und Interaktionsmodi
Die Implementierung beinhaltet eine Benutzerschnittstelle, die es dem Anwender ermöglicht, den Roboterkopf zu positionieren und Parameter für die Objekterkennung einzustellen. Nach dem Drücken des "Identify"-Buttons beginnt der Erkennungsprozess, dessen Dauer von der Verwendung von CPU oder GPU und der Anzahl der zu identifizierenden Objekte abhängt. Der Roboter kündigt den Beginn des Prozesses akustisch an, sofern der "Silent"-Modus nicht aktiviert ist. Für die Multibox-Variante gibt es die Möglichkeit zwischen "Single" und "Multi" Identifizierung zu wählen, wobei der Multi-Modus den Silent-Modus automatisch aktiviert, da die größere Anzahl an Ergebnissen für akustische Rückmeldungen zu unübersichtlich ist. Im Dialogmodus kann der Benutzer die Ergebnisse mit "Ja", "Nein" oder "Exit" bestätigen oder verwerfen. Ein "Nein" führt zur Abfrage des nächsten Ergebnisses in der Liste. Die Benutzerschnittstelle vereinfacht die Interaktion mit dem System und die Steuerung des Erkennungsprozesses.
6.3 Der Multibox Algorithmus
Für die gleichzeitige Erkennung mehrerer Objekte wird der DeepMultiBox-Detektor von Erhan et al. [28] verwendet. Der Hauptvorteil von Multibox liegt in seiner klassenagnostischen Funktionsweise. Dies ermöglicht die Detektion von Objekten, selbst wenn Modelle mit unterschiedlichen Kategorien verwendet werden oder unbekannte Objekte vorhanden sind. Die Arbeit beschreibt die Integration von Multibox in die Implementierung und vergleicht ihn implizit mit anderen Ansätzen wie YOLO. YOLO wird als weniger geeignet dargestellt aufgrund der begrenzten Verfügbarkeit vortrainierter Gewichte, die nur für 20 Objektklassen des VOC 2012 Datensatzes verfügbar sind, im Gegensatz zu den 1000 Klassen des ILSVRC 2012 Datensatzes, die von Caffe-Modulen verwendet werden. Die Abhängigkeit von Multibox vom Caffe2-Framework wird als vorteilhaft gegenüber MATLAB angesehen, insbesondere aufgrund der besseren Zugänglichkeit. Die konkrete Verwendung von Multibox beinhaltet die Segmentierung des Bildes und die anschließende Ausführung eines leicht modifizierten Multibox-Codes.
V. Tests und Experimente
Die Leistung der Implementierung wurde mit verschiedenen Tests evaluiert, die sich auf die Objekterkennungsraten unter verschiedenen Bedingungen konzentrieren. Die Tests umfassen die Auswertung verschiedener Preprocessing-Techniken zur Verbesserung der Bildqualität. Darüber hinaus werden Tests mit variierenden Abständen, Lichtverhältnissen und Bildauflösungen durchgeführt, um die Robustheit des Systems zu bewerten. Die Ergebnisse zeigen eine Abhängigkeit der Genauigkeit von der Bildqualität und dem Abstand zum Objekt. Die erzielten Objekterkennungsraten werden mit Ergebnissen aus der Literatur (z.B. GoogleNet) verglichen.
7.1 Evaluierung der Objekterkennungsraten
Das Kapitel beschreibt die durchgeführten Tests zur Evaluierung der Implementierung, wobei die Erkennungsraten im Mittelpunkt stehen. Es wird die subjektive Komponente bei der Bewertung der Genauigkeit von Ergebnissen angesprochen. Die Definition einer ausreichenden Präzision für ein Ergebnis, um als korrekt zu gelten, wird als entscheidend hervorgehoben. Ein Beispiel hierfür ist die Klassifizierung eines Modems, bei der zwischen maximal genauer und maximal spezifischer Klassifizierung unterschieden wird und die Frage nach der Akzeptanz weniger spezifischer Ergebnisse (z.B. "vessel" statt "water bottle") diskutiert wird. Die Bestimmung der benötigten Präzision eines Ergebnisses, um als korrekt zu gelten, wird formal beschrieben: Gegeben ein CNN C, ein spezifisches Objekt O0 und ein dazugehöriges Objektlabel L0, wobei L0 O0 mit der höchsten möglichen Präzision identifiziert (Ground Truth). L0 ermöglicht sinnvolle Interaktionen mit O0 oder Schlussfolgerungen aus seiner Anwesenheit. Alle möglichen Interaktionen oder Schlussfolgerungen sind Teil der Menge S0, die als Wissensbasis für L0 betrachtet werden kann. Diese formale Definition dient als Grundlage für die Auswertung der Testergebnisse.
7.2 Preprocessing Test Einfluss der Vorverarbeitung
Dieser Test untersucht den Einfluss verschiedener Vorverarbeitungstechniken auf die Erkennungsrate. Es wurden verschiedene Techniken wie Kontrastverstärkung und Gauß-Filter angewendet, um die Bildqualität zu verbessern und die Erkennungsleistung zu steigern. Die verwendeten Daten setzen sich aus drei Kategorien zusammen: 59 Bilder, die mit der NAO-Kamera aufgenommen wurden, ein Datensatz heruntergeladener Bilder und ein Datensatz von Bildern, die mit einem Mobiltelefon aufgenommen wurden. Die Bilder enthielten verschiedene Objekte wie Elektronik, Stifte und Obst. Es wurden auch absichtlich Objekte aufgenommen, die nicht in den Trainingsdaten des CNNs enthalten waren, um das Verhalten des Systems in solchen Fällen zu untersuchen. Die Ergebnisse für jede Bildvorverarbeitung wurden manuell ausgewertet, wobei sowohl maximal genaue als auch spezifische Ergebnisse betrachtet wurden. Die Ergebnisse zeigen, dass die Effektivität der Vorverarbeitungstechniken stark vom jeweiligen Bild abhängt und teilweise inkonsistente Resultate liefert. Eine eindeutige Verbesserung der Erkennungsraten durch die getesteten Techniken konnte nicht festgestellt werden.
7.3 Test unter variierenden Umgebungsbedingungen
Dieser Test bewertet die Objekterkennung unter kontrollierten Bedingungen wie variierenden Abständen, Lichtverhältnissen und Bildauflösungen. Insgesamt wurden 66 Bilder mit der NAO-Kamera aufgenommen und in vier Datensätze unterteilt. Neben einem Primärdatensatz wurden drei sekundäre Datensätze mit variierenden Lichtverhältnissen (niedriges Licht) und Auflösungen erstellt, um die Robustheit des Systems zu testen. Auch hier wurden absichtlich Objekte aufgenommen, die nicht zu den vom CNN gelernten Klassen gehörten. Die Ergebnisse zeigen, dass die Erkennungsraten mit zunehmender Entfernung und abnehmender Lichtintensität sinken. Obwohl die Fehlerraten im Vergleich zu Literaturwerten hoch erscheinen, zeigen die Ergebnisse für verschiedene Distanzen eine bessere Performance bei kurzen Abständen. Die geringere Performance wird auf die geringere Bildqualität der NAO-Kamera im Vergleich zu den Bildern der ImageNet-Datenbank zurückgeführt, sowie auf die Aufnahme von Objekten außerhalb der Trainingsdaten. Der Einfluss des Aufnahmewinkels auf die Erkennungsgenauigkeit, insbesondere bei kurzen Abständen, wird ebenfalls diskutiert.
VI. Schlussfolgerung und Ausblick
Die Arbeit präsentiert eine erfolgreiche Implementierung von Objekterkennung auf dem NAO Roboter mittels CNNs und dem Caffe-Framework. Die Modularität der Implementierung und die Austauschbarkeit der vortrainierten Modelle ermöglichen eine flexible Anpassung an verschiedene Aufgaben. Zukünftige Arbeiten könnten sich auf die Verbesserung der Objekterkennungsraten durch verbesserte Preprocessing-Techniken und die Erweiterung der Funktionalität durch die Integration von Objekterinnerung und semantischen Verständnis konzentrieren. Die Arbeit hebt die Bedeutung von Deep Learning und Convolutionalen Neuronalen Netzen für die Objekterkennung in der Robotik hervor.
8.1 Zusammenfassung der Ergebnisse
Die Schlussfolgerung fasst die Ergebnisse der Arbeit zusammen. Es wurde eine robuste und einsatzbereite Objekterkennung auf der NAO-Roboterplattform implementiert, die auf Convolutional Neural Networks (CNNs) basiert und vortrainierte Modelle aus dem Caffe-Framework nutzt. Die CNNs werden als Black Boxes behandelt, wobei die Eingabe die vom NAO-Roboter aufgenommenen Bilder und die Ausgabe Ergebnismengen mit Klassifizierungen für maximal genaue und maximal spezifische Labels sind. Die Implementierung zeichnet sich durch eine modulare Architektur mit klar definierten Schnittstellen aus, die die Wiederverwendung ermöglicht. Die verwendeten vortrainierten Modelle können bei Bedarf gegen andere ausgetauscht werden. Die erzielten Erkennungsraten wurden in Tests unter verschiedenen Bedingungen evaluiert, wobei die Ergebnisse von Faktoren wie Bildqualität und Abstand zum Objekt beeinflusst wurden. Die Ergebnisse wurden mit Literaturwerten verglichen, wobei die geringere Performance teilweise auf die niedrigere Bildqualität der NAO-Kamera zurückgeführt wurde. Der Multibox-Algorithmus erwies sich als effektive Ergänzung für die Multi-Objekterkennung, obwohl er einen hohen Rechenaufwand mit sich bringt. Ein Problem waren dabei multiple Bounding Boxes für dasselbe Objekt, was zu redundanten Berechnungen und Leistungseinbußen führte.
8.2 Ausblick auf zukünftige Arbeiten
Der Ausblick skizziert mögliche Verbesserungen und Erweiterungen der Implementierung. Eine Verbesserung der Erkennungsraten steht im Vordergrund, wobei die Verbesserung der Bildqualität als wichtiger Aspekt genannt wird. Obwohl der Austausch der Kamera des NAO-Roboters als nicht praktikabel angesehen wird, wird weitere Forschung im Bereich der Vorverarbeitung vorgeschlagen, obwohl die Ergebnisse der Arbeit keine eindeutige Verbesserung durch die getesteten Techniken zeigen konnten. Die Erkennungsraten waren bei angemessenen Abständen gut, größere Testdatensätze wären jedoch wünschenswert. Die geringeren Erkennungsraten im Vergleich zu Literaturwerten werden auf die geringere Bildqualität der NAO-Kamera im Vergleich zu den in der ImageNet-Datenbank verfügbaren Bildern zurückgeführt. Der Multibox-Algorithmus erwies sich als effektiv, obwohl er einen hohen Rechenaufwand verursacht. Zukünftige Arbeiten könnten sich auf die Verbesserung der Erkennungsraten, die Erweiterung der Funktionalität durch ein System zur Speicherung von Klassifizierungen und Positionen von Objekten sowie auf die Integration einer Datenbank für Aktionen basierend auf den Objektklassen konzentrieren. Dies würde ein besseres semantisches Verständnis und eine sinnvollere Interaktion ermöglichen.
Dokumentreferenz
- ImageNet Large Scale Visual Recognition Challenge (Olga Russakovsky et al.)
- Multibox repository
- Alvisionrecognition