-
Die vorliegende Erfindung betrifft ein System und ein Verfahren zum Analysieren einer dreidimensionalen Umgebung, insbesondere einer Umgebung eines Fahrzeugs, mittels eines tiefen neuronalen Netzwerks. Die vorliegende Erfindung betrifft ferner ein Fahrzeug mit einem solchen System zum Analysieren seiner Umgebung.
-
In Kraftfahrzeuganwendungen, wie beispielsweise bei der Hinderniserfassung und Hindernisvermeidung bei autonomem Fahren oder adaptiver Frontbeleuchtung, wird die dreidimensionale Umgebung eines Fahrzeugs überwacht. Zum Überwachen der Umgebung ist das Fahrzeug typischerweise mit geeigneten Sensoren in Form von 3D-Scannern ausgestattet, wie beispielsweise mit sogenannten Lidar- (Light Detection and Ranging) Sensoren oder Radarsensoren. Bei der Lichterfassung und der Entfernungsmessung wird der Abstand zu Objekten bestimmt, indem die Umgebung und damit die darin befindlichen Objekte mit gepulstem Laserlicht beleuchtet werden und das reflektierte Laserlicht erfasst wird. Die Rücklaufzeit des Laserlichts ist ein Maß für den Abstand zur Oberfläche eines Objekts in der Umgebung. Eine Intensität der Reflexion kann verarbeitet werden, um weitere Information in Bezug auf eine Oberfläche bereitzustellen, die das Laserlicht reflektiert.
-
Mit einem 3D-Scanner wird ein Satz von Datenpunkten im dreidimensionalen Raum erzeugt, der als Punktwolke bezeichnet wird. Eine Punktwolke ist eine geometrische Datenstruktur. Jeder (Daten-) Punkt der Punktwolke entspricht einem physischen Punkt auf der Außenfläche eines Objekts in der Umgebung eines Fahrzeugs und hat typischerweise die Koordinaten X, Y und Z des physischen Punkts in einem dreidimensionalen kartesischen Koordinatensystem plus optionale zusätzliche Merkmale wie Farbe, Normalität usw. Ein 3D-Scanner gibt typischerweise die gemessene Punktwolke als Datenstruktur oder Datendatei aus. 1 zeigt ein Beispiel einer Punktwolke, die erhalten wird, wenn die dreidimensionale Umgebung eines Fahrzeugs durch einen Lidar-Sensor abgetastet wird. Im Allgemeinen sind Punktwolken nicht auf ein dreidimensionales Koordinatensystem beschränkt, sondern können eine höhere oder eine niedrigere Dimension aufweisen.
-
Um die Umgebung zu verstehen, ist es wichtig, die darin befindlichen Objekte zu erfassen, jeden Punkt eines Objekts semantisch zu segmentieren und die Objekte zu klassifizieren.
-
Objekterfassung, semantische Segmentierung und Klassifizierung sind als drei grundlegende Probleme/Aufgaben für ein Szenenverständnis in Computer Vision bekannt. Die Aufgabe der Objekterfassung besteht darin, alle Objekte vordefinierter Kategorien in einer Punktwolke zu identifizieren und sie mit orientierten Begrenzungsrahmen (sogenannten dreidimensionalen orientierten Begrenzungsrahmen - 3D OBB) zu lokalisieren/zu umschließen. Die Aufgabe der semantischen Segmentierung arbeitet mit einem feineren Maßstab als die Objekterfassung. Das Ziel der semantischen Segmentierung besteht darin, jedes Objekt zu zergliedern und jedem Punkt des Objekts eine Klassenkennzeichnung zuzuordnen. Während zum Beispiel bei der Objekterfassung ein Rahmen um einen erfassten Motorradfahrer und sein Motorrad gelegt wird, wird bei der semantischen Segmentierung den Punkten, die das Motorrad darstellen, eine Klassenkennzeichnung (Motorrad) zugeordnet, während den Punkten, die den Motorradfahrer darstellen, eine andere Klassenkennzeichnung (Motorradfahrer) zugeordnet wird. Die Klassifizierung zielt andererseits darauf ab, Objekte zu identifizieren und jedem Objekt eine Klassenkennzeichnung zuzuordnen, wie beispielsweise Baum oder Auto. In Computer Vision werden Objekterfassung, semantische Segmentierung und Klassifizierung als drei verschiedene Aufgaben behandelt, die normalerweise mit völlig unterschiedlichen Ansätzen gelöst werden.
-
Aufgrund der typischen Struktur einer Fahrzeugumgebung haben durch 3D-Scanner ausgegebene Umgebungspunktwolken normalerweise keine regelmäßige Form. Tiefe neuronale Netzwerke, wie z.B. konvolutionelle neuronale Netzwerke, die üblicherweise zur Analyse visueller Bilder verwendet werden, erfordern typischerweise Eingabedaten mit hochgradig regulären Formaten, wie beispielsweise solche von Bildgittern oder dreidimensionalen Voxeln, um Operationen wie z.B. Weight-Sharing und andere Kernel-Optimierungen auszuführen. Ein tiefes neuronales Netzwerk (DNN) ist ein künstliches neuronales Netzwerk mit mehreren verborgenen Schichten zwischen der Eingabeschicht und der Ausgabeschicht. Ein konvolutionelles neuronales Netzwerk (CNN) ist ein spezifischer Typ eines tiefen künstlichen neuronalen Feedforward-Netzwerks, das eine Variation von mehrschichtigen Perzeptronen verwendet, die derart gestaltet sind, dass eine minimale Vorverarbeitung erforderlich ist. Die verborgenen Schichten eines konvolutionellen neuronalen Netzwerks weisen typischerweise konvolutionelle Schichten, Pooling-Schichten, Fully-Connected-Schichten, Normalisierungsschichten und dergleichen auf. Um eine Punktwolke mittels einer tiefen neuronalen Netzwerkarchitektur zu analysieren, wird der Satz von Punkten einer Punktwolken daher typischerweise in reguläre 3D-Voxelgitter oder Sammlungen von Bildern, die auch als Ansichten bezeichnet werden, umgewandelt, bevor sie der Eingabeschicht des tiefen neuronalen Netzwerks zugeführt werden. Eine solche Umwandlung des Satzes von Punkten der Punktwolke führt jedoch zu unnötig umfangreichen Datensätzen, während darüber hinaus Quantisierungsartefakte eingeführt werden, die natürliche Invarianzen des Satzes von Punkten der Punktwolke überdecken könnten.
-
In „PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation“ von Charles R. Qi, Hao Su, Kaichun Mo und Leonidas J. Guibas, arXiv Preprint, arXiv: 1612.00593, 2. Dezember 2016, ist ein neuartiger Typ eines tiefen neuronalen Netzwerks, ein sogenanntes PointNet, beschrieben, das in der Lage ist, Punktwolken, wie sie beispielsweise durch einen Lidar-Sensor erzeugt werden, direkt zu verwenden, und das die inhärente Permutationsinvarianz der Punkte der Punktwolke in den Eingabedaten des PointNet geeignet berücksichtigt. 2, die aus der vorstehend erwähnten Referenz genommen ist, zeigt die typische Architektur eines PointNet 1. Wie aus 2 ersichtlich ist, weist das PointNet 1 ein Netzwerk für jede Aufgabe auf, wobei die Aufgaben in diesem spezifischen Fall Klassifizierung und semantische Segmentierung sind. Das heißt, das PointNet 1 weist ein Klassifizierungsnetzwerk 2 und ein Segmentierungsnetzwerk 3 auf, die einen großen Teil der Strukturen gemeinsam nutzen. Das Klassifizierungsnetzwerk 2 empfängt n Punkte einer Punktwolke als Eingabedaten, wendet Eingabe- und Merkmalstransformationen 4, 5 auf die Eingabedaten an und sammelt dann Punktmerkmale durch max-Pooling, d.h. durch eine max-Pooling-Schicht 6, als eine symmetrische Funktion zum Sammeln von Information von allen n Punkten in den globalen Merkmalen 7. Max-Pooling verwendet den Maximalwert jedes Neurons eines Clusters von Neuronen in der vorherigen Schicht. Die Ausgabedaten/Ausgabe-Score-Werte des Klassifizierungsnetzwerks 2 sind Klassifizierungs-Score-Werte für k verschiedene Klassen. Das Segmentierungsnetzwerk 3 des PointNet 1 ist tatsächlich eine Erweiterung des Klassifizierungsnetzwerks 2, das globale Merkmale 7 und lokale Merkmale 8 (Pro-Punkt-Merkmale) miteinander verknüpft, neue Pro-Punkt-Merkmale 9 basierend auf den kombinierten Punktmerkmalen extrahiert und Pro-Punkt-Score-Werte als Ausgabe-Score-Werte ausgibt, d.h. nxm Score-Werte für jeden der n Punkte und jede von m vordefinierten semantischen Unterkategorien. Die neuen Pro-Punkt-Merkmale 9 beinhalten sowohl lokale als auch globale Information.
-
In 2 steht die Abkürzung „mlp“ für mehrschichtiges Perzeptron, und die Zahlen in Klammern geben die Schichtgrößen an. Die Abkürzung „T-Net“ bezeichnet ein Mini-Netzwerk, durch das eine affine Transformationsmatrix vorhergesagt und direkt auf die Koordinaten der Eingabepunkte/Punkte der Punktwolke angewendet wird (vergl. die Eingabetransformation 4 in 2) oder durch die eine Merkmalstransformationsmatrix vorhergesagt wird, um Merkmale von verschiedenen Eingabepunktwolken auszurichten (vergl. die Merkmalstransformation 5 in 2). Das T-Net selbst ähnelt dem großen Netzwerk und besteht aus Basismodulen von punktunabhängigen Merkmalsextraktions-, max-Pooling- und Fully-Connected-Schichten. Es wird eine Batch-Normalisierung für alle Schichten mit einer Rectified Linear Unit (ReLU) als die Aktivierungsfunktion verwendet. Im Klassifizierungsnetzwerk 2 werden Dropout-Schichten für das letzte mehrschichtige Perzeptron (mlp) verwendet. Im Allgemeinen weist das PointNet 1 drei Hauptmodule auf: eine max-Pooling-Schicht als eine symmetrische Funktion zum Sammeln von Information von allen Punkten eines Punktsatzes, eine lokale und globale Informationskombinationsstruktur sowie zwei verbundene Ausrichtungsnetzwerke, die sowohl Eingabepunkte als auch Punktmerkmale ausrichten. Siehe „PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation“ von Charles R. Qi, Hao Su, Kaichun Mo und Leonidas J. Guibas, arXiv Preprint, arXiv: 1612.00593, 2. Dezember 2016, das hinsichtlich Details bezüglich der Netzwerkarchitektur des PointNet 1 hierin durch Bezugnahme aufgenommen ist.
-
Um auch lokale Strukturen zu erfassen, die durch die metrischen Raumpunkte einer Punktwolke inhärent hervorgerufen werden, wird in „PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space“ von Charles R. Qui, Li Yi, Hao Su und Leonidas J. Guibas, arXiv Preprint, arXiv: 1706.02413, 7. Juni 2017, die Verwendung eines hierarchischen neuronalen Netzwerks mit der Bezeichnung PointNet++ für die Klassifizierung und semantische Segmentierung vorgeschlagen. PointNet++ wendet das vorstehend beschriebene PointNet rekursiv auf eine verschachtelte Partitionierung des Eingabepunktsatzes an. Dadurch ist PointNet++ in der Lage, lokale Merkmale mit zunehmenden kontextabhängigen Maßstäben durch Ausnutzung der metrischen Raumabstände zu lernen. In PointNet++ können Merkmale von mehreren Maßstäben adaptiv kombiniert werden.
-
In beiden Ansätzen, dem ursprünglichen PointNet und PointNet++, wird das Training für Klassifizierung und semantische Segmentierung jedoch nicht parallel ausgeführt. Das heißt, sowohl PointNet als auch PointNet++ profitieren nicht von der induktiven Übertragung von Information, die durch Multi-Task-Lernen erhalten wird.
-
Ausgehend von dem oben genannten Stand der Technik liegt der Erfindung die Aufgabe zugrunde, ein System und ein Verfahren zum Analysieren einer dreidimensionalen Umgebung, insbesondere der Umgebung eines Fahrzeugs, die durch eine Punktwolke dargestellt wird, wie sie beispielsweise durch einen Lidar-Sensor erhalten wird, unter Verwendung von tiefem Lernen anzugeben, das Punktwolkendaten und Ressourcen effizient nutzt und wenig Redundanz aufweist.
-
Die Lösung dieser und weiterer Aufgaben der Erfindung, die im Verlauf der Beschreibung leichter ersichtlich werden, erfolgt durch ein System zum Analysieren einer dreidimensionalen Umgebung, wobei das System eine Sensoreinheit aufweist, die dafür konfiguriert ist, eine Punktwolke bereitzustellen, die die dreidimensionale Umgebung darstellt, und eine Verarbeitungseinheit zum Ausführen der Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung bezüglich der dreidimensionalen Umgebung. Die Sensoreinheit ist dafür konfiguriert, der Verarbeitungseinheit die Punktwolke zuzuführen. Die Verarbeitungseinheit weist einen Codierer, einen ersten Decodierer für die Aufgabe der Objekterfassung, einen zweiten Decodierer für die Aufgabe der semantischen Segmentierung und einen dritten Decodierer für die Aufgabe der Klassifizierung auf. Der Codierer ist dafür konfiguriert, die Punktwolke als Eingabedaten zu empfangen, Merkmale, die zum Ausführen der Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung erforderlich sind, von den Eingabedaten basierend auf einem tiefen neuronalen Netzwerk zu extrahieren und dem ersten Decodierer, dem zweiten Decodierer und dem dritten Decodierer die extrahierten Merkmale zuzuführen. Der erste Decodierer, der zweite Decodierer und der dritte Decodierer weisen jeweils ein neuronales Netzwerk auf, das für seine jeweilige Aufgabe dediziert ist. Die Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung sind wie oben definiert. Der Begriff „Klassifizierung“ bezieht sich insbesondere auf „Objektklassifizierung“. Das spezifische neuronale Netzwerk des ersten Decodierers, des zweiten Decodierers und des dritten Decodierers weisen jeweils insbesondere ein tiefes neuronales Netzwerk oder neuronale Netzwerkschichten eines tiefen neuronalen Netzwerks auf.
-
Die dreidimensionale Umgebung, die durch die vorliegende Erfindung analysiert werden soll, ist insbesondere die Umgebung eines Fahrzeugs, bei dem es sich insbesondere um ein sich bewegendes oder ein statisches Fahrzeug handelt. Zum Erfassen einer derartigen dreidimensionalen Umgebung weist die Eingabeeinheit des erfindungsgemäßen Systems vorzugsweise einen oder mehrere Lidar-Sensoren und/oder Radarsensoren auf oder besteht daraus. Es kann auch ein beliebiger anderer Sensortyp verwendet werden, der eine dreidimensionale Punktwolke bereitstellt.
-
Wie vorstehend dargelegt wurde, ist eine Punktwolke, die eine dreidimensionale Umgebung darstellt, ein Satz von (Daten) Punkten in einem dreidimensionalen kartesischen Koordinatensystem. D.h., eine Punktwolke wird typischerweise als ein Satz von 3D-Punkten {Pi 1 i = 1,..., n} dargestellt, wobei jeder Punkt Pi ein Vektor ist, der die X-, Y- und Z-Koordinaten des Punkts plus optionale Merkmalskanäle wie Farbe, normal und ähnlich enthält. Die Aufgabe des Codierers des erfindungsgemäßen Systems besteht darin, ungeordnete/unregelmäßige Punktsätze als Eingabe (Daten) zu verwenden und daraus inhaltsreiche, abstrakte Merkmale zu extrahieren, die alle notwendige Information zum Ausführen einer genauen Objekterfassung, semantischen Segmentierung und Klassifizierung enthält.
-
Gemäß einer bevorzugten Ausführungsform weist der Codierer des erfindungsgemäßen Systems ein konvolutionelles neuronales Netzwerk auf, dessen Eingabeschicht die Punktwolke direkt als Eingabedaten empfängt. D.h., es erfolgt keine Umwandlung der Punktwolke; der Punktsatz der Punktwolke wird durch die Eingabeschicht des konvolutionellen neuronalen Netzwerks des Codierers direkt empfangen. Mit anderen Worten werden die Ausgabedaten der Sensoreinheit dem konvolutionellen neuronalen Netzwerk, das den Codierer bildet, als Rohpunktwolkendaten zugeführt. Vorzugsweise basiert das konvolutionelle neuronale Netzwerk des Codierers auf einem PointNet, wobei das PointNet insbesondere ein PointNet ist, wie es in „PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation“ von Charles R. Qi, Hao Su, Kaichun Mo und Leonidas J. Guibas, arXiv Preprint, arXiv: 1612.00593, 2. Dezember 2016, oder in „PointNet++: Deep Hierarchical Feature Learning in Point Sets in a Metric Space“ von Charles R. Qui, Li Yi, Hao Su und Leonidas J. Guibas, arXiv Preprint, arXiv: 1706.02413, 7. Juni 2017 beschrieben ist. Insbesondere kann das konvolutionelle neuronale Netzwerk des Codierers beispielsweise die ersten acht Schichten des PointNet enthalten, wie es in „PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation“ von Charles R. Qi, Hao Su, Kaichun Mo und Leonidas J. Guibas, arXiv Preprint, arXiv: 1612.00593, 2. Dezember 2016, oder in „PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space“ von Charles R. Qui, Li Yi, Hao Su und Leonidas J. Guibas, arXiv Preprint, arXiv: 1706.02413, 7. Juni 2017 beschrieben ist. Die Schichten des PointNet, auf dem der Codierer basiert, sind grundsätzlich eine Gruppe gemeinsam genutzter Schichten, die alle dafür trainiert sind, Merkmale, die allen drei Aufgaben gemeinsam sind, d.h. Objekterfassung, semantische Segmentierung und Klassifizierung, in den durch die Punktwolke gegebenen Eingabedaten zu erfassen.
-
In Anbetracht der Anzahl von Punkten einer typischen Punktwolke, die die durch einen Lidar-Sensor gemessene Umgebung eines Fahrzeugs darstellt, weist die Eingabeschicht des konvolutionellen neuronalen Netzwerks des Codierers vorzugsweise etwa 20000 bis 40000 Knoten auf, ohne darauf beschränkt zu sein. Die Ausgabeschichten der dedizierten neuronalen Netzwerke der drei Decodierer der Verarbeitungseinheit weisen vorzugsweise zusammen etwa neun Knoten auf, ohne darauf beschränkt zu sein.
-
In der vorliegenden Erfindung wird vorteilhaft ein gemeinsamer Codierer verwendet, um Merkmale zu extrahieren, die zum erfolgreichen Ausführen der drei Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung von der Punktwolke erforderlich sind, die die direkten Eingabedaten für den Codierer bildet, wobei der gemeinsame Codierer auf einem tiefen neuronalen Netzwerk, insbesondere einem PointNet, basiert. Der Codierer ist trainiert, Merkmale zu erfassen, die allen drei Aufgaben gemeinsam sind. Das heißt, der Codierer teilt sein Wissen. Die Ausgabedaten des Codierers werden dann jedem der aufgabenspezifischen Decodierer zugeführt, d.h. jedem der separaten, dedizierten neuronalen Netzwerke/neuronalen Netzwerkschichten für die Objekterfassung, die semantische Segmentierung oder die Klassifizierung. Das heißt, der Codierer wird für die drei Aufgaben Objekterfassung, semantische Segmentierung und Klassifizierung gemeinsam verwendet. Anschließend werden drei separate aufgabenspezifische neuronale Netzwerke als Decodierer trainiert, um die Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung zu erfüllen. Die Rolle der separaten Decoder besteht darin, das spezielle Wissen zu erfassen, das für jede Aufgabe spezifisch ist und nicht Teil der gemeinsamen Merkmale ist, die durch den gemeinsamen Codierer extrahiert werden.
-
Der Codierer bildet zusammen mit den drei Decodierern ein tiefes neuronales Multi-Task-Netzwerk, wobei vorteilhafterweise kein redundantes paralleles Training und keine redundante parallele Verarbeitung ausgeführt wird. Das gesamte neuronale Multi-Task-Netzwerk, das den Codierer und die drei aufgabenspezifischen Decoder aufweist, kann Endto-End und mit wechselseitigen Beeinflussungen über alle drei Aufgaben trainiert werden. Dank des Transferlernens und des tiefen Lernens ist es möglich, die drei Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung unter Verwendung dieses einen tiefen neuronalen Multi-Task-Netzwerk zu implementieren, wie es durch die vorliegende Erfindung realisiert wird. Die Architektur des tiefen neuronalen Multi-Task-Netzwerks, das durch die drei dedizierten Decodierer und den gemeinsam genutzten Codierer gebildet wird, ist effizienter und weniger redundant als drei völlig separate neuronale Netzwerke, die jeweils neu aufgebaut werden, eines für die Objekterfassung, eines für die semantische Segmentierung und eines für die Klassifizierung, da normalerweise alle drei Aufgabe einige gemeinsame Merkmale gemeinsam nutzen, die unter den anderen Aufgaben wiederverwendbar sind.
-
Vorzugsweise ist das erfindungsgemäße System in einem Fahrzeug implementiert. Das heißt, gemäß einem weiteren Aspekt der Erfindung ist ein Fahrzeug angegeben, das ein erfindungsgemäßes System aufweist. Das Fahrzeug kann insbesondere für autonomes oder semi-autonomes Fahren konfiguriert sein.
-
Gemäß einem weiteren Aspekt der Erfindung ist ein Verfahren zum Analysieren einer dreidimensionalen Umgebung angegeben. Das erfindungsgemäße Verfahren weist die Schritte zum Bereitstellen einer Punktwolke, die die dreidimensionale Umgebung darstellt, als Eingabedaten für einen Codierer, Extrahieren von Merkmalen, die zum Ausführen der Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung erforderlich sind, von den Eingabedaten basierend auf einem tiefen neuronalen Netzwerk durch den Codierer, Bereitstellen der extrahierten Merkmale für einen ersten Decodierer für die Aufgabe der Objekterfassung, einen zweiten Decodierer für die Aufgabe der semantischen Segmentierung und einen dritten Decodierer für die Aufgabe der Klassifizierung, wobei der erste Decodierer, der zweite Decodierer und der dritte Decodierer jeweils ein neuronales Netzwerk aufweisen, das für seine jeweilige Aufgabe dediziert ist, und Ausführen der Aufgabe der Objekterfassung durch den ersten Decodierer, der Aufgabe der semantischen Segmentierung durch den zweiten Decodierer und/oder der Aufgabe der Klassifizierung durch den dritten Decodierer auf. Während der Trainingszeit verwendet das Netzwerk die Punktwolkendaten mit allen Kennzeichnungen für die drei Aufgaben. Mit anderen Worten, während der Trainingszeit werden alle drei Aufgaben gleichzeitig trainiert. Zum Testzeitpunkt können die Aufgaben individuell gesteuert werden, d.h., es müssen nicht alle Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung ausgeführt werden.
-
Jede der Aufgaben kann einzeln oder in Kombination mit einer oder beiden anderen Aufgaben ausgeführt werden. Die dreidimensionale Umgebung ist vorzugsweise die Umgebung eines Fahrzeugs, insbesondere eines sich bewegenden Fahrzeugs oder eines statischen Fahrzeugs. Die Punktwolke wird vorzugsweise durch einen Lidar-Sensor oder einen Radarsensor bereitgestellt, aus dem die Eingabeeinheit besteht oder den die Eingabeeinheit aufweist.
-
Gemäß einem weiteren Aspekt der Erfindung ist ein maschinenlesbares Medium angegeben, das Anweisungen enthält, die, wenn sie durch eine Maschine gelesen werden, veranlassen, dass eine Schaltung dieser Maschine das vorstehend beschriebene erfindungsgemäße Verfahren ausführt.
-
Wie vorstehend ausgeführt wurde, hat die vorliegende Erfindung den Vorteil, dass ein tiefes neuronales Multi-Task-Netzwerk durch einen gemeinsam genutzten Codierer und mehrere dedizierte Decodierer realisiert wird, die Ende-zu-Ende für mehrere Aufgaben trainiert werden können. Dies führt zu einem tiefen neuronalen Multi-Task-Netzwerk, das aus effizienteren und präziseren kleineren Netzwerken besteht, die den Codierer und die mehreren dedizierten Decodierer darstellen, die für eine Implementierung in eingebetteten Systemen besser geeignet sind. Aufgrund des hohen Informationsaustauschs zwischen den mehreren Aufgaben werden zuverlässigere Ausgaben der Aufgaben in Bezug auf Objekterfassung, semantische Segmentierung und Klassifizierung erzeugt, und die Notwendigkeit, für jede Aufgabe völlig separate Netzwerke zu trainieren (mit getrennter Verarbeitung der durch die Punktwolke gebildeten Eingabedaten, d.h. separaten Codierern) wird eliminiert. Durch die Verwendung von Multi-Task-Lernen wird außerdem die durch PointNet vorgenommene Generalisierung verbessert, das in „PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation“ von Charles R. Qi, Hao Su, Kaichun Mo und Leonidas J. Guibas, arXiv Preprint, arXiv: 1612.00593, 2. Dezember 2016 beschrieben ist. Darüber hinaus trägt das Erhöhen der Informationsmenge, die zwischen mehreren Aufgaben gemeinsam genutzt wird, dazu bei, dass das gesamte tiefe neuronale Multi-Task-Netzwerk, das durch die Verarbeitungseinheit des erfindungsgemäßen Systems realisiert wird, die mehrere Aufgaben geeignet generalisiert.
-
Die Art des Lernens, das mit dem durch den Codierer und die mehreren Decodierer gebildeten tiefen neuronalen Multi-Task-Netzwerk erzielt wird, das vorstehend definiert ist, bildet ein sogenanntes Multi-Task-Lernen (MTL), das ein Teilbereich des maschinellen Lernens ist, bei dem mehrere Lernaufgaben gleichzeitig gelöst werden, während Gemeinsamkeiten von und Unterschiede zwischen verschiedenen Aufgaben genutzt werden. Dies kann im Vergleich dazu, dass jedes Modell/neuronale Netzwerk separat trainiert wird, zu einer verbesserten Lerneffizienz und einer verbesserten Vorhersagegenauigkeit für die aufgabenspezifischen Modelle/neuronalen Netzwerke führen.
-
Hinsichtlich der Effizienz der Verknüpfung/Kombination der Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung so gut wie möglich miteinander in einem tiefen neuronalen Multitask-Netzwerk, wie es durch die vorliegende Erfindung realisiert wird, wird Folgendes angemerkt: Einerseits ist eine gute semantische Segmentierung in einigen Fällen für die Objekterfassung bereits ausreichend. Manchmal kann ein Objekt anhand der Segmentierungsergebnisse einfach durch Betrachten einer Gruppe von Punkten, die die gleiche Kennzeichnung haben, die durch die semantische Segmentierung zugeordnet wird, leicht identifiziert und lokalisiert werden. Vergl. beispielsweise „MultiNet: Real-time Joint Semantic Reasoning for Autonomous Driving“ von Marvin Teichmann, Michael Weber, Marius Zoellner, Roberto Cipolla und Raquel Urtasun, arXiv Preprint, arXiv: 1612:07695, 22. Dezember 2016 und „BlitzNet: A Real-Time Deep Network for Scene Understanding“ von Nikita Dvornik, Konstantin Shmelkov, Julien Mairal und Cordelia Schmid, arXiv Preprint, arXiv: 1708.02813, 9. August 2017. Andererseits können korrekt erfasste Objekte auch für eine semantische Segmentierung nützlich sein, wie der Erfolg schwach überwachter Segmentierungstechniken zeigt, die nur Begrenzungsrahmen-Annotationen lernen, wobei die Begrenzungsrahmen-Annotationen von der erfolgreichen Objekterfassung mit dreidimensional orientierten Begrenzungsrahmen (3D-OBBs) erhalten werden.
-
Mit der vorliegenden Erfindung können die Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung gleichzeitig gelöst werden, indem die effiziente und effektive Feedforward-Architektur eines tiefen neuronalen Multi-Task-Netzwerks mit einem gemeinsam genutzten Codierer verwendet wird, der auf einem tiefen neuronalen Netzwerk basiert, gefolgt von drei parallelen aufgabenspezifischen Decodierern, die jeweils durch aufgabenspezifische neuronale Netzwerkschichten gebildet werden. Das vorgeschlagene neuronale Multi-Task-Netzwerk, insbesondere sein Codierer, nimmt die 3D-Punktwolke direkt als Eingabedaten (ohne dass eine weitere Umwandlung der Punktwolke erforderlich ist), um gemeinsam die für die Objekterfassung, die semantische Segmentierung und die Klassifizierung wesentlichen Merkmale zu beurteilen und zu lernen und diese Aufgaben einzeln oder in Kombination miteinander auszuführen. Hierbei bezieht sich Klassifizierung auf die Klassifizierung von 3D-Objekten. Semantische Segmentierung bezieht sich vorzugsweise auf semantische Szenensegmentierung. Objekterfassung bezieht sich vorzugsweise auf eine Objekterfassung durch Zuweisen von 3D-Begrenzungsrahmen zu Objekten. In der vorliegenden Erfindung extrahiert der Codierer Merkmale, die allen drei Aufgaben gemeinsam sind und für alle drei Aufgaben wesentlich sind, wobei der Codierer durch die drei aufgabenspezifischen Decodierer gemeinsam genutzt wird, die sich stromabwärts vom Codierer verzweigen. Dadurch können alle Aufgaben gleichzeitig effizient gelöst werden, indem die Punkte der Punktwolke auf der globalen Objektebene über Begrenzungsrahmen und Klassenkennzeichnungen, auf der Punktebene über teilweise oder vollständig annotierte/gekennzeichnete Segmentierungskarten oder auf beiden Ebenen annotiert werden.
-
Weitere vorteilhafte Merkmale und Anwendungen der Erfindung finden sich in den Unteransprüchen sowie in der folgenden Beschreibung der Zeichnungen, die die Erfindung veranschaulichen. In den Zeichnungen bezeichnen in den verschiedenen Figuren gleiche Bezugszeichen gleiche oder ähnliche Elemente;
-
Es zeigen:
- 1 eine durch einen Lidar-Sensor ausgegebene beispielhafte Punktwolke, die die Umgebung eines Fahrzeugs darstellt;
- 2 das PointNet wie es in „PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation“ von Charles R. Qi, Hao Su, Kaichun Mo und Leonidas J. Guibas, arXiv Preprint, arXiv: 1612.00593, 2. Dezember 2016 beschrieben und dargestellt ist;
- 3 ein schematisches Diagramm zum Darstellen eines Systems zum Analysieren einer dreidimensionalen Umgebung, insbesondere einer Umgebung eines Fahrzeugs, gemäß einer ersten bevorzugten Ausführungsform der Erfindung; und
- 4 ein Ablaufdiagramm zum Darstellen eines Verfahrens zum Analysieren einer dreidimensionalen Umgebung gemäß dem System der ersten Ausführungsform der Erfindung.
-
Die 1 und 2 sind im einleitenden Teil der Beschreibung beschrieben worden. Hierzu wird auf die entsprechenden vorstehenden Textstellen verwiesen.
-
3 zeigt ein System 10 zum Analysieren einer dreidimensionalen Umgebung, insbesondere einer Umgebung eines Fahrzeugs, gemäß einer ersten bevorzugten Ausführungsform der Erfindung. Das System 10 weist eine Sensoreinheit 11, die dafür konfiguriert ist, eine Punktwolke als eine dreidimensionale Darstellung der Umgebung bereitzustellen (vergl. 1, die ein Beispiel zeigt), und eine Verarbeitungseinheit 12 zum Ausführen der Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung bezüglich der Punktwolke auf, die die dreidimensionale Umgebung darstellt. Die Sensoreinheit 11 gemäß der ersten Ausführungsform weist einen Lidar-Sensor auf, mit dem sie die dreidimensionale Umgebung misst/abtastet. Die Ausgabedaten der Sensoreinheit 11 liegen in der Form einer Punktwolke vor, die der Verarbeitungseinheit 12 von der Sensoreinheit 11 zur Weiterverarbeitung zugeführt wird. Das System 10 mit der Sensoreinheit 11 und der Verarbeitungseinheit 12 kann in einem Fahrzeug implementiert sein, wobei die Sensoreinheit 11 vorzugsweise dazu eingerichtet ist, die Umgebung vor dem Fahrzeug abzutasten. Das System ist Teil eines Fahrunterstützungssystems des Fahrzeugs.
-
Die Verarbeitungseinheit 12 weist einen Codierer 13, einen ersten Decodierer 14.1 für die Aufgabe der Objekterfassung, einen zweiten Decodierer 14.2 für die Aufgabe der semantischen Segmentierung und einen dritten Decodierer 14.3 für die Aufgabe der Klassifizierung auf. Die drei Decodierer 14.1, 14.2, 14.3 sind parallel und stromabwärts vom Codierer 13 angeordnet. Die Ausgabedaten des Codierers 13 bilden die Eingabedaten jedes der Decodierer 14.1, 14.2, 14.3.
-
Der Codierer 13 der Verarbeitungseinheit 12 empfängt die Punktwolke, die von der Sensoreinheit 11 ausgegeben wird, als Eingabedaten. Es wird keine zusätzliche Umwandlung der Punktwolke ausgeführt, sondern die Punktwolke wird dem Codierer 13 direkt zugeführt. Der Codierer 13 extrahiert dann Merkmale, die den Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung gemeinsam sind und für diese erforderlich sind, von der zugeführten Punktwolke. Zu diesem Zweck basiert der Codierer auf einem tiefen konvolutionellen neuronalen Netzwerk, vorzugsweise dem PointNet, das in „PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation“ von Charles R. Qi, Hao Su, Kaichun Mo und Leonidas J. Guibas, arXiv Preprint, arXiv: 1612.00593, 2. Dezember 2016 oder in „PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space“ von Charles R. Qui, Li Yi, Hao Su und Leonidas J. Guibas, arXiv Preprint, arXiv: 1706.02413, 7. Juni 2017 beschrieben ist. Der Codierer 13 weist insbesondere die ersten acht Schichten des vorstehend erwähnten PointNet auf. Der Codierer 13 führt die extrahierten Merkmale den nachfolgenden Decodierern 14.1, 14.2, 14.3 als ihre jeweiligen Eingabedaten zu.
-
Der erste Decodierer 14.1, der zweite Decodierer 14.2 und der dritte Decodierer 14.3 weisen jeweils vorzugsweise ein tiefes neuronales Netzwerk/neuronale Netzwerkschichten auf, die für die spezifische Aufgabe dediziert sind, die der jeweilige Decodierer ausführen soll. Das heißt, der erste Decodierer 14.1 weist spezifische neuronale Netzwerkschichten auf, die für die Aufgabe der Objekterfassung dediziert sind. Der erste Decoder 14.1 ersetzt somit herkömmlich verwendete 3D-OBB-Algorithmen durch eine neuronale Netzwerkarchitektur. Insbesondere fügen die neuronalen Netzwerkschichten des ersten Decodierers 14.1 dem Codierer 13 auf PointNet-Basis einen dritten Regressionsverlust zum Schätzen der Höhe eines dreidimensional orientierten Begrenzungsrahmens für jedes erfasste Objekt hinzu. Das mittlere Bild auf der rechten Seite in 3 zeigt ein Beispiel von Objekten, die in der Punktwolke erfasst werden, die die abgetastete dreidimensionale Umgebung darstellt, wobei jedes Objekt von einem orientierten Begrenzungsrahmen umgeben ist, wie er durch das System 10 gemäß der ersten Ausführungsform der Erfindung erzeugt wird.
-
Der zweite Decodierer 14.2 weist spezifische neuronale Netzwerkschichten auf, die für die Aufgabe der semantischen Segmentierung dediziert sind. Das untere Bild auf der rechten Seite in 3 zeigt ein Beispiel einer semantisch segmentierten Punktwolke der abgetasteten dreidimensionalen Umgebung, wie sie durch das erfindungsgemäße System 10 erzeugt wird. Ähnlicherweise weist der dritte Decodierer 14.3 spezifische neuronale Netzwerkschichten, die für die Aufgabe der Klassifizierung dediziert sind. Das obere Bild auf der rechten Seite in 3 zeigt Beispiele, die eine Objektklassifizierung veranschaulichen (beispielhaft als Auto oder Baum). Bezüglich der extrahierten Merkmale als Eingabedaten führen der erste Decodierer 14.1, der zweite Decodierer 14.2 und der dritte Decodierer 14.3 ihre jeweiligen Aufgaben derart aus, dass die Aufgaben Objekterfassung, der semantischen Segmentierung und der Klassifizierung gleichzeitig ausgeführt werden.
-
Insgesamt bilden der Codierer 13 und die drei Decodierer 14.1, 14.2, 14.3, die von der Ausgangsseite des Codierers abzweigen, ein tiefes neuronales Multi-Task-Netzwerk, das Ende-zu-Ende über alle Aufgaben mit wechselseitiger Beeinflussung trainiert werden kann, was zu einer effizienten und effektiven Netzwerkstruktur der Verarbeitungseinheit 12 führt.
-
4 zeigt ein Ablaufdiagramm zum Darstellen des erfindungsgemäßen Verfahrens zum Analysieren der dreidimensionalen Umgebung, beispielsweise einer Umgebung eines Fahrzeugs, wie es durch das in 3 dargestellte System 10 ausgeführt wird. In einem ersten Schritt S1 wird dem Codierer 13 der Verarbeitungseinheit 11 eine die dreidimensionale Umgebung darstellende Punktwolke zugeführt. Die Punktwolke wird durch die Sensoreinheit 11 des Systems 10 zugeführt, insbesondere durch den Lidar-Sensor, der in der Sensoreinheit 11 vorgesehen ist. Im nachfolgenden Schritt S2 extrahiert der Codierer 13, der vorzugsweise auf PointNet basiert, Merkmale, die den Aufgaben der Objekterfassung, der semantischen Segmentierung und der Klassifizierung gemeinsam sind und zum Ausführen dieser Aufgaben erforderlich sind, von den Eingabedaten, d.h. von der empfangenen Punktwolke. Im nachfolgenden Schritt S3 werden dem ersten Decodierer 14.1 für die Aufgabe der Objekterfassung, dem zweiten Decodierer 14.2 für die Aufgabe der semantischen Segmentierung und dem dritten Decodierer für die Aufgabe der Klassifizierung die extrahierten Merkmale zugeführt. Wie vorstehend beschrieben wurde, weisen der erste Decodierer 14.1, der zweite Decodierer 14.2 und der dritte Decodierer 14.3 jeweils neuronale Netzwerkschichten auf, die für ihre jeweiligen Aufgabe dediziert sind. In den letzten Schritten S4.1, S4.2, S4.3 führen der erste Decodierer 14.1, der zweite Decodierer 14.2 und der dritte Decodierer 14.3 ihre jeweiligen Aufgaben, d.h. Objekterfassung (Schritt S4.1), semantische Segmentierung (Schritt S4.2) und Klassifizierung (S4.3), bezüglich den durch den Codierer 13 zugeführten Merkmalen gleichzeitig aus.
-
Bezugszeichenliste
-
- 1
- PointNet
- 2
- Klassifizierungsnetzwerk
- 3
- Segmentierungsnetzwerk
- 4
- Eingabetransformation
- 5
- Merkmalstransformation
- 6
- max-Pooling-Schicht
- 7
- globale Merkmale
- 8
- lokales Merkmal/Pro-Punkt-Merkmal
- 9
- neue Pro-Punkt-Merkmale
- 10
- erfindungsgemäßes System
- 11
- Eingabeeinheit
- 12
- Verarbeitungseinheit
- 13
- Codierer
- 14.1
- erster Decodierer für die Aufgabe der Objekterfassung
- 14.2
- zweiter Decodierer für die Aufgabe der semantischen Segmentierung
- 14.3
- dritter Decodierer für die Aufgabe der Klassifizierung