DE112021000104T5 - Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen - Google Patents

Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen Download PDF

Info

Publication number
DE112021000104T5
DE112021000104T5 DE112021000104.3T DE112021000104T DE112021000104T5 DE 112021000104 T5 DE112021000104 T5 DE 112021000104T5 DE 112021000104 T DE112021000104 T DE 112021000104T DE 112021000104 T5 DE112021000104 T5 DE 112021000104T5
Authority
DE
Germany
Prior art keywords
view
image data
image
field
vehicle
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
DE112021000104.3T
Other languages
English (en)
Inventor
Karsten Patzwaldt
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 DE112021000104T5 publication Critical patent/DE112021000104T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/265Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network constructional aspects of navigation devices, e.g. housings, mountings, displays
    • 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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/147Details of sensors, e.g. sensor lenses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2628Alteration of picture size, shape, position or orientation, e.g. zooming, rotation, rolling, perspective, translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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
    • 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
    • G06T2207/30261Obstacle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/247Aligning, centring, orientation detection or correction of the image by affine transforms, e.g. correction due to perspective effects; Quadrilaterals, e.g. trapezoids

Landscapes

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

Abstract

In Beispielen kann die Live-Wahrnehmung von Weitwinkelsensoren genutzt werden, um Merkmale in der Umgebung eines Fahrzeugs zu erkennen. Die von den Sensoren erzeugten Sensordaten können angepasst werden, um ein virtuelles Sichtfeld darzustellen, das sich von einem tatsächlichen Sichtfeld des Sensors unterscheidet, und die Sensordaten - mit oder ohne virtueller Anpassung - können auf einen stereografischen Projektionsalgorithmus angewendet werden, um ein projiziertes Bild zu erzeugen. Das projizierte Bild kann dann auf ein Machine-Learning-Modell - wie z. B. ein tiefes neuronales Netzwerk (DNN) - angewendet werden, um darin dargestellte Merkmale oder Objekte zu erkennen und/oder zu klassifizieren. Das Machine-Learning-Modell kann mit Trainingssensordaten trainiert werden, die von einem Sensor erzeugt wurden, dessen Sichtfeld kleiner ist als das des Weitwinkelsensors, sodass der virtuelle Anpassungs- und/oder Projektionsalgorithmus die Sensordaten so aktualisieren kann, dass sie für eine genaue Verarbeitung durch das trainierte Machine-Learning-Modell geeignet sind.

