DE112019000048T5 - Bestimmung eines befahrbaren freiraums für autonome fahrzeuge - Google Patents

Bestimmung eines befahrbaren freiraums für autonome fahrzeuge Download PDF

Info

Publication number
DE112019000048T5
DE112019000048T5 DE112019000048.9T DE112019000048T DE112019000048T5 DE 112019000048 T5 DE112019000048 T5 DE 112019000048T5 DE 112019000048 T DE112019000048 T DE 112019000048T DE 112019000048 T5 DE112019000048 T5 DE 112019000048T5
Authority
DE
Germany
Prior art keywords
boundary
vehicle
sensor data
class
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019000048.9T
Other languages
English (en)
Inventor
Mansi Rankawat
Jian Yao
Dong Zhang
Chia-Chih Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE112019000048T5 publication Critical patent/DE112019000048T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/227
    • G05D1/249
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/192Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
    • G06V30/194References adjustable by an adaptive method, e.g. learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Electromagnetism (AREA)
  • Biomedical Technology (AREA)
  • Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

In verschiedenen Beispielen können Sensordaten erfasst werden, welche ein Gesichtsfeld eines Sensors eines Fahrzeugs, welches sich in einer physischen Umgebung befindet, repräsentieren. Die Sensordaten können auf ein Modell zum maschinellen Lernen aufgebracht werden, welches sowohl eine Gruppe von Begrenzungspunkten, die einer Begrenzung entsprechen, welche einen befahrbaren Freiraum von einem nicht befahrbaren Raum in der physischen Umgebung abteilt, als auch Klassenbezeichnungen für Begrenzungspunkte der Gruppe von Begrenzungspunkten, welche der Begrenzung entsprechen, berechnet. Orte in der physischen Umgebung können von der Gruppe der Begrenzungspunkte, welche durch die Sensordaten repräsentiert werden, bestimmt werden, und das Fahrzeug kann durch die physische Umgebung in dem befahrbaren Freiraum mittels der Orte und der Klassenbezeichnungen gesteuert werden.

