So halten autonome Fahrzeuge auch bei Dämmerung die Spur
Autonome Fahrzeuge haben Schwierigkeiten, bei Dämmerung und auf nasser Fahrbahn die Spur zu halten. Abhilfe könnten spezielle Bildverarbeitungs-Systeme schaffen.
Anbieter zum Thema

Das Interesse an autonomen Fahrzeugen steigt – es gibt aber eine große Kluft zwischen der Technik, mit der heutige selbstfahrende Autos gut beleuchtete, markierte Autobahnen entlang fahren, und der Technik die notwendig ist, um bei Regen auf einer unbeleuchteten, nicht markierten Landstraße bei Dämmerung sicher fahren zu können.
Große Datenmengen sind eine Herausforderung für die Hardware
Viele Unternehmen versuchen, diese Lücke zu schließen, indem sie anspruchsvolle Embedded-Bildverarbeitungssysteme entwickeln, die große Mengen an Umgebungsdaten erfassen können und dann maschinelles Lernen anwenden, um die nächste Etappe einer Fahrzeugroute zu planen. Solche Systeme erfordern ein Entwicklungssystem, das schnelles Experimentieren, eine Systemoptimierung und eine rasche Markteinführung ermöglicht. Eine der größten Herausforderungen bei der Entwicklung von Bildverarbeitungssystemen für autonome Fahrzeuge besteht im Umgang mit den immensen Datenmengen, die von mehreren Kameras und Sensoren erzeugt werden.
Die heutigen fortschrittlichen Fahrerassistenzsysteme (ADAS) haben mehrere Kameras sowie Radar- und LIDAR-Sensoren, um ein Sichtfeld von 360° zu erzeugen. Im Fahrzeug befinden sich häufig Kameras, die die Aufmerksamkeit des Fahrers und andere sicherheitsrelevante Faktoren erfassen. Auf dem Weg hin zu mehr Fahrzeugautonomie wird die Anzahl der Kameras zunehmen, die Auflösung wird von 1 auf 8 Megapixel und die Bildraten werden von heute 10 bis 30 auf 60 fps ansteigen.
Ähnlich verhält es sich mit UAVs (Unmanned Aerial Vehicles; unbemannte Luftfahrzeuge) oder Drohnen, die ihre Umgebung mit mehreren Kameras erfassen und mit anwendungsspezifischen Sensoren für Aufgaben wie landwirtschaftliche Inspektion, Sicherheit und Überwachung ausgestattet sind. Autonom geführte Roboter nutzen ebenfalls mehrere Kameras, sodass sie Situationen erfassen, Bewegungen verfolgen und Entscheidungen koordinieren können, um in belebten Umgebungen schnelle Reaktionen zu ermöglichen.
Bildverarbeitungssysteme in autonomen Fahrzeugen müssen einen hohen Grad an funktionaler Sicherheit und Zuverlässigkeit bieten und zahlreiche Funktionen unterstützen wie die Echtzeitausführung mit niedriger Latenzzeit, einen geringen Stromverbrauch, Flexibilität beim Arbeiten mit unterschiedlichen Kamerakonfigurationen und umfangreiche Möglichkeiten zur Implementierung von Bildverarbeitungs- und Maschinenlern-Algorithmen zur Objekterkennung, -klassifizierung und -verifizierung. Bildverarbeitungssysteme für Fahrzeuge müssen zudem Automotive-qualifiziert sein, das heißt, die verwendeten Bauelemente müssen über einen relativ langen Produktlebenszyklus und in Automotive-Qualitätsklassen erhältlich sein. Entwickler müssen daher sicherstellen, dass ein einfacher Übergang von den Entwicklungssystemen, auf denen sie ihre Hardware und Software entwickeln und testen, zu qualifizierten kommerziellen Systemen möglich ist.
Große Datenmengen fordern auch die Software
Auf der Softwareseite ist die Datenmenge, die verwaltet werden muss, sehr groß – und die Arbeit mit den heterogenen Multiprozessorsystemen, die zur Verarbeitung dieser Daten nötig sind, vergrößert die Software-Komplexität. Zudem entwickeln sich die Maschinenlern-Algorithmen extrem schnell, sodass es sehr wahrscheinlich ist dass zen-trale Codeteile später im Entwicklungsprojekt überarbeitet werden müssen. Zuverlässigkeits- und Sicherheitsaspekte erschweren den Entwicklungsprozess zusätzlich.
Eine der wesentlichen Aufgaben bei der Entwicklung von Bildverarbeitungssystemen für autonome Fahrzeuge ist die Zusammenführung der Eingangssignale verschiedener Sensoren (auch als Sensorfusion bezeichnet) – zum Beispiel Bildsensoren, LIDAR- und Radarsensoren in einem Fahrzeug, um Defizite einzelner Sensoren zu korrigieren und genauere Ergebnisse für die Positionsbestimmung und die Bewegungsdaten zu ermöglichen. Ist die Endanwendung zum Beispiel eine Kollisionsvermeidung, muss die Sensorfusion mit geringer Latenz erfolgen. Dies ist in der Praxis eine Herausforderung – aber die gute Nachricht ist, dass bereits seit Jahren entsprechende Lösungen entwickelt werden.
Die zweite große Softwareaufgabe besteht in der Implementierung effizienter Maschinenlern-Algorithmen, um die Objekterkennung, -klassifizierung und -verifizierung durchführen zu können, wie sie für ein autonomes Fahrzeug erforderlich ist, das seine Umgebung „verstehen“ und angemessen reagieren muss. Maschinelle Lernstrategien, insbesondere solche, die auf der Nachahmung des menschlichen Gehirns basieren, gibt es seit Jahrzehnten. Die stetige Zunahme der verfügbaren Rechenleistung und die Verfügbarkeit spezieller Prozessoren wie Grafikprozessoren (GPUs) und flexibler Rechenressourcen wie FPGAs (Field Programmable Gate Arrays) als Beschleuniger stellen mittlerweile genügend lokale Rechenleistung bereit, um diese Technologie nicht mehr nur im Labor, sondern auch in der Praxis einzusetzen. Die Verfügbarkeit sehr großer Datensätze, etwa von markierten Bildern, ermöglicht das Training der neuronalen Netze. Aktuelle Forschungen zeigen, dass das Trainieren eines neuronalen Netzwerks zwar viel Rechenleistung erfordert – es gibt jedoch Ansätze, die die Rechenlast trainierter neuronaler Netzwerke reduzieren können.
Eine Entwicklungslösung, basierend auf Kompromissen
Die Entwicklung eines Bildverarbeitungssystems für autonome Fahrzeuge erfordert viel Experimentieren mit realen Daten und eine Systemoptimierung zwischen Hardware, Software, computergestütztem Sehen und Maschinenlern-Aspekten des Designs. Entwickler benötigen daher Tools, die sie dabei unterstützen, Kompromisse zu finden, um die Entwicklungsdauer und das Entwicklungsrisiko zu minimieren.
Die hier vorgestellte Entwicklungslösung beinhaltet ein Embedded-Bildverarbeitungssystem mit mehreren Kameras. Sie umfasst eine Entwurfsmethodik, die Hardwareplattform, eine Softwareumgebung, Treiber, sowie den Zugriff auf Beispiel-Algorithmen und Implementierungen für computerunterstütztes Sehen und Maschinenlern-Algorithmen und Implementierungen.
Die Hardware (Bild 1, siehe Bildergalerie) kann bis zu sechs Kameras unterstützen. Das aktuelle Design meistert vier 2-Megapixel-Kameras. Diese Funktion wird in Zukunft um zwei weitere 8-Megapixel-Kameras erweitert werden. Das Design basiert auf einem Zynq UltraScale+ MPSoC von Xilinx, der einen 64-Bit-Quadcore-Prozessor ARM Cortex-A53 sowie eine FPGA-Logikstruktur enthält. Die Kameras werden über Koaxialkabel mit einer Länge von bis zu 15 m mit einem Deserialisierer für mehrere Kameras auf einer FPGA-Mezzanine-Karte (FMC) verbunden. Dieses Modul wird auf eine Platine aufgesteckt, auf der sich der MPSoC befindet.
Die Zynq UltraScale+ MPSoCs (Bild 2) sind mit verschiedenen CPUs und optional mit einer GPU und zusätzlichen Hardware-Videocodecs erhältlich. Sie bieten außerdem eine programmierbare FPGA-Logikstruktur, die sich als Hardwarebeschleuniger für rechenintensive Algorithmen oder für weitere Funktionen verwenden lässt – zum Beispiel über die Verwendung von IP-Blöcken von XILINX oder von Drittanbietern.
Die Entwurfsmethodik, basierend auf Software
Die Entwurfsmethodik basiert auf reVISION, einer Reihe von Softwareressourcen zur Entwicklung von Algorithmen, Anwendungen und Plattformen. Sie arbeitet mit aktuellen Entwicklungstools für das Design von Hardware- und Softwareanwendungen, darunter die SDSoC-Umgebung von Xilinx, PetaLinux und Bibliotheken für Computer-Sehen und Maschinenlernen. Bild 3 zeigt ein vereinfachtes Diagramm der gesamten Hardware-/Software-Architektur.
Die Entwicklungs-Toolchain unterstützt auch GStreamer, ein Pipeline-basiertes Multimedia-Framework, mit dem Entwickler verschiedene Medienverarbeitungssysteme verknüpfen können, um komplexe Workflows abzuschließen. Das Pipeline-basierte Design wurde bisher für das Erstellen von Anwendungen wie Video-Editoren und Transcodern und der Verteilung von Media Streams verwendet, die auch eine Grundlage für das Erstellen einer auf Deep-Learning-basierenden Analyse von Streaming-Media-Daten bilden.
Maschinenlern-Strategien bei Mehrkamerasystemen
Die Verwendung von Maschinenlern-Strategien bei Mehrkamerasystemen, einschließlich der Deep-Learning-Algorithmen mit mehreren internen Netzwerkebenen bedeutet für Bildverarbeitungssysteme mit mehreren Kameras, dass effiziente Möglichkeiten gefunden werden müssen, um auf die Systemressourcen mit sehr hoher Rechenleistung zugreifen zu können. Die programmierbare Logikstruktur des MPSoC von Xilinx bietet eine hohe dedizierte Rechenleistung – während die Toolchains, die das Unternehmen anbietet, sicherstellen, dass diese Ressourcen so effektiv wie möglich genutzt werden.
Neuere Forschungen haben gezeigt, dass es für die Ausführung von neuronalen Netzen möglich ist, die Rechenlast zu reduzieren, indem Matrixberechnungen, die nur eine sehr geringe Auswirkung auf das Ergebnis haben, aus der Netzwerkbeschreibung entfernt werden. Außerdem besteht die Möglichkeit, die Genauigkeit des verwendeten Zahlenraums zu verringern und 16- oder 8-Bit-Integer-Datentypen zu verwenden anstelle der komplexeren 32-Bit-Fließkomma-Typen. Für bestimmte Teile der Netzwerke kann sogar mit noch geringeren Auflösungen bis hin zur Binärdarstellung gearbeitet werden.
Xilinx hat das Unternehmen DeePhi Tech erworben, das Tools zur Implementierung und zur Optimierung von Deep-Learning-Algorithmen anbietet. Das DNNDK (Deep Neural Network Entwicklungskit) von DeePhi unterstützt die beliebtesten Entwicklungsplattformen für Deep-Learning-Netzwerke wie TensorFlow von Google oder Caffe als Eingabe. Diese Toolkits ermöglichen es Entwicklern, mit verschiedenen Typen und Konfigurationen von Algorithmen für Deep Learning zu experimentieren. Ihre Ausgabe wird dann in die DNNDK-Toolchain übernommen, die ein Graph-Komprimierungstool (bekannt als DECENT), einen Deep Neural Netzwerk-Compiler (DNNC) und Assembler (DNNAS) und eine Laufzeitumgebung für neuronale Netzwerke (N2Cube) umfasst. DeePhi hat auch Hardwarearchitekturen entwickelt, die für die Video- und Bilderkennung optimiert sind und mit XILINX SOCs verwendet werden können. Simulatoren und Profiler sind in der DNNDK Toolchain ebenfalls enthalten.
Fazit: Es besteht großes Interesse an der Entwicklung von Embedded-Bildverarbeitungssystemen für die Steuerung autonomer Fahrzeuge. Avnet Silica bietet Embedded-Bildverarbeitungslösungen, die mit Tools und Referenzdesigns gebündelt werden, um die Entwicklung dieser Bildverarbeitungssysteme zu beschleunigen (siehe Abbildung Seite 36). Durch die Neuheit einiger der verwendeten Techniken und die Notwendigkeit, mit realen Daten zu arbeiten, müssen Entwickler so schnell wie möglich mit Algorithmen und Systemoptimierungen experimentieren können. Das hier beschriebene Entwicklungssystem ermöglicht einen schnellen Start und erleichtert den Zugriff auf die Vorteile der Hardwarebeschleunigung und Modellkomprimierung.
* Michaël Uyttersprot ist Market Segment Manager Artificial Intelligence and Vision bei Avnet Silica
Artikelfiles und Artikellinks
(ID:45722893)