Description

  • HINTERGRUND DER ERFINDUNG
  • Autonome Fahrsysteme und Fahrerassistenzsysteme (advanced driver assistance system - ADAS) können verschiedene Sensoren nutzen, um verschiedene Aufgaben auszuführen - wie etwa Spurhaltung, Spurwechsel, Spurzuweisung, Kamerakalibrierung, Abbiegen, Anhalten, Wegplanung und Lokalisierung. Damit beispielsweise autonome und ADAS-Systeme unabhängig und effizient arbeiten, kann ein Verständnis der Umgebung des Fahrzeugs in Echtzeit oder nahezu in Echtzeit generiert werden. Dieses Verständnis kann Informationen über die Position von Objekten, Hindernissen, Fahrbahnmarkierungen, Schildern und/oder Ampeln in der Umgebung beinhalten, die den Kontext und visuelle Hinweise für verschiedene Abgrenzungen wie Fahrspuren, Straßenbegrenzungen, Kreuzungen und/oder dergleichen bereitstellen. Die Informationen über die Umgebung können von einem Fahrzeug genutzt werden, um Entscheidungen zu treffen, z. B. über den zu fahrenden Weg im Hinblick auf die verschiedenen Objekte (z. B. Fahrzeuge, Fußgänger, Radfahrer usw.) in der Umgebung, wann und ob die Spur gewechselt werden soll, wie schnell gefahren werden soll, wo an einer Kreuzung angehalten werden soll und/oder dergleichen.
  • Zum Beispiel können sich Informationen über Positionen und Eigenschaften von Objekten und/oder Fahrspuren in der Umgebung eines autonomen oder teilautonomen Fahrzeugs als wertvoll erweisen, wenn es darum geht, Entscheidungen zur Wegplanung, Hindernisvermeidung und/oder Steuerung auszuführen. Machine-Learning-Modelle und/oder Computervision-Algorithmen werden häufig trainiert oder programmiert, um Informationen über die Umgebung eines Fahrzeugs zu generieren. Zum Beispiel werden diese Machine-Learning-Modelle (z. B. tiefe neuronale Netzwerke (Deep Neural Networks - DNNs)) und/oder Computervision-Algorithmen trainiert, um ein Verständnis der Umgebung zu erzeugen, die durch Sensordaten (z. B. Bilder) dargestellt wird, die von Sensoren mit unterschiedlichen Sichtfeldern erzeugt werden. Zum Beispiel können viele DNNs mit Sensoren (z. B. Bildsensoren) mit Sichtfeldern zwischen 60 und 120 Grad trainiert werden. Zumindest einige Sensoren (z. B. Kameras, LIDAR-Sensoren, RADAR-Sensoren usw.) eines Fahrzeugs können jedoch ein Sichtfeld von mehr als 120 Grad haben - wie etwa Parkkameras, die an der Rückseite oder Vorderseite eines Fahrzeugs angebracht sind, oder Seitenkameras, die an den Seitenspiegeln eines Fahrzeugs angebracht sind. Zum Beispiel werden bei Parkkameras häufig Fischaugenkameras mit Sichtfeldern von 190 Grad oder mehr eingesetzt. Folglich sind die von diesen Bildsensoren mit großen Sichtfeldern erzeugten Bilddaten möglicherweise nicht für die Verarbeitung durch DNNs geeignet - z. B. aufgrund von Verzerrungen, Artefakten und/oder anderen Unvollkommenheiten.
  • In herkömmlichen Systemen können Objekte in der Umgebung eines Fahrzeugs mit Hilfe eines DNN erkannt werden, das darauf trainiert ist, Merkmale zu erkennen, die durch Trainingsbilddaten repräsentiert werden, die von Bildsensoren mit Sichtfeldern von weniger als 120 Grad erzeugt wurden. Zum Beispiel sind Lochkameras - die häufig für nach vorne gerichtete Kameras (umgangssprachlich als „Dashkameras“ oder „Dash Cams“ bezeichnet) und nach hinten gerichtete Kameras verwendet werden - Beispiele für Bildsensoren mit einem typischerweise engeren Sichtfeld. Die von solchen Bildsensoren aufgenommenen Bilder weisen nur minimale Verzerrungen auf, da die Bilder weitgehend geradlinig sind, und die von solchen Kameras erzeugten Bilder können zum Trainieren des DNN verwendet werden, um Merkmale einer Umgebung zu erkennen. Bilddaten, die von Parkkameras (z. B. Fischaugenkameras) mit einem größeren Sichtfeld (z. B. mehr als 120 Grad) aufgenommen wurden, können jedoch Verzerrungen in Bereichen beinhalten, in denen nur begrenzte Informationen verfügbar sind (z. B. an den Rändern der Bilder), und somit zu ungenauen Berechnungen durch ein DNN führen. Somit können herkömmliche Ansätze das DNN anhand von Bilddaten, die von Sensoren mit größeren Sichtfeldern erfasst wurden, neu trainieren, was nicht nur erhebliche Rechenkosten und manuellen Aufwand erfordert, sondern auch die Skalierbarkeit und Anpassungsfähigkeit des DNN für Sensordaten mit kleineren Sichtfeldern (z. B. weniger als 120 Grad) einschränkt. Daher müssen bei diesen konventionellen Systemen verschiedene Instanzen von DNNs trainiert werden, wobei jede Instanz des DNN einem bestimmten Sichtfeld entspricht - z. B. eine erste Instanz für ein Sichtfeld von 90-120 Grad und eine zweite Instanz für ein Sichtfeld von 120-180 Grad. Selbst wenn das DNN speziell für breitere Sichtfelder trainiert wurde, kann die Kennzeichnung von Merkmalen für die Ground Truth aufgrund der unterschiedlichen Maßstäbe und Verzerrungswinkel in Bilddaten von Weitwinkelsensoren schwierig sein, da die Merkmale (z. B. Objekte, Linien) im Bild schief ausgerichtet sind. Zum Beispiel können Merkmale wie Linien und Formen im Bildraum nicht mit den Positionen derselben im Welt-Raum übereinstimmen, was eine weitere Schicht der Komplexität für das DNN und/oder die Nachbearbeitung bedeutet, um die Ausgänge des DNN genau mit den realen Positionen der Merkmale zu koordinieren. Ohne eine genaue Zuordnung der Ausgänge zu den Positionen im Welt-Raum ist das DNN möglicherweise nicht so zuverlässig, um Operationen in einem so sicherheitskritischen Technologiebereich wie dem autonomen Fahren auszuführen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf das stereografische Projizieren von Bildern, die mit Fischaugenobjektiven zur Merkmalserkennung unter Verwendung neuronaler Netzwerke aufgenommen wurden. Es werden Systeme und Verfahren offenbart, die bestehende neuronale Netzwerke nutzen, die auf Ausgaben trainiert wurden, die mit Sensoren mit engerem Sichtfeld (z. B. Sensoren mit Sichtfeldern von weniger als 120 Grad) erfasst wurden, um Merkmale in Ausgaben von Sensoren mit größerem Sichtfeld (z. B. Sensoren mit Sichtfeldern von mehr als 120 Grad) in Echtzeit oder nahezu in Echtzeit zu erkennen.
  • Im Gegensatz zu herkömmlichen Systemen, wie den vorstehend beschriebenen, können die Systeme und Verfahren der vorliegenden Offenbarung die Live-Wahrnehmung von Sensoren mit breitem Sichtfeld (z. B. mit einem Sichtfeld von mehr als 120 Grad) nutzen, um ein oder mehrere Merkmale in der Umgebung eines Fahrzeugs zu erkennen. Zum Beispiel kann ein Bild von einem Weitwinkelsensor auf einen stereografischen Projektionsalgorithmus angewendet werden, um das Bild auf eine zweidimensionale (2D) Ebene zu projizieren. Das projizierte Bild kann dann zur Erkennung von Merkmalen in der Fahrzeugumgebung mit Hilfe eines neuronalen Netzwerks verwendet werden, das für die Erkennung von Merkmalen in Bildern, die von Sensoren mit engerem Sichtfeld aufgenommen wurden, trainiert wurde. In einigen Beispielen kann das Sichtfeld des Sensors mit weitem Sichtfeld virtuell angepasst werden, um ein aktualisiertes Bild mit dem virtuell angepassten Sichtfeld zu erzeugen, bevor das Bild dem stereografischen Projektionsalgorithmus zugeführt wird. Das Sichtfeld des Weitwinkelsensors kann vertikal so eingestellt werden, dass der virtuelle Mittelpunkt des Sensors (z. B. ein Kameramittelpunkt) im Wesentlichen an einem Horizont ausgerichtet ist. In einigen Beispielen können die erkannten Merkmale in Positionen im Bildraum und entsprechende Positionen im Welt-Raum umgewandelt werden. Zum Beispiel können die Ausgaben direkt oder indirekt (z. B. durch Decodierung) verwendet werden, um die Positionen jedes Merkmals, die Klassifizierung jedes Merkmals und/oder ähnliches zu bestimmen.
  • Infolge der Verwendung bestehender neuronaler Netzwerke - z. B. DNNs, die unter Verwendung von Bildern mit geringerem Sichtfeld trainiert wurden - zur Erkennung von Merkmalen in Ausgaben von Bildern mit hohem Sichtfeld entfällt der zusätzliche Rechen- und Zeitaufwand für das Training eines neuen neuronalen Netzwerks oder das erneute Training des vortrainierten neuronalen Netzwerks für Bildsensoren mit großem Sichtfeld. Somit kann der Prozess der Erkennung von Merkmalen in Bildern, die mit Sensoren mit großem Sichtfeld aufgenommen wurden, vergleichsweise weniger zeitaufwändig, weniger rechenintensiv und besser skalierbar sein, da das System lernen kann, Merkmale in Echtzeit oder nahezu in Echtzeit zu erkennen, ohne dass vorherige Erfahrung, Training oder Kenntnisse der Umgebung und des Sichtfelds der Sensoren erforderlich sind.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur stereografischen Projizierung von mit Fischaugenobjektiven aufgenommenen Bildern zur Merkmalserkennung werden im Folgenden unter Bezugnahme auf die beigefügten Zeichnungsfiguren im Detail beschrieben, wobei:
    • 1A ein beispielhaftes Datenflussdiagramm ist, das einen Beispielprozess zur Erkennung von Merkmalen der Umgebung eines Fahrzeugs unter Verwendung von Ausgaben von einem oder mehreren Sensoren des Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht;
    • 1B eine Veranschaulichung eines Beispiels für das Projizieren eines Originalbildes auf eine 2D-Projektionsebene unter Verwendung einer virtuellen Kugel, um ein projiziertes Bild zu erzeugen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
    • 2 eine Veranschaulichung von beispielhaften Sichtfeldern von Weitwinkelsensoren an einem Fahrzeug gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
    • 3 eine Veranschaulichung von beispielhaften Verzerrungsdarstellungen, die drei Sensoren mit unterschiedlichen Sichtfeldern entsprechen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
    • 4 eine Veranschaulichung eines beispielhaften Bildes, das mit einem virtuell eingestellten Sichtfeld aufgenommen wurde, gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
    • 5 eine Veranschaulichung von beispielhaften Objekterkennungen in einem projizierten Bild, gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
    • 6 ein Flussdiagramm ist, das ein beispielhaftes Verfahren zur Erkennung von Merkmalen in Bildern veranschaulicht, die von Sensoren mit breitem Sichtfeld erfasst wurden, wobei ein vorhandenes neuronales Netzwerk verwendet wird, das auf Bildern trainiert wurde, die mit Sensoren mit engerem Sichtfeld erfasst wurden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 7 ein Flussdiagramm ist, das ein beispielhaftes Verfahren zur Erkennung von Merkmalen in virtuell angepassten projizierten Bildern veranschaulicht, die von Sensoren mit großem Sichtfeld erfasst werden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 8A eine Darstellung eines beispielhaften autonomen Fahrzeugs ist, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung;
    • 8B ein Beispiel für Kamerapositionen und Sichtfelder des beispielhaften autonomen Fahrzeugs in 8A, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung ist;
    • 8C ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug in 8A, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung ist;
    • 8D ein Systemdiagramm für die Kommunikation zwischen cloudbasierten Servern und dem beispielhaften autonomen Fahrzeug aus 8A, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung ist; und
    • 9 ein Blockdiagramm einer beispielhaften Rechnervorrichtung ist, das zur Verwendung bei der Umsetzung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es werden Systeme und Verfahren offenbart, die sich auf das stereografische Projizieren von mit Fischaugenobjektiven aufgenommenen Bildern zur Merkmalserkennung mit Hilfe neuronaler Netzwerke beziehen. Obwohl die vorliegende Offenbarung in Bezug auf ein Beispiel für ein autonomes Fahrzeug 800 (alternativ auch als „Fahrzeug 800“ oder „Ego-Fahrzeug 800“ bezeichnet) beschrieben werden kann, von dem ein Beispiel mit Bezug auf die 8A-8D beschrieben wird), soll dies nicht einschränkend sein. Die hier beschriebenen Systeme und Methoden können ohne Einschränkung beispielsweise von nicht autonomen Fahrzeugen, teilautonomen Fahrzeugen (z. B. in einem oder mehreren adaptiven Fahrerassistenzsystemen (adaptive driver assistance system - ADAS)), Robotern, Lagerfahrzeugen, Offroad-Fahrzeugen, Fischereifahrzeugen, Booten, Shuttles, Rettungsfahrzeugen, Motorrädern, elektrischen oder motorisierten Fahrrädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugtypen verwendet werden. Zusätzlich können, obwohl die vorliegende Offenbarung mit Merkmalserkennung und -klassifizierung für Fahrzeuganwendungen beschrieben wird, diese nicht einschränkend sein, und die hierin beschriebenen Systeme und Verfahren können in den Bereichen Augmented Reality, Virtual Reality, Robotik, Sicherheit und Überwachung, autonome oder halbautonome Maschinenanwendungen und/oder in jedem anderen Technologiebereich verwendet werden, in dem Sensoren mit großem Sichtfeld eingesetzt werden und zum Ausführen verschiedener Operationen - z. B. Objekt- und/oder Merkmalserkennung oder -klassifizierung - genutzt werden können.
  • Wie hierin beschrieben, stellen die aktuellen Systeme und Verfahren im Gegensatz zu konventionellen Ansätzen Techniken zur Erkennung von Merkmalen in Bildern bereit, die von Sensoren mit breitem Sichtfeld (z. B. Sensoren mit Sichtfeldern von mehr als 120 Grad) aufgenommen wurden, wobei - in Ausführungsformen - ein vorhandenes tiefes neuronales Netzwerk (DNN) verwendet wird, das auf Bildern trainiert wurde, die mit Sensoren mit engerem Sichtfeld (z. B. Sensoren mit Sichtfeldern von weniger als 120 Grad) in Echtzeit oder nahezu in Echtzeit aufgenommen wurden. Somit kann die Live-Wahrnehmung von Sensoren mit großem Sichtfeld genutzt werden, um Merkmale (z. B. Objekte, Fahrspuren, Fußgänger) in Bildern der Fahrzeugumgebung zu erkennen. In einigen Ausführungsformen können die Bilddaten eines Weitwinkelsensors auf eine zweidimensionale Zielebene projiziert werden, um stereografisch projizierte Bilder zu erzeugen, die dort, wo weniger Informationen zur Verfügung stehen - z. B. an den Rändern der Bilder -, geringere Verzerrungen aufweisen. Die Bilddaten können nach der stereografischen Projektion auf ein vorhandenes DNN angewendet werden, das auf Sensordaten trainiert wurde, die für engere Sichtfelder repräsentativ sind, sodass ein erneutes Trainieren des DNN für den Weitwinkel-Bildsensor nicht erforderlich ist. In anderen Ausführungsformen kann jedoch auf ein vorab trainiertes DNN verzichtet werden, indem ein DNN auf projizierte - und/oder virtuell angepasste Bilder (z. B. Bilder mit virtuell angepassten Sichtfeldern) trainiert wird, ohne vom Anwendungsbereich der vorliegenden Offenbarung abzuweichen.
  • In einigen Ausführungsformen kann das Sichtfeld der durch die Bilddaten dargestellten Bilder virtuell angepasst werden, bevor die Bilddaten auf einen stereografischen Projektionsalgorithmus angewendet werden, um stark verzerrte Bereiche, wie sie in den Bilddaten erfasst wurden, genau zu projizieren. Zum Beispiel kann das Sichtfeld des Bildsensors nach oben angepasst werden (z. B. weil Parkbildsensoren oder Seitenansichtsbildsensoren nach unten und in Richtung einer Bodenebene geneigt sein können). In einigen Ausführungsformen kann das Sichtfeld so angepasst (z. B. gedreht) werden, dass ein virtueller Mittelpunkt des Bildsensors im Wesentlichen mit einem Horizont (z. B. einem Horizont der realen Welt) übereinstimmt. Zum Beispiel kann ein Rotationsbetrag basierend auf einer Analyse eines Befestigungswinkels des Bildsensors, einer Analyse verschiedener Bilder, die mit dem Bildsensor aufgenommen wurden, und/oder anderen Informationen bestimmt werden. Somit kann ein vorbestimmter Einstellwinkel für das virtuell eingestellte Sichtfeld bestimmt werden. In einigen Ausführungsformen kann diese Einstellung im Wesentlichen der Ausrichtung eines Punktes (z. B. einer Kameramittelpunkt) auf dem Bildsensor an einem Horizont in der Umgebung entsprechen. In einigen Ausführungsformen kann der Horizont einer Begrenzungslinie entsprechen, die angibt, wo eine Fahrfläche den Himmel in einem Bild schneidet. In solchen Ausführungsformen kann die Einstellung des Sichtfelds für ein oder mehrere Kalibrierungsbilder die Einstellung des Sichtfelds beinhalten, bis der Punkt auf dem Bildsensor im Wesentlichen an einem Horizont ausgerichtet ist, wie er in dem einen oder den mehreren Kalibrierungsbildern dargestellt ist. Sobald diese Ausrichtung bestimmt ist, kann der Einstellwinkel bestimmt werden (z. B. durch Mittelwertbildung des Winkels über eine beliebige Anzahl von Kalibrierungsbildern), und der bestimmte Einstellwinkel kann als virtuelle Einstellung des Sichtfelds verwendet werden. Durch die virtuelle Anpassung des Sichtfeldes können die Pixel in den stark verzerrten Bereichen des Bildes, in denen wertvolle Informationen dargestellt werden, weniger verzerrt werden, und Teile der Bilddaten, in denen mehr Informationen verfügbar sind (z. B. in der Mitte des Bildes), können stärker verzerrt werden - aber die Menge an Informationen, die in der Mitte des Bildes auch nach der Verzerrung verfügbar ist, kann für eine genaue Verarbeitung ausreichend sein.
  • Darüber hinaus können in einigen Ausführungsformen die Merkmalserkennungen verwendet werden, um die Positionen der Merkmale und/oder Objekte im Welt-Raum zu bestimmen. In solchen Beispielen können Bild-Raum-Positionen mit Hilfe von Sensorkalibrierungen - z. B. intrinsischen und/oder extrinsischen Eigenschaften der Sensoren - in Welt-Raum-Positionen umgewandelt werden. Die Welt-Raum-Positionen der Merkmale und/oder Objekte können dann von verschiedenen anderen Systemen des Fahrzeugs bei der Ausführung von Wegplanung, Hindernisvermeidung, Steuerungsentscheidungen und/oder anderen autonomen oder teilautonomen Operationen verwendet werden.
  • Somit kann die Live-Wahrnehmung von Kameras mit großem Sichtfeld genutzt werden, um mit einem vorhandenen DNN ein Verständnis der Fahrzeugumgebung zu erzeugen - z. B. ohne, dass ein DNN neu trainiert oder ein neues DNN ausgebildet werden muss. Somit können die Rechenleistung und der manuelle Aufwand, die zum Ausführen von Objekterkennung, Merkmalserkennung und/oder anderen Berechnungen unter Verwendung der Sensordaten eines Weitwinkelsensors erforderlich sind, im Vergleich zu herkömmlichen Systemen drastisch reduziert werden. Darüber hinaus können die Ergebnisse selbst dann, wenn ein DNN auf den projizierten und/oder virtuell angepassten Sichtfeldbildern trainiert wird, genauer und zuverlässiger sein als bei herkömmlichen Systemen, die versuchen, das DNN auf nicht projizierten und/oder nicht angepassten Sichtfeldern zu trainieren.
  • OBJEKT- UND MERKMALERKENNUNGSSYSTEM
  • Auf hohem Niveau können Sensordaten (z. B. Bilddaten, LIDAR-Daten, RADAR-Daten usw.) mit Hilfe von Sensoren (z. B. Kameras, RADAR-Sensoren, LIDAR-Sensoren usw.) empfangen und/oder erzeugt werden, die sich an einem autonomen oder halbautonomen Fahrzeug befinden oder anderweitig dort angeordnet sind. Die Sensoren können Sensoren mit großem Sichtfeld sein (z. B. Sensoren mit einem Sichtfeld von 120 Grad oder mehr). Die Sensordaten können auf einen Projektionsalgorithmus angewendet werden - z. B. einen stereografischen Projektionsalgorithmus, einen gnomonischen Projektionsalgorithmus usw. - der so trainiert und/oder programmiert ist, dass er projizierte Sensordaten erzeugt, die ein projiziertes Bild darstellen. Wird ein stereografischer Projektionsalgorithmus verwendet, so kann dieser die Pixel der Sensordaten auf eine Projektionsebene projizieren, die auf Strahlenformeln über einer virtuellen Kugel basiert, die das Sichtfeld des Weitwinkelsensors abbildet. Die projizierten Sensordaten können auf ein neuronales Netzwerk (z. B. ein tiefes neuronales Netzwerk (DNN), wie etwa ein konvolutionales neuronales Netzwerk (convolutional neural network - CNN)) angewendet werden, das darauf trainiert ist, Bereiche von Interesse zu identifizieren, die sich als nicht einschränkende Beispiele auf Objekte in der Umgebung beziehen (z. B, Fahrzeuge, Fußgänger usw.), Merkmale der Umgebung (z. B. erhabene Fahrbahnmarkierungen, Rüttelstreifen, farbige Fahrbahnteiler, Bürgersteige, Fußgängerüberwege, Abzweigungen, Straßenlayouts, Objekte usw.) und/oder semantische Informationen (z. B. Wartebedingungen, Objekttypen, Fahrspurtypen), die diese betreffen. In einigen Beispielen kann das DNN auch die Positionen der erkannten Objekte oder Merkmale im Bildraum berechnen. Wie hierin beschrieben, kann der DNN mit Bildern oder anderen Sensordatendarstellungen trainiert (z. B. vortrainiert) werden, die von Sensoren mit einem engeren Sichtfeld (z. B. Sensoren mit einem Sichtfeld von weniger als 120 Grad) erfasst wurden.
  • In einigen Ausführungsformen können gnomonische Projektionsalgorithmen zum Ausführen der Projektion der Sensordaten verwendet werden, um projizierte Sensordaten zur Verwendung durch das DNN zu erzeugen. Allerdings ist die gnomonische Projektion bei Sensoren mit großem Sichtfeld möglicherweise nicht so genau, da die gnomonische Projektion bei Sichtfeldern von mehr als 90 Grad versagen kann oder weniger zuverlässig ist, da die Projektionen bestimmter Pixel auf den Bilddaten auf der Zielebene unendlich sein können. Somit können Teilmengen der Bilddaten auf verschiedene Ebenen projiziert werden, um einem größeren Sichtfeld Rechnung zu tragen. Eine solche Teilprojektion kann jedoch rechenintensiv sein, da mindestens vier Ebenen benötigt werden, um das gesamte Sichtfeld abzudecken. Ferner können die Merkmale Teile in verschiedenen projizierten Ebenen aufweisen, was zu ungenauen Ausgaben des DNN führt.
  • Daher kann in einigen Ausführungsformen ein stereografischer Projektionsalgorithmus verwendet werden, um Pixel eines Bildes auf eine Zielebene (z. B. eine zweidimensionale Ebene) zu projizieren. Eine virtuelle Kugel kann als virtuelles Sichtfeld des Sensors verwendet werden, und der niedrigste Punkt auf der virtuellen Kugel kann als Zentrum der Projektion verwendet werden, um das Bild auf die Zielebene zu projizieren. Für jedes Pixel der Zielebene (z. B. das projizierte Bild) kann ein Punkt auf der Kugel bestimmt werden, der basierend auf dem Schnittpunkt einer virtuellen Linie zwischen dem Zentrum der Projektion und dem Pixel auf der Zielebene mit einem Punkt (z. B. einem Pixel) auf der virtuellen Kugel auf dieses Pixel projiziert wird. Auf diese Weise entspricht jedes Pixel auf der Zielebene oder dem projizierten Bild einem Pixel, das auf dem Originalbild abgetastet wurde. Durch die Erzeugung eines projizierten Bildes auf diese Weise wird jedes Originalbild vollständig auf einer zweidimensionalen Ebene erfasst, sodass das projizierte Bild invertierbar ist, wobei ein vom neuronalen Netzwerk auf dem projizierten Bild erkanntes Merkmal mithilfe einer Strahlenformulierung auf das Originalbild zurückverfolgt werden kann, um die Position des Merkmals auf dem Originalbild zu bestimmen. Darüber hinaus kann der stereografische Projektionsalgorithmus Bilder, die von Sensoren mit großem Sichtfeld aufgenommen wurden, auf eine einzige Ebene projizieren, wodurch der Rechenaufwand im Vergleich zu gnomonischen Projektionsverfahren, bei denen die Bilder in verschiedene Teile aufgeteilt und die aufgeteilten Teile anschließend auf mehrere Ebenen projiziert werden, vergleichsweise gering ist. Das projizierte Bild kann eine planare Ansicht der ursprünglichen Bilder beinhalten, die von Sensoren mit Sichtfeldern zwischen 120 Grad und 360 Grad aufgenommen wurden, wobei die Bereiche von Interesse erhalten bleiben, die im ursprünglichen, nicht projizierten Bild die größte Verzerrung aufwiesen.
  • In einigen Beispielen können die Sensordaten einer Vorverarbeitung unterzogen werden, um das Sichtfeld des Weitwinkelsensors virtuell anzupassen und ein aktualisiertes Bild zu erzeugen, sodass die am stärksten verzerrten - und potenziell informativsten - Bereiche der Bilder (z. B. Ränder) in Bereiche der virtuellen Kugel verlagert werden, in denen die Pixelinformationen während der Projektion am besten erhalten bleiben. Zum Beispiel kann das virtuelle Sichtfeld des Weitwinkelsensors in vertikaler Richtung so angepasst werden, dass der virtuelle Mittelpunkt des Sensors im Wesentlichen an einem Horizont der realen Welt ausgerichtet ist. In solchen Beispielen kann der virtuelle Mittelpunkt des Bildes vertikal nach oben verschoben werden, indem die virtuelle Kugel um einen bestimmten Grad gedreht wird. Der vorbestimmte Grad kann auf einer Sensorkalibrierung basieren und kann, als nicht einschränkendes Beispiel, zwischen 20 und 60 Grad betragen. Zum Beispiel kann der Grad der Drehung abhängig von der Position und dem Winkel des Sensors am Fahrzeug bestimmt werden. In einigen Beispielen kann die virtuelle Anpassung dadurch erfolgen, dass die Strahlen, die das ursprüngliche Bild bilden, bei der Projektion des Bildes auf die Projektionsfläche um den vorgegebenen Grad gedreht werden. Das aktualisierte Bild kann auf den stereografischen Projektionsalgorithmus angewendet werden, um das projizierte Bild für die Anwendung auf das DNN zu erzeugen. Die Ausrichtung des virtuellen Mittelpunkts des Sensors am Horizont kann es ermöglichen, die Projektion an einer Konstante für alle vom Sensor erzeugten Sensordaten auszurichten und die Ränder der durch die Sensordaten dargestellten Bilder an einer zentralen Position auf der virtuellen Kugel auszurichten, um die informativsten Pixel zu erhalten.
  • Das projizierte Bild kann auf das DNN - z. B. ein vortrainiertes DNN - angewendet werden, um Objekte, Merkmale und/oder entsprechende semantische Informationen zu erkennen. Die Ausgabe des DNN kann in bestimmten Fällen zur genauen Verfolgung von Objekten verwendet werden, da die Merkmalserkennung an den Rändern der von Sensoren mit großem Sichtfeld aufgenommenen Bilder erhalten bleibt - z. B. in Bildbereichen, die ohne stereografische Projektion am stärksten verzerrt und somit am schwierigsten vorherzusagen sind.
  • Sobald die Merkmale und/oder Objekte erfasst sind, können die ihnen entsprechenden Positionen in ihre jeweiligen Welt-Raum-Positionen umgewandelt werden. Dies kann unter Verwendung von Kalibrierungsinformationen für die Sensoren erfolgen und kann auf Anpassungen (z. B. vertikale Drehung) der Sensordaten während der Verarbeitung basieren. Dadurch kann die ursprüngliche Zuordnung der Bild-Raum-Positionen zu den Welt-Raum-Positionen aus den unverarbeiteten Sensordaten wiederhergestellt werden, um die Ausgaben des DNN für die Verwendung durch ein Fahrzeug beim Ausführen einer oder mehrerer Operationen vorzubereiten.
  • Mit Bezug auf 1A, ist 1A ein beispielhaftes Datenflussdiagramm, das einen Beispielprozess 100 zur Erkennung von Merkmalen der Umgebung eines Fahrzeugs unter Verwendung von Ausgaben von einem oder mehreren Sensoren des Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Es sollte verstanden werden, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele dienen und dass die Reihenfolge der Komponenten und/oder Prozesse angepasst werden kann, ohne von dem Anwendungsbereich der vorliegenden Offenbarung abzuweichen. Ferner können zusätzliche oder alternative Komponenten und/oder Prozesse, die nicht hierin beschrieben sind, implementiert werden.
  • Der Prozess 100 kann einen stereografischen Projektor 106 beinhalten, der einen stereografischen Projektionsalgorithmus auf eine oder mehrere Eingaben (z. B. Bilddaten 102, andere Sensordaten usw.) ausführt und eine oder mehrere Ausgaben - wie etwa projizierte Bilddaten 108 - erzeugt. Darüber hinaus kann der Prozess 100 ein oder mehrere Machine-Learning-Modelle 110 (z. B. DNNs) beinhalten, die eine oder mehrere Eingaben (z. B. die projizierten Bilddaten 108, mit oder ohne Sichtfeldanpassung vom FOV-Anpasser 104) empfangen und eine oder mehrere Ausgaben 112 erzeugen. In einigen Beispielen können die Bilddaten 102, wenn sie für das Training verwendet werden, als Trainingsbilddaten bezeichnet werden. Obwohl die Bilddaten 102 in erster Linie im Hinblick auf Bilddaten, die repräsentativ für Bilder sind, diskutiert werden, ist dies nicht als Einschränkung gedacht, und die Bilddaten 102 können andere Arten von Sensordaten enthalten, die für die Merkmals- und/oder Objekterkennung verwendet werden, wie LIDAR-Daten, SONAR-Daten, RADAR-Daten und/oder ähnliches - z. B. durch einen oder mehrere Sensoren des Fahrzeugs 800 (8A-8D).
  • Der Prozess 100 kann das Generieren und/oder Empfangen von Bilddaten 102 von einem oder mehreren Sensoren umfassen. Die Bilddaten 102 können als nichteinschränkendes Beispiel von einem oder mehreren Sensoren eines Fahrzeugs empfangen werden (z. B. Fahrzeug 800 aus 8A-8C und hierin beschrieben), die von Sensoren mit großem Sichtfeld (z. B. Sensoren mit Sichtfeldern von mehr als 120 Grad) erfasst werden. Die Bilddaten 102 können vom Fahrzeug und innerhalb des Prozesses 100 verwendet werden, um Objekte oder Merkmale zu erkennen und/oder zu klassifizieren, um die Navigation durch die Umgebung des Fahrzeugs in Echtzeit oder nahezu in Echtzeit zu unterstützen. Die Bilddaten 102 können, ohne Einschränkung, Bilddaten 102 von einem der Sensoren des Fahrzeugs enthalten, einschließlich beispielsweise und in Bezug auf 8A-8C, Stereokameras 868, Weitwinkelkameras 870 (z. B. Fischaugenkameras), Infrarotkameras 872, Surround-Kameras 874 (z. B. 360-Grad-Kameras) und/oder Kameras mit großer und/oder mittlerer Reichweite 878. In einigen Ausführungsformen können zusätzlich zu den Bilddaten 102 oder alternativ auch Sensordaten von einer beliebigen Anzahl von Sensortypen verwendet werden, wie etwa, ohne Einschränkung, RADARsensor(en) 860, Ultraschallsensor(en) 862, LIDARsensor(en) 864 und/oder andere Sensortypen. In einigen Ausführungsformen, wie hierin beschrieben, können die Bilddaten 102 und/oder die Sensordaten mit Sensoren erzeugt werden, deren sensorische Felder oder Sichtfelder größer als 120 Grad sind (z. B. 120 bis 360 Grad). In einem weiteren Beispiel können die Bilddaten 102 virtuelle Bilddaten beinhalten, die von einer beliebigen Anzahl von Sensoren eines virtuellen Fahrzeugs oder eines anderen virtuellen Objekts erzeugt wurden. In einem solchen Beispiel können die virtuellen Sensoren einem virtuellen Fahrzeug oder einem anderen virtuellen Objekt in einer simulierten Umgebung entsprechen (z. B. zum Testen, Ausbilden und/oder Validieren der Leistung des neuronalen Netzwerks), und die virtuellen Bilddaten können Bilddaten darstellen, die von den virtuellen Sensoren innerhalb der simulierten oder virtuellen Umgebung erfasst werden.
  • In einigen Ausführungsformen können die Bilddaten 102 Bilddaten enthalten, die ein oder mehrere Bilder darstellen, Bilddaten, die ein Video darstellen (z. B. Schnappschüsse von Videos) und/oder Sensordaten, die Darstellungen sensorischer Sensorfelder darstellen (z. B. Tiefenkarten für LIDAR-Sensoren, ein Wertdiagramm für Ultraschallsensoren usw.), die von Sensoren mit großem Sichtfeld (z. B. Sensoren mit Sichtfeldern von mehr als 120 Grad) erfasst werden. Mit Bezug auf die Bilddaten 102 können alle Typen von Bilddatenformaten verwendet werden, z. B. und uneingeschränkt komprimierte Bilder wie in den Formaten Joint Photographic Experts Group (JPEG) oder Luminance/Chrominance (YUV), komprimierte Bilder als Bilder, die aus einem komprimierten Videoformat wie H.264/Advanced Video Coding (AVC) oder H.265/High Efficiency Video Coding (HEVC) stammen, als Raw-Bilder, wie sie von Red Clear Blue (RCCB), Red Clear (RCCC) oder einem anderen Bildsensor stammen, und/oder in anderen Formaten. Außerdem können in einigen Beispielen die Bilddaten 102 innerhalb des Prozesses 100 ohne Vorverarbeitung (z. B. in einem Raw- oder erfasste Format) verwendet werden, während in anderen Beispielen die Bilddaten 102 einer Vorverarbeitung unterzogen werden können (z. B. einer oder mehrere von Rauschausgleich, Demosaicing, Skalierung, Zuschneiden, Vergrößerung, Weißabgleich, Anpassung der Tonwertkurve usw., z. B. Verwendung eines Sensor-Daten-Vorprozessors (nicht abgebildet). Wie hier verwendet, können die Bilddaten 102 auf unverarbeitete Bilddaten, vorverarbeitete Bilddaten oder eine Kombination davon verweisen.
  • Die Bilddaten 102 können Originalbilder (z. B. von einem oder mehreren Bildsensoren erfasst), downgesampelte Bilder, upgesampelte Bilder, zugeschnittene oder Region of Interest (ROI)-Bilder, ansonsten erweiterte Bilder und/oder eine Kombination daraus enthalten. In einigen Ausführungsformen können die Machine-Learning-Modelle 110 mit den Bildern (und/oder anderen Bilddaten 102) trainiert werden, die mit Sensoren mit geringerem Sichtfeld (z. B. Sensoren mit Sichtfeldern von weniger als 120 Grad) aufgenommen wurden.
  • Als ein Beispiel für Sichtfelder, die größer als 120 Grad sind, und unter Bezugnahme auf 2, veranschaulicht 2 Sichtfelder von Sensoren mit großem Sichtfeld an einem Fahrzeug gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Zum Beispiel beinhaltet das Fahrzeug 210 zwei Sensoren mit großem Sichtfeld, Sensor 212 und Sensor 214. Das Sichtfeld 222 kann dem Sensor 212 entsprechen und etwa 190 Grad betragen. In ähnlicher Weise kann das Sichtfeld 224 dem Sensor 214 entsprechen und ungefähr 190 Grad betragen. Der Sensor 212 und der Sensor 214 können jeweils Fischaugenkameras (z. B. die Weitwinkelkameras 870 des Fahrzeugs 800) des Fahrzeugs 210 darstellen. In einigen Beispielen können einer oder beide der Sensoren 212 und 214 Parkkameras sein, die zur Unterstützung des Fahrzeugs 210 beim Parken verwendet werden, oder sie können Seitenkameras beinhalten, die zur Unterstützung des Fahrzeugs 210 beim Spurwechsel, zur Überwachung des toten Winkels und/oder dergleichen verwendet werden.
  • Wieder Bezug nehmend auf 1A, können die Bilddaten 102 während des Einsatzes zum Beispiel auf den FOV-Einsteller 104 angewendet werden, um aktualisierte Bilddaten zu berechnen, die auf den stereografischen Projektor 106 anzuwenden sind. Zum Beispiel können in einigen Beispielen die Bilddaten 102 einer Vorverarbeitung unterzogen werden, um das Sichtfeld des Weitwinkelsensors virtuell anzupassen und die aktualisierten Bilddaten zu erzeugen, sodass die am stärksten verzerrten - und potenziell informative und wichtige - Bereiche der Bilder (z. B. Kanten) in Bereiche der virtuellen Kugel verlagert werden, in denen die Pixelinformationen während der Projektion am besten erhalten bleiben. Zum Beispiel können Bilder, die mit Sensoren mit einem engeren Sichtfeld aufgenommen wurden, in der Nähe der Ränder des Sichtfeldes eine minimale Verzerrung aufweisen (wie z. B. in Bild 310 von 3 veranschaulicht). Bilder, die mit Sensoren mit größerem Sichtfeld aufgenommen wurden, weisen jedoch häufig starke Verzerrungen an den Rändern auf, wo weniger Informationen pro Pixel zur Verfügung stehen (wie z. B. in Bild 330 von 3 veranschaulicht).
  • Zum Beispiel kann der FOV-Einsteller 104 das virtuelle Sichtfeld des Weitwinkelsensors in vertikaler Richtung einstellen - z. B. nach oben oder unten. Aufgrund des Montagewinkels der Sensoren (z. B. nach unten gerichtet für Parksensoren und Seitensicht-Sensoren, nach oben gerichtet für Sensoren zur Kreuzungsanalyse usw.) ist das Sichtfeld der Sensoren möglicherweise nicht für jede Implementierung ideal. In einem nicht einschränkenden Beispiel ist das Sichtfeld eines Parksensors, der in einem Winkel von 40 Grad zum Boden ausgerichtet ist, möglicherweise nicht ideal für die Erkennung von Fahrzeugen, die sich auf benachbarten Fahrspuren befinden oder an einer Straßenseite geparkt sind. Dennoch kann es vorteilhaft sein, die vom nach unten gerichteten Parksensor erzeugten Bilddaten für Objekt- oder Merkmalserkennungsaufgaben zu nutzen. So können die Bilddaten aktualisiert werden, um ein virtuelles Sichtfeld des Parksensors darzustellen, das um weniger als 40 Grad zur Bodenoberfläche geneigt ist - z. B. auf 20 Grad oder 0 Grad. In einigen Ausführungsformen, wie hierin beschrieben, kann das Sichtfeld virtuell so angepasst werden, dass ein virtueller Mittelpunkt des Sensors im Wesentlichen mit einem Horizont der realen Welt übereinstimmt. In solchen Beispielen kann der virtuelle Mittelpunkt der Bilder in den Bilddaten 102 vertikal - z. B. nach oben oder unten - verschoben werden, indem eine virtuelle Kugel um ein vorgegebenes Maß gedreht wird. Die virtuelle Kugel kann als virtuelles Sichtfeld des Weitwinkelsensors verwendet werden, der zur Erfassung der Bilddaten 102 eingesetzt wird, und die aktualisierten Bilddaten, die das virtuell angepasste Sichtfeld darstellen, können auf den stereografischen Projektor 106 angewendet werden.
  • In einigen Beispielen kann der vorbestimmte Grad auf einer Sensorkalibrierung basieren und kann, als nicht einschränkendes Beispiel, zwischen 20 und 60 Grad betragen. Zum Beispiel kann der FOV-Einsteller 104 den Grad der Drehung der virtuellen Kugel basierend auf der Position und dem Winkel des Sensors am Fahrzeug 800 bestimmen. In einigen Beispielen kann die virtuelle Anpassung durch Drehen der Strahlen, die das ursprüngliche Bild der Bilddaten 102 bilden, um den vorgegebenen Grad erfolgen, um das aktualisierte Bild zu erzeugen. Die Ausrichtung des virtuellen Zentrums des Weitwinkelsensors am Horizont kann es erlauben, die Ränder der Bilder in den Bilddaten 102 an einer zentralen Position auf der virtuellen Kugel auszurichten, um die Informationen dort zu erhalten, wo die größte Verzerrung im unangepassten Bild vorhanden ist.
  • Als weiteres Beispiel und unter Bezugnahme auf 3, veranschaulicht 3 Bilder, die gemäß einigen Ausführungsformen der vorliegenden Offenbarung mit drei Sensoren mit unterschiedlichen Sichtfeldern aufgenommen wurden. Bild 310 ist ein Bild, das mit einem Sensor aufgenommen wurde, der ein horizontales Sichtfeld von sechzig Grad hat. Wie in Bild 310 zu sehen ist, gibt es im Wesentlichen keine Verzerrungen im Bild. Die meisten Machine-Learning-Modelle (z. B. Machine-Learning-Modell(e) 110) werden darauf trainiert, Merkmale anhand von Trainingsbildern mit einem ähnlichen Sichtfeld wie Bild 310 zu erkennen. Die Machine-Learning-Modelle können aufgrund der fehlenden Verzerrung Merkmale in Bildern wie dem Bild 310 genau und effizient erkennen. In ähnlicher Weise ist Bild 320 ein Bild, das mit einem Sensor aufgenommen wurde, der ein horizontales Sichtfeld von etwa 120 Grad hat. Mit zunehmendem Sichtfeld nimmt auch die Verzerrung an den Rändern der aufgenommenen Bilder zu. Wie zu sehen ist, beinhaltet das Bild 320 eine Verzerrung am rechten und linken Bildrand. Das Bild 320 kann jedoch fast vollständig oder im Wesentlichen geradlinig sein, und die Machine-Learning-Modelle können immer noch in der Lage sein, Merkmale im gesamten Bild 320 genau zu erkennen, da der Informationsverlust im Bild 320 immer noch minimal ist. Bild 330 ist ein Bild, das mit einem Sensor aufgenommen wurde, der ein Sichtfeld von 190 Grad hat. Die Pixel am linken und rechten Rand des Bildes weisen eine stärkere Verzerrung auf als die Pixel in der Mitte des Bildes 330. Wenn Machine-Learning-Modelle, wie etwa das/die Machine-Learning-Modell(e) 110, anhand von Bildern trainiert werden, die mit Sensoren mit kleinerem Sichtfeld (z. B. Sensoren mit einem Sichtfeld von weniger als 120 Grad) aufgenommen wurden, sind die Machine-Learning-Modelle möglicherweise nicht in der Lage, Merkmale in den verzerrten Regionen, wie etwa den Rändern des Bildes 330, ohne Vorverarbeitung zu erkennen. Daher kann das Verfahren 100 verwendet werden, um die Bilder, die mit Sichtfeldern aufgenommen wurden, die näher an dem im Bild 330 dargestellten liegen, so vorzuverarbeiten, dass das/die Machine-Learning-Modell(e) 110 (z. B. vortrainiert auf Bildern mit geringerem Sichtfeld und/oder trainiert auf Bildern mit angepasstem Sichtfeld oder projizierten Bildern) genaue Vorhersagen in Bezug auf das Bild 330 treffen können.
  • Als ein weiteres Beispiel und in Bezug auf 4, veranschaulicht 4 ein virtuell eingestelltes Bild, das gemäß einigen Ausführungsformen der vorliegenden Offenbarung mit Hilfe des FOV-Einstellers 104 eingestellt wurde. Bild 410 kann ein Originalbild sein, das von einem Sensor 440 eines Fahrzeugs (z. B. des Fahrzeugs 800) mit großem Sichtfeld (z. B. mehr als 120 Grad) aufgenommen wurde. Der FOV-Einsteller 104 von 1A kann verwendet werden, um ein Sichtfeld 444A des Sensors 440 mit großem Sichtfeld, der das Bild 410 aufgenommen hat, virtuell anzupassen, um ein aktualisiertes Bild 422 zu erzeugen, sodass die am stärksten verzerrten - und potenziell informativen - Bereiche der Bilder (z. B. die Ränder 412 und 414) in Bereiche (z. B. die Bereiche 422 und 424) der virtuellen Kugel verlagert werden können, in denen die Pixelinformationen während der Projektion am besten erhalten bleiben. Das aktualisierte Bild 420 kann durch vertikale Anpassung des Sichtfelds 444A des Sensors 440 an ein aktualisiertes Sichtfeld 444B erzeugt werden, sodass der virtuelle Mittelpunkt des Sensors virtuell auf einen anderen Bereich in der realen Welt ausgerichtet ist als die tatsächliche Ausrichtung des Sensors in der realen Welt - z. B. auf den Horizont 426 der realen Welt. Wie zu sehen ist, behalten die Bereiche 422 und 424 des aktualisierten Bildes 420 die Pixelinformationen der Kanten 412 und 414 des Bildes 410 bei. Zum Beispiel kann das Bild 410 von dem Weitwinkelsensor 440 so aufgenommen werden, dass die Mitte des Sensors nach unten in Richtung der Straße oder der Bodenebene 442 zeigt, und die virtuelle Mitte des Sensors nach der Anpassung im Bild 420 mehr in Richtung eines Horizonts 426 (z. B. eine Kreuzung einer Straße oder der Bodenebene 422 mit einem Himmel in der Ferne) zeigt. Somit können durch Drehen des virtuellen Mittelpunkts des Sensors nach oben die Bereiche 422 und 424 mit der größten Verzerrung im Bild 410 so aktualisiert werden, dass die Pixelinformationen bei der Projektion mit dem stereografischen Projektor 106 erhalten bleiben.
  • Wieder Bezug nehmend auf 1A können die aktualisierten Bilddaten (z. B. nach der Anpassung des Sichtfelds) und/oder die Bilddaten 102 auf den stereografischen Projektor 106 angewendet werden, der darauf trainiert und/oder programmiert ist, projizierte Bilddaten 108 zu erzeugen. Der stereografische Projektor 106 kann einen stereografischen Projektionsalgorithmus, einen gnomonischen Projektionsalgorithmus und/oder eine andere Art von Projektionsalgorithmus ausführen. Der stereografische Projektor 106 kann Pixel der Bilddaten 102 auf eine zweidimensionale (2D) Projektionsebene (z. B. Zielebene) projizieren, basierend auf einer Strahlenformulierung über eine virtuelle Kugel, die ein Sichtfeld des Weitwinkelsensors darstellt, der zur Erfassung der Bilddaten 102 verwendet wird. Eine virtuelle Kugel kann als Sichtfeld des Weitwinkelsensors verwendet werden, und jedes Pixel der Bilddaten 102 kann auf die 2D-Projektionsebene projiziert werden. Die projizierten Bilddaten 108 können repräsentativ für ein projiziertes Bild sein.
  • In einigen Beispielen kann der stereografische Projektor 106 einen gnomonischen Projektionsalgorithmus verwenden (und kann alternativ auch als „gnomonischer Projektor“ oder „Projektor“ bezeichnet werden), um die projizierten Bilddaten 108 zu erzeugen. Ein Zentrum der virtuellen Kugel kann als Projektionszentrum verwendet werden, um die Bilddaten 102 auf die 2D-Projektionsebene zu projizieren. Für jedes Pixel der 2D-Projektionsebene (z. B. projizierte Bilddaten 108) kann ein Punkt auf der virtuellen Kugel bestimmt werden, der basierend auf dem Schnittpunkt einer virtuellen Linie zwischen dem Zentrum der Projektion und dem Pixel auf der Zielebene mit einem Punkt (z. B. einem Pixel) auf der virtuellen Kugel auf dieses Pixel projiziert wird. Auf diese Weise kann jedes Pixel auf der Zielebene oder den projizierten Bilddaten 108 einem Pixel entsprechen, das auf dem Originalbild der Bilddaten 102 abgetastet wurde. Der gnomonische Projektionsalgorithmus kann jedoch Pixel in Sichtfeldern von mehr als 90 Grad nicht projizieren, sodass der Rest der Pixel eines Bildes, das von einem Sensor mit einem Sichtfeld von mehr als 90 Grad aufgenommen wurde, außerhalb der 2D-Projektionsebene verbleibt, da die Projektionen für diese Pixel der Bilddaten 102 bis ins Unendliche reichen können, ohne die 2D-Projektionsebene zu schneiden. In solchen Beispielen können Teilmengen der Bilddaten 102 auf separate 2D-Projektionsebenen projiziert werden, um ein größeres Sichtfeld (z. B. ein Sichtfeld von mehr als 90 Grad) zu berücksichtigen. Die separaten 2D-Projektionsebenen können als projizierte Bilddaten 108 verwendet werden, die auf Machine-Learning-Modelle 110 angewendet werden, um Merkmale und/oder Objekte zu erkennen. Solche Teil- und Mehrfachprojektionen können jedoch rechenintensiv sein, da mindestens vier Projektionsebenen erforderlich sein können, um das gesamte Sichtfeld der Bilddaten 102 abzudecken. Ferner kann ein einzelnes Merkmal oder Objekt Teile aufweisen, die in verschiedenen Projektionsebenen dargestellt werden, wodurch es für das/die Machine-Learning-Modell(e) 110 schwierig wird, solche Merkmale und/oder Objekte vorherzusagen.
  • In anderen Beispielen kann der stereografische Projektor 106 einen stereografischen Projektionsalgorithmus verwenden, um die projizierten Bilddaten 108 durch Projektion von Pixeln eines Bildes der Bilddaten 102 oder der aktualisierten Bilddaten auf eine einzige 2D-Projektionsebene zu erzeugen. In solchen Beispielen kann die virtuelle Kugel als virtuelles Sichtfeld des Sensors verwendet werden, und der niedrigste (z. B. vertikal niedrigste) Punkt auf der virtuellen Kugel kann als Zentrum der Projektion verwendet werden, um Bilddaten 102 auf die 2D-Projektionsebene zu projizieren (z. B. wie in den 1A und 1B veranschaulicht). Für jedes Pixel der 2D-Projektionsebene kann ein Punkt auf der virtuellen Kugel bestimmt werden, der basierend auf dem Schnittpunkt einer virtuellen Linie zwischen dem Zentrum der Projektion und dem Pixel auf der 2D-Projektionsebene mit einem Punkt (z. B. einem Pixel) auf der virtuellen Kugel auf dieses Pixel projiziert wird. Auf diese Weise kann jedes Pixel auf der 2D-Projektionsebene oder das projizierte Bild der projizierten Bilddaten 108 einem Pixel entsprechen, das auf dem Originalbild der Bilddaten 102 und/oder den aktualisierten Bilddaten abgetastet wurde. Durch die Erzeugung eines projizierten Bildes auf diese Weise kann jedes ursprüngliche Bild, das durch die Bilddaten 102 repräsentiert wird, und/oder das aktualisierte Bild, das durch die aktualisierten Bilddaten repräsentiert wird, vollständig auf einer zweidimensionalen Ebene erfasst werden, sodass das projizierte Bild invertierbar ist, wobei ein durch das/die Machine-Learning-Modell(e) 110 auf dem projizierten Bild detektiertes Merkmal unter Verwendung einer Strahlenformulierung auf das ursprüngliche Bild der Bilddaten 102 zurückverfolgt werden kann, um eine Position des Merkmals auf dem ursprünglichen Bild der Bilddaten 102 zu bestimmen. Als nicht einschränkendes Beispiel veranschaulicht 1B - unter anderem - wie ein Originalbild unter Verwendung einer virtuellen Kugel auf eine 2D-Projektionsebene projiziert werden kann, um projizierte Bilddaten 108 zu erzeugen.
  • Ferner kann der stereografische Projektor 106 den stereografischen Projektionsalgorithmus verwenden, um Bilder der Bilddaten 102, die von Sensoren mit großem Sichtfeld aufgenommen wurden, auf eine einzige Ebene zu projizieren, wodurch der Rechenaufwand im Vergleich zu gnomonischen Projektionsverfahren, bei denen die Bilder in verschiedene Teile aufgeteilt und die aufgeteilten Teile anschließend auf mehrere Ebenen projiziert werden, vergleichsweise gering ist. Das projizierte Bild in den projizierten Bilddaten 102 kann eine planare Ansicht der ursprünglichen Bilder der Bilddaten 102 beinhalten, die von Sensoren mit Sichtfeldern zwischen 120 Grad und 360 Grad erfasst wurden, wobei die Bereiche von Interesse erhalten bleiben, die im ursprünglichen, nicht projizierten Bild die größte Verzerrung aufwiesen. Insbesondere kann der FOV-Projektor 104 die verzerrten Teile (z. B. Ränder) der Bilddaten 102 an Positionen in den aktualisierten Bilddaten verschieben, sodass sich die verzerrten Teile in den aktualisierten Bilddaten in Bereichen befinden, in denen der stereografische Projektor 106 so konfiguriert ist, dass mehr Informationen erhalten bleiben. Während sich die nicht verzerrten Teile der Bilddaten 102 in Regionen befinden können, in denen der stereografische Projektor 106 dazu konfiguriert ist, nicht so viele Informationen zu erhalten, beinhalten die Bilddaten 102 selbst mehr Informationen in diesen Bereichen (z. B. in der Mitte) des Bildes, sodass das/die Machine-Learning-Modell(e) 110 immer noch in der Lage sein kann/können, Merkmale in solchen Regionen selbst mit dem Informationsverlust genau vorherzusagen. Zum Beispiel, unter Bezugnahme auf 5, kann das Objekt (oder Fahrzeug) 514 nach der Projektion verzerrt erscheinen, aber aufgrund der Anzahl der Pixel, die dem Objekt 514 entsprechen, kann das Objekt 514 immer noch genau von dem/den Machine-Learning-Modell(en) 110 erkannt und/oder klassifiziert werden.
  • Als ein Beispiel für stereografische Projektion und unter Bezugnahme auf 1B, veranschaulicht 1B wie ein Originalbild auf eine 2D-Projektionsebene projiziert werden kann, wobei eine virtuelle Kugel verwendet wird, um ein projiziertes Bild gemäß einigen Ausführungsformen der vorliegenden Offenbarung zu erzeugen. Eine virtuelle Kugel 120 wird als virtuelles Sichtfeld des Sensors verwendet, der ein im Umriss der Kugel dargestelltes Bild erfasst hat, und der niedrigste (z. B. vertikal niedrigste) Punkt auf der virtuellen Kugel wird als Mittelpunkt 122 der Projektion des Bildes auf die Zielebene 118 verwendet. Für jedes Pixel der Zielebene wird ein Punkt auf der virtuellen Kugel bestimmt, der basierend auf dem Schnittpunkt einer virtuellen Linie zwischen dem Mittelpunkt 122 der Projektion und dem Pixel auf der Zielebene 118 mit einem Punkt (z. B. einem Pixel) auf der virtuellen Kugel auf dieses Pixel projiziert wird. Zum Beispiel wird der Punkt 128 auf der virtuellen Kugel 120 basierend auf dem Schnittpunkt der virtuellen Linie 126 zwischen dem Mittelpunkt 122 und dem Pixel 130 bestimmt, um auf das Pixel 130 der Zielebene 118 projiziert zu werden. In ähnlicher Weise werden die Punkte 134, 140, 144 und 150 auf der virtuellen Kugel auf die Pixel 136, 140, 146 bzw. 152 der Zielebene 118 projiziert, basierend auf den Schnittpunkten der virtuellen Linien 132, 138, 142 bzw. 148 zwischen dem Mittelpunkt 122 und den jeweiligen Pixeln. Somit kann jedes Pixel auf der Zielebene 118 einem Pixel entsprechen, das auf dem Originalbild abgetastet wurde, um ein projiziertes Bild zu erzeugen.
  • Wieder Bezug nehmend auf 1A können die projizierten Bilddaten 108 auf einem oder mehreren Machine-Learning-Modell(e) 110 angewendet werden, die darauf trainiert sind, Ausgabe(n) 112 aus den Bilddaten 102 zu erkennen - z.B. nach Sichtfeldanpassungen und/oder Projektion. Das/die Machine-Learning-Modell(e) 110 kann/können die projizierten Bilddaten 108 verwenden, um die Ausgabe(n) 112 zu berechnen, die auf einen Decoder oder eine oder mehrere Nachverarbeitungskomponenten (z. B. Ausgabewandler) angewendet werden kann/können, um Informationen über die Umgebung des Fahrzeugs 800 zu erzeugen. Das/die Machine-Learning-Modell(e) kann/können trainiert werden, um Bereiche von Interesse (z. B. als eine der Ausgabe(n) 112) zu identifizieren, die sich auf die Umgebung des Fahrzeugs 800 beziehen. Zum Beispiel können die interessierenden Bereiche und anschließend die Ausgabe(n) 112 Objekte (z. B. Fahrzeuge, Fußgänger, Stoppschilder usw.), Merkmale (z. B. erhabene Fahrbahnmarkierungen, Rüttelstreifen, farbige Fahrbahnteiler, Bürgersteige, Fußgängerüberwege, Abzweigungen, Straßenlayouts usw.) und/oder dazugehörige semantische Informationen (z. B. Klassifizierungen, Wartebedingungen, Objekttypen, Fahrspurtypen usw.) beinhalten. In einigen Beispielen kann das/die Machine-Learning-Modell(e) 110 weiter trainiert werden, um Bild-Raum-Positionen des erkannten Objekts oder der Merkmale zu bestimmen. In einigen Ausführungsformen, wie hierin beschrieben, können das/die Machine-Learning-Modell(e) 110 mit Bildern oder anderen Sensordatendarstellungen trainiert (z. B. vortrainiert) werden, die von Sensoren mit engerem Sichtfeld (z. B. Sensoren mit einem Sichtfeld von weniger als 120 Grad) erfasst wurden.
  • Obwohl hierin Beispiele in Bezug auf die Verwendung von tiefen neuronalen Netzwerken (DNNs) und insbesondere von konvolutionalen neuronalen Netzwerken (CNNs) als Machine-Learning-Modell(e) 110 beschrieben werden, ist dies nicht als einschränkend gedacht. Zum Beispiel und ohne Einschränkung können das/die Machine-Learning-Modell(e) 110 jede Art von Machine-Learning-Modellen umfassen, wie etwa ein Machine-Learning-Modell, das lineare Regression, logistische Regression, Entscheidungsbäume, Supportvektormaschinen (SVM), Naive Bayes, k-Nearest Neighbor (KNN), K-means-Clustering, Random Forest, Algorithmen zur Reduktion der Dimensionalität, Algorithmen zur Steigerung der Gradienten, neuronale Netzwerke (z. B. Auto-Encoder, convolutional, rezidivierend, Perzeptrone, Lang-/Kurzzeitmemory/LSTM, Hopfield, Boltzmann, Deep Belief, deconvolutional, Generative Adversarial, Liquid State Machine, etc.), Fahrbahnerkennungs-Algorithmen, Computervision-Algorithmen und/oder andere Arten von Machine-Learning-Modellen.
  • Zum Beispiel kann/können das/die Machine-Learning-Modell(e) 110 eine beliebige Anzahl von Schichten enthalten, wenn das/die Machine-Learning-Modell(e) 110 ein CNN enthält. Eine oder mehrere der Schichten können eine Eingabeschicht enthalten. Die Eingabe-Schicht kann Werte enthalten, die mit den Bilddaten 102 und/oder den projizierten Bilddaten 108 verbunden sind (z. B. vor oder nach der Nachbearbeitung). Zum Beispiel kann die Eingabeschicht, wenn es sich bei den Bilddaten 102 und/oder den projizierten Bilddaten 108 um ein Bild handelt, Werte enthalten, die die rohen Pixelwerte des Bildes/der Bilder als Volumen darstellen (z. B. eine Breite, eine Höhe und Farbkanäle (z. B. RGB), wie 32 x 32 x 3).
  • Eine oder mehrere Schichten können eine Faltungsschicht enthalten. Die Faltungsschichten können die Ausgabe von Neuronen berechnen, die mit lokalen Regionen in einer Eingabeschicht verbunden sind, wobei jedes Neuron ein Punktprodukt zwischen ihren Gewichten und einem kleinen Bereich berechnet, mit dem sie im Eingabevolumen verbunden sind. Ein Ergebnis der Faltungsschichten kann ein anderes Volumen sein, wobei eine der Abmessungen auf der Anzahl der angewendeten Filter basiert (z. B. die Breite, die Höhe und die Anzahl der Filter, z. B. 32 x 32 x 12, wenn 12 die Anzahl der Filter war).
  • Eine oder mehrere der Schichten können eine Schicht mit gleichgerichteter linearer Einheit (rectified linear unit - ReLU) umfassen. Die ReLU-Schicht(en) kann/können eine elementweise Aktivierungsfunktion anwenden, wie z. B. das Maximum (0, x), beispielsweise eine Schwellenwertbildung bei Null. Das resultierende Volumen einer ReLU-Schicht kann mit dem Volumen der Eingabe der ReLU-Schicht identisch sein.
  • Eine oder mehrere der Schichten können eine Pooling-Schicht enthalten. Die Pooling-Schicht kann entlang der räumlichen Dimensionen (z. B. Höhe und Breite) einen Downsampling-Vorgang durchführen, was zu einem kleineren Volumen führen kann als die Eingabe der Pooling-Schicht (z. B. 16 x 16 x 12 aus dem Eingangsvolumen von 32 x 32 x 12).
  • Eine oder mehrere der Schichten können eine oder mehrere vollständig verbundene Schichten enthalten. 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 Klassenbewertungen berechnen, und das resultierende Volumen kann 1 x 1 x Anzahl von Klassen sein. In einigen Beispielen kann das CNN eine vollständig verbundene Schicht(en) enthalten, sodass die Ausgabe einer oder mehrerer Schichten des CNN als Eingabe für eine vollständig verbundene Schicht(en) des CNN bereitgestellt werden kann. In einigen Beispielen können ein oder mehrere Faltungsströme von dem/den Machine-Learning-Modell(en) 110 implementiert werden, und einige oder alle Faltungsströme können eine bzw. mehrere vollständig verbundene Schicht(en) enthalten.
  • In einigen nicht-einschränkenden Ausführungsformen kann/können das/die Machine-Learning-Modell(e) 110 eine Reihe von Faltungs- und Max-Pooling-Schichten umfassen, um die Extraktion von Bildmerkmalen zu erleichtern, gefolgt von mehrskaligen erweiterten Faltungs- und Upsampling-Schichten, um die Extraktion globaler Kontextmerkmale zu erleichtern.
  • Obwohl Eingabeschichten, Faltungsschichten, Pooling-Schichten, ReLU-Schichten und vollständig verbundene Schichten im Hinblick auf das/die Machine-Learning-Modell(e) 110 hier diskutiert werden, ist dies nicht als Einschränkung gedacht. So können beispielsweise zusätzliche oder alternative Schichten in dem/den Machine-Learning-Modell(en) 110 verwendet werden, z. B. Normierungsschichten, SoftMax-Schichten und/oder andere Schichttypen.
  • In Ausführungsformen, in denen das/die Machine-Learning-Modell(e) 110 ein CNN umfasst, können je nach Ausführungsform unterschiedliche Ordnungen und Zahlen der Schichten des CNN verwendet werden. Mit anderen Worten, die Ordnungen und Anzahl der Schichten des/der Machine-Learning-Modell(e) 110 ist nicht auf eine Architektur beschränkt.
  • Außerdem können einige der Schichten Parameter enthalten (z. B. Gewichtungen und/oder Verzerrungen), wie die Faltungsschichten und die vollständig verbundenen Schichten, während andere dies nicht können, wie die ReLU-Schichten und Pooling-Schichten. In einigen Beispielen können die Parameter während der Ausbildung von dem/den Machine-Learning-Modell(en) 110 gelernt werden. Darüber hinaus können einige der Ebenen zusätzliche Hyperparameter enthalten (z. B. Lernrate, Fortschritt, Zeitabschnitte usw.), wie die Faltungsschichten, die vollständig verbundenen Schichten und die Pooling-Schichten, während andere Ebenen dies nicht können, wie die ReLU-Schichten. Die Parameter und Hyperparameter sind nicht einschränkend und können je nach Ausführungsform unterschiedlich sein.
  • Als ein Beispiel für die Ausgaben 112 und unter Bezugnahme auf 5, veranschaulicht 5 Objekterkennungen in einem Bild unter Verwendung eines neuronalen Netzwerks, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Bild 500 kann ein Bild darstellen, das von einem Weitwinkelsensor (z. B. einem Sensor mit einem Sichtfeld von mehr als 120 Grad, einer Fischaugenkamera, einer Weitwinkelkamera 870, einer Umgebungskamera 874, einer Einparkhilfekamera usw.) eines Fahrzeugs, wie dem Fahrzeug 800 der 8A-8D aufgenommen wurde. Das/die Machine-Learning-Modell(e) 110 von 1A, wie hierin beschrieben, kann/können verwendet werden, um Objekte 512, 514 und 516 im Bild 500 zu erkennen. Der stereografische Projektor 106 kann verwendet werden, um das Bild 500 auf eine 2D-Zielebene vor dem Anwenden der projizierten Bilddaten 108 von 1B auf das/die Machine-Learning-Modell(e) 110 anzuwenden. In einigen nicht einschränkenden Ausführungsformen können die Machine-Learning-Modell(e) 110 unter Verwendung von Bildern trainiert werden, die von Sensoren mit einem engeren Sichtfeld aufgenommen wurden (z. B. Sensoren mit Sichtfeldern von weniger als 120 Grad). Auf diese Weise können vorhandene Machine-Learning-Modelle genutzt werden, um Merkmale in Bildern zu erkennen, die mit einem anderen Sichtfeld als die Trainingsbilder aufgenommen wurden, ohne dass das/die Machine-Learning-Modell(e) 110 neu trainiert werden müssen. Ferner können infolge der angepassten Sichtfelder und/oder der Projektion Merkmale und/oder Objekte sogar in den verzerrten Bereichen der ursprünglichen Bilder vor der Sichtfeldanpassung und/oder Projektion erkannt werden - z. B. in den Bildbereichen, die den Objekten (z. B. Fahrzeugen) 512 und 516 entsprechen. Somit können die Teile des Originalbildes, die am stärksten verzerrt sind, aber wichtige Informationen darstellen - z. B. die Positionen der Objekte 512 und 516 -, weniger verzerrt sein, und die Teile des Originalbildes ohne Verzerrung (z. B. Teile, die dem Objekt 514 entsprechen) können stärker verzerrt sein, aber immer noch genügend Pixel aufweisen, die dafür repräsentativ sind, sodass das/die Machine-Learning-Modell(e) 110 die entsprechenden Ausgaben 112 immer noch genau vorhersagen können.
  • Wieder Bezug nehmend auf 1A kann in einigen Beispielen die Ausgabe(n) 112 einem Ausgabewandler 114 zugeführt werden, um die Ausgabe(n) 112 des/der Machine-Learning-Modells(e) 110 nachzubearbeiten. In einigen Beispielen können, sobald die Merkmale in der/den Ausgabe(n) 112 des/der Machine-Learning-Modells(e) 110 erkannt wurden, die den Merkmalen entsprechenden Orte in ihre jeweiligen Orte im Weltraum umgewandelt oder zugeordnet werden. Der Ausgabewandler 114 kann Kalibrierungsinformationen verwenden, die den Sensoren entsprechen (z. B. intrinsische und/oder extrinsische Parameter, wie ein Sensormodell, eine Position und Ausrichtung des Sensors auf dem Fahrzeug 800, Brennweite, Objektivverzerrung, Pose usw.), die die Bilddaten 102 erfasst haben, und/oder die Anpassungen (z. B. vertikale Drehung), die von der FOV-Einstellvorrichtung 104 während der Verarbeitung an den Bilddaten 102 vorgenommen wurden, um die Bild-Raum-Positionen von der/den Ausgabe(n) 112 in Welt-Raum-Positionen umzuwandeln. Dadurch kann die ursprüngliche Zuordnung der Bild-Raum-Positionen zu den Welt-Raum-Positionen aus den unverarbeiteten Sensordaten wiederhergestellt werden, um die Ausgabe(n) 112 des/der Machine-Learning-Modells(e) 110 für die Verwendung durch die Steuerkomponente(n) 116 des Fahrzeugs 800 beim Ausführen einer oder mehrerer Operationen vorzubereiten.
  • In einigen Ausführungsformen kann/können die Ausgabe(n) 112 des/der Machine-Learning-Modells(e) 110 dazu verwendet werden, Objekte genau zu verfolgen. Zum Beispiel können die Objekte oder Merkmale über das gesamte Sichtfeld genau verfolgt werden (z. B. beinhaltend der Teile der Bilder, die ohne stereografische Projektion am stärksten verzerrt und somit am schwierigsten zu prognostizieren sind), da die Merkmalserkennung an den Rändern der Bilder der Bilddaten 102 erhalten bleiben kann, die von Sensoren mit großem Sichtfeld aufgenommen wurden und ursprünglich verzerrt sind. Die Ausgabe(n) 112, die Merkmale und/oder Objekte in der Umgebung beinhalten, können in nachfolgenden Bildern der Bilddaten 102 verfolgt werden, und in einigen Beispielen kann eine zeitliche Analyse verwendet werden, um die Merkmale vom Zeitpunkt ihrer Erkennung an einem Rand des Sichtfelds bis zu einem anderen Rand des Sichtfelds zu verfolgen. Somit kann der Ausgabewandler 114, wenn die Verfolgung durchgeführt wird, die in die reale Welt umgewandelten Ausgaben der Objekte und/oder Merkmale verwenden, um eine entsprechende Orts- oder Bewegungshistorie zu erzeugen.
  • Sobald die Ausgabe(n) 112 bestimmt und/oder umgewandelt ist/sind, kann diese Information an die Steuerungskomponente(n) 116 des Systems weitergeleitet werden, um eine oder mehrere Operationen auszuführen. Zum Beispiel können, wenn es sich bei dem System um das hierin beschriebene Fahrzeug 800 handelt, die Ausgabe(n) 112 und/oder umgewandelte Ausgaben an eine oder mehrere Schichten eines Software-Stapels für autonomes Fahren (z. B. eine Planungsschicht, eine Steuerungsschicht, einen Weltmodell-Verwalter, eine Wahrnehmungsschicht, eine Hindernisvermeidungsschicht des Antriebspakets, eine Betätigungsschicht des Antriebspakets usw.) weitergeleitet werden, um eine geeignete Steuerungsentscheidung zu bestimmen. Somit kann die Steuerungskomponente(n) 116 Steuerungsentscheidungen treffen, die das Vorschlagen einer oder mehrerer Entscheidungen zur Wegplanung, Hindernisvermeidung und/oder Steuerung beinhalten können - z. B. wo anzuhalten ist, wie schnell zu fahren ist, welcher Weg zu verwenden ist, um die Umgebung sicher zu durchqueren, wo sich andere Fahrzeuge oder Fußgänger befinden können und/oder dergleichen. In jedem Beispiel und in Bezug auf autonomes oder halbautonomes Fahren können die Steuerungsentscheidungen alle Entscheidungen beinhalten, die einer Wahrnehmungsschicht des Antriebspakets, einer Weltmodell-Verwaltungsschicht des Antriebspakets, einer Planungsschicht des Antriebspakets, einer Steuerungsschicht des Antriebspakets, einer Hindernisvermeidungsschicht des Antriebspakets, einer Betätigungsschicht des Antriebspakets und/oder einer anderen Schicht, Eigenschaft oder Funktion eines Antriebspakets entsprechen. In einigen Beispielen kann der Prozess 100 auf einer beliebigen Anzahl von Machine-Learning-Modell(en) 110 ausgeführt werden, die innerhalb eines Systems arbeiten. Zum Beispiel kann ein autonomer Fahrsoftwarepaket für einen effektiven und sicheren Betrieb auf Hunderte oder Tausende von Machine-Learning-Modell(en) 110 angewiesen sein, und eine beliebige Anzahl davon kann dem Prozess 100 unterworfen werden, um einen sicheren und effektiven Betrieb zu gewährleisten, während Sensoren mit größeren Sichtfeldern (z. B. mehr als 120 Grad) genutzt werden. Somit kann der Prozess 100, wie hierin beschrieben, für eine beliebige Anzahl verschiedener Operationen, die einer oder mehreren Schichten des Antriebspakets entsprechen, und unter Verwendung einer beliebigen Anzahl von Machine-Learning-Modell(en) 110 getrennt ausgeführt werden. Als ein Beispiel kann eine erste Erkennung für Objekterkennungsoperationen in Bezug auf die Wahrnehmungsschicht des Antriebsstapels unter Verwendung eines ersten Machine-Learning-Modells bestimmt werden, und eine zweite Erkennung kann für die Pfadplanung in Bezug auf die Planungsschicht des Antriebsstapels unter Verwendung eines zweiten Machine-Learning-Modells bestimmt werden, das für die Regression auf Fahrspurlinien trainiert wurde.
  • Nun Bezug nehmend auf die 6 und 7 umfasst jeder Block der hierin beschriebenen Verfahren 600 und 700 einen Rechenprozess, der mit einer beliebigen Kombination aus Hardware, Firmware und/oder Software ausgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Die Verfahren 600 und 700 können auch als computerverwendbare Anweisungen dargestellt werden, die auf Computerspeichermedien gespeichert sind. Die Verfahren 600 und 700 können 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 zu einem anderen Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus werden die Verfahren 600 und 700 beispielhaft mit Bezug auf den Prozess 100 von 1A und das Fahrzeug 800 von den 8A-8D veranschaulicht. Diese Verfahren können jedoch zusätzlich oder alternativ von einem beliebigen System oder innerhalb eines beliebigen Prozesses oder einer beliebigen Kombination von Systemen und Prozessen ausgeführt werden, die die hierin beschriebenen Verfahren beinhalten, aber nicht darauf beschränkt sind.
  • Nun Bezug nehmend auf 6, ist 6 ein Flussdiagramm ist, das ein Verfahren 600 zum Erkennen von Merkmalen in Bildern zeigt, die von Sensoren mit breitem Sichtfeld erfasst wurden, wobei ein vorhandenes neuronales Netzwerk verwendet wird, das auf Bildern trainiert wurde, die mit Sensoren mit engerem Sichtfeld erfasst wurden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 600 beinhaltet bei Block B602 das Empfangen von Bilddaten, die ein Bild darstellen, das mit einem ersten Bildsensor mit einem Sichtfeld erzeugt wurde. Zum Beispiel können die Bilddaten 102 empfangen werden, wenn die Bilddaten 102 ein Bild darstellen, das von einem Sensor mit großem Sichtfeld (z. B. einem Sensor mit einem Sichtfeld von 120 Grad oder mehr) aufgenommen wurde.
  • Das Verfahren 600 beinhaltet bei Block B604 das Anwenden der Bilddaten auf einen stereografischen Projektionsalgorithmus, um projizierte Bilddaten zu erzeugen, die ein projiziertes Bild darstellen. Zum Beispiel können die Bilddaten 102 auf den stereografischen Projektor 106 angewendet werden, der einen stereografischen Projektionsalgorithmus ausführt, um die projizierten Bilddaten 108 zu erzeugen, die für ein projiziertes Bild repräsentativ sind, das durch Projizieren von Pixeln der Bilddaten 102 auf eine 2D-Projektions- oder Zielebene erzeugt wird.
  • Das Verfahren 600 beinhaltet bei Block B606 das Anwenden der projizierten Bilddaten auf ein neuronales Netzwerk, wobei das neuronale Netzwerk so trainiert wird, dass es Merkmale erkennt, die durch Trainingsbilddaten repräsentiert werden, die für Bilder repräsentativ sind, die unter Verwendung eines oder mehrerer zweiter Bildsensoren erzeugt wurden, deren Sichtfelder kleiner als das Sichtfeld sind. Zum Beispiel können die projizierten Bilddaten 108 auf das/die Machine-Learning-Modell(e) 110 angewendet werden, das/die darauf trainiert ist/sind, Merkmale und/oder Objekte zu erkennen und/oder zu klassifizieren, die durch Trainingsbilddaten repräsentiert werden, die für Bilder repräsentativ sind, die unter Verwendung von Sensoren mit einem engeren Sichtfeld (z. B. Sensoren mit Sichtfeldern von weniger als 120 Grad) erzeugt wurden.
  • Das Verfahren 600 beinhaltet bei Block B608 das Berechnen, unter Verwendung des neuronalen Netzwerks und zumindest teilweise basierend auf den projizierten Bilddaten, von Daten, die repräsentativ für Merkmalserkennungen sind, die einem oder mehreren Merkmalen entsprechen. Zum Beispiel kann/können das/die Machine-Learning-Modell(e) 110 basierend auf den projizierten Bilddaten 108 die Ausgabe(n) 112 berechnen. Die Ausgabe(n) 112 kann/können Daten beinhalten, die für Merkmals- und/oder Objekterkennungen repräsentativ sind, die einem oder mehreren Merkmalen in den projizierten Bilddaten 108 entsprechen.
  • Nun Bezug nehmend auf 7, ist 7 ein Flussdiagramm, das ein Verfahren 700 zum Erkennen von Merkmalen in Bildern veranschaulicht, die von Sensoren mit großem Sichtfeld erfasst werden, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 700 beinhaltet bei Block B702 das Empfangen von Bilddaten, die ein Bild darstellen, das mit einem ersten Bildsensor mit einem Sichtfeld von mehr als oder gleich 120 Grad erzeugt wurde. Zum Beispiel können die Bilddaten 102 empfangen werden, wenn die Bilddaten ein Bild darstellen, das von einem Sensor mit großem Sichtfeld (z. B. einem Sensor mit einem Sichtfeld von 120 Grad oder mehr) aufgenommen wurde.
  • Das Verfahren 700 beinhaltet bei Block B704 das virtuelle Einstellen des Sichtfelds des ersten Bildsensors. Zum Beispiel kann der FOV-Einsteller 104 das Sichtfeld des Bildsensors virtuell einstellen, der zur Erfassung der Bilddaten 102 verwendet wird.
  • Das Verfahren 700 beinhaltet bei Block B706 das Erzeugen, zumindest teilweise basierend auf den Bilddaten, aktualisierter Bilddaten, die dem virtuell eingestellten Sichtfeld entsprechen. Zum Beispiel können aktualisierte Bilddaten durch den FOV-Einsteller 104 erzeugt werden, die dem virtuell eingestellten Sichtfeld entsprechen.
  • Das Verfahren 700 beinhaltet bei Block B708 das Anwenden der aktualisierten Bilddaten auf einen stereografischen Projektionsalgorithmus, um projizierte Bilddaten zu erzeugen, die ein projiziertes Bild darstellen. Zum Beispiel können die aktualisierten Bilddaten auf den stereografischen Projektor 106 angewendet werden, der einen stereografischen Projektionsalgorithmus ausführt, um projizierte Bilddaten 108 zu erzeugen, die für ein projiziertes Bild repräsentativ sind, das durch Projizieren von Pixeln der aktualisierten Bilddaten auf eine 2D-Projektions- oder Zielebene erzeugt wird.
  • Das Verfahren 700 beinhaltet bei Block B710 das Anwenden der projizierten Bilddaten auf ein Machine-Learning-Modell oder einen Computervision-Algorithmus. Zum Beispiel können die projizierten Bilddaten 108 auf das/die Machine-Learning-Modell(e) 110 angewendet werden.
  • Das Verfahren 700 beinhaltet bei Block 712 das Berechnen von Daten, die repräsentativ für Merkmalserkennungen sind, die einem oder mehreren Merkmalen entsprechen, unter Verwendung des Machine-Learning-Modells oder des Computervision-Algorithmus und zumindest zum Teil basierend auf den projizierten Bilddaten. Zum Beispiel kann/können das/die Machine-Learning-Modell(e) 110 basierend auf den projizierten Bilddaten 108 die Ausgabe(n) 112 berechnen. Die Ausgabe(n) 112 kann/können Daten beinhalten, die für Merkmals- und/oder Objekterkennungen oder Klassifizierungen repräsentativ sind, die einem oder mehreren Merkmalen und/oder Objekten entsprechen, die durch die projizierten Bilddaten 108 dargestellt werden.
  • BEISPIEL FÜR EIN AUTONOMES FAHRZEUG
  • 8A ist eine Darstellung eines beispielhaften autonomen Fahrzeugs 800, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 800 (alternativ auch als „Fahrzeug 800“ bezeichnet) kann ohne Einschränkung ein Personenfahrzeug umfassen, z. B. ein Auto, einen Lkw, einen Bus, ein Ersthelfer-Fahrzeug, ein Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, einen Feuerwehrwagen, ein Polizeifahrzeug, einen Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne und/oder ein anderes Fahrzeug (z. B. ein unbemanntes und/oder eines, dass einen oder mehrere Passagiere unterbringt). Autonome Fahrzeuge werden in der Regel in Form von Automatisierungsstufen beschrieben, die von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US-Verkehrsministeriums, und der Society of Automotive Engineers (SAE) definiert werden. „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, sowie frühere und zukünftige Versionen dieses Standards). Das Fahrzeug 800 kann in Übereinstimmung mit einer oder mehreren der Stufen 3 - 5 der autonomen Fahrstufen funktionstüchtig sein. So kann das Fahrzeug 800 beispielsweise je nach Ausführungsform eine bedingte Automatisierung (Level 3), eine hohe Automatisierung (Level 4) und/oder eine vollständige Automatisierung (Level 5) unterstützen.
  • Das Fahrzeug 800 kann Komponenten wie Chassis, Karosserie, Räder (z. B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs umfassen. Das Fahrzeug 800 kann ein Antriebssystem 850 enthalten, wie z. B. einen Verbrennungsmotor, ein Hybrid-Elektro-Antriebsmaschine, einen vollelektrischen Motor und/oder einen anderen Antriebstyp. Das Antriebssystem 850 kann an einen Antriebsstrang des Fahrzeugs 800 angeschlossen werden, der ein Getriebe enthalten kann, um den Antrieb des Fahrzeugs 800 zu ermöglichen. Das Antriebssystem 850 kann als Reaktion auf den Empfang von Signalen des Gaspedals/Gashebel 852 gesteuert werden.
  • Ein Lenksystem 854, das möglicherweise ein Lenkrad enthält, kann verwendet werden, um das Fahrzeug 800 zu lenken (z. B. entlang eines gewünschten Wegs oder Route), wenn das Antriebssystem 850 in Betrieb ist (z. B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 854 kann Signale von einem Lenkaktor 856 empfangen. Das Lenkrad kann optional sein, um die volle Funktionalität der Automatisierung (Level 5) zu gewährleisten.
  • Das Bremssensorsystem 846 kann zur Betätigung der Fahrzeugbremsen verwendet werden, wenn Signale von den Bremszylindern 848 und/oder Bremssensoren empfangen werden.
  • Controller 836, die ein oder mehrere System-on-Chips (SoCs) 804 (8C) und/oder GPUs umfassen, können Signale (z. B. repräsentativ für Befehle) an eine oder mehrere Komponenten und/oder Systeme des Fahrzeugs 800 senden. Beispielsweise kann der Controller Signale senden, um die Fahrzeugbremse über einen oder mehrere Bremszylinder 848 zu betätigen, das Lenksystem 854 über einen oder mehrere Lenkaktoren 856 zu bedienen, um das Antriebssystem 850 über eines oder mehrere Gaspedale/Gashebel 852 zu bedienen. Der Controller 836 kann ein oder mehrere Onboard- (z. B. integrierte) Rechnervorrichtungen (z. B. Supercomputer) umfassen, 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 zu unterstützen 800. Der Controller 836 kann einen ersten Controller 836 für autonome Fahrfunktionen, einen zweiten Controller 836 für funktionale Sicherheitsfunktionen, einen dritten Controller 836 für die Funktionalität der künstlichen Intelligenz (z. B. Computervision), einen vierten Controller 836 für Infotainment-Funktionalität, einen fünften Controller 836 für Redundanz im Notfall und/oder andere Controller enthalten. In einigen Beispielen kann ein einzelner Controller 836 zwei oder mehr der oben genannten Funktionalitäten verarbeiten, zwei oder mehr Controller 836 können eine einzelne Funktionalität und/oder eine beliebige Kombination davon verarbeiten.
  • Der Controller 836 kann die Signale zur Steuerung einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 800 als Reaktion auf Sensordaten liefern, die von einem oder mehreren Sensoren (z. B. Sensoreingaben) empfangen werden. Die Sensordaten können beispielsweise und ohne Einschränkung von globalen Satellitennavigationssystem-Sensoren 858 (z. B. Global Positioning System Sensor(en)), RADAR-Sensor(en) 860, Ultraschallsensor(en) 862, LIDAR-Sensor(en) 864, Trägheitsmesseinheits-Ssensor(en) (IMU) 866 (z. B. Beschleunigungsmesser(e), Gyroskop(e), Magnetkompass(e), Magnetometer usw.), Mikrofon(en) 896, Stereokameras 868, Weitwinkelkameras 870 (z. B. Fischaugenkameras), Infrarotkameras 872, Surround-Kameras 874 (z. B. 360-Grad-Kameras), Long-Range-Kameras und/oder Mid-Range-Kameras 898, Geschwindigkeitssensor(en) 844 (z. B. zur Messung der Fahrzeuggeschwindigkeit 800), Vibrationssensor(en) 842, Lenksensor(en) 840, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 846) und/oder anderen Sensortypen empfangen werden.
  • Eine oder mehrere der Controller 836 können Eingaben (z. B. dargestellt durch Eingabedaten) von einem Kombiinstrument 832 des Fahrzeugs 800 empfangen und Ausgaben (z. B. dargestellt durch Ausgabedaten, Anzeigedaten usw.) über eine Mensch-Maschine-Schnittstelle (human-machine interface - HMI)-Anzeige 834, einen akustischen Signalgeber, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 800 empfangen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Geschwindigkeit, Zeit, Kartendaten (z. B. die HD-Karte 822 aus 8C), Positionsdaten (z. B. die Position des Fahrzeugs 800, z. B. auf einer Karte), Richtung, Position anderer Fahrzeuge (z. B. ein Belegungsraster), Informationen über Objekte und den Status von Objekten, wie sie von den Controllern 836 wahrgenommen werden usw. enthalten, auf dem HMI-Display 834 können beispielsweise Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. Straßenschild, Warnschild, Ampelschaltungen usw.) und/oder Informationen über Fahrmanöver angezeigt werden, die das Fahrzeug unternommen hat, gerade macht oder durchführen wird (z. B. jetzt Fahrbahnwechsel, Ausfahrt 34B in zwei Meilen nehmen usw.).
  • Das Fahrzeug 800 verfügt außerdem über eine Netzwerkschnittstelle 824, die eine oder mehrere Wireless-Antennen 826 und/oder Modems zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Die Netzwerkschnittstelle 824 kann beispielsweise über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. kommunizieren. Die Wireless-Antenne(n) 826 kann/können auch die Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeugen, mobilen Geräten usw.) über lokale Netzwerke wie Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder Low-Power-Wide-Area-Networks (LPWANs) wie LoRaWAN, SigFox usw. ermöglichen.
  • 8B ist ein Beispiel für Kamerapositionen und Sichtfelder für das beispielhafte autonome Fahrzeug 800 aus 8A, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die jeweiligen Sichtfelder sind eine beispielhafte Ausführungsform und nicht als einschränkend gedacht. Beispielsweise können zusätzliche und/oder alternative Kameras enthalten sein und/oder die Kameras können sich an verschiedenen Positionen im Fahrzeug 800 befinden.
  • Die Kameratypen für die Kameras können, sind aber nicht darauf beschränkt, unter anderem Digitalkameras umfassen, die für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 800 angepasst werden können.. Die Kamera(s) kann/können mit der Sicherheitsstufe B (Automotive Safety Integrity Level, ASIL) und/oder mit einem anderen ASIL betrieben werden. Die Kameratypen können je nach Ausführungsart jede Bildaufnahmerate wie 60 Bilder pro Sekunde (frame per second - fps), 820 fps, 240 fps usw. unterstützen. Die Kameras können Rolling Shutter, Global Shutter, eine andere Art von Shutter oder eine Kombination davon verwenden. In einigen Beispielen kann das Farbfilter-Array ein rot-klar-klar-klar-Farbfilter-Array (red clear clear clear - RCCC), ein rot-klar-klar-blau-Farbfilter-Array (red clear clear blue - RCCB), ein rot-blau-grün-klar-Farbfilter-Array (red blue green clear - RBGC), ein Foveon-X3-Farbfilter-Array, ein Bayer-Sensoren-(RGGB) Farbfilter-Array, ein Monochrom-Sensor-Farbfilter-Array und/oder ein anderes Farbfilter-Array enthalten. In einigen Ausführungsformen können Clear-Pixel-Kameras, wie Kameras mit einem RCCC, einem RCCB und/oder einem RBGC-Farbfilter-Array, eingesetzt werden, um die Lichtempfindlichkeit zu erhöhen.
  • In einigen Beispielen können eine oder mehrere Kameras zur Ausführung von Fahrerassistenzsystem-Funktionen (Advanced Driver Assistance Systems - ADAS) verwendet werden (z. B. als Teil eines redundanten oder ausfallsicheren Designs). Beispielsweise kann eine Multifunktions-Monokamera installiert werden, die Funktionen wie Spurhalteassistent, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bietet. Eine oder mehrere Kameras (z. B. alle Kameras) können Bilddaten (z. B. Video) gleichzeitig aufzeichnen und bereitstellen.
  • Eine oder mehrere Kameras können in einer Montageeinheit montiert werden, z. B. in einer kundenspezifischen (3-D-gedruckten) Baugruppe, um Streulicht und Reflexionen aus dem Fahrzeug zu entfernen (z. B. Reflexionen des Armaturenbretts, die in den Windschutzscheibenspiegeln reflektiert werden), was die Aufnahmefähigkeit der Kamera beeinträchtigen kann. In Bezug auf die Montage von Seitenspiegel-Baugruppen können die Seitenpiegel-Baugruppen kundenspezifisch 3-D-gedruckt werden, so dass die Montageplatte der Kamera der Form des Seitenspiegels entspricht. In einigen Beispielen kann/können die Kamera(s) in den Seitenspiegel integriert werden. Bei Kameras mit Seitenansicht kann/können die Kamera8s) auch in die vier Säulen an jeder Ecke der Kabine integriert werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung vor dem Fahrzeug 800 umfasst (z. B. Frontameras), können für die Surround-Ansicht verwendet werden, um nach vorne gerichtete Wege und Hindernisse zu identifizieren und dabei zu helfen, mithilfe eines oder mehrerer Controller 836 und/oder Steuer-SoCs, die wichtige Informationen zur Generierung eines Belegungsraster und/oder zur Bestimmung der bevorzugten Fahrzeugwege liefern. Frontkameras können verwendet werden, um viele der gleichen ADAS-Funktionen durchzuführen wie LIDAR, einschließlich Notbremsung, Fußgängererkennung und Kollisionsvermeidung. Frontkameras können auch für ADAS-Funktionen und -Systeme wie Spurhalteassistenten (Lane Departure Warnings - LDW), autonome Geschwindigkeitsregelung (Autonomous Cruise Control - ACC) und/oder andere Funktionen wie die Verkehrszeichenerkennung verwendet werden.
  • Eine Vielzahl von Kameras können in einer nach vorne gerichteten Konfiguration verwendet werden, darunter beispielsweise eine monokulare Kameraplattform, die einen CMOS-Farbbildgeber (Komplementärer Metalloxid-Halbleiter) (Complementary Metal Oxide Semiconductor - CMOS) umfasst. Ein weiteres Beispiel sind/ist eine Weitwinkelkamera(s) 870, die verwendet werden können/kann, um Objekte wahrzunehmen, die aus der Peripherie in den Blick kommen (z. B. Fußgänger, Kreuzungsverkehr oder Fahrräder). Obwohl nur eine Weitwinkelkamera in 8B dargestellt ist, kann es eine beliebige Anzahl von Weitwinkelkameras 870 auf dem Fahrzeug 800 geben. Zusätzlich kann eine/können Long-Range-Kamera(s) 898 (z. B. ein Langbild-Stereokamerapaar) für die tiefenbasierte Objekterkennung verwendet werden, insbesondere für Objekte, für die noch kein neuronales Netzwerk ausgebildet wurde. Die Long-Range-Kamera(s) 898 kann auch zur Objekterkennung und -klassifizierung sowie zur einfachen Objektverfolgung verwendet werden.
  • Eine oder mehrere Stereokameras 868 können auch in einer nach vorne gerichteten Konfiguration enthalten sein. Die Stereokamera(s) 868 kann/können eine integrierte Steuereinheit mit einer skalierbaren Verarbeitungseinheit enthalten, 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 3-D-Karte der Umgebung des Fahrzeugs zu erzeugen, einschließlich einer Entfernungsschätzung für alle Punkte im Bild. (Eine) alternative Stereokamera(s) 868 kann/können einen/mehrere kompakte Stereo-Vision-Sensor(en) enthalten, der/die zwei Kameraobjektive (jeweils eines links und rechts) und einen Bildverarbeitungs-Chip umfassen kann/können, der den Abstand vom Fahrzeug zum Zielobjekt misst und die generierten Informationen (z. B. Metadaten) verwendet, um die autonomen Notbremsfunktion und den Spurhalteassistent zu aktivieren. Andere Stereokameratypen 868 können zusätzlich oder alternativ zu den hier beschriebenen verwendet werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung an der Seite des Fahrzeugs 800 umfasst (z. B. Seitenansicht-Kameras), können für die Surround-Ansicht verwendet werden und Informationen liefern, um das Belegungsraster zu erzeugen und zu aktualisieren sowie Seitenkollisionswarnungen zu erzeugen. Zum Beispiel kann/können Surround-Kamera(s) 874 (z. B. vier Surround-Kameras 874, wie in 8B dargestellt) auf dem Fahrzeug 800 positioniert werden. Die Surround-Kamera(s) 874 kann/können Weitwinkelkameras 870, Fischaugenkameras, 360-Grad-Kameras und/oder ähnliche Kameras umfassen. Zum Beispiel können vier Fischaugen-Kameras vorne, hinten und an den Seiten des Fahrzeugs positioniert werden. In einer alternativen Anordnung kann das Fahrzeug drei Surround-Kameras 874 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kameras (z. B. eine nach vorne gerichtete Kamera) als vierte Surround-View-Kamera nutzen.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung im Heck des Fahrzeugs 800 umfasst (z. B. Rückfahrkameras), können zur Parkhilfe, zur Surround-Ansicht, zur Warnung vor Heckkollisionen sowie zur Erstellung und Aktualisierung des Belegungsrasters verwendet werden. Es kann eine Vielzahl von Kameras verwendet werden, einschließlich, aber nicht beschränkt auf, Kameras, die auch als Frontkameras geeignet sind (z. B. Long-Range und/oder Mid-Range-Kameras 898, Stereokameras 868, Infrarotkameras 872 usw.), wie hier beschrieben.
  • 8C ist ein Blockdiagramm einer Beispiel-Systemarchitektur für das beispielhafte autonome Fahrzeug 800 aus 8A, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. Es versteht sich, dass diese und andere hierin beschriebene Anordnungen nur als Beispiele angegeben sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Ordnungen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der gezeigten verwendet werden, und einige Elemente können ganz weggelassen werden. Darüber hinaus sind viele der hier beschriebenen Elemente funktionale Einheiten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jeder geeigneten Position implementiert werden können. Verschiedene in diesem Dokument beschriebene Funktionen, die von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt.
  • Alle Komponenten, Merkmale und Systeme des Fahrzeugs 800 in 8C sind als über Bus 802 verbunden dargestellt. Der Bus 802 kann eine Controller Area Network-Datenschnittstelle (CAN) umfassen (alternativ auch hier als „CAN-Bus“ bezeichnet). Ein CAN kann ein Netzwerk innerhalb des Fahrzeugs 800 sein, das zur Unterstützung der Steuerung verschiedener Merkmale und Funktionalitäten des Fahrzeugs 800 verwendet wird, wie z. B. Betätigung der Bremsen, Beschleunigung, Bremsen, Lenken, Scheibenwischer usw. Ein CAN-Bus kann konfiguriert, dass er Dutzende oder sogar Hunderte von Knoten hat, die jeweils eine eigene eindeutige Kennung haben (z. B. eine CAN-ID). Der CAN-Bus kann gelesen werden, um den Lenkradwinkel, die Fahrgeschwindigkeit, die Motordrehzahl pro Minute (revolutions per minute - RPM), die Tastenpositionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. Der CAN-Bus ist möglicherweise ASIL B-konform.
  • Obwohl der Bus 802 hier als CAN-Bus beschrieben wird, soll dies nicht einschränkend sein. Beispielsweise können zusätzlich zu oder alternativ zum CAN-Bus, FlexRay und/oder Ethernet verwendet werden. Auch dies soll, obwohl eine einzelne Leitung verwendet wird, um den Bus 802 darzustellen, nicht einschränkend sein. Beispielsweise kann es eine beliebige Anzahl von Bussen 802 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Bustypen mit einem anderen Protokoll umfassen können. In einigen Beispielen können zwei oder mehr Busse 802 verwendet werden, um verschiedene Funktionen auszuführen und/oder um Redundanz zu gewährleisten. Beispielsweise kann ein erster Bus 802 zur Kollisionsvermeidung und ein zweiter Bus 802 zur Ansteuerung verwendet werden. In jedem Beispiel kann jeder Bus 802 mit einer beliebigen Komponente des Fahrzeugs 800 kommunizieren, und zwei oder mehr Busse 802 können mit denselben Komponenten kommunizieren. In einigen Beispielen kann jeder SoC 804, jeder Controller 836 und/oder jeder Computer im Fahrzeug auf dieselben Eingabedaten zugreifen (z. B. Eingaben von Sensoren des Fahrzeugs 800) und an einen gemeinsamen Bus, wie den CAN-Bus, angeschlossen werden.
  • Das Fahrzeug 800 kann einen oder mehrere Controller 836 umfassen, wie hier in Bezug auf 8A beschrieben Der Controller 836 kann für eine Vielzahl von Funktionen verwendet werden. Der Controller 836 kann an eine der verschiedenen anderen Komponenten und Systeme des Fahrzeugs 800 gekoppelt werden und kann/können zur Steuerung des Fahrzeugs 800, der künstlichen Intelligenz des Fahrzeugs 800, des Infotainments für das Fahrzeug 800 und/oder dergleichen verwendet werden.
  • Das Fahrzeug 800 kann ein Ein-Chip-System (system on a chip - SoC) 804 umfassen. Das SoC 804 kann CPUs 806, GPUs 808, Prozessor(en) 810, Caches 812, Accelerators 814, Datenspeicher 816 und/oder andere Komponenten und Funktionen, die nicht abgebildet sind, umfassen. Das SoC 804 kann zur Steuerung des Fahrzeugs 800 in einer Vielzahl von Plattformen und Systemen verwendet werden. Zum Beispiel kann das SoC 804 in einem System (z. B. dem System des Fahrzeugs 800) mit einer HD-Karte 822 kombiniert werden, die Kartenaktualisierungen und/oder Aktualisierungen über eine Netzwerkschnittstelle 824 von einem oder mehreren Servern (z. B. Server(n) 878 aus 8D) bezieht.
  • Die CPUs 806 kann/können einen CPU-Cluster oder einen CPU-Komplex enthalten (hier alternativ auch als „CCPLEX“ bezeichnet). Die CPUs 806 kann/können mehrere Kerne und/oder L2-Caches enthalten. In einigen Ausführungsformen kann/können die CPUs 806 beispielsweise acht Kerne in einer kohärenten Multi-Prozessor-Konfiguration enthalten. In einigen Ausführungsformen kann/können die CPUs 806 vier Dual-Core-Cluster umfassen, wobei jeder Cluster über einen dedizierten L2-Cache verfügt (z. B. einen 2 MB L2-Cache). Die CPUs 806 (z. B. CCPLEX) kann/können konfiguriert sein, um den gleichzeitigen Clusterbetrieb zu unterstützen, so dass eine beliebige Kombination des/der CPUs 806-Cluster zu einem bestimmten Zeitpunkt aktiv sein kann/können.
  • Die CPUs 806 kann/können Energieverwaltungsfunktionen implementieren, die eine oder mehrere der folgenden Merkmale umfassen: einzelne Hardwareblöcke können automatisch im Leerlauf taktgesteuert werden, um dynamische Energie zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen keine aktiven Anweisungen ausführt; jeder Kern kann unabhängig leistungsgesteuert werden; jeder Kern-Cluster kann unabhängig taktgesteuert werden, wenn alle Kerne taktgesteuert oder leistungsgesteuert sind; und/oder jeder Kern-Cluster kann unabhängig leistungsgesteuert werden, wenn alle Kerne leistungsgesteuert sind. Die CPUs 806 kann/können einen erweiterten Algorithmus zur Verwaltung von Energiezuständen implementieren, bei dem zulässige Energiezustände und erwartete Aktivierungszeiten angegeben werden und der Hardware-/Mikrocode den besten Energiezustand für den Kern, Cluster und CCPLEX bestimmt. Die Prozessorkerne können vereinfachte Eingabesequenzen für den Energiezustand in der Software unterstützen, wobei die Arbeit auf Microcode ausgelagert wird.
  • Die GPUs 808 kann/können eine integrierte GPU enthalten (hier alternativ auch als „iGPU“ bezeichnet). Die GPUs 808 kann/können programmierbar sein und für parallele Workloads effizient sein. Die GPUs 808 kann/können in einigen Beispielen einen erweiterten Tensor-Befehlssatz verwenden. Die GPUs 808 kann/können einen oder mehrere Streaming-Mikroprozessoren enthalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache umfassen kann (z. B. einen L1-Cache mit mindestens 96 KB Speicherkapazität) und zwei oder mehr der Streaming-Mikroprozessoren sich einen L2-Cache teilen können (z. B. einen L2-Cache mit einer Speicherkapazität von 512 KB). In einigen Ausführungsformen kann/können die GPUs 808 mindestens acht Streaming-Mikroprozessoren enthalten. Die GPUs 808 kann/können Programmierschnittstellen für Computeranwendungen (application programming interface - API) verwenden. Außerdem kann/können die GPUs 808 eine oder mehrere parallele Rechnerplattformen und/oder Programmiermodelle (z. B. NVIDIA CUDA) verwenden.
  • Die GPUs 808 kann/können für die beste Leistung im Automobil- und Embedded-Anwendungsfall leistungsoptimiert sein. Beispielsweise kann/können die GPUs 808 auf einem Fin-Feldeffekttransistor (Fin field-effect transistor - FinFET) hergestellt werden. Dies soll jedoch nicht einschränkend sein und die GPUs 808 kann/können mithilfe anderer Halbleiterfertigungsprozesse hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Reihe von Prozessorkernen mit gemischter Präzision enthalten, die in mehrere Blöcke unterteilt sind. So können beispielsweise 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke partitioniert werden. In einem solchen Beispiel kann jedem Prozessorblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA-TENSOR-Kerne mit gemischter Präzision für Deep-Learning-Matrixarithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Dispatch-Einheit und/oder eine 64-KB-Registrierungsdatei zugewiesen werden. Darüber hinaus können die Streaming-Mikroprozessoren unabhängige parallele Integer- und Gleitkomma-Datenpfade umfassen, um eine effiziente Ausführung von Workloads mit einer Mischung aus Berechnungen und Adressierungsberechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können über eine unabhängige Thread-Planung verfügen, um eine feinere Synchronisierung und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Datencache und eine gemeinsam genutzte Speichereinheit umfassen, um die Leistung zu verbessern und die Programmierung zu vereinfachen.
  • Die GPUs 808 kann/können einen Speicher mit hoher Bandbreite (High Bandwidth Memory - HBM) und/oder ein 16 GB HBM2-Speichersubsystem enthalten, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/s zu bieten. In einigen Beispielen kann zusätzlich oder alternativ vom HBM-Speicher ein synchroner Grafik-Random-Access-Speicher (SGRAM) verwendet werden, z. B. ein synchroner Grafik-Random-Access-Speicher (GDDR5) mit doppelter Datenrate vom Typ fünf.
  • Die GPUs 808 kann/können eine Unified-Memory-Technologie einschließlich Zugriffsprozessoren enthalten, um eine genauere Migration von Speicherseiten auf den Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz für Speicherbereiche, die zwischen Prozessoren gemeinsam genutzt werden, verbessert wird. In einigen Beispielen kann die Unterstützung von Adress Translation Services (ATS) verwendet werden, um der/den GPUs 808 den direkten Zugriff auf die CPUs 806-Seitentabellen zu ermöglichen. In solchen Beispielen kann eine Anfrage zur Adressübersetzung an die CPUs 806 gesendet werden, wenn die Speicherverwaltungseinheit (memory management unit - MMU) der GPUs 808 einen Fehler aufweist. Als Reaktion darauf sucht/suchen die CPUs 806 möglicherweise in ihren Seitentabellen nach dem Virtuellen-zu-Physisch-Mapping für die Adresse und überträgt die Übersetzung zurück an die GPUs 808. Daher kann die Unified-Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher der CPUs 806 und der GPUs 808 ermöglichen, wodurch die GPUs 808-Programmierung und die Portierung von Anwendungen auf die GPUs 808 vereinfacht wird.
  • Darüber hinaus kann/können die GPUs 808 einen Zugriffszähler enthalten, der die Zugriffshäufigkeit der GPUs 808 auf den Speicher anderer Prozessoren nachverfolgen 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 SoC 804 kann eine beliebige Anzahl von Caches 812 enthalten, einschließlich der hier beschriebenen. Der Caches 812 kann beispielsweise einen L3-Cache enthalten, der sowohl der/den CPUs 806 als auch der/den GPUs 808 zur Verfügung steht (z. B. der sowohl an die CPUs 806 als auch die GPUs 808 angeschlossen ist). Der/die Caches 812 kann/können einen Write-Back-Cache enthalten, der den Status von Zeilen nachverfolgen kann, z. B. durch Verwendung eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr umfassen, wobei jedoch kleinere Cachegrößen verwendet werden können.
  • Die SoCs 804 können eine arithmetische Logikeinheiten (arithmetic logic units - ALUs) enthalten, die bei der Verarbeitung in Bezug auf eine der verschiedenen Aufgaben oder Operationen des Fahrzeugs 800 genutzt werden kann - z. B. bei der Verarbeitung von DNNs. Darüber hinaus können die SoCs 804 eine Gleitkommaeinheiten (floating point units - FPUs) - oder andere mathematische Coprozessor- oder numerische Coprozessor-Typen - für die Durchführung mathematischer Operationen im System enthalten. Zum Beispiel können die SoCs 104 ein oder mehrere FPUs enthalten, die als Ausführungseinheiten innerhalb einer CPU 806 und/oder GPU 808 integriert sind.
  • Das SoC 804 kann einen oder mehrere Beschleuniger 814 enthalten (z. B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon). Beispielsweise kann das SoC 804 einen Hardware-Beschleunigungscluster enthalten, der optimierte Hardware-Beschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. Der große On-Chip-Speicher (z. B. 4 MB SRAM) kann es dem Hardware-Beschleunigungscluster ermöglichen, neuronale Netzwerke und andere Berechnungen zu beschleunigen. Der Hardware-Beschleunigungscluster kann verwendet werden, um die GPUs 808 zu ergänzen und einige der Aufgaben der GPUs 808 zu entlasten (z. B. um mehr Zyklen der GPUs 808 für die Durchführung anderer Aufgaben freizumachen). Als Beispiel können die Beschleuniger 814 für gezielte Workloads (z. B. Wahrnehmung, konvolutionale neuronale Netzwerke (CNNs) usw.) verwendet werden, die stabil genug sind, um für eine Beschleunigung geeignet zu sein. Der hier verwendete Begriff „CNN“ kann alle Arten von CNNs umfassen, einschließlich regionenbasierter oder regionaler konvolutionaler neuronaler Netzwerke (regional convolutional neural networks - RCNNs) und schneller RCNNs (z. B. wie zur Objekterkennung verwendet).
  • Der/die Beschleuniger 814 (z. B. der Hardware-Beschleunigungscluster) kann/können einen/mehrere Deep-Learning-Beschleuniger (deep learning accelerator - DLA) enthalten. Der/die DLAs kann/können eine oder mehrere Tensor-Processing-Units (TPUs) enthalten, die konfiguriert sein können, um zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferenzierungen bereitzustellen. Die TPUs können Beschleuniger sein, die für die Ausführung von Bildverarbeitungsfunktionen konfiguriert und optimiert sind (z. B. für CNNs, RCNNs usw.). Der/die DLAs kann/können außerdem für einen bestimmten Satz neuronaler Netzwerktypen und Gleitkommaoperationen sowie für Inferenzierungen optimiert werden. Das Design des/der DLAs bietet möglicherweise mehr Leistung pro Millimeter als eine Universal-GPU und übertrifft die Leistung einer CPU erheblich. Die TPUs können mehrere Funktionen ausführen, einschließlich einer eininstanzigen Faltungsfunktion, die z. B. INT8, INT16 und FP16-Datentypen für Merkmale und Gewichte sowie Post-Prozessor-Funktionen.
  • Der/die DLAs können schnell und effizient neuronale Netzwerke, insbesondere CNNs, auf bearbeiteten oder unbearbeiteten Daten für eine Vielzahl von Funktionen ausführen, einschließlich beispielsweise und ohne Einschränkung: Ein CNN zur Objektidentifizierung und -erkennung mithilfe von Daten von Kamerasensoren; ein CNN für die Abstandsabschätzung mit Daten von Kamerasensoren, ein CNN für die Erkennung und Identifizierung von Rettungsfahrzeugen und Erkennung mit Daten von Mikrofonen; ein CNN für die Gesichtserkennung und die Identifizierung von Fahrzeugbesitzern durch Verwendung von Daten von Kamerasensoren und/oder ein CNN für Sicherheits- und/oder sicherheitsrelevante Ereignisse.
  • Der/die DLAs kann/können jede Funktion der GPUs 808 ausführen, und durch die Verwendung eines Inferenzbeschleunigers kann ein Entwickler beispielsweise für jede Funktion entweder den/die DLAs oder die GPUs 808 als Ziel verwenden. So kann der Designer beispielsweise die Verarbeitung von CNNs und Gleitkommaoperationen auf den/die DLAs konzentrieren und andere Funktionen der/den GPUs 808 und/oder anderen Beschleunigern 814 überlassen.
  • Der/die Beschleuniger 814 (z. B. der Hardware-Beschleunigungscluster) können einen/mehrere programmierbare(n) Bildverarbeitungsbeschleuniger (programmable vision accelerator - PVA) umfassen, der/die in diesem Dokument alternativ als Bildverarbeitungsbeschleuniger bezeichnet werden kann/können. Der/die PVAs kann/können konzipiert und konfiguriert sein, um Bildverarbeitungsalgorithmen für die Anwendungen Fahrerassistenzsysteme (ADAS), Autonomes Fahren und/oder Augmented Reality (AR) und/oder Virtual Reality (VR) zu beschleunigen. Der/die PVAs können ein Gleichgewicht zwischen Leistung und Flexibilität bieten. Beispielsweise kann jeder PVA, beispielhaft und ohne Einschränkung, eine beliebige Anzahl von Reduced Instruction Set Computer (RISC-Kernen, direkten Speicherzugriff (direct memory access - DMA) und/oder eine beliebige Anzahl von Vektorprozessoren enthalten.
  • Die RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer der hier beschriebenen Kameras), Bildsignalprozessoren und/oder dergleichen interagieren. Jeder der RISC-Kerne kann eine beliebige Speichermenge enthalten. Die RISC-Kerne können je nach Ausführungsform eines der verschiedenen Protokolle verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeit-Betriebssystem (real-time operating system - RTOS) ausführen. Die RISC-Kerne können mit einem oder mehreren integrierten Schaltungsgeräten, anwendungsspezifischen integrierten Schaltungen (application specific integrated circuits - ASICs) und/oder Speichergeräten implementiert werden. Beispielsweise können die RISC-Kerne einen Befehlsspeicher und/oder einen eng gekoppelten RAM enthalten.
  • Der DMA kann Komponenten des/der PVAs unabhängig von der/den CPUs 806 den Zugriff auf den Systemspeicher ermöglichen. Der DMA kann eine beliebige Anzahl von Funktionen unterstützen, die zur Optimierung des PVA verwendet werden, einschließlich, aber nicht beschränkt auf, das Unterstützen mehrdimensionaler Adressierung und/oder zirkularer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Adressierungsdimensionen unterstützen, darunter Blockbreite, Blockhöhe, Blocktiefe, horizontales Blockstepping, vertikales Blockstepping und/oder Tiefenstepping.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die so konzipiert werden können, dass sie effizient und flexibel Programmierungen für Bildverarbeitungsalgorithmen ausführen und Signalverarbeitungsfunktionen bereitstellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Subsystempartitionen für die Vektorverarbeitung enthalten. Der PVA-Kern kann ein Prozessorsubsystem, DMA-Engines (z. B. zwei DMA-Engines) und/oder andere Peripheriegeräte umfassen. Das Subsystem für die Vektorverarbeitung kann als primäre Verarbeitungseinheit des PVA verwendet werden und eine Vektorverarbeitungseinheit (vector processing unit - VPU), einen Befehlsspeicher und/oder einen Vektorspeicher (z. B. VMEM) umfassen. Ein VPU-Kern kann einen digitalen Signalprozessor wie z. B. einen Single Instruction Multiple Data (SIMD), einen Very Long Instruction Word (VLIW) -Digital-Signalprozessor enthalten. Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Befehlsspeicher enthalten und an einen dedizierten Speicher gekoppelt sein. In einigen Beispielen kann daher jeder der Vektorprozessoren so konfiguriert werden, dass er unabhängig von den anderen Vektorprozessoren ausgeführt wird. In anderen Beispielen können die Vektorprozessoren, die in einer bestimmten PVA enthalten sind, so konfiguriert werden, dass sie Datenparallelität verwenden. In einigen Ausführungsformen kann beispielsweise die Vielzahl von Vektorprozessoren, die in einer einzelnen PVA enthalten sind, denselben Bildverarbeitungsalgorithmus ausführen, jedoch auf verschiedenen Bildbereichen. In anderen Beispielen können die in einer bestimmten PVA enthaltenen Vektorprozessoren gleichzeitig verschiedene Computervision-Algorithmen auf demselben Bild ausführen oder sogar verschiedene Algorithmen auf sequenziellen Bildern oder Teilen eines Bildes ausführen. Unter anderem kann eine beliebige Anzahl von PVAs in den Hardware-Beschleunigungscluster aufgenommen werden, und jede beliebige Anzahl von Vektorprozessoren kann in jedem PVA enthalten sein. Darüber hinaus kann/können der/die PVAs zusätzlichen ECC-Speicher (Error Correcting Code) enthalten, um die Gesamtsicherheit des Systems zu erhöhen.
  • Der/die Beschleuniger 814 (z. B. der Hardware-Beschleunigungscluster) können ein Computervision-Netzwerk auf dem Chip und SRAM enthalten, um einen SRAM mit hoher Bandbreite und niedriger Latenz für den/die Beschleuniger 814 bereitzustellen. In einigen Beispielen kann der On-Chip-Speicher mindestens 4 MB SRAM umfassen, das beispielsweise aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl PVA als auch DLA zugreifen können. Jedes Paar von Speicherblöcken kann eine APB-Schnittstelle (Advanced Peripheral Bus - APB), eine Konfigurationsschaltung, einen Controller und einen Multiplexer umfassen. Jeder Speichertyp kann verwendet werden. Die PVA und DLA können über einen Backbone auf den Speicher zugreifen, der PVA und DLA einen schnellen Zugriff auf den Speicher ermöglicht. Der Backbone kann ein Computervision-Netzwerk on-Chip umfassen, das PVA und DLA mit dem Speicher verbindet (z. B. über den APB).
  • Das Computervision-Netzwerk on-Chip kann eine Schnittstelle enthalten, die vor der Übertragung von Steuersignalen/Adressen/Daten feststellt, dass sowohl die PVA als auch die DLA fertige und gültige Signale liefern. Eine solche Schnittstelle kann separate Phasen und separate Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie Burst-Kommunikation für eine kontinuierliche Datenübertragung bereitstellen. Diese Art von Schnittstelle kann den ISO 26262- oder IEC 61508-Normen entsprechen, obwohl andere Standards und Protokolle verwendet werden können.
  • In einigen Beispielen kann das SoC 804 einen Echtzeit-Hardware-Beschleuniger für die Raytracing-Überwachung enthalten, wie in der am 10. August 2018 eingereichten US-Patentanmeldung Nr. 16/101,232 beschrieben. Der Echtzeit-Hardware-Beschleuniger für das Raytracing kann zur schnellen und effizienten Bestimmung der Positionen und Ausmaße von Objekten (z. B. innerhalb eines Weltmodells), zur Generierung von Echtzeit-Visualisierungssimulationen, zur Interpretation von RADARsignalen, zur Schallausbreitungssynthese und/oder -analyse, zur Simulation von SONARsystemen, zur allgemeinen Wellenausbreitungssimulation, zum Vergleich mit LIDAR-Daten für Zwecke der Lokalisierung und/oder anderer Funktionen und/oder für andere Zwecke verwendet werden. In einigen Ausführungsformen können eine oder mehrere Tree Traversal Units (TTUs für die Ausführung einer oder mehrerer Operationen verwendet werden, die mit der Strahlverfolgung in Verbindung stehen.
  • Der/die Beschleuniger 814 (z. B. der Hardware-Beschleunigercluster) haben eine Vielzahl von Einsatzmöglichkeiten für autonomes Fahren. Der PVA kann ein programmierbarer Bildverarbeitungsbeschleuniger sein, der für wichtige Verarbeitungsschritte in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA passen gut zu algorithmischen Domänen, die eine vorhersehbare Verarbeitung bei geringer Leistungsaufnahme und geringer Latenz benötigen. Mit anderen Worten: Der PVA bietet gute Leistung bei halbdichten oder dichten regulären Berechnungen, selbst bei kleinen Datensätzen, die vorhersehbare Laufzeiten mit geringer Latenz und geringem Energieverbrauch benötigen. So sind die PVAs im Kontext von Plattformen für autonome Fahrzeuge so konzipiert, dass sie klassische Computervision-Algorithmen ausführen, da sie effizient bei der Objekterkennung und dem Betrieb auf Integer-Mathematik sind.
  • Nach einer Ausführungsform der Technologie wird der PVA beispielsweise zur Durchführung von Computer-Stereo-Vision eingesetzt. In einigen Beispielen kann ein semiglobaler Matching-basierter Algorithmus verwendet werden, obwohl dies nicht einschränkend gedacht ist. Viele Anwendungen für autonomes Fahren der Stufe 3-5 erfordern eine Bewegungsabschätzung/Stereo-Anpassung während der Fahrt (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrbahnerkennung usw.). Der PVA kann eine Computer-Stereo-Vision-Funktion anhand der Eingaben von zwei monokularen Kameras ausführen.
  • In einigen Beispielen kann der PVA zur Durchführung eines dichten optischen Flusses verwendet werden. Gemäß den Rohdaten des RADAR (z. B. mithilfe einer 4D-Fast-Fourier-Transformation) zur Bereitstellung eines verarbeiteten RADAR. In anderen Beispielen wird der PVA für die Fahrzeittiefenverarbeitung verwendet, indem beispielsweise Rohfahrzeitdaten verarbeitet werden, um verarbeiteten Fahrzeitdaten bereitzustellen.
  • Der DLA kann für den Betrieb beliebiger Netzwerke verwendet werden, um die Kontrolle und Fahrsicherheit zu erhöhen, umfassend z. B. ein neuronales Netzwerk, das für jede Objekterkennung ein Maß an Konfidenz ausgibt. Ein solcher Konfidenzwert kann als Wahrscheinlichkeit oder als ein relatives „Gewicht“ jeder Detektion im Vergleich zu anderen Detektionen interpretiert werden. Dieser Vertrauenswert ermöglicht es dem System, weitere Entscheidungen darüber zu treffen, welche Detektionen als echte positive Detektionen und nicht als falsch positive Detektionen betrachtet werden sollten. So kann das System beispielsweise einen Schwellenwert für die Konfidenz festlegen und nur die Erfassungen, die den Schwellenwert überschreiten, als echte positive Erfassungen betrachten. Bei einer automatischen Notbremsanlage (automatic emergency braking - AEB) würden falsch positive Erfassungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was offensichtlich unerwünscht ist. Daher sollten nur die zuverlässigsten Erfassungen als Auslöser für AEB betrachtet werden. Der DLA kann ein neuronales Netzwerk zur Regressierung des Konfidenzwerts ausführen. Das neuronale Netzwerk kann als Eingabe mindestens eine Teilmenge von Parametern verwenden, wie z. B. Abmessungen des Begrenzungsrahmens, Schätzung der Bodenebene (z. B. von einem anderen Subsystem), IMU-Sensor-866-Ausgabe (Inertial Measurement Unit - IMU), die mit der Ausrichtung des Fahrzeugs 800, Abstand, 3D-Positionsabschätzungen des Objekts, das aus dem neuronalen Netzwerk und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 864 oder RADAR-Sensor(en) 860), unter anderem gewonnen wurden.
  • Das SoC 804 kann Datenspeicher 816 (z. B. Speicher) enthalten. Der Datenspeicher 816 kann ein On-Chip-Speicher des SoC 804 sein, das neuronale Netzwerke speichern kann, die auf der GPU und/oder der DLA ausgeführt werden. In einigen Beispielen kann der Datenspeicher 816 groß genug sein, um mehrere Instanzen neuronaler Netzwerke für Redundanz und Sicherheit zu speichern. Der Datenspeicher 812 kann L2- oder L3-Caches 812 umfassen. Der Verweis auf den Datenspeicher 816 kann, wie hier beschrieben, den Bezug zum Speicher des PVA-, DLA- und/oder anderen Beschleunigern 814 enthalten.
  • Das SoC 804 kann einen oder mehr Prozessoren 810 (z. B. eingebettete Prozessoren) enthalten. Die Prozessoren 810 können einen Boot- und Energieverwaltungsprozessor enthalten, der ein dedizierter Prozessor und ein Subsystem sein kann, um die Boot-Energie- und Verwaltungsfunktionen sowie die damit verbundene Sicherheitsdurchsetzung zu handhaben. Der Boot- und Energieverwaltungsprozessor kann Teil der SoC 804-Startsequenz sein und kann Laufzeitenergieverwaltungsdienste bereitstellen. Der Bootenergie- und Verwaltungsprozessor kann die Taktfrequenz- und Spannungsprogrammierung, Unterstützung bei Übergängen des Energiesparzustands des Systems, die Verwaltung von SoC 804-Thermik und Temperatursensoren und/oder die Verwaltung der SoC 804-Leistungszustände bereitstellen. Jeder Temperatursensor kann als Ringoszillator implementiert werden, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das SoC 804 kann die Ringoszillatoren verwenden, um Temperaturen von CPUs 806, GPUs 808 und/oder Beschleunigern 814 zu erkennen. Wenn die Temperaturen einen Schwellenwert überschreiten, kann Boot- und Energieverwaltungprozessor in eine Temperaturfehlerroutine wechseln und das SoC 804 in einen niedrigeren Leistungszustand versetzen und/oder das Fahrzeug 800 in einen Sicheren-Stopp-Modus versetzen (z. B. das Fahrzeug 800 zu einem sicheren Halt führen).
  • Die Prozessoren 810 können außerdem einen Satz integrierter Prozessoren enthalten, die als Audioprozessor dienen können. Der Audioverarbeitungs-Engine kann ein Audio-Subsystem sein, das eine vollständige Hardware-Unterstü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 der Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.
  • Der/die Prozessor(en) 810 kann/sind außerdem mit einem „Always-on“-Prozessor ausgestattet, der die erforderlichen Hardwarefunktionen zur Unterstützung der Sensorverwaltung mit niedrigem Energieverbrauch und der Anwendungsfälle für das Einschalten bietet. Der Always-on-Prozessor-Engine kann einen Prozessorkern, einen eng gekoppelten RAM, unterstützende Peripheriegeräte (z. B. Timer und Interrupt-Controller), verschiedene I/O-Controller-Peripheriegeräte und Routing-Logik umfassen.
  • Der/die Prozessor(en) 810 kann/können außerdem eine Sicherheits-Cluster-Engine enthalten, die ein dediziertes Prozessor-Subsystem für das Sicherheitsmanagement für Automobilanwendungen enthält. Der Sicherheits-Cluster-Engine kann zwei oder mehr Prozessorkerne, einen eng gekoppelten RAM, Peripheriegeräte (z. B. Timer, einen Interrupt-Controller usw.) und/oder Routing-Logik enthalten. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus betrieben werden und als ein einzelner Kern mit Vergleichslogik funktionieren, um Unterschiede zwischen ihren Operationen zu erkennen.
  • Der/die Prozessor(en) 810 kann/können außerdem einen Echtzeit-Kamera-Engine enthalten, der ein dediziertes Prozessor-Subsystem für die Echtzeitkameraverwaltung enthalten kann.
  • Der/die Prozessor(en) 810 kann/können außerdem einen Signalprozessor mit hohem Dynamikbereich enthalten, der einen Bildsignalprozessor enthält, der als Hardware-Engine Teil der Kameraverarbeitungspipeline ist.
  • Der/die Prozessor(en) 810 kann/können einen Videobild-Compositor enthalten, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Video-Nachbearbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Playerfenster zu erzeugen. Der Videobild-Compositor kann die Objektivverzerrungskorrektur an Weitwinkelkameras 870, Surround-Kameras 874 und/oder an Sensoren der Fahrgastraum-Überwachungskamera durchführen. Der Sensor der Fahrgastraum-Überwachungskamera wird vorzugsweise von einem neuronalen Netzwerk überwacht, das auf einer anderen Instanz des Advanced SoC läuft und so konfiguriert ist, dass Ereignisse im Fahrgastraum erkannt werden und entsprechend reagiert wird. Ein Bordsystem kann Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Ziel des Fahrzeugs zu ändern, das Infotainment-System und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachaktiviertes Surfen im Internet zu ermöglichen. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug im autonomen Modus arbeitet und sind ansonsten deaktiviert.
  • Der Videobild-Compositor kann eine verbesserte zeitliche Rauschunterdrückung zur räumlichen und zeitlichen Rauschunterdrückung enthalten. Wenn beispielsweise in einem Video Bewegungen auftreten, werden durch die Rauschunterdrückung räumliche Informationen entsprechend gewichtet, wodurch die Gewichtung der Informationen, die von benachbarten Bildern bereitgestellt werden, verringert wird. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung enthält, kann die vom Videobild-Compositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu reduzieren.
  • Der Videobild-Compositor kann auch so konfiguriert werden, dass Stereo-Rektifikation auf Stereoeingangs-Linsenframes durchgeführt wird. Der Videobild-Compositor kann auch für die Erstellung der Benutzeroberfläche verwendet werden, wenn der Betriebssystemdesktop verwendet wird und die GPUs 808 nicht erforderlich ist, um kontinuierlich neue Oberflächen zu rendern. Selbst wenn die GPUs 808 eingeschaltet ist und aktiv 3D-Rendering macht, kann der Videobild-Compositor verwendet werden, um die GPUs 808 zu entlasten, um die Leistung und Reaktionsfähigkeit zu verbessern.
  • Das SoC 804 kann außerdem eine serielle Schnittstelle für mobile Industrieprozessorschnittstellen (mobile industry processor interface - MIPI) für den Empfang von Video und Input von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingangsblock enthalten, der für Kamera- und verwandte Pixeleingabefunktionen verwendet werden kann. Das SoC 804 kann außerdem eine Eingabe-/Ausgabesteuerung umfassen, die von der Software gesteuert werden kann und für den Empfang von I/O-Signalen verwendet werden kann, die nicht einer bestimmten Rolle zugewiesen sind.
  • Das SoC 804 kann darüber hinaus eine breite Palette von Peripherieschnittstellen enthalten, um die Kommunikation mit Peripheriegeräten, Audio-Codecs, Energieverwaltung und/oder anderen Geräten zu ermöglichen. Das SoC 804 kann zur Verarbeitung von Daten von Kameras (z. B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z. B. LIDAR-Sensor(en) 864, RADAR-Sensor(en) 860 usw., die über Ethernet angeschlossen werden können), Daten von Bus 802 (z. B. Geschwindigkeit von Fahrzeug 800, Lenkradposition usw.), Daten von GNSS-Sensor(en) 858 (z. B. über Ethernet oder CAN-Bus angeschlossen), verwendet werden. Das SoC 804 kann außerdem dedizierte Hochleistungs-Massenspeichercontroller enthalten, die ihre eigenen DMA-Engines enthalten können und die dazu verwendet werden können, die CPUs 806 von routinemäßigen Datenverwaltungsaufgaben zu befreien.
  • Das SoC 804 kann eine End-to-End-Plattform mit einer flexiblen Architektur sein, die die Automatisierungsstufen 3 bis 5 umfasst und somit eine umfassende funktionale Sicherheitsarchitektur bietet, die Computervision und ADAS-Techniken für Vielfalt und Redundanz effizient nutzt, eine Plattform für einen flexiblen, zuverlässigen Fahrsoftware-Stack bietet, zusammen mit Deep-Learning-Tools. Das SoC 804 kann schneller, zuverlässiger und noch energieeffizienter und platzsparender als herkömmliche Systeme sein. So kann der Beschleuniger 814 in Kombination mit der CPU 806, der GPU 808 und dem Datenspeicher 816 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bereitstellen.
  • Die Technologie bietet somit Fähigkeiten und Funktionalität, die mit herkömmlichen Systemen nicht erreicht werden können. Beispielsweise können Computervision-Algorithmen auf CPUs ausgeführt werden, die mit einer übergeordneten Programmiersprache wie der Programmiersprache C konfiguriert werden können, um eine Vielzahl von Verarbeitungsalgorithmen über eine Vielzahl von visuellen Daten auszuführen. CPUs können jedoch oft nicht die Leistungsanforderungen vieler Computervision-Anwendungen erfüllen, z. B. die, die mit der Ausführungszeit und dem Stromverbrauch zusammenhängen. Insbesondere sind viele CPUs nicht in der Lage, komplexe Algorithmen zur Objekterkennung in Echtzeit auszuführen, was eine Anforderung für fahrzeugeigene ADAS-Anwendungen und eine Anforderung für praktikable autonome Fahrzeuge der Stufe 3-5 ist.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht die hier beschriebene Technologie durch Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardware-Beschleunigungsclusters die gleichzeitige und/oder sequenzielle Durchführung mehrerer neuronaler Netzwerke und die Kombination der Ergebnisse, um die Level 3-5-Funktionalität für autonomes Fahren zu ermöglichen. Ein CNN beispielsweise, das auf der DLA oder dGPU ausgeführt wird (z. B. die GPU 820), kann eine Text- und Worterkennung enthalten, die es dem Supercomputer ermöglicht, Verkehrszeichen zu lesen und zu verstehen, einschließlich Zeichen, für die das neuronale Netzwerk nicht speziell ausgebildet wurde. Der DLA kann außerdem ein neuronales Netzwerk umfassen, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und semantisches Verständnis des Zeichens zu liefern und dieses semantische Verständnis an die Wegplanungsmodule weiterzugeben, die auf dem CPU-Komplex ausgeführt werden.
  • Als weiteres Beispiel können mehrere neuronale Netzwerke können gleichzeitig betrieben werden, wie es für die Fahrstufe 3, 4 oder 5 erforderlich ist. Ein Warnschild, bestehend aus „Achtung: Blinkende Lichter zeigen eisige Bedingungen an“, kann beispielsweise von mehreren neuronalen Netzwerken unabhängig oder kollektiv interpretiert werden. Das Zeichen selbst kann durch ein erstes bereitgestelltes neuronales Netzwerk (z. B. ein ausgebildetes neuronales Netzwerk) als Verkehrszeichen identifiziert werden, der Text „blinkende Lichter zeigen eisige Bedingungen an“ kann durch ein zweites bereitgestelltes neuronales Netzwerk interpretiert werden, welches die Wegplanungssoftware des Fahrzeugs informiert (vorzugsweise auf dem CPU-Komplex ausgeführt), dass bei Erkennung von Blinklichtern eisige Bedingungen herrschen. Das Blitzlicht kann durch den Betrieb eines dritten neuronalen Netzwerks, das die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von Blitzlichtern informiert, über mehrere Frames identifiziert werden. Alle drei neuronalen Netzwerke können gleichzeitig ausgeführt werden, z. B. innerhalb des DLA und/oder auf der GPU 808.
  • In einigen Beispielen kann ein CNN zur Gesichtserkennung und Fahrzeugidentifikation Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Fahrzeugbesitzers zu identifizieren 800. Der Always-On-Sensorprozesser kann verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Eigentümer der Fahrertür nähert und die Beleuchtung einschaltet, und im Sicherheitsmodus, um das Fahrzeug zu deaktivieren, wenn der Eigentümer das Fahrzeug verlässt. Auf diese Weise sorgen die SoCs 804 für Sicherheit gegen Entwendung und/oder Diebstahl.
  • In einem anderen Beispiel kann ein CNN zur Erkennung und Identifizierung von Rettungsfahrzeugen Daten von Mikrofonen 896 verwenden, um Sirenen von Notfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifikatoren verwenden, um Sirenen zu erkennen und Funktionen manuell zu extrahieren, verwenden die SoCs 804 CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung von visuellen Daten. In einer bevorzugten Ausführung wird das CNN, das auf dem DLA läuft, geschult, um die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu identifizieren (z. B. durch den DopplerEffekt). Das CNN kann auch geschult werden, um Einsatzfahrzeuge zu identifizieren, die für den lokalen Einsatzbereich des Fahrzeugs spezifisch sind, wie durch GNSS-Sensor(en) 858 identifiziert. So wird das CNN beispielsweise beim Betrieb in Europa versuchen, europäische Sirenen zu erkennen, und wenn CNN in den Vereinigten Staaten versucht, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Rettungsfahrzeug erkannt wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Rettungsfahrzeuge auszuführen, das Fahrzeug zu verlangsamen, zur Seite der Straße zu fahren, das Fahrzeug abzustellen und/oder das Fahrzeug mit Hilfe der Ultraschallsensoren 862 im Leerlauf laufen zu lassen, bis das Rettungsfahrzeug vorbeifährt.
  • Das Fahrzeug kann eine CPU 818 (z. B. diskrete CPU oder dCPU) enthalten, die über eine Hochgeschwindigkeitsverbindung (z. B. PCIe) mit dem SoC 804 gekoppelt werden kann. Die CPU 818 kann z. B. einen X86-Prozessor enthalten. Die CPU 818 kann zur Ausführung einer Vielzahl von Funktionen verwendet werden, einschließlich beispielsweise der Beurteilung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem SoC 804 und/oder Überwachung des Status und Zustands der Controller 836 und/oder des Infotainment-SoC 830.
  • Das Fahrzeug 800 kann eine GPU 820 (z. B. diskrete GPU oder dGPU) enthalten, die über eine Hochgeschwindigkeitsverbindung (z. B. NVLINK von NVIDIA) mit dem SoC 804 gekoppelt werden kann. Die GPU 820 kann zusätzliche künstliche Intelligenz-Funktionen bereitstellen, z. B. durch die Ausführung redundanter und/oder verschiedener neuronaler Netzwerke, und kann verwendet werden, um neuronale Netzwerke auf der Grundlage von Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 800 auszubilden und/oder zu aktualisieren.
  • Das Fahrzeug 800 kann außerdem die Netzwerkschnittstelle 824 enthalten, die eine oder mehrere Funkantennen 826 enthalten kann (z. B. eine oder mehrere Funkantennen für verschiedene Kommunikationsprotokolle, wie z. B. eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 824 kann verwendet werden, um drahtlose Verbindungen über das Internet mit der Cloud (z. B. mit dem Server 878 und/oder anderen Netzwerkgeräten), mit anderen Fahrzeugen und/oder mit Rechnervorrichtungen (z. B. Clientgeräten von Passagieren) zu ermöglichen. Für die Kommunikation mit anderen Fahrzeugen kann eine direkte Verbindung zwischen den beiden Fahrzeugen hergestellt und/oder eine indirekte Verbindung hergestellt werden (z. B. über Netzwerke und das Internet). Direkte Verbindungen können über eine Fahrzeug-Fahrzeug-Kommunikationsverbindung bereitgestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 800 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 800 liefern (z. B. Fahrzeuge vor, seitlich und/oder hinter dem Fahrzeug 800). Diese Funktion kann Teil einer kooperativen adaptiven Geschwindigkeitsregelfunktion des Fahrzeugs 800 sein.
  • Die Netzwerkschnittstelle 824 kann über einen SoC verfügen, der Modulation und Demodulation bietet und es dem Controller 836 ermöglicht, über drahtlose Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 824 kann ein Hochfrequenz-Front-End für die Up-Konvertierung von Basisband zu Hochfrequenz und Down-Konvertierung von Hochfrequenz zu Basisband enthalten. Die Frequenzumwandlungen können durch bekannte Prozesse und/oder durch Super-Heterodyn-Prozesse durchgeführt werden. In einigen Beispielen kann die Funkfrequenz-Frontend-Funktion 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 umfassen.
  • Das Fahrzeug 800 kann außerdem Datenspeicher 828 enthalten, die auch Off-Chip-Speicher (z. B. Off-the-SoC 804) umfassen können. Die Datenspeicher 828 können ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Geräte, die mindestens ein Bit von Daten speichern können, umfassen.
  • Das Fahrzeug 800 kann außerdem einen oder mehrere GNSS-Sensoren 858 enthalten. Die GNSS-Sensoren 858 (z. B. GPS- und/oder unterstützte GPS-Sensoren) unterstützen bei der Kartierung, Wahrnehmung, Generierung von Belegungsrastern und/oder der Wegplanung. Es kann eine beliebige Anzahl von GNSS-Sensoren 858 verwendet werden, einschließlich z. B. eines GPS-Geräts, das einen USB-Anschluss mit einer Ethernet-zu-Seriell-Brücke (RS-232) verwendet.
  • Das Fahrzeug 800 kann außerdem einen oder mehrere RADAR-Sensoren 860 enthalten. Der RADAR-Sensor 860 kann vom Fahrzeug 800 für die Fernerkennung von Fahrzeugen verwendet werden, selbst bei Dunkelheit und/oder bei Unwetter. Die funktionalen Sicherheitsstufen des RADAR können ASIL, B sein. Der RADAR-Sensor 860 kann den CAN und/oder den Bus 802 (z. B. zur Übertragung der vom RADAR-Sensor 860 generierten Daten) zur Steuerung und zum Zugriff auf Daten zur Objektverfolgung verwenden, wobei in einigen Beispielen auf Ethernet zugegriffen werden kann, um auf Rohdaten zuzugreifen. Es können eine Vielzahl von RADAR-Sensortypen verwendet werden. Beispielsweise können die RADAR-Sensoren 860 uneingeschränkt als Front-, Heck- und Seiten-RADAR verwendet werden. In einigen Beispielen werden Pulse-Doppler-RADAR-Sensoren verwendet.
  • Die RADAR-Sensoren 860 können verschiedene Konfigurationen umfassen, z. B. große Reichweite mit engem Sichtfeld, kurze Reichweite mit großem Sichtfeld, kurze Seitenabdeckung usw.. In einigen Beispielen kann ein Langstrecken-RADAR für die adaptive Geschwindigkeitsregelung verwendet werden. Die Langstrecken-RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld, das durch zwei oder mehr unabhängige Scans, z. B. innerhalb einer Reichweite von 250 m, realisiert wird, bieten. Die RADAR-Sensoren 860 können bei der Unterscheidung zwischen statischen und sich bewegenden Objekten helfen und von ADAS-Systemen zur Notbremsunterstützung und Kollisionswarnung verwendet werden. Langstrecken-RADAR-Sensoren für große Reichweiten können monostatisches multimodales RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle umfassen. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlmuster erzeugen, das entwickelt wurde, um die Umgebung des Fahrzeugs 800 bei höheren Geschwindigkeiten mit minimaler Beeinträchtigung durch den Verkehr in benachbarten Fahrbahnen aufzuzeichnen. Die anderen beiden Antennen können das Sichtfeld erweitern, wodurch es möglich ist, schnell Fahrzeuge zu erkennen, die in die Fahrbahn des Fahrzeugs 800 fahren oder diese verlassen.
  • Mid-Range-RADAR-Systeme können beispielsweise eine Reichweite von bis zu 860 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 850 Grad (hinten) umfassen. Short-Range-RADAR-Systeme können, ohne Einschränkung, RADAR-Sensoren umfassen, die an beiden Enden des hinteren Stoßfängers installiert werden können. Bei Installation an beiden Enden des hinteren Stoßfängers können solche RADAR-Sensorsysteme zwei Strahlen erzeugen, die den toten Winkel im Heck und neben dem Fahrzeug ständig überwachen.
  • Short-Range-RADAR-Systeme können in einem ADAS-System zur Erkennung des toten Winkels und/oder zur Fahrbahnwechselunterstützung verwendet werden.
  • Das Fahrzeug 800 kann außerdem Ultraschallsensoren 862 enthalten. Die Ultraschallsensoren 862, die sich vorne, hinten und/oder an den Seiten des Fahrzeugs 800 befinden können, können zum Einparken und/oder zum Erstellen und Aktualisieren eines Belegungsrasters verwendet werden. Es können eine Vielzahl von Ultraschallsensoren 862 und verschiedene Ultraschallsensoren 862 für verschiedene Detektionsbereiche (z. B. 2,5 m, 4 m) verwendet werden. Die Ultraschallsensoren 862 können mit der Funktionssicherheitsstufe ASIL B arbeiten
  • Das Fahrzeug 800 kann LIDAR-Sensoren 864 enthalten. Die LIDAR Sensoren 864 können für die Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. Die LIDAR-Sensoren 864 können die funktionale Sicherheitsstufe ASIL B sein. In einigen Beispielen kann das Fahrzeug 800 mehrere LIDAR-Sensoren 864 (z. B. zwei, vier, sechs usw.) enthalten, die Ethernet verwenden können (z. B. zur Bereitstellung von Daten an einen Gigabit-Ethernet-Switch).
  • In einigen Beispielen können die LIDAR-Sensoren 864 eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld bereitstellen. Im Handel erhältliche LIDAR-Sensoren 864 können eine angekündigte Reichweite von etwa 800 m, eine Genauigkeit von 2 cm bis 3 cm und beispielsweise eine Unterstützung für eine 800-Mbit/s-Ethernet-Verbindung aufweisen. In einigen Beispielen können ein oder mehrere nicht vorstehende LIDAR-Sensoren 864 verwendet werden. In solchen Beispielen können die LIDAR-Sensoren 864 als kleines Gerät implementiert werden, das in die Front-, Heck-, Seiten- und/oder Ecken des Fahrzeugs 800 eingebettet werden kann. Die LIDAR-Sensoren 864 können in solchen Beispielen ein bis zu 820 Grad horizontales und 35 Grad vertikales Sichtfeld mit einer Reichweite von 200 m bieten, selbst bei Objekten mit geringer Reflexion. Front-montierte LIDAR-Sensoren 864 können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert werden.
  • In einigen Beispielen können auch LIDAR-Technologien wie 3D-Flash-LIDAR verwendet werden. 3D-Flash-LIDAR nutzt einen Laserblitz als Übertragungsquelle, um die Fahrzeugumgebung bis zu ca. 200 m zu beleuchten. Eine LIDAR-Blitzeinheit enthält einen Rezeptor, der die Übertragungszeit des Laserpulses und das reflektierte Licht auf jedem Pixel erfasst, was wiederum dem Bereich vom Fahrzeug bis zu den Objekten entspricht. Flash LIDAR kann die Erzeugung hochgenauer und verzerrungsfreier Bilder der Umgebung mit jedem Laserblitz ermöglichen. In einigen Beispielen können vier LIDAR-Blitzsensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 800. Zu den verfügbaren 3D-Flash-LIDAR-Systemen gehört eine Solid-State-3D-Staring-Array-LIDAR-Kamera ohne bewegliche Teile außer einem Lüfter (z. B. ein nicht-scannendes LIDAR-Gerät). Das Flash-LIDAR-Gerät kann einen Laserpuls der Klasse I (augensicher) mit 5 Nanosekunden pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Punktwolken und mitregistrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR ein Festkörpergerät ohne bewegliche Teile ist, ist der LIDAR-Sensor 864 möglicherweise weniger anfällig für Bewegungsunschärfen, Vibrationen und/oder Stöße.
  • Das Fahrzeug kann außerdem IMU-Sensoren 866 enthalten. Die IMU-Sensoren 866 können sich in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 800 befinden. Die IMU-Sensoren 866 können z. B. einen oder mehrere Beschleunigungsmesser, Magnetometer, Gyroskope, magnetische Kompasse und/oder andere Sensortypen umfassen. In einigen Beispielen, wie z. B. in sechs-Achsen-Anwendungen, können die IMU-Sensoren 866 Beschleunigungsmesser und Gyroskope enthalten, während in neun-Achsen-Anwendungen die IMU-Sensoren 866 Beschleunigungsmesser, Gyroskope und Magnetometer umfassen können.
  • In einigen Ausführungsformen können die IMU-Sensoren 866 als Miniatur-GPS-Aided Inertial Navigation System (GPS/INS) implementiert werden, das Inertialsensoren mikroelektromechanischer Systeme (micro-electro-mechanical systems - MEMS), einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Abschätzungen von Position, Geschwindigkeit und Neigung zu liefern. In einigen Beispielen können die IMU-Sensoren 866 es dem Fahrzeug 800 ermöglichen, den Kurs ohne Eingabe eines Magnetsensors zu schätzen, indem die Geschwindigkeitsänderungen vom GPS direkt auf den IMU-Sensoren 866 beobachtet und korreliert werden. In einigen Beispielen können IMU-Sensoren 866 und GNSS-Sensoren 858 in einer einzigen integrierten Einheit kombiniert werden.
  • Das Fahrzeug kann mit Mikrofonen 896 ausgestattet sein, die in und/oder um das Fahrzeug 800 platziert sind. Die Mikrofone 896 können unter anderem zur Erkennung und Identifizierung von Rettungsfahrzeugen verwendet werden.
  • Das Fahrzeug kann außerdem eine beliebige Anzahl von Kameratypen umfassen, einschließlich Stereokameras 868, Weitwinkelkameras 870, Infrarotkameras 872, Surround-Kameras 874, Long-Range- und Mid-Range-Kameras 898 und/oder andere Kameratypen. Mit den Kameras können Bilddaten rund um eine gesamte Peripherie des Fahrzeugs 800 herum erfasst werden. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen für das Fahrzeug 800 ab, und jede Kombination von Kameratypen kann verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 800 herum zu gewährleisten. Darüber hinaus kann die Anzahl der Kameras je nach Ausführungsform variieren. Zum Beispiel kann das Fahrzeug sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras umfassen. Die Kameras können beispielsweise und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede Kamera wird in diesem Dokument in Bezug auf 8A und 8B veranschaulicht.
  • Das Fahrzeug 800 kann außerdem Vibrationssensoren 842 enthalten. Die Vibrationssensoren 842 können Vibrationen von Komponenten des Fahrzeugs, z. B. den Achsen, messen. Veränderungen der Vibrationen können beispielsweise auf eine Veränderung der Straßenbeläge hindeuten. In einem anderen Beispiel können bei Verwendung von zwei oder mehr Vibrationssensoren 842 die Unterschiede zwischen den Vibrationen zur Bestimmung der Reibung oder des Schlupfes der Fahrbahnoberfläche verwendet werden (z. B. wenn der Vibrationsunterschied zwischen einer elektrisch angetriebenen und einer frei drehenden Achse besteht).
  • Das Fahrzeug 800 kann ein ADAS-System 838 enthalten. Das ADAS-System 838 kann in einigen Beispielen ein SoC enthalten. Das ADAS-System 838 kann autonome/adaptive/automatische Geschwindigkeitsregelung (autonomous/adaptive/automatic cruise control - ACC), kooperative adaptive Geschwindigkeitsregelung (cooperative adaptive cruise control - CACC), Aufprallwarnung (forward crash warning - FCW), automatische Notbremsung (automatic emergency braking - AEB), Spurhaltewarnungen (lane departure warnings - LDW), Spurhalteassistent (lane keep assist - LKA), Totwinkel-Warner (blind spot warning - BSW), Heckbereichswarnung (rear cross-traffic warning - RCTW), Kollisionswarnsysteme (collision warning system - CWS), Fahrbahnzentrierung (lane centering - LC) und/oder andere Merkmale und Funktionalitäten umfassen.
  • Die ACC-Systeme können RADAR-Sensoren 860, LIDAR-Sensoren 864 und/oder Kameras verwenden. Die ACC-Systeme können longitudinales ACC und/oder laterales ACC umfassen. Das ACC in Längsrichtung überwacht und steuert den Abstand zum Fahrzeug unmittelbar vor dem Fahrzeug 800 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu den vorausfahrenden Fahrzeugen einzuhalten. Das laterale ACC führt die Distanzmessung durch und rät dem Fahrzeug 800, bei Bedarf die Fahrbahn zu wechseln. Das laterale ACC steht in Zusammenhang mit anderen ADAS-Anwendungen wie LCA und CWS.
  • CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 824 und/oder die Wireless-Antenne(n) 826 von anderen Fahrzeugen über eine Wireless-Verbindung oder indirekt über eine Netzwerkverbindung (z. B. über das Internet) empfangen werden können. Direkte Verbindungen können über eine V2V-Kommunikationsverbindung (Vehicle-to-Vehicle) bereitgestellt werden, während indirekte Verbindungen eine I2V-Kommunikationsverbindung (Infrastructure-to-Vehicle) sein können. Das Kommunikationskonzept V2V informiert in der Regel über die unmittelbar vorausfahrenden Fahrzeuge (z. B. Fahrzeuge unmittelbar vor und auf derselben Fahrbahn wie das Fahrzeug 800), während das Kommunikationskonzept 12V Informationen über den weiteren vorausfahrenden Verkehr liefert. CACC-Systeme können eine oder beide 12V- und V2V-Informationsquellen enthalten. Angesichts der Informationen über die Fahrzeuge vor dem Fahrzeug 800 könnte CACC zuverlässiger sein und das Potenzial haben, die Verkehrsströme zu verbessern und Staus auf der Straße zu reduzieren.
  • FCW-Systeme wurden entwickelt, um den Fahrer auf eine Gefahr aufmerksam zu machen, damit der Fahrer Korrekturmaßnahmen ergreifen kann. FCW-Systeme verwenden eine nach vorne gerichtete Kamera und/oder RADAR-Sensoren 860 gekoppelt an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, Lautsprecher und/oder einer vibrierenden Komponente. FCW-Systeme können eine Warnung ausgeben, z. B. in Form eines Schalls, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.
  • AEB-Systeme erkennen eine drohende Aufprall mit einem anderen Fahrzeug oder einem anderen Objekt und können die Bremsen automatisch betätigen, wenn der Fahrer innerhalb eines bestimmten Zeit- oder Entfernungsparameters keine Korrekturmaßnahmen ergreift. AEB-Systeme können nach vorne gerichtete Kameras und/oder RADAR-Sensoren 860 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, warnt es den Fahrer normalerweise zuerst, Korrekturmaßnahmen zu ergreifen, um die Kollision zu vermeiden. Wenn der Fahrer keine Korrekturmaßnahmen ergreift, kann das AEB-System die Bremsen automatisch 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 Notbremsung umfassen.
  • LDW-Systeme bieten optische, akustische und/oder taktile Warnungen, wie z. B. Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 800 die Fahrbahnmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer durch Aktivieren eines Blinksignals einen absichtlichen Fahrbahnwechsel anzeigt. LDW-Systeme können nach vorne gerichtete Kameras verwenden, gekoppelt an einen dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, Lautsprecher und/oder einer vibrierenden Komponente.
  • LKA-Systeme sind eine Variante von LDW-Systemen. LKA-Systeme bieten Lenkeingaben oder Bremsen, um das Fahrzeug 800 zu korrigieren, wenn das Fahrzeug 800 die Fahrbahn verlässt.
  • BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel eines Automobils. BSW-Systeme können einen visuellen, akustischen und/oder taktilen Alarm ausgeben, der darauf hinweist, dass das Zusammenführen oder Wechseln von Fahrbahnen unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker verwendet. BSW-Systeme können rückseitig ausgerichtete Kameras und/oder RADAR-Sensoren 860 verwenden, gekoppelt mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • RCTW-Systeme können visuelle, akustische und/oder taktile Benachrichtigungen liefern, wenn ein Objekt außerhalb des Bereichs der Rückfahrkamera erkannt wird, wenn das Fahrzeug 800 rückwärts fährt. Einige RCTW-Systeme verfügen über AEB, um sicherzustellen, dass die Bremsen des Fahrzeugs aktiviert werden, um einen Unfall zu vermeiden. RCTW-Systeme können eine oder mehrere nach hinten gerichtete RADAR-Sensoren 860 verwenden, gekoppelt mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC, der elektrisch mit dem Fahrer-Feedback gekoppelt ist, z. B. einem Display, einem Lautsprecher und/oder einer vibrierenden Komponente.
  • Herkömmliche ADAS-Systeme können zu falsch positiven Ergebnissen neigen, die für den Fahrer störend und ablenkend sein können, aber in der Regel nicht katastrophal sind, da die ADAS-Systeme den Fahrer alarmieren und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung tatsächlich vorliegt, und entsprechend zu handeln. Bei einem autonomen Fahrzeug 800 muss das Fahrzeug 800 selbst jedoch bei widersprüchlichen Ergebnissen entscheiden, ob das Ergebnis eines primären oder eines sekundären Computers (z. B. eines ersten Controllers 836 oder eines zweiten Controllers 836) berücksichtigt werden soll. In einigen Ausführungsformen kann das ADAS-System 838 beispielsweise ein Backup- und/oder Sekundärcomputer sein, um Wahrnehmungsinformationen für ein Rationalitätsmodul des Backup-Computers bereitzustellen. Auf dem Monitor zur Rationalität des Backup-Computers kann eine redundante, vielfältige Software auf Hardwarekomponenten ausgeführt werden, um Wahrnehmungsfehler und dynamische Fahraufgaben zu erkennen. Ausgaben vom ADAS-System 838 können an eine übergeordnete MCU geliefert werden. Wenn Ausgaben vom primären Computer und vom sekundären Computer in Konflikt geraten, muss die übergeordnete MCU bestimmen, wie der Konflikt abgeglichen werden kann, um einen sicheren Betrieb zu gewährleisten.
  • In einigen Beispielen kann der primäre Computer konfiguriert werden, um der übergeordneten MCU einen Konfidenzwert bereitzustellen, der die Konfidenz des primären Computers in das ausgewählte Ergebnis angibt. Wenn der Konfidenzwert einen Schwellenwert überschreitet, kann die übergeordnete MCU der Richtung des primären Computers folgen, unabhängig davon, ob der sekundäre Computer ein widersprüchlich oder inkonsistentes Ergebnis liefert. Wenn der Konfidenzwert den Schwellenwert nicht erreicht und der primäre und der sekundäre Computer unterschiedliche Ergebnisse (z. B. den Konflikt) anzeigen, kann die übergeordnete MCU zwischen den Computern entscheiden, um das geeignete Ergebnis zu ermitteln.
  • Die übergeordnete MCU kann konfiguriert sein, um ein neuronales Netzwerk laufen zu lassen, das ausgebildet und konfiguriert ist, um basierend auf den Ausgaben des primären Computers und des sekundären Computers Bedingungen zu bestimmen, unter denen der sekundäre Computer Fehlalarme ausgibt. So können die neuronalen Netzwerke in der übergeordneten MCU lernen, wann die Ausgabe 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, können neuronale Netzwerke in der übergeordneten MCU erkennen, wann das FCW-System metallische Objekte identifiziert, die tatsächlich keine Gefahren darstellen, wie z. B. ein Drainagerost oder eine Schachtabdeckung, die einen Alarm auslöst. Wenn es sich bei dem sekundären Computer um ein kamerabasiertes LDW-System handelt, kann ein neuronales Netzwerk in der übergeordneten MCU lernen, das LDW zu überschreiben, wenn Radfahrer oder Fußgänger anwesend sind und einen Fahrbahnwechsel tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein neuronales Netzwerk enthalten, das auf der übergeordneten MCU ausgeführt wird, kann die üb MCU mindestens eine DLA oder GPU enthalten, die für den Betrieb des neuronalen Netzwerks mit dem zugehörigen Speicher geeignet ist. In bevorzugten Ausführungsformen kann die übergeordnete MCU als Bestandteil des SoCs 804 enthalten und/oder einbezogen werden.
  • In anderen Beispielen kann das ADAS-System 838 einen sekundären Computer umfassen, der die ADAS-Funktionalität mithilfe herkömmlicher Regeln der Computervision ausführt. Daher kann der sekundäre Computer klassische Computervision-Regeln (wenndann) verwenden und das Vorhandensein eines neuronalen Netzwerks in der übergeordneten MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. Die vielfältige Implementierung und die absichtliche Nichtidentität beispielsweise machen das Gesamtsystem fehlertoleranter, insbesondere gegenüber Fehlern, die durch die Funktionalität der Software (oder Software-Hardware-Schnittstelle) verursacht werden. Wenn beispielsweise ein Softwarefehler oder Fehler in der Software auf dem primären Computer vorliegt und der nicht identische Softwarecode auf dem sekundären Computer das gleiche Gesamtergebnis liefert, kann die übergeordnete MCU mehr Vertrauen in das Gesamtergebnis haben und der Fehler in der Software oder Hardware auf dem primären Computer verursacht keinen Materialfehler.
  • In einigen Beispielen kann die Ausgabe des ADAS-Systems 838 in den Wahrnehmungs-Block des primären Computers und/oder den dynamischen Fahraufgaben-Block des primären Computers eingespeist werden. Wenn das ADAS-System 838 beispielsweise eine Aufprallwarnung aufgrund eines unmittelbar vorausliegenden Objekts anzeigt, kann der Wahrnehmungs-Block diese Informationen bei der Identifizierung von Objekten verwenden. In anderen Beispielen kann der sekundäre Computer über ein eigenes ausgebildetes neuronales Netzwerk verfügen und so das Risiko von falsch-positiven Ergebnissen reduzieren, wie hier beschrieben.
  • Das Fahrzeug 800 kann außerdem das Infotainment-SoC 830 (z. B. ein Fahrzeug-Infotainment-System (in-vehicle infotainment - IVI)) enthalten. Obwohl das Infotainment-System als SoC dargestellt und beschrieben wird, handelt es sich möglicherweise nicht um ein SoC und kann zwei oder mehr separate Komponenten enthalten. Das Infotainment-SoC 830 kann eine Kombination aus Hardware und Software umfassen, die verwendet werden kann, um dem Fahrzeug 800 Audio (z. B. Musik, einen persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. TV, Filme, Streaming usw.), Telefon (z. B. Freisprechfunktion), Netzwerkkonnektivität (z. B. LTE, Wi-Fi, Usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Einparkhilfe hinten, ein Funkdatensystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremsflüssigkeitsstand, Ölstand, Tür auf/zu, Luftfilterinformationen usw.) bereitzustellen. Zum Beispiel kann das Infotainment-SoC 830 Radios, CD-Player, Navigationssysteme, Videoplayer, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Lenkrad-Audiosteuerungen, freihändige Sprachsteuerung, ein Heads-Up-Display (HUD), ein HMI-Display 834, ein Telematikgerät, ein Bedienfeld (z. B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder anderen Komponenten umfassen. Das Infotainment-SoC 830 kann außerdem dazu verwendet werden, Informationen (z. B. visuell und/oder hörbar) für Benutzer des Fahrzeugs bereitzustellen, z. B. Informationen aus dem ADAS-System 838, Informationen zum autonomen Fahren wie geplante Fahrzeugmanöver, Trajektorien, Umgebungsdaten (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.
  • Das Infotainment-SoC 830 kann GPU-Funktionalität enthalten. Das Infotainment-SoC 830 kann über den Bus 802 (z. B. CAN-Bus, Ethernet usw.) mit anderen Geräten, Systemen und/oder Komponenten des Fahrzeugs 800 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 830 mit einer übergeordneten MCU gekoppelt werden, sodass die GPU des Infotainment-Systems einige Selbstfahr-Funktionen ausführen kann, falls der primäre Controller 836 (z. B. der primäre und/oder Backup-Computer des Fahrzeugs 800) ausfällt. In einem solchen Beispiel kann das Infotainment-SoC 830 das Fahrzeug 800 in den sicheren Stopp-Modus versetzen, wie hier beschrieben.
  • Das Fahrzeug 800 kann außerdem ein Kombiinstrument 832 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.) enthalten. Das Kombiinstrument 832 kann einen Controller und/oder Supercomputer (z. B. einen diskreten Controller oder Supercomputer) enthalten. Das Kombiinstrument 832 kann eine Reihe von Instrumenten wie Tachometer, Kraftstoffstand, Öldruck, Drehzahlmesser, Kilometerzähler, Blinker, Schaltstellungsanzeige, Sicherheitsgurtwarnleuchte(n), Feststellbremse-Warnleuchte(n), Motorstörungsanzeige(n), Airbag (SRS)-Systeminformationen, Beleuchtungssteuerungen, Bedienelemente des Sicherheitssystems, Navigationsinformationen usw. umfassen. In einigen Beispielen können Informationen angezeigt und/oder zwischen dem Infotainment-SoC 830 und dem Kombiinstrument 832 geteilt werden. Mit anderen Worten kann das Kombiinstrument 832 als Teil des Infotainment-SoC 830 oder umgekehrt aufgenommen werden.
  • 8D ist ein Systemdiagramm für die Kommunikation zwischen cloudbasierten Servern und dem beispielhaften autonomen Fahrzeug 800 aus 8A, in Übereinstimmung mit einigen Ausführungsformen der vorliegenden Offenbarung. Das System 876 kann Server 878, Netzwerke 890 und Fahrzeuge einschließlich Fahrzeug 800 umfassen. Die Server 878 können eine Vielzahl von GPUs 884(A)-884(H) (zusammenfassend als GPUs 884 bezeichnet), PCIe-Switches 882(A)-882(H) (gemeinsam als PCIe-Switches 882 bezeichnet) und/oder CPUs 880(A)-880(B) (gemeinsam als CPUs 880 bezeichnet) enthalten. Die GPUs 884, die CPUs 880 und die PCIe-Switches können mit Hochgeschwindigkeitsverbindungen wie beispielsweise den von NVIDIA entwickelten NVLink-Schnittstellen 888 und/oder PCIe Connections 886 verbunden werden. In einigen Beispielen werden die GPUs 884 über NVLink und/oder NVSwitch SoC angeschlossen und die GPUs 884 und die PCIe-Switches 882 über PCIe-Verbindungen. Obwohl acht GPUs 884, zwei CPUs 880 und zwei PCIe-Switches abgebildet sind, soll dies nicht als einschränkend verstanden werden. Je nach Ausführungsform kann jeder Server 878 eine beliebige Anzahl von GPUs 884, CPUs 880 und/oder PCIe-Switches enthalten. Zum Beispiel können die Server 878 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 884 enthalten.
  • Die Server 878 können über die Netzwerke 890 und von den Fahrzeugen Bilddaten empfangen, die für Bilder stehen, die unerwartete oder veränderte Straßenbedingungen zeigen, wie z. B. kürzlich begonnene Straßenarbeiten. Die Server 878 können, über die Netzwerke 890 und an die Fahrzeuge, neuronale Netze 892, aktualisierte neuronale Netzwerke 892 und/oder Karteninformationen 894 übertragen, einschließlich Informationen über den Verkehr und die Straßenbedingungen. Die Aktualisierungen der Karteninformationen 894 können Aktualisierungen für die HD-Karte 822 enthalten, wie z. B. Informationen zu Baustellen, Schlaglöchern, Umwegen, Überschwemmungen und/oder anderen Hindernissen. In einigen Beispielen können die neuronalen Netzwerke 892, die aktualisierten neuronalen Netzwerke 892 und/oder die Karteninformationen 894 aus neuen Ausbildungen und/oder Erfahrungen resultieren, dargestellt in Daten aus einer beliebigen Anzahl von Fahrzeugen in der Umgebung, und/oder basierend auf Ausbildungen, die in einem Rechenzentrum durchgeführt werden (z. B. unter Verwendung der Server 878 und/oder anderer Server).
  • Die Server 878 können verwendet werden, um Machine-Learning-Modelle (z. B. neuronale Netzwerke) basierend auf Ausbildungsdaten auszubilden. Die Ausbildungsdaten können von den Fahrzeugen generiert und/oder in einer Simulation (z. B. mit einem Game Engine) generiert werden. In einigen Beispielen werden die Ausbildungsdaten markiert (z. B. wenn das neuronale Netzwerk vom überwachten Lernen profitiert) und/oder unterliegen einer anderen Vorverarbeitung, während in anderen Beispielen die Ausbildungsdaten nicht markiert und/oder vorverarbeitet werden (z. B. wenn das neuronale Netzwerk kein überwachtes Lernen erfordert). Ausbildungen können nach einer oder mehreren Klassen von Machine-Learning-Techniken durchgeführt werden, einschließlich, aber nicht beschränkt auf Kurse wie: beaufsichtigtes Training, halb beaufsichtigtes Training, unbeaufsichtigtes Training, Selbstlernen, Verstärkungslemen, föderiertes Lernen, Transferlernen, Feature-Lernen (einschließlich Hauptkomponenten- und Cluster-Analysen), multilineares Subraumlernen, vielfältiges Lernen, Repräsentation-Lernen (einschließlich des Ersatzwörterbuchlemen), regelbasiertes maschinelles Lernen, Anomalieerkennung und alle Varianten oder Kombinationen davon. Nach der Ausbildung der Machine-Learning-Modelle können die Machine-Learning-Modelle von den Fahrzeugen verwendet werden (z. B. über das Netzwerk 890 an die Fahrzeuge übertragen) und/oder die Machine-Learning-Modelle können von den Servern 878 zur Fernüberwachung der Fahrzeuge verwendet werden.
  • In einigen Beispielen kann der Server 878 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netzwerke anwenden, um intelligente Echtzeit-Inferenzierungen zu ermöglichen. Die Server 878 können Deep-Learning-Supercomputer und/oder dedizierte KI-Computer mit GPUs 884 umfassen, wie z. B. DGX- und DGX-Stationsmaschinen, die von NVIDIA entwickelt wurden. In einigen Beispielen können die Server 878 jedoch eine Deep-Learning-Infrastruktur enthalten, die nur CPU-betriebene Rechenzentren verwendet.
  • Die Deep-Learning-Infrastruktur der Server 878 kann eine schnelle Echtzeit-Inferenzierung ermöglichen und diese Funktion nutzen, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 800 zu bewerten und zu überprüfen. Beispielsweise kann die Deep-Learning-Infrastruktur regelmäßige Aktualisierungen vom Fahrzeug 800 erhalten, wie z. B. eine Abfolge von Bildern und/oder Objekten, die das Fahrzeug 800 in dieser Abfolge von Bildern lokalisiert hat (z. B. durch Computervision und/oder andere Techniken zur Klassifizierung von Machine-Learning-Objekten). Die Deep-Learning-Infrastruktur kann ein eigenes neuronales Netzwerk betreiben, um die Objekte zu identifizieren und sie mit den vom Fahrzeug 800 identifizierten Objekten zu vergleichen. Wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 800 defekt ist, kann der Server 878 ein Signal an das Fahrzeug 800 senden, das einen ausfallsicheren Computer des Fahrzeugs 800 anweist, die Kontrolle zu übernehmen, die Passagiere zu benachrichtigen und ein sicheres Einparkmanöver durchzuführen.
  • Für die Inferenzierung können die Server 878 die GPUs 884 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. NVIDIA TensorRT) enthalten. Die Kombination aus GPU-basierten Servern und der Inferenzbeschleunigung kann eine Reaktionsfähigkeit in Echtzeit ermöglichen. In anderen Beispielen, z. B. bei weniger kritischer Performance, können Server mit CPUs, FPGAs und anderen Prozessoren für die Inferenzierung verwendet werden.
  • BEISPIEL FÜR EIN COMPUTERGERÄT
  • 9 ist ein Blockdiagramm einer beispielhaften Rechnervorrichtung 900, das zur Verwendung bei der Umsetzung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Rechnervorrichtung 900 kann Verbindungssystem 902 enthalten, das die folgenden Geräte direkt oder indirekt koppelt: Speicher 904, einen oder mehrere Zentralprozessoren (CPUs) 906, einen oder mehrere Grafikprozessoren (GPUs) 908, eine Kommunikationsschnittstelle 910, Eingangs-/Ausgangs (I/O)-Ports 912, Eingabe-/Ausgabekomponenten 914, ein Netzteil 916, eine oder mehrere Darstellungskomponenten 918 (z. B. Displays) und eine oder mehrere Logikeinheiten 920.
  • Obwohl die verschiedenen Blöcke der 9 als über Verbindungssystem 902 mit Leitungen verbunden angezeigt werden, soll dies nicht als einschränkend gedacht sein und dient nur der Übersichtlichkeit. In einigen Ausführungsformen kann beispielsweise eine Darstellungskomponente 918, wie z. B. ein Anzeigegerät, als I/O-Komponente 914 betrachtet werden (z. B. wenn es sich bei dem Display um einen Touchscreen handelt). Als weiteres Beispiel können die CPUs 906 und/oder GPUs 908 Speicher enthalten (z. B. kann der Speicher 904 neben dem Speicher der GPUs 908, der CPUs 906 und/oder anderer Komponenten repräsentativ für ein Speichergerät sein). Mit anderen Worten ist die Rechnervorrichtung aus 9 lediglich illustrativ. Es wird nicht zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Desktop“, „Tablet“ , „Client-Gerät“, „Mobilgerät“ , „Handheld-Gerät“, „Spielkonsole“, „elektronisches Steuergerät (electronic control unit - ECU)“, „Virtual-Reality-System“ und/oder anderen Geräte- oder Systemtypen unterschieden, da sie alle innerhalb des Anwendungsbereichs der Rechnervorrichtung aus 9 liegen.
  • Das Verbindungssystem 902 kann einen oder mehrere Verbindungen oder Busse darstellen, z. B. einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Das Verbindungssystem 902 kann einen oder mehrere Bus- oder Verbindungstypen umfassen, z. B. einen ISA-Bus (Industry Standard Architecture), einen EISA-Bus (Extended Industry Standard Architecture), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCIe-Bus (Peripheral Component Interconnect Express) und/oder einen anderen Bus- oder Verbindungstyp. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen Komponenten. Als Beispiel kann die CPU 906 direkt an den Speicher 904 angeschlossen werden. Außerdem kann die CPU 906 direkt an die GPU 908 angeschlossen werden. Bei direkter oder Punkt-zu-Punkt-Verbindung zwischen Komponenten kann das Verbindungssystem 902 eine PCIe-Verbindung zur Durchführung der Verbindung enthalten. In diesen Beispielen muss kein PCI-Bus in die Rechnervorrichtung 900 aufgenommen werden.
  • Der Speicher 904 kann über eine Vielzahl von computer-lesbaren Medien verfügen. Die computer-lesbaren Medien können alle verfügbaren Medien sein, auf die die Rechnervorrichtung 900 zugreifen kann. Die computer-lesbaren Medien können sowohl flüchtige als auch nichtflüchtige Medien sowie wechselbare und nicht wechselbare Medien enthalten. Als Beispiel und nicht als Einschränkung können die computer-lesbaren Medien Computer-Speichermedien und Kommunikationsmedien umfassen.
  • Das Computerspeichermedium kann sowohl flüchtige als auch nichtflüchtige Medien und/oder wechselbare und nicht wechselbare Medien enthalten, die in jeder Methode oder Technologie zur Speicherung von Informationen wie computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder andere Datentypen implementiert sind. Im Speicher 904 können beispielsweise computer-lesbare Anweisungen gespeichert werden (z. B., die ein oder mehrere Programme und/oder Programmelemente darstellen, z. B. ein Betriebssystem. Zu den Speichermedien für Computer gehören unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Datenträger, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Speichergeräte, oder jedes andere Medium, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das die Rechnervorrichtung 900 zugreifen kann. Wie hier verwendet, umfassen die Speichermedien für Computer nicht per se Signale.
  • Die Speichermedien des Computers können computer-lesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal enthalten, wie z. B. eine Trägerwelle oder einen anderen Transportmechanismus, und umfassen alle Informationsmedien. 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 Speichermedien des Computers drahtgebundene Medien wie ein kabelgebundenes Netzwerk oder eine direkte kabelgebundene Verbindung sowie drahtlose Medien wie akustische, HF-, Infrarot- und andere drahtlose Medien umfassen. Kombinationen der oben genannten Punkte sollten ebenfalls in den Umfang von computerlesbaren Medien aufgenommen werden.
  • Die CPUs 906 können so konfiguriert werden, dass sie mindestens einige der computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 900 ausführen, um eine oder mehrere der hier beschriebenen Methoden und/oder Prozesse auszuführen. Die CPUs 906 können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPUs 906 können jede Art von Prozessor enthalten und je nach Art der implementierten Rechnervorrichtung 900 verschiedene Typen von Prozessoren enthalten (z. B. Prozessoren mit weniger Kernen für Mobilgeräte und Prozessoren mit mehr Kernen für Server). Je nach Rechnervorrichtung 900 kann es sich beispielsweise um einen Advanced RISC Machine (ARM)-Prozessor mit reduziertem Instruction Set Computing (RISC) oder einen x86-Prozessor mit komplexem Instruction Set Computing (CISC) handeln. Die Rechnervorrichtung 900 kann zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Koprozessoren, wie z. B. mathematischen Koprozessoren, eine oder mehrere CPUs 906 enthalten.
  • Die GPUs 908 können darüber hinaus oder alternativ von den CPUs 906 so konfiguriert werden, dass sie mindestens einige computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 900 ausführen, um eine oder mehrere der hier beschriebenen Methoden und/oder Prozesse auszuführen. Eine oder mehrere GPUs 908 können eine integrierte GPU (z. B. mit einer oder mehreren CPUs 906) sein und/oder eine oder mehrere GPUs 908 können eine separate GPU sein. In Ausführungsformen können eine oder mehrere GPUs 908 ein Coprozessor einer oder mehrerer CPUs 906 sein. Die GPUs 908 können von der Rechnervorrichtung 900 zum Rendern von Grafiken (z. B. 3D-Grafiken) oder Durchführen allgemeiner Berechnungen verwendet werden. Beispielsweise können die GPUs 908 zur General-Purpose Computing on GPUs (GPGPU) verwendet werden. Die GPUs 908 können Hunderte oder Tausende von Kernen umfassen, die Hunderte oder Tausende von Software-Threads gleichzeitig verarbeiten können. Die GPUs 908 können als Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von den CPUs 906, die über eine Host-Schnittstelle empfangen wurde) Pixeldaten für Ausgabebilder generieren. Die GPUs 908 können Grafikspeicher, wie z. B. Display Speicher, zum Speichern von Pixeldaten oder anderen geeigneten Daten, wie GPGPU-Daten, enthalten. Der Displayspeicher kann als Teil des Speichers 904 enthalten sein. Die GPUs 908 können zwei oder mehr GPUs enthalten, die parallel arbeiten (z. B. über eine Verbindung). Die Verbindung kann die GPUs direkt verbinden (z. B. über NVLINK) oder die GPUs über einen Switch verbinden (z. B. über NVSwitch). Wenn sie zusammen kombiniert werden, kann jede GPU 908 Pixeldaten oder GPGPU-Daten für verschiedene Teile einer Ausgabe oder für unterschiedliche Ausgaben generieren (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 enthalten oder den Speicher mit anderen GPUs teilen.
  • Die Logikeinheiten 920 können darüber hinaus oder alternativ von den CPUs 906 und/oder den GPUs 908 so konfiguriert werden, dass sie mindestens einige computerlesbaren Anweisungen zur Steuerung einer oder mehrerer Komponenten des Rechners 900 ausführen, um eine oder mehrere der hier beschriebenen Methoden und/oder Prozesse auszuführen. In Ausführungsformen können die CPUs 906, die GPUs 908 und/oder die Logikeinheiten 920 diskret oder gemeinsam jede beliebige Kombination der Verfahren, Prozesse und/oder Teile davon durchführen. Eine oder mehrere der Logikeinheiten 920 können Teil einer oder mehrerer CPUs 906 und/oder GPUs 908 sein und/oder eine oder mehrere der Logikeinheiten 920 können diskrete Komponenten oder auf andere Weise außerhalb der CPUs 906 und/oder der GPUs 908 sein. In Ausführungsformen können eine oder mehrere Logikeinheiten 920 ein Coprozessor einer oder mehrerer CPUs 906 und/oder einer oder mehrerer GPUs 908 sein.
  • Beispiele für die Logikeinheiten 920 enthalten einen oder mehrere Prozessorkerne und/oder Komponenten davon, wie Tensor Cores (TCs), Tensor Processing Units (TPUs), Pixel Visual Cores (PVCs), Vision Processing Units (VPUs), Graphics Processing Clusters (GPCs), Texture Processing Clusters (TPCs), Streaming Multiprozessoren (Streaming Multiprocessors - SMs), Tree Traversal Units (TTUs), Artificial Intelligence Accelerators (AIAs), Deep Learning Accelerators (DLAs), Arithmetic-Logic Units (ALUs), Application-Specific Integrated Circuits (ASICs), Floating Point Units (FPUs), Eingabe/Ausgabe (E/A)-Elemente (input/output - I/O), Peripheral Component Interconnect (PCI)- oder Peripheral Component Interconnect Express (PCIe)-Elemente und/oder ähnliches.
  • Die Kommunikationsschnittstelle 910 kann einen oder mehrere Empfänger, Sender und/oder Transceiver umfassen, die es der Rechnervorrichtung 900 ermöglichen, über ein elektronisches Kommunikationsnetzwerk, einschließlich drahtgebundener und/oder drahtloser Kommunikation, mit anderen Rechnervorrichtungen zu kommunizieren. Die Kommunikationsschnittstelle 910 kann Komponenten und Funktionen enthalten, die die Kommunikation über eine Reihe verschiedener Netzwerke ermöglichen, z. B. drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), kabelgebundene Netzwerke (z. B. Kommunikation über Ethernet oder InfiniBand), Low-Power-Wide-Area-Netzwerke (z. B. LoRaWAN, Sigfox usw.) und/oder das Internet.
  • Die I/O-Ports 912 können ermöglichen, dass die Rechnervorrichtung 900 logisch mit anderen Geräten gekoppelt wird, einschließlich der I/O-Komponenten 914, der Darstellungskomponente(n) 918 und/oder anderen Komponenten, von denen einige in die Rechnervorrichtung 900 eingebaut (z. B. integriert) sein können. Die I/O-Komponenten 914 umfassen ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, Gamecontroller, Satellitenschüssel, Scanner, Drucker, drahtloses Gerät, usw.. Die I/O-Komponenten 914 können eine natürliche Benutzeroberfläche (natural user interface - NUI) bereitstellen, die Luftgesten, Stimme oder andere physiologische Eingaben verarbeitet, die von einem Benutzer generiert werden. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Tasterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch in der Nähe des Bildschirms, Luftgesten, Kopf- und Augenverfolgung und Touch-Erkennung (wie unten näher beschrieben) implementieren, die mit einem Display der Rechnervorrichtung 900 verbunden ist. Die Rechnervorrichtung 900 kann Tiefenkameras umfassen, wie stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon, zur Gestendetektion und -erkennung. Darüber hinaus kann die Rechnervorrichtung 900 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) enthalten, die eine Bewegungserkennung ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von der Rechnervorrichtung 900 verwendet werden, um immersive Augmented Reality oder Virtual Reality darzustellen.
  • Das Netzteil 916 kann ein fest verdrahtetes Netzteil, ein Batterienetzteil oder eine Kombination davon umfassen. Das Netzteil 916 kann die Rechnervorrichtung 900 mit Strom versorgen, damit die Komponenten der Rechnervorrichtung 900 funktionieren können.
  • Die Darstellungskomponenten 918 können ein Display (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Heads-Up-Display (HUD), andere Anzeigetypen oder eine Kombination davon), Lautsprecher und/oder andere Darstellungskomponenten umfassen. Die Darstellungskomponenten 918 können Daten von anderen Komponenten (z. B. GPUs 908, CPUs 906 usw.) empfangen und die Daten ausgeben (z. B. als Bild, Video, Ton usw.).
  • Die Offenbarung kann im allgemeinen Kontext von Computercode- oder maschinenverwendbaren Anweisungen, einschließlich computer-ausführbarer Anweisungen wie Programmmodulen, die von einem Computer oder einem anderen Computer, wie einem Personal Data Assistent oder einem anderen Handheld-Gerät, ausgeführt werden, beschrieben werden. Im Allgemeinen beziehen sich Programmmodule einschließlich Routinen, Programmen, Objekten, Komponenten, Datenstrukturen, usw. auf Codes, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Die Offenbarung kann in einer Vielzahl von Systemkonfigurationen praktiziert werden, einschließlich Handheld-Geräte, Unterhaltungselektronik, Universalcomputer, spezisierte Rechnervorrichtungen usw.. Die Offenbarung kann auch in dezentralisierten Computerumgebungen praktiziert werden, in denen Aufgaben von Remote-Verarbeitungsgeräten ausgeführt werden, die über ein Kommunikationsnetzwerk verbunden sind.
  • Wie hier verwendet, sollte eine Rezitation von „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass sie nur ein Element oder eine Kombination von Elementen bedeutet. Beispielsweise kann „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 umfassen. 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 umfassen. Des Weiteren kann „mindestens eines von Element A und Element B“ mindestens eines von Element A, mindestens eines von Element B enthalten, oder mindestens eines von Element A und mindestens eines von Element B.
  • Der Gegenstand der vorliegenden Offenbarung wird in diesem Dokument mit Spezifität beschrieben, um die gesetzlichen Anforderungen zu erfüllen. Die Beschreibung selbst soll jedoch den Umfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder in Erwägung gezogen, dass der beanspruchte Gegenstand auch auf andere Weise verkörpert werden könnte, um in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien andere Schritte oder Kombinationen von Schritten zu berücksichtigen, die den in diesem Dokument beschriebenen ähnlich sind. Auch wenn die Begriffe „Schritt“ und/oder „Block“ in diesem Dokument verwendet werden können, um verschiedene Elemente der verwendeten Methoden zu bezeichnen, sollten die Begriffe nicht als eine bestimmte Reihenfolge unter den oder zwischen den verschiedenen hierin genannten Schritten interpretiert werden, es sei denn, die Reihenfolge der einzelnen Schritte wird 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 16/101232 [0103]

