Mit der zunehmenden Einführung aktueller Fahrerassistenzsysteme (ADAS) setzt die Automobilindustrie weiterhin auf eine stärkere Automatisierung des Fahrens. Da die Weiterentwicklung von ADAS eine intelligentere Entscheidungsfindung voraussetzt, ist dieses Feld eng verbunden mit der Entwicklung neuronaler Netzwerke (NN) und Deep Learning (DL). Diese Technologien werden nun in Fahrerassistenzsystemen eingesetzt, um frühe Stadien des autonomen Fahrens zu ermöglichen: Level 1, 2 und schon bald auch 3 (Bild 1).

Bild 1: Stufen auf dem Weg zum autonomen Fahren.

Bild 1: Stufen auf dem Weg zum autonomen Fahren. NXP

Bis zur vollen Autonomie ist es jedoch noch ein weiter Weg, und ADAS ist für die Automobilhersteller ein immer noch schnell wachsendes Forschungsgebiet. Fahrerassistenzsysteme gab es schon lange bevor künstliche Intelligenz (KI) in den ersten Autos auftauchte. Letztlich wird von autonomem Fahren erst dann die Rede sein, wenn die KI das Auto völlig eigenständig fährt. Bis dahin sind viele halbautonome Funktionen zu erwarten.

Hauptziel Sicherheit und Komfort

Da das Hauptziel von Fahrerassistenzsystemen darin besteht, den Komfort und die Sicherheit des Fahrers zu erhöhen, erweist sich die Integration von maschinellem Lernen als sehr sinnvoll. Solche Systeme leiden nicht unter Müdigkeit oder langsamen Reaktionen – sie werden so konzipiert, dass sie jederzeit nach besten Kräften funktionieren. Fahrerassistenzsysteme kommen heute zum Einsatz, um dem Fahrer bestimmte Aufgaben abzunehmen beziehungsweise eine bessere Übersicht über die Straße und andere Verkehrsteilnehmer zu ermöglichen.

Ebenso arbeiten durch maschinelles Lernen unterstützte automatisierte Systeme zunächst dem Fahrer nur zu. Mit steigender Akzeptanz solcher Systeme wird sich der Nutzer immer stärker auf diese verlassen. Diese Veränderung wird graduell vonstattengehen und es ist auch kein plötzlicher Umschwung von rein manuell gesteuerten auf vollständig autonome Fahrzeuge zu erwarten.

Laut Global Market Insights setzt die Automobilbranche künstliche Intelligenz auf unterschiedliche Art und Weise ein. Zum Beispiel wird Deep Learning verwendet, um neuronale Netzwerke zu trainieren, damit sie reagieren und sich wie menschliche Fahrer verhalten können. Ein breiter Anwendungsbereich für KI sind Bilderkennungssysteme. Dies zeigt sich bereits heute in der Verkehrszeichenerkennung. Die Verarbeitung von Umgangssprache ist ein weiterer Bereich, in dem künstliche Intelligenz zum Einsatz kommt (Smart Speaker).

Maschinelles Lernen im Allgemeinen wird einen eigenen Sektor begründen und vermutlich verschiedene Systeme rund um das Fahrzeug abdecken, die derzeit mit Sensoren überwacht und mit Hilfe elektronischer Steuergeräte (ECUs) kontrolliert werden. Der Einzug des maschinellen Lernens in solche Systeme lässt Rückschlüsse (Inferenzen) zu, die wiederum zu effizienteren Fahrzeugen, geringeren Wartungskosten und einer längeren Fahrzeuglebensdauer führen.

Hardware-Plattform für intelligentere ADAS-Entwicklung

Bild 2: Das eIQ-Auto-Toolkit und seine Arbeitsabläufe von der Auswahl der Modellformate bis zur Ziel-Hardware.

Bild 2: Das eIQ-Auto-Toolkit und seine Arbeitsabläufe von der Auswahl der Modellformate bis zur Ziel-Hardware. NXP

Die Automobilindustrie muss natürlich extrem kostensensitiv agieren. Diesem Gesichtspunkt muss jede neue Technologie bei ihrer Einführung Rechnung tragen. Bei Fahrzeugen im gehobenen Segment implementieren Automobilhersteller Fahrerassistenzsysteme oft bereits zentral in Bezug auf die Steuergerätearchitektur. Das heißt, dass der Großteil der Datenverarbeitung und Rechenleistung auf einem einzigen Steuergerät stattfindet. Das bringt viele Vorteile wie eine optimierte Systemleistung und eine reduzierte Komplexität in der Entwicklung mit sich. Die Anforderungen an die Rechenleistung in einer zentralisierten Architektur sind jedoch hoch und setzen den Einsatz von Multicore-Prozessoren mit großer Chipfläche voraus. Ein alternativer Ansatz, der vor allem in vielen Mittelklassefahrzeugen zum Einsatz kommt, ist die Verwendung einer dezentralen Architektur, die auf weniger leistungsfähigen Prozessoren basiert.

