Neuromorphic Vision
Neuromorphes Sehen erfasst Szenen ähnlich einer Netzhaut: Ereigniskameras melden Helligkeitsänderungen für jedes Pixel innerhalb von Mikrosekunden. Erfahre, wie Ereignisse funktionieren und eingesetzt werden.
Neuromorphe Bildverarbeitung ist ein Ansatz für Computer Vision, bei dem Bilder so erfasst und verarbeitet werden wie von biologischer Netzhaut und Gehirn. Das zentrale Gerät, die Ereigniskamera oder der dynamische Bildsensor (DVS), hat Pixel, die unabhängig voneinander arbeiten und jeweils eine Helligkeitsänderung genau in dem Moment melden, in dem sie auftritt, statt vollständige Bilder mit fester Bildrate aufzunehmen. Die Ausgabe ist ein dünner Ereignisstrom mit Zeitauflösung im Mikrosekundenbereich, hohem Dynamikumfang und nahezu keiner Bewegungsunschärfe; eine statische Szene erzeugt fast keine Daten. Das Fachgebiet ging Ende der 1980er-Jahre aus der neuromorphen Technik der Gruppe von Carver Mead am Caltech hervor, deren analoge Chips neuronale Schaltkreise nachahmten. Spikende neuronale Netze sind das passende Gegenstück für die Verarbeitung und rechnen mit derselben Art dünn verteilter, zeitlich geordneter Ereignisse.
So funktionieren Ereigniskameras#
Jedes Pixel speichert den Logarithmus der Helligkeit, die es bei seinem letzten Ereignis erfasst hat. Unterscheidet sich die aktuelle logarithmische Helligkeit um mehr als einen Kontrastschwellenwert von diesem Referenzwert, gibt das Pixel ein Ereignis aus, das seine Position, einen Zeitstempel und eine Polarität codiert: ON für heller oder OFF für dunkler. Anschließend setzt es seinen Referenzwert zurück. Durch die Arbeit im logarithmischen Raum reagiert das Pixel auf den relativen Kontrast. Dadurch erfasst derselbe Sensor sowohl tiefe Schatten als auch direktes Sonnenlicht und erreicht einen Dynamikumfang von etwa 140 dB, gegenüber etwa 60 dB bei Bildkameras.
Dieselbe Regel lässt sich auf gewöhnliche Videos anwenden, um zu sehen, wie dünn die Ausgabe ist:
import cv2
import numpy as np
# Read a clip of a person exercising in front of a fixed camera
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_pose_demo.mp4")
ok, frame = cap.read()
reference = np.log1p(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).astype(np.float32))
threshold = 0.2 # contrast threshold on log brightness
events, samples = 0, 0
while True:
ok, frame = cap.read()
if not ok:
break
brightness = np.log1p(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).astype(np.float32))
# A pixel fires an ON or OFF event only when its brightness changed by more than the threshold
fired = np.abs(brightness - reference) >= threshold
reference[fired] = brightness[fired]
events += fired.sum()
samples += fired.size
print(f"{events:,} events vs {samples:,} pixel values in frames ({100 * events / samples:.2f}%)")Die Ausgabe lautet 233,492 events vs 13,593,600 pixel values in frames (1.72%): Bei einer feststehenden Kamera bewegt sich von Bild zu Bild nur die trainierende Person, daher enthält der Ereignisstrom 1,72 % der Werte, die vollständige Bilder hätten. Simulatoren wie v2e wandeln Videos auf dieselbe Weise in synthetische Ereignis-Trainingsdaten um und können sie zuvor mit Bildinterpolation hochskalieren sowie Abweichungen der Schwellenwerte und Rauschen pro Pixel hinzufügen.
Ereigniskameras im Vergleich zu Bildkameras#
Ereigniskameras eignen sich für schnelle Bewegungen, Szenen mit extremen Lichtverhältnissen und die stets aktive Erfassung mit Edge-KI, wenn sich nur wenig ändert. Ihre Bandbreite richtet sich nach der Aktivität in der Szene. Sie erfassen weder absolute Helligkeit noch Farbe. Eine unbewegte Kamera, die auf eine unbewegte Szene gerichtet ist, meldet nichts; eine bewegte Kamera überflutet die Ausgabe mit Ereignissen von jeder Kante. Hybridsensoren wie DAVIS von iniVation erfassen mit denselben Pixeln auch herkömmliche Bilder. Viele Systeme kombinieren eine Ereigniskamera und eine Bildkamera durch Sensorfusion. Standardmodelle wie faltende neuronale Netze (CNNs) erwarten dichte Bilder. Daher wandeln Verarbeitungsketten Ereignisse entweder in eine dichte Darstellung um oder verarbeiten sie direkt:
- Ereignisbilder: Werden ON- und OFF-Ereignisse pro Pixel über ein Zeitfenster gezählt, entsteht ein zweikanaliges Bild, das jedes CNN verarbeiten kann.
- Zeitflächen und Voxelgitter: Der jeweils letzte Zeitstempel jedes Pixels oder die Aufteilung von Ereignissen auf mehrere Zeitscheiben bewahren Zeitinformationen, die bei einfachen Zählungen verloren gehen.
- Spikende Netze auf neuromorphen Chips: Prozessoren wie Intels Loihi 2 verarbeiten Ereignisse direkt als Spikes und verbrauchen nur dann Energie, wenn Ereignisse eintreffen.
- Rekonstruktion der Intensität: Netze wie E2VID rekonstruieren aus dem Ereignisstrom ein Graustufenvideo, sodass bildbasierte Modelle darauf ausgeführt werden können.
Ultralytics YOLO liest die Anzahl der Eingabekanäle aus dem Schlüssel channels einer Dataset-YAML-Datei, wie beim 10-kanaligen Datensatz COCO8-Multispectral. So kann ein YOLO26-Modell zur Objekterkennung direkt mit zweikanaligen Ereignisbildern aus ON- und OFF-Zählungen trainiert werden.
Anwendungen in der Praxis#
- Wahrnehmung im Automobilbereich: In einer Nature-Studie aus dem Jahr 2024 wurde eine Farb kamera mit 20 FPS mit einer Ereigniskamera kombiniert. Objekte auf der Straße wurden mit der Latenz einer Kamera mit 5.000 FPS und der Bandbreite einer Kamera mit 45 FPS erkannt.
- Drohnen und Robotik: Ein Quadrokopter mit Ereigniskamera der Universität Zürich wich Hindernissen aus, die mit Relativgeschwindigkeiten von bis zu 10 Metern pro Sekunde auf ihn zuflogen. Die Gesamtlatenz betrug 3,5 Millisekunden.
- Industrielle Überwachung: Ereigniskameras zählen schnell bewegte Teile, messen Maschinenschwingungen und verfolgen Hochgeschwindigkeitsprozesse. Industriekamerahersteller wie IDS bieten ereignisbasierte Modelle mit Prophesee-Sensoren an.










