Intelligent
entwickeln
Entwicklung von Multi-Kamera-Systemen für autonome Fahrzeuge
Bild: Avnet EM EMEA
Für die Entwicklung von Embedded Vision Systemen zur Steuerung autonomer Fahrzeuge bietet Avnet Silica Lösungen an, die mit Tools und Referenzdesigns gebündelt werden, um die Systementwicklung zu beschleunigen.
Eine der größten Herausforderungen bei der Entwicklung von Bildverarbeitungssystemen für autonome Fahrzeuge besteht im Umgang mit den sehr großen Datenmengen, die von mehreren Kameras und Sensoren erzeugt werden. Die in Fahrzeugen verwendeten Fahrerassistenzsysteme (ADAS) verfügen heute über mehrere Kameras sowie Radar- und LIDAR-Sensoren, um ein Sichtfeld von 360° zu erzeugen. Auf dem Weg hin zu mehr Fahrzeugautonomie wird die Anzahl der verwendeten Kameras weiter zunehmen, ihre Auflösung von 1 auf 8MP und die Bildraten von heute 10 bis 30 auf 60fps ansteigen. Ähnlich verhält es sich mit UAVs oder Drohnen, die ihre Umgebung mit mehreren Kameras erfassen und mit anwendungsspezifischen Sensoren ausgestattet sind. Die Visionsysteme müssen zudem 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 Vision- und Maschin Learning Algorithmen zur Objekterkennung, -klassifizierung und -verifizierung. Bildverarbeitungssysteme für Fahrzeuge müssen zudem Automotive-qualifiziert sein, d.h. die verwendeten Bauelemente ü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.
Die Software-Herausforderung
Auf der Softwareseite ist die Menge an Daten, die verwaltet werden muss, sehr groß und die Arbeit mit den heterogenen Multiprozessor-Systemen, die zur Verarbeitung dieser Daten erforderlich sind, vergrößert die Software-Komplexität nochmals. Zudem entwickelt sich Machine Learning extrem schnell, sodass es sehr wahrscheinlich ist, dass zentrale Code-Teile später im Entwicklungsprojekt überarbeitet werden müssen. Zuverlässigkeits- und Sicherheitsaspekte erschweren den Entwicklungsprozess zusätzlich. Eine der wesentlichen Aufgaben ist die Zusammenführung der Eingangssignale verschiedener Sensoren (Sensorfusion), z.B. Bildsensoren, LIDAR und Radarsensoren in einem Fahrzeug, um Defizite einzelner Sensoren zu korrigieren und genauere Ergebnisse zu ermöglichen. Ist die Endanwendung z.B. eine Kollisionsvermeidung, muss die Sensorfusion mit geringer Latenz erfolgen. Die zweite große Softwareaufgabe besteht in der Implementierung effizienter Machine Learning Algorithmen, um die Objekterkennung, -klassifizierung und -verifizierung durchzuführen, wie sie für ein autonomes Fahrzeug erforderlich ist.
Eine Entwicklungslösung
Die Entwicklung eines Bildverarbeitungssystems für autonome Fahrzeuge erfordert viel Experimentieren mit realen Daten und eine Systemoptimierung zwischen Hardware, Software, Computer Vision und Machine Learning 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 neue Entwicklungslösung beinhaltet ein Embedded Vision System mit mehreren Kameras und umfasst eine Entwurfsmethodik, die Hardwareplattform, Softwareumgebung, Treiber, sowie den Zugriff auf Beispiel-Algorithmen und Implementierungen für Computer Vision, Machine Learning und Implementierungen. Die Hardware unterstützt bis zu sechs Kameras, das aktuelle Design hat vier 2MP-Kameras und wird zukünftig um zwei weitere 8MP-Kameras erweitert. Es basiert auf einem Xilinx Zynq UltraScale+ MPSoC, der einen Quad-Core ARM Cortex-A53 64-Bit-Prozessor sowie eine FPGA Logikstruktur enthält. Die Kameras werden über Koaxialkabel mit bis zu 15m mit einem Deserialisierer für mehrere Kameras auf einer FPGA-Mezzanine-Karte (FMC) verbunden. Das Modul wird auf eine Platine aufgesteckt, auf der sich der MPSoC befindet. Die SoCs 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, z.B. über die Verwendung von IP-Blöcken von Xilinx oder Drittanbietern.