Für auf einer zentralen Architektur basierende Lösungen bietet NXP seine Entwicklungsplattformen der Blue-Box-Reihe an. Die Plattform soll Entwicklern helfen, die an selbstfahrenden Fahrzeugen mit ADAS Level 4/5 arbeiten. Sie beinhaltet den Automotive Vision- und Sensor Fusion-Prozessor S32V234. Dieser ist auch für die Entwicklung halbautonomer Funktionen (Level 1 und 2) in einer dezentralen Architektur geeignet.

Der S32V234 basiert auf einem 64-Bit-Prozessorcluster mit vier ARM-Cortex-A53-Kernen und verfügt über einen Image-Signal-Prozessor (ISP), einen 3D-Grafikprozessor (GPU) und zwei APEX-2 Vision-Beschleuniger. Da er speziell für den Einsatz in Fahrerassistenzsystemen und autonomen Fahrzeugen vorgesehen ist, verbindet er Zuverlässigkeit in Automobilqualität mit der erforderlichen funktionalen Sicherheit und Informationssicherheit. Er eignet sich nicht nur für verschiedene ADAS-Anwendungen wie Objekterkennung und -identifizierung mit Rundumsicht-Systemen, sondern auch als Plattform für die Entwicklung von automobilen Systemen, die auf maschinellem Lernen und neuronalen Netzwerken basieren.

Software-Tools für die KI-Entwicklung

Wie die meisten Dinge besitzt auch KI eine Hierarchie. Was die verschiedenen beteiligten Technologien angeht, so stehen neuronale Netze auf der untersten Ebene. Dies sind die Algorithmen, mit denen Deep Learning implementiert wird: Beim Deep Learning werden die Algorithmen in Schichten strukturiert, um ein künstliches neuronales Netz zu schaffen, das selbstständig lernen und intelligente Entscheidungen treffen kann. Deep Learning wiederum ist als eine Teilmenge des maschinellen Lernens zu verstehen. Es bezieht sich auf Systeme, die Entscheidungen auf der Grundlage von Inferenzen (Rückschlüssen) treffen können: Algorithmen analysieren Daten, lernen aus diesen Daten und treffen auf Grundlage des Gelernten fundierte Entscheidungen. Darüber steht KI als allgemeinerer Begriff für die Beschreibung aller oben genannten Technologien.

Gegenüber dem maschinellen Lernen gilt Deep Learning in vielen Anwendungsbereichen wie Bild- und Spracherkennung, wo es nachweislich eine höhere Genauigkeit liefert, als bevorzugte Technologie. Wenn es auf eine bestimmte Problemstellung angewendet wird, kann Deep Learning auch einfacher zu implementieren sein als Systeme für maschinelles Lernen, da es keine manuell erstellten Funktionen und umfangreiche Kenntnisse über die entsprechenden Domänen erfordert, um die Qualität der Ergebnisse zu verbessern. So kommen für die Sensorfusion neuronale Deep-Learning-Netzwerke zum Einsatz, deren Ausgaben beispielsweise zur Routenplanung und für die Vorhersage des Fahrtverlaufs Verwendung finden.

In Bildverarbeitungssystemen werden neuronale Netze dazu herangezogen, Objekte wie Fußgänger und andere Fahrzeuge sowie Verkehrszeichen zu klassifizieren. In ähnlicher Weise kommt Deep Learning im Inneren des Autos zum Einsatz, von Fahrerüberwachungssystemen bis hin zur Steuerung des Antriebsstrangs.

Bild 3: Beispiel für eine auf Deep Learning basierende ADAS-Anwendung, wie sie für eine Optimierung auf die Ressourcen des S32V2-Prozessors partitioniert würde.

Bild 3: Beispiel für eine auf Deep Learning basierende ADAS-Anwendung, wie sie für eine Optimierung auf die Ressourcen des S32V2-Prozessors partitioniert würde. NXP