Claims (20)

  1. Verfahren, umfassend: Empfangen von Bilddaten, die für ein Bild repräsentativ sind, das unter Verwendung eines ersten Bildsensors mit einem ersten Sichtfeld erzeugt wurde; Erzeugen von projizierten Bilddaten, die für ein projiziertes Bild repräsentativ sind, basierend auf den Bilddaten; Anwenden der projizierten Bilddaten auf ein neuronales Netzwerk, wobei das neuronale Netzwerk so trainiert wurde, dass es Merkmale erkennt, die durch Trainingsbilddaten repräsentiert werden, die für Bilder repräsentativ sind, die unter Verwendung eines oder mehrerer zweiter Bildsensoren mit zweiten Sichtfeldern, die kleiner als das erste Sichtfeld sind, erzeugt wurden; und Berechnen von Daten, die für Merkmalserkennungen repräsentativ sind, die einem oder mehreren Merkmalen entsprechen, unter Verwendung des neuronalen Netzwerks und zumindest teilweise basierend auf den projizierten Bilddaten.
  2. Verfahren nach Anspruch 1, wobei der erste Bildsensor einer Fischaugenkamera eines Fahrzeugs mit einem Sichtfeld von gleich oder größer als 120 Grad entspricht.
  3. Verfahren nach Anspruch 1, ferner umfassend: virtuelles Einstellen des ersten Sichtfeldes des ersten Bildsensors; und Erzeugen, zumindest teilweise basierend auf den Bilddaten, aktualisierter Bilddaten, die dem virtuell eingestellten Sichtfeld entsprechen, wobei das Anwenden der Bilddaten das Anwenden der aktualisierten Bilddaten auf einen stereografischen Projektionsalgorithmus umfasst.
  4. Verfahren nach Anspruch 3, wobei das virtuelle Einstellen das Einstellen des ersten Sichtfeldes entlang einer vertikalen Richtung beinhaltet.
  5. Verfahren nach Anspruch 3, wobei das virtuelle Einstellen das Einstellen des ersten Sichtfeldes beinhaltet, sodass ein virtuelles Zentrum des ersten Bildsensors im Wesentlichen an einem Horizont ausgerichtet ist.
  6. Verfahren nach Anspruch 1, wobei die Daten den projizierten Bilddaten entsprechen und das Verfahren ferner umfasst: Umwandeln der Merkmalserkennungen in entsprechende Bild-Raum-Positionen, die dem Bild entsprechen; und Bestimmen, aus den Bild-Raum-Positionen, entsprechende Welt-Raum-Positionen des einen oder der mehreren Merkmale, die den Merkmalserkennungen entsprechen.
  7. Verfahren nach Anspruch 1, wobei die Merkmale mindestens einem von einem Straßenlayout, Objekten oder Wartebedingungen entsprechen.
  8. Verfahren, umfassend: Empfangen von Bilddaten, die für ein Bild repräsentativ sind, das unter Verwendung eines Bildsensors mit einem Sichtfeld erzeugt wurde; virtuelles Einstellen des Sichtfelds des Bildsensors; Erzeugen von aktualisierten Bilddaten, die dem virtuell eingestellten Sichtfeld entsprechen, zumindest teilweise basierend auf den Bilddaten; Anwenden der aktualisierten Bilddaten auf einen stereografischen Projektionsalgorithmus, um projizierte Bilddaten zu erzeugen, die für ein projiziertes Bild repräsentativ sind; Anwenden der projizierten Bilddaten auf ein Machine-Learning-Modell oder einen Computervision-Algorithmus; und Berechnen, unter Verwendung des Machine-Learning-Modells oder des Computervision-Algorithmus und zumindest teilweise basierend auf den projizierten Bilddaten, von Daten, die repräsentativ für Merkmalserkennungen sind, die einem oder mehreren Merkmalen entsprechen.
  9. Verfahren nach Anspruch 8, bei dem das Machine-Learning-Modell oder der Computervision-Algorithmus basierend auf Trainingsbilddaten trainiert oder programmiert werden, die repräsentativ für Bilder sind, die unter Verwendung von einem oder mehreren Bildsensoren erzeugt wurden, deren Sichtfelder kleiner als das Sichtfeld sind.
  10. Verfahren nach Anspruch 8, ferner umfassend das Senden der Daten, die für Merkmalserkennungen repräsentativ sind, an eine Komponente des Fahrzeugs zumindest zur Verwendung durch das Fahrzeug bei der Navigation auf einer Fahrfläche.
  11. Verfahren nach Anspruch 8, wobei das virtuelle Einstellen des Sichtfeldes des Bildsensors ein vertikales Einstellen des Sichtfeldes in einer Aufwärtsrichtung beinhaltet.
  12. Verfahren nach Anspruch 8, wobei das virtuelle Einstellen des Sichtfeldes des Bildsensors das Drehen einer mit dem Sichtfeld des Bildsensors verbundenen virtuellen Kugel um ein vorbestimmtes Maß beinhaltet.
  13. Verfahren nach Anspruch 8, wobei der stereografische Projektionsalgorithmus Pixel der aktualisierten Bilddaten auf eine zweidimensionale (2D) Zielebene projiziert, um das projizierte Bild zu erzeugen.
  14. Verfahren nach Anspruch 13, wobei jedes projizierte Pixel der projizierten Bilddaten einem Pixel der aktualisierten Bilddaten zumindest teilweise basierend auf einem Schnittpunkt einer virtuellen Linie mit dem Pixel der aktualisierten Bilddaten entspricht, das einem Kugelpixel entspricht, wobei die virtuelle Linie einen untersten Punkt einer virtuellen Kugel, die dem Bildsensor zugeordnet ist, und ein entsprechendes projiziertes Pixel auf der 2D-Zielebene verbindet.
  15. Verfahren nach Anspruch 8, wobei die Daten den projizierten Bilddaten entsprechen und das Verfahren ferner umfasst: Umwandeln der Merkmalserkennungen in entsprechende Bild-Raum-Positionen, die dem Bild entsprechen; und Bestimmen, aus den Bild-Raum-Positionen, entsprechende Welt-Raum-Positionen des einen oder der mehreren Merkmale, die den Merkmalserkennungen entsprechen.
  16. Verfahren nach Anspruch 8, wobei das Sichtfeld größer oder gleich 120 Grad ist.
  17. System, umfassend: einen Bildsensor mit einem Sichtfeld von mehr als 120 Grad, der in einem ersten Winkel in Bezug auf die Bodenebene ausgerichtet ist; eine Rechnervorrichtung, die eine oder mehrere Verarbeitungsvorrichtungen und eine oder mehrere Speichervorrichtungen beinhaltet, die kommunikativ mit der einen oder den mehreren Verarbeitungsvorrichtungen gekoppelt sind und darauf programmierte Befehle speichern, die, wenn sie von dem Prozessor ausgeführt werden, die Instanziierung von Folgendem veranlassen: einer Sichtfeldeinstellvorrichtung, um: das Sichtfeld des Bildsensors virtuell so einzustellen, dass der Bildsensor virtuell unter einem zweiten Winkel, der kleiner als der erste Winkel ist, in Bezug auf die Bodenebene ausgerichtet ist; und zumindest teilweise basierend auf dem virtuell eingestellten Sichtfeld aktualisierte Bilddaten aus Bilddaten zu erzeugen, die unter Verwendung des Bildsensors erzeugt wurden, einen Projektor, um die aktualisierten Bilddaten auf einen stereografischen Projektionsalgorithmus anzuwenden, um projizierte Bilddaten zu erzeugen, die ein projiziertes Bild darstellen; und einen Merkmalsdetektor, um: die projizierten Bilddaten auf ein Machine-Learning-Modell anzuwenden; und unter Verwendung des Machine-Learning-Modells und zumindest teilweise basierend auf den projizierten Bilddaten Daten zu berechnen, die repräsentativ für Merkmalserkennungen sind, die einem oder mehreren in dem projizierten Bild dargestellten Merkmalen entsprechen.
  18. Verfahren nach Anspruch 17, wobei das Machine-Learning-Modell basierend auf Trainingsbilddaten trainiert wird, die repräsentativ für Bilder sind, die unter Verwendung eines oder mehrerer Bildsensoren erzeugt wurden, deren Sichtfelder kleiner als das Sichtfeld sind.
  19. Verfahren nach Anspruch 17, wobei die Daten den projizierten Bilddaten entsprechen und das System ferner einen Ausgabewandler für Folgendes umfasst: Umwandeln der Merkmalserkennungen in jeweilige Bild-Raum-Positionen, die einem durch die Bilddaten dargestellten Bild entsprechen; und Bestimmen entsprechender Welt-Raum-Positionen des einen oder der mehreren Merkmale, die den Merkmalserkennungen entsprechen, aus den Bild-Raum-Positionen.
  20. Verfahren nach Anspruch 19, wobei das Sichtfeld größer als 180 Grad ist.
