Nächster Artikel
Künstliche neuronale Netze
Maschinelles Sehen mit weniger Daten will gelernt sein
Gegenüber dem menschlichen Gehirn verbrauchen künstliche neuronale Netze selbst für einfache Unterscheidungsaufgaben immens mehr Strom. Ereignis-basiertes Sehen (Event-based Vision) liefert einen vielversprechenden Ansatz, dieses Problem zu lösen. Allerdings gibt es noch einige Herausforderungen zu meistern.
© iStock.com/Alcuin
Maschinelles Sehen (Computer Vision, CV) ist ein großes Forschungsfeld, das sich damit befasst, wie Computer, ähnlich zum menschlichen visuellen Sehen, aussagekräftige Informationen aus digitalen Bildern oder Videos gewinnen. Die vorherrschende Technologie sind dabei künstliche neuronale Netze (Artificial Neural Networks, ANNs), die mittels eines Lernalgorithmus verschiedenste Aufgaben lösen können. Dieses sogenannte Frame-basierte Sehen (Frame-based Vision) wird bereits sehr erfolgreich in der Industrie eingesetzt, jedoch ist der Energieverbrauch um ein Vielfaches höher als der eines menschlichen Gehirns: Relativ simple Aufgaben wie beispielsweise die Unterscheidung eines Hundes von einer Katze anhand von Bildern benötigen mehr als 200 W wohingegen das menschliche Gehirn selbst hochkomplexe Sachverhalte mit gerade einmal 20 W erschließt.
In den letzten Jahren entstand ein neues Forschungsfeld, das sich mit dieser Thematik auseinandersetzt: das sogenannte Ereignis-basierte Sehen (Event-based Vision), welches biologisch inspiriert ist. Was sich hinter dem Begriff verbirgt und wie es dabei helfen kann, CV-Aufgaben effizienter zu lösen, erfahren Sie in diesem Blogbeitrag.
Sehen basierend auf Bildern
Weit verbreitete Bildkameras verarbeiten das über einen bestimmten Zeitabschnitt einfallende Licht, um digitale Bilder zu produzieren. Diese Bilder wiederum werden mit einer bestimmten Frequenz von ANNs eingelesen, um Muster zu erkennen und verschiedene Aufgaben zu lösen. Zum Beispiel unterschiedliche Objekte zu identifizieren (Object Recognition), diese Objekte in einem Bild nicht nur zu erkennen, sondern auch zu lokalisieren (Object Detection), oder vom Bildhintergrund präzise abzugrenzen (Semantic Segmentation).
Wenngleich auch große Fortschritte zu früheren klassischen Bilderkennungsmethoden erzielt wurden, verbraucht das Lernen und Ausführen dieser Aufgaben eine erhebliche Menge an Energie: Bildsequenzen enthalten viel Redundanz, da für jedes Bild die Information aller Pixel gespeichert und weiterverarbeitet werden muss, selbst wenn sich nur ein kleiner Bereich verändert. Vor allem bei Echtzeitanwendungen, wie in der Robotik oder im autonomen Fahren, ist die benötigte Rechenleistung eine Herausforderung, um schnell und effizient die sich kontinuierlich verändernde Umgebung zu verarbeiten.
Sehen basierend auf Event-Daten
Event-Kameras
Maschinelles Sehen basierend auf Event-Daten ist eine neue Herangehensweise die, inspiriert von der Funktionsweise des menschlichen Sehens, diese Probleme nicht hat: Das menschliche Auge ist sehr empfindlich gegenüber schnellen Veränderungen, wohingegen das Gehirn stillstehende Gegenstände ignoriert. Diesen Mechanismus machen sich Event-Kameras zu Nutze und messen die lokale zeitliche Änderung der Helligkeit pro Pixelpunkt unabhängig und asynchron von anderen Pixelpunkten. Anstatt eine Bildsequenz mit konstanter Frequenz, erhält man als Ausgabe einen Strom an Ereignissen (Events), wobei jedes Ereignis den Zeitpunkt, den Ort und das Vorzeichen der Lichtänderung kodiert (siehe Abbildung 1).
Vorteile dieser Informationsverarbeitung sind eine sehr geringe Latenzzeit im Mikrosekunden-Bereich, ein sehr geringer Energieverbrauch mit durchschnittlich wenigen Milliwatt und ein großer Dynamikbereich (Helligkeitsunterschiede von 140 Dezibel sind kein Problem) [1]. Im Vergleich dazu verbrauchen konventionelle Bildkameras durchschnittlich mehrere Watt und ihre Latenzzeit von über 100 Mikrosekunden liegt ebenfalls deutlich über der von Event-Kameras.
Spiking Neural Networks
Die hohe Energieeffizienz des menschlichen Gehirns resultiert vor allem aus seiner impulsgetriebenen Kommunikation. Diese Impulse sind spärlich (sparse) und asynchron, genauso wie die Ereignisse einer Event-Kamera. Da sich das Format von Event-Daten grundsätzlich von dem von Bilddaten unterscheidet, müssen alternative Technologien entwickelt werden, die diese Eigenschaften von Event-Daten effizient verarbeiten und damit das hohe Potential von ereignisbasierten Sensoren nutzen können.
Eine Möglichkeit ist die Verwendung einer neuen Generation von ANNs, den sogenannten gepulsten neuronalen Netzen (Spiking Neural Networks, SNN), welche die Struktur und Dynamik von biologischen Neuronen viel genauer modellieren als ANNs. Im Allgemeinen sind auch ANNs inspiriert vom menschlichen Gehirn, das aus Milliarden von Neuronen besteht. Jedoch unterscheiden sie sich in grundlegenden Bereichen von biologischen Netzwerken, wie beispielsweise der Informationsverarbeitung oder ihrer Lernmethodik. Information zwischen zwei künstlichen Neuronen wird unmittelbar ohne jegliche Zeitkomponente und in Form von reellen Werten weitergegeben (siehe Abbildung 2, links). Gepulste Neuronen hingegen kommunizieren mittels Impulsen (spikes), die sie asynchron und unabhängig voneinander empfangen und verarbeiten. Information wird sowohl über die Menge der Impulse über einen bestimmten Zeitabschnitt als auch über den exakten Zeitpunkt der Impulse übertragen (siehe Abbildung 2, rechts).
SNNs sind jedoch auch nicht alle gleich: Je nach Abstraktionsgrad unterscheiden sich die einzelnen Neuronen-Modelle in ihrer Komplexität: Beispiele dafür sind das Leaky-Integrate-and-Fire (LIF), das Spike-Response oder das Hodgkin-Huxley Modell. Das meistverwendete Neuronen-Modell ist das LIF-Modell, dessen Dynamik mittels Differentialgleichungen modelliert wird. Als Input empfängt das LIF-Neuron binäre Impulse über die Zeit, die dessen internes „Membran«-Potential beeinflussen. Kommen nur wenige Impulse am Neuron an, sinkt das Potential wieder. Erreichen das Neuron ausreichend viele Impulse innerhalb einer kurzen Zeitspanne, sodass das Potential über einen definierten Schwellenwert steigt, gibt das Neuron wiederum einen Impuls ab, der an nachfolgende Neuronen weiterwandert. Durch diese Dynamik sind SNNs inhärent asynchron und spärlich und machen sie zu idealen Verarbeitern von Event-Daten.
Neuromorphic Processors
Ein weiterer Bestandteil von maschinellem Sehen basierend auf Event-Daten ist die neuromorphe Datenverarbeitung auf spezialisierter Hardware (Neuromorphic Processors). Genauso wie Event-Kameras und SNNs haben neuromorphe Prozessoren den Anspruch, sich mehr an der Rechenstärke des menschlichen Gehirns zu orientieren, indem sie versuchen, seine Struktur und Funktion zu imitieren. Ein Vorteil von neuromorphen Chips ist, dass Events ohne einen Zwischenschritt verarbeitet werden können. Dies wird durch ihr Design ermöglicht, welches Neuronen und Synapsen (Verknüpfungen zwischen Neuronen) direkt auf einen Chip implementiert, um ereignisgesteuert elektrische Signale unterschiedlicher Stärke zu transportieren.
Ereignisgesteuerte Informationsverarbeitung bedeutet, dass nur diejenigen Teilbereiche im System angesprochen werden, welche durch ein Ereignis beeinflusst werden. Alle anderen Teilbereiche sind inaktiv und verbrauchen somit auch keine Energie. Das macht neuromorphe Prozessoren zu enormen Hardwarebeschleunigern von SNNs und zu idealen Datenverarbeitern von Event-Kameras, so wie es GPUs für ANNs und Bildkameras sind.
Zusammengefasst verbirgt sicher hinter dem Begriff Event-based Vision eine ganze Pipeline für die Informationsverarbeitung von ereignisbasierten Daten. Aufgrund der Energieeffizienz und geringen Latenzzeit, und in ihrer Gänze angewendet, kann Event-based Vision verwendet werden, um KI-Algorithmen auf Edge-Geräten, anstatt in der Cloud laufen zu lassen, und intelligente Systeme somit schneller und sicherer zu machen.
Erfolgsgeschichte mit Hindernissen
Bei all diesen Vorteilen stellt sich jedoch die Frage, warum dann maschinelles Sehen basierend auf Eventdaten noch nicht in aller Munde ist. Ein Punkt ist, dass es bis heute noch keine effizienten und insgesamt überzeugenden Methoden gibt, mit denen SNNs trainiert werden können. Durch die unstetige Eigenschaft der Impulsfunktion ist diese nicht differenzierbar, sodass der Backpropagation-Algorithmus, der bereits ANNs zu ihrem Erfolg verholfen hat, nicht direkt anwendbar ist.
Aktuell existieren drei unterschiedliche Ansätze, SNNs zu trainieren: Ein Ansatz ist die Konvertierung von ANNs, welcher bezüglich seiner Performanz der erfolgreichste Ansatz ist. Jedoch werden für die Informationsverarbeitung viele Zeitschritte benötigt, wodurch die Energieeffizienz wiederum deutlich sinkt. Ein weiterer Ansatz ist, mit Approximationen des Backpropagation-Algorithmus zu arbeiten.
Verschiedene Arbeiten konnten so schon einige Erfolge im Bereich der Gestenerkennung, Posen-Bestimmung aber auch in komplexeren Aufgaben wie der Objektdetektion verzeichnen. Der biologisch plausibelste Ansatz sind unüberwachte, lokale Lernmethoden basierend auf dem Prinzip der synaptischen Plastizität (Spike timing-dependent plasticity, STDP). Jedoch können damit bis jetzt nur sehr flache SNNs mit begrenzter Genauigkeit trainiert werden.
Ein weiterer Punkt ist das Fehlen einer einheitlichen und nutzerfreundlichen Software-Frameworks: ANNs sind heutzutage sehr leicht zu designen und zu trainieren, etablierte Frameworks wie PyTorch oder TensorFlow stellen einen großen Baukasten dafür parat. Für SNNs gibt es jedoch noch keine einheitlichen Frameworks, die durchweg von Forschern genutzt werden können. Beispiele einiger gängiger Frameworks sind LAVA-DL/SLAYER[2], SpikingJelly[3] oder Norse[4], wobei sich diese in Bezug auf implementierte Neuronen-Modelle, verwendete Lernalgorithmen, Nutzerfreundlichkeit und der Unterstützung einer Schnittstelle zur Hardware stark unterscheiden.
Ein großes Problem ist vor allem auch die mangelnde Verfügbarkeit der Hardware. Obwohl es schon einige Anbieter für Event-Kameras (z.B., Prophesee, iniVation, Samsung) und Hardware-Implementierungen von neuromorphen Chips (z.B., Loihi/Loihi2, SpiNNaker, Akida) gibt, ist der Erwerb entweder gar nicht erst möglich oder der Einkaufspreis übersteigt den von konventioneller Hardware um ein Vielfaches. Benötigte Datensätze zum Erlernen verschiedenster Aufgaben können so nur schwer erstellt werden. Einige Ansätze befassen sich mit der Konvertierung von Bildern zu Event-Daten, jedoch geht dabei die hohe zeitliche Auflösung verloren. Erste umfassende Datensätze im Bereich des autonomen Fahrens [5, 6] zeigen jedoch einen positiven Trend.
Des Weiteren werden zurzeit SNNs noch vorrangig auf GPUs trainiert und getestet, was mit großen Kosten verbunden ist und die Entwicklung von komplexen Architekturen behindert. Aktuell forscht das Fraunhofer IKS zusammen mit anderen Fraunhofer-Instituten an der Skalierung von SNNs, sodass auch komplexe Aufgaben wie zum Beispiel die Objektdetektion auf Eventdaten effizient implementiert werden können.
[1] Gallego, Guillermo et al. “Event-Based Vision: A Survey.” IEEE Transactions on Pattern Analysis and Machine Intelligence 44 (2022): 154-180.
[2] Lava DL (2021), GitHub Repository, https://github.com/lava-nc/lava-dl
[3] SpikingJelly (2020), GitHub Repository, https://github.com/fangwei123456/spikingjelly
[4] Pehle, Christian, and Pedersen, Jens Egholm, Norse - A deep learning library for spiking neural networks (2021), GitHub Repository, https://github.com/norse/norse
[5] Perot, E., Tournemire, P.D., Nitti, D.O., Masci, J., & Sironi, A. (2020). Learning to Detect Objects with a 1 Megapixel Event Camera. ArXiv, abs/2009.13436.
[6] Tournemire, P.D., Nitti, D.O., Perot, E., Migliore, D., & Sironi, A. (2020). A Large Scale Event-based Detection Dataset for Automotive. ArXiv, abs/2001.08499.