Für die Mehrzahl der Entwickler sind die Softwareabläufe für die Entwicklung solcher Systeme absolutes Neuland. Sie beinhalten mehrere Schritte, die mit dem Training des Modells mit qualifizierten Datensätzen beginnen. Für die Objekterkennung kann dies zum Beispiel einen Datensatz von Verkehrszeichen umfassen. Nach dem Training ist die Genauigkeit des Modells zu bewerten – eine Phase, die iterativ abläuft, bis die benötigte Genauigkeit erreicht ist. Bevor das trainierte Modell bereitgestellt werden kann, muss es für die Zielhardware optimiert sein. Diese Phase ist von entscheidender Bedeutung, da die theoretische Leistung nur dann erreichbar ist, wenn die physikalischen Ressourcen optimal genutzt werden.

Darüber hinaus eröffnet sich dadurch eine weitere Komplexitätsebene, da das Entwicklerteam nach der Konvertierung das Modell neu bewerten muss, um sicherzustellen, dass es weiterhin die benötigte Leistung und Genauigkeit liefert. Wenn während der Konvertierung Leistung verloren geht, kann es erforderlich sein, eine bereits durchlaufene Phase noch einmal zu modifizieren. Dieser iterative Prozess muss gemäß einem für Automotive-Qualität konzipierten Softwareentwicklungsablauf ablaufen, wenn Autohersteller die breitere Entwicklung von Fahrerassistenzsystemen mit Deep-Learning-Fähigkeiten umsetzen sollen.

Deep Learning für ADAS realisieren

Zwischen der Entwicklung des Modells und seiner Bereitstellung ist eine enge Verzahnung erforderlich. Dazu gehört die Optimierung des Modells für eine bestimmte Hardwareplattform. Die Bereitstellung einer solchen Integration wird die Entwicklung von Fahrerassistenzsystemen mit KI-Technologien beschleunigen. Für diesen Zweck hat NXP das eIQ-Auto-Toolkit entwickelt.

Das Tool adressiert dabei den Entwicklungszyklus (Bild 2). Im ersten Schritt wird ein auf einem vorhandenen Framework basierendes trainiertes Modell verwendet, welches die Konvertierung wie auch die Optimierung für die Zielhardware übernimmt. Der Benutzer kann dann die Leistung des konvertierten Modells anhand des bereitgestellten Feedbacks analysieren und eine Feinabstimmung des Modells vornehmen.

Sobald das konvertierte Modell als geeignet bewertet wird, konzentriert sich der weitere Ablauf auf die Zielhardware. In dieser Phase erfolgt die Integration mit dem Anwendungscode innerhalb des Software-Stacks unter Verwendung der vom Toolkit bereitgestellten Funktionen. Darüber hinaus sind im Toolkit weitere Optimierungsfunktionen für das Backend integriert. Die aus diesem Prozess resultierende Inferenzmaschine entspricht den Anforderungen der Automobilindustrie und ist konform mit Automotive SPICE.

Der oben beschriebene Prozess verwendet industrielle Standardmethoden für die Optimierung des Modells einschließlich Pruning, Quantisierung und Komprimierung. Da diese Prozesse das Verhalten des Modells verändern können, ist dieses in jeder Phase neu zu bewerten. Ein kritischer Teil des Ablaufs besteht darin, die verschiedenen Teile des Netzwerks auf die verfügbaren Prozessorressourcen zu partitionieren. Ursprünglich hat NXP das eIQ-Auto-Toolkit entwickelt, um den S32V2-Prozessor zu unterstützen. Dies bedeutet, dass eine optimierte Inferenzmaschine über ihre Ressourcen partitioniert werden kann, wie in Bild 2 dargestellt.

Zusammenfassung

Bilderkennung ist ein wesentlicher Bestandteil von Systemen halbautonomer Fahrzeuge, deren Entwicklung von entscheidender Bedeutung ist. Während andere Anwendungsbereiche Deep-Learning-Inferenzmaschinen beliebiger Größe in Kauf nehmen können, verfügt der Automobilmarkt über viel begrenztere Ressourcen. Bis heute wird künstliche Intelligenz in der Regel auf Systemen mit nahezu uneingeschränktem Zugriff auf Prozessor- und Speicherressourcen entwickelt und bereitgestellt. Um künstliche Intelligenz tiefer im Automobilsektor zu verankern, benötigen Entwickler eine Möglichkeit, Deep-Learning-Modelle für Embedded-Systeme mit begrenzten Ressourcen zu optimieren.

Die Verfügbarkeit von Softwareabläufen, die dazu erforderlich sind, ist nach wie vor begrenzt. Das eIQ-Auto-Toolkit ist ein Vertreter einer neuen Art von Tools, die den Einsatz von Deep Learning in ADAS im Laufe des gesamten Entwicklungszyklus unterstützen.