DE112021000104.3T 2020-04-06 2021-03-22 Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen Pending DE112021000104T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/841,577 2020-04-06
US16/841,577 US11538231B2 (en) 2020-04-06 2020-04-06 Projecting images captured using fisheye lenses for feature detection in autonomous machine applications
PCT/US2021/023508 WO2021206896A1 (en) 2020-04-06 2021-03-22 Projecting images captured using fisheye lenses for feature detection in autonomous machine applications

Publications (1)

Publication Number Publication Date
DE112021000104T5 true DE112021000104T5 (de) 2022-06-02

Family

ID=75539940

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000104.3T Pending DE112021000104T5 (de) 2020-04-06 2021-03-22 Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen

Country Status (4)

Country Link
US (2) US11538231B2 (de)
CN (1) CN115136148A (de)
DE (1) DE112021000104T5 (de)
WO (1) WO2021206896A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10908614B2 (en) * 2017-12-19 2021-02-02 Here Global B.V. Method and apparatus for providing unknown moving object detection
CN117744196A (zh) * 2020-10-13 2024-03-22 弗莱瑞尔公司 通过自动分析传感器数据生成物理结构和环境的测量结果
US20220120907A1 (en) * 2020-10-15 2022-04-21 Caterpillar Paving Products Inc. Peripheral perception system for a machine
TWI786565B (zh) * 2021-03-11 2022-12-11 國立臺灣大學 用於魚眼影像的深度人臉辨識的方法及系統
US11866194B2 (en) * 2021-10-30 2024-01-09 Beta Air, Llc Systems and methods for a visual system for an electric aircraft
CN114049479A (zh) * 2021-11-10 2022-02-15 苏州魔视智能科技有限公司 自监督的鱼眼相机图像特征点提取方法、装置及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6091586B1 (ja) 2015-11-12 2017-03-08 三菱電機株式会社 車両用画像処理装置および車両用画像処理システム
US10217488B1 (en) * 2017-12-15 2019-02-26 Snap Inc. Spherical video editing
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
WO2020192039A1 (en) * 2019-03-27 2020-10-01 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Three-dimensional localization using light-depth images