Description

  • Hintergrund der Erfindung
  • Ein autonomes Antriebssystem sollte ein autonomes Fahrzeug ohne menschliche Aufsicht steuern und dabei ein akzeptables Sicherheitsniveau erreichen. Dies kann erfordern, dass das autonome Antriebssystem in der Lage ist, mindestens die funktionale Leistung eines aufmerksamen menschlichen Fahrers zu erreichen, der sich auf ein Wahrnehmungs- und Handlungssystem stützt, das eine unglaubliche Fähigkeit besitzt, bewegliche und statische Hindernisse in einer komplexen Umgebung zu erkennen und darauf zu reagieren. Zu diesem Zweck können hindernisfreie Umgebungsbereiche (z.B. ein befahrbarer Freiraum) bestimmt werden, da diese Informationen für das autonome Fahrsystem und/oder die Fahrerassistenzsysteme („Advanced Driver Assistance System“ ADAS) bei der Planung von Manövern und/oder Navigationsentscheidungen nützlich sein können.
  • Einige konventionelle Ansätze zur Bestimmung des befahrbaren Freiraums haben auf Bilderkennung basierende Techniken unter Verwendung tiefer künstlicher neuronaler Netze („Deep artificial Neural Networks“ DNN) verwendet. Diese konventionellen Ansätze haben beispielsweise ein DNN, wie beispielsweise ein faltendes neuronales Netz („Convolutional Neural Network“ CNN), verwendet, um eine semantische Segmentierung (z.B. pixelweise Klassifizierung eines Bildes) durchzuführen. Die semantische Segmentierung kann jedoch rechenintensiv sein, da jedem Pixel eines Bildes eine Klassifizierung zugeordnet wird, die eine umfangreiche Nachbearbeitung der Ausgaben des DNN erfordert, um die Ausgaben für das autonome Fahrsystem nutzbar zu machen. Ein Nachteil vieler konventioneller Ansätze, die semantische Segmentierung zur Bestimmung des befahrbaren Freiraums verwenden, ist daher ihre Unfähigkeit, in Echtzeit zu arbeiten. Bei einigen konventionellen Ansätzen - wie beispielsweise bei Anpassungen zur Reduzierung des Rechenaufwands für den Echtzeitbetrieb - geht die semantische Segmentierung auf Kosten der Bestimmung des befahrbaren Freiraums unterhalb eines Genauigkeitsgrades, der erforderlich ist, um ein akzeptables Sicherheitsniveau für autonomes Fahren aufrechtzuerhalten.
  • Darüber hinaus kann in anderen konventionellen Ansätzen ein CNN implementiert werden, das eine spaltenweise Regression durchführen kann. Diese konventionellen Ansätze können jedoch vollständig verbundene Schichten verwenden, die ähnlich wie die oben beschriebenen semantischen Segmentierungsaufgaben auch eine übermäßige Menge an Rechenressourcen verbrauchen können, wodurch die Fähigkeit der CNNs, in Echtzeit zu arbeiten, eingeschränkt wird. Darüber hinaus wird selbst dann, wenn CNNs zur Durchführung der spaltenweisen Regression verwendet werden, der Typ oder die Klasse der Begrenzung oder Barriere, die in jeder Spalte mittels Regression ermittelt wird, nicht identifiziert. Infolgedessen ist die Ausgabe der CNNs möglicherweise nicht aussagekräftig genug für ein autonomes Antriebssystem, um einen sicheren Betrieb eines autonomen Fahrzeugs zu ermöglichen. Ohne den vom CNN bereitgestellten Kontext einer Klasse einer Begrenzung - z.B. einer dynamischen Begrenzung, z.B. eines Menschen, im Gegensatz zu einer statischen Begrenzung, z.B. eines Bordsteins - kann das autonome Antriebssystem möglicherweise nicht in der Lage sein, den befahrbaren Freiraum so genau vorherzusagen, dass eine sichere Steuerung des autonomen Fahrzeugs gewährleistet ist. In einem solchen Beispiel kann das autonome Fahrsystem bei der Bestimmung des Navigationsziels die dynamische Natur der Begrenzung nicht berücksichtigen (z.B. kann eine dynamische Begrenzungsklasse den befahrbaren Freiraum bei einer Bewegung verringern). Dadurch kann das autonome Fahrzeug den bestimmten befahrbaren Freiraum zur Navigation durch die Umgebung nutzen, auch wenn der bestimmte befahrbare Freiraum nicht dem tatsächlichen befahrbaren Freiraum entspricht (z.B. aufgrund der Bewegung einer oder mehrerer dynamischer Begrenzungsklassen).
  • Zusammenfassung der Erfindung
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf die Bestimmung des befahrbaren Freiraums für autonome Fahrzeuge. Insbesondere werden Systeme und Verfahren offenbart, um eine oder mehrere Begrenzungen zu identifizieren, die den befahrbaren Freiraum (z.B. hindernisfreien Raum) vom nicht befahrbaren Raum (z.B. Raum mit oder über einem oder mehreren Hindernissen) in einer physischen Umgebung trennen, um dies von einem autonomen Fahrzeug beim Navigieren durch die physische Umgebung nutzen zu können.
  • Im Gegensatz zu herkömmlichen Systemen, wie sie vorstehend beschrieben sind, können Systeme der vorliegenden Offenbarung ein effizientes und genaues Modell zum maschinellen Lernen - wie beispielsweise ein faltendes neuronales Netz (CNN) - verwenden, um eine oder mehrere Begrenzungen einer Regression zu unterziehen, welche befahrbaren Freiraum und nicht befahrbaren Raum in einer physischen Umgebung trennen. So kann beispielsweise das CNN vorhandener Systeme ein vollständig faltendes Netz sein, d.h. das CNN darf keine vollständig verbundenen Schichten aufweisen, was die Effizienz der Systeme erhöht und gleichzeitig die Belastung der Computerressourcen reduziert. Darüber hinaus müssen die aktuellen Systeme durch Regression auf der/den Begrenzung(en) (z.B. Spalte für Spalte) nicht jedes Pixel eines Bildes separat klassifizieren - wie es herkömmliche Segmentierungsansätze erfordern -, wodurch die Notwendigkeit einer umfangreichen Nachbearbeitung der Ausgabe des CNN reduziert wird.
  • Im Gegensatz zu herkömmlichen Ansätzen kann das CNN der vorliegenden Systeme Kennzeichen bzw. Bezeichnungen für jede der Begrenzungsklassen vorhersagen, die der/den im Bild identifizierten Begrenzung(en) entsprechen. Infolgedessen können die vorliegenden Systeme diese Kontextinformationen (z.B. dynamische Begrenzung, statische Begrenzung, Fahrzeug, Fußgänger, Bordstein, Barriere usw.) nutzen, um ein autonomes Fahrzeug sicher durch die Umgebung zu navigieren, wobei die verschiedenen Begrenzungsklassen zu berücksichtigen sind, die den befahrbaren Freiraum beschreiben - wie z.B. ob sich die Begrenzungsklassen bewegen können, wie sie sich bewegen können, wohin sie sich bewegen, und/oder dergleichen.
  • Letztendlich können die vorliegenden Systeme ein CNN zur Erkennung von befahrbarem Freiraum implementieren, das - im Vergleich zu herkömmlichen Ansätzen - rechentechnisch kostengünstiger, kontextbezogener, informativer und effizient genug ist, um in Echtzeit zu arbeiten (z.B. bei 30 Bildern pro Sekunde oder mehr), und genau genug ist, um ein autonomes Fahrzeug sicher durch eine reale physische Umgebung zu navigieren.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur Bestimmung des befahrbaren Freiraums für autonome Fahrzeuge werden im Folgenden unter Bezugnahme auf die beigefügten Figuren ausführlich beschrieben.
    • 1A ist eine Darstellung eines Datenflussdiagramms zur Begrenzungsbestimmung gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 1B ist eine Veranschaulichung eines exemplarischen Modells zum maschinellen Lernen zur Begrenzungsidentifikation gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 1C ist eine weitere Darstellung eines exemplarischen Modells zum maschinellen Lernen zur Begrenzungsidentifikation gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 1D ist eine Darstellung einer exemplarischen Ausgabe eines Modells zum maschinellen Lernen zur Begrenzungsidentifikation gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 2 ist ein exemplarisches Flussdiagramm für ein Verfahren zum Bestimmen einer Begrenzung gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 3A ist ein exemplarisches Trainingsbild für ein maschinelles Lernmodell gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 3B ist ein weiteres exemplarisches Trainingsbild für ein maschinelles Lernmodell gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 4 ist ein exemplarisches Flussdiagramm für ein Verfahren zum Trainieren eines Modells zum maschinellen Lernen gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 5 ist ein weiteres exemplarisches Trainingsbild für ein Modell zum maschinellen Lernen gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 6 ist ein exemplarisches Flussdiagramm für ein Verfahren zum Erkennen mehrerer Begrenzungen gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7A ist eine Darstellung eines exemplarischen autonomen Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7B ist ein Beispiel für Kamerastandorte und Sehbereiche für das Beispiel eines autonomen Fahrzeugs der 7A gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7C ist ein Blockdiagramm einer exemplarischen Systemarchitektur für das exemplarische autonome Fahrzeug der 7A gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 7D ist ein Systemdiagramm für die Kommunikation zwischen (einem) Cloudbasierten Server(n) und dem exemplarischen autonomen Fahrzeug der 7A gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 8 ist ein Blockdiagramm einer exemplarischen Rechenvorrichtung, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
  • Detaillierte Beschreibung der Erfindung
  • Es werden Systeme und Verfahren zur Bestimmung des befahrbaren Freiraums für autonome Fahrzeuge vorgestellt. Die vorliegende Offenbarung kann in Bezug auf ein exemplarisches autonomes Fahrzeug 700 (alternativ hierin als „Fahrzeug 700“ oder „autonomes Fahrzeug 700“ bezeichnet) beschrieben werden, von dem ein Beispiel hierin mit Bezug auf die 7A-7D näher beschrieben wird. Die Offenbarung ist jedoch nicht auf autonome Fahrzeuge beschränkt und kann bei Fahrerassistenzsystemen (ADAS), Robotik, Virtual Reality (z.B. zur Bestimmung des Freiraums für die Bewegung eines Spielers) und/oder anderen Technologiebereichen verwendet werden. Daher ist die hierin enthaltene Beschreibung in Bezug auf das Fahrzeug 700 nur für beispielhafte Zwecke anzusehen und nicht dazu bestimmt, die Offenbarung auf einen bestimmten Technologiebereich zu beschränken.
  • System zum Erkennen von Begrenzungspunkten und Klassenkennzeichen
  • Wie hierin beschrieben ist, können einige konventionelle Ansätze zur Bestimmung des befahrbaren Freiraums auf tiefe neuronale Netze (DNN) zurückgreifen, um Pixel für Pixel Segmentierungsinformationen zu erzeugen. Segmentierungsansätze zur Bestimmung des befahrbaren Freiraums sind jedoch rechenintensiv und erfordern eine umfangreiche Nachbearbeitung, damit ein autonomes Fahrsystem die DNN-Ausgabe versteht und nutzt.
  • In konventionellen Systemen kann die spaltenweise Regression zur Bestimmung von Hindernispositionen zur Identifizierung des befahrbaren Freiraums verwendet werden. Diese konventionellen Systeme berücksichtigen jedoch nicht den einen oder anderen Typ oder die Klasse einer Begrenzung, welcher die Begrenzung bildet oder beschreibt, wodurch die Nützlichkeit der vom DNN ausgegebenen Begrenzungslage minimiert wird. So kann beispielsweise ohne Informationen über die Begrenzungsklasse (z.B. statisch, dynamisch, Fahrzeug, Barriere, Fußgänger usw.) die Lage der Begrenzung keine ausreichende Information bereitstellen, um einen befahrbaren Freiraum sicher zu bestimmen oder auf diesen zu reagieren (z.B. können Fußgänger, Fahrzeuge und andere dynamische Objekte den Standort ändern, während statische Objekte dies nicht können). Darüber hinaus verwenden diese konventionellen Ansätze DNNs, die erhebliche Rechenressourcen für die Implementierung benötigen und daher in Echtzeit-Implementierungen möglicherweise nicht effektiv arbeiten. Herkömmliche DNNs können beispielsweise mehrere vollständig verbundene Schichten verwenden - von denen jede eine Belastung für die Computerressourcen darstellt - um eine genaue Regression auf einer Begrenzung auszuführen. Infolgedessen kann der Prozess selbst dann nicht in Echtzeit ablaufen, wenn eine Begrenzung identifiziert wird, und - da die Begrenzungsklassen nicht identifiziert werden können - die Ausgabe kann vom System möglicherweise nicht in einer Weise verwendet werden, die es dem System ermöglicht, so sicher wie gewünscht zu arbeiten (z.B. weil das System die Variable der dynamischen Begrenzungsklassen, wie Fußgänger, Fahrzeuge, Tiere usw., nicht berücksichtigen kann).
  • Im Gegensatz zu diesen konventionellen Systemen können Systeme der vorliegenden Offenbarung ein DNN - wie beispielsweise ein faltendes neuronales Netz (CNN) - verwenden, um bei einer oder mehreren Begrenzungen eine Regression auszuführen, die bestimmt sind, um den befahrbaren Freiraum von dem nicht befahrbaren Raum zu trennen. Darüber hinaus kann das DNN eine oder mehrere Begrenzungsklassen vorhersagen, die mit der/den Begrenzung(en) verbunden sind. Durch die Verwendung von Regression anstelle von Segmentierung oder Klassifizierung kann zusätzlich zur Durchführung der Regression mit einem vergleichsweise kleineren Fußabdruck, einem weniger rechenintensiven DNN - z.B. durch das Nichtvorhandensein von vollständig verbundenen Schichten, durch das Einbeziehen von weniger vollständig verbundenen Schichten als herkömmliche Ansätze, durch die Verwendung eines vollständig gefalteten Netzes und/oder dergleichen - das DNN der vorliegenden Systeme in Echtzeit (z.B. mit 30 Bildern pro Sekunde (fps) oder mehr) arbeiten und gleichzeitig genaue und brauchbare Informationen ausgeben. So kann beispielsweise die Ausgabe des DNN von einer oder mehreren Schichten eines autonomen Fahr-Software-Stacks verwendet werden, wie beispielsweise einer Wahrnehmungsschicht, einer Weltmodell-Verwaltungsschicht, einer Planungsschicht, einer Steuerschicht, einer Betätigungsschicht und/oder einer anderen Schicht. Als Ergebnis der Ausgabe, die nicht nur eine Position der Begrenzung, sondern auch die Begrenzungsklassen beinhaltet, kann/können die Schicht(en) des autonomen Fahr-Software-Stacks in der Lage sein, die Position effektiver zu nutzen, indem Änderungen der Begrenzung als Ergebnis einer oder mehrerer Variablen berücksichtigt werden, die mit der/den Begrenzungsklasse(n) verbunden sind - wie z.B. ob die Begrenzungsklasse(n) statisch oder dynamisch, eine Person oder ein Fahrzeug, ein Bordstein oder ein Zementteiler usw. sind.
  • In einigen Beispielen kann die Ausgabe des DNN einem oder mehreren Glättungsprozessen unterzogen werden - wie beispielsweise der räumlichen Glättung und/oder der zeitlichen Glättung. Wie hierin beschrieben ist, da die Regression anstelle der Segmentierung verwendet werden kann, können weniger komplexe und robuste Nachbearbeitungstechniken verwendet werden, um genauere Ergebnisse zu erzielen. So kann beispielsweise die räumliche Glättung und/oder zeitliche Glättung relativ weniger Rechenressourcen erfordern als herkömmliche Nachbearbeitungstechniken für segmentationsbasierte Ansätze, und die Implementierung der räumlichen Glättung und/oder zeitlichen Glättung kann vergleichsweise weniger komplex sein.
  • Die zeitliche Glättung kann sowohl auf Begrenzungspunktpositionen als auch auf vom DNN ausgegebene Begrenzungsklassenbezeichnungen angewendet werden. Die zeitliche Glättung kann verwendet werden, um die Konsistenz des Ergebnisses im Laufe der Zeit zu erhöhen. Vorhergesagte Begrenzungspunktpositionen und/oder Begrenzungsklassenbezeichnungen von einem oder mehreren früheren Frames (z.B. durch Sensordaten dargestellte Bilder) können verwendet werden, um aktualisierte oder glatte Begrenzungspunktpositionen und/oder Begrenzungsklassenbezeichnungen eines aktuellen Frames zu berechnen. Infolgedessen können Begrenzungspunktpositionen und/oder Begrenzungsklassenbezeichnungen eines aktuellen Frames von früheren Vorhersagen von Begrenzungspunktpositionen und/oder Begrenzungsklassenbeschriftungen profitieren, was zu einer glatteren, weniger verrauschten Ausgabe für die Schicht(en) des autonomen Fahr-Software-Stacks führt.
  • Die räumliche Glättung mit einem Gaußschen Filter kann auf vorhergesagte Begrenzungspunkte angewendet werden. Dadurch können abrupte Veränderungen an den Begrenzungspunkten eliminiert oder geglättet werden. So können beispielsweise für eine vorhergesagte Begrenzungspunktposition in einer Spalte eines aktuellen Frames Werte aus einer oder mehreren benachbarten Spalten (z.B. bestimmt durch den Radius des Gaußschen Filters) verwendet werden, um die vorhergesagte Begrenzungspunktposition der Spalte zu aktualisieren oder zu glätten. Dieser Prozess kann für eine beliebige Anzahl von Spalten des aktuellen Frames verwendet werden und kann zu einer glatteren, weniger verrauschten Ausgabe führen, die von den Schichten des autonomen Fahr-Software-Stacks verwendet wird.
  • Die vorhergesagten Begrenzungspunktpositionen können Pixelpositionen innerhalb eines durch die Sensordaten dargestellten Bildes darstellen. Die Pixelpositionen können zweidimensionale (2D) Koordinaten im Bild sein (z.B. eine Spalte und eine Zeile). Die 2D-Koordinaten können in dreidimensionale (3D) oder 2D-Real-World-Koordinaten umgewandelt werden, die den Positionen in der physischen Umgebung des Fahrzeugs entsprechen (z.B. GPS-Koordinaten (Global Positioning System) oder andere GNSS-Koordinaten (Global Navigation Satellite System)). Um das Verhältnis zwischen den 2D-Koordinaten und den realen Koordinaten genau zu bestimmen, kann die 3D- zu 2D-Projektion verwendet werden. So kann beispielsweise eine Kamera oder (ein) andere(r) Sensor(en) mit einem oder mehreren intrinsischen (z.B. Brennweite, f, optisches Zentrum (uo, vo), Pixel-Seitenverhältnis, α, Schräglage, s, etc.) und/oder extrinsischen (z.B. 3D-Rotation, R, Translation, t, etc.) Kameraparametern kalibriert werden. Es können auch eine oder mehrere Bedingungen auferlegt werden, wie z.B. die Anforderung, dass der 3D-Punkt immer auf der Grundebene der Fahrbahn liegt (z.B. weil die Begrenzung, die den befahrbaren Freiraum beschreibt, Teil der Fahrbahn sein kann oder sich entlang dieser erstrecken kann). In einigen Beispielen kann einer oder mehrere der Parameter der Kamera dynamisch sein (z.B. durch Vibration, Bewegung, Ausrichtung usw.), und die 3D- zu 2D-Projektion kann dadurch dynamisch aktualisiert werden. In einigen Beispielen, wie beispielsweise bei der Verwendung von zwei oder mehr Kameras, können Stereobildverfahren verwendet werden, um eine Korrelation zwischen 2D-Punkten und 3D-Positionen in der realen Welt zu bestimmen.
  • In jedem Beispiel können die realen Koordinaten dann auf die 2D-Koordinaten der Pixel im Bild abgebildet werden, so dass bei der Bestimmung der Begrenzungspunkte die realen Koordinaten bekannt sind und vom Stack der autonomen Fahrsoftware (oder allgemeiner vom autonomen Fahrzeug) verwendet werden können. Genauer gesagt, kann ein Abstand von einer Kameramitte zur Begrenzung in der realen Umgebung bestimmt werden, und das autonome Fahrzeug kann den Abstand zu jedem der Begrenzungspunkte als befahrbaren Freiraum für den Betrieb nutzen.
  • Beim Training des DNN können Ground-Truth-Daten für die Verwendung im Training generiert werden. So können beispielsweise Anmerkungen erzeugt werden (z.B. von einem Menschen, von einer Maschine oder einer Kombination davon). Die Anmerkungen können eine Bezeichnung für ein Pixel für jede Spalte innerhalb eines Trainingsbildes beinhalten. Das Pixel kann das erste Pixel in dieser bestimmten Spalte sein (beginnend mit dem unteren Teil des Bildes und sich nach oben bewegend -- z.B. vom dichtesten zum entferntesten bezüglich des Fahrzeugs in der realen Umgebung), das einer Begrenzung entspricht, die den befahrbaren Freiraum vom nicht befahrbaren Raum trennt. Die Anmerkungen können auch Angaben zu Klassen enthalten, die durch unterschiedliche Farben, Formen und/oder andere Attribute der Kennzeichen gekennzeichnet sein können. Infolgedessen kann das DNN lernen, nicht nur Begrenzungspunktpositionen, sondern auch die zugehörigen Begrenzungsklassenbezeichnungen für jede der Begrenzungspunktpositionen zu identifizieren. In einigen Beispielen, wie z.B. wenn zwei oder mehr Begrenzungen kommentiert werden, kann in jeder Spalte des Bildes ein Kommentar auf einer Anzahl von Pixeln vorhanden sein, die der Anzahl der Begrenzungen entspricht, für die das DNN trainiert wird. Darüber hinaus können die verschiedenen Begrenzungen eine zusätzliche Bezeichnung aufweisen, wie beispielsweise befahrbar (oder überfahrbar) oder nicht befahrbar (oder nicht überfahrbar). So kann beispielsweise ein Bordstein vor einer Einfahrt oder einem Bürgersteig eine überfahrbare Grenze sein, während ein Bordstein unmittelbar vor einem Gebäude eine nicht überfahrbare Grenze sein kann. Als solches kann das DNN lernen, befahrbare von nicht befahrbaren Begrenzungen zu unterscheiden, so dass das autonome Fahrzeug in Notsituationen oder dergleichen bestimmen kann, die befahrbare Begrenzung zu überqueren, um eine Kollision mit einem Objekt oder einer Begrenzung zu vermeiden. Das DNN ist nicht auf die Berechnung von überfahrbaren und nicht überfahrbaren Begrenzungen beschränkt und kann zusätzlich oder alternativ eine beliebige Anzahl von Begrenzungen mit einer beliebigen Anzahl von verschiedenen Klassenzuweisungen berechnen.
  • Während des Trainings können eine oder mehrere Verlustfunktionen verwendet werden, um die Ergebnisse oder Vorhersagen des DNN mit den Ground-Truth-Daten zu vergleichen. So kann beispielsweise eine erste (Begrenzungs-)Verlustfunktion für die vom DNN ausgegebenen Begrenzungspunktpositionen und eine zweite (Bezeichnungs-)Verlustfunktion für die vom DNN ausgegebenen Klassenbezeichnungen verwendet werden. In einigen Beispielen kann die Begrenzungsverlustfunktion eine L1-Verlustfunktion und die Bezeichnungsverlustfunktion eine Kreuzentropie-Verlustfunktion aufweisen. Eine gewichtete Kombination aus der Begrenzungsverlustfunktion und der Bezeichnungsverlustfunktion kann für eine endgültige Verlustberechnung verwendet werden. In einigen Beispielen kann ein Gewichtsverhältnis zwischen der Begrenzungsverlustfunktion und der Bezeichnungsverlustfunktion verwendet werden (z.B. 1:10, wobei 1 für die Begrenzung und 10 für die Bezeichnung steht). Es kann ein Auto-Gewichtsschema verwendet werden, das die Kostengewichte adaptiv oder automatisch anpasst, wenn die Zielverhältnisse für die gewichteten oder endgültigen Verluste angegeben werden. Das automatische Gewichtsschema kann ständig, regelmäßig (z.B. einmal pro Trainingsperiode) und/oder in einem anderen Intervall aktualisiert werden, um die Gewichte festzulegen.
  • Während des Trainings können eine oder mehrere Metriken verwendet werden, um die Leistung eines bestehenden Systems zu bewerten. So können beispielsweise ein relativer Abstand, eine Genauigkeit, eine Bezeichnungsgenauigkeit, eine Glattheit, eine gewichtete Freiraumgenauigkeit („Weighted Free-space Precision“ WFP) und/oder ein gewichteter Freiraumrückruf („Weighted Free-space Recall“ WFR) verwendet werden. Der relative Abstand kann den Mittelwert der absoluten Abweichung zwischen einer Ground-Truth-Begrenzungskurve und einer vorhergesagten Begrenzungskurve messen. Eine Genauigkeit kann die Überschreitung der vorhergesagten Begrenzungskurve von der Ground-Truth- Begrenzungskurve messen (z.B. das Ausmaß des nicht befahrbaren Raums, der vom DNN als befahrbarer Freiraum bestimmt wurde). Die Bezeichnungsgenauigkeit kann die Genauigkeit der vorhergesagten Begrenzungsklassenbezeichnungen im Vergleich zu den Ground-Truth-Klassenbezeichnungen messen. Die Glattheit kann die Glattheit der vorhergesagten Kurve messen (z.B. den Mittelwert der Differenz zwischen aufeinanderfolgenden Begrenzungspunkten der Begrenzungskurve). Die WFP kann eine Genauigkeitsberechnung beinhalten, bei der nur ein Überschätzen verwendet wird, so dass, wenn kein Überschätzen vorliegt, die Genauigkeit 1,0 betragen kann (z.B. eine nahezu perfekte Übereinstimmung zwischen Ground-Truth und Vorhersage). Der WFR kann eine Genauigkeitsberechnung beinhalten, bei der nur eine Unterschreitung verwendet wird, so dass, wenn es keine Unterschreitung gibt, die Genauigkeit 1,0 betragen kann (z.B. eine nahezu perfekte Übereinstimmung zwischen Ground-Truth und Vorhersage). Für WFP und WFR kann in einigen Beispielen das Gewicht für verschiedene Begrenzungsklassenbezeichnungen unterschiedlich sein, so dass einige Begrenzungsklassen oder -typen ein höheres zugeordnetes Gewicht haben. So können beispielsweise Fußgänger ein höheres Gewicht als ein Bordstein haben, weil die Genauigkeit in Bezug auf einen Menschen relevanter ist als in Bezug auf einen Bordstein.
  • 1A eine Darstellung eines Datenflussdiagramms für ein Verfahren 100 zur Begrenzungsidentifikation gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 100 zur Begrenzungsidentifikation kann das Erzeugen und/oder Empfangen bzw. Erfassen von Sensordaten 102 von einem oder mehreren Sensoren des autonomen Fahrzeugs 700 beinhalten. Die Sensordaten 102 können Sensordaten von jedem der Sensoren des Fahrzeugs 700 (und/oder anderen Fahrzeugen oder Objekten, wie beispielsweise Robotervorrichtungen, VR-Systemen, AR-Systemen usw., in einigen Beispielen beinhalten). In Bezug auf die 7A-7C können die Sensordaten 102 die Daten beinhalten, die beispielsweise erzeugt werden von den Sensoren für globale Navigationssatellitensysteme (GNSS) 758 (z.B, Global Positioning System Sensor(en), RADAR-Sensor(en) 760, Ultraschallsensor(en) 762, LIDAR-Sensor(en) 764, Trägheitsmesseinheit(en) (IMU) Sensor(en) 766 (z.B. Beschleunigungssensor(en), Gyroskop(e), Magnetkompass(e), Magnetometer, etc.), Mikrofon(e) 796, Stereokamera(s) 768, Weitwinkelkamera(s) 770 (z.B, Fisheye-Kameras), Infrarot-Kamera(s) 772, Surround-Kamera(s) 774 (z.B. 360-Grad-Kameras), Lang- und/oder Mittelbereichskamera(s) 798, Geschwindigkeitssensor(en) 744 (z.B. zur Messung der Fahrzeuggeschwindigkeit 700), Vibrationssensor(en) 742, Lenksensor(en) 740, Bremssensor(en) (z.B. als Teil des Bremssensorsystems 746) und/oder andere Sensortypen.
  • In einigen Beispielen können die Sensordaten 102 die Sensordaten beinhalten, die von einer oder mehreren nach vorne gerichteten Kameras (z.B. (einer) mittig oder in der Nähe der Mitte montierten Kamera(s)) erzeugt werden, wenn sich das Fahrzeug 700 vorwärts bewegt, wie beispielsweise einer Weitwinkelkamera 770, einer Surround-Kamera 774, einer Stereokamera 768 und/oder einer Weitbereichs- oder Mittelbereichskamera 798. Wenn sich das Fahrzeug 700 im Rückwärtsgang bewegt, können eine oder mehrere nach hinten gerichtete Kameras verwendet werden. In einigen Beispielen können eine oder mehrere zur Seite gerichtete Kameras und/oder eine oder mehrere Parkkameras verwendet werden, um den befahrbaren Freiraum seitlich des Fahrzeugs 700 und/oder unmittelbar neben dem Fahrzeug 700 zu bestimmen. Mehr als eine Kamera oder ein anderer Sensor (z.B. LIDAR-Sensor, Radarsensor usw.) können verwendet werden, um mehrere Sichtfelder zu integrieren (z.B. die Sichtfelder der Weitbereichskameras 798, der nach vorne gerichteten Stereokamera 768 und/oder der nach vorne gerichteten Weitwinkelkamera 770 aus 7B). In jedem Beispiel können die Sensordaten 102, die von den Modellen zum maschinellen Lernen 104 verwendet werden, die Sensordaten 102 sein, die als am nützlichsten zum Bestimmen von befahrbarem Freiraum und nicht befahrbarem Raum in einer aktuellen Fahrtrichtung des Fahrzeugs 700 bestimmt sind.
  • Die Sensordaten 102 können Bilddaten, die ein oder mehrere Bilder darstellen, Bilddaten, die ein Video darstellen (z.B. Video-Schnappschüsse) und/oder Sensordaten, die Sichtfelder von Sensoren darstellen (z.B. LIDAR-Daten von LIDAR-Sensor(en) 764, RADAR-Daten von RADAR-Sensor(en) 760, etc.) beinhalten. In einigen Beispielen können die Sensordaten 102 in das/die Modell(e) zum maschinellen Lernen 104 eingegeben und von dem/den Modell(en) zum maschinellen Lernen 104 verwendet werden, um Begrenzungspunkte 106 und/oder Klassenbezeichnungen 108 zu berechnen. In einigen anderen Beispielen können die Sensordaten 102 als Eingabe zu einem Sensordatenvorprozessor (nicht dargestellt) bereitgestellt werden, um vorverarbeitete Sensordaten zu erzeugen. Die vorverarbeiteten Sensordaten können dann zusätzlich zu oder alternativ zu den Sensordaten 102 als Eingabedaten in das/die Modell(e) 104 zum maschinellen Lernen eingegeben werden.
  • In Beispielen, in denen die Sensordaten 102 Bilddaten sind, können viele Arten von Bildern oder Formaten als Eingaben verwendet werden. Beispielsweise komprimierte Bilder wie in den Formaten Joint Photographic Experts Group (JPEG) oder Luminance/Chrominance (YUV), komprimierte Bilder als Einzelbilder, die von einem komprimierten Videoformat wie H.264/Advanced Video Coding (AVC) oder H.265/High Efficiency Video Coding (HEVC) stammen, Rohbilder wie sie von Red Clear Blue (RCCB), Red Clear (RCCC) oder anderen Arten von Bildsensoren stammen. Es wird darauf hingewiesen, dass beim Training des/der Modells/e 104 zum maschinellen Lernen andere Formate und/oder Auflösungen verwendet werden können als bei der Schlussfolgerung (z.B. beim Einsatz des/der Modells/e 104 zum maschinellen Lernen im autonomen Fahrzeug 700).
  • Der Sensordatenvorprozessor kann die Sensordaten 102 verwenden, die für ein oder mehrere Bilder (oder andere Datenrepräsentationen) repräsentativ sind, und die Sensordaten in Form eines/r multidimensionalen Felds/Matrix (in einigen Beispielen alternativ als Tensor oder genauer gesagt als Eingabetensor bezeichnet) in den Speicher laden. Die Feld-Größe kann berechnet und/oder dargestellt werden als B × H × C, wobei W für die Bildbreite in Pixeln, H für die Höhe in Pixeln und C für die Anzahl der Farbkanäle steht. Ohne Verlust der Allgemeingültigkeit sind auch andere Typen und Ordnungen von Eingabebildkomponenten möglich. Zusätzlich kann die Stapelgröße B als Dimension (z.B. eine zusätzliche vierte Dimension) verwendet werden, wenn eine Stapelbildung (batching) verwendet wird. Eine Stapelbildung kann zum Training und/oder zur Schlussfolgerung verwendet werden. Somit kann der Eingabetensor ein Feld der Dimension B × H × C × B darstellen. Jede Reihenfolge der Dimensionen ist möglich, die von der jeweiligen Hard- und Software abhängen kann, um den Sensordatenvorprozessor zu implementieren. Diese Reihenfolge kann gewählt werden, um die Trainings- und/oder Schlussfolgerungs-Leistung des/der Modells/e zum maschinellen Lernen 104 zu maximieren.
  • Eine Vorverarbeitungs-Bildpipeline kann vom Sensordatenvorprozessor verwendet werden, um ein oder mehrere Rohbilder zu verarbeiten, die von einem oder mehreren Sensoren aufgenommen und in die Sensordaten 102 aufgenommen wurden, um die vorverarbeiteten Sensordaten zu erzeugen, die ein oder mehrere Eingabebilder für die Eingabeschicht(en) darstellen können (z.B. Merkmalsextraktionsschicht(en) 126 von 1B) des oder der Modells/e zum maschinellen Lernen 104. Ein Beispiel für eine geeignete Vorverarbeitungs-Bildpipeline kann ein Bild vom Roh-RCCB-Bayer- (z.B. 1-Kanal) Typ vom Sensor verwenden und dieses Bild in ein RCB-(z.B. 3-Kanal) planares Bild umwandeln, das im Format Fixed Precision (z.B. 16-Bit pro Kanal) gespeichert ist. Die Vorverarbeitungs-Bildpipeline kann Dekompression, Rauschunterdrückung, Demosaicing, Weißabgleich, Histogrammberechnung und/oder adaptives globales Tone-Mapping (z.B. in dieser Reihenfolge oder in einer alternativen Reihenfolge) beinhalten.
  • Wenn eine Rauschunterdrückung vom Sensordatenvorprozessor eingesetzt wird, kann sie eine bilaterale Rauschunterdrückung im Bayer-Bereich beinhalten. Wenn eine Demosaikierung vom Sensordatenvorprozessor verwendet wird, kann sie eine bilineare Interpolation beinhalten. Wenn eine Histogrammberechnung vom Sensordatenvorprozessor eingesetzt wird, kann sie eine Berechnung eines Histogramms für den C-Kanal beinhalten und in einigen Beispielen mit der Dekompandierung oder Rauschunterdrückung zusammengeführt werden. Wenn der Sensordatenvorprozessor ein adaptives globales Tone-Mapping verwendet, kann dies die Durchführung einer adaptiven Gamma-Log-Transformation beinhalten. Dies kann ein Berechnen eines Histogramms, ein Erhalten eines Mitteltonpegels und/oder ein Schätzen einer maximalen Leuchtdichte mit dem Mitteltonpegel beinhalten.
  • Das/die Modell(e) zum maschinellen Lernen 104 können als Eingabe ein oder mehrere Bilder (oder andere Datenrepräsentationen) verwenden, die durch die Sensordaten 102 dargestellt werden, um die Begrenzungspunkte 106 (z.B. repräsentativ für 2D-Pixelpositionen der Begrenzung(en) innerhalb des Bildes) und/oder die Klassenbezeichnungen 108 (z.B. Begrenzungsklassenbezeichnungen, die den mit der/den Begrenzung(en) verbundenen Begrenzungsklassen entsprechen) als Ausgabe zu erzeugen. In einem nicht einschränkenden Beispiel kann/können das/die Modell(e) zum maschinellen Lernen 104 (ein) Bild(er), das/die durch die vorverarbeiteten Sensordaten und/oder die Sensordaten 102 dargestellt wird/werden, als Eingabe nehmen und die Sensordaten verwenden, um auf den Begrenzungspunkten 106 eine Regression auszuführen und Vorhersagen für die Klassenbezeichnungen 108 zu erzeugen, die den Begrenzungspunkten 106 entsprechen.
  • Obwohl hierin Beispiele für die Verwendung neuronaler Netze, insbesondere faltender neuronaler Netze, als Modell(e) zum maschinellen Lernen 104 (z.B. wie hierin in Bezug auf die 1B und 1C näher beschrieben) beschrieben werden, ist dies nicht als Einschränkung zu verstehen. So kann beispielsweise das/die hierin beschriebene(n) Modell(e) zum maschinellen Lernen 104 jede Art von Modell(en) zum maschinellen Lernen beinhalten, wie z.B. (ein) Modell(e) zum maschinellen Lernen mit linearer Regression, logistischer Regression, Entscheidungsbäume, Support-Vektor-Maschinen (SVM), Naive Bayes, k-nearest neighbor (Knn), K bedeutet Clustering, Zufallswald, Dimensionsreduktionsalgorithmen, Gradientenverstärkungsalgorithmen, neuronale Netze (z.B, Auto-Encoder, Faltungs-, Wiederholungs-, Wahrnehmungsmodelle, Long/Short Term Memory (LSTM), Hopfield, Boltzmann, depp belief, dekonvolutionär, generativ gegnerisch, Liquid State Machine, usw.
  • Die Begrenzungspunkte 106 können Punkte (oder Pixel) eines durch die Sensordaten dargestellten Bildes darstellen, die einer oder mehreren Begrenzung(en) entsprechen, die den befahrbaren Freiraum vom nicht befahrbaren Raum in einer realen Umgebung des Fahrzeugs 700 trennen. So kann beispielsweise für jede Begrenzung ein Begrenzungspunkt 106 (oder mehrere, in einigen Beispielen) für jede Spalte des Bildes vorhanden sein (z.B. als Ergebnis einer Regressionsanalyse durch das/die Modell(e) zum maschinellen Lernen 104), was von der räumlichen Breite des Bildes abhängen kann (z.B. kann es für ein 1920 W × 1020 H Bild 1920 Begrenzungspunkte 106 für jede Begrenzung der einen oder mehreren Begrenzungen geben). Dadurch kann in der realen Umgebung eine Begrenzung über die gesamte Querabmessung des Sichtfeldes des/der Sensoren (z.B. der Kamera(s)) basierend auf den Begrenzungspunkten 106 bestimmt werden.
  • Wie hier mit Bezug auf 1D näher beschrieben ist, können in einigen nicht einschränkenden Beispielen die Begrenzungspunkte 106 von dem/den Modell(en) zum maschinellen Lernen 104 als eindimensionales Feld ausgegeben werden (z.B. mit einer Zeile und einer Anzahl von Spalten, die der räumlichen Breite des Bildes entspricht). In solchen Beispielen kann jede Zelle einen Wert zwischen 0 und 1 beinhalten, der einem Prozentsatz der räumlichen Höhe des Bildes entspricht, in dem sich der Begrenzungspunkt 106 (oder Pixel) für diese Spalte befindet (z.B. können die vom Modell 104 zum maschinellen Lernen ausgegebenen Begrenzungspunkte 106 auf die Höhe des Bildes normiert werden). Wenn das Bild eine räumliche Höhe von 100 hat und der Wert in der ersten Zelle, der der ersten Spalte des Bildes entspricht, 0,5 ist, kann der Begrenzungspunkt 106 für die erste Spalte so bestimmt werden, dass er bei Pixel 50 liegt. Ein eindimensionales Feld kann die Ausgabe des/der Modells/e 104 zum maschinellen Lernen sein, wobei das/die Modell(e) zum maschinellen Lernen verwendet wird/werden, um die Begrenzung innerhalb des Bildes mittels Regression zu bestimmen.
  • In anderen Beispielen können die von dem/den Modell(en) 104 zum maschinellen Lernen ausgegebenen Begrenzungspunkte 106 in einem anderen Format vorliegen, wie beispielsweise ein/mehrere Wert(e), die dem tatsächlichen Pixel innerhalb der Spalte entsprechen, ein/mehrere Wert(e), der/die auf einem Abstand von der Bildmitte basiert/en, und/oder ein anderes Format. In solchen Beispielen kann die Ausgabe kein eindimensionales Feld sein, sondern kann von beliebiger Dimension sein (z.B. eine Anzahl von Spalten, die der räumlichen Breite des Bildes entspricht, und eine Anzahl von Zeilen, die der räumlichen Höhe des Bildes entspricht, und/oder andere Dimensionen).
  • Die Klassenbezeichnungen 108 können für jeden der Begrenzungspunkte 106 eine Begrenzungsklasse oder einen Begrenzungstyp darstellen, der dem Begrenzungspunkt 106 entspricht. So kann beispielsweise für einen ersten Begrenzungspunkt 106 eine Klassenbezeichnung 108 für einen Fußgänger, für einen zweiten Begrenzungspunkt 106 eine Klassenbezeichnung 108 für ein Fahrzeug, für einen dritten Begrenzungspunkt eine Klassenbezeichnung 108 für eine Barriere usw. sein. Es kann eine beliebige Anzahl von Klassenbezeichnungen 108 geben, für die das/die Modell(e) 104 zum maschinellen Lernen zur Identifizierung und Kennzeichnung trainiert ist/sind. In einem nicht einschränkenden Beispiel kann es vier Klassenbezeichnungen 108 geben, die die vier Klassen Fahrzeuge, Fußgänger, Barrieren oder Bordsteinen einschließen, und eine alles einschließende oder nicht identifizierte Klasse (z.B. für Begrenzungstypen, die in keine der anderen Begrenzungsklassen fallen oder nicht sicher in eine der anderen Begrenzungsklassen aufgenommen werden können). In anderen Beispielen kann es weniger als vier Klassenbezeichnungen 108 oder mehr als vier Klassenbezeichnungen 108 geben, und/oder die Klassenbezeichnungen 108 können mehr oder weniger granular sein. So können beispielsweise die Klassenbezeichnungen 108 weniger granulare Klassen, wie statisch oder dynamisch, oder mehr granularen Klassen, wie Limousine, Geländewagen (SUV), LKW, Bus, Erwachsener, Kind, Bordstein, Trennwand, Geländer usw., entsprechen.
  • Wie hier mit Bezug auf 1D näher beschrieben ist, können in einigen nicht einschränkenden Beispielen die Klassenbezeichnungen 108 von dem/den Modell(en) 104 zum maschinellen Lernen als zweidimensionales Feld ausgegeben (z.B. mit einer Anzahl von Zeilen, die der Anzahl der Klassen entspricht, für die das/die Modell(e) 104 zum maschinellen Lernen zum Identifizieren und Bezeichnen trainiert ist/sind, und einer Anzahl von Spalten, die der räumlichen Breite des Bildes entspricht) werden. In solchen Beispielen kann jede der Zellen in jeder Spalte des Feldes einen Wert zwischen 0 und 1 beinhalten (z.B. mit einer Summe aller Werte für jede Spalte gleich 1), der einer Wahrscheinlichkeit oder Sicherheit der Klassenbezeichnung 108 entspricht, die dem Begrenzungspunkt 106 aus derselben Spalte entspricht.
  • Die Begrenzungspunkte 106 und/oder die Klassenbezeichnungen 108 können einer oder mehreren Nachbearbeitungen unter Verwendung einer oder mehrerer Nachbearbeitungstechniken unterzogen werden. So können beispielsweise die Begrenzungspunkte 106 einer räumlichen Glättung 110 unterzogen werden. Die räumliche Glättung 110 kann mit einem Gaußschen Filter, wie es hier beschrieben ist, durchgeführt werden und kann auf die Begrenzungspunkte 106 angewendet werden, die durch das/die Modell(e) 104 zum maschinellen Lernen vorhergesagt wurden (z.B. als Ausgabe). Das Ziel der räumlichen Glättung 110 kann es sein, abrupte Veränderungen in der Begrenzung zwischen benachbarten Sätzen der Begrenzungspunkte 106 zu eliminieren. Die räumliche Glättung 110 kann an den Begrenzungspunkten 106 von einem einzigen Frame der Sensordaten aus im Hinblick auf andere der Begrenzungspunkte 106 vom gleichen einzelnen Frame durchgeführt werden. So können beispielsweise einer oder mehrere der Begrenzungspunkte 106, die der Begrenzung aus einem einzelnen Frame entsprechen, durch Informationen (z.B. Werte), die einem oder mehreren benachbarten Begrenzungspunkten 106 entsprechen, gefiltert oder geglättet werden (z.B. durch einen Gaußschen Filter). Wenn sich ein erster Begrenzungspunkt 106 signifikant von einem benachbarten zweiten Begrenzungspunkt 106 unterscheidet, kann die räumliche Glättung 110 verwendet werden, um einen weniger harten oder drastischen Übergang zwischen dem ersten und zweiten Begrenzungspunkt 106 zu erzeugen.
  • In einigen nicht einschränkenden Beispielen kann die räumliche Glättung 110 mit der folgenden Gleichung (1) durchgeführt werden: b o u n d a r y s p a t i a l [ c o l . c u r r . ] = i d x = 0 L e n g t h ( g a u s s f i l t e r ) b o u d a r y c u r r . [ c o l . c u r r . r a d i u s g a u s f i l t e r + i d x ] g a u s s f i l t e r [ i d x ]
    Figure DE112019000048T5_0001
    wobei gauss_filter ein Gauß-Filter-Feld ist, col.curr. eine aktuelle Spalte ist, radiusgauss_filter der Radius des Gauß-Filters ist, boundaryspatial das Begrenzungsfeld nach der räumlichen Glättung ist und idx ein Index ist (z.B. einer, der von 0 bis zu einer Länge des Gauß-Filter-Felds in Gleichung (1) geht).
  • Als weiteres Beispiel für die Nachbearbeitung können die Begrenzungspunkte 106 und/oder die Klassenbezeichnungen 108 einer zeitlichen Glättung 112 unterzogen werden. Das Ziel der zeitlichen Glättung 112 kann es sein, abrupte Änderungen an den Begrenzungspunkten 106 und/oder den Klassenbezeichnungen 108 zwischen einem aktuellen Frame und einem oder mehreren vorherigen Frames der Sensordaten zu eliminieren. Daher kann die zeitliche Glättung 112 die Begrenzungspunkte 106 und/oder die Klassenbezeichnungen 108 eines aktuellen Frames im Hinblick auf die Begrenzungspunkte 106 und/oder die Klassenbeschriftungen 108 eines oder mehrerer vorhergehender Frames betrachten, um die Werte der Begrenzungspunkte 106 und/oder der Klassenbezeichnungen 108 zu glätten, so dass die Unterschiede zwischen aufeinanderfolgenden Frames nicht so drastisch sind. In einigen Beispielen können die vorherigen Frames jeweils basierend auf ihren vorherigen Frames gewichtet oder geglättet worden sein, und als Ergebnis kann jeder nachfolgende Frame eine gewichtete Darstellung einer Anzahl von früheren Frames (z.B. allen vorherigen Frames) sein. Wenn sich ein erster Begrenzungspunkt 106 und/oder eine erste Klassenbezeichnung 108 signifikant von einem vorherigen zweiten Begrenzungspunkt 106 und/oder einer zweiten Klassenbezeichnung 108 unterscheidet, kann die zeitliche Glättung 112 verwendet werden, um einen weniger harten oder drastischen Übergang zwischen dem ersten und zweiten Begrenzungspunkt 106 zu erzeugen.
  • In einigen nicht einschränkenden Beispielen kann die zeitliche Glättung 112 für die Begrenzungspunkte 106 unter Verwendung der folgenden Gleichung (2) durchgeführt werden: b o u n d a r y s m o o t h = α b o u n d a r y p r e v + ( 1 α ) b o u n d a r y c u r r .
    Figure DE112019000048T5_0002
    wobei α eine reelle Zahl zwischen 0 und 1 ist, boundaryprev. ein Begrenzungsfeld (z.B. ein Feld von Begrenzungspunkten 106) in einem vorherigen Frame bezeichnet, boundarycurr. ein Begrenzungsfeld in einem aktuellen Frame bezeichnet, boundarysmooth ein Begrenzungsfeld nach der zeitlichen Glättung 112 bezeichnet.
  • In einigen Beispielen kann α auf einen Standardwert gesetzt werden. So kann beispielsweise der Standardwert in einem nicht einschränkenden Beispiel 0,5 betragen. Der Wert für α kann jedoch je nach Ausführungsform unterschiedlich sein. Wenn α beispielsweise 0,5 ist, kann die Gewichtung zwischen einem Begrenzungspunkt 106 und (einem) benachbarten Begrenzungspunkt(en) 106 50% für den Begrenzungspunkt 106 und 50% für den/die benachbarten Begrenzungspunkt(e) 106 betragen. In Beispielen, in denen der Begrenzungspunkt 106 stärker gewichtet werden soll als der/die benachbarte(n) Begrenzungspunkt(e) 106, kann der Wert von α niedriger sein, wie z.B. 0,3, 0,4 usw., und in denen die Begrenzungspunkte weniger stark gewichtet werden sollen als der/die benachbarte(n) Grenzpunkt(e) 106, kann der Wert von α höher sein, wie z.B. 0,6., 0,7 usw.
  • In einigen nicht einschränkenden Beispielen kann die zeitliche Glättung 112 für die Klassenbezeichnungen 108 mit der folgenden Gleichung (3) implementiert werden: l a b e l _ p r o b s m o o t h = α l a b e l _ p r o b p r e v . + ( 1 α ) l a b e l _ p r o b c u r r .
    Figure DE112019000048T5_0003
    wobei α eine reelle Zahl zwischen 0 und 1 ist, label_probprev. ein Klassenbezeichnungs-Wahrscheinlichkeitsfeld (z.B. ein Feld von Vorhersagen für Klassenbezeichnungen 108) in einem vorherigen Frame bezeichnet, label_probcurr. ein Klassenbezeichnungs-Wahrscheinlichkeitsfeld in einem aktuellen Frame bezeichnet, label_probsmooth ein Klassenbezeichnungs-Wahrscheinlichkeitsfeld nach der zeitlichen Glättung 112 bezeichnet.
  • In einigen Beispielen kann α auf einen Standardwert gesetzt werden. So kann beispielsweise der Standardwert in einem nicht einschränkenden Beispiel 0,5 betragen. Der Wert für α kann jedoch je nach Ausführungsform unterschiedlich sein.
  • Wenn α beispielsweise 0,5 ist, kann die Gewichtung zwischen einem oder mehreren vorherigen Frame(s) und einem aktuellen Frame 50% für einen aktuellen Frame und 50% für den/die vorherige(n) Frame(s) betragen. In Beispielen, in denen ein aktueller Frame stärker gewichtet wird als ein/mehrere vorherige(r)Frame(s), kann der Wert von α niedriger sein, wie z.B. 0,3, 0,4 usw., und in Fällen, in denen der aktuelle Frame weniger stark gewichtet werden soll als der/die vorherigen Frame(s), kann der Wert von α höher sein, wie z.B. 0,6., 0,7 usw.
  • Die räumliche Glättung 110 und/oder die zeitliche Glättung 112 können einzeln, beide durchgeführt und in beliebiger Reihenfolge durchgeführt werden. So kann beispielsweise nur die räumliche Glättung 110 oder nur die zeitliche Glättung 112 durchgeführt werden. Als weiteres Beispiel kann sowohl die räumliche Glättung 110 als auch die zeitliche Glättung 112 durchgeführt werden. In solchen Beispielen kann die räumliche Glättung 110 vor der zeitlichen Glättung 112 durchgeführt werden, die zeitliche Glättung 112 kann vor der räumlichen Glättung 110 durchgeführt werden und/oder beide können gleichzeitig oder parallel durchgeführt werden. In einigen Beispielen kann die räumliche Glättung 110 auf der Ausgabe nach der zeitlichen Glättung 112 oder die zeitliche Glättung 112 auf der Ausgabe nach der räumlichen Glättung 110 durchgeführt werden.
  • Die von dem/den Modell(en) 104 zum maschinellen Lernen berechneten Begrenzungspunkte 106 können - nach der Nachbearbeitung in einigen Beispielen - von 2D-Punkt- oder Pixelpositionen der Sensordaten (z.B. eines Bildes) in 3D- oder 2D-Real-World-Koordinaten umgewandelt werden. In einigen Beispielen kann der Positionsbestimmer 114 eine reale, 3D-Lage der Begrenzung basierend auf den 2D-Punkt- oder den Pixel-Koordinaten bestimmen. Unter Verwendung von intrinsischen Kameraparametern (z.B. Brennweite, f, optisches Zentrum (uo, vo), Pixel-Seitenverhältnis, a, Schräglage, s, etc.), extrinsischen Kameraparametern (z.B. 3D-Rotation, R, Translation, t, etc.) und/oder einer Höhe der Kamera in Bezug auf eine Grundebene kann ein 3D-Abstand von der Begrenzung (z.B. der durch die Begrenzungspunkte 106 begrenzten Begrenzung) zur Kameramitte berechnet werden. Das reale Koordinatensystem und das Kamerakoordinatensystem können als das gleiche Koordinatensystem betrachtet werden. Infolgedessen kann eine projektive Matrix, P, gemäß der folgenden Gleichung (4) ausgedrückt werden: P = [ K 0 ] 3 x 4
    Figure DE112019000048T5_0004
    wobei K eine 3 × 3 dimensionale intrinsische Kameramatrix ist.
  • Um eine 3D-2D-Projektion für einen beliebigen Punkt [X, Y, Z] auf der Straße oder auf der Fahrbahn durchzuführen, kann ein entsprechender Pixel [u, v] in einem Bild bestimmt werden, der die folgende Gleichung (5) erfüllt. λ [ u v 1 ] = [ K 0 ] 3 x 4 [ X Y Z 1 ]
    Figure DE112019000048T5_0005
    wobei λ eine Skalierungskonstante in homogenen Koordinaten ist und K eine 3 × 3 dimensionale intrinsische Kameramatrix ist.
  • Ein Pixel, p, im Bild kann auf eine unendliche Anzahl von 3D-Punkten entlang der Linie abgebildet werden, die die Kameramitte und das Pixel, p, verbindet. Um die entsprechende 3D-Position des Pixels zu bestimmen, kann p, je nach Ausführungsform, eine oder mehrere Bedingungen auferlegt werden und/oder Stereovision bzw. Stereo-Bilderkennung verwendet werden. In Beispielen, in denen eine Bedingung vorhanden ist, kann die Bedingung sein, dass der 3D-Punkt immer auf der Grundebene der Straße oder Fahrbahn liegt. Die Grundebene kann in einigen Beispielen die in Gleichung (6) unten dargestellte Beziehung erfüllen: n T x + c = 0
    Figure DE112019000048T5_0006
    wobei x = [X Y Z]T ist, c eine Konstante ist, die sich auf eine Höhe der Kameramitte von der Grundebene bezieht (z.B. wenn die Kameramitte 1,65 Meter von der Grundebene entfernt ist, gilt c = 1,65), T der Zeit entspricht, und, wenn davon ausgegangen wird, dass die Kamera orthogonal zur Grundebene angeordnet ist, im Kamerakoordinatensystem n =[0 -1 0]Tgilt.
  • Da die Position des Pixels, p, an der Begrenzung bekannt sein kann, kann die dem Pixel, p, entsprechende 3D-Lage aus einer 3D-zu-2D-Projektionsgleichung (7) als Funktion von λ und K abgeleitet werden: x = [ X Y Z ] T = λ K 1 p
    Figure DE112019000048T5_0007
    wobei p = [u v 1]T gilt. Die Verwendung der Lösung des 3D-Punktes in der Gleichung für die Grundebene führt zu der folgenden Beziehung, dargestellt durch Gleichung (8), unten. λ n T K 1 p + c = 0
    Figure DE112019000048T5_0008
  • Damit gilt: λ = c n T K 1 p
    Figure DE112019000048T5_0009
  • Eine Kombination der Gleichungen (8) und (9) führt zur Gleichung (10) unten. x = c n T K 1 p ( K 1 p )
    Figure DE112019000048T5_0010
  • Der Abstand von der Begrenzung zum Fahrzeug 700 über die Grundebene kann bestimmt werden, indem man die Projektion der Kameramitte auf die Grundebene von x subtrahiert, wie es in Gleichung (11) unten dargestellt ist: d = x C ' ' 2
    Figure DE112019000048T5_0011
    wobei C" die Projektion der Kameramitte auf die Grundebene ist, was h =[0 1,65 0]T entspricht, vorausgesetzt, die Höhe der Kamera von der Grundebene aus beträgt 1,65 Meter. Darüber hinaus kann ein Abstand, df, von der Begrenzung zur Vorderseite des Fahrzeugs 700 bestimmt werden, indem der Abstand von der Kameramitte zur Vorderseite der Grundebene (z.B. entlang der z-Achse) oder zur Vorderseite des Fahrzeugs betrachtet wird. Angenommen, die Kameramitte ist 2,85 Meter von der Vorderseite der Grundebene entfernt, dann kann beispielsweise der Abstand, df, unter Verwendung der folgenden Gleichung (12) bestimmt werden: d f = d 2.85
    Figure DE112019000048T5_0012
  • Obwohl dieses Beispiel einer 3D-2D-Projektion zur Bestimmung des Abstandes vom Fahrzeug 700 zur Begrenzung hier beschrieben ist, ist dies nicht als Einschränkung anzusehen. So kann beispielsweise jedes Verfahren zum Bestimmen von realen Koordinaten aus Bildkoordinaten verwendet werden, um den Abstand vom Fahrzeug 700 zur Begrenzung und damit den befahrbaren Freiraum für das Fahrzeug 700 zum Bewegen im Inneren zu bestimmen. Als Beispiel können 3D-Objektkoordinaten bestimmt werden, eine Modelltransformation kann verwendet werden, um 3D-Real-World-Koordinaten entsprechend den 3D-Objektkoordinaten zu bestimmen, eine Betrachtungstransformation kann verwendet werden, um 3D-Kamerakoordinaten basierend auf den 3D-Real-World-Koordinaten zu bestimmen, eine Projektionstransformation kann verwendet werden, um 2D-Screen-Koordinaten basierend auf den 3D-Kamerakoordinaten zu bestimmen, und/oder eine Fenster-zu-View-Port-Transformation kann verwendet werden, um 2D-Bildkoordinaten aus den 2D-Screen-Koordinaten zu bestimmen. Im Allgemeinen können reale Koordinaten in Kamerakoordinaten, Kamerakoordinaten in Filmkoordinaten und Filmkoordinaten in Pixelkoordinaten konvertiert werden. Sobald die Pixelkoordinaten bekannt sind und die Begrenzung bestimmt ist (z.B. werden die Begrenzungspunkte 106 bestimmt), kann die Lage der Begrenzung in den realen Koordinaten unter Verwendung der bekannten Zuordnung von den Begrenzungspunkten 106 zu den realen Koordinaten bestimmt werden.
  • In anderen Beispielen kann die Stereovision genutzt werden, um eine Korrelation zwischen den 2D- und 3D-Koordinaten zu bestimmen, z.B. wenn zwei oder mehr Kameras verwendet werden. In solchen Beispielen können Stereovisionsverfahren bzw. Stereo-Bilderkennungsverfahren verwendet werden, um Abstände zur Begrenzung zu bestimmen, indem Informationen aus zwei oder mehr Bildern verwendet werden, die von zwei oder mehr Kameras (oder anderen Sensoren, wie beispielsweise LIDAR-Sensoren) erzeugt werden.
  • Die Begrenzungspunkte 106 (z.B. die den Begrenzungspunkten 106 entsprechenden realen Positionen nach der Nachbearbeitung) und die Klassenbezeichnungen 108 (z.B. nach der Nachbearbeitung) können von einer oder mehreren Schichten eines autonomen Fahrsoftware-Stacks 146 (im Folgenden alternativ als „Fahr-Stack 146“ bezeichnet) verwendet werden. Der Fahr-Stack 146 kann aufweisen einen Sensormanager (nicht dargestellt), (eine) Wahrnehmungskomponente(n) (z.B. entsprechend einer Wahrnehmungsschicht des Fahr-Stacks 146), einen Weltmodell-manager 116, (eine) Planungskomponente(n) 118 (z.B. entsprechend einer Planungsschicht des Fahr-Stacks 146), (eine) Steuerungskomponente(n) 120 (z.B, entsprechend einer Steuerschicht des Fahr-Stacks 146), (eine) Hindernisvermeidungskomponente(n) 122 (z.B. entsprechend einer Hindernis- oder Kollisionsvermeidungsschicht des Fahr-Stacks 146), (eine) Betätigungskomponente(n) 124 (z.B. entsprechend einer Betätigungsschicht des Fahr-Stacks 146) und/oder andere Komponenten entsprechend zusätzlichen und/oder alternativen Schichten des Fahr-Stacks 146. Das Verfahren 100 kann in einigen Beispielen von der/den Wahrnehmungskomponente(n) ausgeführt werden, die die Schichten des Fahr-Stacks 146 an den Weltmodell-Manager weiterleiten kann/können, wie es hier näher beschrieben ist.
  • Der Sensormanager kann Sensordaten 102 von den Sensoren des Fahrzeugs 700 verwalten und/oder abstrahieren. So können beispielsweise unter Bezugnahme auf 7C die Sensordaten 102 erzeugt werden (z.B, ständig, in Intervallen, basierend auf bestimmten Bedingungen, durch die Sensoren des globalen Navigationssatellitensystems (GNSS) 758, RADAR-Sensor(en) 760, Ultraschallsensor(en) 762, LIDAR-Sensor(en) 764, IMU-Sensor(en) 766, Mikrofon(en) 796, Stereokamera(s) 768, Weitsichtkamera(s) 770, Infrarotkamera(s) 772, Surround-Kamera(s) 774, Weit- und/oder Mittelbereichskamera(s) 798 und/oder andere Sensortypen.
  • Der Sensormanager kann die Sensordaten von den Sensoren in verschiedenen Formaten empfangen (z.B. Sensoren desselben Typs, wie z.B. LIDAR-Sensoren, können Sensordaten in verschiedenen Formaten ausgeben) und kann konfiguriert werden, um die verschiedenen Formate in ein einheitliches Format zu konvertieren (z.B. für jeden Sensor desselben Typs). Infolgedessen können andere Komponenten, Merkmale und/oder Funktionen des autonomen Fahrzeugs 700 das einheitliche Format verwenden, was die Verarbeitung der Sensordaten vereinfacht. In einigen Beispielen kann der Sensormanager ein einheitliches Format verwenden, um die Steuerung wieder auf die Sensoren des Fahrzeugs 700 anzuwenden, z.B. um Bildraten einzustellen oder eine Verstärkungsregelung durchzuführen. Der Sensormanager kann auch Sensorpakete oder Kommunikationen, die den Sensordaten entsprechen, mit Zeitstempeln aktualisieren, um die Verarbeitung der Sensordaten durch verschiedene Komponenten, Merkmale und Funktionen eines autonomen Fahrzeugsteuerungssystems zu unterstützen.
  • Ein Weltmodell-Manager 116 kann verwendet werden, um ein Weltmodell zu erstellen, zu aktualisieren und/oder zu definieren. Der Weltmodell-Manager 116 kann Informationen verwenden, die von der/den Wahrnehmungskomponente(n) des Antriebsstacks 146 erzeugt und empfangen werden (z.B. die Positionen der Begrenzung, die den befahrbaren Freiraum vom nicht fahrbaren Raum trennt, und die Klassenbezeichnungen 108). Die Erkennungskomponente(n) kann (können) einen Hinderniserkenner, einen Wegerkenner, einen Warteerkenner, einen Kartenerkenner und/oder andere Erkennungskomponenten beinhalten. So kann beispielsweise das Weltmodell zumindest teilweise auf der Grundlage von Übereinstimmungen für Hindernisse, Wege und Wartebedingungen definiert werden, die in Echtzeit oder nahezu in Echtzeit vom Hinderniserkenner, dem Wegerkenner, dem Warteerkenner und/oder dem Kartenerkenner erkannt werden können. Der Weltmodell-Manager 116 kann das Weltmodell kontinuierlich aktualisieren, basierend auf neu erzeugten und/oder empfangenen Eingaben (z.B. Daten) des Hinderniserkenners, des Wegerkenners, des Warteerkenner, des Kartenerkenners und/oder anderer Komponenten des autonomen Fahrzeugsteuerungssystems.
  • Das Weltmodell kann verwendet werden, um die Planungskomponente(n) 118, die Steuerungskomponente(n) 120, die Hindernisvermeidungskomponente(n) 122 und/oder die Betätigungskomponente(n) 124 des Fahr-Stacks 146 zu informieren. Der Hinderniserkenner kann eine Hinderniserkennung durchführen, die darauf basiert, wo das Fahrzeug 700 fahren darf oder fahren kann (z.B. auf der Grundlage der Lage der Begrenzung, die aus den Begrenzungspunkten 106 bestimmt wird, und/oder auf den Klassenbezeichnungen 108), und wie schnell das Fahrzeug 700 fahren kann, ohne mit einem Hindernis (z.B. einem Objekt, wie einer Struktur, einer Einheit, einem Fahrzeug usw.) zu kollidieren, das von den Sensoren des Fahrzeugs 700 erfasst wird.
  • Der Pfaderkenner kann die Pfaderkennung durchführen, z.B. indem er nominale Pfade erkennt, die in einer bestimmten Situation verfügbar sind. In einigen Beispielen kann der Pfaderkenner weiterhin Spurwechsel für die Pfaderkennung berücksichtigen. Ein Fahrspurgraph kann die dem Fahrzeug 700 zur Verfügung stehende(n) Fahrspur(en) darstellen und kann so einfach sein wie ein einzelner Pfad auf einer Autobahnauffahrt. In einigen Beispielen kann der Fahrspurgraph Pfade zu einer gewünschten Fahrspur beinhalten und/oder verfügbare Wechsel von der Autobahn (oder einem anderen Straßentyp) anzeigen, oder er kann benachbarte Fahrspuren, Fahrspurwechsel, Gabelungen, Kurven, Kleeblatt-Autobahnkreuze, Zusammenführungen und/oder andere Informationen beinhalten.
  • Der Warteerkenner kann dafür verantwortlich sein, Bedingungen für das Fahrzeug 700 aufgrund von Regeln, Konventionen und/oder praktischen Erwägungen zu bestimmen. So können beispielsweise die Regeln, Konventionen und/oder praktischen Erwägungen in Bezug zu Ampeln, Mehrwegehaltepunkten, Erträgen, Zusammenführungen, Mautstellen, Toren, Polizei oder anderem Notfallpersonal, Straßenarbeitern, angehaltenen Bussen oder andere Fahrzeugen, Einwegbrücken-Regelungen, Fährankünften usw. stehen. In einigen Beispielen kann der Warteerkenner für das Bestimmen von Längsbedingungen am Fahrzeug 700 verantwortlich sein, die erfordern, dass das Fahrzeug wartet oder abbremst, bis eine Bedingung erfüllt ist. In einigen Beispielen ergeben sich Wartezustände aus möglichen Hindernissen, wie z.B. dem Kreuzen von Verkehr an einer Kreuzung, die durch direktes Erfassen durch den Hinderniserkenner möglicherweise nicht erkennbar sind (z.B. durch Verwendung von Sensordaten 102 der Sensoren, da die Hindernisse in dem Sichtfeld der Sensoren verdeckt sein können). Infolgedessen kann der Warteerkenner ein situatives Bewusstsein schaffen, indem er die Gefahr von Hindernissen löst, die nicht immer sofort durch Regeln und Konventionen erkennbar sind, die erkannt und/oder gelernt werden können. So kann der Warteerkenner genutzt werden, um potenzielle Hindernisse zu identifizieren und eine oder mehrere Kontrollen durchzuführen (z.B. Verlangsamung, Stopp usw.), die möglicherweise nicht möglich waren, wenn man sich ausschließlich auf den Hinderniserkenner verlassen hätte.
  • Der Kartenerkenner kann einen Mechanismus beinhalten, durch den Verhaltensweisen erkannt werden, und in einigen Beispielen, um spezifische Beispiele dafür zu bestimmen, welche Konventionen an einem bestimmten Ort angewendet werden. So kann der Kartenerkenner beispielsweise aus Daten, die frühere Fahrten oder Fahrten darstellen, bestimmen, dass an einer bestimmten Kreuzung zwischen bestimmten Stunden keine Kehrtwendungen stattfinden, dass sich ein elektronisches Schild, das die Fahrspurrichtung anzeigt, je nach Tageszeit ändert, dass zwei Ampeln in unmittelbarer Nähe (z.B. kaum versetzt voneinander) verschiedenen Straßen zugeordnet sind, dass in Rhode Island das erste Auto, das darauf wartet, an einer Ampel links abzubiegen, das Gesetz bricht, wenn es vor dem Gegenverkehr abbiegt, wenn die Ampel grün wird, und/oder andere Informationen. Der Kartenerkenner kann das Fahrzeug 700 über statische oder stationäre Infrastrukturobjekte und Hindernisse informieren. Der Kartenerkenner kann auch Informationen für den Warteerkenner und/oder den Wegerkenner erzeugen, beispielsweise um zu bestimmen, welches Licht an einer Kreuzung grün sein muss, damit das Fahrzeug 700 einen bestimmten Weg einschlagen kann.
  • In einigen Beispielen können Informationen vom Kartenerkenner an (einen) Server (z.B. an einen Kartenmanager eines/von Server(s/n) 778 aus 7D) gesendet, übertragen und/oder bereitgestellt werden, und Informationen von dem/n Server(n) kann/können an den Kartenerkenner und/oder einen Lokalisierungsmanager des Fahrzeugs 700 gesendet, übertragen und/oder bereitgestellt werden. Der Kartenmanager kann eine Cloud-Mapping-Anwendung beinhalten, die sich entfernt vom Fahrzeug 700 befindet und von dem Fahrzeug 700 über ein oder mehrere Netze zugänglich ist. So kann beispielsweise der Kartenerkenner und/oder der Lokalisierungsmanager des Fahrzeugs 700 mit dem Kartenmanager und/oder einer oder mehreren anderen Komponenten oder Funktionen des/der Server(s) kommunizieren, um den Kartenerkenner und/oder den Lokalisierungsmanager über vergangene und aktuelle Fahrten oder Strecken des Fahrzeugs 700 sowie vergangene und aktuelle Fahrten oder Strecken anderer Fahrzeuge zu informieren. Der Kartenmanager kann Mapping-Ausgaben (z.B. Kartendaten) bereitstellen, die vom Lokalisierungsmanager basierend auf einem bestimmten Standort des Fahrzeugs 700 lokalisiert werden können, und die lokalisierten Mapping-Ausgaben können vom Weltmodell-Manager 116 zum Erzeugen und/oder Aktualisieren des Weltmodells verwendet werden.
  • Die Planungskomponente(n) 118 kann/können unter anderen Komponenten, Merkmalen und/oder Funktionalitäten einen Routenplaner, einen Fahrspurplaner, einen Verhaltensplaner und ein Verhaltensauswahlmittel beinhalten. Der Routenplaner kann neben anderen Informationen aus den Informationen des Kartenerkenners, des Kartenmanagers und/oder des Lokalisierungsmanagers einen geplanten Weg generieren, der aus GNSS-Wegpunkten (z.B. GPS-Wegpunkten) bestehen kann. Die Wegpunkte können für eine bestimmte Entfernung des Fahrzeugs 700 in die Zukunft repräsentativ sein, wie beispielsweise eine Anzahl von Stadtblöcken, eine Anzahl von Kilometern, eine Anzahl von Metern, eine Anzahl von Meilen usw., die als Ziel für den Fahrspurplaner verwendet werden können.
  • Der Fahrspurplaner kann den Fahrspurgraph (z.B. den Fahrspurgraph des Wegerkenners), Objektposen innerhalb des Fahrspurgraphen (z.B. nach Angaben des Lokalisierungsmanagers) und/oder einen Zielpunkt und eine Richtung in der Entfernung in die Zukunft vom Routenplaner als Eingaben verwenden. Der Zielpunkt und die Richtung können auf den am besten passenden befahrbaren Punkt und die Richtung im Fahrspurgraph abgebildet werden (z.B. basierend auf GNSS und/oder einer Kompassrichtung). Ein Graph-Suchalgorithmus kann dann auf dem Fahrspurgraph von einer aktuellen Kante im Fahrspurgraph aus ausgeführt werden, um den kürzesten Weg zum Zielpunkt zu finden.
  • Der Verhaltensplaner kann die Machbarkeit von grundlegenden Verhaltensweisen des Fahrzeugs 700 bestimmen, wie z.B. das Halten der Spur oder das Wechseln der Fahrspur nach links oder rechts, so dass die realisierbaren Verhaltensweisen mit den am meisten gewünschten Verhaltensweisen, die der Fahrspurplaner ausgibt, abgeglichen werden können. Wenn beispielsweise festgestellt wird, dass das gewünschte Verhalten nicht sicher und/oder verfügbar ist, kann stattdessen ein Standardverhalten ausgewählt werden (z.B. kann das Standardverhalten darin bestehen, in der Spur zu bleiben, wenn das gewünschte Verhalten oder der Spurwechsel nicht sicher ist).
  • Die Steuerkomponente(n) 120 kann/können einer Trajektorie oder einem Weg (quer und längs), der von den Verhaltensauswahlmitteln der Planungskomponente(n) 118 empfangen wurde, so nah wie möglich und innerhalb der Möglichkeiten des Fahrzeugs 700 folgen. In einigen Beispielen kann der abgesetzte Operator die Trajektorie oder den Weg bestimmen und so die Verhaltensauswahlmittel ersetzen oder ergänzen. In solchen Beispielen kann der abgesetzte Operator Ansteuerungen bereitstellen, die von der(n) Steuerkomponente(n) 120 empfangen werden können, und die Steuerkomponente(n) kann/können den Ansteuerungen direkt folgen, den Ansteuerungen so gut wie möglich innerhalb der Möglichkeiten des Fahrzeugs folgen oder die Ansteuerungen als Vorschlag nehmen und unter Verwendung einer oder mehrerer Schichten des Fahr-Stacks 146 bestimmen, ob die Ansteuerungen ausgeführt werden sollen oder ob andere Ansteuerungen ausgeführt werden sollen.
  • Die Steuerkomponente(n) 120 kann/können eine enge Rückkopplung verwenden, um mit ungeplanten Ereignissen oder Verhaltensweisen umzugehen, die nicht modelliert sind und/oder Abweichungen vom Ideal entsprechen (z.B. eine unerwartete Verzögerung). In einigen Beispielen kann/können die Steuerkomponente(n) 120 ein Vorwärtsvorhersagemodell verwenden, das die Steuerung als Eingabegröße übernimmt und Vorhersagen erzeugt, die mit dem gewünschten Zustand verglichen werden können (z.B. mit dem von der/den Planungskomponente(n) 118 geforderten gewünschten Quer- und Längsweg). Die Ansteuerung(en), die Diskrepanzen minimieren, können bestimmt werden.
  • Obwohl die Planungskomponente(n) 126 und die Steuerungskomponente(n) 120 separat dargestellt sind, ist dies nicht als Einschränkung gedacht. So kann beispielsweise in einigen Ausführungsformen die Abgrenzung zwischen der/den Planungskomponente(n) 118 und der/den Steuerungskomponente(n) 120 nicht genau definiert sein. Somit können mindestens einige der Komponenten, Merkmale und/oder Funktionen, die der/den Planungskomponente(n) 118 zugeordnet sind, der/den Steuerungskomponente(n) 120 zugeordnet sein und umgekehrt.
  • Die Hindernisvermeidungskomponente(n) 122 kann/können das autonome Fahrzeug 700 dabei unterstützen, Kollisionen mit Objekten (z.B. beweglichen und stehende Objekte) zu vermeiden. Die Hindernisvermeidungskomponente(n) 122 kann/können einen Berechnungsmechanismus auf einer „grundlegenden Ebene“ der Hindernisvermeidung beinhalten und als „Überlebenshirn“ oder „Reptilienhirn“ für das Fahrzeug 700 dienen. In einigen Beispielen kann/können die Hindernisvermeidungskomponente(n) 122 unabhängig von Komponenten, Merkmalen und/oder Funktionen des Fahrzeugs 700 verwendet werden, die erforderlich sind, um die Verkehrsregeln zu befolgen und höflich zu fahren. In solchen Beispielen kann/können die Hindernisvermeidungskomponente(n) Verkehrsgesetze, Straßenverkehrsregeln und höfliche Fahrnormen ignorieren, um sicherzustellen, dass es nicht zu Kollisionen zwischen dem Fahrzeug 700 und Objekten kommt. Somit kann die Hindernisvermeidungsschicht eine von der Schicht für die Regeln der Straße getrennte Schicht sein, und die Hindernisvermeidungsschicht kann sicherstellen, dass das Fahrzeug 700 nur unter dem Gesichtspunkt der Hindernisvermeidung sichere Handlungen ausführt. Die Schicht für die Regeln der Straße hingegen kann sicherstellen, dass das Fahrzeug den Verkehrsgesetzen und -konventionen gehorcht und die gesetzlichen und konventionellen Wegerechte (wie hierin beschrieben) beachtet.
  • In einigen Beispielen können die Positionen der Begrenzung(en) und der Klassenbezeichnungen 108 von der/den Hindernisvermeidungskomponente(n) 122 zur Bestimmung der zu bestimmenden Ansteuerungen oder Handlungen verwendet werden. So kann beispielsweise der befahrbare Freiraum der/den Hindernisvermeidungskomponente(n) 122 einen Hinweis geben, wo das Fahrzeug 700 manövrieren kann, ohne gegen Gegenstände, Strukturen und/oder dergleichen zu stoßen. Als weiteres Beispiel, wie z.B. wenn die Klassenbezeichnungen 108 überfahrbare und nicht überfahrbare Bezeichnungen beinhalten, oder wenn eine erste Begrenzung überfahrbar ist und eine andere Begrenzung nicht überfahrbar ist, kann/können die Hindernisvermeidungskomponente(n) 122 - wie in einer Notsituation - die überfahrbare Begrenzung überfahren, um in einen potenziell nicht befahrbaren Raum (z.B. einen Bürgersteig, eine Rasenfläche usw.) einzudringen, der als sicherer eingestuft wurde, als innerhalb des befahrbaren Freiraums weiter zu fahren (z.B. bei einer vermuteten Kollision).
  • In einigen Beispielen kann/können, wie es hier beschrieben ist, die Hindernisvermeidungskomponente(n) 122 als separates, diskretes Merkmal des Fahrzeugs 700 implementiert werden. So kann/können beispielsweise die Hindernisvermeidungskomponente(n) 122 getrennt (z.B. parallel zu, vor und/oder nach) der Planungsschicht, der Steuerschicht, der Betätigungsschicht und/oder anderen Schichten des Fahr-Stacks 146 arbeiten.
  • 1B ist eine Darstellung eines exemplarischen Modells 104A zum maschinellen Lernen zur Begrenzungsidentifikation gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Modell 104A zum maschinellen Lernen kann ein Beispiel für ein Modell 104 zum maschinellen Lernen sein, das im Verfahren 100 von 1A verwendet werden kann. Das Modell 104A zum maschinellen Lernen kann ein faltendes neuronales Netz beinhalten oder als solches bezeichnet werden und kann daher alternativ hierin als faltendes neuronales Netz 104A oder Faltungsnetz 104A bezeichnet werden.
  • Wie hierin beschrieben ist, kann das Modell 104A zum maschinellen Lernen Sensordaten 102 (und/oder vorverarbeitete Sensordaten) (dargestellt als Bild in 1B) als Eingabe verwenden. Die Sensordaten 102 können Bilder beinhalten, die Bilddaten darstellen, die von einer oder mehreren Kameras erzeugt wurden (z.B. eine oder mehrere der hierin mit Bezug auf die 7A-7C beschriebenen Kameras). So können beispielsweise die Sensordaten 102 Bilddaten beinhalten, die ein Sichtfeld der Kamera(s) darstellen. Insbesondere können die Sensordaten 102 individuelle Bilder beinhalten, die von der/den Kamera(s) erzeugt werden, wobei Bilddaten, die für eines oder mehrere der individuellen Bilder repräsentativ sind, bei jeder Iteration des Faltungsnetz 104A in das Faltungsnetz 104A eingegeben werden können.
  • Die Sensordaten 102 können als einzelnes Bild eingegeben werden oder mittels Stapelverarbeitung, wie z.B. Mini-Stapelverarbeitung bzw. Mini-Batching, eingegeben werden. So können beispielsweise zwei oder mehr Bilder zusammen als Eingabe verwendet werden (z.B. gleichzeitig). Die zwei oder mehr Bilder können von zwei oder mehr Sensoren (z.B. zwei oder mehr Kameras) stammen, die die Bilder gleichzeitig aufgenommen haben.
  • Die Sensordaten 102 und/oder vorverarbeitete Sensordaten können in (eine) Merkmalsextraktorschicht(en) 126 des Faltungsnetzes 104 eingegeben werden (z.B. Merkmalsextraktorschicht 126A). Die Merkmalsextraktorschicht(en) 126 kann/können eine beliebige Anzahl von Schichten 126 beinhalten, wie beispielsweise die Schichten 126A-126C. Eine oder mehrere der Schichten 126 können eine Eingabeschicht beinhalten. Die Eingabeschicht kann Werte enthalten, die den Sensordaten 102 und/oder vorverarbeiteten Sensordaten zugeordnet sind. Wenn die Sensordaten 102 beispielsweise (ein) Bild(er) sind, kann die Eingabeschicht Werte enthalten, die für die Rohpixelwerte des/der Bildes/er als Volumen repräsentativ sind (z.B. Breite, W, Höhe, H und Farbkanäle, C (z.B. RGB), wie 32 × 32 × 3) und/oder eine Stapelgröße, B (z.B. bei Verwendung der Stapelverarbeitung).
  • Eine oder mehrere Schichten 126 können Faltungsschichten beinhalten. Die Faltungsschichten können die Ausgabe von Neuronen berechnen, die mit lokalen Regionen in einer Eingabeschicht (z.B. der Eingabeschicht) verbunden sind, wobei jedes Neuron ein Punktprodukt zwischen seinen Gewichten und einem kleinen Bereich, mit dem es im Eingabevolumen verbunden ist, berechnet. Das Ergebnis einer Faltungsschicht kann ein anderes Volumen sein, wobei eine der Dimensionen auf der Anzahl der angewandten Filter basiert (z.B. die Breite, die Höhe und die Anzahl der Filter, wie 32 × 32 × 12, wenn 12 die Anzahl der Filter waren).
  • Eine oder mehrere der Schichten 126 können eine rektifizierte Lineareinheit (ReLU)-Schicht beinhalten. Die ReLU-Schicht(en) kann (können) eine elementare Aktivierungsfunktion anwenden, wie z.B. die max (0, x), mit einem Schwellenwert bei Null. Das resultierende Volumen einer ReLU-Schicht kann das gleiche sein wie das Volumen der Eingabe der ReLU-Schicht.
  • Eine oder mehrere der Schichten 126 können eine Pooling-Schicht beinhalten. Die Pooling-Schicht kann ein Downsampling entlang der räumlichen Dimensionen (z.B. der Höhe und der Breite) durchführen, was zu einem kleineren Volumen als die Eingabe der Pooling-Schicht führen kann (z.B. 16 × 16 × 12 aus dem Eingabevolumen 32 × 32 × 12). In einigen Beispielen kann das Faltungsnetzwerk 104A keine Pooling-Schicht beinhalten. In solchen Beispielen können anstelle von Pooling-Schichten strided Faltungsschichten verwendet werden. In einigen Beispielen kann/können die Merkmalsextraktorschicht(en) 126 abwechselnd Faltungsschichten und Poolschichten beinhalten.
  • Eine oder mehrere der Schichten 126 können eine vollständig verbundene Schicht beinhalten. Jedes Neuron in der/den vollständig verbundenen Schicht(en) kann mit jedem der Neuronen im vorherigen Volumen verbunden sein. Die vollständig verbundene Schicht kann Klassenwerte berechnen, und das resultierende Volumen kann 1 × 1 × Anzahl der Klassen sein. In einigen Beispielen kann/können die Merkmalsextraktorschicht(en) 126 eine vollständig verbundene Schicht beinhalten, während in anderen Beispielen die vollständig verbundene Schicht des Faltungsnetzwerks 104A die vollständig verbundene Schicht getrennt von der/den Merkmalsextraktorschicht(en) 126 sein kann. In einigen Beispielen dürfen vom Merkmals-Extraktor 126 und/oder dem Modell 104A zum maschinellen Lernen als Ganzes keine vollständig verbundenen Schichten verwendet werden, um die Verarbeitungszeiten zu erhöhen und den Bedarf an Rechenleistung zu reduzieren. In solchen Beispielen, in denen keine vollständig verbundenen Schichten verwendet werden, kann das Modell 104A zum maschinellen Lernen als ein vollständig gefaltetes Netz bezeichnet werden.
  • Eine oder mehrere der Schichten 126 können in einigen Beispielen Dekonvolutionsschichten beinhalten. Die Verwendung des Begriffs Dekonvolution kann jedoch irreführend sein und soll nicht einschränkend sein. So kann/können beispielsweise die Dekonvolutionsschicht(en) alternativ als transponierte Faltungsschichten oder fraktioniert strided Faltungsschichten bezeichnet werden. Die Dekonvolutionsschicht(en) kann/können verwendet werden, um ein Upsampling auf der Ausgabe einer vorherigen Schicht durchzuführen. So kann/können beispielsweise die Dekonvolutionsschicht(en) verwendet werden, um auf eine räumliche Auflösung hochzusampeln, die der räumlichen Auflösung der Eingabebilder (z.B. der Sensordaten 102) zum Faltungsnetzwerk 104B entspricht, oder um auf die räumliche Auflösung einer nächsten Schicht hochzusampeln.
  • Obwohl Eingabeschichten, Faltungsschichten, Poolschichten, ReLU-Schichten, Dekonvolutionsschichten und vollständig verbundene Schichten in Bezug auf die Merkmalsextraktorschicht(en) 126 behandelt werden, ist dies nicht als Einschränkung gedacht. So können beispielsweise in der/den Merkmals-Extraktorschicht(en) 126 zusätzliche oder alternative Schichten 126 verwendet werden, wie Normalisierungsschichten, SoftMax-Schichten und/oder andere Schichttypen.
  • Die Ausgabe der Merkmalsextraktorschicht(en) 126 kann eine Eingabe in die Begrenzungspunktschicht(en) 128 und/oder in die Klassenbezeichungsschicht(en) 130 sein. Die Begrenzungspunktschicht(en) 128 und/oder die Klassenbezeichnungsschicht(en) 130 kann/können einen oder mehrere der hierin beschriebenen Schichttypen in Bezug auf die Merkmalsextraktorschicht(en) 126 verwenden. Wie hierin beschrieben ist, dürfen die Begrenzungspunktschicht(en) 128 und/oder die Klassenbezeichnungsschicht(en) 130 in einigen Beispielen keine vollständig verbundenen Schichten beinhalten, um die Verarbeitungsgeschwindigkeit zu reduzieren und den Bedarf an Rechenleistung zu verringern. In solchen Beispielen können die Begrenzungspunktschicht(en) 128 und/oder die Klassenbezeichnungsschicht(en) 130 als vollständig gefaltete Schichten bezeichnet werden.
  • Je nach Ausführungsform können unterschiedliche Reihenfolgen und Nummern der Schichten 126, 128 und 130 des Faltungsnetzes 104A verwendet werden. So kann beispielsweise für ein erstes Fahrzeug eine erste Reihenfolge und Anzahl der Schichten 126, 128 und/oder 130 vorhanden sein, während es für ein zweites Fahrzeug eine andere Reihenfolge und Anzahl der Schichten 126, 128 und/oder 130 geben kann; für eine erste Kamera kann es eine andere Reihenfolge und Anzahl der Schichten 126, 128 und/oder 130 geben als die Reihenfolge und Anzahl der Schichten für eine zweite Kamera. Mit anderen Worten, die Reihenfolge und Anzahl der Schichten 126, 128 und/oder 130 des Faltungsnetzes 104A ist nicht auf eine einzige Architektur beschränkt.
  • Darüber hinaus können einige der Schichten 126, 128 und/oder 130 Parameter beinhalten (z.B. Gewichte und/oder Verzerrungen) - wie die Merkmalsextraktorschicht(en) 126, die Begrenzungspunktschicht(en) 128 und/oder die Klassenbezeichnungsschicht(en) 130 - während andere dies nicht können, wie beispielsweise die ReLU-Schichten und Pooling-Schichten. In einigen Beispielen können die Parameter während des Trainings durch das/die Modell(e) 104A zum maschinellen Lernen gelernt werden. Darüber hinaus können einige der Schichten 126, 128 und/oder 130 zusätzliche Hyperparameter beinhalten (z.B. Lernrate, Schritt, Perioden, Kernelgröße, Anzahl der Filter, Art des Poolings für Pooling-Schichten usw.) - wie die Faltungsschicht(en), die Dekonvolutionsschicht(en) und die Pooling-Schicht(en) - während andere Schichten möglicherweise nicht, wie die ReLU-Schicht(en). Verschiedene Aktivierungsfunktionen können verwendet werden, einschließlich, aber nicht beschränkt auf, ReLU, undichte (leaky) ReLU, Sigmoid, hyperbolische Tangente (tanh), exponentielle lineare Einheit (ELU), etc. Die Parameter, Hyperparameter und/oder Aktivierungsfunktionen sollen nicht eingeschränkt werden und können je nach Ausführungsform unterschiedlich sein.
  • In jedem Beispiel kann die Ausgabe des Modells 104A zum maschinellen Lernen die Begrenzungspunkte 106 und/oder die Klassenbezeichnungen 108 sein. In einigen Beispielen können die Begrenzungspunktschicht(en) 128 die Begrenzungspunkte 106 und die Klassenbezeichnungsschicht(en) 130 die Klassenbezeichnungen 108 ausgeben. Daher kann/können die Merkmalsextraktorschicht(en) 126 als erster Faltungsstrom, die Begrenzungspunktschicht(en) 128 als zweiter Faltungsstrom und/oder die Klassenbezeichnungsschicht(en) 130 als dritter Faltungsstrom bezeichnet werden.
  • In einigen Beispielen, wie beispielsweise wenn zwei oder mehr Begrenzungen mit einer Regression durch das/die Modell(e) 104 zum maschinellen Lernen bestimmt werden, kann für jede Begrenzung ein separater Strom von Begrenzungspunktschicht(en) und/oder Klassenbeschriftungsschicht(en) vorhanden sein (nicht dargestellt). So kann beispielsweise für eine zweite Begrenzung zusätzlich zur ersten Begrenzung ein vierter Faltungsstrom der Begrenzungspunktschicht(en) verwendet werden, um die Begrenzungspunkte 106 für die zweite Begrenzung zu bestimmen, und ein fünfter Faltungsstrom der Klassenbezeichnungsschicht(en) 130 kann verwendet werden, um die zugehörigen Klassenbezeichnungen 108 für die zweite Begrenzung zu bestimmen. Somit kann jeder Begrenzung eine oder mehrere Begrenzungspunktschichten und/oder Klassenbezeichnungsschichten zugeordnet sein. In solchen Beispielen kann eine zusätzliche Klasse oder ein zusätzlicher Parameter durch das/die Modell(e) 104 zum maschinellen Lernen für überfahrbare oder nicht überfahrbare Begrenzungen gelernt werden. So können beispielsweise einige Begrenzungen, die den befahrbaren Freiraum von dem nicht befahrbaren Raum trennen, überfahrbar sein, wie z.B. ein Bordstein, eine Gras- oder Kiesfläche usw., während andere Begrenzungen nicht überfahrbar sein können, wie z.B. Gebäude, Fahrzeuge, Fußgänger usw. Somit kann/können das/die Modell(e) 104 zum maschinellen Lernen trainiert werden, um Parameter zu bestimmen, die den Begrenzungsklassen oder -typen zugeordnet sind, wie beispielsweise überfahrbare und nicht überfahrbare Begrenzungsklassen oder -typen, zusätzlich oder alternativ zum Bestimmen der Klassen selbst (z.B. Fahrzeuge, Fußgänger, Bordsteine, Barrieren usw.).
  • 1C ist eine weitere Darstellung eines exemplarischen Modells 104B zum maschinellen Lernen zur Begrenzungsidentifizierung gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Modell 104 zum maschinellen Lernen kann ein nicht einschränkendes Beispiel für das/die Modell(e) 104 zum maschinellen Lernen zur Verwendung im Verfahren 100 von 1A sein. Das Modell 104B zum maschinellen Lernen kann ein faltendes neuronales Netz sein und daher hierin als faltendes neuronales Netz 104B oder Faltungsnetz 104B bezeichnet werden. In einigen Beispielen kann das Faltungsnetz 104B eine beliebige Anzahl und Art von verschiedenen Schichten beinhalten, obwohl einige Beispiele keine vollständig verbundenen Schichten beinhalten, um die Verarbeitungsgeschwindigkeit zu erhöhen und den Rechenaufwand zu reduzieren, damit das Verfahren 100 in Echtzeit (z.B. bei 30 fps oder mehr) ausgeführt werden kann.
  • Das Faltungsnetz 104B kann in einigen Beispielen (eine) Merkmalsextraktorschicht(en) 132, (eine) Begrenzungspunktschicht(en) 134 und/oder (eine) Klassenbezeichnungsschicht(en) 136 beinhalten, die der/den Merkmalsextraktorschicht(en) 126, der/den Begrenzungspunktschicht(en) 128 und/oder der/den Klassenbezeichnungsschicht(en) 130 von 1B entsprechen können. Die Merkmalsextraktorschicht(en) 132 kann/können beliebig viele Schichten beinhalten, jedoch beinhalten die Merkmalsextraktorschichten 132 in einigen Beispielen achtzehn oder weniger Schichten, um den Datenspeicherbedarf zu minimieren und die Verarbeitungsgeschwindigkeit für das Faltungsnetz 104B zu erhöhen. In einigen Beispielen beinhaltet/n die Merkmalsextraktorschicht(en) 132 Faltungsschichten, die 3 × 3 Faltungen für jede ihrer Schichten einsetzen, mit Ausnahme der ersten Faltungsschicht in einigen Beispielen, die einen 7 × 7 Faltungskern einsetzen kann. Darüber hinaus kann es in einigen Beispielen vorkommen, dass die Merkmalsextraktorschicht(en) 132 keine Übersprungverbindungen (skip connections) enthält, was sich von herkömmlichen Systemen unterscheidet und die Verarbeitungszeiten und die Genauigkeit des Systems erhöhen kann.
  • In einigen Beispielen kann/können die Merkmalsextraktionsschicht(en) 132 der in 8 dargestellten und im begleitenden Text beschriebenen Struktur der vorläufigen US-Patentanmeldung mit der Nummer 62/631,781 und dem Titel „Method for Accurate Real-Time Object Detection and for Determining Confidence of Object Detection Suitable for Autonomous Vehicles“, eingereicht am 18. Februar 2018 (im Folgenden als „781er Anmeldung“ bezeichnet), ähnlich sein. In einigen Beispielen kann/können die Merkmalsextraktorschicht(en) 132 der vorliegenden Offenbarung jedoch einen Netzwerkschritt von 32 im Vergleich zu 16 in der Struktur der 781er Anwendung beinhalten (z.B. kann die Eingabe um 32 statt 16 downsampled werden). Durch die Verwendung von 16 statt 32 als Schritt kann das Faltungsnetz 104B schneller berechnet werden, ohne dabei viel, wenn überhaupt, an Genauigkeit zu verlieren. Darüber hinaus kann/können in einigen Beispielen die Merkmalsextraktorschicht(en) 132 eine angewandte Poolgröße von 2 × 2 anstelle von 3 × 3 verwenden, wie in der 781er Anmeldung angegeben ist.
  • Die Merkmalsextraktorschicht(en) 132 kann/können kontinuierlich die räumliche Auflösung des Eingabebildes einem Downsampling unterziehen, bis die Ausgabeschichten erreicht sind (z.B. Downsampling von einer 960 × 544 × 3 Eingabe-Raum-Auflösung bei den Merkmalsextraktorschicht(en) 132, auf 480 × 272 × 64 bei der Ausgabe der ersten Merkmalsextraktorschicht, auf 240 × 136 × 64 bei der Ausgabe der zweiten Merkmalsextraktorschicht, auf 30 × 17 × 12 bei der Ausgabe der letzten der Merkmalsextraktorschichten 132). Die Merkmalsextraktorschicht(en) 132 kann/können trainiert werden, um eine hierarchische Darstellung des/r Eingabebildes/r (oder anderer Sensordatenrepräsentationen) zu erzeugen, die von den Sensordaten 102 und/oder vorverarbeiteten Sensordaten empfangen werden, wobei jede Schicht eine Extraktion einer höheren Ebene erzeugt als ihre vorhergehende Schicht. Mit anderen Worten kann die Eingabeauflösung über die Merkmalsextraktorschicht(en) 132 (und/oder zusätzliche oder alternative Schichten) verringert werden, so dass das Faltungsnetz 104B in der Lage ist, Bilder schneller zu verarbeiten als herkömmliche Systeme.
  • Die Begrenzungspunktschicht(en) 134 und/oder die Klassenbezeichnungsschicht(en) 136 kann/können die Ausgabe der Merkmalsextraktorschicht(en) 132 als Eingabe übernehmen. Die Begrenzungspunktschicht(en) 134 kann/können zur Regression der Begrenzungspunkte 106 und die Klassenbezeichnungsschicht(en) 136 zum Vorhersagen von Klassenbezeichnungen 108, die den von der/den Begrenzungspunktschicht(en) 132 einer Regression unterzogenen Begrenzungspunkten 106 entsprechen können, verwendet werden. Die Begrenzungspunktschicht(en) 134 und/oder die Klassenbezeichnungsschicht(en) 136 können eine beliebige Anzahl oder einen beliebigen Typ von Schichten beinhalten, aber in einigen Beispielen können die Begrenzungspunktschichten 134 und/oder die Klassenbezeichnungsschicht(en) 136 drei Schichten beinhalten.
  • So kann beispielsweise für die Begrenzungspunktschicht(en) 134 eine erste Schicht, Conv. 128, die Anzahl der Merkmalskarten von der Ausgabe der Merkmalsextraktorschicht(en) 132 reduzieren. Eine zweite Schicht, Deconv. 1, kann die Eingabe von der ersten Schicht entlang der Breite einem Upsampling unterziehen, um einen Punkt entlang jeder Spalte des Bildes zu erhalten (z.B. basierend auf der räumlichen Breite und damit der Anzahl der Spalten von Pixeln der Eingabe für das Modell 104B zum maschinellen Lernen, wie beispielsweise die Sensordaten 102). Die dritte oder Ausgabeschicht, Conv. 1, kann die Höhe des Ausgabefelds auf eins reduzieren.
  • Für die Klassenbezeichnungs-Schichten 136 kann eine erste Schicht, Conv. 128, die Anzahl der Merkmalskarten von der Ausgabe der Merkmalsextraktionsschicht(en) 132 reduzieren. Eine zweite Schicht, Deconv. 4, kann die Eingabe aus der ersten Schicht entlang der Breite einem Upsampling unterziehen, um eine Anzahl von Klassenbezeichnungsvorhersagen entlang jeder Spalte des Bildes zu erhalten, die der Anzahl der Klassen entspricht, für die das Modell 104B zum maschinellen Lernen trainiert wurde (z.B. kann in diesem Beispiel die Anzahl der Klassen vier sein). Die dritte Schicht oder Ausgabeschicht, Conv. 4, kann die Höhe des Ausgabefelds auf die Anzahl der Klassen reduzieren, für die das Modell 104B zum maschinellen Lernen trainiert ist, eine Vorhersage zu treffen, (z.B. auf vier), so dass das Ausgabefeld für jede Spalte ein Konfidenzniveau oder eine Wahrscheinlichkeit für jede Begrenzungs-Klasse oder -Typ für den entsprechenden Begrenzungspunkt 106 aus der entsprechenden Spalte in der Ausgabe der Begrenzungspunktschichten 134 aufweist.
  • In einigen Beispielen kann die Ausgabe des/der Modells/e 104 zum maschinellen Lernen unter Bezugnahme auf 1D die Begrenzungspunkte 106 und die Klassenbezeichnung(en) 108 beinhalten. So kann beispielsweise die Ausgabe der Begrenzungspunkte 106, wie hierin beschrieben, ein eindimensionales Feld mit einer Zeile 138 und einer Anzahl (1-N) von Spalten 140 beinhalten, die der räumlichen Breite des Eingabebildes für das/die Modell(e) zum maschinellen Lernen entspricht. Wenn das Eingabebild beispielsweise eine räumliche Breitenabmessung von 1080 Pixel hat, kann N gleich 1080 sein. Somit kann jede Zelle des Felds einen Wert (von 0 bis 1) beinhalten, der einem Prozentsatz der räumlichen Höhe des Eingabebildes entspricht, in dem sich der Begrenzungspunkt 106 befindet (z.B. das Pixel, das der ersten Begrenzung in der Spalte entspricht, von unten nach oben, das den befahrbaren Freiraum vom nicht befahrbaren Raum trennt). Als Beispiel kann Spalte 140(1) der ersten Spalte von Pixeln in dem Eingabebild entsprechen und einen Wert von 0,4 (z.B. 40% der Höhe) aufweisen. Wenn die räumliche Höhenabmessung des Bildes 920 Pixel beträgt, dann kann das 368-te Pixel (z.B. 40% von 920) vom Boden der Spalte 140(1) als Begrenzungspunkt 106 für die Spalte 140(1) des Eingabebildes identifiziert werden.
  • Als weiteres Beispiel kann die Ausgabe der Klassenbezeichnungen 108, wie hierin beschrieben ist, ein zweidimensionales Feld mit einer Anzahl (1-K) von Zeilen 142 beinhalten, die einer Anzahl von Begrenzungs-Klassen oder -Typen entspricht, für die das/die Modell(e) zum maschinellen Lernen 104 trainiert wurden, um vorherzusagen. Daher kann jede Zeile einer anderen Begrenzungsklasse oder einem anderen Begrenzungstyp entsprechen. Die Anzahl (1-M) der Spalten 144 kann der räumlichen Breite des Eingabebildes für das/die Modell(e) 104 zum maschinellen Lernen entsprechen. Wenn beispielsweise das/die Modell(e) zum maschinellen Lernen 104 trainiert wird/werden, um fünf Klassen vorherzusagen, dann kann K gleich 5 sein, und wenn das Eingabebild eine räumliche Breitenabmessung von 1080 Pixeln hat, dann kann M gleich 1080 sein.
  • Somit kann jede Zelle des Felds einen Wert (von 0 bis 1) beinhalten, der einem Vertrauensniveau oder einer Wahrscheinlichkeit des Begrenzungspunktes 106 der entsprechenden Spalte 140 in dem Begrenzungspunktfeld entspricht, die zu der der Zeile 142 zugeordneten Begrenzungsklasse oder -typ gehört. Als Beispiel kann Spalte 144(1) der Spalte 140(1) des Begrenzungspunktfelds entsprechen, und Zeile 142(1) kann einer Klassenbezeichnung 108 für Fußgänger entsprechen. Somit kann der Wert 0,7 der Zelle in Zeile 142(1) und Spalte 144(1) einem Vertrauensniveau oder einem Prozentsatz entsprechen, dass die Begrenzungsklasse oder der Typ des Begrenzungspunkts in Zeile 138, Spalte 140(1) der Begrenzungspunktanordnung eine Begrenzung der Klasse oder des Typs Fußgänger ist. In diesem Beispiel kann unter der Annahme, dass 0,7 der höchste Wert ist, die Bestimmung sein, dass der Begrenzungspunkt 106 in Zeile 138, Spalte 140(1) des Begrenzungspunktfelds einem Fußgänger entspricht.
  • Dieses Verfahren oder die Korrelation von Begrenzungspunktstellen mit Klassenbezeichnungen kann für jede der Spalten des Eingabebildes durchgeführt werden. Infolgedessen und nach der Nachbearbeitung bei einigen Beispielen kann der Fahr-Stack 146 eine oder mehrere Operationen zum Navigieren oder Steuern des Fahrzeugs 700 basierend auf den Pixelpositionen der Begrenzungspunkte 106 im Eingabebild und den dazu zugeordneten Klassenbezeichnungen 108 bestimmen.
  • Unter Bezugnahme auf 2 umfasst jeder Block des Verfahrens 200 und andere hierin beschriebene Verfahren ein Rechenverfahren, das mit einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. So können beispielsweise verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Die Verfahren können auch als computerverwendbare Anweisungen ausgeführt werden, die auf Computerspeichermedien gespeichert sind. Die Verfahren können durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 200 exemplarisch für das Verfahren 100 von 1A beschrieben. Das Verfahren 200 kann jedoch zusätzlich oder alternativ von einem einzelnen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hierin beschriebenen.
  • 2 ist ein exemplarisches Flussdiagramm für ein Verfahren 200 zum Bestimmen einer Begrenzung gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 200, bei Block B202, beinhaltet das Empfangen bzw. Erfassen von Sensordaten. So können beispielsweise die Sensordaten 102 und/oder vorverarbeitete Sensordaten empfangen werden. Die Sensordaten können von einem oder mehreren Sensoren des Fahrzeugs 700 erfasst werden und können (ein) Sichtfeld(er) des/der Sensoren darstellen oder anderweitig einen oder mehrere Aspekte der physischen Umgebung darstellen (z.B. können die Sensordaten bei einem GPS-Sensor Koordinaten oder Positionen innerhalb der physischen Umgebung darstellen). So können beispielsweise die Sensordaten 102 Bilddaten beinhalten, die Bilder eines oder mehrerer Sichtfeldes/r einer oder mehrerer Kameras des Fahrzeugs 700 darstellen.
  • Das Verfahren 200, bei Block B204, beinhaltet das Anwenden der Sensordaten auf ein neuronales Netz. So können beispielsweise die Sensordaten und/oder die vorverarbeiteten Sensordaten auf das/die Modell(e) 104 zum maschinellen Lernen angewendet werden. Das/die Modell(e) zum maschinellen Lernen 104, wie hierin beschrieben ist, kann/können trainiert werden, um die Begrenzungspunkte 106 und die Klassenbezeichnungen 108 zu berechnen.
  • Das Verfahren 200, bei Block B206, beinhaltet das Berechnen eines Satzes von Punkten, die einer Begrenzung entsprechen, die den befahrbaren Freiraum aus dem nicht befahrbaren Raum ableiten, durch einen ersten Strom des neuronalen Netzes. So kann/können beispielsweise das/die Modell(e) zum maschinellen Lernen 104 basierend auf den Sensordaten die Begrenzungspunkte 106 für eine oder mehrere Begrenzungen berechnen. Die Begrenzungspunkte 106 können durch einen ersten Strom (z.B. die Begrenzungspunktschichten 128) des/der Modell(e) zum maschinellen Lernen 104 berechnet werden.
  • Das Verfahren 200, bei Block B208, beinhaltet das Berechnen von Klassenbezeichnungen für Punkte des Satzes von Punkten durch einen zweiten Strom des neuronalen Netzes. So kann beispielsweise das/die Modell(e) zum maschinellen Lernen 104 basierend auf den Sensordaten Klassenbezeichnungen 108 berechnen, die den Begrenzungspunkten 106 entsprechen. Die Klassenbezeichnungen 108 können durch einen zweiten Strom (z.B. die Klassenbezeichnungsschichten 130) des/der Modell(e) zum maschinellen Lernen 104 berechnet werden.
  • Das Verfahren 200, bei Block B210, beinhaltet das Bestimmen von Positionen innerhalb einer physischen Umgebung, die den Mengen von Punkten entsprechen. So können beispielsweise die aus den Begrenzungspunkten 106 bestimmten Punkt- oder Pixelpositionen verwendet werden, um entsprechende Positionen innerhalb der realen Umgebung für die Begrenzung zu bestimmen, die den befahrbaren Freiraum vom nicht befahrbaren Raum trennt.
  • Das Verfahren 200 bei Block B212 beinhaltet das Ausführen einer oder mehrerer Operationen zum Steuern des Fahrzeugs. So können beispielsweise eine oder mehrere Operationen zur Steuerung des Fahrzeugs 700 in der realen Umgebung ausgeführt werden. In einigen Beispielen können die aus den Positionen der Begrenzungspunkte 106 bestimmten Klassenbezeichnungen und realen Positionen vom Fahr-Stack 146 verwendet werden, um eine oder mehrere Operationen zu bestimmen (z.B. Weltmodellaktualisierungen, Trajektorien, Steuerungen, Betätigungen usw.).
  • Das Verfahren 200 kann, wie durch den gestrichelten Pfeil angezeigt ist, für jeden Sensordateneingabe wiederholt werden.
  • Training des/der Modell(e) zum maschinellen Lernen
  • In einigen Beispielen kann/können das/die Modell(e) zum maschinellen Lernen 104 (z.B. ein neuronales Netz) mit Trainingsbildern (z.B. Trainingsbildern 300A, 300B und/oder 500) trainiert werden, die ein Bild und eine oder mehrere zugehörige Anmerkungen, Bezeichnungen oder Masken enthalten. So können beispielsweise Anmerkungen mit dem Bild und den Trainingsbildern verknüpft und als Ground-Truth-Daten für das Training des/der Modell(e) zum maschinellen Lernen 104 verwendet werden. Die Anmerkungen für die Trainingsbilder können innerhalb eines Zeichenprogramms (z.B. eines Anmerkungsprogramms), eines computergestützten Konstruktionsprogramms (CAD), eines Bezeichnungsprogramms, eines anderen Programmtyps, der für die Erstellung der Anmerkungen geeignet ist, und/oder in einigen Beispielen manuell erstellt werden. Bei jedem Beispiel können die Anmerkungen synthetisch hergestellt (z.B. aus Computermodellen oder durch Rendering generiert), real produziert (z.B. aus realen Daten entworfen und produziert), maschinenautomatisiert (z.B. durch Merkmalsanalyse und Lernen, um Merkmale aus Daten zu extrahieren und dann Bezeichnungen zu generieren), menschlich angemerkt (z.B. ein Bezeichner oder Anmerkungsexperte definiert die Position der Bezeichnungen) und/oder eine Kombination davon (z.B. ein Mensch formuliert eine oder mehrere Regeln oder Bezeichnungs-Konventionen, und eine Maschine erzeugt die Anmerkungen) sein.
  • Die Ergebnisse des/der Modells/e zum maschinellen Lernen 104 kann/können mit Hilfe einer oder mehrerer Verlustfunktionen mit den Ground-Truth-Daten (z.B. den Trainingsbildern) verglichen werden. So kann/können beispielsweise das/die Modell(e) zum maschinellen Lernen 104 mit den Trainingsbildern unter Verwendung mehrerer Iterationen trainiert werden, bis der Wert einer/von Verlustfunktion(en) des/der Modells/e zum maschinellen Lernen 104 unter einem Schwellenwert (z.B. einem akzeptablen Verlust) liegt.
  • So kann beispielsweise das/die Modell(e) zum maschinellen Lernen 104 Rechenvorgänge in Vorwärtsrichtung an den Darstellungen (z.B. Bildern) der Sensordaten 102 und/oder vorverarbeiteten Sensordaten durchführen, um die Begrenzungspunkte 106 und die Klassenbezeichnungen 108 zu erzeugen. Die Verlustfunktion(en) kann/können verwendet werden, um Fehler in den Vorhersagen des/der Modells/e zum maschinellen Lernen 104 unter Verwendung von Ground-Truth-Daten zu messen, wie hierin in Bezug auf zumindest 3A-6 näher beschrieben ist. In einigen Beispielen kann eine Kreuzentropie-Verlustfunktion (z.B. eine binäre Kreuzentropie) und/oder eine L1-Verlustfunktion verwendet werden.
  • In einigen Beispielen können für die Begrenzungspunkte 106 und die Klassenbezeichnungen 108 unterschiedliche Verlustfunktionen verwendet werden. So können beispielsweise die Begrenzungspunkte 106 einer L1-Verlustfunktion zugeordnet werden, die durch die folgende Beziehung der Gleichung (13) dargestellt wird: L 1 L o s s : L ( y , x ) = | y f w ( x ) |
    Figure DE112019000048T5_0013
    wobei y ein Feld von Ground-Truth-Begrenzungspunkten basierend auf den Anmerkungen ist, | | die Absolutwertfunktion ist und fw ein Feld von vorhergesagten Begrenzungspunkten 106 ist, die von dem/den Modell(en) zum maschinellen Lernens 104 ausgegeben werden (z.B. das Begrenzungspunkt-Feld von 1D).
  • Als weiteres Beispiel können die Klassenbezeichnungen 108 einer Kreuzentropie-Verlustfunktion zugeordnet werden, die durch die Beziehung der Gleichung (14) unten dargestellt wird: K r e u z e n t r o p i e v e r l u s t : L ( y , x ) = i = 1 n y i log ( f i , w ( x ) )
    Figure DE112019000048T5_0014
    wobei yi ein binärer Indikator (1 oder 0) ist, wenn i die Klassenbezeichnung für die Eingabe x ist, ist fi,w die Wahrscheinlichkeit, dass das/die Modell(e) zum maschinellen Lernen 104 voraussagt, dass i die Klassenbezeichnung für die Eingabe x ist, und log bezeichnet die logarithmische Funktion.
  • In einigen Beispielen kann eine gewichtete Kombination aus der Begrenzungspunkt-Verlustfunktion (z.B. L1-Verlust) und der Klassenbezeichnungs-Verlustfunktion (z.B. dem Kreuzentropie-Verlust) verwendet werden, um den endgültigen Verlust zu berechnen. So kann beispielsweise ein Gewichtsverhältnis von 1:10 (z.B. Begrenzungspunkt: Klassenbezeichnung) verwendet werden. Dies soll jedoch nicht dazu dienen, andere Gewichtungsverhältnisse auszugrenzen, die ohne Abweichung vom Umfang der vorliegenden Offenbarung verwendet werden können. In einigen Beispielen kann ein Auto-Gewichtsschema verwendet werden, das die Kostengewichte adaptiv oder automatisch anpasst, wenn nur die Soll-Gewichtsverhältnisse für die gewichteten Verluste angegeben werden.
  • So können beispielsweise Begrenzungspunktkosten und ein entsprechendes Kostengewicht durch Lboundary bzw. wboundary und die Kosten der Klassenbezeichnung und das entsprechende Kostengewicht durch Llabel bzw. wlabel gekennzeichnet werden. In einem solchen Beispiel können die Gewichte, w, so gewählt werden, dass das Gleichungsverhältnis (15) erfüllt ist: L b o u n d a r y w b o u n d a r y L l a b e l w l a b e l = K b o u n d a r y
    Figure DE112019000048T5_0015
    wobei Kboundary das Sollverhältnis für den gewichteten Verlust ist. Da die Gewichte auch eine Summe von eins haben müssen, können die folgenden Ausdrücke der Gleichungen (16) und (17) abgeleitet werden: w b o u n d a r y = K b o u n d a r y L l a b e l K b o u n d a r y L l a b e l + L b o u n d a r y
    Figure DE112019000048T5_0016
    w l a b e l = L b o u n d a r y K b o u n d a r y L l a b e l + w L b o u n d a r y
    Figure DE112019000048T5_0017
  • Diese Regel kann regelmäßig, z.B. einmal pro Trainingsperiode, zur Festlegung der Gewichte verwendet werden. Somit können die Kosten in der Regel aus den Trainingsdaten (z.B. den Ground-Truth-Daten) berechnet werden, um eine Überanpassung an die Trainingsdaten zu verhindern. Die Gewichte können somit adaptiv so eingestellt werden, dass nach der Konvergenz das gewünschte Zielverhältnis für die gewichteten Verluste erreicht werden kann.
  • Rechenvorgänge in Rückwärtsrichtung können durchgeführt werden, um rekursiv Gradienten der Verlustfunktion in Bezug auf Trainingsparameter zu berechnen. In einigen Beispielen können Gewichte und Bias des/der Modells/e zum maschinellen Lernen 104 verwendet werden, um diese Gradienten zu berechnen. In einigen Beispielen kann ein Optimierer verwendet werden, um die Trainingsparameter (z.B. Gewichte, Bias, etc.) anzupassen. So kann beispielsweise ein oder mehrere Adam-Optimierer, ein stochastisches Gradientenverfahren oder ein stochastisches Gradientenverfahren mit einem Momentumterm verwendet werden. Das Trainingsverfahren kann wiederholt werden, bis die trainierten Parameter zu optimalen, gewünschten und/oder akzeptablen Werten konvergieren.
  • In 3A ist ein exemplarisches Trainingsbild 300A für ein Modell zum maschinellen Lernen in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung dargestellt. Die mit dem Bild verbundenen Anmerkungen können das Kommentieren eines Punktes entlang jeder Spalte von Pixeln des Bildes von unten nach oben beinhalten, wobei ein Punkt einer ersten Position einer Begrenzung entspricht, die den befahrbaren Freiraum von dem nicht befahrbaren Raum trennt. Infolgedessen kann, sobald ein Punkt identifiziert und in jeder Spalte bezeichnet ist, eine vollständige Begrenzung bezeichnet werden. Die Anmerkungen können zugeordnete Klassenbezeichnungen beinhalten, so dass jeder Punkt entlang der Begrenzung eine zugeordnete Begrenzungsklasse oder Begrenzungstyp aufweist (z.B. Fußgänger, Fahrzeug, Bordstein, Barriere, alles, etc.). Bei einigen Beispielen können die Anmerkungen segmentierte oder diskontinuierliche Begrenzungen beinhalten (z.B. solange ein Pixel für jede Pixelspalte des Bildes eine Anmerkung enthält), während bei anderen Beispielen die Anmerkungen kontinuierliche Begrenzungskurven beinhalten können (z.B. können die Segmente zu einer kontinuierlichen Kurve verbunden werden).
  • In Bezug auf das Trainingsbild 300A kann das Trainingsbild 300A unter der Annahme, dass das/die Modell(e) zum maschinellen Lernen 104 trainiert ist/sind, um mindestens drei Klassen (z.B. Fußgänger, Fahrzeuge und/oder Bordsteine oder Barrieren) vorherzusagen, zugehörige Anmerkungen 312 für eine Klassenbezeichnung eines Bordsteins oder einer Barriere 306 (z.B, wie durch den Bordstein oder die Barriere 306A und 306B angegeben), Anmerkungen 310 für eine Klassenbezeichnung eines Fahrzeugs 304 (z.B. wie durch die Fahrzeuge 304A und 304B angegeben) und Anmerkungen 308 für einen Fußgänger 302 (z.B. wie durch die Fußgänger 302A und 302B angegeben) aufweisen. In einigen Beispielen können die Anmerkungen der Form oder Kontur der Begrenzung entsprechen (z.B. die Anmerkungen 312 für die Barrieren 306 und die Anmerkungen 310 für das Fahrzeug 304), während in anderen Beispielen, z.B. wenn die Begrenzungsklasse oder der Begrenzungstyp schwieriger abzugrenzen ist, die Anmerkungen nicht der Form oder Kontur der Begrenzung entsprechen können (z.B. die Anmerkungen 308 für die Fußgänger 302). Wenn die Anmerkungen nicht mit der Form oder Kontur der Begrenzung übereinstimmen, können Liniensegmente (z.B. gebogene Liniensegmente, gerade Liniensegmente usw.) verwendet werden. Im Beispiel der Fußgänger 302 können die Anmerkungen 308 gerade Liniensegmente beinhalten, die sich entlang der Querabmessung der Fußgänger von einem untersten Abschnitt der Fußgänger 302 erstrecken (z.B. von einem Punkt, der der Unterseite des Bildes und damit dem Fahrzeug 700 in realen Koordinaten am nächsten liegt). Obwohl beispielsweise eine Anmerkung, die einem Spalt zwischen den Beinen des Fußgängers 302A folgt, am ehesten der Form des Fußgängers 302A entspricht, kann die gerade Linienanmerkung 308 verwendet werden, um Sicherheit und Genauigkeit zu gewährleisten. Insbesondere können die Anmerkungen 308 oder andere ähnliche Anmerkungen für andere Begrenzungstypen (z.B. Fahrzeugen, in einigen Beispielen) vorgenommen werden, um zu verhindern, dass der von einem Teil des Fußgängers 302A belegte Raum als befahrbarer Freiraum bestimmt wird. Insbesondere bei dynamischen Objekten kann ein Unterschätzen des vorhergesagten befahrbaren Freiraums dem Überschätzen vorzuziehen sein.
  • In einigen Beispielen, z. B. wenn sich eine Straße oder eine Fahrbahn in einen Horizont erstreckt, können die Anmerkungen und/oder das Trainingsbild abgeschnitten oder gehalten werden. So kann beispielsweise ein Prozentsatz des oberen Teils des Bildes und/oder der zugehörigen Anmerkungen entfernt werden, und/oder das/die Modell(e) zum maschinellen Lernen 104 kann/können trainiert werden, um die oberen gehalten oder abgeschnittenen Teile des Bildes zu ignorieren oder weniger Gewicht zu verleihen. Infolgedessen kann der Fahr-Stack 146 die bestimmten Begrenzungspunkte 106 und/oder Klassenbezeichnungen 108 in weiteren Abständen nicht oder in geringerem Maße berücksichtigen.
  • 3B ist ein weiteres Beispiel für ein Trainingsbild 300B für ein Modell zum maschinellen Lernen in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. In Bezug auf das Trainingsbild 300B kann das Trainingsbild 300B unter der Annahme, dass das/die Modell(e) zum maschinellen Lernen 104 trainiert ist/sind, um mindestens drei Klassen (z.B. Fahrzeuge, Bordsteine oder Barrieren und eine alles einsammelnde Klasse) vorherzusagen, zugehörige Anmerkungen 314 für eine Klassenbezeichnung eines Bordsteins oder einer Barriere 306 (z.B, wie durch den Bordstein oder die Barriere 306C und 306D angegeben), Anmerkungen 316 für eine Klassenbezeichnung eines Fahrzeugs 304 (z.B., wie durch die Fahrzeuge 304C und 304D angegeben) und Anmerkungen 318 für eine Klassenbezeichnung für eine alles einsammelnde Klasse. Bei einigen Beispielen, wie beispielsweise im Trainingsbild 300B, kann versucht werden, das/die Modell(e) zum maschinellen Lernen 104 zu trainieren, um scharfe oder unregelmäßige Änderungen zwischen den Begrenzungen zu vermeiden. Dadurch können die Begrenzungspunkte so markiert werden, dass die scharfen Übergänge vermieden werden. In Bezug auf das Trainingsbild 300B können die Begrenzungspunkte zwischen dem Fahrzeug 304D und dem Bordstein oder der Barriere 306C und die Begrenzungspunkte zwischen dem Fahrzeug 304D und dem Fahrzeug 304C einen weicheren Übergang aufweisen, wie es dargestellt ist. In solchen Beispielen kann der Abschnitt der Begrenzung (z.B. entsprechend den Anmerkungen 318), der zwischen dem Fahrzeug 304D und dem Bordstein oder der Barriere 306C übergeht, und der Abschnitt der Begrenzung, der zwischen dem Fahrzeug 304D und dem Fahrzeug 304C übergeht, als alles einsammelnde Klasse bezeichnet werden (oder als Fahrzeugklasse bezeichnet werden, um der dynamischen Natur der umgebenden Fahrzeuge 304C und 304D zu entsprechen). In jedem Beispiel kann die Begrenzung, die den befahrbaren Freiraum vom nicht befahrbaren Raum trennt, durch Training des/der Modells/e zum maschinellen Lernen 104, um weniger scharfe oder drastische Änderungen zwischen den Begrenzungstypen zu bestimmen und somit eine gleichmäßigere Begrenzungsausgabe zu bestimmen, vom Fahrzeug 700 besser verstanden werden (z.B. durch den Fahr-Stack 146).
  • Unter Bezugnahme auf 4 umfasst jeder Block des hierin beschriebenen Verfahrens 400 ein Rechenverfahren, das mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. So können beispielsweise verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann auch als computerverwendbare Anweisungen ausgeführt werden, die auf Computerspeichermedien gespeichert sind. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 400 exemplarisch in Bezug auf das Verfahren 100 von 1A beschrieben. Dieses Verfahren kann jedoch zusätzlich oder alternativ von einem einzelnen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hierin beschriebenen.
  • 4 ist ein exemplarisches Flussdiagramm für ein Verfahren 400 zum Training eines Modells zum maschinellen Lernen gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 400, bei Block B402, beinhaltet das Empfangen bzw. Erfassen eines Trainingsbildes. So kann beispielsweise ein Trainingsbild empfangen werden, das von einem Fahrzeug (z.B. dem Fahrzeug 700 oder einem anderen Fahrzeug) erzeugt wurde oder das von einer virtuellen Umgebung generiert wurde.
  • Das Verfahren 400, bei Block B404, beinhaltet das Empfangen bzw. Erfassen von Anmerkungsdaten, die für eine oder mehrere Anmerkungen entsprechend den Trainingsdaten repräsentativ sind. So können beispielsweise Anmerkungsdaten empfangen werden, die eine oder mehrere Begrenzungsbezeichnungen darstellen, die mit angemerkten Begrenzungspunkten übereinstimmen können. Darüber hinaus können Anmerkungsdaten empfangen werden, die Klassenbezeichnungen darstellen. So können beispielsweise vor, während oder nach der Kommentierung der Begrenzungspunkte Klassenbezeichnungen den Anmerkungen der Begrenzungsbezeichnungen zugeordnet werden. In einigen Beispielen kann ein anderes Werkzeug innerhalb eines Bezeichnungsprogramms verwendet werden, abhängig von der Begrenzungsklasse oder dem Typ, dem die angemerkte Begrenzungsbezeichnung entspricht. In solchen Beispielen kann die angemerkte Begrenzungsbezeichnung eine kontextuelle oder semantische Darstellung der Begrenzungsklasse oder des Begrenzungstyps darstellen oder sein. Das Ergebnis der Anmerkungen kann ähnlich zu den Trainingsbildern 300A und 300B visuell dargestellt werden.
  • Das Verfahren 400, bei Block B406, beinhaltet das Training eines neuronalen Netzes unter Verwendung der Anmerkungen als Ground-Truth-Daten. So können beispielsweise die Trainingsbilder einschließlich der zugehörigen Anmerkungen zum Trainieren des/der Modells/e zum maschinellen Lernen 104 verwendet werden (z.B. mit den hierin beschriebenen Verlustfunktionen).
  • In 5 ist ein weiteres Beispiel für ein Trainingsbild 500 für ein Modell zum maschinellen Lernen gemäß einigen Ausführungsformen der vorliegenden Offenbarung dargestellt. Das Trainingsbild 500 kann zugehörige Anmerkungen zum Trainieren des/r Modells/e zum maschinellen Lernen zur Vorhersage von zwei oder mehr Grenzen und der zugehörigen Klassenbezeichnungen beinhalten. So kann beispielsweise eine erste Anmerkung 502 (zumindest teilweise durch die Segmente 502A, 502B und 502C angegeben) einer ersten Begrenzung und eine zweite Anmerkung 504 (zumindest teilweise durch die Segmente 504A, 504B und 504C angegeben) einer zweiten Begrenzung entsprechen, die für die Zuordnung zum Bild erzeugt werden kann. In einigen Beispielen kann/können das/die Modell(e) zum maschinellen Lernen 104 trainiert werden, um zusätzliche Begrenzungen zu erzeugen, von oben nach unten, bis eine nicht überfahrbare Begrenzung bestimmt wird oder bis ein Schwellenwert der räumlichen Breite des Bildes nicht überfahrbare Begrenzungssegmente beinhaltet (das kann z.B. eine Kombination von Segmenten aus zwei oder mehr verschiedenen Begrenzungen sein). In solchen Beispielen kann es zu jedem Trainingsbild 500 zusätzliche Anmerkungen geben, die der jeweiligen Begrenzung entsprechen. In anderen Beispielen kann/können das/die Modell(e) zum maschinellen Lernen 104 trainiert werden, um eine bestimmte Anzahl von Begrenzungen zu erzeugen, wie beispielsweise zwei Begrenzungen in Bezug auf 5. In jedem Beispiel können die Begrenzungen ähnlich der hierin beschriebenen Trainingsbilder 300A und 300B und die Trainingsbilder 300A und 300B ähnlich dem Trainingsbild 500 kommentiert werden.
  • Das Trainingsbild 500 kann die Anmerkung 502 der ersten Begrenzung und die Anmerkung 504 der zweiten Begrenzung aufweisen. Unter der Annahme, dass das/die Modell(e) zum maschinellen Lernen 104 trainiert ist/sind, um mindestens vier Klassen und/oder Parameter (z.B. Fahrzeuge, Bordsteine oder Barrieren, überfahrbar, nicht überfahrbar) zu erkennen, können die Anmerkungen 502 der ersten Begrenzung eine Klassenbezeichnung für einen Bordstein oder eine Barriere, eine Klassenbezeichnung für ein Fahrzeug 506, eine Klassenbezeichnung oder einen Parameter für einen nicht überfahrbaren Begrenzungstyp (z.B, das Fahrzeug 506, entlang des Segments 502B), und/oder eine Klassenbezeichnung oder einen Parameter für einen überfahrbaren Begrenzungstyp (z.B. den Bordstein oder die Barriere 516, entlang der Segmente 502A) aufweisen. Ebenso können die Anmerkungen 504 in Bezug auf die zweite Begrenzung eine Klassenbezeichnung für einen Bordstein oder eine Barriere 514, 510, 508, eine Klassenbezeichnung für ein Fahrzeug 512, eine Klassenbezeichnung oder einen Parameter für einen nicht überfahrbaren Begrenzungstyp (z.B. das Fahrzeug 512, den Bordstein oder die Barriere 510 und 508, entlang der Segmente 504A und 504C) und/oder eine Klassenbezeichnung oder einen Parameter für einen überfahrbaren Begrenzungstyp (z.B. den Bordstein oder die Barriere 514, entlang der Segmente 504B) beinhalten.
  • In einigen Beispielen kann das Segment abhängig von der Länge eines Segments einer überfahrbaren Begrenzung (z.B. entsprechend dem Segment 504C der Anmerkung 504) als nicht überfahrbar markiert werden. Obwohl beispielsweise der Typ der Begrenzung (z.B. ein Bordstein) überfahrbar sein kann, können die Umgebungsinformationen verwendet werden, um festzustellen, ob das Segment tatsächlich überfahrbar ist. In diesem Beispiel ist das Segment 504C möglicherweise nicht überfahrbar oder nicht sicher überfahrbar, da ein Fahrzeug 512 und eine Barriere 510 unmittelbar neben dem Segment 504C sein können. Somit kann das Segment 504C als nicht überfahrbar gekennzeichnet werden.
  • In einigen Beispielen, wie beispielsweise in der Abbildung von 5, kann es zwei oder mehr befahrbare Freiräume geben. So kann es beispielsweise einen ersten befahrbaren Freiraum 520 und einen zweiten fahrbaren Freiraum 518 geben. In solchen Beispielen kann der Bordstein oder die Barriere 516 eine Begrenzung aufweisen, die den ersten befahrbaren Freiraum 520 von dem zweiten befahrbaren Freiraum 518 trennt. In einigen Beispielen kann eine zusätzliche Begrenzung (nicht dargestellt) auf einer gegenüberliegenden Seite des Bordsteins oder der Barriere 516 (z.B. gegenüber der durch die Anmerkung 502 gekennzeichneten Begrenzung) vorhanden sein. In solchen Beispielen kann die Anmerkung 502 einer Begrenzung entsprechen, die einen befahrbaren Freiraum von einem nicht befahrbaren Raum trennt, und die zusätzliche Begrenzung kann den nicht befahrbaren Raum vom zweiten befahrbaren Freiraum 518 trennen.
  • Als ein weiteres Beispiel, wie z.B. wenn eine Spurzusammenführung in den Sensordaten erfasst wird, kann der Bereich zwischen den beiden Spuren vor der Zusammenführung einen nicht befahrbaren Bereich beinhalten. In einem solchen Beispiel können die Anmerkungen das Anmerken einer ersten Begrenzung, die den befahrbaren Freiraum einer ersten Fahrspur vom nicht befahrbaren Raum des Bereichs zwischen den beiden Fahrspuren vor dem Zusammenführen trennt, und einer zweiten Begrenzung, die den nicht befahrbaren Raum des Bereichs vom befahrbaren Freiraum einer zweiten Fahrspur trennt, beinhalten (z.B. die Fahrspur, die in die erste Fahrspur übergeht). Daher kann/können das/die Modell(e) 104 zum maschinellen Lernen trainiert werden, um mehr als einen befahrbaren Freiraum und/oder den nicht befahrbaren Freiraum dazwischen zu kommentieren.
  • Unter Bezugnahme auf 6 umfasst jeder Block des hierin beschriebenen Verfahrens 600 einen Rechenvorgang, der mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. So können beispielsweise verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Das Verfahren kann auch als computerverwendbare Anweisungen ausgeführt werden, die auf Computerspeichermedien gespeichert sind. Das Verfahren kann durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus wird das Verfahren 600 exemplarisch für das Verfahren 100 von 1A beschrieben. Dieses Verfahren kann jedoch zusätzlich oder alternativ von einem einzelnen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hierin beschriebenen.
  • 6 ist ein exemplarisches Flussdiagramm für ein Verfahren 600 zur Erkennung mehrerer Begrenzungen gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 600, bei Block B602, beinhaltet das Empfangen bzw. Erfassen von Sensordaten. So können beispielsweise die Sensordaten 102 und/oder vorverarbeitete Sensordaten empfangen werden. Die Sensordaten können von einem oder mehreren Sensoren des Fahrzeugs 700 erfasst werden und können (ein) Sichtfeld(er) des/der Sensors/en darstellen. So können beispielsweise die Sensordaten 102 Bilddaten beinhalten, die Bilder eines oder mehrerer Sichtfelder einer oder mehrerer Kameras des Fahrzeugs 700 darstellen.
  • Das Verfahren 600, bei Block B604, beinhaltet das Verarbeiten der Sensordaten mit einem/mehreren Modell(en) zum maschinell Lernen. So kann/können beispielsweise die Sensordaten und/oder die vorverarbeiteten Sensordaten mit dem/n Modell(en) 104 zum maschinellen Lernen verarbeitet werden. Das/die Modell(e) zum maschinellen Lernen 104, wie hierin beschrieben, kann/können trainiert werden, um die Begrenzungspunkte 106 und die Klassenbezeichnungen 108 für eine oder mehrere Begrenzungen zu berechnen.
  • Das Verfahren 600 bei Block B606 beinhaltet das Berechnen einer ersten Gruppe von Punkten, die einer überfahrbaren Begrenzung entsprechen. So kann beispielsweise eine erste Gruppe von Begrenzungspunkten durch das/die Modell(e) zum maschinellen Lernen 104 berechnet werden, die einer ersten Begrenzung entsprechen, welche den befahrbaren Freiraum vom nicht befahrbaren Raum in der realen Umgebung trennt, die eine überfahrbare Begrenzung sein kann. In einigen Beispielen können die Punkte der überfahrbaren Begrenzung einer einzigen Begrenzung entsprechen oder einem Abschnitt der ersten Begrenzung und einem Abschnitt der zweiten Begrenzung entsprechen.
  • Das Verfahren 600 bei Block B608 beinhaltet das Berechnen einer zweiten Gruppe von Punkten, die einer nicht überfahrbaren Begrenzung entsprechen. So kann beispielsweise eine zweite Gruppe von Begrenzungspunkten durch das/die Modell(e) zum maschinellen Lernen 104 berechnet werden, die einer zweiten Begrenzung entsprechen, welche den befahrbaren Freiraum vom nicht befahrbaren Raum in der realen Umgebung trennt, die eine nicht befahrbare Begrenzung sein kann. In einigen Beispielen können die Punkte der nicht überfahrbaren Begrenzung einer einzigen Begrenzung entsprechen oder einem Abschnitt der ersten Begrenzung und einem Abschnitt der zweiten Begrenzung entsprechen.
  • In einigen Beispielen kann die Berechnung der ersten Gruppe von Punkten bei Block B606 und die Berechnung der zweiten Gruppe von Punkten bei Block B608 parallel ausgeführt werden. So können beispielsweise eine oder mehrere GPUs verwendet werden, um die erste Gruppe von Punkten parallel zur zweiten Gruppe von Punkten zu berechnen, um die Verarbeitungsgeschwindigkeit zu erhöhen, damit das/die Modell(e) zum maschinellen Lernen 104 in Echtzeit ausgeführt werden kann/können.
  • Das Verfahren 600 bei Block B610 beinhaltet das Ausführen einer oder mehrerer Operationen zum Steuern des Fahrzeugs. So können beispielsweise eine oder mehrere Operationen zur Steuerung des Fahrzeugs 700 in der realen Umgebung ausgeführt werden. In einigen Beispielen können die aus den Positionen der Begrenzungspunkte 106 bestimmten Klassenbezeichnungen und realen Positionen vom Fahr-Stack 146 verwendet werden, um eine oder mehrere Operationen zu bestimmen (z.B. Weltmodellaktualisierungen, Trajektorien, Steuerungen, Betätigungen usw.). Die überfahrbaren und nicht überfahrbaren Bezeichnungen können für das Fahrzeug 700 bei der Bestimmung einer oder mehrerer Operationen, wie beispielsweise in Notsituationen, nützlich sein. So kann es beispielsweise im Notfall erforderlich sein, dass das Fahrzeug 700 in Bezug auf 5 eine Kollision vermeidet, und zwar in dem Wissen, dass das Grenzsegment 502A im Gegensatz zum nicht überfahrbaren Grenzsegment 502B überfahrbar ist. In einem solchen Beispiel kann das Fahrzeug 700 über den Bordstein oder die Schranke 516 fahren, um beispielsweise eine Kollision mit einem Fahrzeug, Fußgänger oder Tier zu vermeiden, darf aber nicht in Richtung des Fahrzeugs 506 fahren, um eine andere Kollision zu vermeiden.
  • Das Verfahren 600 kann, wie durch den gestrichelten Pfeil angezeigt ist, für jede Sensordateneingabe wiederholt werden.
  • Bewertungskennzahlen
  • In einigen Beispielen können eine oder mehrere Bewertungskennzahlen verwendet werden, um die Ausgabe und die Leistung des/der Modells/e zum maschinellen Lernen 104 zu bewerten. So können beispielsweise ein relativer Abstand, eine Genauigkeit, eine Bezeichnungsgenauigkeit, eine Glattheit, eine gewichtete Freiraumgenauigkeit („Weighted Free-space Precision“, WFP), ein gewichteter Freiraumrückruf („Weighted Free-space Recall“, WFR) und/oder andere Metriken bzw. Kennzahlen verwendet werden. Der relative Abstand kann den Mittelwert der absoluten Abweichung zwischen einer Ground-Truth-Begrenzungskurve, yi (z.B. den Ground-Truth-Begrenzungspunkten) und einer vorhergesagten Begrenzungskurve, ŷi (z.B. den Begrenzungspunkten 106), die von dem/den Modell(en) zum maschinellen Lernen 104 vorhergesagt wird, messen, indem eine Summe aus der L1-Verlustnorm (|| ||) gebildet und mit der räumlichen Breite, N, des Eingabebildes (z.B. der Breite des Begrenzungspunktfelds) und einer räumlichen Höhe, H, des Eingabebildes normiert wird. In einigen nicht einschränkenden Beispielen kann der relative Abstand gemäß der folgenden Gleichung (18) bestimmt werden: R e l a t i v e r   A b s t a n d = i = 1 N y i y ^ i N H
    Figure DE112019000048T5_0018
  • Die Genauigkeit kann die Überschreitung der vorhergesagten Begrenzungskurve von der Ground-Truth-Begrenzungskurve messen (z.B. den Umfang des nicht befahrbaren Raums, der vom DNN als befahrbarer Freiraum bestimmt wurde). So sollte beispielsweise ein Überschätzen vermieden werden, da nicht befahrbarer Raum bei vorliegendem Überschätzen als befahrbarer Freiraum angesehen werden kann, was die Sicherheit des Systems beeinträchtigen kann. Daher kann die Genauigkeit eine Bewertungskennzahl sein, die verwendet wird, um sicherzustellen, dass eine Überschätzung entweder nicht vorliegt oder innerhalb akzeptabler Grenzen liegt. In einigen nicht einschränkenden Beispielen kann die Genauigkeit gemäß der folgenden Gleichung (19) bestimmt werden: G e n a u i g k e i t = i = 1 N ( H max ( y i , y ^ i ) ) i = 1 N ( H y i )
    Figure DE112019000048T5_0019
    wobei H die Höhe des Bildes ist, yi die Ground-Trurth-Begrenzungskurve ist und ŷi die vorhergesagte Begrenzungskurve ist.
  • Die Bezeichnungsgenauigkeit kann die Genauigkeit der vorhergesagten Begrenzungsklassenkennzeichnungen im Vergleich zu den Ground-Truth-Klassenbezeichnungen messen. In einigen nicht einschränkenden Beispielen kann die Bezeichnungsgenauigkeit gemäß der folgenden Gleichung (20) bestimmt werden: B e z e i c h n u n g s g e n a u i g k e i t = 1 N c l a s s i = 1 N c l a s s j = 1 N i 1 ( i = y ^ j ) N i
    Figure DE112019000048T5_0020
    wobei Nclass eine Gesamtzahl von Begrenzungsklassen oder -typen ist, Ni eine Gesamtzahl von Begrenzungspunkten ist, die als Klasse i bezeichnet sind, und 1(x) eine Indikatorfunktion ist, die 1 ist, wenn ŷj (Klasse für einen Begrenzungspunkt, der als Klasse i bezeichnet wird) gleich Klasse i ist.
  • Die Glattheit kann die Glätte der vorhergesagten Kurve messen (z.B. den Mittelwert der Differenz zwischen aufeinanderfolgenden Begrenzungspunkten der Begrenzungskurve). In einigen nicht einschränkenden Beispielen kann die Glattheit gemäß der folgenden Gleichung (21) bestimmt werden: G l a t t h e i t = i = 1 N 1 y ^ i + 1 y ^ i N 1
    Figure DE112019000048T5_0021
    wobei ŷi die vorhergesagte Begrenzungskurve ist, || || die L1-Norm ist und N die Breite der Kurve ist (z.B. die räumliche Breite des Eingangsbildes).
  • In Bezug aufWFP und WFR können diese Bewertungskennzahlen auf dem Konzept der Befahrbarkeit (z.B. überfahrbar) und der Unbefahrbarkeit (z.B. nicht überfahrbar) von Hindernissen basieren. So können beispielsweise Begrenzungstypen oder Hindernisse wie Fußgänger oder Fahrzeuge eine höhere Unbefahrbarkeit aufweisen als ein Bordstein. Darüber hinaus kann für WFP und WFR in einigen Beispielen das Gewicht für verschiedene Begrenzungsklassenbezeichnungen unterschiedlich sein, so dass einige Begrenzungsklassen oder -typen ein höheres zugeordnetes Gewicht haben. So können beispielsweise Fußgänger ein höheres Gewicht als ein Bordstein haben, weil die Genauigkeit in Bezug auf einen Menschen relevanter ist als in Bezug auf einen Bordstein.
  • Die WFP kann eine Genauigkeitsberechnung beinhalten, bei der nur ein Überschätzen verwendet wird, so dass, wenn kein Überschätzen vorliegt, die Genauigkeit 1,0 betragen kann (z.B. eine nahezu perfekte Übereinstimmung zwischen Ground-Truth und Vorhersage). In einigen nicht einschränkenden Beispielen kann die WFP nach der folgenden Gleichung (22) bestimmt werden: W F P = ( ( p   i n   0 ) O F W ( p ) F ( p ) P ( p ) ) ( ( p   i n   0 ) M _ O F W ( p ) P ( p ) )
    Figure DE112019000048T5_0022
    wobei p ein Begrenzungspunkt (oder Pixel) ist, Φ allen Begrenzungspunkten entspricht, OFW ein Gewicht bzgl. Überschätzen des Freiraums ist, das je nach Begrenzungsklasse oder -typ unterschiedlich sein kann, F(p) ein Verschiebungswert für p ist, M_OFW(p) ein maximal mögliches Gewicht bzgl. Überschätzen für p ist, und P(p) ein Pfadgewicht für p ist.
  • Der WFR kann eine Genauigkeitsberechnung beinhalten, bei der nur eine Unterschätzung verwendet wird, so dass, wenn es keine Unterschätzung gibt, die Genauigkeit 1,0 betragen kann (z.B. eine nahezu perfekte Übereinstimmung zwischen Ground-Truth und Vorhersage). In einigen nicht einschränkenden Beispielen kann der WFR nach der folgenden Gleichung (23) bestimmt werden: W F R = ( ( p   i n   0 ) U F W ( p ) F ( p ) P ( p ) ) ( ( p   i n   0 ) M _ U F W ( p ) P ( p ) )
    Figure DE112019000048T5_0023
    wobei p ein Begrenzungspunkt (oder Pixel) ist, Φ allen Begrenzungspunkten entspricht, UFW ein Gewicht bzgl. Unterschätzen des Freiraums ist, das je nach Begrenzungsklasse oder -typ unterschiedlich sein kann, F(p) ein Verschiebungswert für p ist, M_UFW(p) ein maximal mögliches Gewicht bzgl. Unterschätzen für p ist und P(p) ein Pfadgewicht für p ist.
  • Beispiel Autonomes Fahrzeug
  • 7A ist eine Darstellung eines exemplarischen autonomen Fahrzeugs 700 in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 700 (alternativ hierin als „Fahrzeug 700“ bezeichnet) kann ein Personenkraftwagen, wie beispielsweise ein Pkw, ein Lastwagen, ein Bus und/oder ein anderes Fahrzeug, das einen oder mehrere Fahrgäste aufnimmt, sein. Autonome Fahrzeuge werden im Allgemeinen in Bezug auf den Automatisierungsgrad beschrieben, der von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US Department of Transportation, und der Society of Automotive Engineers (SAE) in „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ (Standard Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, und früheren und zukünftigen Versionen dieser Norm) definiert wird. Das Fahrzeug 700 kann in der Lage sein, eine oder mehrere Funktionen gemäß Level 3 - Level 5 der autonomen Fahrstufen zu erfüllen. So kann beispielsweise das Fahrzeug 700 je nach Ausführungsform zu einer bedingten Automatisierung (Level 3), einer hohen Automatisierung (Level 4) und/oder einer Vollautomatisierung (Level 5) in der Lage sein.
  • Das Fahrzeug 700 kann Komponenten wie ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z.B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs beinhalten. Das Fahrzeug 700 kann ein Antriebssystem 750 beinhalten, wie beispielsweise einen Verbrennungsmotor, ein Hybrid-Elektromotor, einen vollelektrischen Motor und/oder einen anderen Antriebssystemtyp. Das Antriebssystem 750 kann mit einem Antriebsstrang des Fahrzeugs 700 verbunden sein, der ein Getriebe beinhalten kann, um den Antrieb des Fahrzeugs 700 zu ermöglichen. Das Antriebssystem 750 kann als Reaktion auf das Empfangen von Signalen von der Drosselklappe / dem Gaspedal 752 gesteuert werden.
  • Ein Lenksystem 754, das ein Lenkrad beinhalten kann, kann verwendet werden, um das Fahrzeug 700 zu lenken (z.B. auf einem gewünschten Weg oder einer gewünschten Route), wenn das Antriebssystem 750 in Betrieb ist (z.B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 754 kann Signale von einem Lenkstellglied 756 empfangen. Das Lenkrad kann optional bei einer Vollautomatisierung (Level 5) eingesetzt werden.
  • Das Bremssensorsystem 746 kann verwendet werden, um die Fahrzeugbremsen als Reaktion auf den Empfang von Signalen von den Bremsbetätigungsvorrichtungen 748 und/oder Bremssensoren zu betätigen.
  • (Eine) Steuerung(en) 736, die ein oder mehrere System on Chips (SoCs) 704 ( 7C) und/oder GPU(s) beinhalten kann/können, kann/können Signale (z.B. repräsentativ für Befehle) an einer oder mehreren Komponenten und/oder Systemen des Fahrzeugs 700 bereitstellen. So können beispielsweise die Steuerung(en) Signale zum Betätigen der Fahrzeugbremsen über ein oder mehrere Bremsbetätigungsvorrichtungen 748, zum Betätigen des Lenksystems 754 über ein oder mehrere Lenkstellglieder 756, zum Betätigen des Antriebssystems 750 über ein oder mehrere Drossel-/Beschleuniger 752 senden. Die Steuerung(en) 736 kann/können eine oder mehrere eingebaute (z.B. integrierte) Rechenvorrichtungen (z.B. Supercomputer) beinhalten, die Sensorsignale verarbeiten und Betriebsbefehle (z.B. Signale, die Befehle darstellen) ausgeben, um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Fahren des Fahrzeugs 700 zu unterstützen. Die Steuerung(en) 736 kann/können eine erste Steuerung 736 für autonome Fahrfunktionen, eine zweite Steuerung 736 für funktionale Sicherheitsfunktionen, eine dritte Steuerung 736 für Funktionen der künstlichen Intelligenz (z.B. Computer Vision bzw. Computer-Bilderkennung), eine vierte Steuerung 736 für Infotainment-Funktionen, eine fünfte Steuerung 736 für Redundanz bei Notfällen und/oder andere Steuerungen beinhalten. In einigen Beispielen kann eine einzelne Steuerung 736 zwei oder mehr der oben genannten Funktionalitäten übernehmen, zwei oder mehr Steuerungen 736 eine einzelne Funktionalität und/oder eine beliebige Kombination davon.
  • Die Steuerung(en) 736 kann/können die Signale zum Steuern einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 700 als Reaktion auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren (z.B. als Sensoreingaben) empfangen werden. Die Sensordaten können beispielsweise erfasst werden von den Sensoren der globalen Navigationssatellitensysteme 758 (z.B. Sensor(en) des globalen Positionierungssystems), RADAR-Sensor(en) 760, Ultraschallsensor(en) 762, LIDAR-Sensor(en) 764, Sensoren der Trägheitsmesseinheit (IMU) 766 (z.B, Beschleunigungssensor(en), Gyroskop(en), Magnetkompass(en), Magnetometer(n), etc.), Mikrofon(en) 796, Stereokamera(s) 768, Weitsichtkamera(s) 770 (z.B, Fisheye-Kameras), Infrarot-Kamera(s) 772, Surround-Kamera(s) 774 (z.B. 360-Grad-Kameras), Lang- und/oder Mittelbereichskamera(s) 798, Geschwindigkeitssensor(en) 744 (z.B. zur Messung der Fahrzeuggeschwindigkeit 700), Vibrationssensor(en) 742, Lenksensor(en) 740, Bremssensor(en) (z.B. als Teil des Bremssensorsystems 746) und/oder anderen Sensortypen.
  • Eine oder mehrere der Steuerung(en) 736 können Eingaben (z.B. durch Eingabedaten dargestellt) von einem Instrumenten-Cluster 732 des Fahrzeugs 700 empfangen und Ausgaben (dargestellt z.B. durch Ausgabedaten, Anzeigedaten usw.) über eine Mensch-Maschine-Schnittstellen- (HMI-) Anzeige 734, einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 700 erfassen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z.B. die HD-Karte 722 von 7C), Standortdaten (z.B. der Standort des Fahrzeugs 700, z.B. auf einer Karte), Richtung, Standort anderer Fahrzeuge (z.B. ein Belegungsraster), Informationen über Objekte und Status von Objekten, wie sie von der/den Steuerung(en) 736 wahrgenommen werden, usw. beinhalten. So kann beispielsweise die HMI-Anzeige 734 Informationen über das Vorhandensein eines oder mehrerer Objekte (z.B. ein Straßenschild, Warnschild, Ampelwechsel usw.) und/oder Informationen über Fahrmanöver, die das Fahrzeug durchgeführt hat, gerade durchführt oder durchführen wird (z.B. Fahrspurwechsel, Ausfahrt 34B in zwei Meilen usw.), anzeigen.
  • Das Fahrzeug 700 beinhaltet ferner eine Netzwerkschnittstelle 724, die eine oder mehrere drahtlose Antenne(n) 726 und/oder Modem(s) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. So kann beispielsweise die Netzwerkschnittstelle 724 über LTE, WCDMA, UMTS, GSM, CDMA2000, etc. kommunizieren. Die drahtlose(n) Antenne(n) 726 kann/können auch die Kommunikation zwischen Objekten in der Umgebung (z.B. Fahrzeugen, mobile Vorrichtungen usw.) über lokale Netzwerke wie Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder Weitverkehrsnetze mit geringer Leistung (LPWANs) wie LoRaWAN, SigFox usw. ermöglichen.
  • 7B ist ein Beispiel für Kamerastandorte und Sichtfelder für das Beispiel autonomes Fahrzeug 700 aus 7A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die entsprechenden Sichtfelder sind eine exemplarische Ausführungsform und sollen keine Einschränkung darstellen. So können beispielsweise zusätzliche und/oder alternative Kameras integriert werden und/oder die Kameras können sich an verschiedenen Stellen am Fahrzeug 700 befinden.
  • Die Kameratypen für die Kameras können aufweisen, sind aber nicht beschränkt auf Digitalkameras, die für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 700 angepasst werden können. Die Kamera(s) kann/können mit dem Sicherheitsintegritätslevel (ASIL) B und/oder einem anderen ASIL betrieben werden. Die Kameratypen können jede beliebige Bildaufnahmerate erreichen, wie z.B. 60 Bilder pro Sekunde (fps), 720 fps, 240 fps, etc. je nach Ausführung. Die Kameras können Rollverschlüsse, globale Verschlüsse, eine andere Art von Verschluss oder eine Kombination davon verwenden. In einigen Beispielen kann das Farbfilterfeld ein rotes, klares, klares, klares (RCCC) Farbfilterfeld, ein rotes klares, klares, blaues (RCCB) Farbfilterfeld, ein rotes, blaues, grünes, klares (RBGC) Farbfilterfeld, ein Foveon X3 Farbfilterfeld, ein Bayer-Sensoren (RGGB) Farbfilterfeld, ein monochromes Sensor-Farbfilterfeld und/oder eine andere Art von Farbfilterfeld beinhalten. In einigen Ausführungsformen können klare Pixelkameras, wie beispielsweise Kameras mit einem RCCC-, einem RCCB- und/oder einem RBGC-Farbfilterfeld, verwendet werden, um die Lichtempfindlichkeit zu erhöhen.
  • In einigen Beispielen kann/können eine oder mehrere der Kameras verwendet werden, um Funktionen von Fahrerassistenzsystemen (ADAS) auszuführen (z.B. im Rahmen eines redundanten oder ausfallsicheren Entwurfs). So kann beispielsweise eine Multifunktions-Monokamera installiert werden, die Funktionen wie Spurhaltemeldung, Verkehrszeichenunterstützung und intelligente Scheinwerfersteuerung bereitstellt. Eine oder mehrere der Kameras (z.B. alle Kameras) können Bilddaten (z.B. Video) gleichzeitig aufnehmen und bereitstellen.
  • Eine oder mehrere der Kameras können in einer Montageanordnung, wie beispielsweise einer kundenspezifischen (3-D-gedruckten) Anordnung, montiert werden, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z.B. Reflexionen vom Armaturenbrett, die in den Spiegeln der Windschutzscheibe reflektiert werden) zu entfernen, die die Bilddatenerfassungsfähigkeit der Kamera beeinträchtigen können. In Bezug auf die Montagebaugruppen der Außenspiegel können die Außenspiegelbaugruppen individuell in 3D gedruckt werden, so dass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen kann/können die Kamera(s) in den Außenspiegel integriert werden. Bei Seitensichtkameras können die Kameras auch in die vier Säulen an jeder Ecke der Kabine integriert werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung vor dem Fahrzeug 700 beinhaltet (z.B. nach vorne gerichtete Kameras), können für die Rundumsicht verwendet werden, um nach vorne gerichtete Wege und Hindernisse zu identifizieren, sowie mit Hilfe einer oder mehrerer Steuerungen 736 und/oder Steuer-SoCs, die wichtigen Informationen für die Erzeugung eines Belegungsgitters und/oder das Bestimmen der bevorzugten Fahrzeugwege zu liefern. Frontseitige Kameras können verwendet werden, um viele der gleichen ADAS-Funktionen wie LIDAR auszuführen, einschließlich Notbremsung, Fußgängererkennung und Kollisionsvermeidung. Frontseitige Kameras können auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich Lane Departure Warnings („LDW“), Autonomous Cruise Control („ACC“) und/oder andere Funktionen wie die Verkehrszeichenerkennung.
  • Eine Vielzahl von Kameras kann in einer nach vorne gerichteten Konfiguration verwendet werden, einschließlich beispielsweise einer monokularen Kameraplattform, die einen CMOS- (complementary metal oxide semiconductor) Farbbildsensor beinhaltet. Ein weiteres Beispiel ist/sind (eine) Weitwinkelkamera(s) 770, mit der Objekte wahrgenommen werden können, die von der Peripherie aus sichtbar sind (z.B. Fußgänger, kreuzender Verkehr oder Fahrräder). Obwohl in 7B nur eine Weitwinkelkamera dargestellt ist, kann es am Fahrzeug 700 beliebig viele Weitwinkelkameras 770 geben. Darüber hinaus können Weitbereichskameras 798 (z.B. ein Stereokamerapaar) zur tiefenbasierten Objekterkennung verwendet werden, insbesondere für Objekte, für die noch kein neuronales Netz trainiert wurde. Die Weitbereichskamera(s) 798 kann/können auch zur Objekterkennung und -klassifizierung sowie zur einfachen Objektverfolgung eingesetzt werden.
  • Eine oder mehrere Stereokameras 768 können auch in einer frontseitigen Konfiguration integriert werden. Die Stereokamera(s) 768 kann/können eine integrierte Steuereinheit beinhalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (FPGA) und einen Multicore-Mikroprozessor mit einer integrierten CAN- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Eine solche Einheit kann verwendet werden, um eine 3D-Karte der Umgebung des Fahrzeugs zu erstellen, einschließlich einer Entfernungsschätzung für alle Punkte im Bild. Eine alternative Stereokamera(s) 768 kann/können (einen) kompakte(n) Stereo-Bilderkennungssensor(en) beinhalten, der/die zwei Kameraobjektive (je eines links und rechts) und einen Bildverarbeitungschip beinhalten kann/können, der/die den Abstand vom Fahrzeug zum Zielobjekt messen und die erzeugten Informationen (z.B. Metadaten) verwenden kann/können, um die autonomen Funktionen Notbremsung und Spurhaltemeldung zu aktivieren. Andere Arten von Stereokameras 768 können zusätzlich zu oder alternativ zu den hierin beschriebenen verwendet werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung seitlich des Fahrzeugs 700 beinhaltet (z.B. Seitensichtkameras), können für die Umfeld-Ansicht verwendet werden und Informationen liefern, die zum Erstellen und Aktualisieren des Belegungsrasters sowie zum Erzeugen von Kollisionswarnungen bei Seitenaufprall verwendet werden. So können beispielsweise die Surround-Kamera(s) bzw. Umfeld-Kamera(s) 774 (z.B. vier Umfeld-Kameras 774, wie in 7B dargestellt) auf dem Fahrzeug 700 positioniert werden. Die Umfeld-Kamera(s) 774 kann/können Weitwinkelkameras 770, Fischaugen-Kameras, 360-Grad-Kameras und/oder dergleichen beinhalten. Zum Beispiel können vier Fisheye-Kameras auf der Vorderseite, dem Heck und den Seiten des Fahrzeugs positioniert werden. In einer alternativen Anordnung kann das Fahrzeug drei Umfeld-Kameras 774 (z.B. links, rechts und hinten) verwenden und eine oder mehrere andere Kameras (z.B. eine nach vorne gerichtete Kamera) als vierte Umfeld-View-Kamera nutzen.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung im hinteren Teil des Fahrzeugs 700 beinhalten (z.B. Rückfahrkameras), können für die Einparkhilfe, die Rundumsicht, die Warnung vor Heckaufprall sowie die Erstellung und Aktualisierung des Belegungsrasters verwendet werden. Eine Vielzahl von Kameras kann verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als Frontkamera(n) geeignet sind (z.B. Lang- und/oder Mittelbereichskamera(s) 798, Stereokamera(s) 768), Infrarotkamera(s) 772 usw.), wie es hier beschrieben ist.
  • 7C ist ein Blockdiagramm einer exemplarischen Systemarchitektur für das exemplarische autonome Fahrzeug 700 aus 7A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es sei angemerkt, dass diese und andere hierin beschriebene Regelungen nur als Beispiele aufgeführt sind. Andere Anordnungen und Elemente (z.B. Maschinen, Schnittstellen, Funktionen, Ordnungen, Gruppierungen von Funktionen usw.) können zusätzlich oder anstelle der dargestellten verwendet werden, und einige Elemente können ganz weggelassen werden. Darüber hinaus sind viele der hierin beschriebenen Elemente funktionale Einheiten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und Lage implementiert werden können. Verschiedene Funktionen, die hierin als von Einheiten ausgeführt beschrieben werden, können durch Hardware, Firmware und/oder Software ausgeführt werden. So können beispielsweise verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt.
  • Jede der Komponenten, Merkmale und Systeme des Fahrzeugs 700 in 7C wird als über einen Bus 702 verbunden dargestellt. Der Bus 702 kann eine Datenschnittstelle des Controller Area Networks (CAN) beinhalten (im Folgenden alternativ als „CAN-Bus“ bezeichnet). Ein CAN kann ein Netzwerk innerhalb des Fahrzeugs 700 sein, das zur Steuerung verschiedener Merkmale und Funktionen des Fahrzeugs 700 dient, wie z. B. Betätigung von Bremsen, Beschleunigung, Bremsen, Lenkung, Scheibenwischer usw. Ein CAN-Bus kann so konfiguriert werden, dass er aus Dutzenden oder sogar Hunderten von Knoten besteht, die jeweils mit einem eigenen eindeutigen Identifizierer (z.B. einer CAN-ID) versehen sind. Der CAN-Bus kann gelesen werden, um Lenkradwinkel, Fahrgeschwindigkeit, Motordrehzahlen pro Minute (U/min), Tastenpositionen und/oder andere Fahrzeugstatusanzeigen zu finden. Der CAN-Bus kann ASIL B-konform sein.
  • Obwohl der Bus 702 hierin als CAN-Bus beschrieben wird, ist dies nicht als Einschränkung gedacht. So kann beispielsweise zusätzlich oder alternativ zum CAN-Bus, FlexRay und/oder Ethernet verwendet werden. Obwohl eine einzige Leitung zur Darstellung des Busses 702 verwendet wird, ist dies nicht als Einschränkung gedacht. So kann es beispielsweise eine beliebige Anzahl von Bussen 702 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Arten von Bussen mit einem anderen Protokoll aufweisen können. In einigen Beispielen können zwei oder mehr Busse 702 verwendet werden, um verschiedene Funktionen auszuführen, und/oder um Redundanz zu gewährleisten. So kann beispielsweise ein erster Bus 702 für die Kollisionsvermeidungsfunktionalität und ein zweiter Bus 702 für die Betätigungssteuerung verwendet werden. In jedem Beispiel kann jeder Bus 702 mit einer der Komponenten des Fahrzeugs 700 kommunizieren, und zwei oder mehr Busse 702 können mit denselben Komponenten kommunizieren. In einigen Beispielen kann jedes SoC 704, jede Steuerung 736 und/oder jeder Computer im Fahrzeug Zugriff auf dieselben Eingabedaten haben (z.B. Eingaben von Sensoren des Fahrzeugs 700) und mit einem gemeinsamen Bus, wie dem CAN-Bus, verbunden sein.
  • Das Fahrzeug 700 kann eine oder mehrere Steuerung(en) 736 beinhalten, wie sie hierin in Bezug auf 7A beschrieben ist/sind. Die Steuerung(en) 736 kann/können für eine Vielzahl von Funktionen verwendet werden. Die Steuerung(en) 736 kann/können mit einer der verschiedenen anderen Komponenten und Systeme des Fahrzeugs 700 gekoppelt werden und kann/können zur Steuerung des Fahrzeugs 700, der künstlichen Intelligenz des Fahrzeugs 700, des Infotainments für das Fahrzeug 700 und/oder dergleichen verwendet werden.
  • Das Fahrzeug 700 kann ein oder mehrere Systeme auf einem Chip (SoC) 704 beinhalten. Das SoC 704 kann CPU(s) 706, GPU(s) 708, Prozessor(en) 710, Cache(s) 712, Beschleuniger 714, Datenspeicher 716 und/oder andere nicht dargestellte Komponenten und Merkmale beinhalten. Das/die SoC(s) 704 kann/können zur Steuerung des Fahrzeugs 700 in einer Vielzahl von Plattformen und Systemen verwendet werden. So kann/können beispielsweise das/die SoC(s) 704 in einem System (z.B. dem System des Fahrzeugs 700) mit einer HD-Karte 722 kombiniert werden, die über eine Netzwerkschnittstelle 724 von einem oder mehreren Servern (z.B. Server 778 von 7D) Karten-Aktualisierungen und/oder -Updates erhalten kann.
  • Die CPU(s) 706 kann/können ein CPU-Cluster oder CPU-Komplex (alternativ hierin als „CCPLEX“ bezeichnet) aufweisen. Die CPU(s) 706 kann/können mehrere Kerne und/oder L2-Caches beinhalten. So kann/können beispielsweise die CPU(s) 706 in einigen Ausführungsformen acht Kerne in einer kohärenten Multiprozessor-Konfiguration beinhalten. In einigen Ausführungsformen kann/können die CPU(s) 706 vier Dual-Core-Cluster beinhalten, wobei jedes Cluster einen dedizierten L2-Cache (z.B. einen 2 MB L2-Cache) hat. Die CPU(s) 706 (z.B. der CCPLEX) kann/können so konfiguriert werden, dass sie den gleichzeitigen Clusterbetrieb unterstützt/en, so dass jede beliebige Kombination der Cluster der CPU(s) 706 jederzeit aktiv sein kann.
  • Die CPU(s) 706 kann/können Energieverwaltungsfunktionen implementieren, die eines oder mehrere der folgenden Merkmale beinhalten: einzelne Hardwareblöcke können im Leerlauf automatisch getaktet werden, um dynamische Leistung zu sparen; jeder Kerntakt kann angesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen keine aktiven Anweisungen ausführt; jeder Kern kann unabhängig leistungsgesteuert sein; jedes Kerncluster kann unabhängig getaktet werden, wenn alle Kerne getaktet oder leistungsgesteuert sind; und/oder jedes Kerncluster kann unabhängig leistungsgesteuert sein, wenn alle Kerne leistungsgesteuert sind. Die CPU(s) 706 kann/können weiterhin einen erweiterten Algorithmus zur Verwaltung von Energieverbrauchszuständen implementieren, bei dem zulässige Energieverbrauchszustände und erwartete Aufwachzeiten angegeben werden und die Hardware/Mikrocode den besten Leistungszustand für den Kern, das Cluster und den CCPLEX bestimmt. Die arbeitenden Kerne können vereinfachte Eingangssequenzen für den Energieverbrauchszustand in der Software unterstützen, wobei die Arbeit auf Mikrocode übertragen wird.
  • Die GPU(s) 708 kann/können eine integrierte GPU (alternativ hierin als „iGPU“ bezeichnet) beinhalten. Die GPU(s) 708 kann/können programmierbar und für parallele Arbeitslasten effizient ausgestaltet sein. Die GPU(s) 708 kann/können in einigen Beispielen einen erweiterten Tensorbefehlssatz verwenden. Die GPU(s) 708 kann/können einen oder mehrere Streaming-Mikroprozessoren beinhalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z.B. einen L1-Cache mit mindestens 96KB Speicherkapazität) beinhalten kann, und zwei oder mehr der Streaming-Mikroprozessoren können sich einen L2-Cache (z.B. einen L2-Cache mit 512 KB Speicherkapazität) teilen. In einigen Ausführungsformen kann/können die GPU(s) 708 mindestens acht Streaming-Mikroprozessoren beinhalten. Die GPU(s) 708 kann/können Schnittstelle(n) (API(s)) zur Programmierung von Computeranwendungen verwenden. Darüber hinaus kann/können die GPU(s) 708 eine oder mehrere parallele Computerplattformen und/oder Programmiermodelle (z.B. NVIDIAs CUDA) verwenden.
  • Die GPU(s) 708 können energieoptimiert sein, um die beste Leistung bei Automobil- und Embedded-Anwendungen zu erzielen. So kann/können beispielsweise die GPU(s) 708 auf einem Fin-Feldeffekttransistor (FinFET) hergestellt werden. Dies ist jedoch nicht als Einschränkung gedacht und die GPU(s) 708 kann/können mit anderen Halbleiterherstellungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Reihe von Prozessorkernen mit gemischter Genauigkeit aufweisen, die in mehrere Blöcke unterteilt sind. So können beispielsweise 64 PF32-Kerne und 32 PF64-Kerne ohne Einschränkung in vier Verarbeitungsblöcke unterteilt werden. In einem solchen Beispiel kann jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR-Kerne mit gemischter Genauigkeit für die Deep-Learning-Matrix-Arithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Dispositionseinheit und/oder eine 64 KB-Registerdatei zugeordnet werden. Darüber hinaus können die Streaming-Mikroprozessoren unabhängige parallele Pfade für ganzzahlige und Gleitkomma-Daten beinhalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Computer- und Adressierungs-Berechnungen zu gewährleisten. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Scheduling-Funktionalität beinhalten, um eine feinere Synchronisierung und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Daten-Cache und eine gemeinsame Speichereinheit beinhalten, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.
  • Die GPU(s) 708 kann/können einen Speicher mit hoher Bandbreite (HBM) und/oder ein 16 GB HBM2-Speichersubsystem beinhalten, um in einigen Beispielen eine maximale Speicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich zum oder alternativ zum HBM-Speicher ein synchroner Grafik-Random-Access-Speicher (SGRAM) verwendet werden, wie beispielsweise ein synchroner Random-Access-Speicher für Grafik mit doppelter Datenrate vom Typ 5 (GDDR5).
  • Die GPU(s) 708 kann/können eine Unified Memory-Technologie einschließlich Zugriffszählern beinhalten, um eine genauere Migration von Speicherseiten zu dem Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz der zwischen den Prozessoren geteilten Speicherbereiche verbessert wird. In einigen Beispielen kann die Unterstützung von Address Translation Services (ATS) verwendet werden, damit die GPU(s) 708 direkt auf die Seitentabellen der CPU(s) 706 zugreifen kann/können. In solchen Beispielen kann bei einem Fehlschlag der Speicherverwaltungseinheit (MMU) der GPU(s) 708 eine Adressübersetzungsanforderung an die CPU(s) 706 gesendet werden. Als Reaktion darauf kann/können die CPU(s) 706 in ihren Seitentabellen nach dem virtuell-physischen Mapping für die Adresse suchen und die Übersetzung zurück an die GPU(s) 708 senden. Daher kann die Unified Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 706 als auch der GPU(s) 708 ermöglichen, wodurch die Programmierung und Portierung von Anwendungen auf die GPU(s) 708 vereinfacht wird.
  • Darüber hinaus kann/können die GPU(s) 708 einen Zugriffszähler beinhalten, der die Häufigkeit des Zugriffs der GPU(s) 708 auf den Speicher anderer Prozessoren verfolgen kann. Der Zugriffszähler kann dazu beitragen, dass Speicherseiten in den physischen Speicher des Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.
  • Das/die SoC(s) 704 kann/können eine beliebige Anzahl von Cache(s) 712 beinhalten, einschließlich der hierin beschriebenen. So kann/können beispielsweise der/die Cache(s) 712 einen L3-Cache beinhalten, der sowohl für die CPU(s) 706 als auch für die GPU(s) 708 verfügbar ist (z.B. der sowohl mit der/den CPU(s) 706 als auch mit der/den GPU(s) 708 verbunden ist). Der/die Cache(s) 712 kann/können einen Write-Back-Cache beinhalten, der den Zustand der Leitungen verfolgen kann, z.B. durch Verwendung eines Cache-Kohärenzprotokolls (z.B. MEI, MESI, MSI, etc.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr umfassen, wobei jedoch kleinere Cachegrößen verwendet werden können.
  • Das/die SoC(s) 704 kann/können einen oder mehrere Beschleuniger 714 beinhalten (z.B. Hardwarebeschleuniger, Softwarebeschleuniger oder eine Kombination davon). So kann/können beispielsweise das/die SoC(s) 704 ein Hardwarebeschleunigungscluster beinhalten, das optimierte Hardwarebeschleuniger und/oder einen großen On-Chip-Speicher beinhalten kann. Der große On-Chip-Speicher (z.B. 4 MB SRAM) kann es dem Hardwarebeschleunigungscluster ermöglichen, neuronale Netze und andere Berechnungen zu beschleunigen. Das Hardwarebeschleunigungscluster kann verwendet werden, um die GPU(s) 708 zu ergänzen und einige der Tasks der GPU(s) 708 abzuladen (z.B. um mehr Zyklen der GPU(s) 708 für andere Tasks freizugeben). Als Beispiel kann der/die Beschleuniger 714 für gezielte Arbeitslasten (z.B. Wahrnehmung, faltende neuronale Netze (CNNs), etc.) verwendet werden, die stabil genug sind, um für die Beschleunigung geeignet zu sein. Der hierin verwendete Begriff „CNN“ kann alle Arten von CNNs umfassen, einschließlich regionsbasierter oder regionaler faltender neuronaler Netze (RCNNs) und schneller RCNNs bzw. Fast RCNNs (z.B. zur Objekterkennung).
  • Der/die Beschleuniger 714 (z.B. das Hardwarebeschleunigungscluster) kann/können einen oder mehrere Deep Learning Accelerator(s) (DLA) beinhalten. Der/die DLA(s) kann/können eine oder mehrere Tensor-Verarbeitungseinheiten (TPUs) beinhalten, die konfiguriert sein können, um zusätzliche zehn Billionen Operationen pro Sekunde für Deep Learning-Anwendungen und logisches Schließen bereitzustellen. Die TPUs können Beschleuniger sein, die für die Durchführung von Bildverarbeitungsfunktionen konfiguriert und optimiert sind (z.B. für CNNs, RCNNs, etc.). Der/die DLA(s) kann/können weiterhin für einen bestimmten Satz von Typen eines neuronalen Netzes und Gleitkommaoperationen sowie für das logische Schließen optimiert sein. Der Entwurf des/der DLA(s) kann mehr Leistung pro Millimeter bieten als ein Allzweck-Grafikprozessor und übertrifft die Leistung einer CPU erheblich. Die TPU(s) kann/können mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die beispielsweise die Datentypen INT8, INT16 und FP16 für Merkmale und Gewicht sowie Postprozessorfunktionen unterstützt.
  • Der/die DLA(s) kann/können neuronale Netze, insbesondere CNNs, schnell und effizient bearbeiteten oder unverarbeitete Daten für eine Vielzahl von Funktionen verarbeiten, einschließlich, zum Beispiel und ohne Einschränkung: ein CNN zur Objekt-Identifikation und -Erfassung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Entfernungsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Einsatzfahrzeug-Erkennung und -Identifikation unter Verwendung von Daten aus Mikrofonen; ein CNN zur Gesichtserkennung und Fahrzeughalteridentifikation unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheitsrelevanten Ereignisse.
  • Der/die DLA(s) kann/können jede beliebige Funktion der GPU(s) 708 ausführen, und durch die Verwendung eines Beschleunigers für das logische Schließen, zum Beispiel, kann ein Entwickler entweder den/die DLA(s) oder die GPU(s) 708 für jede Funktion ausrichten. So kann sich der Entwickler beispielsweise für die Verarbeitung von CNNs und Gleitkommaoperationen auf die DLA(s) konzentrieren und andere Funktionen der/den GPU(s) 708 und/oder anderen Beschleuniger(n) 714 überlassen.
  • Der/die Beschleuniger 714 (z.B. das Hardwarebeschleunigungscluster) kann/können einen/mehrere programmierbare(n) Bilderkennungsbeschleuniger (PVA) beinhalten, der/die hierin alternativ als Computer Vision Accelerator bzw. Computer-Bilderkennungs-Beschleuniger bezeichnet werden kann/können. Der/die PVA(s) kann/können so konzipiert und konfiguriert werden, dass er/sie die Bildverarbeitungsalgorithmen für die Anwendungen Advanced Driver Assistance Systems (ADAS), autonomes Fahren und/oder Augmented Reality (AR) und/oder Virtual Reality (VR) beschleunigt/en. Der/die PVA(s) kann/können ein Gleichgewicht zwischen Leistung und Flexibilität bereitstellen. So kann beispielsweise jeder PVA beispielsweise und ohne Einschränkung eine beliebige Anzahl von RISC-Kernen (Reduced Instruction Set Computer), Direct Memory Access (DMA) und/oder eine beliebige Anzahl von Vektorprozessoren beinhalten.
  • Die RISC-Kerne können mit Bildsensoren (z.B. den Bildsensoren einer der hierin beschriebenen Kameras), Bildsignalprozessoren und/oder dergleichen interagieren. Jeder der RISC-Kerne kann beliebig viel Speicherplatz beinhalten. Die RISC-Kerne können je nach Ausführungsform eines von mehreren Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (RTOS) ausführen. Die RISC-Kerne können mit einer oder mehreren integrierten Schaltungsvorrichtungen, anwendungsspezifischen integrierten Schaltungen (ASICs) und/oder Speichervorrichtungen implementiert werden. So können beispielsweise die RISC-Kerne einen Befehls-Cache und/oder ein eng gekoppeltes RAM beinhalten.
  • Der DMA kann es Komponenten des/der PVA(s) ermöglichen, unabhängig von der/den CPU(s) 706 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Merkmalen unterstützen, die zur Optimierung des PVA verwendet werden, einschließlich, aber nicht beschränkt auf die Unterstützung multidimensionaler Adressierung und/oder zirkulärer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockstufen, vertikale Blockstufen und/oder Tiefenstufen beinhalten können.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die so konzipiert sein können, dass sie effizient und flexibel die Programmierung für Computer Vision Algorithmen bzw. Computer-Bilderkennungs-Algorithmen durchführen und Signalverarbeitungsfunktionen bereitstellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen beinhalten. Der PVA-Kern kann ein Prozessorsubsystem, eine oder mehrere DMA-Maschinen (z.B. zwei DMA-Maschinen) und/oder andere Peripheriegeräte beinhalten. Das Vektorverarbeitungs-Subsystem kann als primäre Verarbeitungsmaschine des PVA fungieren und kann eine Vektorverarbeitungseinheit (VPU), einen Befehls-Cache und/oder einen Vektorspeicher (z.B. VMEM) beinhalten. Ein VPU-Kern kann einen digitalen Signalprozessor beinhalten, wie beispielsweise einen digitalen Signalprozessor mit einzelnen Befehlen, mehreren Daten (SIMD) und sehr langen Befehlswörtern (VLIW). Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Befehls-Cache beinhalten und mit einem dedizierten Speicher gekoppelt sein. Infolgedessen kann in einigen Beispielen jeder der Vektorprozessoren konfiguriert sein, um unabhängig von den anderen Vektorprozessoren zu arbeiten. In anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA enthalten sind, für die Verwendung von Datenparallelität konfiguriert sein. So kann beispielsweise in einigen Ausführungsformen die Vielzahl der in einem einzigen PVA enthaltenen Vektorprozessoren den gleichen Computer Vision Algorithmus ausführen, jedoch auf verschiedenen Bereichen eines Bildes. In anderen Beispielen können die in einem bestimmten PVA enthaltenen Vektorprozessoren gleichzeitig verschiedene Computer Vision Algorithmen für dasselbe Bild ausführen oder sogar verschiedene Algorithmen für aufeinander folgende Bilder oder Teile eines Bildes ausführen. Unter anderem können beliebig viele PVAs in das Hardwarebeschleunigungscluster und beliebig viele Vektorprozessoren in jeden der PVAs eingebunden sein. Darüber hinaus kann/können der/die PVA(s) zusätzlichen ECC-Speicher (Error Correcting Code) beinhalten, um die Gesamtsystemsicherheit zu erhöhen.
  • Der/die Beschleuniger 714 (z.B. das Hardwarebeschleunigungscluster) kann/können einen Computer Vision Network On-Chip bzw. Computer-Bilderkennungs-Netzwerk auf einem Chip und SRAM beinhalten, um ein SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 714 bereitzustellen. In einigen Beispielen kann der On-Chip-Speicher mindestens 4 MB SRAM beinhalten, der beispielsweise aus acht feldkonfigurierbaren Speicherblöcken besteht, die sowohl für den PVA als auch für den DLA zugänglich sind. Jedes Speicherblockpaar kann eine erweiterte APB-Schnittstelle (Advanced Peripheral Bus), eine Konfigurationsschaltung, eine Steuerung und einen Multiplexer beinhalten. Es kann jede Art von Speicher verwendet werden. Der PVA und der DLA können über ein Backbone auf den Speicher zugreifen, das dem PVA und dem DLA einen schnellen Zugriff auf den Speicher ermöglicht. Das Backbone kann ein Computer Vision Network On-Chip beinhalten, das der PVA und der DLA mit dem Speicher verbindet (z.B. über das APB).
  • Das Computer-Bilderkennungs-Netzwerk auf dem Chip kann eine Schnittstelle beinhalten, die vor der Übertragung von Steuersignalen/Adressen/Daten bestimmt, dass sowohl der PVA als auch der DLA bereitgestellte und gültige Signale bereitstellen. Eine solche Schnittstelle kann getrennte Phasen und getrennte Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine burstartige Kommunikation für die kontinuierliche Datenübertragung bereitstellen. Diese Art von Schnittstelle kann den Normen ISO 26262 oder IEC 61508 entsprechen, wobei auch andere Normen und Protokolle verwendet werden können.
  • In einigen Beispielen kann/können das/die SoC(s) 704 einen Echtzeit-Raytracing-Beschleuniger beinhalten, wie er in der am 10. August 2018 eingereichten US-Patentanmeldung Nr. 16/101,232 beschrieben ist. Der Echtzeit-Raytracing-Hardwarebeschleuniger kann verwendet werden, um schnell und effizient die Positionen und Ausmaße von Objekten (z.B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeit-Visualisierungssimulationen zu erzeugen, zur RADAR-Signalinterpretation, zur Schallausbreitungssynthese und/oder -analyse, zur Simulation von SONAR-Systemen, zur Simulation der allgemeinen Wellenausbreitung, zum Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder anderen Funktionen und/oder für andere Anwendungen.
  • Der/die Beschleuniger 714 (z.B. das Hardwarebeschleuniger-Cluster) haben ein breites Anwendungsspektrum für autonomes Fahren. Der PVA kann ein programmierbarer Bilderkennungsbeschleuniger sein, der für wichtige Verarbeitungsschritte in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA sind eine gute Ergänzung für algorithmische Domänen, die eine vorhersagbare Verarbeitung benötigen, bei geringer Leistung und geringer Latenzzeit. Mit anderen Worten, der PVA schneidet bei semidichtem oder dichtem regulärem Rechnen gut ab, selbst bei kleinen Datensätzen, die vorhersagbare Laufzeiten mit geringer Latenz und geringem Stromverbrauch benötigen. So sind die PVAs im Rahmen von Plattformen für autonome Fahrzeuge so konzipiert, dass sie klassische Computer-Bilderkennungs-Algorithmen ausführen, da sie bei der Objekterkennung effizient sind und mit ganzzahliger Mathematik arbeiten.
  • Nach einer Ausführungsform der Technologie wird beispielsweise der PVA zur Durchführung von Computer Stereo Vision bzw. Computer-Stereo-Bilderkennung verwendet. In einigen Beispielen kann ein semi-globaler Matching-basierter Algorithmus verwendet werden, der jedoch nicht als Einschränkung gedacht ist. Viele Anwendungen für autonomes Fahren der Stufe 3-5 erfordern eine unmittelbare Bewegungsschätzung / Stereomatching (z.B. Struktur aus Bewegung, Fußgängererkennung, Spurerkennung, etc.). Der PVA kann eine Computer-Stereo-Bilderkennungs-Funktion für die Eingaben von zwei monokularen Kameras ausführen.
  • In einigen Beispielen kann der PVA zur Durchführung eines dichten optischen Flusses verwendet werden. Dementsprechend werden RADAR-Rohdaten (z.B. unter Verwendung einer 4D Fast Fourier Transform) verarbeitet, um verarbeitete RADAR-Daten bereitzustellen. In anderen Beispielen wird der PVA für die Verarbeitung der Flugzeittiefe verwendet, indem die Rohdaten der Flugzeit verarbeitet werden, um z.B. verarbeitete Flugzeitdaten bereitzustellen.
  • Der DLA kann verwendet werden, um jede Art von Netzwerk zu betreiben, um die Kontrolle und Fahrsicherheit zu erhöhen, einschließlich beispielsweise eines neuronalen Netzes, das ein Maß an Vertrauen für jede Objekterkennung ausgibt. Ein solcher Vertrauenswert kann als Wahrscheinlichkeit oder als relative „Gewichtung“ jeder Erkennung im Vergleich zu anderen Erkennungen interpretiert werden. Dieser Vertrauenswert ermöglicht es dem System, weitere Entscheidungen zu treffen, welche Erkennungen als richtig positive Erkennungen und nicht als falsch positive Erkennungen betrachtet werden sollten. So kann das System beispielsweise einen Schwellenwert für das Vertrauen festlegen und nur die den Schwellenwert übersteigenden Erkennungen als richtig positive Erkennungen betrachten. In einem automatischen Notbremssystem (AEB) würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was offensichtlich unerwünscht ist. Daher sollten nur die sichersten Detektionen als Auslöser für das AEB berücksichtigt werden. Der DLA kann ein neuronales Netz zur Regression des Vertrauenswertes betreiben. Das neuronale Netz kann mindestens eine Teilmenge von Parametern als Eingabe verwenden, wie z.B. Abmessungen des Begrenzungsrechtecks, Schätzung der Grundebene (z.B. von einem anderen Subsystem), Ausgabe des Sensors 766 der Trägheitsmesseinheit (IMU), der mit der Ausrichtung des Fahrzeugs 700 korreliert, Entfernungs-, 3D-Positions-Schätzungen des Objekts, die aus dem neuronalen Netz und/oder anderen Sensoren (z.B. LIDAR-Sensor(en) 764 oder RADAR-Sensor(en) 760) erhalten werden.
  • Das/die SoC(s) 704 kann/können Datenspeicher 716 (z.B. Speicher) beinhalten. Die Datenspeicher 716 können On-Chip-Speicher des SoC(s) 704 sein, die neuronale Netze speichern können, die auf der GPU und/oder dem DLA ausgeführt werden sollen. In einigen Beispielen können die Datenspeicher 716 groß genug sein, um mehrere Instanzen neuronaler Netze für Redundanz und Sicherheit zu speichern. Der/die Datenspeicher 712 kann/können L2- oder L3-Cache(s) 712 umfassen. Die Bezugnahme auf den/die Datenspeicher 716 kann einen Bezug auf den Speicher beinhalten, der dem PVA, dem DLA und/oder (einem) anderen Beschleuniger/n 714 zugeordnet ist, wie hierin beschrieben ist.
  • Das/die SoC(s) 704 kann/können einen oder mehrere Prozessor(en) 710 (z.B. integrierte Prozessoren) beinhalten. Der/die Prozessor(en) 710 kann/können einen Boot- und Power-Management-Prozessor beinhalten, der ein dedizierter Prozessor und ein Subsystem sein kann, um Boot-Power- und Management-Funktionen und die damit verbundene Sicherheitsdurchsetzung zu übernehmen. Der Boot- und Power-Management-Prozessor kann Teil der Boot-Sequenz des/der SoC(s) 704 sein und zur Laufzeit Power-Management-Dienste bereitstellen. Der Boot-Power- und Management-Prozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen mit niedrigem Stromverbrauch, Verwaltung von Thermik- und Temperatursensoren des/der SoC(s) 704 und/oder Verwaltung von Leistungszuständen des/der SoC(s) 704 bereitstellen. Jeder Temperatursensor kann als Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das/die SoC(s) 704 kann/können die Ringoszillatoren verwenden, um Temperaturen der CPU(s) 706, GPU(s) 708 und/oder Beschleuniger 714 zu erfassen. Wenn festgestellt wird, dass die Temperaturen einen Schwellenwert überschreiten, kann der Boot- und Power-Management-Prozessor in eine Temperaturfehlerroutine eintreten und den/die SoC(s) 704 in einen niedrigeren Energieverbrauchszustand versetzen und/oder das Fahrzeug 700 in einen Fahrer-Modus bis zu einem Modus eines sicheren Halts versetzen (z.B. das Fahrzeug 700 zu einem sicheren Halt bringen).
  • Der/die Prozessor(en) 710 kann/können ferner eine Reihe von eingebetteten Prozessoren beinhalten, die als Audioverarbeitungsmaschine dienen können. Die Audioverarbeitungsmaschine kann ein Audiosubsystem sein, das die volle Hardwareunterstützung für Mehrkanal-Audio über mehrere Schnittstellen und eine breite und flexible Palette von Audio-I/O-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungsmaschine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • Der/die Prozessor(en) 710 kann/können ferner eine Always-On-Prozessor-Engine beinhalten, die die notwendigen Hardwarefunktionen bereitstellen kann, um die Verwaltung von Sensoren mit niedriger Leistung und die Nachbearbeitung von Anwendungsfällen zu unterstützen. Die Always-On-Prozessor-Engine kann einen Prozessorkern, ein eng gekoppeltes RAM, die Unterstützung von Peripheriegeräten (z.B. Timer und Interrupt-Controller), verschiedene I/O-Controller-Peripheriegeräte und Routinglogik beinhalten.
  • Der/die Prozessor(en) 710 kann/können ferner eine Sicherheits-Cluster-Maschine beinhalten, die ein dediziertes Prozessorsubsystem für das Sicherheitsmanagement für Automobilanwendungen beinhaltet. Die Sicherheits-Cluster-Maschine kann zwei oder mehr Prozessorkerne, ein eng gekoppeltes RAM, Unterstützung von Peripheriegeräten (z.B. Timer, Interruptsteuerung usw.) und/oder Routinglogik beinhalten. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als einzelner Kern mit Vergleichslogik fungieren, um Unterschiede zwischen ihren Operationen zu erkennen.
  • Der/die Prozessor(en) 710 kann/können ferner eine Echtzeit-Kamera-Maschine beinhalten, die ein dediziertes Prozessorsubsystem zur Handhabung eines Echtzeit-Kameramanagement beinhalten kann.
  • Der/die Prozessor(en) 710 kann/können ferner einen Signalprozessor mit hohem Dynamikbereich beinhalten, der einen Bildsignalprozessor beinhalten kann, der eine Hardwaremaschine ist, die Teil der Kameraverarbeitungspipeline ist.
  • Der/die Prozessor(en) 710 kann/können einen Videobild-Zusammensetzer beinhalten, der ein Verarbeitungsblock sein kann (z.B. auf einem Mikroprozessor implementiert), der Funktionen zur Videonachbearbeitung implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Spielerfenster zu erzeugen. Der Videobild-Zusammensetzer kann die Objektivverzerrungskorrektur bei Weitwinkelkameras 770, Surround-Kameras 774 und/oder in der Fahrgastzelle angeordneten Kamerasensoren durchführen. Ein in der Fahrgastzelle angeordneter Überwachungskamerasensor wird vorzugsweise von einem neuronalen Netz überwacht, das auf einer anderen Instanz des Advanced SoC läuft und konfiguriert ist, um Ereignisse in der Fahrgastzelle zu identifizieren und entsprechend zu reagieren. Ein innerhalb der Fahrgastzelle angeordnetes System kann Lippenlesen durchführen, um den Mobilfunk zu aktivieren und einen Anruf zu tätigen, um E-Mails zu diktieren, um das Ziel des Fahrzeugs zu ändern, um das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachaktiviertes Internetsurfen anzubieten. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind andernfalls deaktiviert.
  • Der Videobild-Zusammensetzer kann eine verbesserte zeitliche Rauschunterdrückung bezüglich der räumlichen und zeitlichen Rauschunterdrückung beinhalten. Wenn beispielsweise eine Bewegung in einem Video auftritt, gewichtet die Rauschunterdrückung räumliche Informationen entsprechend und verringert das Gewicht der Informationen, die von benachbarten Bildern bereitgestellt werden. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung beinhaltet, kann die vom Videobild-Zusammensetzer durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu reduzieren.
  • Der Videobild-Zusammensetzer kann auch konfiguriert sein, um eine Nachbesserung bei Eingabe-Frames von Stereolinsen vorzunehmen. Der Videobild-Zusammensetzer kann weiterhin für die Zusammenstellung der Benutzeroberfläche verwendet werden, wenn der Desktop des Betriebssystems verwendet wird und die GPU(s) 708 nicht erforderlich ist/sind, um kontinuierlich neue Oberflächen darzustellen. Selbst wenn die GPU(s) 708 eingeschaltet und aktiv ist/sind und 3D-Rendering durchführt/en, kann der Videobild-Zusammensetzer verwendet werden, um die GPU(s) 708 zu entladen, um die Leistung und Reaktionsfähigkeit zu verbessern.
  • Das/ie SoC(s) 704 kann/können weiterhin eine serielle MIPI-Kameraschnittstelle (Mobile Industry Processor Interface) zum Empfangen von Videos und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock beinhalten, der für Kamera- und zugehörige Pixeleingabefunktionen verwendet werden kann. Das/ie SoC(s) 704 kann/können ferner (eine) Ein-/Ausgabesteuerung/en beinhalten, die durch Software gesteuert werden kann/können und zum Empfangen von I/O-Signalen verwendet werden kann/können, die nicht für eine bestimmte Rolle bestimmt sind.
  • Das/die SoC(s) 704 kann/können weiterhin eine breite Palette von Peripherieschnittstellen beinhalten, um die Kommunikation mit Peripheriegeräten, Audiocodecs, Spannungsverwaltungs- und/oder anderen Geräten zu ermöglichen. Das/die SoC(s) 704 kann/können verwendet werden, um Daten von Kameras (z.B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z.B. LIDAR-Sensor(en) 764, RADAR-Sensor(en) 760, usw., die über Ethernet verbunden sein können), Daten von einem Bus 702 (z.B. Fahrzeuggeschwindigkeit 700, Lenkradposition usw.), Daten von GNSS-Sensor(en) 758 (z.B. verbunden über Ethernet oder CAN-Bus) zu verarbeiten. Das/die SoC(s) 704 kann/können weiterhin dedizierte Hochleistungs-Massenspeicher-Controller beinhalten, die ihre eigenen DMA-Maschinen beinhalten können und die verwendet werden können, um die CPU(s) 706 von Routinedatenverwaltungsaufgaben zu befreien.
  • Das/die SoC(s) 704 kann/können eine End-to-End-Plattform mit einer flexiblen Architektur sein, die sich über die Automatisierungsstufen 3-5 erstreckt und somit eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer-Bilderkennung und ADAS-Techniken für Vielfalt und Redundanz nutzt und effizient einsetzt, und eine Plattform für einen flexiblen, zuverlässigen Treibersoftware-Stack zusammen mit Werkzeugen zum Tiefenlernen bereitstellt. Das/die SoC(s) 704 kann/können schneller, zuverlässiger, energieeffizienter und platzsparender sein als herkömmliche Systeme. So kann beispielsweise der/die Beschleuniger 714 in Kombination mit der/den CPU(s) 706, der/den GPU(s) 708 und dem/den Datenspeicher(n) 716 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bereitstellen.
  • Die Technologie stellt damit Fähigkeiten und Funktionen, die mit herkömmlichen Systemen nicht erreicht werden können, bereit. So können beispielsweise Computer-Bilderkennungs-Algorithmen auf CPUs ausgeführt werden, die mit einer hochrangigen Programmiersprache, wie der Programmiersprache C, konfiguriert werden können, um eine Vielzahl von Verarbeitungsalgorithmen über eine Vielzahl von Bilddaten auszuführen. Allerdings sind CPUs oft nicht in der Lage, die Leistungsanforderungen vieler Bildverarbeitungsanwendungen zu erfüllen, z.B. in Bezug auf Ausführungszeit und Energieverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, was eine Anforderung für ADAS-Anwendungen im Fahrzeug und eine Anforderung für praktische autonome Fahrzeuge der Stufe 3-5 ist.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht die hierin beschriebene Technologie durch die Bereitstellung eines CPU-Komplexes, GPU-Komplexes und eines Hardwarebeschleunigungsclusters die gleichzeitige und/oder sequentielle Ausführung mehrerer neuronaler Netze und die Kombination der Ergebnisse, um eine autonome Fahrfunktionalität der Stufe 3-5 zu ermöglichen. So kann beispielsweise ein CNN, das auf dem DLA oder der dGPU ausgeführt wird (z.B. der/den GPU(s) 720), eine Text- und Worterkennung beinhalten, so dass der Supercomputer Verkehrszeichen lesen und verstehen kann, einschließlich Zeichen, für die das neuronale Netz nicht speziell trainiert wurde. Der DLA kann ferner ein neuronales Netz beinhalten, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und semantisch zu verstehen und dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Pfadplanungsmodule weiterzugeben.
  • Als weiteres Beispiel können mehrere neuronale Netze gleichzeitig betrieben werden, wie es für das Fahren auf Stufe 3, 4 oder 5 erforderlich ist. So kann beispielsweise ein Warnzeichen bestehend aus „Achtung: Blinklichter zeigen eisige Zustände an“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. Das Zeichen selbst kann durch ein erstes eingesetztes neuronales Netz (z.B. ein trainiertes neuronales Netz) als Verkehrszeichen identifiziert werden, der Text „Blinklichter zeigen eisige Zustände an“ kann durch ein zweites eingesetztes neuronales Netzwerk interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (vorzugsweise auf dem CPU-Komplex) darüber informiert, dass bei Erkennung von Blinklichtern eisige Zustände vorliegen. Das Blinklicht kann identifiziert werden, indem ein drittes eingesetztes neuronales Netz über mehrere Einzelbilder betrieben wird und die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von Blinklichtern informiert wird. Alle drei neuronalen Netze können gleichzeitig laufen, z.B. innerhalb des DLA und/oder auf der GPU(s) 708.
  • In einigen Beispielen kann ein CNN für die Gesichtserkennung und die Identifizierung des Fahrzeughalters Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 700 zu identifizieren. Die immer eingeschaltete Sensorverarbeitungsmaschine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Eigentümer der Fahrertür nähert und die Lichter einschaltet, und um im Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Eigentümer das Fahrzeug verlässt. Auf diese Weise bieten das/die SoC(s) 704 Schutz vor Diebstahl und/oder Autodiebstahl.
  • In einem weiteren Beispiel kann ein CNN für die Erkennung und Identifizierung von Einsatzfahrzeugen Daten aus den Mikrofonen 796 verwenden, um Sirenen von Einsatzfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifizierer verwenden, um Sirenen zu erkennen und Merkmale manuell zu extrahieren, verwendet/n das/die SoC(s) 704 das CNN zur Klassifizierung von Umgebungs- und Stadtgeräuschen sowie zur Klassifizierung von visuellen Daten. In einer bevorzugten Ausführungsform wird das CNN, das auf dem DLA läuft, trainiert, um die relative Geschwindigkeit des sich nähernden Einsatzfahrzeugs zu identifizieren (z.B. durch den Doppler-Effekt). Das CNN kann auch geschult werden, um Einsatzfahrzeuge zu identifizieren, die spezifisch für das lokale Gebiet, in dem das Fahrzeug eingesetzt wird, sind, wie es durch den/die GNSS-Sensor(en) 758 identifiziert wird. So wird beispielsweise das CNN bei Operationen in Europa versuchen, europäische Sirenen zu erkennen, und wenn es in den Vereinigten Staaten ist, wird das CNN versuchen, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Einsatzfahrzeug erkannt wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für ein Einsatzfahrzeug auszuführen, das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug mit Hilfe von Ultraschallsensoren 762 im Leerlauf zu halten, bis das/die Einsatzfahrzeug(e) vorbeifährt.
  • Das Fahrzeug kann (eine) CPU(s) 718 (z.B. diskrete CPU(s) oder dCPU(s)) beinhalten, die über eine Hochgeschwindigkeitsverbindung (z.B. PCle) mit dem SoC(s) 704 gekoppelt werden kann/können. Das/die CPU(s) 718 kann/können beispielsweise einen X86-Prozessor beinhalten. Die CPU(s) 718 kann/können verwendet werden, um eine Vielzahl von Funktionen auszuführen, einschließlich der Vermittlung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem/den SoC(s) 704 und/oder der Überwachung von Status und Zustand der Steuerung(en) 736 und/oder des Infotainments SoC 730, zum Beispiel.
  • Das Fahrzeug 700 kann (eine) GPU(s) 720 (z.B. diskrete GPU(s) oder dGPU(s)) beinhalten, die über eine Hochgeschwindigkeitsverbindung (z.B. NVIDIAs NVLINK) mit dem/den SoC(s) 704 gekoppelt werden kann. Die GPU(s) 720 kann/können zusätzliche Funktionen der künstlichen Intelligenz bereitstellen, beispielsweise durch die Ausführung redundanter und/oder verschiedener neuronaler Netze, und können zum Trainieren und/oder Aktualisieren neuronaler Netze abhängig von Eingaben (z.B. Sensordaten) von Sensoren des Fahrzeugs 700 verwendet werden.
  • Das Fahrzeug 700 kann ferner die Netzwerkschnittstelle 724 beinhalten, die eine oder mehrere drahtlose Antennen 726 beinhalten kann (z.B. eine oder mehrere drahtlose Antennen für verschiedene Kommunikationsprotokolle, wie beispielsweise eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 724 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z.B. mit dem/den Server(n) 778 und/oder anderen Netzwerkgeräten), mit anderen Fahrzeugen und/oder mit Rechengeräten (z.B. Client-Geräten von Fahrgästen) zu ermöglichen. Zur Kommunikation mit anderen Fahrzeugen kann eine direkte Verbindung zwischen den beiden Fahrzeugen und/oder eine indirekte Verbindung (z.B. über Netzwerke und über das Internet) hergestellt werden. Direkte Verbindungen können über eine Kommunikationsverbindung zwischen Fahrzeug und Fahrzeug bereitgestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 700 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 700 bereitstellen (z.B. Fahrzeuge vor, auf der Seite und/oder hinter dem Fahrzeug 700). Diese Funktionalität kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 700 sein.
  • Die Netzwerkschnittstelle 724 kann ein SoC beinhalten, das Modulations- und Demodulationsfunktionen bereitstellt und die Kommunikation der Steuerung(en) 736 über drahtlose Netzwerke ermöglicht. Die Netzwerkschnittstelle 724 kann ein Hochfrequenz-Frontend für die Aufwärtskonvertierung vom Basisband in die Hochfrequenz und die Abwärtskonvertierung von der Hochfrequenz in das Basisband beinhalten. Die Frequenzumwandlungen können durch bekannte Verfahren und/oder durch Superheterodynverfahren durchgeführt werden. In einigen Beispielen kann die Funkfrequenz-Frontend-Funktionalität durch einen separaten Chip bereitgestellt werden. Die Netzwerkschnittstelle kann drahtlose Funktionen für die Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth, LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle beinhalten.
  • Das Fahrzeug 700 kann ferner Datenspeicher 728 beinhalten, die auch Off-Chip-Speicher (z.B. außerhalb des/der SoC(s) 704) beinhalten können. Der/die Datenspeicher 728 können ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen beinhalten, die mindestens ein Bit an Daten speichern können.
  • Das Fahrzeug 700 kann ferner GNSS-Sensoren 758 beinhalten. Der/die GNSS-Sensor(en) 758 (z.B. GPS- und/oder assistierte GPS-Sensoren) können bei der Abbildung, Wahrnehmung, Belegungsnetzgenerierung und/oder der Wegplanung helfen. Es kann eine beliebige Anzahl von GNSS-Sensoren 758 verwendet werden, einschließlich beispielsweise und ohne Einschränkung eines GPS mit einem USB-Anschluss mit einer Ethernet-nach-Seriell-(RS-232)-Brücke.
  • Das Fahrzeug 700 kann ferner RADAR-Sensoren 760 beinhalten. Der/die RADAR-Sensor(en) 760 kann/können vom Fahrzeug 700 zur weiträumigen Fahrzeugerkennung verwendet werden, selbst bei Dunkelheit und/oder extremen Wetterbedingungen. Die funktionalen Sicherheitsniveaus von RADAR können ASIL B sein. Der/die RADAR-Sensor(en) 760 kann/können den CAN-Bus und/oder den Bus 702 verwenden (z.B. um Daten zu übertragen, die von den RADAR-Sensoren 760 erzeugt werden), um die Steuerung zu übernehmen und auf Objektverfolgungsdaten zuzugreifen, mit Zugriff aufs Ethernet für den Zugriff auf Rohdaten in einigen Beispielen. Es können eine Vielzahl von RADAR-Sensortypen verwendet werden. So kann/können beispielsweise der/die RADAR-Sensor(en) 760 ohne Einschränkung für den vorderen, hinteren und seitlichen RADAR-Einsatz geeignet sein. In einigen Beispielen werden Puls-Doppler-RADAR-Sensoren verwendet.
  • Der/die RADAR-Sensor(en) 760 kann/können verschiedene Konfigurationen beinhalten, wie z.B. eine lange Reichweite mit engem Sichtfeld, eine kurze Reichweite mit weitem Sichtfeld, eine seitliche Abdeckung mit kurzer Reichweite, etc. In einigen Beispielen kann das Langbereichs-RADAR für die adaptive Geschwindigkeitsregelungsfunktion verwendet werden. Die weitreichenden RADAR-Systeme können ein breites Sichtfeld bieten, das durch zwei oder mehr unabhängige Abtastungen, beispielsweise in einem Umkreis von 250 m, realisiert wird. Der/die RADAR-Sensor(en) 760 kann/können bei der Unterscheidung zwischen statischen und beweglichen Objekten helfen und von ADAS-Systemen zur Notbremsunterstützung und Vorwärtskollisionswarnung verwendet werden. Langstrecken-RADAR-Sensoren können ein monostatisches multimodales RADAR mit mehreren (z.B. sechs oder mehr) festen RADAR-Antennen und einer schnellen CAN- und FlexRay-Schnittstelle beinhalten. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlmuster erzeugen, das dazu ausgelegt ist, die Umgebungen des Fahrzeugs 700 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr auf benachbarten Fahrspuren aufzunehmen. Die beiden anderen Antennen können das Sichtfeld erweitern, so dass Fahrzeuge, die in die Spur des Fahrzeugs 700 einfahren oder aus dieser herausfahren, schnell erkannt werden können.
  • RADAR-Systeme eines mittleren Bereichs können beispielsweise eine Reichweite von bis zu 760 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 750 Grad (hinten) beinhalten. RADAR-Systeme eines kurzen Bereichs können ohne Einschränkung RADAR-Sensoren beinhalten, die für die Installation an beiden Enden der hinteren Stoßstange vorgesehen sind. Bei Installation an beiden Enden der hinteren Stoßstange kann ein solches RADAR-Sensorsystem zwei Strahlen erzeugen, die den toten Winkel im Heck und neben dem Fahrzeug ständig überwachen.
  • RADAR-Systeme des kurzen Bereichs können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Spurwechselunterstützung eingesetzt werden.
  • Das Fahrzeug 700 kann ferner Ultraschallsensoren 762 beinhalten. Der/die Ultraschallsensor(en) 762, der/die vorne, hinten und/oder an den Seiten des Fahrzeugs 700 positioniert werden kann/können, kann/können zur Einparkhilfe und/oder zur Erstellung und Aktualisierung eines Belegungsgitters verwendet werden. Eine Vielzahl von Ultraschallsensoren 762 kann verwendet werden, und verschiedene Ultraschallsensoren 762 können für verschiedene Erfassungsbereiche (z.B. 2,5m, 4m) verwendet werden. Der/die Ultraschallsensor(en) 762 kann/können mit der funktionalen Sicherheit von ASIL B arbeiten.
  • Das Fahrzeug 700 kann LIDAR-Sensoren 764 beinhalten. Der/die LIDAR-Sensor(en) 764 kann/können zur Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder anderen Funktionen verwendet werden. In einigen Beispielen kann das Fahrzeug 700 mehrere LIDAR-Sensoren 764 (z.B. zwei, vier, sechs usw.) beinhalten, die Ethernet verwenden können (z.B. um Daten an einen Gigabit-Ethernet-Switch zu liefern).
  • In einigen Beispielen kann/können der/die LIDAR-Sensor(en) 764 in der Lage sein, eine Liste von Objekten und deren Abstände für ein 360-Grad-Sichtfeld bereitzustellen. Handelsübliche LIDAR-Sensoren 764 können eine angezeigte Reichweite von ca. 700 m, eine Genauigkeit von 2 cm - 3 cm und eine Unterstützung für eine 700 MBit/s Ethernet-Verbindung aufweisen. In einigen Beispielen kann/können ein oder mehrere nicht vorstehende LIDAR-Sensoren 764 verwendet werden. In solchen Beispielen kann/können der/die LIDAR-Sensor(en) 764 als kleine Vorrichtung implementiert sein, die in die Vorderseite, Hinterseite, Seiten und/oder Ecken des Fahrzeugs 700 eingebettet sein kann. Der/die LIDAR-Sensor(en) 764 kann/können in solchen Beispielen ein horizontales Sichtfeld von bis zu 720 Grad und ein vertikales Sichtfeld von 35 Grad und eine Reichweite von 200 m auch für Objekte mit geringer Reflexion bereitstellen. Die frontseitig montierten LIDAR-Sensoren 764 können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert werden.
  • In einigen Beispielen können auch LIDAR-Technologien, wie beispielsweise 3D-Flash-LIDAR, verwendet werden. 3D-Flash-LIDAR verwendet einen Laserblitz als Strahlenquelle, um die Fahrzeugumgebung bis zu einer Weite von ca. 200 m auszuleuchten. Eine Flash-LIDAR-Einheit beinhaltet einen Empfänger, der die Laserpulslaufzeit und das reflektierte Licht auf jedem Pixel erfasst, was wiederum der Reichweite vom Fahrzeug bis zu den Objekten entspricht. Flash-LIDAR ermöglicht es, mit jedem Laserblitz hochpräzise und verzerrungsfreie Bilder der Umgebung zu erzeugen. In einigen Beispielen können vier Flash-LIDAR-Sensoren eingesetzt werden, einer auf jeder Seite des Fahrzeugs 700. Verfügbare 3D-Flash-LIDAR-Systeme beinhalten eine Festkörper-3D-Sternfeld-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z.B. eine nicht abtastende LIDAR-Vorrichtung). Das Flash-LIDAR-Gerät kann einen Laserimpuls der Klasse I (augensicher) mit 5 Nanosekunden Dauer pro Frame verwenden und das reflektierte Laserlicht in Form von 3D-Reichweitenpunktwolken und gemeinsam registrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR ein Halbleitergerät ohne bewegliche Teile ist, kann/können der/die LIDAR-Sensor(en) 764 weniger anfällig für Bewegungsunschärfe, Vibrationen und/oder Stöße sein.
  • Das Fahrzeug kann ferner IMU-Sensoren 766 beinhalten.Der/die IMU-Sensor(en) 766 kann/können sich in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 700 befinden. Der/die IMU-Sensor(en) 766 kann/können beispielsweise (einen) Beschleunigungssensor(en), (einen) Magnetometer, (einen) Gyroskop(e), (einen) Magnetkompass(e) und/oder andere Sensortypen beinhalten. In einigen Beispielen, wie beispielsweise in Sechs-Achs-Anwendungen, kann/können der/die IMU-Sensor(en) 766 Beschleunigungssensoren und Gyroskope beinhalten, während in Neun-Achs-Anwendungen der/die IMU-Sensor(en) 766 Beschleunigungssensoren, Gyroskope und Magnetometer beinhalten können.
  • In einigen Ausführungsformen kann/können der/die IMU-Sensor(en) 766 als miniaturisiertes, leistungsstarkes GPS-gestütztes Trägheitsnavigationssystem (GPS/INS) implementiert werden, das Trägheitssensoren eines mikro-elektromechanischen Systems (MEMS), einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Höhe bereitzustellen. In einigen Beispielen kann/können der/die IMU-Sensor(en) 766 es dem Fahrzeug 700 ermöglichen, die Richtung zu schätzen, ohne dass eine Eingabe von einem Magnetsensor erforderlich ist, indem die Geschwindigkeitsänderungen vom GPS zu dem/den IMU-Sensor(en) 766 direkt beobachtet und korreliert werden. In einigen Beispielen können der/die IMU-Sensor(en) 766 und der/die GNSS-Sensor(en) 758 in einer einzigen integrierten Einheit kombiniert sein.
  • Das Fahrzeug kann ein oder mehrere Mikrofone 796 beinhalten, die sich im und/oder um das Fahrzeug 700 herum befinden. Das/die Mikrofon(e) 796 kann/können unter anderem zur Erkennung und Identifizierung von Einsatzfahrzeugen verwendet werden.
  • Das Fahrzeug kann ferner eine beliebige Anzahl von Kameratypen beinhalten, einschließlich Stereokamera(s) 768, Weitsichtkamera(s) 770, Infrarotkamera(s) 772, Surround-Kamera(s) 774, Fern- und/oder Mittelbereichskamera(s) 798 und/oder anderen Kameratypen. Die Kameras können zum Erfassen von Bilddaten über den gesamten Umfang des Fahrzeugs 700 verwendet werden. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen an das Fahrzeug 700 ab, und jede Kombination von Kameratypen kann verwendet werden, um die erforderliche Abdeckung rund um das Fahrzeug 700 zu gewährleisten. Darüber hinaus kann die Anzahl der Kameras je nach Ausführungsform unterschiedlich sein. So kann beispielsweise das Fahrzeug sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras aufweisen. Die Kameras können beispielsweise und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kameras wird hierin mit Bezug zu 7A und 7B näher beschrieben.
  • Das Fahrzeug 700 kann ferner (einen) Schwingungssensor(en) 742 beinhalten. Der/die Schwingungssensor(en) 742 kann/können Vibrationen von Fahrzeugkomponenten, wie beispielsweise der Achse(n), messen. So können beispielsweise Änderungen der Vibrationen auf eine Veränderung der Fahrbahnoberfläche hinweisen. In einem weiteren Beispiel, wenn zwei oder mehr Schwingungssensoren 742 verwendet werden, können die Unterschiede zwischen den Schwingungen verwendet werden, um die Reibung oder den Schlupf der Fahrbahnoberfläche zu bestimmen (z.B. wenn die Schwingungsdifferenz zwischen einer angetriebenen Achse und einer frei rotierenden Achse besteht).
  • Das Fahrzeug 700 kann ein ADAS-System 738 beinhalten. Das ADAS-System 738 kann in einigen Beispielen einen SoC beinhalten. Das ADAS-System 738 kann einen autonomen/adaptiven/automatischen Geschwindigkeitsregler (ACC), einen kooperativen adaptiven Geschwindigkeitsregler (CACC), eine Vorwärts-Crashwarnvorrichtung (FCW), eine automatische Notbremsvorrichtung (AEB), eine Spurverlassenmeldungsvorrichtung (LDW), einen Spurhalteassistenten (LKA), eine Tote-Winkel-Warnungsvorrichtung (BSW), eine Warnvorrichtung vor hinterem Querverkehr (RCTW), Kollisionswarnsysteme (CWS), eine Spurzentrierung (LC) und/oder andere Merkmale und Funktionen beinhalten.
  • Die ACC-Systeme können RADAR-Sensoren 760, LIDAR-Sensoren 764 und/oder (eine) Kamera(s) verwenden. Die ACC-Systeme können Längs-ACC und/oder seitliches ACC beinhalten. Das Längs-ACC überwacht und steuert den Abstand zum Fahrzeug unmittelbar vor dem Fahrzeug 700 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen Sicherheitsabstand zu den vorausfahrenden Fahrzeugen einzuhalten. Der seitliche ACC führt die Abstandseinhaltung durch und weist das Fahrzeug 700 an, bei Bedarf die Spur zu wechseln. Das seitliche ACC ist mit anderen ADAS-Anwendungen wie LCA und CWS verknüpft.
  • CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 724 und/oder die drahtlose(n) Antenne(n) 726 von anderen Fahrzeugen über eine drahtlose Verbindung oder indirekt über eine Netzwerkverbindung (z.B. über das Internet) empfangen werden können. Direkte Verbindungen können über eine Kommunikationsverbindung zwischen Fahrzeug und Fahrzeug (V2V) bereitgestellt werden, während indirekte Verbindungen über eine Kommunikationsverbindung zwischen Infrastruktur und Fahrzeug (I2V) erfolgen können. Im Allgemeinen liefert das V2V-Kommunikationskonzept Informationen über die unmittelbar vorausfahrenden Fahrzeuge (z.B. Fahrzeuge unmittelbar vor und auf der gleichen Spur wie das Fahrzeug 700), während das I2V-Kommunikationskonzept Informationen über den Verkehr weiter entfernt liefert. CACC-Systeme können eine der oder beide 12V- und V2V-Informationsquellen beinhalten. Angesichts der Informationen der Fahrzeuge vor dem Fahrzeug 700 kann CACC zuverlässiger sein und hat das Potenzial, den Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.
  • FCW-Systeme sind so konzipiert, dass sie den Fahrer vor einer Gefahr warnen, so dass der Fahrer Korrekturmaßnahmen ergreifen kann. FCW-Systeme verwenden eine nach vorn gerichtete Kamera und/oder RADAR-Sensoren 760, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit der Fahrerrückmeldung gekoppelt ist, wie beispielsweise einer Anzeige-, Lautsprecher- und/oder Vibrationskomponente. FCW-Systeme können eine Warnung auslösen, z.B. in Form von Schall, einer optischen Warnung, einer Vibration und/oder einem schnellen Bremsimpuls.
  • AEB-Systeme erkennen eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt und können automatisch die Bremsen betätigen, wenn der Fahrer innerhalb eines bestimmten Zeit- oder Abstandsparameters keine Korrekturmaßnahmen ergreift. AEB-Systeme können Frontkameras und/oder RADAR-Sensoren 760 verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, warnt es den Fahrer in der Regel zunächst, Korrekturmaßnahmen zur Vermeidung der Kollision zu ergreifen, und wenn der Fahrer keine Korrekturmaßnahmen ergreift, kann das AEB-System automatisch die Bremsen betätigen, um die Auswirkungen der vorhergesagten Kollision zu verhindern oder zumindest zu mildern. AEB-Systeme können Techniken wie dynamische Bremsunterstützung und/oder Bremsen bei bevorstehendem Zusammenstoß beinhalten.
  • LDW-Systeme liefern visuelle, akustische und/oder taktile Warnungen, wie beispielsweise Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 700 die Fahrbahnmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer durch Aktivieren eines Blinkers ein absichtliches Verlassen der Fahrspur anzeigt. LDW-Systeme können Frontkameras verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit der Fahrerrückmeldung gekoppelt ist, wie beispielsweise eine Anzeige-, Lautsprecher- und/oder Vibrationskomponente.
  • LKA-Systeme sind eine Variante der LDW-Systeme. LKA-Systeme stellen Lenkeingaben oder einen Bremsvorgang bereit, um das Fahrzeug 700 zu korrigieren, wenn das Fahrzeug 700 beginnt, die Fahrspur zu verlassen.
  • BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel eines Fahrzeugs. BSW-Systeme können einen visuellen, akustischen und/oder taktilen Alarm auslösen, um anzuzeigen, dass das Einfädeln oder Wechseln von Fahrspuren unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker benutzt. BSW-Systeme können Rückfahrkameras und/oder RADAR-Sensoren 760 verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit der Fahrerrückmeldung gekoppelt ist, wie beispielsweise einer Anzeige-, Lautsprecher- und/oder Vibrationskomponente.
  • RCTW-Systeme können eine visuelle, akustische und/oder taktile Benachrichtigung auslösen, wenn ein Objekt außerhalb des Rückfahrkamerabereichs erkannt wird, wenn das Fahrzeug 700 rückwärtsfährt. Einige RCTW-Systeme beinhalten AEB, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensoren 760 verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit der Fahrerrückmeldung gekoppelt ist, wie beispielsweise einer Anzeige-, Lautsprecher- und/oder Vibrationskomponente.
  • Herkömmliche ADAS-Systeme können zu falsch positiven Ergebnissen neigen, die für einen Fahrer lästig und störend sein können, aber in der Regel nicht katastrophal sind, da die ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung tatsächlich vorliegt, und entsprechend zu handeln. Bei einem autonomen Fahrzeug 700 muss das Fahrzeug 700 jedoch selbst bei widersprüchlichen Ergebnissen entscheiden, ob es das Ergebnis von einem primären Computer oder einem sekundären Computer (z.B. einer ersten Steuerung 736 oder einer zweiten Steuerung 736) berücksichtigt. So kann beispielsweise das ADAS-System 738 in einigen Ausführungsformen ein Backup- und/oder Sekundärcomputer sein, um einem Rationalitätsmodul des Backup-Computers Wahrnehmungsinformationen zur Verfügung zu stellen. Der Rationalitätsmonitor des Backup-Computers kann eine redundante, diverse Software auf Hardwarekomponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahraufgaben zu erkennen. Ausgaben aus dem ADAS-System 738 können an eine übergeordnete MCU bereitgestellt werden. Wenn Ausgaben des primären Computers und des sekundären Computers einander widersprechen, muss die übergeordnete MCU festlegen, wie der Konflikt zu lösen ist, um einen sicheren Betrieb zu gewährleisten.
  • In einigen Beispielen kann der primäre Computer konfiguriert sein, um der überwachenden MCU einen Vertrauenswert zu liefern, der das Vertrauen des primären Computers in das gewählte Ergebnis anzeigt. Überschreitet der Vertrauenswert einen Schwellenwert, kann die überwachende MCU der Anweisung des primären Computers folgen, unabhängig davon, ob der sekundäre Computer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Wenn der Vertrauenswert den Schwellenwert nicht erreicht und wenn der primäre und der sekundäre Computer unterschiedliche Ergebnisse anzeigen (z.B. den Konflikt), kann die überwachende MCU zwischen den Computern vermitteln, um das geeignete Ergebnis zu bestimmen.
  • Die überwachende MCU kann konfiguriert sein, um ein oder mehrere neuronale Netze zu betreiben, die trainiert und konfiguriert sind, um basierend auf den Ergebnissen des primären Computers und des sekundären Computers Bedingungen zu bestimmen, unter denen der sekundäre Computer Fehlalarme liefert. So kann/können das/die neuronale(n) Netz (e) in der überwachenden MCU lernen, wann der Ausgang des sekundären Computers vertrauenswürdig ist und wann nicht. Wenn es sich bei dem sekundären Computer beispielsweise um ein RADAR-basiertes FCW-System handelt, kann ein neuronales Netz in der überwachenden MCU lernen, wenn das FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren darstellen, wie beispielsweise ein Abwassergitter oder eine Schachtabdeckung, die einen Alarm auslösen. In ähnlicher Weise kann, wenn es sich bei dem sekundären Computer um ein kamerabasiertes LDW-System handelt, ein neuronales Netz in der überwachenden MCU lernen, das LDW zu übersteuern, wenn Radfahrer oder Fußgänger anwesend sind und eine Spurabfahrt tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein oder mehrere neuronale Netze beinhalten, das/die auf der überwachenden MCU ausgeführt wird/werden, kann die überwachende MCU mindestens eine von einem DLA oder einer GPU beinhalten, die für den Betrieb des oder der neuronalen Netze mit zugehörigem Speicher geeignet ist. In bevorzugten Ausführungsformen kann die überwachende MCU das/die SoC(s) umfassen und/oder als eine Komponente des/der SoC(s) 704 vorhanden sein.
  • In anderen Beispielen kann das ADAS-System 738 einen sekundären Computer beinhalten, der die ADAS-Funktionalität nach den traditionellen Regeln der Computer-Bilderkennung ausführt. Somit kann der sekundäre Computer klassische Computer-Bilderkennungs-Regeln verwenden (Wenn-Bedingungen), und das Vorhandensein eines oder mehrerer neuronaler Netze in der überwachenden MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. So macht beispielsweise die vielfältige Implementierung und absichtliche Nicht-Gleichheit das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch die Funktionalität von Software (oder einer Software-Hardware-Schnittstelle) verursacht werden. Wenn beispielsweise ein Softwarefehler oder ein Fehler in der auf dem primären Computer ausgeführten Software vorliegt und der nicht identische Softwarecode, der auf dem sekundären Computer ausgeführt wird, das gleiche Gesamtergebnis liefert, kann die übergeordnete MCU eine größere Sicherheit haben, dass das Gesamtergebnis korrekt ist, und der Fehler in der Software oder Hardware auf dem primären Computer verursacht keinen wesentlichen Fehler.
  • In einigen Beispielen kann die Ausgabe des ADAS-Systems 738 in den Wahrnehmungsblock des primären Computers und/oder in den dynamischen Fahrauftragsblock des primären Computers eingespeist werden. Wenn das ADAS-System 738 beispielsweise eine Vorwärts-Crash-Warnung aufgrund eines Objekts unmittelbar voraus anzeigt, kann der Wahrnehmungsblock diese Informationen zur Identifizierung von Objekten verwenden. In anderen Beispielen kann der sekundäre Computer über ein eigenes neuronales Netz verfügen, das trainiert wird und somit das Risiko von Fehlalarmen reduziert, wie hierin beschrieben ist.
  • Das Fahrzeug 700 kann auch das Infotainment-SoC 730 beinhalten (z.B. ein Infotainmentsystem (IVI) im Fahrzeug). Obwohl es als SoC dargestellt und beschrieben ist, ist das Infotainmentsystem möglicherweise kein SoC und kann zwei oder mehr diskrete Komponenten beinhalten. Das Infotainment-SoC 730 kann eine Kombination aus Hard- und Software beinhalten, die verwendet werden kann, um Audio (z.B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, ein Radio, etc.), ein Video (z.B. TV, Filme, Streaming, etc.), ein Telefon (z.B. Freisprechfunktion), eine Netzwerkverbindung (z.B. LTE, Wi-Fi usw.) und/oder Informationsdienste (z.B. Navigationssysteme, Rückfahrhilfen, ein Funksystem, fahrzeugbezogene Informationen wie einen Kraftstoffstand, eine Gesamtstrecke, einen Bremskraftstoffstand, einen Ölstand, Tür auf/zu, Luftfilterinformationen usw.) für das Fahrzeug 700 bereitzustellen. So kann beispielsweise das Infotainment-SoC 730 Radios, Diskettenspieler, Navigationssysteme, Videoplayer, eine USB- und Bluetooth-Konnektivität, einen Car Computer, ein In-Car-Entertainment, ein Wi-Fi, Lenkrad-Audiosteuerungen, eine Freisprechfunktion, eine Heads-Up-Display (HUD), ein HMI-Display 734, ein Telematikgerät, ein Bedienfeld (z.B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder andere Komponenten aufweisen. Das Infotainment-SoC 730 kann ferner verwendet werden, um einem/einen Benutzer(en) des Fahrzeugs Informationen (z.B. visuell und/oder akustisch) zur Verfügung zu stellen, wie Informationen aus dem ADAS-System 738, autonome Fahrinformationen wie geplante Fahrzeugmanöver, Trajektorien, Umgebungsinformationen (z.B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.
  • Das Infotainment-SoC 730 kann eine GPU-Funktionalität beinhalten. Das Infotainment-SoC 730 kann über den Bus 702 (z.B. CAN-Bus, Ethernet, etc.) mit anderen Geräten, Systemen und/oder Komponenten des Fahrzeugs 700 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 730 mit einer überwachenden MCU gekoppelt werden, so dass die GPU des Infotainmentsystems einige Selbstfahrfunktionen ausführen kann, falls die primäre(n) Steuerung(en) 736 (z.B. die primären und/oder Backup-Computer des Fahrzeugs 700) ausfallen. In einem solchen Beispiel kann das Infotainment-SoC 730 das Fahrzeug 700 in einen Modus vom Fahrer-Modus bis zu einem Modus für einen sicheren Halt versetzen, wie hier beschrieben ist.
  • Das Fahrzeug 700 kann ferner ein Kombiinstrument 732 beinhalten (z.B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.). Das Kombiinstrument 732 kann eine Steuerung und/oder einen Supercomputer (z.B. eine diskrete Steuerung oder einen Supercomputer) beinhalten. Das Kombiinstrument 732 kann eine Reihe von Instrumenten beinhalten, wie beispielsweise einen Geschwindigkeitsmesser, einen Kraftstoffstandmesser, einen Öldruckmesser, einen Drehzahlmesser, einen Kilometerzähler, einen Blinker, eine Schaltpositionsanzeige, (ein) Sicherheitsgurtwarnlicht(er), (ein) Feststellbremswarnlicht(er), (ein) Motorstörungslicht(er), Airbag(SRS)-Systeminformationen, eine Beleuchtungssteuerung, eine Sicherheitssystemsteuerung, Navigationsinformationen usw. In einigen Beispielen können Informationen zwischen dem Infotainment-SoC 730 und dem Kombiinstrument 732 angezeigt und/oder ausgetauscht werden. Mit anderen Worten, das Kombiinstrument 732 kann als Teil des Infotainments-SoC 730 integriert sein oder umgekehrt.
  • 7D ist ein Systemdiagramm für die Kommunikation zwischen Cloud-basierten Servern und dem exemplarischen autonomen Fahrzeug 700 von 7A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 776 kann (einen) Server 778, (ein) Netzwerk(e) 790 und Fahrzeuge, einschließlich des Fahrzeugs 700, beinhalten. Die Server 778 können eine Vielzahl von GPUs 784(A)-784(H) (hierin zusammenfassend als GPUs 784 bezeichnet), PCIe-Switches 782(A)-782(H) (hierin zusammenfassend als PCIe-Switches 782 bezeichnet) und/oder CPUs 780(A)-780(B) (hier gemeinsam als CPUs 780 bezeichnet) beinhalten. Die GPUs 784, die CPUs 780 und die PCIe-Switches können mit Hochgeschwindigkeitsverbindungen wie beispielsweise den von NVIDIA entwickelten NVLink-Schnittstellen 788 und/oder PCIe-Verbindungen 786 verbunden sein.In einigen Beispielen werden die GPUs 784 über NVLink und/oder NVSwitch-SoC und die GPUs 784 und die PCIe-Switches 782 über PCIe-Verbindungen verbunden. Obwohl acht GPUs 784, zwei CPUs 780 und zwei PCIe-Switches dargestellt sind, soll dies nicht einschränkend sein. Abhängig von der Ausführungsform kann jeder der Server 778 eine beliebige Anzahl von GPUs 784, CPUs 780 und/oder PCIe-Switches beinhalten. So können beispielsweise die Server 778 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 784 beinhalten.
  • Der/die Server 778 kann/können über das/die Netzwerk(e) 790 und von den Fahrzeugen Bilddaten empfangen, die Bilder darstellen, die unerwartete oder veränderte Straßenverhältnisse zeigen, wie beispielsweise kürzlich begonnene Straßenarbeiten. Der/die Server 778 kann/können über das/die Netz(e) 790 und an die Fahrzeuge neuronale Netze 792, aktualisierte neuronale Netze 792 und/oder Karteninformationen 794 übertragen, einschließlich Informationen über den Verkehrs- und Straßenzustand. Die Aktualisierungen der Karteninformationen 794 können Aktualisierungen für die HD-Karte 722 beinhalten, wie beispielsweise Informationen über Baustellen, Schlaglöcher, Umwege, Überschwemmungen und/oder andere Hindernisse. In einigen Beispielen können die neuronalen Netze 792, die aktualisierten neuronalen Netze 792 und/oder die Karteninformationen 794 von einem neuen Training und/oder Erfahrungen resultieren, die in Daten dargestellt werden, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen wurden, und/oder abhängig von einem Training sein, das in einem Rechenzentrum durchgeführt wurden (z.B. unter Verwendung der Server 778 und/oder anderer Server).
  • Der/die Server 778 kann/können verwendet werden, um Modelle zum maschinellen Lernen (z.B. neuronale Netze) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen erzeugt und/oder in einer Simulation (z.B. mit einer Spielmaschine) erzeugt werden. In einigen Beispielen werden die Trainingsdaten markiert (z.B. wenn das neuronale Netzwerk vom überwachten Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen, während in anderen Beispielen die Trainingsdaten nicht markiert und/oder vorverarbeitet werden (z.B. wenn das neuronale Netz kein überwachtes Lernen erfordert). Sobald die Modelle zum maschinellen Lernen trainiert sind, können die Modelle zum maschinellen Lernen von den Fahrzeugen verwendet (z.B. übertragen an die Fahrzeuge über das/die Netzwerk(e) 790 werden, und/oder die Modelle zum maschinellen Lernen können vom/von den Server(n) 778 verwendet werden, um die Fahrzeuge aus der Ferne zu überwachen.
  • In einigen Beispielen können die Server 778 Daten von den Fahrzeugen empfangen und die Daten in Echtzeit auf aktuelle neuronale Netze zur intelligenten logischen Schlussfolgerung in Echtzeit anwenden. Die Server 778 können Deep-Learning-Supercomputer und/oder dedizierte Kl-Computer mit GPU(s) 784 beinhalten, wie beispielsweise DGX- und DGX-Station-Maschinen, die von NVIDIA entwickelt wurden.In einigen Beispielen können die Server 778 jedoch eine Deep-Learning-Infrastruktur beinhalten, die nur CPU-gestützte Rechenzentren verwendet.
  • Die Deep-Learning-Infrastruktur des/der Server 778 kann in der Lage sein, schnell und in Echtzeit logisch zu schließen, und kann diese Fähigkeit nutzen, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 700 zu bewerten und zu überprüfen. So kann beispielsweise die Deep-Learning-Infrastruktur regelmäßige Aktualisierungen vom Fahrzeug 700 erhalten, wie beispielsweise eine Folge von Bildern und/oder Objekten, die das Fahrzeug 700 in dieser Folge von Bildern (z.B. durch Computer-Bilderkennung und/oder andere Techniken zur Klassifizierung von Objekten beim maschinellen Lernen) lokalisiert hat. Die Deep-Learning-Infrastruktur kann ein eigenes neuronales Netz betreiben, um die Objekte zu identifizieren und mit den vom Fahrzeug 700 identifizierten Objekten zu vergleichen, und wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 700 nicht funktioniert, können die Server 778 ein Signal an das Fahrzeug 700 senden, das einen ausfallsicheren Computer des Fahrzeugs 700 anweist, die Steuerung zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • Für das logische Schließen kann/können der/die Server 778 die GPU(s) 784 und einen oder mehrere programmierbare Beschleuniger zum logischen Schließen (z.B. NVIDIAs TensorRT 3) beinhalten. Die Kombination aus GPU-basierten Servern und Beschleunigung des logischen Schließens kann Echtzeit-Reaktionsfähigkeit ermöglichen. In anderen Beispielen, z. B. wenn die Leistung weniger kritisch ist, können Server, die von CPUs, FPGAs und anderen Prozessoren betrieben werden, zum logischen Schließen verwendet werden.
  • Beispielhafte Rechenvorrichtung
  • 8 ist ein Blockdiagramm einer exemplarischen Rechenvorrichtung 800, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Die Rechenvorrichtung 800 kann einen Bus 802 beinhalten, der direkt oder indirekt die folgenden Vorrichtungen koppelt: einen Speicher 804, eine oder mehrere Zentraleinheiten (CPUs) 806, eine oder mehrere Grafikverarbeitungseinheiten (GPUs) 808, eine Kommunikationsschnittstelle 810, Ein-/Ausgabeports (I/Os) 812, Ein-/Ausgabekomponenten 814, eine Stromversorgung 816 und eine oder mehrere Präsentationskomponenten 818 (z.B. Display(s)).
  • Obwohl die verschiedenen Blöcke von 8 als über den Bus 802 mit Leitungen verbunden dargestellt sind, ist dies nicht als Einschränkung gedacht und dient nur der Übersichtlichkeit. So kann beispielsweise in einigen Ausführungsformen eine Präsentationskomponente 818, wie beispielsweise eine Anzeigevorrichtung, als I/O-Komponente 814 betrachtet werden (z.B. wenn die Anzeige ein Touchscreen ist). Als weiteres Beispiel können die CPUs 806 und/oder GPUs 808 Speicher beinhalten (z.B. kann der Speicher 804 zusätzlich zu dem Speicher der GPUs 808, der CPUs 806 und/oder anderer Komponenten auch eine Speichervorrichtung darstellen). Mit anderen Worten, die Rechenvorrichtung von 8 ist nur illustrativ. Es wird nicht zwischen Kategorien wie „Arbeitsplatz“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Gerät“, „mobile Vorrichtung“, „Hand-Gerät“, „Spielekonsole“, „elektronische Steuereinheit (ECU)“, „Virtual Reality-System“ und/oder anderen Geräte- oder Systemtypen unterschieden, wie sie alle als von der Computervorrichtung von 8 umfasst betrachtet werden.
  • Der Bus 802 kann einen oder mehrere Busse darstellen, wie beispielsweise einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Der Bus 802 kann einen oder mehrere Bustypen besitzen, wie beispielsweise einen ISA-Bus (Industrie-Standard-Architektur), einen EISA-Bus (Extended Industrie-Standard-Architektur), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCIe-Bus (Peripheral Component Interconnect Express) und/oder einen anderen Bustyp.
  • Der Speicher 804 kann eine Vielzahl von computerlesbaren Medien beinhalten. Bei den computerlesbaren Medien kann es sich um alle verfügbaren Medien handeln, auf die die Computervorrichtung 800 zugreifen kann. Die computerlesbaren Datenträger können sowohl flüchtige als auch nichtflüchtige Datenträger sowie wechselbare und nicht wechselbare Datenträger enthalten. Beispielsweise können die computerlesbaren Medien, nicht einschränkend, Computerspeichermedien und Kommunikationsmedien umfassen.
  • Die Computerspeichermedien können sowohl flüchtige als auch nichtflüchtige Medien und/oder entfernbare und nicht entfernbare Medien beinhalten, die in einem Verfahren oder einer Technologie zur Speicherung von Informationen wie computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder anderen Datentypen implementiert sind. So kann beispielsweise der Speicher 804 computerlesbare Anweisungen (z.B., die ein oder mehrere Programme und/oder ein oder mehrere Programmelemente, wie beispielsweise ein Betriebssystem, darstellen) speichern. Computer-Speichermedien können unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, digitale vielseitige Festplatten (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das von der Computervorrichtung 800 zugegriffen werden kann, beinhalten. Wie hierin verwendet, umfassen Computerspeichermedien keine Signale per se.
  • Die Kommunikationsmedien können computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal, wie beispielsweise einer Trägerwelle oder einem anderen Transportmechanismus, enthalten und beinhalten alle Informationslieferungsmedien. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, das eine oder mehrere seiner Eigenschaften so eingestellt oder geändert hat, dass Informationen im Signal kodiert werden. Als Beispiel und nicht als Einschränkung können die Kommunikationsmedien drahtgebundene Medien wie ein drahtgebundenes Netzwerk oder eine direkte Verbindung sowie drahtlose Medien wie akustische, HF-, Infrarot- und andere drahtlose Medien beinhalten. Kombinationen aus einer der oben genannten Möglichkeiten sollen ebenfalls in den Anwendungsbereich von computerlesbaren Medien fallen.
  • Die CPU(s) 806 kann/können konfiguriert sein, um die computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Computervorrichtung 800 zu steuern, um eine oder mehrere der hierin beschriebenen Verfahren und/oder Prozesse auszuführen. Die CPU(s) 806 kann/können jeweils einen oder mehrere Kerne (z.B. ein, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) beinhalten, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 806 kann/können jede Art von Prozessor beinhalten und kann/können je nach Art der implementierten Computervorrichtung 800 verschiedene Arten von Prozessoren beinhalten (z.B. Prozessoren mit weniger Kernen für mobile Geräte und Prozessoren mit mehr Kernen für Server). Je nach Typ der Rechenvorrichtung 800 kann der Prozessor beispielsweise ein ARM-Prozessor, der mit Reduced Instruction Set Computing (RISC) implementiert ist, oder ein x86-Prozessor, der mit Complex Instruction Set Computing (CISC) implementiert ist, sein. Die Rechenvorrichtung 800 kann eine oder mehrere CPUs 806 zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Co-Prozessoren, wie beispielsweise mathematische Co-Prozessoren, beinhalten.
  • Die GPU(s) 808 kann/können von der Computervorrichtung 800 verwendet werden, um Grafiken (z.B. 3D-Grafiken) darzustellen. Die GPU(s) 808 kann/können Hunderte oder Tausende von Kernen beinhalten, die in der Lage sind, Hunderte oder Tausende von Software-Threads gleichzeitig zu verarbeiten. Die GPU(s) 808 kann/können Pixeldaten für Ausgabebilder als Reaktion auf Rendering-Befehle erzeugen (z.B. Rendering-Befehle von der/den CPU(s) 806, die über eine Host-Schnittstelle empfangen werden). Die GPU(s) 808 kann/können Grafikspeicher, wie beispielsweise den Anzeigespeicher, zum Speichern von Pixeldaten beinhalten. Der Anzeigespeicher kann als Teil des Speichers 804 eingebunden werden. Die GPU(s) 708 kann/können zwei oder mehr GPU(s) beinhalten, die parallel (z.B. über eine Verbindung) arbeiten. In Kombination kann jede GPU 808 Pixeldaten für verschiedene Abschnitte eines Ausgabebildes oder für verschiedene Ausgabebilder erzeugen (z.B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher beinhalten oder Speicher mit anderen GPUs teilen.
  • In Beispielen, in denen die Computervorrichtung 800 nicht die GPU(s) 808 beinhaltet, kann/können die CPU(s) 806 zum Rendern von Grafiken verwendet werden.
  • Die Kommunikationsschnittstelle 810 kann einen oder mehrere Empfänger, Sender und/oder Sender-Empfänger beinhalten, die es der Rechenvorrichtung 700 ermöglichen, mit anderen Rechenvorrichtungen über ein elektronisches Kommunikationsnetzwerk, einschließlich drahtgebundener und/oder drahtloser Kommunikation, zu kommunizieren. Die Kommunikationsschnittstelle 810 kann Komponenten und Funktionen beinhalten, um die Kommunikation über eine Vielzahl von verschiedenen Netzwerken zu ermöglichen, wie beispielsweise drahtlose Netzwerke (z.B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth, LE, ZigBee, etc.), drahtgebundene Netzwerke (z.B. Kommunikation über Ethernet), Low-Power-Weitbereichsnetze (z.B. LoRa-WAN, SigFox, etc.) und/oder das Internet.
  • Die I/O-Ports 812 können es ermöglichen, die Rechenvorrichtung 800 logisch mit anderen Vorrichtungen zu koppeln, einschließlich der I/O-Komponenten 814, der Präsentationskomponente(n) 818 und/oder anderer Komponenten, von denen einige in die Rechenvorrichtung 800 eingebaut (z.B. integriert) werden können. Zu den veranschaulichenden I/O-Komponenten 814 gehören ein Mikrofon, eine Maus, eine Tastatur, ein Joystick, ein Gamepad, eine Spielsteuerung, eine Satellitenschüssel, ein Scanner, ein Drucker, eine drahtlose Vorrichtung, etc. Die I/O-Komponenten 814 können eine natürliche Benutzeroberfläche (NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben verarbeitet, die von einem Benutzer erzeugt werden. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzelement übertragen werden. Eine NUI kann jede beliebige Kombination aus einer Spracherkennung, einer Stifterkennung, einer Gesichtserkennung, einer biometrischer Erkennung, einer Gestenerkennung sowohl auf dem Bildschirm als auch neben dem Bildschirm, Luftgesten, eine Kopf- und Augen-Nachverfolgung und eine Berührungserkennung (wie im Folgenden näher beschrieben) in Verbindung mit einer Anzeige der Computervorrichtung 800 implementieren. Die Rechenvorrichtung 800 kann Tiefenkameras beinhalten, wie stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, eine Touchscreen-Technologie und Kombinationen davon zur Gesten-Erfassung und - Erkennung. Zusätzlich kann die Rechenvorrichtung 800 Beschleunigungssensoren oder Gyroskope (z.B. als Teil einer Trägheitsmesseinheit (IMU)) beinhalten, die die Erfassung von Bewegungen ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungssensoren oder Gyroskope von der Rechenvorrichtung 800 verwendet werden, um immersive erweiterte Realität oder virtuelle Realität darzustellen.
  • Die Stromversorgung 816 kann eine fest verdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination derselben beinhalten. Die Stromversorgung 816 kann die Rechenvorrichtung 800 mit Strom versorgen, um den Betrieb der Komponenten der Rechenvorrichtung 800 zu ermöglichen.
  • Die Präsentationskomponente(n) 818 kann/können eine Anzeige (z.B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Head-up-Display (HUD), andere Anzeigetypen oder eine Kombination davon), einen Lautsprecher und/oder andere Präsentationskomponenten beinhalten. Die Präsentationskomponente(n) 818 kann/können Daten von anderen Komponenten (z.B. der/den GPU(s) 808, der/den CPU(s) 806 usw.) empfangen und die Daten ausgeben (z.B. als Bild, Video, Ton usw.).
  • Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinentauglichen Anweisungen, einschließlich computerausführbarer Anweisungen, wie beispielsweise Programmmodule, beschrieben werden, die von einem Computer oder einer anderen Maschine, wie beispielsweise einem Assistenten für personenbezogene Daten oder einem anderen tragbaren Gerät, ausgeführt werden. Im Allgemeinen beziehen sich Programmodule, einschließlich Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., auf Code, der bestimmte Aufgaben erfüllt oder bestimmte abstrakte Datentypen implementiert. Die Offenbarung kann in einer Vielzahl von Systemkonfigurationen praktiziert werden, einschließlich tragbarer Geräte, einer Unterhaltungselektronik, einem Universalcomputer, spezialisierter Computergeräte usw. Die Offenbarung kann auch in verteilten Computerumgebungen ausgeführt werden, in denen Aufgaben von abgesetzten Verarbeitungsvorrichtungen ausgeführt werden, die über ein Kommunikationsnetzwerk verbunden sind.
  • Wie es hierin verwendet wird, sollte eine Verwendung von „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass sie nur ein Element oder eine Kombination von Elementen bedeutet. So kann beispielsweise „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder Elemente A, B und C beinhalten. Darüber hinaus kann „mindestens eines von Element A oder Element B“ mindestens eines von Element A, mindestens eines von Element B oder mindestens eines von Element A und mindestens eines von Element B beinhalten. Weiterhin kann „mindestens eines von Element A und Element B“ zumindest Element A, zumindest Element B oder zumindest Element A und zumindest Element B beinhalten.
  • Der Gegenstand der vorliegenden Offenbarung wird hierin spezifisch beschrieben, um den gesetzlichen Anforderungen zu entsprechen. Die Beschreibung selbst soll jedoch nicht den Umfang dieser Offenbarung einschränken. Vielmehr haben die Erfinder erkannt, dass der beanspruchte Gegenstand auch auf andere Weise ausgestaltet sein könnte, um verschiedene Schritte oder Kombinationen von Schritten ähnlich den in diesem Dokument beschriebenen in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien einzubeziehen. Obwohl die Begriffe „Schritt“ und/oder „Block“ hierin verwendet werden können, um verschiedene Elemente der verwendeten Verfahren zu benennen, sollten die Begriffe nicht so interpretiert werden, dass sie eine bestimmte Reihenfolge unter oder zwischen den verschiedenen hierin offenbarten Schritten bedeuten, es sei denn, es wird die Reihenfolge der einzelnen Schritte ausdrücklich beschrieben.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16101232 [0183]

Claims (20)

  1. Verfahren umfassend: Erfassen von Sensordaten, welche von einem oder von mehreren Sensoren eines Fahrzeugs in einer physischen Umgebung erzeugt werden; Aufbringen der Sensordaten auf ein neuronales Netz; Berechnen durch einen ersten Strom des neuronalen Netzes von einer Gruppe von Begrenzungspunkten, welche durch die Sensordaten repräsentiert werden und welche einer Begrenzung entsprechen, die einen befahrbaren Freiraum in der physischen Umgebung von einem nicht befahrbaren Raum in der physischen Umgebung abteilt; Bestimmen von Orten in der physischen Umgebung, welche der Gruppe von Begrenzungspunkten entsprechen; Berechnen durch einen zweiten Strom des neuronalen Netzes von Klassenbezeichnungen für Begrenzungspunkte der Gruppe von Begrenzungspunkten; und Ausführen von einer oder von mehreren Operationen zur Steuerung des Fahrzeugs durch die physische Umgebung zumindest teilweise abhängig von den Orten und den Klassenbezeichnungen.
  2. Verfahren nach Anspruch 1, wobei die Gruppe von Begrenzungspunkten eine erste Gruppe von Begrenzungspunkten ist, die Sensordaten erste Sensordaten sind, und das Verfahren darüber hinaus umfasst: Gewichten von ersten Werten, welche der ersten Gruppe von Begrenzungspunkten entsprechen, mit zweiten Werten, welche einer zweiten Gruppe von Begrenzungspunkten von zweiten Sensordaten, die vor den ersten Sensordaten erfasst wurden, entsprechen, um dritte Werte zu berechnen, wobei das Bestimmen der Orte innerhalb der physischen Umgebung zumindest teilweise abhängig von den dritten Werten erfolgt.
  3. Verfahren nach Anspruch 1, darüber hinaus umfassend: für zumindest einen Begrenzungspunkt der Gruppe von Begrenzungspunkten Anwenden eines Filters auf einen ersten Wert, welcher dem Begrenzungspunkt entspricht, um einen aktualisierten ersten Wert zu erzeugen, wobei das Filter einen zweiten Wert, welcher zumindest einem zu dem Begrenzungspunkt benachbarten Begrenzungspunkt entspricht, gewichtet, wobei das Bestimmen der Orte in der physischen Umgebung zumindest teilweise abhängig von dem aktuellen ersten Wert ist.
  4. Verfahren nach Anspruch 1, wobei die Klassenbezeichnungen zumindest einen Fußgänger, eine Bordsteinkante, eine Barriere, ein Fahrzeug, eine Struktur, befahrbar, nicht befahrbar oder einen Alles-Sammler aufweisen.
  5. Verfahren nach Anspruch 1, wobei das neuronale Netz ein faltendes neuronales Netz (CNN) aufweist, wobei das CNN eine Regressionsanalyse ausführt und die Gruppe der Begrenzungspunkte durch den ersten Strom des CNN als ein eindimensionales Feld berechnet wird.
  6. Verfahren nach Anspruch 5, wobei die Sensordaten Bilddaten aufweisen, welche für ein Bild repräsentativ sind, welches eine räumliche Breite aufweist, und wobei das eindimensionale Feld eine Anzahl von Spalten aufweist, welche der räumlichen Breite entspricht.
  7. Verfahren nach Anspruch 1, wobei die Gruppe der Begrenzungspunkte eine erste Gruppe von Begrenzungspunkten ist, wobei der befahrbare Freiraum ein erster befahrbarer Freiraum ist, wobei der nicht befahrbare Raum ein erster nicht befahrbarer Raum ist, wobei das Verfahren darüber hinaus umfasst: Berechnen durch einen dritten Strom des neuronalen Netzes von einer zweiten Gruppe von Begrenzungspunkten, welche durch die Sensordaten repräsentiert werden, die einer zweiten Begrenzung entsprechen, welche einen zweiten befahrbaren Freiraum in der physischen Umgebung von einem zweiten nicht befahrbaren Raum in der physischen Umgebung abteilt.
  8. Verfahren nach Anspruch 1, wobei die Sensordaten für eine Anzahl von Spalten repräsentativ sind, und wobei die Gruppe von Begrenzungspunkten einen Begrenzungspunkt von jeder Spalte der Anzahl von Spalten aufweist.
  9. Verfahren nach Anspruch 8, wobei der Begrenzungspunkt von jeder Spalte ein einziger Punkt ist, und wobei der einzige Punkt, ansteigend von dem Boden eines Bildes, welches durch die Sensordaten repräsentiert wird, einen ersten Punkt in der Spalte, welcher der Begrenzung entspricht, repräsentiert.
  10. Verfahren umfassend: Erfassen eines Trainingsbildes, welches eine physische Umgebung repräsentiert; Erfassen von Anmerkungsdaten, welche eine oder mehrere Anmerkungen, die dem Trainingsbild entsprechen, repräsentieren, wobei die eine oder die mehreren Anmerkungen aufweisen: eine Begrenzungsbezeichnung, welche sich über eine Breite des Trainingsbildes erstreckt und mit zumindest einem Pixel in jeder Spalte von Pixeln des Trainingsbildes korrespondiert, wobei das mindestens eine Pixel, vom Boden zur Oberseite des Trainingsbildes, einer ersten Begrenzung in der Umgebung entspricht, welche zumindest teilweise einen befahrbaren Freiraum von einem nicht befahrbaren Raum abteilt; und Klassenbezeichnungen, welche einem oder mehreren Segmenten der Begrenzungsbezeichnung entsprechen, wobei jede Klassenbezeichnung einem Begrenzungstyp entspricht, welcher dem einen oder den mehreren Segmenten zugeordnet ist; und Trainieren eines neuronalen Netzes mittels der einen oder der mehreren Anmerkungen als Ground-Truth-Daten.
  11. Verfahren nach Anspruch 10, wobei ein Segment des einen oder der mehreren Segmente der Begrenzungsbezeichnung einer Form entspricht, welche durch den Begrenzungstyp definiert wird.
  12. Verfahren nach Anspruch 10, wobei ein Segment des einen oder der mehreren Segmente der Begrenzung eine gerade Linie aufweist, welche sich entlang eines Abschnitts des Trainingsbildes erstreckt, welcher dem Begrenzungstyp entspricht.
  13. Verfahren nach Anspruch 10, wobei das Training des neuronalen Netzes ein Zuweisen eines höheren Gewichts zu Ausgabedaten von dem neuronalen Netz aufweist, welche eine erste Klassenbezeichnung der Klassenbezeichnungen aufweisen, als eine zweite Klassenbezeichnung, und Anpassen des neuronalen Netzes mittels des höheren Gewichts.
  14. Verfahren nach Anspruch 10, wobei: das neuronale Netz erste Ausgaben, welche den Klassenbezeichnungen entsprechen, und zweite Ausgaben, welche einem Ort der Begrenzungsbezeichnung in dem Trainingsbild entsprechen, berechnet; und wobei das Training des neuronalen Netzes ein Einsetzen einer ersten Verlustfunktion, welche den ersten Ausgaben zugeordnet ist, und einer zweiten Verlustfunktion, welche den zweiten Ausgaben zugeordnet ist, aufweist.
  15. Verfahren nach Anspruch 14, wobei das Training des neuronalen Netzes ein Einsetzen einer gewichteten Kombination der ersten Verlustfunktion und der zweiten Verlustfunktion aufweist, um einen endgültigen Verlust zu berechnen.
  16. Verfahren umfassend: Erfassen von Sensordaten, welche ein Bild eines Gesichtsfelds von mindestens einem Sensor eines Fahrzeugs in einer physischen Umgebung repräsentieren; Aufbringen der Sensordaten auf ein neuronales Netz; Berechnen durch das neuronale Netz einer ersten Gruppe von Begrenzungspunkten, welche durch die Sensordaten repräsentiert werden und welche einer befahrbaren Begrenzung entsprechen, die einen ersten befahrbaren Freiraum in der physischen Umgebung von einem ersten nicht befahrbaren Raum in der physischen Umgebung abteilt; Berechnen durch das neuronale Netz einer zweiten Gruppe von Begrenzungspunkten, welche durch die Sensordaten repräsentiert werden und welche einer nicht befahrbaren Begrenzung entsprechen, die einen zweiten befahrbaren Freiraum in der physischen Umgebung von dem ersten nicht befahrbaren Raum und/oder einem zweiten nicht befahrbaren Raum in der physischen Umgebung abteilt; und Ausführen von einer oder von mehreren Operationen zum Steuern des Fahrzeugs durch die physische Umgebung zumindest teilweise abhängig von der befahrbaren Begrenzung und der nicht befahrbaren Begrenzung.
  17. Verfahren nach Anspruch 16, wobei das Steuern des Fahrzeugs durch die physische Umgebung ein Überqueren der befahrbaren Begrenzung aufweist.
  18. Verfahren nach Anspruch 16, wobei die befahrbare Begrenzung einem ersten Segment einer größeren Begrenzung entspricht und die nicht befahrbare Begrenzung einem zweiten Segment der größeren Begrenzung entspricht.
  19. Verfahren nach Anspruch 16, wobei die nicht befahrbare Begrenzung weiter weg von dem Fahrzeug in der physischen Umgebung angeordnet ist als die befahrbare Begrenzung.
  20. Verfahren nach Anspruch 16, wobei das neuronale Netz trainiert wird, mehrere Begrenzungsklassen zu berechnen, wobei die mehreren Begrenzungsklassen zumindest eine befahrbare und eine nicht befahrbare aufweisen.
DE112019000048.9T 2018-03-15 2019-03-15 Bestimmung eines befahrbaren freiraums für autonome fahrzeuge Pending DE112019000048T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862643665P 2018-03-15 2018-03-15
US62/643,665 2018-03-15
US16/355,328 US11537139B2 (en) 2018-03-15 2019-03-15 Determining drivable free-space for autonomous vehicles
PCT/US2019/022592 WO2019178548A1 (en) 2018-03-15 2019-03-15 Determining drivable free-space for autonomous vehicles
US16/355,328 2019-03-15

Publications (1)

Publication Number Publication Date
DE112019000048T5 true DE112019000048T5 (de) 2020-01-16

Family

ID=67905615

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000048.9T Pending DE112019000048T5 (de) 2018-03-15 2019-03-15 Bestimmung eines befahrbaren freiraums für autonome fahrzeuge

Country Status (4)

Country Link
US (2) US11537139B2 (de)
CN (1) CN110494863B (de)
DE (1) DE112019000048T5 (de)
WO (1) WO2019178548A1 (de)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019206990A1 (de) * 2019-05-14 2020-11-19 Zf Friedrichshafen Ag Generieren einer Umgebungskarte eines Fahrzeugs
DE102020201369A1 (de) 2020-02-05 2021-08-05 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zur Bahnplanung für einen autonomen Agenten
DE102020201939A1 (de) 2020-02-17 2021-08-19 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zur Bewertung eines Bildklassifikators
DE102020117812A1 (de) 2020-07-07 2022-01-13 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bereitstellen einer Einrichtung zur Vorhersage von Fehlern beim Verarbeiten von Bilddaten, Einrichtung zum Vorhersagen von Segmentierungsfehlern und Kraftfahrzeug
DE102020128952A1 (de) 2020-11-03 2022-05-05 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Assistenzeinrichtung zur zweistufigen bildbasierten Szenenerkennung und Kraftfahrzeug
DE102021101118A1 (de) 2021-01-20 2022-07-21 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Fehlervorhersage einer semantischen Segmentierung von Bilddaten, Assistenzeinrichtung und Kraftfahrzeug
DE102021110069A1 (de) 2021-04-21 2022-10-27 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Assistenzeinrichtung und Kraftfahrzeug zum semantischen Segmentieren eines digitalen Bildes und Verfahren zum Bereitstellen eines Korrekturmodells für die semantische Segmentierung
DE102021211465A1 (de) 2021-10-12 2023-04-13 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Generieren einer Kartendarstellung für Fahrzeuge mit integrierter Freiflächeninformation
LU500855B1 (de) * 2021-11-15 2023-05-15 Phoenix Contact E Mobility Gmbh Ladesteckverbinder, Verfahren zur Bestimmung der räumlichen Lage eines Ladesteckverbinders, und Ladestation mit einem Ladesteckverbinder

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200016386A (ko) * 2017-07-20 2020-02-14 닛산 지도우샤 가부시키가이샤 차량 주행 제어 방법 및 차량 주행 제어 장치
CN111247565B (zh) * 2017-09-06 2022-06-03 瑞士再保险有限公司 用于移动远程信息处理装置的电子日志记录和跟踪检测系统及其对应方法
JP6918425B2 (ja) * 2017-11-09 2021-08-11 株式会社Mobility Technologies 撮影画像に含まれる境界線を検出するための装置、方法、及びプログラム
US11042163B2 (en) 2018-01-07 2021-06-22 Nvidia Corporation Guiding vehicles through vehicle maneuvers using machine learning models
CN110352153A (zh) 2018-02-02 2019-10-18 辉达公司 自主车辆中用于障碍物躲避的安全程序分析
WO2019178548A1 (en) 2018-03-15 2019-09-19 Nvidia Corporation Determining drivable free-space for autonomous vehicles
WO2019182974A2 (en) 2018-03-21 2019-09-26 Nvidia Corporation Stereo depth estimation using deep neural networks
US11860640B2 (en) * 2018-03-29 2024-01-02 Sony Corporation Signal processing device and signal processing method, program, and mobile body
JP7077726B2 (ja) * 2018-04-02 2022-05-31 株式会社デンソー 車両システム、空間領域推測方法及び空間領域推測装置
US11480971B2 (en) * 2018-05-01 2022-10-25 Honda Motor Co., Ltd. Systems and methods for generating instructions for navigating intersections with autonomous vehicles
US11966838B2 (en) 2018-06-19 2024-04-23 Nvidia Corporation Behavior-guided path planning in autonomous machine applications
DE102018212916A1 (de) * 2018-08-02 2020-02-06 Bayerische Motoren Werke Aktiengesellschaft Bestimmung eines Verlaufs einer Fahrspur
US10839230B2 (en) * 2018-09-06 2020-11-17 Ford Global Technologies, Llc Multi-tier network for task-oriented deep neural network
US11783707B2 (en) 2018-10-09 2023-10-10 Ford Global Technologies, Llc Vehicle path planning
US11110918B2 (en) * 2018-11-02 2021-09-07 Zoox, Inc. Dynamic collision checking
US11610115B2 (en) 2018-11-16 2023-03-21 Nvidia Corporation Learning to generate synthetic datasets for training neural networks
US10823855B2 (en) * 2018-11-19 2020-11-03 Fca Us Llc Traffic recognition and adaptive ground removal based on LIDAR point cloud statistics
US10936902B1 (en) 2018-11-27 2021-03-02 Zoox, Inc. Training bounding box selection
US11010907B1 (en) * 2018-11-27 2021-05-18 Zoox, Inc. Bounding box selection
US11151391B2 (en) * 2018-12-10 2021-10-19 Here Global B.V. Method and apparatus for creating a visual map without dynamic content
DE112020000487T5 (de) * 2019-01-23 2021-11-18 Motional Ad Llc Automatisches wählen von datenproben zur annotation
US10762393B2 (en) * 2019-01-31 2020-09-01 StradVision, Inc. Learning method and learning device for learning automatic labeling device capable of auto-labeling image of base vehicle using images of nearby vehicles, and testing method and testing device using the same
WO2020163390A1 (en) 2019-02-05 2020-08-13 Nvidia Corporation Driving lane perception diversity and redundancy in autonomous driving applications
KR20200106102A (ko) * 2019-02-21 2020-09-11 현대자동차주식회사 저비용 자율 주행 셔틀 운행 방법 및 장치
CN113811886B (zh) * 2019-03-11 2024-03-19 辉达公司 自主机器应用中的路口检测和分类
WO2020185234A1 (en) * 2019-03-14 2020-09-17 Hewlett-Packard Development Company, L.P. Preprocessing sensor data for machine learning
US11704573B2 (en) * 2019-03-25 2023-07-18 Here Global B.V. Method, apparatus, and computer program product for identifying and compensating content contributors
US11169513B2 (en) 2019-03-29 2021-11-09 Tusimple, Inc. Operational testing of autonomous vehicles
US11157004B2 (en) * 2019-04-01 2021-10-26 GM Global Technology Operations LLC Real-time control system for a vehicle and a method of executing control of the vehicle via the real-time control system
US11161500B1 (en) 2019-05-13 2021-11-02 GM Cruise Holdings, LLC Advanced passenger safety for an autonomous vehicle
US11080884B2 (en) * 2019-05-15 2021-08-03 Matterport, Inc. Point tracking using a trained network
US11460851B2 (en) 2019-05-24 2022-10-04 Ford Global Technologies, Llc Eccentricity image fusion
US11067786B2 (en) * 2019-06-07 2021-07-20 Leica Microsystems Inc. Artifact regulation methods in deep model training for image transformation
US11521494B2 (en) 2019-06-11 2022-12-06 Ford Global Technologies, Llc Vehicle eccentricity mapping
US11032150B2 (en) * 2019-06-17 2021-06-08 International Business Machines Corporation Automatic prediction of behavior and topology of a network using limited information
KR102246661B1 (ko) * 2019-06-25 2021-05-03 엘지전자 주식회사 음성 인에이블 디바이스 선택 방법 및 장치
US11662741B2 (en) * 2019-06-28 2023-05-30 Ford Global Technologies, Llc Vehicle visual odometry
US11294385B2 (en) * 2019-06-28 2022-04-05 Robert Bosch Gmbh System and method for generating a representation of an environment
US11455806B2 (en) * 2019-07-10 2022-09-27 Deka Products Limited Partnership System and method for free space estimation
US10956776B2 (en) 2019-08-06 2021-03-23 Alibaba Group Holding Limited 2D convolutional accelerator that generates 3D results
US11482015B2 (en) * 2019-08-09 2022-10-25 Otobrite Electronics Inc. Method for recognizing parking space for vehicle and parking assistance system using the method
DE102019129737A1 (de) * 2019-09-30 2021-04-01 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Klassifizieren einer Umgebung eines Fahrzeugs
US11550324B2 (en) * 2019-09-30 2023-01-10 Zoox, Inc. Parking zone detection for vehicles
EP3806065A1 (de) * 2019-10-11 2021-04-14 Aptiv Technologies Limited Verfahren und system zur bestimmung eines attributs eines objekts an einem vorbestimmten zeitpunkt
CN112166340B (zh) * 2019-10-17 2024-04-05 深圳市大疆创新科技有限公司 获取雷达位置的方法、雷达以及可移动平台
US11514594B2 (en) * 2019-10-30 2022-11-29 Vergence Automation, Inc. Composite imaging systems using a focal plane array with in-pixel analog storage elements
US10839242B1 (en) * 2019-11-12 2020-11-17 Raymond Wu Single-chip solution with smart recognition by feature extraction of embedded image sensor
US11462023B2 (en) * 2019-11-14 2022-10-04 Toyota Research Institute, Inc. Systems and methods for 3D object detection
US11861485B2 (en) * 2019-11-22 2024-01-02 Baidu Usa Llc Data format transform method to improve AI engine MAC utilization
US11543534B2 (en) * 2019-11-22 2023-01-03 Samsung Electronics Co., Ltd. System and method for three-dimensional object detection
EP3832525A1 (de) * 2019-12-03 2021-06-09 Aptiv Technologies Limited Fahrzeuge, systeme und verfahren zur bestimmung eines eintritts einer belegungskarte in der nähe eines fahrzeugs
WO2021118809A1 (en) * 2019-12-11 2021-06-17 Nvidia Corporation Surface profile estimation and bump detection for autonomous machine applications
US11775867B1 (en) * 2019-12-18 2023-10-03 System Inc. System and methods for evaluating machine learning models
US11741336B2 (en) * 2019-12-19 2023-08-29 Google Llc Generating and/or using training instances that include previously captured robot vision data and drivability labels
KR20210080717A (ko) * 2019-12-20 2021-07-01 주식회사 만도 운전자 보조 장치 및 운전자 보조 방법
US11180165B2 (en) * 2019-12-26 2021-11-23 Baidu Usa Llc Autonomous driving vehicle three-point turn
CN111145277A (zh) * 2019-12-31 2020-05-12 山东浪潮人工智能研究院有限公司 一种深度语义感知与bpg压缩工具的图像压缩方法
DE112020006410T5 (de) * 2019-12-31 2022-10-27 Nvidia Corporation Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
CN111242000A (zh) * 2020-01-09 2020-06-05 电子科技大学 一种结合激光点云转向的道路边沿检测方法
US11029691B1 (en) * 2020-01-23 2021-06-08 Left Hand Robotics, Inc. Nonholonomic robot field coverage method
CN111338336B (zh) * 2020-02-11 2021-07-13 腾讯科技(深圳)有限公司 一种自动驾驶方法及装置
CN111401421A (zh) * 2020-03-06 2020-07-10 上海眼控科技股份有限公司 基于深度学习的图像类别判定方法、电子设备以及介质
EP3882813A1 (de) 2020-03-20 2021-09-22 Aptiv Technologies Limited Verfahren zur erzeugung eines dynamischen belegungsrasters
CN111409455A (zh) * 2020-03-26 2020-07-14 北京汽车集团有限公司 车辆的速度控制方法及装置、电子设备、存储介质
US11535246B2 (en) * 2020-03-30 2022-12-27 Denso Corporation Systems and methods for providing a warning to an occupant of a vehicle
US11458994B2 (en) 2020-03-30 2022-10-04 Toyota Research Institute, Inc. Systems and methods for semi-autonomously controlling a vehicle
JP7429143B2 (ja) * 2020-03-30 2024-02-07 本田技研工業株式会社 移動体制御装置、移動体制御方法、およびプログラム
EP3905106A1 (de) 2020-04-27 2021-11-03 Aptiv Technologies Limited Verfahren zur bestimmung einer befahrbaren fläche
EP3905105A1 (de) * 2020-04-27 2021-11-03 Aptiv Technologies Limited Verfahren zur bestimmung eines kollisionsfreien raumes
CN111694019A (zh) * 2020-05-13 2020-09-22 华南理工大学 一种基于激光雷达和端到端控制算法的智能行驶教育方法
CN111634233A (zh) * 2020-05-25 2020-09-08 杭州鸿泉物联网技术股份有限公司 一种安全驾驶系统和方法
CN111812674B (zh) * 2020-06-08 2024-04-05 北京经纬恒润科技股份有限公司 激光雷达仿真方法及装置
US20220012506A1 (en) * 2020-07-13 2022-01-13 Wisense Technologies Ltd. System and method of segmenting free space based on electromagnetic waves
KR102427463B1 (ko) * 2020-07-16 2022-08-01 주식회사 비젼그리드 자율주행을 위한 영상추적을 이용한 거리 측정 방법 및 장치
KR20220025585A (ko) * 2020-08-24 2022-03-03 삼성전자주식회사 위치 추정 방법 및 장치
CN114115211A (zh) * 2020-08-26 2022-03-01 深圳市杉川机器人有限公司 一种自移动设备及系统及建立工作区域地图的方法
WO2022043512A1 (en) * 2020-08-28 2022-03-03 UMNAI Limited Behavior modeling, verification, and autonomous actions and triggers of ml and ai systems
US11321862B2 (en) 2020-09-15 2022-05-03 Toyota Research Institute, Inc. Systems and methods for multi-camera modeling with neural camera networks
US11494927B2 (en) 2020-09-15 2022-11-08 Toyota Research Institute, Inc. Systems and methods for self-supervised depth estimation
US11508080B2 (en) 2020-09-15 2022-11-22 Toyota Research Institute, Inc. Systems and methods for generic visual odometry using learned features via neural camera models
US11615544B2 (en) 2020-09-15 2023-03-28 Toyota Research Institute, Inc. Systems and methods for end-to-end map building from a video sequence using neural camera models
US11521394B2 (en) * 2020-10-09 2022-12-06 Motional Ad Llc Ground plane estimation using LiDAR semantic network
DE102020129715A1 (de) 2020-11-11 2022-05-12 Connaught Electronics Ltd. Führen eines Kraftfahrzeugs basierend auf einer Freiraumkarte
EP4001962A1 (de) * 2020-11-23 2022-05-25 Aptiv Technologies Limited Vorrichtung, verfahren und programm zur bestimmung vom freien raum
EP4009228A1 (de) * 2020-12-02 2022-06-08 Aptiv Technologies Limited Verfahren zur bestimmung eines semantischen freiraums
CN112268564B (zh) * 2020-12-25 2021-03-02 中国人民解放军国防科技大学 一种无人机降落空间位置和姿态端到端估计方法
CN112668460A (zh) * 2020-12-25 2021-04-16 北京百度网讯科技有限公司 目标检测方法、电子设备、路侧设备和云控平台
CN112862858A (zh) * 2021-01-14 2021-05-28 浙江大学 一种基于场景运动信息的多目标跟踪方法
CN113052009A (zh) * 2021-03-02 2021-06-29 北京经纬恒润科技股份有限公司 一种车辆防撞方法、模型训练方法及装置
CN113189986B (zh) * 2021-04-16 2023-03-14 中国人民解放军国防科技大学 一种自主机器人的二阶段自适应行为规划方法及系统
US11703870B2 (en) * 2021-05-11 2023-07-18 Toyota Research Institute, Inc. Method for computing maneuvers drivable space using piecewise semantic aggregation of trajectories
US20230069413A1 (en) * 2021-09-01 2023-03-02 Wipro Limited System and method for providing assistance to vehicle occupants
US11972614B2 (en) * 2021-11-09 2024-04-30 Zoox, Inc. Machine-learned architecture for efficient object attribute and/or intention classification
US20230159054A1 (en) * 2021-11-24 2023-05-25 Motional Ad Llc Encoding homotopy constraints in spatio-temporal grids
CN114663397B (zh) * 2022-03-22 2023-05-23 小米汽车科技有限公司 可行驶区域的检测方法、装置、设备及存储介质
CN114734482B (zh) * 2022-04-06 2024-01-12 深圳市普渡科技有限公司 道路识别功能的测试方法、计算机设备和存储介质
US20230413711A1 (en) * 2022-06-23 2023-12-28 Deere & Company Modifying Vehicle Behavior based on Boundary Type
TWI832564B (zh) * 2022-11-17 2024-02-11 艾訊股份有限公司 自走車的精度量測方法、運算裝置及自走車
CN116400605B (zh) * 2023-06-08 2023-08-11 成都航空职业技术学院 一种机器人自动控制方法及系统

Family Cites Families (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1007269A (en) 1910-11-14 1911-10-31 Matthew Clarke Compound measuring instrument.
US6963661B1 (en) 1999-09-09 2005-11-08 Kabushiki Kaisha Toshiba Obstacle detection system and method therefor
US7852462B2 (en) 2000-05-08 2010-12-14 Automotive Technologies International, Inc. Vehicular component control methods based on blind spot monitoring
EP1504276B1 (de) 2002-05-03 2012-08-08 Donnelly Corporation Objektdetektionssystem für ein fahrzeug
US7068815B2 (en) 2003-06-13 2006-06-27 Sarnoff Corporation Method and apparatus for ground detection and removal in vision systems
US7409295B2 (en) 2004-08-09 2008-08-05 M/A-Com, Inc. Imminent-collision detection system and process
US8164628B2 (en) 2006-01-04 2012-04-24 Mobileye Technologies Ltd. Estimating distance to an object using a sequence of images recorded by a monocular camera
KR20080051302A (ko) 2006-12-05 2008-06-11 삼성전자주식회사 사용자 단말장치 및 영상표시장치 그리고 그들의 광원 조정방법
US8064643B2 (en) 2006-12-06 2011-11-22 Mobileye Technologies Limited Detecting and recognizing traffic signs
EP3480057B1 (de) 2007-04-30 2022-07-06 Mobileye Vision Technologies Ltd. Erkennung rückseitiger hindernisse
JP4457136B2 (ja) 2007-09-27 2010-04-28 日立オートモティブシステムズ株式会社 走行制御システム
US20090097704A1 (en) 2007-10-10 2009-04-16 Micron Technology, Inc. On-chip camera system for multiple object tracking and identification
JP4462333B2 (ja) 2007-11-13 2010-05-12 株式会社デンソー 走行支援装置
EP2243125B1 (de) 2007-12-13 2020-04-29 Clemson University Research Foundation Echtzeitverkehrsüberwachung mit bildverarbeitung
US8204542B2 (en) 2008-03-21 2012-06-19 Mediatek Inc. Methods for processing apparatus originated communication request and communication apparatuses utilizing the same
EP2297704B1 (de) 2008-04-14 2014-04-09 Google, Inc. Panoramaeinstellung unter verwendung virtueller oberflächen
US8570333B2 (en) 2008-12-11 2013-10-29 Nvidia Corporation Method and system for enabling managed code-based application program to access graphics processing unit
DE102009028743B4 (de) 2009-08-20 2011-06-09 Robert Bosch Gmbh Verfahren und Steuergerät zur Entzerrung eines Kamerabildes
US8861842B2 (en) * 2010-02-05 2014-10-14 Sri International Method and apparatus for real-time pedestrian detection for urban driving
KR101717787B1 (ko) 2010-04-29 2017-03-17 엘지전자 주식회사 디스플레이장치 및 그의 음성신호 출력 방법
KR101225626B1 (ko) 2010-07-19 2013-01-24 포항공과대학교 산학협력단 차선 인식 시스템 및 방법
US8587583B2 (en) 2011-01-31 2013-11-19 Microsoft Corporation Three-dimensional environment reconstruction
US9098751B2 (en) 2011-07-27 2015-08-04 Gentex Corporation System and method for periodic lane marker identification and tracking
US10027952B2 (en) 2011-08-04 2018-07-17 Trx Systems, Inc. Mapping and tracking system with features in three-dimensional space
KR101861742B1 (ko) 2011-08-30 2018-05-30 삼성전자주식회사 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
US8970701B2 (en) 2011-10-21 2015-03-03 Mesa Engineering, Inc. System and method for predicting vehicle location
US9471988B2 (en) 2011-11-02 2016-10-18 Google Inc. Depth-map generation for an input image using an example approximate depth-map associated with an example similar image
GB2506338A (en) 2012-07-30 2014-04-02 Sony Comp Entertainment Europe A method of localisation and mapping
US9225942B2 (en) 2012-10-11 2015-12-29 GM Global Technology Operations LLC Imaging surface modeling for camera modeling and virtual view synthesis
US9489635B1 (en) 2012-11-01 2016-11-08 Google Inc. Methods and systems for vehicle perception feedback to classify data representative of types of objects and to request feedback regarding such classifications
JP6013884B2 (ja) 2012-11-08 2016-10-25 日立オートモティブシステムズ株式会社 物体検出装置及び物体検出方法
DE102013208521B4 (de) 2013-05-08 2022-10-13 Bayerische Motoren Werke Aktiengesellschaft Kollektives Erlernen eines hochgenauen Straßenmodells
CN104424466B (zh) 2013-08-21 2018-05-15 佳能株式会社 对象检测方法、对象检测设备及图像拾取设备
US9098323B2 (en) 2013-09-05 2015-08-04 Nvidia Corporation Simultaneous utilization of a first graphics processing unit (GPU) and a second GPU of a computing platform through a virtual machine (VM) in a shared mode and a dedicated mode respectively
US9373057B1 (en) 2013-11-01 2016-06-21 Google Inc. Training a neural network to detect objects in images
US9742869B2 (en) 2013-12-09 2017-08-22 Nvidia Corporation Approach to adaptive allocation of shared resources in computer systems
EP2950175B1 (de) 2014-05-27 2021-03-31 dSPACE digital signal processing and control engineering GmbH Verfahren und Vorrichtung zum Testen eines Steuergerätes
US9665802B2 (en) * 2014-11-13 2017-05-30 Nec Corporation Object-centric fine-grained image classification
US9721471B2 (en) 2014-12-16 2017-08-01 Here Global B.V. Learning lanes from radar data
US10262213B2 (en) 2014-12-16 2019-04-16 Here Global B.V. Learning lanes from vehicle probes
CA2976344A1 (en) 2015-02-10 2016-08-18 Mobileye Vision Technologies Ltd. Sparse map for autonomous vehicle navigation
US9811756B2 (en) 2015-02-23 2017-11-07 Mitsubishi Electric Research Laboratories, Inc. Method for labeling images of street scenes
US11630800B2 (en) 2015-05-01 2023-04-18 Nvidia Corporation Programmable vision accelerator
US9902401B2 (en) 2015-05-10 2018-02-27 Mobileye Vision Technologies Ltd. Road profile along a predicted path
US10366534B2 (en) 2015-06-10 2019-07-30 Microsoft Technology Licensing, Llc Selective surface mesh regeneration for 3-dimensional renderings
US9710714B2 (en) 2015-08-03 2017-07-18 Nokia Technologies Oy Fusion of RGB images and LiDAR data for lane classification
US10282591B2 (en) 2015-08-24 2019-05-07 Qualcomm Incorporated Systems and methods for depth map sampling
US9767565B2 (en) 2015-08-26 2017-09-19 Digitalglobe, Inc. Synthesizing training data for broad area geospatial object detection
US10002471B2 (en) 2015-09-30 2018-06-19 Ants Technology (Hk) Limited Systems and methods for autonomous vehicle navigation
US10176634B2 (en) * 2015-10-16 2019-01-08 Ford Global Technologies, Llc Lane boundary detection data generation in virtual environment
GB2543749A (en) 2015-10-21 2017-05-03 Nokia Technologies Oy 3D scene rendering
US9741125B2 (en) 2015-10-28 2017-08-22 Intel Corporation Method and system of background-foreground segmentation for image processing
US9990766B2 (en) 2015-10-29 2018-06-05 Intelligent Fusion Technology, Inc Method and system for predicting collision probability of space objects via graphics processing unit
DE102015221920A1 (de) 2015-11-09 2017-05-11 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Computerprogrammprodukt, Vorrichtung, und Fahrzeug umfassend die Vorrichtung zum Steuern einer Trajektorienplanung eines Egofahrzeugs
EP3171297A1 (de) 2015-11-18 2017-05-24 CentraleSupélec Bildsegmentierung mit gemeinsamer randerkennung und objekterkennung mittels tiefen lernens
DE102015225472A1 (de) 2015-12-16 2017-06-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erstellen einer Karte
DE102015226762B4 (de) 2015-12-28 2024-04-25 Robert Bosch Gmbh Verfahren zur Korrektur mindestens eines Kollisionsparameters und korrespondierendes integriertes Sicherheitssystem für ein Fahrzeug
US10134278B1 (en) 2016-01-22 2018-11-20 State Farm Mutual Automobile Insurance Company Autonomous vehicle application
US9996771B2 (en) 2016-02-15 2018-06-12 Nvidia Corporation System and method for procedurally synthesizing datasets of objects of interest for training machine-learning models
US9802599B2 (en) 2016-03-08 2017-10-31 Ford Global Technologies, Llc Vehicle lane placement
JP6575818B2 (ja) 2016-03-25 2019-09-18 パナソニックIpマネジメント株式会社 運転支援方法およびそれを利用した運転支援装置、自動運転制御装置、車両、運転支援システム、プログラム
WO2017177128A1 (en) 2016-04-08 2017-10-12 The Trustees Of Columbia University In The City Of New York Systems and methods for deep reinforcement learning using a brain-artificial intelligence interface
US9896096B2 (en) 2016-04-11 2018-02-20 David E. Newman Systems and methods for hazard mitigation
US10032067B2 (en) 2016-05-28 2018-07-24 Samsung Electronics Co., Ltd. System and method for a unified architecture multi-task deep learning machine for object recognition
US10176389B2 (en) 2016-06-09 2019-01-08 International Business Machines Corporation Methods and systems for moving traffic obstacle detection
CN106114507B (zh) 2016-06-21 2018-04-03 百度在线网络技术(北京)有限公司 用于智能车辆的局部轨迹规划方法和装置
US11772647B2 (en) 2016-06-24 2023-10-03 Jaguar Land Rover Limited Control system for a vehicle
EP3611472B1 (de) 2016-06-27 2021-11-24 Mobileye Vision Technologies Ltd. Steuerung eines hostfahrzeugs basierend auf erfassten geparkten fahrzeugeigenschaften
EP3475778A4 (de) 2016-06-28 2019-12-18 Cognata Ltd. Realistische 3d-erstellung einer virtuellen welt und simulation zum trainieren automatisierter fahrsysteme
US10078335B2 (en) 2016-06-28 2018-09-18 Toyota Motor Engineering & Manufacturing North America, Inc. Ray tracing for hidden obstacle detection
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
JP7001596B2 (ja) 2016-07-26 2022-02-03 株式会社カネカ 3hh単位含有共重合phaを生産する形質転換体、及び当該phaの製造方法
GB2553782B (en) 2016-09-12 2021-10-20 Niantic Inc Predicting depth from image data using a statistical model
US10127670B2 (en) 2016-09-27 2018-11-13 Xactware Solutions, Inc. Computer vision systems and methods for detecting and modeling features of structures in images
US10289469B2 (en) 2016-10-28 2019-05-14 Nvidia Corporation Reliability enhancement utilizing speculative execution systems and methods
US20180136332A1 (en) 2016-11-15 2018-05-17 Wheego Electric Cars, Inc. Method and system to annotate objects and determine distances to objects in an image
EP3549102B1 (de) 2016-12-02 2021-05-26 Google LLC Bestimmung der struktur und der bewegung in bildern unter verwendung neuronaler netze
US20180158244A1 (en) 2016-12-02 2018-06-07 Ayotle Virtual sensor configuration
KR102618443B1 (ko) 2016-12-09 2023-12-27 톰톰 글로벌 콘텐트 비.브이. 비디오 기반 위치결정 및 매핑을 위한 방법 및 시스템
KR20180068511A (ko) 2016-12-14 2018-06-22 삼성전자주식회사 영상에 포함된 도로와 관련된 정보를 결정하는 뉴럴 네트워크를 학습시키는 학습 데이터를 생성하는 장치 및 방법
CN111542860A (zh) 2016-12-30 2020-08-14 迪普迈普有限公司 用于自主车辆的高清地图的标志和车道创建
US10380886B2 (en) 2017-05-17 2019-08-13 Cavh Llc Connected automated vehicle highway systems and methods
US10691847B2 (en) 2017-01-13 2020-06-23 Sap Se Real-time damage determination of an asset
US11288595B2 (en) * 2017-02-14 2022-03-29 Groq, Inc. Minimizing memory and processor consumption in creating machine learning models
WO2018170074A1 (en) 2017-03-14 2018-09-20 Starsky Robotics, Inc. Vehicle sensor system and method of use
US11899669B2 (en) 2017-03-20 2024-02-13 Carnegie Mellon University Searching of data structures in pre-processing data for a machine learning classifier
DE102017205093A1 (de) 2017-03-27 2018-09-27 Conti Temic Microelectronic Gmbh Verfahren und System zur Vorhersage von Sensorsignalen eines Fahrzeugs
US10659773B2 (en) 2017-04-13 2020-05-19 Facebook, Inc. Panoramic camera systems
GB201706129D0 (en) 2017-04-18 2017-05-31 Blue Vision Labs Uk Ltd Distributed device mapping
CN107169421B (zh) * 2017-04-20 2020-04-28 华南理工大学 一种基于深度卷积神经网络的汽车驾驶场景目标检测方法
US10460180B2 (en) * 2017-04-20 2019-10-29 GM Global Technology Operations LLC Systems and methods for visual classification with region proposals
US10328578B2 (en) 2017-04-21 2019-06-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
US10108867B1 (en) * 2017-04-25 2018-10-23 Uber Technologies, Inc. Image-based pedestrian detection
US20180349746A1 (en) 2017-05-31 2018-12-06 Uber Technologies, Inc. Top-View Lidar-Based Object Detection
US10310087B2 (en) 2017-05-31 2019-06-04 Uber Technologies, Inc. Range-view LIDAR-based object detection
US11214273B2 (en) 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
US10007269B1 (en) 2017-06-23 2018-06-26 Uber Technologies, Inc. Collision-avoidance system for autonomous-capable vehicle
US20180373980A1 (en) * 2017-06-27 2018-12-27 drive.ai Inc. Method for training and refining an artificial intelligence
KR102499398B1 (ko) 2017-08-09 2023-02-13 삼성전자 주식회사 차선 검출 방법 및 장치
WO2019028725A1 (en) * 2017-08-10 2019-02-14 Intel Corporation CONVOLUTIVE NEURAL NETWORK STRUCTURE USING INVERTED CONNECTIONS AND OBJECTIVITY ANTERIORITIES TO DETECT AN OBJECT
US10339669B2 (en) 2017-08-22 2019-07-02 Here Global B.V. Method, apparatus, and system for a vertex-based evaluation of polygon similarity
US11487988B2 (en) 2017-08-31 2022-11-01 Ford Global Technologies, Llc Augmenting real sensor recordings with simulated sensor data
US10282995B2 (en) 2017-09-05 2019-05-07 Starship Technologies Oü Mobile robot having collision avoidance system for crossing a road from a pedestrian pathway
US10546387B2 (en) 2017-09-08 2020-01-28 Qualcomm Incorporated Pose determination with semantic segmentation
KR102026697B1 (ko) 2017-09-21 2019-09-30 엘지전자 주식회사 주행 시스템 및 차량
CN107609602A (zh) * 2017-09-28 2018-01-19 吉林大学 一种基于卷积神经网络的驾驶场景分类方法
US10612932B2 (en) 2017-09-29 2020-04-07 Wipro Limited Method and system for correcting a pre-generated navigation path for an autonomous vehicle
US10579897B2 (en) * 2017-10-02 2020-03-03 Xnor.ai Inc. Image based object detection
US10997491B2 (en) 2017-10-04 2021-05-04 Huawei Technologies Co., Ltd. Method of prediction of a state of an object in the environment using an action model of a neural network
US20190120640A1 (en) 2017-10-19 2019-04-25 rideOS Autonomous vehicle routing
US10599546B1 (en) 2017-10-25 2020-03-24 Uatc, Llc Autonomous vehicle testing systems and methods
US20190129831A1 (en) 2017-10-27 2019-05-02 Uber Technologies, Inc. Autonomous Vehicle Simulation Testing Systems and Methods
US10935978B2 (en) 2017-10-30 2021-03-02 Nio Usa, Inc. Vehicle self-localization using particle filters and visual odometry
US10580158B1 (en) 2017-11-03 2020-03-03 Zoox, Inc. Dense depth estimation of image data
JP7346401B2 (ja) 2017-11-10 2023-09-19 エヌビディア コーポレーション 安全で信頼できる自動運転車両のためのシステム及び方法
US11061402B2 (en) 2017-11-15 2021-07-13 Uatc, Llc Sparse convolutional neural networks
US11017550B2 (en) 2017-11-15 2021-05-25 Uatc, Llc End-to-end tracking of objects
US11062461B2 (en) 2017-11-16 2021-07-13 Zoox, Inc. Pose determination from contact points
US10762396B2 (en) 2017-12-05 2020-09-01 Utac, Llc Multiple stage image based object detection and recognition
EP3607744A4 (de) 2017-12-08 2020-04-29 Baidu.com Times Technology (Beijing) Co., Ltd. Tiefenbestimmung bei einer stereokamera mit hardwarebeschleuniger
US20190179979A1 (en) 2017-12-13 2019-06-13 Uber Technologies, Inc. Simulated Sensor Testing
US10629069B2 (en) 2017-12-14 2020-04-21 Here Global B.V. Method and apparatus for providing a localized link-centric metric for directional traffic propagation
EP3729376A4 (de) 2017-12-22 2021-01-20 Magic Leap, Inc. Verfahren zur okklusionsdarstellung unter verwendung von raycasting und live-tiefe
US11042163B2 (en) 2018-01-07 2021-06-22 Nvidia Corporation Guiding vehicles through vehicle maneuvers using machine learning models
US11150663B2 (en) 2018-01-26 2021-10-19 Nvidia Corporation Detection of hazardous driving using machine learning
CN110352153A (zh) 2018-02-02 2019-10-18 辉达公司 自主车辆中用于障碍物躲避的安全程序分析
WO2019157193A1 (en) 2018-02-09 2019-08-15 Nvidia Corporation Controlling autonomous vehicles using safe arrival times
US20190251442A1 (en) 2018-02-14 2019-08-15 Nvidia Corporation Pruning convolutional neural networks
US10816978B1 (en) 2018-02-22 2020-10-27 Msc.Software Corporation Automated vehicle artificial intelligence training based on simulations
JP6761828B2 (ja) 2018-03-05 2020-09-30 日本電信電話株式会社 柱状物体状態検出装置、柱状物体状態検出方法、柱状物体状態検出処理プログラム
US10157331B1 (en) 2018-03-08 2018-12-18 Capital One Services, Llc Systems and methods for image preprocessing to improve accuracy of object recognition
WO2019178548A1 (en) 2018-03-15 2019-09-19 Nvidia Corporation Determining drivable free-space for autonomous vehicles
DE112018007287T5 (de) 2018-03-15 2020-12-10 Harman International Industries, Incorporated Fahrzeugsystem und -verfahren zum erfassen von objekten und einer objektentfernung
WO2019182906A1 (en) 2018-03-17 2019-09-26 Nvidia Corporation Shadow denoising in ray-tracing applications
WO2019182974A2 (en) 2018-03-21 2019-09-26 Nvidia Corporation Stereo depth estimation using deep neural networks
WO2019191313A1 (en) 2018-03-27 2019-10-03 Nvidia Corporation Remote operation of vehicles using immersive virtual reality environments
US10586456B2 (en) 2018-04-27 2020-03-10 TuSimple System and method for determining car to lane distance
EP4339905A2 (de) 2018-07-17 2024-03-20 NVIDIA Corporation Regressionsbasierte leitungserkennung für autonome fahrmaschinen
DE102018212916A1 (de) 2018-08-02 2020-02-06 Bayerische Motoren Werke Aktiengesellschaft Bestimmung eines Verlaufs einer Fahrspur
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US10942030B2 (en) 2018-08-17 2021-03-09 Lyft, Inc. Road segment similarity determination
US10761535B2 (en) 2018-08-21 2020-09-01 GM Global Technology Operations LLC Intelligent vehicle navigation systems, methods, and control logic for multi-lane separation and trajectory extraction of roadway segments
US10803314B2 (en) 2018-10-10 2020-10-13 Midea Group Co., Ltd. Method and system for providing remote robotic control
US10816994B2 (en) 2018-10-10 2020-10-27 Midea Group Co., Ltd. Method and system for providing remote robotic control
US20190061771A1 (en) 2018-10-29 2019-02-28 GM Global Technology Operations LLC Systems and methods for predicting sensor information
US11494937B2 (en) 2018-11-16 2022-11-08 Uatc, Llc Multi-task multi-sensor fusion for three-dimensional object detection
US11030476B2 (en) 2018-11-29 2021-06-08 Element Ai Inc. System and method for detecting and tracking objects
US11635767B2 (en) 2019-02-13 2023-04-25 Semyon Nisenzon System and method of using multi-resolution camera clusters input data for controlling autonomous vehicles
CN113811886B (zh) 2019-03-11 2024-03-19 辉达公司 自主机器应用中的路口检测和分类
US11579629B2 (en) 2019-03-15 2023-02-14 Nvidia Corporation Temporal information prediction in autonomous machine applications
US10832439B1 (en) 2019-04-19 2020-11-10 Zoox, Inc. Locating entities in a mapped environment
CN113785302A (zh) 2019-04-26 2021-12-10 辉达公司 自主机器应用中的路口姿态检测
DE112020003043T5 (de) 2019-06-25 2022-08-18 Nvidia Corporation Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
US10625748B1 (en) 2019-06-28 2020-04-21 Lyft, Inc. Approaches for encoding environmental information
MX2022000354A (es) 2019-07-11 2022-02-03 Samsung Electronics Co Ltd Metodo y aparato de decodificacion de video, y metodo y aparato de codificacion de video.
US10997435B2 (en) 2019-08-08 2021-05-04 Nvidia Corporation Leveraging obstacle and lane detections to determine lane assignments for objects in an environment
US11788861B2 (en) 2019-08-31 2023-10-17 Nvidia Corporation Map creation and localization for autonomous driving applications
US11410315B2 (en) 2019-11-16 2022-08-09 Uatc, Llc High quality instance segmentation
US11966673B2 (en) 2020-03-13 2024-04-23 Nvidia Corporation Sensor simulation and learning sensor models with generative machine learning methods

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019206990A1 (de) * 2019-05-14 2020-11-19 Zf Friedrichshafen Ag Generieren einer Umgebungskarte eines Fahrzeugs
DE102019206990B4 (de) * 2019-05-14 2020-12-10 Zf Friedrichshafen Ag Generieren einer Umgebungskarte eines Fahrzeugs
DE102020201369A1 (de) 2020-02-05 2021-08-05 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zur Bahnplanung für einen autonomen Agenten
DE102020201939A1 (de) 2020-02-17 2021-08-19 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zur Bewertung eines Bildklassifikators
DE102020117812A1 (de) 2020-07-07 2022-01-13 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bereitstellen einer Einrichtung zur Vorhersage von Fehlern beim Verarbeiten von Bilddaten, Einrichtung zum Vorhersagen von Segmentierungsfehlern und Kraftfahrzeug
DE102020128952A1 (de) 2020-11-03 2022-05-05 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Assistenzeinrichtung zur zweistufigen bildbasierten Szenenerkennung und Kraftfahrzeug
DE102021101118A1 (de) 2021-01-20 2022-07-21 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Fehlervorhersage einer semantischen Segmentierung von Bilddaten, Assistenzeinrichtung und Kraftfahrzeug
DE102021110069A1 (de) 2021-04-21 2022-10-27 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Assistenzeinrichtung und Kraftfahrzeug zum semantischen Segmentieren eines digitalen Bildes und Verfahren zum Bereitstellen eines Korrekturmodells für die semantische Segmentierung
DE102021211465A1 (de) 2021-10-12 2023-04-13 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Generieren einer Kartendarstellung für Fahrzeuge mit integrierter Freiflächeninformation
LU500855B1 (de) * 2021-11-15 2023-05-15 Phoenix Contact E Mobility Gmbh Ladesteckverbinder, Verfahren zur Bestimmung der räumlichen Lage eines Ladesteckverbinders, und Ladestation mit einem Ladesteckverbinder
WO2023084080A1 (de) * 2021-11-15 2023-05-19 Phoenix Contact E-Mobility Gmbh Ladesteckverbinder, verfahren zur bestimmung der räumlichen lage eines ladesteckverbinders, und ladestation mit einem ladesteckverbinder

Also Published As

Publication number Publication date
CN110494863B (zh) 2024-02-09
US11941873B2 (en) 2024-03-26
US20230074368A1 (en) 2023-03-09
US11537139B2 (en) 2022-12-27
CN110494863A (zh) 2019-11-22
WO2019178548A1 (en) 2019-09-19
US20190286153A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
DE112019000048T5 (de) Bestimmung eines befahrbaren freiraums für autonome fahrzeuge
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112019006484T5 (de) Detektion von abständen zu hindernissen in autonomen maschinenanwendungen
DE112021000422T5 (de) Vorhersage künftiger Trajektorien in Umgebungen mit mehreren Aktoren für autonome Maschinenanwendungen
DE112019000070T5 (de) Führen von fahrzeugen durch fahrzeugmanöver unter verwendung von modellen für maschinelles lernen
DE112019000279T5 (de) Steuern autonomer fahrzeuge anhand sicherer ankunftszeiten
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
DE112019000049T5 (de) Für autonomes fahren geeignete objekterfassung und erfassungssicherheit
DE102021126254A1 (de) Überwachen der Aufmerksamkeit und der kognitiven Belastung der Insassen für autonome und halbautonome Fahranwendungen
DE112020006404T5 (de) Planung und steuerung von spurwechseln in autonomen maschinenapplikationen
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE102019113114A1 (de) Verhaltensgesteuerte wegplanung in autonomen maschinenanwendungen
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE112021001994T5 (de) Modellbasiertes bestärkendes lernen zur verhaltensvorhersage in autonomen systemen und anwendungen
DE102020100685A1 (de) Vorhersage zeitlicher informationen in autonomenmaschinenanwendungen
DE102022112748A1 (de) Verwendung von ankunftszeitpunkten und sicherheitsprozedurenin bewegungsplanungstrajektorien für autonome fahrzeuge
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009000000

Ipc: G06V0010000000