AWS Germany – Amazon Web Services in Deutschland
Modulares Funktionsdesign für Fahrerassistenzsysteme mit AWS
von Shreyas Subramanian und Gopi Krishnamurthy, übersetzt durch Dirk Stahlecker
Autonome Fahrerassistenzsysteme (engl. «ADAS») haben sich in den letzten 10 Jahren von einfachen regelbasierten Systemen zu fortschrittlichen Fahrerassistenzsystemen entwickelt. Diese fortschrittlichen Systeme verwenden tiefe neuronale Netzwerke (engl. «Deep Neural Networks») und sollen zukünftig vollständig autonomes Fahren ermöglichen. Um diese Systeme zu trainieren, werden Petabyte an Daten und Tausende von Recheneinheiten (vCPUs und GPUs) benötigt.
Dieser Blogbeitrag beschreibt Entwicklungsansätze und Herausforderungen beim Aufbau von Fahrerassistenzsystemen. Verschiedene Designansätze werden vorgestellt. Insbesondere werden die verschiedenen Funktionseinheiten beschrieben, die beim Aufbau eines modularen Trainings- oder Prozesses-Designs benötigt werden.
Trainingsmethoden und -design von tiefen neuronalen Netzwerken
Autonome Fahrzeugsysteme nutzen mehrschichtige bzw. tiefe neuronalen Netzwerke. Es werden hauptsächlich zwei Architektur- oder Designansätzen unterschieden: Modulares Trainings-Design und Ende-zu-Ende Trainings-Design.
- Modulares Trainings-Design — Beim modularen Trainings- oder Prozess-Design wird das Fahrerassistenzsystem in einzelne Funktionseinheiten aufgeteilt. Beispielsweise: Wahrnehmung, Lokalisierung, Vorhersage und Planung. Dieser Designansatz wird von vielen Systemanbietern verwendet. Da das gesamte System in einzelne Module aufgeteilt ist, können diese unabhängig voneinander entwickelt und trainiert werden.
- Ende-zu-Ende Trainings-Design — Bei diesem Ansatz werden die Rohdaten der Sensoren in ein umfassendes mehrschichtiges neuronales Netzwerk-Modell eingegeben und das Modell erzeugt in einem Schritt die Fahrbefehle. Dieser Ansatz wird hauptsächlich in der wissenschaftlichen Forschung verwendet und nutzt monolithische Architekturen, typischerweise in Kombination mit der Methode des verstärkenden Lernens (engl. «Reinforcement Learning»), die auf einem Belohnungs- und Strafsystem basiert oder der des Imitationslernens (engl. «Imitation Learning»), bei dem der Fahrer beim Fahren des Fahrzeugs beobachtet wird. Die Gesamtarchitektur ist einfach und das Daten-Tagging entfällt, weil das System direkt aus den gesammelten Fahrdaten lernt. Allerdings ist das monolithische Netzwerk-Modell schwer zu interpretieren und zu diagnostizieren.
Zusätzlich zu diesen beiden Ansätzen untersuchen Forscher auch einen hybriden Ansatz, bei dem zwei verschiedene neuronale Netzwerke trainiert werden, die durch eine Zwischenrepräsentation miteinander verbunden sind.
Automatisierungsstufen
Die internationale SAE Norm SAE J3016 (ehemals: Society of Automotive Engineers) definiert sechs Stufen der Fahrzeugautomatisierung und ist die am häufigsten zitierte Quelle für Fahrzeugautomatisierung. Wie in der folgenden Tabelle dargestellt reicht er von Stufe 0 (keine Automation,) bis zur Stufe 5 (Vollautomatisierung).
Funktionseinheiten
Das folgende Diagramm bietet einen Überblick über das modulare Funktionsdesign eines Fahrerassistenzsystems.
Auf den höheren Automatisierungsstufen (Stufe 2 und höher) führt das Fahrerassistenzsystem verschiedene Funktionen aus:
- Datenerfassung — Das Fahrerassistenzsystem nutzt verschiedene Sensoren, um in Echtzeit zentimetergenaue Informationen der Umgebung zu sammeln. Im Fahrzeug werden verschiedene Messsensoren und Messprinzipien verbaut, die sich ergänzen und teilweise überlappen. Fahrerassistenzsysteme befinden sich immer noch einer frühen Entwicklungsphase und es gibt keine Standardisierung der verwendeten Sensoren und Geräte. Zusätzlich zu den hier aufgeführten Messverfahren verfügen Fahrzeuge möglicherweise auch über Navigationssysteme, nutzen Kartenmaterial und Trägheitsmesseinheiten (engl. «Inertial Measurement Units»), die Linear- und Winkelbeschleunigungen messen. Je nach Art des Fahrerassistenzsystems wird typischerweise eine Kombination der folgenden Messverfahren und Sensoren verwendet:
- Kamera — Messverfahren, das konzeptionell der menschlichen Wahrnehmung ähnelt. Es unterstützt eine hohe Auflösung hat aber eine schlechte Tiefen-schätzung und ist bei extremen Wetterbedingungen nur begrenzt einsetzbar.
- LiDAR —Teures Lasermessverfahren, das Umgebungsdaten als 3D-Punktwolke bereitstellt. Es bietet eine genaue Tiefen- und Geschwindigkeitsschätzung.
- Ultraschall — Ultraschallsensoren sind klein und kostengünstig. Der Einsatzbereich ist allerdings nur auf kurze Entfernungen begrenzt.
- Radar — Unterstützt große und kleine Entfernungen. Es liefert bei schlechten Sichtverhältnissen und extremen Wetterbedingungen gute Ergebnisse.
- Datenfusion – In einem Fahrerassistenzsystem werden unterschiedliche Messverfahren und Sensoren kombiniert. Dadurch werden spezifische Stärken ausgenutzt und Schwächen ausgeglichen. Um eine umfassende Darstellung der Fahrzeugumgebung zu erhalten, kombinieren Fahrerassistenzsysteme die Daten der verschiedenen Sensoren zu einem integrierten Datensatz. Dieser Datensatz wird dann verwendet, um das neuronale Netzwerk zu trainieren.
- Wahrnehmung — Fahrerassistenzsystem analysieren die von den Sensoren gesammelten Rohdaten, um Informationen über die Umgebung des Fahrzeugs inkl. bestehender Hindernisse, Verkehrsschilder und zusätzlicher Objekte zu erhalten. Dieser Schritt wird «Straßenszenenwahrnehmung» oder einfach «Wahrnehmung» genannt. Es beinhaltet sowohl das Erfassen der Objekte und auch ihre Klassifizierung z.B. als Umgebungsfahrzeuge, Fußgänger, Hindernisse, Ampeln etc. Dieses Funktionsmodul berechnet die Entfernung der Objekte, führt Fahrspurerkennung, Fahrspurkrümmungsschätzung und Bordsteinerkennung aus. Es detektiert ebenfalls abgedeckte Objekte. Die gewonnenen Informationen sind für die Pfadplanung und Routenoptimierung notwendig.
- Lokalisierung und Kartierung — (Teil des Moduls «Wahrnehmung») Um das Fahrzeug sicher zu bewegen, müssen die Fahrerassistenzsysteme die Position und Bewegung der erkannten Objekte bestimmen. Dazu erstellt das Fahrerassistenzsysteme eine 3D-Karte und aktualisiert in der Karte laufend die Position des Ego-Fahrzeugs und die der Umgebungsobjekte. Es verfolgt die erkannten Objekte und bestimmt die aktuellen Aufenthaltsorte. Fortschrittliche Systeme sagen die Kinematik der sich bewegenden Objekte voraus.
- Vorhersage— Mit den durch die Funktionsmodule gesammelten Informationen sagen Fahrerassistenzsysteme voraus, wie sich die unmittelbare Zukunft der Umgebung verändern wird. Das im Fahrzeug laufende und trainierte neuronale Netzwerk wird verwendet, um die Position des Ego-Fahrzeugs und die Interaktionen mit den umgebenden Objekten vorauszusagen. Dazu werden zeitaufgelöste Vorhersagen der Objekte unter Berücksichtigung von Position, Geschwindigkeit, Beschleunigung und des Rucks (engl. «jerk») durchgeführt. Das Modell kann somit potenzielle Verkehrsverstöße und Kollisionen oder Beinahe-Kollisionen vorhersagen.
- Pfadplanung — Das Funktionsmodul «Pfadplanung» ist dafür verantwortlich, die möglichen Fahrzeugrouten zu berechnen. Die Eingabedaten stammen von den Modulen «Wahrnehmung», «Lokalisierung» und «Vorhersage». Um die bestmögliche Route zu planen, verwenden Fahrerassistenzsysteme Position, Karten, GPS-Daten und Vorhersagen als Eingabe. Manche Systeme konstruieren eine Vogelperspektive in eine 3D-Karte, indem sie die Kinematik des Ego-Fahrzeugs und anderer Objekte auf einen statischen Pfad projizieren. Manche Systeme integrieren dabei auch Daten von anderen Fahrzeugen. Insgesamt ermittelt die Pfadplanungsfunktion die optimale Route mit dem Ziel, den Fahrerkomfort zu maximieren z.B. sanfte Kurven im Vergleich zu scharfen Kurven oder langsamer fahren und abbremsen, ohne abrupt an Stoppschildern anzuhalten.
- Kontrolle und Ausführung — Dieses Funktionsmodul nimmt die Ausgabedaten der Pfadplanung, und führt Aktionen zum Beschleunigen, Abbremsen, Stoppen und Drehen des Lenkrads aus. Ziel ist es, den geplanten Fahrverlauf beizubehalten.
- Trainingsprozess — Neuronale Netzwerke, die in Fahrerassistenzsystemen verwendet werden mit gesammelten Fahrzeugdaten trainiert. Das geschieht in der Regel offline und ausserhalb des Fahrzeugs. Für dieses Training werden Tausende von Recheneinheiten über einen längeren Zeitraum benötigt. Die erforderliche Datenmenge und die benötigte Rechenleistung variieren je nach Modellarchitektur und Systemanbieter. Um neuronale Netzwerke zu trainieren, werden markierte Daten benötigt, wobei dieses sogenannte «Tagging» teilweise manuell und teilweise automatisiert erfolgt. Personenbezogene Daten wie Nummernschild und Gesicht werden durch Unschärfe anonymisiert. Anbieter ergänzen die markierten Daten durch die Ergebnisse von Simulationen. Sie bieten die Möglichkeit zusätzliche Trainingsdaten für bestimmte Szenarien zu generieren, um damit Daten aus der realen Welt zu ergänzen.
Anbieter von Fahrerassistenzsystemen verwenden Softwarewerkzeuge, um solche Daten für Training, Feinabstimmungen und die Behandlung von Sonderfällen zu generieren. Die Genauigkeit der trainierten Modelle wird durch Offline-Simulationen überprüft. Einige Anbieter verwenden eine Strategie der inaktiven Modelle (engl. «dormant model strategy») und setzen diese inaktiven Kandidatenmodelle Seite an Seite mit den Produktionsmodellen ein. Obwohl die Vorhersagen der inaktiven Modelle nicht zur Steuerung des Fahrzeugs verwendet werden, helfen sie den Anbietern, die Genauigkeit des Modells in realen Szenarien zu überprüfen.
Herausforderungen
Tiefe neuronale Netzwerke für Fahrerassistenzsysteme müssen mit grossen Datenmengen trainiert werden. Um diese großen Datenmengen zu verarbeiten und um das Training durch Modellparallelität und Datenparallelität zu optimieren, wird eine skalierbare Recheninfrastruktur benötigt.
Training mit grossen Datensätzen
Durch die in den Fahrzeugen verbauten Sensoren sammeln Fahrerassistenzsysteme große Datenmengen und je nach Systemanbieter reicht die Fahrzeugflotte von einer Handvoll bis zu Tausenden von Fahrzeugen. Anbieter von Fahrerassistenzsystemen stehen vor folgenden typischen Herausforderungen:
- Erfassung, Vorverarbeitung und Speicherung von Petabyte an Daten — Jedes Fahrzeug sammelt mehr als 40 TB Daten pro 8 Stunden Fahrt.
- Identifizierung relevanter und repräsentativer Trainingsdaten aus grossen Datenmengen — Dies ist wichtig, um Verzerrungen in den Datensätzen zu reduzieren damit übliche Szenarien (z.B. Fahren mit normaler Geschwindigkeit und Berücksichtigung von Hindernissen) nicht zu einem Klassenungleichgewicht in den Trainingsdaten führen. Um eine bessere Genauigkeit zu erzielen, benötigen tiefe neuronale Netzwerke große Mengen an unterschiedlichen und qualitativ hochwertigen Trainingsdaten.
- Anzahl der Sonderfälle — Trainierte ML-Modelle müssen mit einer Vielzahl von Sonderszenarien umgehen können. Das ist wichtig, um die Sicherheit des Fahrerassistenzsystems zu gewährleisten.
- Trainingszeit — Angesichts der grossen Datenmengen beträgt die Trainingszeit oft mehrere Tage oder sogar Wochen. Das reduziert die Entwicklungsgeschwindigkeit und auch die Möglichkeit, im agilen Sinne, schnell zu scheitern und zu verbessern.
Verteiltes Training durch Datenparallelität
Kunden nutzen zum Training von Modellen und zum Aufbau eines durchgehenden ML Prozesses Amazon SageMaker. Amazon SageMaker ist ein vollständig verwalteter Service für maschinelles Lernen (ML). Um das Problem der grossen Datenmengen anzugehen, verwenden Sie in Amazon SageMaker die Funktionen für verteiltes Training, insbesondere die SageMaker Daten-Parallelismus Bibliothek. Durch die Verwendung von Datenparallelität wird ein großer Datensatz in mehrere kleinere Datensätze aufgeteilt die dann zum Training des Models an mehrere CPUs oder GPUs, sogenannte Knoten, gesendet werden. Jeder Knoten nutzt zum Training des Models eine eigene Kopie des neuronalen Netzwerks (DNN). Die Kommunikation zwischen den Knoten ist optimiert und die Ergebnisse der Knoten werden kombiniert. Ein Trainings Job, der Datenparallelität nutzt wird im SageMaker Python SDK durch minimale Änderungen am Trainingsskript ausgelöst. Amazon SageMaker Datenparallelität unterstützt die beliebten Deep-Learning-Frameworks PyTorch, PyTorch Lightening, TensorFlow und Hugging Face Transformer.
Die Hyundai Motor Company nutzt die Amazon SageMaker Funktionen zur Datenparallelität, um die Trainingszeit ihrer Modelle zu reduzieren und erzielt mit 8 Instanzen mit jeweils 8 GPUs eine Skalierungseffizienz von mehr als 90%. Das folgende Diagramm veranschaulicht die verwendete Architektur.
Weitere Details finden Sie in folgendem AWS Blog: Hyundai reduces ML model training time for autonomous driving models using Amazon SageMaker.
Mehr Informationen über das verteilte Training mit Amazon SageMaker finden Sie in folgenden AWS re:Invent Video von 2020: Fast training and near-linear scaling with DataParallel in Amazon SageMaker und in folgendem Blog: The science behind Amazon SageMaker’s distributed-training engines.
“Tagging” grosser Datensätze
Zum Training von neuronalen Netzwerken werden große Mengen gekennzeichneter Datensätzen benötigt. Häufige Herausforderungen vor denen unsere Kunden stehen ist: die Entwicklung von Werkzeugen zur Kennzeichnung (engl. «Tagging» oder «Labeling») von Bild-, Video- und Sensordaten (z. B. Daten von 3D-Punktwolken), das Erstellen von benutzerdefinierten ML-Prozessen für die Objekterkennung, die Durchführung von semantischen Segmentierungsaufgaben und der Transfer grosser Datenvolumen. Um diese Aufgaben durchzuführen stehen folgende AWS Werkzeuge zur Verfügung:
Daten, die in den Fahrzeugen gesammelt und vor Ort gespeichert wurden, werden mithilfe von Datenübertragungsservices wie AWS Storage Gateway, AWS Direct Connect, AWS DataSync, AWS Snowball oder AWS Transfer Family an AWS übertragen. Amazon SageMaker Ground Truth ist ein vollständig verwalteter Datenkennzeichnungsservice, der Flexibilität für die Erstellung und Verwaltung benutzerdefinierter ML-Prozesse bietet. Mit Ground Truth kennzeichnen Sie auch Bild-, Video- und Punktwolkendaten für Objekterkennungs- und Objektverfolgungsaufgaben und führen semantische Segmentierungen durch. Nachdem die Daten vorverarbeitet wurden (z. B. Verwischen von Gesichtern und Nummernschildern), ist der bereinigte Datensatz bereit für die Kennzeichnung durch Amazon SageMaker Ground Truth. Ground Truth unterstützt die Datenfusion von LiDAR-Daten mit Video-Daten von Digitalkameras. In Amazon Sage Maker Ground Truth wählen Sie, ob Sie die Daten manuell mit Hilfe von Amazon Mechanical Turk durch vertrauenswürdige Drittanbieter oder durch Ihre eigene Belegschaft kennzeichnen möchten.
In der folgenden Abbildung stellen wir eine Referenzarchitektur für die Vorverarbeitung von Daten mit AWS Batch und mit Amazon SageMaker Ground Truth zur Kennzeichnung der Datensätze vor.
Mehr Informationen finden sie hier: Field Notes: Automating Data Ingestion and Labeling for Autonomous Vehicle Development und Labeling data for 3D object tracking and sensor fusion in Amazon SageMaker Ground Truth.
Weitere Informationen über den Gebrauch von Ground Truth um Daten von 3D Punktwolken zu labeln, finden sie hier: Use Ground Truth to Label 3D Point Clouds.
Trainings-Infrastruktur
Je ausgereifter Fahrerassistenzsysteme werden, desto grösser und komplexer werden die Modelle, u.a. weil die neuronalen Netzwerke zusätzliche Extremszenarien berücksichtigen. Die dazu notwendigen Trainingsdaten werden durch Auswertung aufgezeichneter Fahrdaten und durch Simulation erzeugt. Im Endeffekt erfordert dies insgesamt mehr Rechenkapazität und eine Skalierbarkeit der Recheninfrastruktur.
Um die Rechenanforderungen an das Training von ML-Workloads zu gewährleisten, bietet Amazon SageMaker verschiedene Amazon EC2 Instance-Typen an. Sie sind jeweils für spezifische Workloads konzipiert und innerhalb eines Instance-Typs stehen unterschiedliche Instance-Grössen zur Verfügung. Sie unterscheiden sich in der Anzahl von vCPU-, GPU-, Arbeitsspeicher, Instance-Speicher, Netzwerkbandbreite und Block Storage (EBS) Bandbreite. Für eine vollständige und durchgängige Entwicklungsumgebung von Fahrerassistenzsystemen verlassen sich Unternehmen größtenteils auf die Amazon EC2 M-, C-, G- und P-Instance-Typen.
Einige unserer Kunden verwenden beispielsweise P-Instance-Typen, um NVIDIA-GPU-basierte Amazon Elastic Compute Cloud – Instances zu nutzen. Jede neue P-Instance-Type Generation verwendet die neueste NVIDIA-Technologie, z.B.: P2-Instances (Tesla K80), P3-Instances (Volta V100) und P4D-Instances (Ampere A100).
Die folgende Abbildung zeigt die besonders für AI/ML Anwendungen geeigneten und verfügbaren AWS Instance-Typen:
Verteiltes Training durch Modellparallelität
Falls die neuronalen Netzwerke so gross werden, dass sie für das Training nicht mehr in den Speicher einer GPU passen, hilft die Amazon SageMaker-Modell-Parallelismus-Bibliothek. Durch minimale Änderung am Trainingsskript teilt die Bibliothek ein TensorFlow oder PyTorch Modell auf mehrere GPUs und Instanzen auf.
MLOps
ML Modelle werden von Datenwissenschaftlern in den Entwicklungsumgebungen kontinuierlich weiter verbessert und freigegebene Modelle müssen möglicherweise an eine Flotte mit Tausenden von Fahrzeugen übertragen werden. Dazu benötigen Anbieter von Fahrerassistenz-systemen eine Reihe von integrierten MLOps Werkzeugen. Sie müssen folgende Aufgaben erfüllen:
- Erfassung und Transformation grosser Datenmengen
- Automatisierte Analyse und Bewertung von ML-Modellen
- Standardisierung von Prozessen bzw. Datenpipelines
- Möglichkeiten, ML-Experimente zu definieren und durchzuführen
- Überwachung der ML Modellleistung und -güte
- Aufbau eines stabilen Prozesses und Eliminierung manueller Eingriffe durch durchgängige Automatisierung
- Automatisierte Modellbereitstellung, um trainierte Modelle zügig in Millionen von Fahrzeugen einzusetzen
Amazon SageMaker unterstützt den gesamten ML-Lebenszyklus durch umfassende MLOps-Werkzeuge. Beispielsweise verwenden Datenwissenschaftler Amazon SageMaker Experiments um ML-Experimente und ML Modell Versionen zu organisieren, um Änderungen der Parameter, Konfigurationen und Ergebnisse nachvollziehbar zu machen. Amazon SageMaker Experiments hilft ML-Experimente einfach zu vergleichen und zu bewerten. Durch Amazon SageMaker Model Monitor wird die Qualität Ihrer ML-Modelle in Echtzeit überwacht. Sie richten automatische Benachrichtigungen ein, die versendet werden sobald Änderungen der Modellqualität (z.B. Daten Drift, Anomalien) festgestellt werden. Wenn es um die ML Prozess Orchestrierung geht, stehen u.a. folgende Optionen zur Wahl: SageMaker Pipelines SDK, AWS Step Functions, Amazon Managed Apache Airflow (Amazon MWAA) und Open-Source-Tools wie Kubeflow.
Zusammenfassung und Fazit
In diesem Beitrag haben wir die zwei grundsätzlichen Design-Ansätze und die verschiedenen Funktionseinheiten von Fahrerassistenzsystemen (engl. «ADAS») dargestellt. Wir stellen ein einheitliches Framework für den Aufbau eines modularen Trainings- oder Prozess-Designs vor und Beschreiben die Herausforderungen die sich beim Aufbau eines Fahrerassistenzsystems stellen. In den bereitgestellten Referenzarchitekturen, Fallstudien und Blogbeiträgen wird beschrieben, wie unsere Kunden Amazon SageMaker und andere AWS-Services verwenden, um ein skalierbares Fahrerassistenzsystem aufzubauen und die Herausforderungen zu bewältigen.
In einem späteren Beitrag werden wir uns eingehend mit den tiefen neuronalen Netzwerken (engl. DNN) befassen, die für solche Fahrerassistenzsysteme verwendet werden.