Die Bildverarbeitung im Auto bekommt einen immer wichtigeren Stellenwert als Fahrerassistenzsystem. In Kombination mit andern Sensoren und leistungsfähigen Mustererkennungsverfahren, wird sie ein Erfolgsbaustein des autonomen Fahrens sein. Doch wo wird die Bildverarbeitung stattfinden, im Auto oder doch im Backend, also den Systemen in der Cloud?
Gestern, auf dem Weg mit dem Auto zum Einkaufen, habe ich ganz bewusst auf die Bilder geachtet, die ich während meiner Fahrt gesehen habe. Eigentlich sollten wir ja immer mit Achtsamkeit fahren, aber mal ehrlich, wer tut das schon. Wenn wir im Auto sitzen, dann ist unser Bilderkennungsfokus auf bestimmte Ereignisse gerichtet. So registrieren wir manche Situation wie Verkehrsschilder, Ampeln oder vorausfahrende Fahrzeuge recht gut, wenn wir nicht abgelenkt und die Witterungsbedingungen angenehm sind. Aber wie oft schaffen wir es, nur im letzten Moment zu bremsen, bevor wir auf das vor uns fahrende Auto auffahren oder einen Unfall mit Personen verursachen, die plötzlich am Straßenrand auftauchen. Ein gutes bildverarbeitendes Fahrerassistenzsystem könnte uns helfen, die Umgebung achtsam zu beobachten und uns frühzeitig vor Gefahren zu warnen.
Bildverarbeitung im Fahrzeug
Moderne Fahrzeuge besitzen heute schon verschiedene Kamerasysteme (Stereokamera, Spurassistent, Parkassistenten, virtuelle Draufsicht, um-die-Ecke-Spähen) mit der z.B. Verkehrszeichen erkannt werden. Mit diesen Systemen ist ein Rundumblick und in Verbindung mit einem Radar auch eine Bilderkennung bei schlechter Sicht, wie Nebel, Regen oder Dunkelheit möglich. Da die Kamera selbst nur ein Sensor ist, der Informationen aufnimmt, muss es noch eine Komponente zur Verarbeitung der Bilder geben. Es ist naheliegend diese Komponente direkt ins Fahrzeug zu integrieren. Damit können Bilder, die von der Kamera geliefert werden, nach Mustern analysiert werden.
Nun genügt es aber nicht, nur eine Bildverarbeitungskomponente im Fahrzeug zu haben. Da die Informationen, die aus unterschiedlichen Kameras eingespielt werden, auch nach unterschiedlichen Mustern analysiert werden müssen, sind mehrere Bildverarbeitungskomponenten notwendig. Diese arbeiten parallel an den Bildern und fokussieren sich jeweils auf ein bestimmtes Muster, wie zum Beispiel auf das Erkennen von Personen. Dabei kann eine Vorverarbeitung Personen als solche erkennen und eine Nachbearbeitung ermittelt, ob es Kinder sind. So entsteht eine ganze Matrix von Bildverarbeitungskomponenten, die auf einem oder mehreren Rechnersystemen im Auto betrieben werden müssen.
Heute ist es so, dass Sensoren die Intelligenz mitbringen. Das bedeutet aber auch, dass die Bildverarbeitung ein Teil der Kamera und damit unflexibel bezüglich neuer Mustererkennungsalgorithmen ist. Durch ein Echtzeitbetriebssystem für das Fahrzeug können die Bildaufnahmesensoren besser von den Verarbeitungskomponenten entkoppelt werden und ein Update neuer Mustererkennungen wird möglich.
Bildverarbeitung im Backend
Die Bildverarbeitung ins Backend zu verlagern bringt ein paar interessante Aspekte mit sich. So besteht die Möglichkeit nicht nur die Bilder von einem Fahrzeug, sondern von mehreren Fahrzeugen, die am gleichen Ort fahren, zu nutzen, um eine Situation auszuwerten. Das erste Fahrzeug erkennt die Person. In der Zeit von ca. 0,5-1 Sekunden, die das Fahrzeug hat, die Person zu erkennen, bevor es vorbeigefahren ist, kann es etwa 15-30 Bilder aufnehmen und übertragen. Ein zweites Fahrzeug kann nun weitere Bilder der Person an das Backend senden, wo die Bilder beider Fahrzeuge ausgewertet werden, um einen Bewegungsvektor der Person zu erstellen. Läuft die Person auf die Straße zu oder von ihr weg. Im ersten Fall kann ein drittes Fahrzeug informiert werden und dessen Fahrer bekommt eine Warnung angezeigt.
Ein weiterer Vorteil liegt darin, dass neue Prozessoreinheiten für neue Musteranalysen schnell eingebunden werden können. Dadurch kann die Mustererkennung kontinuierlich verbessert werden. Auch kann der notwendige Bedarf an CPU und Memory im Backend theoretisch unbegrenzt erweitert werden. Im Fahrzeug sind die Rechnerkapazitäten begrenzt, so dass eine Erweiterung von Bildverarbeitungskomponenten zum Besuch eines Servicebetriebs führt, bei dem dann eine zusätzliche CPU-Einheit und Speicher eingebaut werden muss.
Wie bereits oben angesprochen, fallen bei der Übertragung ganzer Bilder zum Backend riesige Datenmengen an. Eine typische Kamera im Fahrzeug liefert Farbbilder in der Auflösung 1344 x 1008 Pixel, was im komprimierten Zustand etwa 160 KB entspricht. Wenn ein Fahrzeug 30 Bilder pro Sekunde seiner Bildsensoren an das Backend überträgt, dann sind bei angenommenen fünf Kamerasystemen (links, rechts, hinten und eine Stereokamera vorne) etwa 11MB/s an Datentransfervolumen notwendig. Das klingt in der heutigen Zeit von 4G und bald 5G vielleicht nach nicht viel, aber das Backend muss die Daten von mehreren 10.000 oder gar 100.000 Fahrzeugen bewältigen, da kommen schnell 1-2TB/s zusammen. In der Zukunft werden die Bildsensoren eine höhere Auflösung haben, wodurch die Bildgröße nochmal zunehmen wird.
Smart Car mit leistungsfähigem Backend
Alle Bilder zum Backend zu senden ist auf Grund der enormen Datenmenge nicht handhabbar. Sollen die Vorteile beider Möglichkeiten, also wenig Datentransfer und die Auswertung der Bildinformationen mehrerer Fahrzeuge, genutzt werden, muss ein Kompromiss gefunden werden.
Im Fahrzeug erfolgt eine Vorverarbeitung der Bilder, so dass als Ergebnis vektoroptimierte Bilder an das Backend gesendet werden können. Diese sind im Vergleich zu den Komplettbildern nur ein winziger Bruchteil des benötigten Datenvolumens und können gut im Backend gehandhabt werden. Auf Basis dieser Vektorgrafiken können auf der Backend-Seite weitere Analysen, auch über die Daten mehrerer Fahrzeuge durchgeführt werden.
Um ein Smart Car mit leistungsfähigem Backend aufzubauen, muss in Zukunft die Car-IT eng mit der IT zusammenarbeiten, die für das Backend verantwortlich ist. Einseitige Definition von Anforderungen, sei es vom Backend zur Car-IT oder umgekehrt funktionieren nicht. Die Vorverarbeitung im Fahrzeug und die Nachbearbeitung im Backend müssen zusammenspielen, um neue Mustererkennungen einführen zu können.
Ein weiterer wichtiger Aspekt ist die Einführung eines Betriebssystems, das die Hardware sauber von der Software trennt, Echtzeitverarbeitung möglich macht und die einfache Installation neuer Pre-Prozessor-Einheiten erlaubt. Mit AGL (Automotiv Grade Linux) oder ROS (Robotic Operation System) stehen zwei Systeme am Start. Derzeit sind diese Betriebssysteme jedoch noch stark auf die Head-Unit und damit mehr auf Media Anwendungen fokussiert.
Mit einer Bildverarbeitung im Smart Car in Kombination mit einer flexiblen Datenanalyse und Deep Learning Algorithmen im Backend werden wir bei unserer leider doch häufig fehlende Achtsamkeit im Verkehr unterstützt und damit das Risiko das wir oder andere Verkehrsteilnehmer zu Schaden kommen minimiert. Für das autonom fahrende Auto wird es ohnehin eine Notwendigkeit sein.