Also Published As

Publication number Publication date
WO2021206896A1 (en) 2021-10-14
US20230065931A1 (en) 2023-03-02
CN115136148A (zh) 2022-09-30
US11538231B2 (en) 2022-12-27
US20210312203A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112020004139T5 (de) Erstellung von karten und lokalisierung für anwendungen im bereich des autonomen fahrens
DE112020002166T5 (de) Simulation realistischer testdaten aus transformierten sensordaten der realen welt für autonome maschinenanwendungen
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE102021121558A1 (de) Auf neuronalen netzen basierende bestimmung der blickrichtung unter verwendung räumlicher modelle
DE112019006484T5 (de) Detektion von abständen zu hindernissen in autonomen maschinenanwendungen
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE112020001396T5 (de) Formfusion zur bildanalyse
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE102019113114A1 (de) Verhaltensgesteuerte wegplanung in autonomen maschinenanwendungen
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE102021125234A1 (de) Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen
DE102022104026A1 (de) Erzeugung von ground-truth-daten für die wahrnehmung durch tiefe neuronale netze in anwendungen für autonomes fahren
DE102021105245A1 (de) Verwenden von bildaugmentation mit simulierten objekten zum trainieren von maschinenlernmodellen in autonomen fahranwendungen
DE102022118649A1 (de) Belief Propagation für das Abstandsbild-Mapping in autonomen Maschinenanwendungen
DE102020130749A1 (de) System zum maschinellen lernen zur blickbestimmung mit adaptiver gewichtung von eingaben
DE102020131353A1 (de) Auf einem neuronalen netz basierende gesichtsanalyse mittels gesichtslandmarken und zugehörigen vertrauenswerten

Legal Events

Date Code Title Description
R012 Request for examination validly filed