DE102021133638A1 - Bildzusammensetzung in multi-view-automobilsystemen und robotersystemen - Google Patents

Bildzusammensetzung in multi-view-automobilsystemen und robotersystemen Download PDF

Info

Publication number
DE102021133638A1
DE102021133638A1 DE102021133638.4A DE102021133638A DE102021133638A1 DE 102021133638 A1 DE102021133638 A1 DE 102021133638A1 DE 102021133638 A DE102021133638 A DE 102021133638A DE 102021133638 A1 DE102021133638 A1 DE 102021133638A1
Authority
DE
Germany
Prior art keywords
image
processors
differences
vehicle
overlap
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
DE102021133638.4A
Other languages
English (en)
Inventor
Yuzhuo Ren
Niranjan Avadhanam
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 DE102021133638A1 publication Critical patent/DE102021133638A1/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/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R1/00Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/20Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/22Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle
    • B60R1/23Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle with a predetermined field of view
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/14Transformations for image registration, e.g. adjusting or mapping for alignment of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/10Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used
    • B60R2300/105Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of camera system used using multiple cameras
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/20Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of display used
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • B60R2300/303Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing using joined images, e.g. multiple camera images
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/804Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for lane monitoring
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/806Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for aiding parking
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/8093Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for obstacle warning
    • 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/20Special algorithmic details
    • G06T2207/20212Image combination
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • 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/30168Image quality inspection
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mechanical Engineering (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Robotics (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

In verschiedenen Beispielen erzeugen zwei oder mehr Kameras in einem Automobil-Surround-View-System zwei oder mehr Eingabebilder, die in ein einziges zusammengefügtes Bild zusammenzuführen oder zu kombinieren sind. In einer Ausführungsform berechnet, um die Qualität eines zusammengefügten Bildes zu verbessern, ein Rückkopplungsmodul zwei oder mehr Kennwerte, die Fehler zwischen dem zusammengefügten Bild und einem oder mehreren Eingabebilder darstellen. Wenn ein berechneter Kennwert strukturelle Fehler in dem zusammengefügten Bild angibt, berechnet das Rückkopplungsmodul eine oder mehrere geometrische Transformationen und wendet diese an, die auf das eine oder mehrere Eingabebilder anzuwenden sind. Wenn ein berechneter Kennwert Farbfehler in dem zusammengefügten Bild angibt, berechnet das Rückkopplungsmodul eine oder mehrere photometrische Transformationen und wendet diese oder mehrere an, um für ein oder mehrere Eingabebilder zu gelten.

Description

  • HINTERGRUND
  • Automobilsysteme setzen zunehmend Visualisierungslösungen ein, um Fahrer dabei zu helfen, Informationen bereitzustellen und Sicherheit zu erhöhen. Verschiedene Techniken, um Visualisierung in automobilen Anwendungen bereitzustellen, leiden unter verschiedenen Nachteilen. Kameras sind beispielsweise häufig unfähig, alle Bereiche, in denen Sicherheitsprobleme auftreten können, oder alle Bereiche, die für den Betrachter von Interesse sein können, zu erfassen. Versuche, breitere Sichtfelder bereitzustellen, können zu Bildern führen, die verzerrt sind und/oder aufgrund inhärenter Kamerabegrenzungen oder Charakteristiken, wie beispielsweise Position, Orientierung und intrinsische Parameter, Artefakte aufweisen. Jede verzerrte Visualisierung oder Artefakte in automobilen Visualisierung erhöhen die Schwierigkeit für Fahrer, anderen automobile Benutzern Sicherheitsmonitore oder herkömmliche Bildverarbeitungstechniken Informationen zu verarbeiten, die durch ein automobiles Visualisierungssystem bereitgestellt werden, weil jene Artefakte und/oder verzerrte Visualisierung nicht die reale Welt reflektieren. Diese Verzerrungen und/oder Artefakte verringern potenziell die Fahrersicherheit durch Bereitstellen ungenauer oder unvollständiger Informationen.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der vorliegenden Offenbarung betreffen eine verbesserte Bildzusammensetzung in Automobil- oder Robotersystemen unter Verwendung von Qualitätsbewertungsrückkopplung. Systeme und Verfahren werden offenbart, um verbesserte Panoramabilder zu konstruieren, die in einem Automobilsystem oder Robotersystem oder Plattform erzeugt werden, um Benutzersicherheit und Diagnosefähigkeit zu erleichtern. Eine Bildzusammensetzung umfasst das Kombinieren von Bilddaten von zwei oder mehr Quellen, wie beispielsweise Kameras, zur Anzeige in einer einzigen Visualisierungs-Engine. Das heißt, dass erfasste Bilddaten von jeder einzelnen Kamera kombiniert oder zusammengefügt werden, um eine ganze Querformatansicht zu präsentieren. Herkömmliche Zusammensetzungsprozesses führen häufig zu nicht ordnungsgemäßer Ausrichtung zwischen einzelnen Bildern, wobei Artefakte und Abnormalitäten erzeugt werden, welche die ganze Querformatansicht verdecken, was besonders in Fahrzeuganwendungen problematisch ist, wo Artefakten in Sicherheits-kritischen Regionen erscheinen können.
  • Herkömmliche Automobil-Visualisierungssysteme sind mit offenen Regelkreis und auf paarweise Zusammensetzung begrenzt und können naive Bildzusammensetzungstechniken, wie beispielsweise Homographieschätzung, benutzen, welche das Schätzen der Korrespondenz zwischen Merkmalspunkten erfordert, die zwischen Bilddaten für zwei einzelne Bilder identifiziert werden. Weil Merkmalspunkte jedoch lediglich in der Anwesenheit von distinkten Objekten in einer Szene auftreten, ist diese Vorgehensweise für einige Szenen ineffektiv und erzeugt ein geometrische Verzerrung, wobei zusammengefügte Bilder fehlausgerichtete Ränder zwischen überlappenden Abschnitten enthalten. Außerdem erzeugt Homographieschätzung eine geometrische Verzerrung in Szenen mit Tiefe.
  • Im Gegensatz zu herkömmlichen Systemen, wie beispielsweise jene, die oben beschrieben sind, benutzt die verbesserte Bildzusammensetzung in Automobilsystemen eine Qualitätsbewertungsrückkopplung in einem Zusammensetzungs-Qualitätsmodul mit geschlossenem Regelkreis, um verschiedene Einstellungen für jedes Bild zu führen, so dass Artefakte und andere Verzerrungen minimiert werden. Dieses Zusammensetzungs-Qualitätsmodul empfängt als Eingabe Kalibrierungsparameter sowie auch Bilddaten von zwei oder mehr Kameras und kann optional ebenso Daten von anderen Fahrzeugsensoren empfangen. Das Zusammensetzungs-Qualitätsmodul berechnet eine Überlappungsregion für jedes Bildpaar und basierend auf dieser Überlappungsregion einen oder mehrere Zusammensetzungs-Qualitätskennwerte. Wenn irgendein Zusammensetzungs-Qualitätskennwert unter einem Schwellenwert ist, berechnet ein Zusammensetzungs-Qualitätsmodul eine oder mehrere geometrische oder photometrische Transformationen und wendet diese an, um sie auf einer Teilmenge der Eingabebilddaten durchzuführen. Basierend auf transformierten Bilddaten führt das Zusammensetzungs-Qualitätsmodul Regelkreise aus, bis der eine oder mehrere Zusammensetzungs-Qualitätskennwerte alle über oder gleich einem Schwellenwert sind. Während jedes Regelkreises berechnet das Zusammensetzungs-Qualitätsmodul den einen oder mehrere Zusammensetzungs-Qualitätskennwerte oder wendet eine oder mehrere geometrische oder photometrische Transformationen an.
  • Figurenliste
  • Die vorliegenden Systeme und Verfahren zur verbesserten Bildzusammensetzung in Automobilsystemen unter Verwendung von Qualitätsbewertungsrückkopplung werden ausführlich nachstehend mit Bezugnahme auf die beigefügten Zeichnungsfiguren beschrieben, wobei:
    • 1 ein Blockdiagramm ist, das eine Zusammensetzung-Pipeline veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 2A eine Veranschaulichung der Zusammensetzung unter Verwendung zweier Bilder gemäß einiger Ausführungsformen der vorliegenden Offenbarung ist;
    • 2B eine Veranschaulichung einer Schalen-projizierten Bildzusammensetzung vor und nach Optimierung gemäß einigen Ausführungsformen ist;
    • 3 ein Blockdiagramm ist, das eine Pipeline einer Zusammensetzungs-Engine gemäß einigen Ausführungsformen der vorliegenden Offenbarung veranschaulicht;
    • 4 ein Blockdiagramm ist, das ein Zusammensetzungsmodul veranschaulicht, um eine verbesserte Bildzusammensetzung durchzuführen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 5 ein Blockdiagramm ist, das ein Zusammensetzungs-Qualitätsmodul veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 6 ein Blockdiagramm ist, das ein Qualitätsbewertungsmodul veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 7 einen Prozess veranschaulicht, um eine verbesserte Zusammensetzung unter Verwendung einer Zusammensetzungsqualitäts-Optimierung durchzuführen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
    • 8A eine Veranschaulichung eines Beispiels eines autonomen Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung ist;
    • 8B ein Beispiel von Kameraorten und Sichtfeldern für das Beispiel des autonomen Fahrzeugs von 8A gemäß einigen Ausführungsformen der vorliegenden Offenbarung ist;
    • 8C ein Blockdiagramm eines Beispiels einer Systemarchitektur für das Beispiel des autonomen Fahrzeugs von 8A gemäß einigen Ausführungsformen der vorliegenden Offenbarung ist;
    • 8D ein Systemdiagramm zur Kommunikation zwischen einem Cloud-basierten Server(n) und dem Beispiel des autonomen Fahrzeugs von 8A gemäß einigen Ausführungsformen der vorliegenden Offenbarung ist; und
    • 9 ein Blockdiagramm eines Beispiel einer Rechenvorrichtung ist, die zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Systeme und Verfahren werden offenbart, die eine verbesserte Bildzusammensetzungs-Pipeline, ein Benutzen der Qualitätsbewertungsrückkopplung zur Verwendung durch Automobilsysteme und Plattformen oder Robotersysteme und Plattformen mit Surround-View-Fähigkeiten betreffen.
  • In Multi-View-Systemen, wie beispielsweise jenen, die in Surround-View-Fahrzeugsysteme eingesetzt werden, erfassen einzelne Kameras Bilder, die einem Abschnitt einer Landschaft entsprechen. Die erfassten Bilddaten von jeder einzelnen Kamera werden kombiniert oder zusammengefügt, um ein ganze Landschaftsansicht in einem einzigen Bild mittels einer Zusammensetzung von zwei oder mehr Bildern zu präsentieren. Eine Zusammensetzung wird unter Verwendung einer Zusammensetzungs-Engine oder einer Zusammensetzungs-Pipeline als eine Komponente eines Surround-View-Fahrzeugsystems oder irgendeines anderen Systems durchgeführt, bei dem mehrere überlappende Bilder kombiniert werden müssen.
  • Wenn ein Surround-View-Fahrzeugsystem, wie ferner hier beschrieben, zwei oder mehr durch Fahrzeugkameras erfasste Bilder zusammenfügt, sind das resultierende Bild oder Bilder häufig nicht ordnungsgemäß ausgerichtet, enthalten Artefakten und Abnormalitäten, welche die ganze Querformatansicht verdecken oder durcheinander bringen. Beispiele davon werden ferner nachstehend in Verbindung mit 2A beschrieben. Herkömmliche Vorgehensweisen auf Zusammensetzungsbildern konzentrieren sich auf Homographieschätzung, um nicht zusammengefügte Bilder auszurichten.
  • Unter Verwendung der Homographieschätzung kombinieren herkömmliche Surround-View-Automobilsysteme mit offenem Regelkreis überlappende Bilder durch Schätzen der Korrespondenz zwischen in einzelnen Bilddaten identifizierten Merkmalspunkten. Das heißt, dass ein System, das Homographieschätzung implementiert, um eine Bildzusammensetzung durchzuführen, Merkmalspunkte in jedem von zwei zu kombinierenden Bildern identifiziert und schätzt, wie Merkmalspunkte in jedem Bild einander entsprechen. Unter Verwendung dieser Korrespondenz wird ein überlappender Bereich identifiziert und Bilder werden kombiniert. Weil Merkmalspunkte jedoch lediglich in der Anwesenheit von distinkten Objekten in einer Szene auftreten, sind herkömmliche Vorgehensweisen, wie beispielsweise Homographieschätzung, für einige Szenen unwirksam und können eine geometrische Verzerrung erzeugten, die manifestiert, wenn zusammengefügte Bilder fehlausgerichtete Ränder zwischen überlappenden Abschnitte enthalten. Außerdem erzeugt die Homographieschätzung eine geometrische Verzerrung für ganze Querformatansichten in Szenen mit Tiefe.
  • Herkömmliche Vorgehensweisen weisen ebenfalls begrenzte Anwendbarkeit auf und sind lediglich zur paarweisen Zusammensetzung verwendbar. Diese herkömmlichen Vorgehensweisen können nicht für Multi-View-Systeme verwendet werden, bei denen mehr als zwei Kameras verwendet werden. Zusätzlich zu Begrenzungen der homographischen Schätzung führen Multi-View-Systeme eine photometrische Verzerrung ein, bei der einzelne Kameras unterschiedliche Belichtungspegel aufweisen, was zu inkonsistenten Farbwerten über zusammengefügte ganze Querformatansichten führt, wie ferner nachstehend in Verbindung mit 2A beschrieben.
  • Im Gegensatz dazu ist eine Rückkopplungs-basierte Vorgehensweise mit geschlossenem Regelkreis, um eine Bildzusammensetzung in Automobilsystemen und Plattformen oder Robotersystemen und Plattformen mit Surround-View-Fähigkeit durchzuführen, für die Zusammensetzung von zwei oder mehr Bildern in Einstellungen verwendbar, bei denen eine homographische Schätzung nicht verwendbar ist oder eine große Menge von Artefakten einführt. Außerdem ist eine Rückkopplungs-basierte Vorgehensweise robust angesichts photometrischer Verzerrung, imstande, eine Farbkorrektur durchzuführen, um Bilder, die als Eingabe in Automobilsysteme und Plattformen verwendet werden, oder Robotersysteme und Plattformen mit Surround-View-Fähigkeit anzupassen, welche die Rückkopplungs-basierte Vorgehensweise implementiert.
  • Eine Rückkopplungs-basierte Vorgehensweise für die Bildzusammensetzung in Automobilsystemen und Plattformen oder Robotersystemen und Plattformen mit Surround-View-Fähigkeit sowie auch anderen Systemen, die Bildzusammensetzung erfordern, benutzt ein Zusammensetzungs-Qualitätsmodul mit geschlossenem Regelkreis, um eine geometrische Einstellung und eine photometrische Ausrichtung zwischen zwei oder mehr zusammengefügten Bildern zu führen. Dieses Zusammensetzungs-Qualitätsmodul empfängt, wie nachstehend in Verbindung mit 4-6 beschrieben, als Eingabe Bilddaten sowie auch intrinsische und extrinsische Kalibrierungsparameter von zwei oder mehr Kameras in einem Automobilsysteme und Plattformen oder Robotersystemen und Plattformen mit Surround-View-Fähigkeit oder kann optional Daten von anderen Fahrzeugsensoren empfangen, wie ferner hier beschrieben.
  • Jedes Bild in einem Paar von Bildern wird zuerst in den Zusammensetzungsraum von dem Fischaugenraum konvertiert, wie von jeder Kamera erfasst, die hier ferner in Verbindung mit 8B beschrieben ist. Eine Zusammensetzungs-Engine oder ein Zusammensetzungs-Modul fügt dann, wie nachstehend in Verbindung mit 1 und 4 beschrieben, zwei oder mehr einzelne Bilder im Zusammensetzungsraum durch Projizieren jedes Bildes auf eine Bildkoordinate der virtuellen Kamera zusammen, wobei die virtuelle Kamera ein zusammengefügtes oder kombiniertes Paar von Bildern darstellt, die eine Überlappungsregion umfassen. Diese Überlappungsregion wird für jedes Bildpaar berechnet und gibt Abschnitte jedes Bildes von jeder Kamera an, die in dem virtuellen Bildraum der Kamera überlappen. Basierend auf dieser Überlappungsregion führt ein Zusammensetzungs-Qualitätsmodul eine oder mehrere Qualitätsbewertungsoperationen durch, um einen oder mehrere Zusammensetzungs-Qualitätskennwerte zu berechnen und eine oder mehrere Transformationen zu bestimmen, die auf die einzelnen Eingabebilder jedes Bildpaars anzuwenden sind.
  • Beispielsweise führt ein Zusammensetzungs-Qualitätsmodul in einer Ausführungsform eine oder mehrere Qualitätsbewertungsoperationen durch, um einen geometrischen Kennwert und einen photometrischen Kennwert für jedes zusammengefügte Bild zu berechnen, wie ferner nachstehend in Verbindung mit 6 beschrieben. Ein geometrischer Kennwert ist ein numerischer Wert, der eine Größe oder einen Grad von strukturellen Fehlern darstellt, die als Ergebnis der Zusammensetzung von zwei oder mehr Bilder in ein einziges Bild durch eine Zusammensetzungs-Engine erzeugt werden, wie ferner nachstehend in Verbindung mit 5 und 6 beschrieben. In einer Ausführungsform gibt ein höherer geometrischer Kennwert an, dass ein zusammengefügtes Bild weniger strukturelle Fehler umfasst und stärker eine ideale Kombination von zwei Bildern durch eine Zusammensetzungs-Engine darstellt. Ein niedrigerer geometrischer Kennwert gibt an, dass ein zusammengefügtes Bild mehrere strukturelle Fehler umfasst, die eine nicht ordnungsgemäße Zusammensetzung durch eine Zusammensetzungs-Engine darstellen. Ein photometrischer Kennwert ist ein numerischer Wert, der einen Grad des Farbunterschieds zwischen zwei Bildern darstellt, die zusammenzuführen sind, wie ferner nachstehend in Verbindung mit 2 und 6 beschrieben. In einer Ausführungsform gibt ein höherer Kennwert an, dass jedes Bild, das zusammenzuführen ist, einem anderen sehr im Hinblick auf Farbeigenschaften ähnelt. Eine niedrigerer Kennwert gibt an, dass jedes Bild, das zusammenzuführen ist, signifikante Farbeigenschaftsunterschiede umfasst.
  • Ein Zusammensetzungs-Qualitätsmodul analysiert, wie ferner nachstehend in Verbindung mit 5 beschrieben, sowohl geometrische als auch photometrische Kennwerte. Wenn in einer Ausführungsform ein geometrischer Kennwert unter einem Schwellenwert ist (schlechte Zusammensetzungsqualität angibt), wendet ein Zusammensetzungs-Qualitätsmodul eine geometrische Ausrichtung an. Während der geometrischen Ausrichtung berechnet ein Zusammensetzungs-Qualitätsmodul eine 3D-Transformation, wie ferner nachstehend in Verbindung mit 5 beschrieben, um auf ein oder mehrere der zusammengefügten Bilder angewandt zu werden. In einer Ausführungsform ist eine 3D-Transformation eine geometrische Transformation, die ein oder mehrere der zusammengefügten Bilder modifiziert und die extrinsische Kalibrierung einer Kamera einstellt, während die extrinsische Kalibrierung der anderen Kamera unverändert bleibt, so dass eine geometrische Qualitätsmatrix maximiert wird. Sobald das Zusammensetzungs-Qualitätsmodul die 3D-Transformation berechnet, wendet das Zusammensetzungs-Qualitätsmodul die Transformation an, um ein maximal ausgerichtetes zusammengefügtes oder virtuelles Kamerabild zu erzeugen.
  • Wenn in einer Ausführungsform ein photometrischer Kennwert unter einem Schwellenwert ist (schlechte Farbübereinstimmung zwischen zwei Eingabebildern angibt), wendet ein Zusammensetzungs-Qualitätsmodul eine photometrische Einstellung an, wie ferner nachstehend in Verbindung mit 5 beschrieben. Während der photometrischen Einstellung verbessert ein Zusammensetzungs-Qualitätsmodul die photometrische Qualität durch Anpassung der Farbintensität und des Farbwinkels zwischen den Eingabebildern von zwei Kameras. Das Zusammensetzungs-Qualitätsmodul berechnet und wendet eine Transformation an, um eine Intensität und einen Winkel eines Zieleingabebildes einem Quelleneingabebild für einzelne RGB-Kanäle anzupassen, wobei die Transformation auf das Anwenden von Skalierung und Versatz auf Farbkanäle eines Bildes basiert. Um optimale Skalierungen und Versätze zu finden, sucht das Zusammensetzungs-Qualitätsmodul direkt nach Werten, um den photometrischen Kennwert und als Ergebnis die Zusammensetzungsqualität zu maximieren.
  • Um Leistung zu verbessern und die Zeit zu verringern, die erforderlich ist, um optimale Skalierungen und Versätze zu bestimmen, verringert das Zusammensetzungs-Qualitätsmodul in einer Ausführungsform den Suchraum durch Berechnen einer anfänglichen Skalierung und eines anfänglichen Versatzes als ein Mittelwert von sowohl den Quellen- als auch den Zielbildern.
  • Weil Automobilsysteme Echtzeitleistung erfordern, benutzt ein Zusammensetzungs-Qualitätsmodul in einer Ausführungsform einen optischen Strömungsvektor, um den Suchraum zu verringern, der erforderlich ist, um eine 3D-Transformation beim Durchführen einer geometrischen Einstellung zu berechnen, wie ferner nachstehend in Verbindung mit 5 beschrieben. Der verringerte Suchraum erleichtert eine Echtzeitbestimmung der 3D-Transformation. Um den Suchraum zu verringern, erleichtert der optische Strömungsvektor die Identifikation einer Richtung durch das Zusammensetzungs-Qualitätsmodul, um ein Bild zu drehen, um den geometrischen Qualitätskennwert zu verbessern, um somit eine beliebige Transformation zu eliminieren, die das Bild nicht in dieser spezifischen Richtung dreht.
  • Während die Zusammensetzung von zwei Bildern von zwei Kameras in einem Automobil-Surround-View-System extensiv für den Zweck der Veranschaulichung verwendet wird, sei bemerkt, dass die hier beschriebener Techniken für andere Verwendungen angepasst werden können. Beispielsweise ist eine verbesserte Bildzusammensetzung unter Verwendung der verschiedenen hier beschriebenen Techniken in einer Ausführungsform verwendbar, um verbesserte virtuelle Realitätssysteme zu erleichtern. In einer anderen Ausführungsform ist die verbesserte Bildzusammensetzung unter Verwendung der verschiedenen hier beschriebenen Techniken verwendbar, um autonome oder halbautonome Fahrzeuge oder andere Automobilanwendungen zu erleichtern, wobei ein zusammengefügtes Bild in ein neuronales Netzwerk oder eine andere Technik maschinellen Lernens eingegeben wird, das von einem der Systeme des Autos (e.g., Steuersystem, Notbremsung) verwendet wird. Eine verbesserte Bildzusammensetzung unter Verwendung der verschiedenen hier beschriebener Techniken ist in einer anderen Ausführungsform verwendbar, um Sicherheitskamerasysteme zu verbessern. In einer anderen Ausführungsform ist eine verbesserte Bildzusammensetzung unter Verwendung der verschiedenen hier beschriebener Techniken für medizinische Anwendungen verwendbar. Beispielsweise ist eine verbesserte Bildzusammensetzung verwendbar, um Bilder und/oder Video von mehreren orthoskopischen Kameras zusammenzufügen, um einem Facharzt oder einem Roboterchirurgen eine verbesserte Sicht eines ganzen Bereichs um ein Organ zu geben, an dem operiert wird. In einer anderen Ausführungsform ist die verbesserte Bildzusammensetzung unter Verwendung der verschiedenen hier beschriebener Techniken verwendbar, um Projektoren in Kinos oder anderen Visualisierungssysteme auszurichten, die eine Kombination von mehreren Kameraansichten (e.g., IMAX) erfordern. Baugerät kann in einer anderen Ausführungsform die verbesserte Bildzusammensetzung unter Verwendung der verschiedenen hier beschriebener Techniken benutzen, die beispielsweise dadurch verwendbar ist, dass einem Baggerführer der Bereich gezeigt wird, der ausgehoben wird, wobei die Sicht vielleicht durch die Schaufel oder eine andere Baugerätekomponente behindert ist.
  • Hier beschriebene Zusammensetzungstechniken sind in einer Ausführungsform verwendbar, um Automobil-Surround-View-Systeme zu erleichtern, die mehr als zwei Kameras umfassen, die mehr als zwei Bilder erzeugen, die zu kombinieren oder zusammenzufügen sind. In Automobil-Surround-View-Systemen, die drei oder mehr Kameras umfassen, die zusammenzufügende Bilder erzeugen, die zusammenzufügen sind, wird die verbesserte Bildzusammensetzungs-Pipeline, welche die hier beschrieben Qualitätsbewertungsrückkopplung benutzt, in zwei unterschiedliche Weisen in einer Ausführungsform angewandt. Zunächst kann das Zusammensetzungs-Qualitätsmodul in einer Ausführungsform die Qualität der Reihe nach und für jede überlappten Region zwischen drei oder mehr Bildern, die zu kombinieren oder zusammenzufügen sind, die von drei oder mehr Kameras erfasst werden, bewerten und verbessern. Bilder, die eingestellt sind, werden als Referenzbilder beim Einstellen der nächsten überlappten Region verwendet. Zweitens optimiert das Zusammensetzungs-Qualitätsmodul in einer Ausführungsform die beerten Zusammensetzungsqualität für alle überlappten Regionen zwischen drei oder mehr zu kombinierenden oder zusammenzufügenden Bildern, die von drei oder mehr Kameras erfasst werden. Um die geometrische Qualität zu optimieren, fasst das Zusammensetzungs-Qualitätsmodul die geometrischen Kennwerte für alle überlappenden Regionen zwischen Bildern zusammen, um einen geometrischen Gesamtkennwert für das zusammengefügte Bild als ein ganzes zu bilden. Basierend auf diesem Kennwert sucht das Zusammensetzungs-Qualitätsmodul auf allen Bildern einen potenziellen Transformationsraum, wie nachstehend in Verbindung mit 5 beschrieben, um den geometrischen Gesamtkennwert zu optimieren. Um die photometrische Qualität zu optimieren, fasst das Zusammensetzungs-Qualitätsmodul den photometrischen Kennwert aller überlappenden Regionen zwischen den drei oder mehr Eingabebildern zusammen, um einen photometrischen Gesamtkennwert für das zusammengefügte Bild zu bilden. Basierend auf diesem Kennwert durchsucht das Zusammensetzungs-Qualitätsmodul den Skalierungs- und Versatzraum jedes Eingabebildes, um den photometrischen Gesamtkennwert zu maximieren.
  • In der vorangehenden und folgenden Beschreibung werden verschiedene Techniken beschrieben. Zu Erklärungszwecken werden spezifische Konfigurationen und Einzelheiten angegeben, um ein gründliches Verständnis der möglichen Arten der Implementierung der Techniken zu ermöglichen. Es ist jedoch auch offensichtlich, dass die nachstehend beschriebenen Techniken in verschiedenen Konfigurationen ohne die spezifischen Einzelheiten praktiziert werden können. Darüber hinaus können bekannte Merkmale weggelassen oder vereinfacht werden, um zu vermeiden, dass die beschriebenen Techniken verschleiert werden.
  • Mit Bezugnahme auf 1 ist 1 ein Beispiel einer Architektur, um eine Video- und/oder Bildzusammensetzung gemäß einigen Ausführungsformen der vorliegenden Offenbarung durchzuführen. Es sei jedoch zu verstehen, dass diese und andere hier beschriebenen Anordnungen lediglich als Beispiele dargelegt werden. Andere Anordnungen und Elemente (z.B. Maschinen, Schnittstellen, Funktionen, Reihenfolgen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle von den gezeigten verwendet werden und einige Elemente können insgesamt weggelassen werden. Ferner sind viele der hier beschriebenen Elemente funktionale Entitäten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und Ort implementiert werden können. Verschiedene Funktionen, die hier als von Entitäten durchgeführt beschrieben 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.
  • 1 ist ein Blockdiagramm, das eine Zusammensetzungs-Pipeline oder einen Zusammensetzungsblock veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In einer Zusammensetzungs-Pipeline empfängt eine Zusammensetzungs-Engine 110 eine Multi-View-Eingabe 104. Eine Multi-View-Eingabe besteht in einer Ausführungsform aus Daten, wie beispielsweise Bilder von Kameras 102, Daten von Sensoren 106 und/oder Kalibrierungsparameter 108. In einer Ausführungsform umfasst die Multi-View-Eingabe 104 Kameras 102, wie beispielsweise Surround-Kameras 874, Weitsichtkameras 870, Mittelbereichskameras 898, Fernbereichskameras 898 oder Stereokameras 868, wie ferner nachstehend in Verbindung mit 8B beschrieben. In einer Ausführungsform sind Kameras 102 eine beliebige Hardwarevorrichtung, um Bild- und/oder Videodaten zu erfassen. Beispielsweise sind in einer Ausführungsform die Kameras 102 Fischaugenkameras oder umfassen Fischaugenlinsen und erzeugen Bilder mit einer Fischaugenprojektion oder Perspektive. In einer anderen Ausführungsform sind Kameras 102 eine beliebige andere Art von Kamera, um eine Visualisierung 118 in Automobil-Surround-View-Systemen zu erleichtern. Die Kameras 102 sind in einer anderen Ausführungsform eine beliebige Art von Kamera, um die Visualisierung in Systemen zu erleichtern, die eine Bildzusammensetzung durchführen, wie ferner hier beschrieben.
  • Zwei oder mehr Kameras 102 erzeugen Multi-View-Eingabebilder 104. Die Bilder sind Daten, die durch eine oder mehrere Kameras 102 erzeugt werden, die in einer Ausführungsform eine Position in einem Blickfeld darstellen, wie beispielsweise den Bereich, der ein Fahrzeug in einem Automobil-Surround-View-System umgibt. In einer Ausführungsform umfasst die Multi-View-Eingabe 104 Kalibrierungsparameter 108. Kalibrierungsparameter 108 sind in einer Ausführungsform ein Satz von Datenwerten, die verwendbar sind, um eine oder mehrere Kameras 102 zu konfigurieren. Beispielsweise umfassen Kalibrierungsparameter 108 Farb-, Kontrast- und Helligkeitsniveaus in einer Ausführungsform. Kalibrierungsparameter 108 sind in einer anderen Ausführungsform ein Satz von Datenwerten, die anderen Komponenten eines Automobil- oder Bilderfassungssystems zugeordnet sind, wie beispielsweise Sensoren 106. Sensoren sind in einer Ausführungsform Software- und/oder Hardwarekomponenten, um Daten zu sammeln, die einer Umgebung zugeordnet sind, wie beispielsweise RADAR-Sensoren 860 oder LIDAR-Sensoren 864, wie ferner hier beschrieben. Kalibrierungsparameter 108 umfassen intrinsische und extrinsische Parameter. In einer Ausführungsform sind intrinsische Parameter Brennweite, optische Mitte oder Hauptpunkt, Schrägungskoeffizienten und/oder Verzerrungsparameter. Extrinsische Parameter sind in einer Ausführungsform Kameradrehung und Kameratranslation. Beispielsweise umfassen extrinsische Kalibrierungsparameter 108 in einer Ausführungsform Positionsdaten, die Drehung und andere geometrische Einstellungen in einem oder mehreren Bildern von einer oder mehreren Kameras 102 darstellen. Multi-View-Eingabe umfasst, in einer Ausführungsform, zwei oder mehr Bilder von zwei oder mehr Kameras 102 und Kalibrierungsparameter 108, die den beiden oder mehreren Bildern zugeordnet sind. Jedes Bild ist in einer Ausführungsform seinem eigenen individuellen Satz von Kalibrierungsparametern 108 zugeordnet. In einer anderen Ausführungsform nutzen zwei oder mehr Kameras 102 einen oder mehrere Sätze von Kalibrierungsparametern 108 gemeinsam. Kalibrierungsparameter 108 können in einer Ausführungsform nicht verfügbar sein. Wenn Kalibrierungsparameter 108 nicht verfügbar sind, werden Merkmalsanpassungstechniken, wie beispielsweise Homographieschätzung, verwendet, um die Transformation zu schätzen, die verwendbar ist, um zwei oder mehr Multi-View-Eingabebilder 104 in einen gemeinsamen zusammengefügten Raum oder ein einziges Bild zu transformieren.
  • Eine Zusammensetzungs-Engine 110 empfängt zwei oder mehr Bilder von Kameras 102 und zugeordneten Kalibrierungsparametern 108 sowie auch optionale Sensordaten 106 als Multi-View-Eingabe 104. In einer Ausführungsform besteht eine Zusammensetzungs-Engine 110 aus Datenwerten und Softwarenweisungen, die, wenn ausgeführt, zwei und mehrere Bilder von zwei und mehreren Kameras 102 in ein einziges Bild mit einem gemeinsamen Koordinatensystem kombinieren und ausrichten. Eine Zusammensetzungs-Engine 110 empfängt in einer Ausführungsform eine Multi-View-Eingabe 104 von einem Aufnahmeblock, der zwei oder mehr Kameras 102 umfasst. In einer anderen Ausführungsform empfängt eine Zusammensetzungs-Engine 110 eine Multi-View-Eingabe 104 von einer beliebigen Gruppierung oder Implementierung von zwei oder mehr Kameras 102.
  • Die Multi-View-Eingabe 104, die Bilder von Kameras 102, optionale Sensordaten 106 und Kalibrierungsparameter 108 umfasst, wird von einer Zusammensetzungs-Engine verwendet, um eine Ausgabe 112 zu erzeugen, die ein oder mehrere zusammengefügte Bilder 114 und aktualisierte Kalibrierungsparameter 116 umfasst. Ein oder mehrere zusammengefügte Bilder 114 sind Bilddaten, die durch eine Zusammensetzungs-Engine 110 basierend mindestens teilweise auf zwei oder mehr Eingabebildern von Kameras 102 erzeugt werden. In einer Ausführungsform ist ein zusammengefügtes Bild 114 ein 2D-Bild oder eine Textur, die ein beliebiges Datenformat umfasst, das in einer Ausführungsform von einem ferner hier beschrieben Automobil-Surround-View-System unterstützt wird. Ein zusammengefügtes Bild 114 ist ein 3D-Bild oder eine Textur in einer anderen Ausführungsform.
  • Eine Zusammensetzungs-Engine 110 kombiniert oder fügt zusammen zwei oder mehr Multi-View-Eingabebilder 104 zusammen, indem jedes Multi-View-Eingabebild 104 auf einem gemeinsamen Koordinatensystem als ein einziges Bild oder zusammengefügtes Bild 114 ausgerichtet wird, wie ferner nachstehend in Verbindung mit 4 beschrieben. In einer Ausführungsform richtet eine Zusammensetzungs-Engine 110 zwei oder mehr Multi-View-Eingabebilder 104 in ein oder mehrere zusammengefügte Bilder 114 aus, indem die Bilder basierend auf Kamera-Kalibrierungsparameter 108 ausgerichtet werden. In einer anderen Ausführungsform richtet eine Zusammensetzungs-Engine 110 zwei oder mehr Multi-View-Eingabebilder 104 in einen oder mehreren zusammengefügten Bilder 114 durch Identifizieren eines oder mehrerer Merkmale oder Orientierungspunkte und Einstellen von Kalibrierungsparametern 108 aus, um jedes der beiden oder mehreren Multi-View-Eingabebildern 104 auszurichten. In einer anderen Ausführungsform richtet eine Zusammensetzungs-Engine 110 zwei oder mehr Multi-View-Eingabebilder 104 basierend mindestens teilweise auf Sensordaten 106 aus. Eine Zusammensetzungs-Engine 110 benutzt in einer anderen Ausführungsform eine beliebige andere Technik, um jedes Multi-View-Eingabebild 104 in eine Ausgabe 112 des zusammengefügten Bildes 114 auszurichten.
  • Einstellungen, die an Multi-View-Eingabebildern 104 durchgeführt werden, führen in einer Ausführungsform zu aktualisierten Kalibrierungsparametern 116. Aktualisierte Kalibrierungsparameter 116, die durch eine Zusammensetzungs-Engine 110 ausgegeben 112 werden, umfassen Daten, die neue Kalibrierungswerte darstellen, die von zwei oder mehr Kameras 102 zur weiteren Erfassung von Bild- und/oder Videodaten oder um zusätzliche Komponenten, wie beispielsweise Sensoren 106, einzustellen, verwendbar sind. In einer Ausführungsform umfassen aktualisierte Kalibrierungsparameter 116 eingestellte Kalibrierungsdaten, die strukturellen oder geometrischen Einstellungen entsprechen, wie beispielsweise Drehung und Translation. In einer anderen Ausführungsform umfassen aktualisierte Kalibrierungsparameter 116 eingestellte Kalibrierungsdaten, die Farben oder photometrischen Einstellungen entsprechen, wie beispielsweise Helligkeit und/oder Kontrast. Aktualisierte Kalibrierungsparameter 116 umfassen in einer Ausführungsform sowohl geometrische Einstellungen als auch photometrische Einstellungen.
  • Eine Zusammensetzungs-Engine 110 bestimmt die Qualität eines oder mehrerer zusammengefügter Bilder, wie ferner nachstehend in Verbindung mit 5 und 6 beschrieben. Basierend auf einer Qualitätsanalyse bestimmt die Zusammensetzungs-Engine eine oder mehrere Transformationen, die auf die Multi-View-Eingabebilder 104 anzuwenden sind, um eine optimale Ausgabe 112 eines zusammengefügten Bildes 114 zu erzeugen. In einer Ausführungsform wird eine Analyse mit einzigem Durchlauf durchgeführt, um die photometrische und geometrische Qualität eines zusammengefügtes Bild 114 zu bestimmen, das durch eine Zusammensetzungs-Engine 110 erzeugt wird. In einer anderen Ausführungsform führt eine Zusammensetzungs-Engine 110 mehrere Durchgänge unter Verwendung eines Rückkopplungsmechanismus durch, um die Qualität eines ausgegebenen 112 zusammengefügten Bildes 114 zu verbessern, wie nachstehend in Verbindung mit 5 beschrieben. Jegliche an den Multi-View-Eingabebildern 104 vorgenommenen Einstellungen werden durch die aktualisierten Kalibrierungsparameter 116 reflektiert.
  • Die Ausgabe 112, die ein oder mehrere zusammengefügte Bilder 114 umfasst, und jegliche aktualisierte Kalibrierungsparameter 116 werden von einem Visualisierungsmodul 118, wie beispielsweise einer Visualisierungs-Engine oder Block, in einem Automobil-Surround-View-System in einer Ausführungsform benutzt. In einer anderen Ausführungsform wird die Ausgabe 112 von einer Zusammensetzungs-Engine 110 von einem beliebigen anderen Visualisierungssystem 118 verwendet, um ein oder mehrere zusammengefügte Bilder 114 anzuzeigen oder anderweitig zu verwenden. In einer Ausführungsform werden eine oder mehrere zusätzliche Transformationen durch eine Zusammensetzungs-Pipeline vor der Visualisierung 118 angewandt, wie ferner nachstehend in Verbindung mit 3 beschrieben.
  • 2A ist eine Veranschaulichung einer Zusammensetzung unter Verwendung von zwei Bildern gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Während der Zusammensetzung erfassen zwei oder mehr Kameras ein linkes Bild 202 und ein rechtes Bild 204. In einer Ausführungsform, besteht ein linkes Bild 202 aus Daten, die eine Darstellung visueller Information umfassen, die einer Position zur linken innerhalb einer Szene entsprechen, und ein rechtes Bild 204 besteht aus Daten, die eine Darstellung visueller Information umfassen, die einer Position zur rechten innerhalb der gleichen Szene entsprechen. In einem Automobil-Surround-View-Kamerasystem oder einem anderen Multi-View-System umfasst, wie oben in Verbindung mit 1 und ferner hier beschrieben, das linke Bild 202 und das rechte Bild 204 eine Überlappungsregion 206. In einer Ausführungsform besteht eine Überlappungsregion 206 aus Daten, die einen gemeinsam genutzten Projektionsraum innerhalb einer Szene darstellen, die durch zwei oder mehr Kameras erfasst wird. Eine Überlappungsregion 206 umfasst in einer Ausführungsform einen oder mehrere Orientierungspunkte oder Merkmale, die verwendbar sind, um das linke Bild 202 und das rechte Bild 204 auszurichten. In einer Ausführungsform umfassen sowohl das linke Bild 202 als auch das rechte Bild 204 den einen oder mehrere Orientierungspunkte oder Merkmale in der Überlappungsregion 206.
  • Eine Zusammensetzungs-Engine, wie beispielsweise diejenige, die oben in Verbindung mit 1 und ferner nachstehend in Verbindung mit 4-6 beschrieben ist, erzeugt ein zusammengefügtes Bild 208 basierend mindestens teilweise auf dem linken Bild 202 und dem rechten Bild 204. In einer Ausführungsform umfasst ein zusammengefügtes Bild 208 eine zusammengefügte Region 210, die Projektionsinformation über eine Szene der Überlappungsregion 206 des linken Bildes 202 und des rechten Bildes 204 enthält. Die zusammengefügte Region 210 besteht aus Daten, die eine Projektion innerhalb einer Szene darstellen, welche die Überlappungsregion 206 eines linken Bildes 202 mit der Überlappungsregion 206 des rechten Bildes 204 kombiniert oder ausrichtet.
  • In einer Ausführungsform enthält eine zusammengefügte Region 216 eines zusammengefügten Bildes 208 geometrische Fehler, wobei Elemente des linken Bildes 212 der zusammengefügten Region 216 sich nicht ordnungsgemäß mit Elementen des rechten Bildes 214 der zusammengefügten Region 216 ausrichten. Geometrische Fehler werden durch eine Zusammensetzungs-Engine unter Verwendung eines geometrischen Qualitätskennwert quantifiziert, wie nachstehend in Verbindung mit 5 beschrieben. In einer Ausführungsform enthält eine zusammengefügte Region 222 eines zusammengefügten Bildes 208 photometrische Fehler, wobei der Abschnitt des linken Bildes 218 in der zusammengefügten Region 222 unterschiedliche Farbniveaus im Vergleich mit dem Abschnitt des rechten Bildes 220 in der zusammengefügten Region 222 umfasst. Unterschiedliche Farbniveaus werden durch eine Zusammensetzungs-Engine unter Verwendung eines photometrischen Qualitätskennwerts quantifiziert, wie nachstehend in Verbindung mit 5 beschrieben. Eine Zusammensetzungs-Engine berechnet oder bestimmt anderweitig eine oder mehrere Transformationen oder andere Einstellungen, die auf das linke Bild 202 und/oder das rechte Bild 204 basierend mindestens teilweise auf dem geometrischen Qualitätskennwert und dem photometrischen Qualitätskennwert anzuwenden sind, wie ferner nachstehend in Verbindung mit 5 und 6 beschrieben.
  • 2B ist eine Veranschaulichung einer Schalen-projizierten Bildzusammensetzung vor 222 und nach 224 der Optimierung gemäß einigen Ausführungsformen. Eine Schalen-projizierte Bildzusammensetzung vor der Optimierung 222 ist ein direktes zusammengesetztes Bild, das mehrere Bilder umfasst, die durch ein Surround-View-System eines Kraftfahrzeugs zusammengefügt wurden. Vor der Optimierung sind visuelle Artefakte, wie beispielsweise fehlausgerichtete Gebäudekanten in dem oberen rechten Quadranten der Schalen-projizierten Bildzusammensetzung 222 sichtbar. Eine Schalen-projizierte Bildzusammensetzung nach der Optimierung 224 ist ein vermischtes und/oder zusammengefügten Bild, das geometrische und photometrische Verzerrungen unter Verwendung verschiedener ferner hier beschriebener Techniken korrigiert. Nach der Optimierung 224 sind visuelle Artefakte, die in die Schalen-projizierten Bildzusammensetzung vor Optimierung 222 sichtbar sind, gemildert oder nicht beobachtbar.
  • 3 ist ein Blockdiagramm, das eine Pipeline einer Zusammensetzungs-Engine 302 veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Eine Pipeline der Zusammensetzungs-Engine 302, wie beispielsweise diejenige, die in 3 veranschaulicht ist, ist eine Reihe von Software- und/oder Hardwaremodulen, die, wenn durchgeführt, Multi-View-Eingabebilder 304 in ein einziges Bild kombinieren, das Elemente der Multi-View-Eingabebilder 304 umfasst, um eine Szene zu erzeugen. In einer Ausführungsform ist eine Pipeline der Zusammensetzungs-Engine 302 eine Komponente eines Automobil-Surround-View-Systems, wie ferner hier beschrieben. In einer anderen Ausführungsform ist eine Zusammensetzungs-Engine eine Komponente eines beliebigen anderen Visualisierungssystems, wie beispielsweise der virtuellen Realität, oder einer beliebigen anderen Anwendung, die eine Kombination der Multi-View-Eingabe 304 in eine einzige Ausgabe 314 zur Visualisierung erfordert.
  • In einer Ausführungsform empfängt eine Zusammensetzungs-Engine 302 als Eingabe die Multi-View-Eingabe 304 eines Datenaufnahmeblocks, der zwei oder mehr Kameras und Kalibrierungsparameter umfasst, wie oben in Verbindung mit 1 und ferner hier beschrieben. In einer anderen Ausführungsform empfängt eine Zusammensetzungs-Engine 302 als Eingabe beliebige andere Daten, die verwendbar sind, um die Bildzusammensetzung zu erleichtern.
  • Eine Zusammensetzungs-Engine 302 umfasst in einer Ausführungsform ein Entzerrungsmodul 306 oder entzerrendes Modul. In einer Ausführungsform besteht ein Entzerrungsmodul 306 aus Datenwerten und Softwareanweisungen, die, wenn durchgeführt, Multi-View-Eingabebilder 304 vom Bildraum in den Zusammensetzungsraum konvertieren. In einer Ausführungsform ist der Bildraum eine Fischaugenprojektion von Bilddaten oder besteht aus Bilddaten, die Fischaugenkoordinaten umfassen. In einer Ausführungsform ist der Zusammensetzungsraum ein äquirektangularer oder ein äquirektangularer Ansichts-Projektionsraum. In einer anderen Ausführungsform ist der Zusammensetzungsraum ein geradliniger Projektionsraum. Der Zusammensetzungsraum ist in einer Ausführungsform ein beliebiger Projektionsraum, der von einer Zusammensetzungs-Engine 302 verwendbar ist, um Bilder einer Multi-View-Eingabe 302 zu projizieren, zu kombinieren oder anderweitig zu verwenden, um eine Ausgabe 314 zu erzeugen, die zur Visualisierung verwendbar ist.
  • In einer Ausführungsform projiziert ein Entzerrungsmodul 306 eine Multi-View-Eingabe 304 vom 2D-Bildraum in den 3D-Zusammensetzungsraum oder einen anderen Projektionsraum unter Verwendung einer Vorwärtsabbildung. In der Vorwärtsabbildung scannt ein Entzerrungsmodul 306 durch jedes Multi-View-Eingabebild 304 pixelweise und kopiert sie in einen geeigneten Platz in einem Zusammensetzungsraumbild. In einer anderen Ausführungsform projiziert ein Entzerrungsmodul 306 die Multi-View-Eingabe 304 vom 2D-Bildraum in den 3D-Zusammensetzungsraum oder anderen Projektionsraum unter Verwendung einer Umkehrabbildung. In der Umkehrabbildung traversiert ein Entzerrungsmodul 306 jedes Pixel eines Zielzusammensetzungsraumbildes und holt das korrekte Pixel von einem oder mehreren Multi-View-Eingabebildern 304 oder tastet es ab. Ein einziger Punkt in einem Bild von einer Eingabekamera bildet sich in einer epipolaren Linie in einer anderen Eingabekamera ab. Jedes Multi-View-Eingabebild 304 wird von einem 2D-Eingaberaum in einen 3D-Zusammensetzungsraum projiziert, wobei die Tiefe jedes Pixels basierend auf einer oder mehreren Transformationen einstellbar ist, wie nachstehend in Verbindung mit 5 beschrieben. In einer Ausführungsform wird jedes 2D-Multi-View-Eingabebild 304 auf eine Anfangstiefe von 0 für Regionen näher zu Multi-View-Kamerasensoren abgebildet, wie ferner hier beschrieben. In einer anderen Ausführungsform wird jedes 2D-Multi-View-Eingabebild 304 auf eine unendliche Anfangstiefe abgebildet, wenn die Translation zwischen Multi-View-Eingabebildern 304 klein oder vernachlässigbar oder die Szenentiefe weit ist. Wenn jede Multi-View-Eingabekamera 304 beispielsweise Bilder erfasst, die keine Überlappung enthalten oder eine Szene in einer weiten Entfernung darstellen, wird keine Tiefeneinstellung zu einer Überlappungsregion für die Multi-View-Eingabebilder 304 führen und eine Anfangstiefe wird als unendlich abgebildet. In einer anderen Ausführungsform wird jedes 2D-Multi-View-Eingabebild 304 auf eine beliebige Tiefe abgebildet, die notwendig ist, um dem Multi-View-Eingabebild 304 eine zugeordnete Perspektive darzustellen. In einer anderen Ausführungsform bildet ein Entzerrungsmodul 306 jedes 2D-Multi-View-Eingabebild 304 auf eine jede Tiefe ab, die von beliebigen Sensoren oder zusätzlichen Verfahren, LiDARbasierter Tiefenschätzung, monokularer Kamera-basierter Tiefenschätzung oder Multi-View-Kamera-basierter Tiefenschätzung geschätzt wird. Ein Entzerrungsmodul 306 bildet in einer Ausführungsform jedes 2D-Multi-View-Eingabebild 304 auf eine jede Tiefe ab, die unter Verwendung einer beliebigen Technik geschätzt wird, um die Tiefe zu schätzen, die in einem Surround-View-System verfügbar ist. Ein Entzerrungsmodul 306 benutzt in einer Ausführungsform einen oder mehrere Kalibrierungsparameter, die von einer Zusammensetzungs-Engine 302 als Multi-View-Eingabe 304 empfangen werden. In einer anderen Ausführungsform benutzt ein Entzerrungsmodul 306 keine Kalibrierungsparameter, die von einer Zusammensetzungs-Engine 302 als Multi-View-Eingabe 304 empfangen werden.
  • Eine Zusammensetzungs-Engine 302 umfasst in einer Ausführungsform ein Zusammensetzungsmodul 308. In einer Ausführungsform besteht ein Zusammensetzungsmodul 308 aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, Eingabebilder, wie beispielsweise Kameraeinzelbilder, die als ein Teil einer Multi-View-Eingabe empfangen werden, in ein oder mehrere Ausgabebilder 314 mit einem gemeinsamen Koordinatensystem kombinieren und ausrichten. In einer Ausführungsform führt ein Zusammensetzungsmodul 308 eine Ausrichtung von zwei oder mehr Multi-View-Eingabebildern 304, wie beispielsweise Videoeinzelbildern oder Kameraeinzelbildern, basierend auf einem oder mehreren Kalibrierungsparametern der Multi-View-Eingabe 304 durch. Ein Zusammensetzungsmodul 308 richtet zwei oder mehr Multi-View-Eingabebilder 304 in einer Ausführungsform unter Verwendung von Merkmalsinformation von zwei oder mehr Bildern aus. In einer anderen Ausführungsform richtet ein Zusammensetzungsmodul 308 zwei oder mehr Multi-View-Eingabebilder 304 unter Verwendung einer Disparität-basierten Verfeinerung aus. In einer anderen Ausführungsform erfasst ein Zusammensetzungsmodul 308 strukturelle Artefakte oder Fehlausrichtung und verfeinert Kalibrierungsparameter, um zusammengefügte Bilder einzustellen. Um strukturelle Artefakte oder Fehlausrichtung zu erfassen, benutzt ein Zusammensetzungsmodul 308, wie ferner nachstehend in Verbindung mit 4 und 5 beschrieben, Qualitätsanalyse und Rückkopplung, um die Zusammensetzungsqualität zu verbessern.
  • In einer Ausführungsform kombiniert ein Zusammensetzungsmodul 308 zwei oder mehr Multi-View-Eingabebilder 304 während einer 2D- in 3D-Entzerzerrung 306 unter Verwendung einer Umkehrabbildung. Das heißt, dass ein zusammengefügtes Bild, das einen virtuellen 3D-Kameraprojektionsraum darstellt, Information für jeden 3D-Pixelort von jedem der beiden oder mehreren Multi-View-Eingabebildern 304 empfängt. Einzelne Pixel, die mehreren Multi-View-Eingabebildern 304 entsprechen, werden zusammen unter Verwendung eines Blending-Moduls 310 vermischt. In einer Ausführungsform besteht ein Blending-Modul 310 aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, einen glatten Pixelebenenübergang zwischen zwei oder mehr Multi-View-Eingabebildern 304 erzeugen, die kombiniert oder auf einen gemeinsam genutzten 3D-Projektionsraum durch ein Zusammensetzungsmodul 308 projiziert werden. Ein Blending-Modul 310 kombiniert in einer Ausführungsform Pixeldaten von zwei oder mehr Multi-View-Eingabebildern 304, um Ausgabepixel zu erzeugen. In einer Ausführungsform kombiniert ein Blending-Modul 310 einzelne Pixeldaten eines zusammengefügten 3D-Raums in ein 2D-Ausgabebild 314 entweder unter Verwendung einer Vorwärtsabbildung oder einer Umkehrabbildung, wie oben beschrieben. In einer anderen Ausführungsform kombiniert ein Blending-Modul 310 Daten von mehreren Pixeln in jedes von zwei oder mehr Multi-View-Eingabebilder 304, um einzelne oder Gruppen von Ausgabepixeln zu erzeugen. In einer Ausführungsform führt ein Blending-Modul 310 verschiedene Blending-Techniken durch, wie beispielsweise Alpha- oder gewichtetes Blending, Multi-Band-Blending, Gradienten-Blending oder optimale Schnitte. In einer anderen Ausführungsform führt ein Blending-Modul 310 eine beliebige andere Blending-Technik durch, um Pixeldaten von Multi-View-Eingabebildern zu kombinieren oder anderweitig zu vermischen, um einen glatten Übergang zwischen Multi-View-Eingabebildern in einem zusammengefügten Ausgabebild 314 zu erreichen.
  • In einer Ausführungsform umfasst eine Zusammensetzungs-Engine 302 ein Projektionsmodul 312. Das Projektionsmodul 312 besteht in einer Ausführungsform aus Datenwerten und Softwarenweisungen, die, wenn ausgeführt, zusammengefügte Bilddaten vom Zusammensetzungsraum, wie oben beschrieben, in einen festen Schalen- oder Schalensicht-Projektionsraum projizieren. In einer Ausführungsform erzeugt ein Projektionsmodul 312 eine Ausgabe 314, die von einem Visualisierungssystem verwendbar ist, wie oben in Verbindung mit 1 beschrieben. Diese Ausgabe 314 umfasst Datenstrukturen, wie beispielsweise Bilddaten und Kalibrierungsparameter, die verwendbar sind, um eine Szene zu visualisieren, wie beispielsweise den Bereich um ein Fahrzeug in einem Automobil-Surround-View-System. Beispielsweise umfasst in einer Ausführungsform die Ausgabe 314 Datenstrukturen, die von einem eingebetteten Visualisierungssystem oder nicht eingebetteten Visualisierungsblock konsumiert werden. Diese Ausgabedatenstrukturen 314 umfassen in einer Ausführungsform zusammengefügte 2D-Bilder und/oder Texturen. In einer anderen Ausführungsform umfassen die Ausgabedatenstrukturen 314 zusammengefügte 3D-Bilder und/oder Texturen. Ausgabedatenstrukturen 314 sind in einer Ausführungsform rektifizierte Kamerabilder. In einer Ausführungsform umfassen Ausgabedatenstrukturen 314 Daten, die eine Schalennetz- oder Texturnetzabbildung darstellen.
  • Eine Pipeline einer Zusammensetzungs-Engine 302 umfasst, wie in 3 veranschaulicht, mehrere Softwaremodule, um eine Bild- und/oder Videozusammensetzung durchzuführen. Eine Zusammensetzungs-Engine 302 umfasst in einer Ausführungsform zusätzliche Module, um eine Bild- und/oder Videozusammensetzung zu erleichtern, die für ein System spezifisch ist, das die Zusammensetzungs-Engine 302 integriert oder anderweitig benutzt. Beispielsweise umfasst eine Zusammensetzungs-Engine 302 in einer Ausführungsform ein oder mehrere Rekonstruktionsmodule, um Unterwagen-Texturdaten basierend auf Fahrzeugodometriedaten in einem Automobilsystem zu rekonstruieren. In anderen Systemen können verschiedene Software- und/oder Hardwaremodule verwendet werden, um einen oder mehrere zusätzliche Schritte durchzuführen, um Operationen der Zusammensetzungs-Engine 302 zu erleichtern.
  • 4 ist ein Blockdiagramm, das ein Zusammensetzungsmodul 402 veranschaulicht, um eine verbesserte Bildzusammensetzung durchzuführen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Ein Zusammensetzungsmodul 402 empfängt in einer Ausführungsform als Eingabe 404 zwei oder mehr 2D-Bilder, die von zwei oder mehr Kameras empfangen werden. In einer anderen Ausführungsform empfängt ein Zusammensetzungsmodul 402 als Eingabe 404 ein virtuelles 3D-Kamerabild, das kombinierte oder zusammengefügten Bilddaten als Ergebnis dessen umfasst, dass ein Entzerrungsmodul eine Umkehrabbildung zwischen 2D-Bilddaten von zwei oder mehr Kameras und einer virtuellen 3D-Kamera oder einem Projektionsraum durchführt.
  • In einer Ausführungsform erzeugt ein Zusammensetzungsmodul 402 ein zusammengefügtes Bild 406 durch Durchführen von Softwarenweisungen, die, wenn ausgeführt, zwei oder mehr 2D-Eingabebilder in den 3D-Projektionsraum oder Zusammensetzungsraum unter Verwendung einer Umkehrabbildung konvertieren, wobei jedes Pixel in einem 3D-Projektionsraum von einem oder mehreren 2D-Eingabebildern geholt wird. In einer anderen Ausführungsform erzeugt ein Entzerrungsmodul, wie oben in Verbindung mit 3 beschrieben, ein zusammengefügtes Bild oder ein Zusammensetzungsmodul 402 führt lediglich eine Zusammensetzungsqualitäts-Optimierung 408 durch.
  • Ein Zusammensetzungsmodul 402 umfasst ein Zusammensetzungsqualitäts-Optimierungsmodul 408. In einer Ausführungsform besteht ein Zusammensetzungsqualitäts-Optimierungsmodul 408 aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, einen oder mehrere Qualitätskennwerte basierend mindestens teilweise auf einem zusammengefügten 3D-Bild berechnen, das durch ein Zusammensetzungsmodul 402 erzeugt 406 wird, wie ferner nachstehend in Verbindung mit 4 beschrieben. In einer anderen Ausführungsform berechnet ein Zusammensetzungsqualitäts-Optimierungsmodul 408 einen oder mehrere Qualitätskennwerte basierend mindestens teilweise auf einem zusammengefügten 3D-Bild, das durch ein Entzerrungsmodul erzeugt und als Eingabe in ein Zusammensetzungsmodul 402 bereitgestellt wird, wie oben in Verbindung mit 3 beschrieben. In einer anderen Ausführungsform berechnet ein Zusammensetzungsqualitäts-Optimierungsmodul 408 einen oder mehrere Qualitätskennwerte basierend auf einem zusammengefügten 2D-Bild, das in ein Zusammensetzungsmodul 402 eingegeben 404 oder durch das Zusammensetzungsmodul 402 erzeugt 406 wird.
  • Ein Zusammensetzungsqualitäts-Optimierungsmodul 408 analysiert ein zusammengefügtes 2D- oder 3D-Bild, um einen oder mehrere Kennwerte zu erzeugen, und, wenn ein irgendeiner des einen oder mehrerer Kennwerte unter einem Schwellenwert ist, berechnet das Zusammensetzungsqualitäts-Optimierungsmodul 408 eine oder mehrere Transformationen, die auf Eingabebilder 404 anzuwenden sind, die verwendet werden, um das zusammengefügte 2D- oder 3D-Bild zu erzeugen. In einer Ausführungsform ist der Schwellenwert, der zum Analysieren von Kennwerten verwendet wird, die durch das Zusammensetzungs-Qualitätsmodul berechnet werden, ein konstanter Wert. In einer anderen Ausführungsform ist der Schwellenwert variabel, der zum Analysieren der durch das Zusammensetzungs-Qualitätsmodul berechneten Kennwerte verwendet wird. In einer Ausführungsform wird die Schwelle unter Verwendung einer oder mehrerer neuronaler Netzwerkoperationen bestimmt, um einen optimalen oder annehmbaren Schwellenwert abzuleiten.
  • Ein Zusammensetzungsqualitäts-Optimierungsmodul 408 stellt in einer Ausführungsform eine Rückkopplung zu einem beliebigen Modul bereit, das zum Erzeugen eines zusammengefügten Bildes 406 verantwortlich ist, wie beispielsweise jene, die oben beschrieben sind. Diese Rückkopplung besteht in einer Ausführungsform aus einer oder mehreren Transformationen, die auf ein oder mehrere 2D-Eingabebilder 404 anzuwenden sind. In einer anderen Ausführungsform führt das Zusammensetzungsqualitäts-Optimierungsmodul 408 einen oder mehrere aktualisierte Kalibrierungsparameter zurück, die durch zwei oder mehr Kameras in Verbindung mit zwei oder mehr 2D-Eingabebilder verwendbar sind.
  • In einer Ausführungsform gibt ein Zusammensetzungsqualitäts-Optimierungsmodul 408 eine virtuelle 3D-Kameraprojektion oder ein zusammengefügtes Bild aus, das eine oder mehrere Transformationen umfasst, die auf ein oder mehrere 2D-Eingabebilder 404 angewandt werden.
  • In einer anderen Ausführungsform projiziert ein Zusammensetzungsqualitäts-Optimierungsmodul 408 eine virtuelle 3D-Kameraprojektion oder ein zusammengefügtes Bild in einen 2D-Raum unter Verwendung einer Umkehrabbildung und gibt das resultierende zusammengefügte 2D-Bild aus 416.
  • 5 ist ein Blockdiagramm, das ein Zusammensetzungs-Qualitätsmodul veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In einer Ausführungsform empfängt ein Zusammensetzungsqualitäts-Optimierungsmodul 502 als Eingabe 504 ein zusammengefügtes 3D-Bild, das unter Verwendung eines Entzerrungsmoduls oder eines Zusammensetzungsmoduls erzeugt 506 wurde, wie oben in Verbindung mit 3 und 4 beschrieben. In einer anderen Ausführungsform empfängt ein Zusammensetzungsqualitäts-Optimierungsmodul 502 ein 2D-zusammengefügten Bild als Eingabe 504. Ein Zusammensetzungsqualitäts-Optimierungsmodul 502 umfasst einen Qualitätsbewertungsblock 508. In einer Ausführungsform besteht ein Qualitätsbewertungsblock 508 aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, einen oder mehrere Kennwerte als Ergebnis eines oder mehrerer 2D- oder 3D-Eingabebilder erzeugen.
  • In einer Ausführungsform erzeugt ein Qualitätsbewertungsblock 508 einen geometrischen Qualitätskennwert. Ein geometrische Qualitätskennwert, wie ferner nachstehend in Verbindung mit 6 beschrieben, ist ein Datenwert, der angibt, wie gut zwei oder mehr 2D-Eingabebilder 504 in ein zusammengefügtes 2D- oder 3D-Bild zusammengefügt 506 wurden. Das heißt, dass ein geometrischer Qualitätskennwert scoregeometric in einer Ausführungsform angibt, ob ein zusammengefügtes Bild Fehler enthält. Ein Qualitätsbewertungsblock 508 berechnet einen geometrischen Qualitätskennwert scoregeometric durch Anwenden einer oder mehrerer mathematischer Analysen von 2D- und/oder 3D-Eingabebildern 504 in Verbindung mit einem zusammengefügten 506 2D- oder 3D-Bild, wie ferner nachstehend in Verbindung mit 6 beschrieben. Ein Qualitätsbewertungsblock 508 berechnet in einer Ausführungsform einen geometrischen Qualitätskennwert scoregeometric dynamisch basierend auf einem Bildinhalt. Der Bildinhalt umfasst in einer Ausführungsform Objekte, die durch Objektdetektoren, Spurmarkierungsdetektoren, Ampelanlagendetektoren oder eine beliebige andere Objekterfassung erfasst wurden, die für die Sicherheit und visuelle Qualität kritisch sind. Beispielsweise senkt ein Qualitätsbewertungsblock 508 den geometrische Qualitätskennwert scoregeometric, wenn eine Fehlausrichtung in für Menschen empfindlichen Regionen vorkommt, wie beispielsweise Autos, Fußgänger, Spurmarkierungen oder jedem anderen visuellen Sicherheitsindikator.
  • Ein Qualitätsbewertungsblock 508 erzeugt in einer Ausführungsform einen photometrischen Qualitätskennwert scorephotometric. Ein photometrischer Qualitätskennwert scorephotometric ist, wie ferner nachstehend in Verbindung mit 6 beschrieben, ein Datenwert, der angibt, wie gut jeder Farbraum, der jedem Eingabebild von zwei oder mehr Kameras zugeordnet ist, in einem zusammengefügten 506 2D- oder 3D-Bild übereinstimmt. Ein photometrischer Qualitätskennwert scorephotometric gibt in einer Ausführungsform an, ob sich Farben und/oder Helligkeit- und Kontrastniveaus zwischen Eingabebildern 504 signifikant unterscheiden, was zu einem verzerrten zusammengefügten 506 2D- oder 3D-Bild führt. Ein Qualitätsbewertungsblock 508 berechnet in einer Ausführungsform einen photometrischen Kennwert scorephotometric basierend auf einem Farbintensitätskennwert und einem Farbwinkelkennwert. Bei gegebenen zwei Kameras c1 und c2 wird ein Farbintensitätskennwert berechnet als: s c o r e i n t e n s i t y = m i n ( | c 1 | , | c 2 | ) m a x ( | c 1 | , | c 2 | )
    Figure DE102021133638A1_0001
  • Ein Farbwinkelkennwert wird berechnet als: s c o r e a n g l e = a r c c o s ( c 1 , c 2 | c 1 | , | c 2 | )
    Figure DE102021133638A1_0002
  • In einer Ausführungsform wird ein photometrischer Kennwert scorephotometric als scorephotometric = scoreintensity + scoreangle berechnet. In einer anderen Ausführungsform wird ein photometrischer Kennwert unter Verwendung einer beliebigen anderen Kombination von scoreintensity und scoreangle berechnet. Für sowohl einen geometrischen Qualitätskennwert scoregeometric als auch einen photometrischen Qualitätskennwert scorephotometric ist, wenn der Wert gleich 1 ist, das zusammengefügte 2D- oder 3D-Bild eine ideale Kombination von zwei oder mehr Eingabebildern 504. Ein beliebiger Wert geringer als 1 gibt Unterschiede zwischen einem zusammengefügten 2D- oder 3D-Bild und einem oder mehreren Eingabebildern 504 von Kameras c1 und c2 an. Ein Wert, der signifikant geringer als 1 ist, gibt eine signifikante Divergenz in dem zusammengefügten 2D- oder 3D-Bild von Eingabebildern 504 von Kameras c1 und c2 an.
  • In einer Ausführungsform integriert ein Qualitätsbewertungsblock 508 einen zeitlichen Konsistenzkennwert in einen Zusammensetzungs-Qualitätskennwert, wie beispielsweise einen geometrischen Kennwert scoregeometric und/oder einen photometrische Kennwert scorephotometric. Ein Qualitätsbewertungsblock 508 erzeugt einen zeitlichen Konsistenzkennwert durch Verzerrung zusammengefügter Bilder gemäß anderen zusammengefügten Bildern in einem Zeitintervall oder -fenster. In einer Ausführungsform ist Verzerrung eine Transformation, wodurch ein oder mehrere Objekte in einem ersten zusammengefügten Bild mit der Zeit in ein oder mehrere Orten der Objekte in ein zweites zusammengefügtes Bild innerhalb eines Zeitintervalls abgebildet werden. In einer anderen Ausführungsform ist Verzerrung eine Transformation, wodurch ein gesamtes erstes zusammengefügtes Bild transformiert wird, um mit einem zweiten zusammengefügten Bild innerhalb eines Zeitintervalls übereinzustimmen. Zeitliche Transformationen werden basierend mindestens teilweise auf einem oder mehrere optische Strömungsvektoren durchgeführt, wie ferner hier beschrieben. Um einen zeitlichen Konsistenzkennwert zu berechnen, vergleicht ein Qualitätsbewertungsblock 508 das aktuelle zusammengefügte Bild mit einem verzerrten zusammengefügten Bild von Nachbarschaftseinzelbildern in einem Zeitintervall unter Verwendung einer beliebigen mathematischen Analyse, wie beispielsweise dem strukturellen Ähnlichkeitsindexmaß (structural similarity index measure; SSIM), das nachstehend in Verbindung mit 6 beschrieben ist, für einen geometrischen Kennwert, der zeitliche Konsistenz oder Farbintensität integriert, und einen Winkel für einen photometrischen Kennwert, der zeitliche Konsistenz integriert. Für veranschaulichende Zwecke verwendet ein Qualitätsbewertungsblock 508 in einer Ausführungsform SSIM, um das aktuelle zusammengefügte Bild mit einem verzerrten zusammengefügten Bild zu vergleichen. In einer anderen Ausführungsform kann ein Qualitätsbewertungsblock 508 eine beliebige andere ferner hier beschriebene mathematische Analysetechnik verwenden, um das aktuelle zusammengefügte Bild mit einem verzerrten zusammengefügten Bild zu vergleichen.
  • Ein Zusammensetzungs-Qualitätsmodul 502 umfasst einen Qualitätskennwert-Validierungsblock 510. In einer Ausführungsform besteht ein Qualitätskennwert-Validierungsblock 510 aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, einen oder mehrere Qualitätskennwerte, die von einen Qualitätsbewertungsblock 508 ausgegeben werden, mit einem oder mehreren numerischen Schwellendatenwerten vergleicht. In einer anderen Ausführungsform vergleicht ein Qualitätskennwert-Validierungsblock 510 einen oder mehrere Qualitätskennwerte, die von einem Qualitätsbewertungsblock 508 ausgegeben werden, mit einem oder mehreren numerischen Werten, die von einem Klassifizierer unter Verwendung einer oder mehreren Techniken maschinellen Lernens berechnet wurden, wie beispielsweise neuronalen Netzwerken. In einer Ausführungsform lernen eine oder mehrere Techniken maschinellen Lernens eine Abbildung zwischen einer oder mehreren objektiven Zusammensetzungs-Qualitätskennwerten und einem oder mehreren subjektiven Zusammensetzungs-Qualitätskennwerten. In einer Ausführungsform ist ein objektiver Qualitätskennwert ein Kennwert, der Fehlausrichtung insgesamt in einer Szene reflektiert, die durch ein oder mehrere Bilder erfasst wird. Ein subjektiver Qualitätskennwert ist ein Kennwert, der die Fehlausrichtung zwischen Objekten in einer Szene reflektiert, die durch ein oder mehrere Bilder erfasst wird. Beispielsweise kann menschliches Sehen in bestimmten Szenarien mehr Aufmerksamkeit auf Autos, Fußgänger, Spurmarkierungen oder andere Hindernisse beim Fahren und/oder Parken platzieren. In einer Ausführungsform konzentrieren sich Automobil-Surround-View-Systeme, die ein Zusammensetzungs-Qualitätsmodul 502 benutzen, das eine Qualitätsbewertung 508 durchführt, auf Fehlausrichtung in diesen auf menschliches Sehen konzentrierten Regionen, und benutzen eine oder mehrere Techniken maschinellen Lernens, um einen objektiven Qualitätskennwert in einen niedrigeren subjektiven Qualitätskennwert abzubilden. Verschiedene Beispiele von objektiven und subjektiven Kennwerten werden nachstehend ferner in Verbindung mit 6 beschrieben.
  • Wenn ein Qualitätskennwert-Validierungsblock 510 bestimmt, dass ein durch einen Qualitätsbewertungsblock 508 berechneter geometrischer Qualitätskennwert scoregeometric unter einem Schwellenwert ist, führt die Zusammensetzungsqualitäts-Optimierung 502 eine geometrische Ausrichtung 512 durch. Eine geometrische Ausrichtung 512 besteht in einer Ausführungsform aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, nicht zusammengefügte Eingabebilder 504 ausrichten, um den Zusammensetzungs-Qualitätskennwert scoregeometric zu verbessern. Techniken, um die Ausrichtung durchzuführen, sind in einer Ausführungsform beliebige Techniken, um die Zusammensetzungsausrichtung zu verbessern, wie beispielsweise eine Pixel/Merkmal/Tiefe/Disparität-basierte Ausrichtung, verbesserte Tiefenschätzung oder irgendeine andere Technik, um die Ausrichtung durchzuführen. In einer Ausführungsform berechnet die geometrische Ausrichtung 512 eine oder mehrere Transformationen, um eine 2D-Eingabe 504 oder ein Teil eines zusammengefügten 506 3D-Bildes einzustellen. In einer anderen Ausführungsform berechnet die geometrische Ausrichtung 512 eine oder mehrere Transformationen, um Kalibrierungsparameter einzustellen, die einer Quellenkamera c1 und Zielkamera c2 zugeordnet sind. Die geometrische Ausrichtung 512 optimiert in einer anderen Ausführungsform Tiefe und/oder disparitätsbasierte Ausrichtung, um die Ausrichtung zu verbessern. Die Qualität der Tiefen/Disparität-basierten Ausrichtung und der Tiefenschätzung wird durch den Zusammensetzungs-Qualitätskennwert scoregeometric bewertet und eine Ausrichtung oder Transformation oder Verfahren umfasst Parameter, die eingestellt werden, um den Zusammensetzungs-Qualitätskennwert scoregeometric zu optimieren.
  • Die Zusammensetzungsqualitäts-Optimierung 502 führt eine geometrische Ausrichtung 512 durch Berechnen einer optimalen 3D-Transformation durch, um extrinsische Parameter {A2, [R2|T2]} von c2 einzustellen, während c1's extrinsische Parameter {A1, [R1|T1]} von c2 unverändert beibehalten werden, wobei A ein intrinsischer Parameter und [R|T] eine extrinsische Drehung und Translation ist. In einer Ausführungsform berechnet die Zusammensetzungsqualitäts-Optimierung 502 während der geometrischen Ausrichtung 512 die optimale 3D-Transformation, um die geometrische Ausrichtung 512 durch direktes Durchsuchen der Nachbarschaft (search neighborhood) des extrinsischen Raums [R2 |T2] von c2 durchzuführen. Das heißt, dass die Zusammensetzungsqualitäts-Optimierung 502 nach Drehungs- und Translationseinstellungen [Roptimai|Toptimal]* sucht, die, wenn auf extrinsische Parameter von c2 angewandt, zu einem maximierten scoregeometric führen. Beispielsweise wird die optimale 3D-Transformation berechnet als: [ R o p t i o n a l | T o p t i o n a l ] * = a r g m a x s c o r e g e o m e t r i c ( s e a r c h n e i g h b o r h o o d v o n [ R 2 , T 2 ] )
    Figure DE102021133638A1_0003
    wobei search neighborhood von [R2, T2] aus Einstellungen besteht, die dazu führen, dass c2 um c1 gedreht und translatiert wird. Die Zusammensetzungsqualitäts-Optimierung 502 bestimmt während der geometrische Ausrichtung 512 die optimale 3D-Transformation [Roptimal|Toptimal]* durch Berechnen einzelner Transformationen, die zu unterschiedlichen scoregeometric Werten führen und Verwenden der Transformation, die zu dem maximalen scoregeometric Wert führt.
  • In einer anderen Ausführungsform berechnet die Zusammensetzungsqualitäts-Optimierung 502 während der geometrischen Ausrichtung 512 die optimale 3D-Transformation, um die geometrische Ausrichtung 512 mittels Verringern des Suchraums durch einen optischen Strömungsvektor durchzuführen. Die Beziehung zwischen einer 3D-Zusammensetzungsraumkoordinate M und einer projizierten 2D-Bildraumkoordinate m ist definiert als: m = s A ( [ R T ] M )
    Figure DE102021133638A1_0004
    wobei s ein Skalierungsfaktor der Tiefe ist. Ein geometrischer Ausrichtungsblock 512 schätzt einen optischen Strömungsvektor zwischen einem 2D-Eingabebild 504 von der Quellenkamera c1 und einem 2D-Eingabebild 504 von der Zielkamera c2 unter Verwendung eines beliebigen Schätzverfahrens, wie beispielsweise Phasenkorrelation, Block-basierte Verfahren, Differenzverfahren, wie beispielsweise Lucas-Kanade oder Horn-Schunck, diskrete Optimierungsverfahren oder eine beliebige andere optische Strömungsschätztechnik. Sobald ein geometrischer Ausrichtungsblock 512 einen optischen Strömungsvektor zwischen einem 2D-Eingabebild 504 von der Quellenkamera c1 und einem 2D-Eingabebild 504 von der Zielkamera c2 in einer Region schätzt, wo das 2D-Eingabebild 504 von der Quellenkamera c1 und das 2D-Eingabebild 504 von Zielkamera c2 überlappen, wird die 3D-Transformation [R0|T0] des 2D-Zielbildes von c2 unter Verwendung der Beziehung zwischen M und m geschätzt, wie oben beschrieben. Die 3D-Transformation [R0|T0] kann keinen optimalen scoregeometric aufgrund von Schätzfehlern des optischen Strömungsvektors erreichen. Als Ergebnis wendet ein geometrischer Ausrichtungsblock 512 einen Konfidenzwert auf den optischen Strömungsvektor an und bewertet die Nachbarschaft der 3D-Transformation [R0|T0], wobei die Nachbarschaft der 3D-Transformation [R0|T0] eine verringerte Suchnachbarschaft von [R2|T2] darstellt. Die Verwendung eines geschätzten optischen Strömungsvektors durch einen geometrischen Ausrichtungsblock 512 der Zusammensetzungsqualitäts-Optimierung 502 führt zu einer geführten Suchrichtung und einem verringerten Suchraum. Die optimale 3D-Transformation wird dann in einer Ausführungsform berechnet als: [ R o p t i m a l | T o p t i m a l ] * = a r g m a x s c o r e g e o m e t r i c ( s e a r c h n e i g h b o r h o o d v o n [ R 0 , T 0 ] ) .
    Figure DE102021133638A1_0005
  • In einer Ausführungsform ist eine optimale 3D-Transformation, die zeitliche Konsistenz in scoregeometric während einer Optimierung integriert, eine Einzelbildzeit 3D-Volumenoptimierung anstatt einer individuellen Einzelbildoptimierung.
  • Wenn ein Qualitätskennwert-Validierungsblock 510 bestimmt, dass ein durch einen Qualitätsbewertungsblock 508 berechneter photometrischer Qualitätskennwert scorephotometric unter einem Schwellenwert ist, führt die Zusammensetzungsqualitäts-Optimierung 502 eine photometrische Einstellung 514 durch. Die photometrische Einstellung 514 besteht in einer Ausführungsform aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, Farbwerte zwischen nicht zusammengefügten Eingabebildern 504 einstellen, um den photometrische Qualitätskennwert scorephotometric zu verbessern.
  • In einer Ausführungsform versucht die photometrische Einstellung 514, die Farbintensität und den Farbwinkel, wie oben beschrieben, zwischen einem 2D-Eingabebild 504 der Quellenkamera c1 und einem 2D-Eingabebild 504 der Zielkamera c2 in einer Region anzupassen, wo das 2D-Eingabebild 504 von der Quellenkamera c1 und das 2D-Eingabebild 504 von der Zielkamera c2 überlappen. Die photometrische Einstellung 514 berechnet eine optimale Transformation (optimalscale*, optimaloffset*) auf einzelnen R, G und B Kanäle eines 2D-Bildes der Zielkamera c2, so dass: t a r g h e t i m a g e = o p t i m a l s c a l e s o u r c e i m a g e + o p t i m a l o f f s e t
    Figure DE102021133638A1_0006
  • In einer Ausführungsform sucht die photometrische Einstellung 514 direkt nach offset und scale Werten, so dass ( o p t i m a l s c a l e * , o p t i m a l o f f s e t * ) = a r g m a x s c o r e p h o t o m e t r i c ( s c a l e , o f f s e t )
    Figure DE102021133638A1_0007
    für verschiedene Werte von scale und offset ist. Der photometrische Qualitätskennwert SCO ist maximiert, wenn Farbwerte eines 2D-Eingabebildes 504 von der Quellenkamera c1 so nahe wie möglich zu den Farbwerten eines 2D-Eingabebildes 504 von der Zielkamera c2 sind.
  • In einer anderen Ausführungsform verringert die photometrische Einstellung 514 den Suchraum, um Leistung durch Berechnen einer anfänglichen scale und eines anfänglichen offset zu verbessern, um mit dem Suchen unter Verwendung der obigen Gleichung zu beginnen. Die anfängliche scale wird während der photometrischer Einstellung 514 berechnet als: s c a l e = s t d ( t a r g e t i m a g e ) s t d ( s o u r c e i m a g e )
    Figure DE102021133638A1_0008
  • Anfänglicher offset wird während der photometrischen Einstellung 514 berechnet als: o f f s e t = m e a n ( t a r g e t i m a g e ) s c a l e m e a n ( s o u r c e i m a g e )
    Figure DE102021133638A1_0009
  • In einer Ausführungsform gibt, wenn ein Qualitätskennwert-Validierungsblock 510 in einem Zusammensetzungsqualitäts-Optimierungsmodul 502 bestimmt, dass alle Qualitätskennwerte, wie oben und ferner nachstehend in Verbindung mit 6 beschrieben, über einem Schwellenwert sind, das Zusammensetzungsqualitäts-Optimierungsmodul 502 ein optimiertes zusammengefügtes 3D-Bild an einen Projektionsblock aus, wie oben in Verbindung mit 3 beschrieben. In einer anderen Ausführungsform gibt, wenn ein Qualitätskennwert-Validierungsblock 510 bestimmt, dass ein oder mehrere Qualitätskennwerte, wie beispielsweise scoregeometric oder scorephotometric oder sowohl score geometric als auch scorephotometric über einem Schwellenwert sind, das Zusammensetzungsqualitäts-Optimierungsmodul 502 ein optimiertes zusammengefügtes 3D-Bild an einen Projektionsblock aus.
  • 6 ist ein Blockdiagramm, das einen Qualitätsbewertungsblock 602 veranschaulicht, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Ein Qualitätsbewertungsblock 602 berechnet einen oder mehrere Qualitätskennwerte 614, 618, die einem zusammengefügten Eingabebild 606 zugeordnet sind, wie oben in Verbindung mit 5 beschrieben. In einer Ausführungsform berechnet ein Qualitätsbewertungsblock 602 einen oder mehrere Qualitätskennwerte 614, 618, die mindestens teilweise auf einem Vergleich zwischen einem linken Bild 604 und einem zusammengefügten Bild 606 oder einem rechten Bild 608 und einem zusammengefügten Bild 606 basieren. In einer anderen Ausführungsform berechnet ein Qualitätsbewertungsblock 602 einen oder mehrere Qualitätskennwerte 614, 618, die mindestens teilweise auf einem Vergleich zwischen einem linken Bild 604 und einem rechten Bild 608 basieren. Ein Qualitätsbewertungsblock 602 berechnet einen oder mehrere Qualitätskennwerte 614, 618 in einer Ausführungsform unter Verwendung eines linkes Bildes 604, eines rechtes Bildes 608 und eines zusammengefügten Bildes 606. In einer Ausführungsform besteht ein linkes Bild 604 aus Daten, die ein 2D-Eingabebild einer linksorientierten Kamera cL darstellen, wie ferner hier beschrieben. In einer Ausführungsform besteht ein rechtes Bild 608 aus Daten, die ein 2D-Eingabebild einer rechts-orientierten Kamera cR darstellen.
  • Ein Qualitätsbewertungsblock 602 berechnet eine Überlappung 610 zwischen zwei oder mehr Eingabebildern 604, 608 unter Verwendung eines zusammengefügten Bildes 606. In einer Ausführungsform besteht eine Überlappung 610 aus Daten, die Information über eine Region umfassen, in der ein linkes Bild 604 und ein rechtes Bild 608 einen Koordinatenraum in einem zusammengefügten Bild 606 gemeinsam nutzen. Ein Koordinatenraum ist in einer Ausführungsform ein 3D-Projektionsraum oder ein virtueller Kameraraum. In einer anderen Ausführungsform ist ein Koordinatenraum ein 2D-Projektionsraum. Ein Koordinatenraum umfasst in einer Ausführungsform Überlappungsinformationen 610 von sowohl einem linken Bild 604 als auch einem rechten Bild 608. In einer anderen Ausführungsform umfasst ein Koordinatenraum Überlappungsinformationen 610 von entweder einem linken Bild 604 oder einem rechten Bild 608.
  • In einer Ausführungsform führt ein Qualitätsbewertungsblock 602 eine Hochpassoperation 612 durch, um einen geometrischen Kennwert 614 oder einen geometrischen Qualitätskennwert scoregeometric zu berechnen, wie oben in Verbindung mit 5 beschrieben. Eine Hochpassoperation 612 besteht in einer Ausführungsform aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, einen geometrischen Kennwert 614 unter Verwendung einer oder mehrerer mathematischer Analysetechniken einschließlich einer objektiven Qualitätsmetrik und/oder subjektiven Qualitätsmetrik berechnen. In einer Ausführungsform bestimmt eine Hochpassoperation 612 eine objektive Qualitätsmetrik und berechnet einen geometrischen Kennwert 614 durch Mittelung eines strukturellen Hochfrequenz-Ähnlichkeitsindexmaß (SSIM) zwischen einem linken Bild 604 oder einem rechten Bild 608 und einem zusammengefügten Bild 606. SSIM ist ein Wahrnehmung-basiertes Modell, das Bildverschlechterung als wahrgenommene Änderung in strukturellen Informationen berücksichtigt, während ebenfalls bedeutende Wahrnehmungsphänomene, wie beispielsweise Luminanzmaskierungs- und Kontrastmaskierungsbedingungen, aufgenommen werden. In einer anderen Ausführungsform bestimmt eine Hochpassoperation 612 eine objektive Qualitätsmetrik und berechnet einen geometrischen Kennwert 614 durch Erzeugen einer Wahrnehmungsqualitäts-Signifikanzkarte (perceptual quality significance map; PQSM) zwischen einem linken Bild 604 oder einem rechten Bild 608 und einem zusammengefügten Bild 606. PQSM ist eine Anordnung, deren Elemente die relative Wahrnehmungsqualitäts-Signifikanzniveaus für den entsprechenden Bereich und/oder Regionen zwischen Bildern darstellt. Eine Hochpassoperation 612 berechnet in einer Ausführungsform einen geometrischen Kennwert 614 unter Verwendung des mittleren quadratischen Fehlers (root mean square error; RMSE), des Spitzensignal-Rauschverhältnisses (peak signal to noise ratio; PSNR) oder einer beliebigen anderen objektiven Qualitätsmetrik, die verwendbar ist, um Unterschiede zwischen einem linken Bild 604 oder einem rechten Bild 608 und einem zusammengefügten Bild 606 zu quantifizieren. In einer anderen Ausführungsform berechnet eine Hochpassoperation 612 einen geometrischen Kennwert 614 unter Verwendung einer beliebigen Subjektqualitätsmetrik, wie beispielsweise einen Durchschnittsmeinungswert (mean opinion score).
  • In einer Ausführungsform führt ein Qualitätsbewertungsblock 602 eine Tiefpassoperation 616 durch, um einen photometrischen Kennwert 618 oder einen photometrischen Qualitätskennwert scorephotometric zu berechnen, wie oben in Verbindung mit 5 beschrieben. Eine Tiefpassoperation 616 besteht in einer Ausführungsform aus Datenwerten und Softwarenweisungen, die, wenn durchgeführt, einen photometrischen Kennwert 618 berechnen. In einer Ausführungsform berechnet eine Tiefpassoperation 616 einen photometrischen Kennwert 618, wie oben in Verbindung mit 5 beschrieben. In einer anderen Ausführungsform berechnet eine Tiefpassoperation 616 einen photometrischen Kennwert 618 basierend mindestens teilweise auf einem spektralen Winkelkartierer (spectral angle mapper; SAM), um photometrische Farbqualität und/oder ein Intensitätsgrößenverhältnis (intensity magnitude ratio; IMR) zu bestimmen, um photometrische Intensitätsqualität zu berechnen. Eine Tiefpassoperation 616 berechnet einen photometrische Kennwert 618 in einer Ausführungsform unter Verwendung einer beliebigen anderen Technik, die verwendbar ist, um Farbunterschiede zwischen einem linken Bild 604 oder einem rechten Bild 608 und einem zusammengefügten Bild 606 zu quantifizieren. In einer Ausführungsform berechnet eine Tiefpassoperation 616 einen photometrischen Kennwert 618 basierend auf einem Farbraum, wie beispielsweise RGB, CIELAB, CMYK, YIQ, YCbCr, YUV, HSV, HSL oder irgendeinem anderen Farbraum, der von einem linken Bild 604 und einem rechten Bild 608 verwendbar ist, die durch zwei oder mehr Kameras erfasst werden, wie ferner hier beschrieben.
  • Bezugnehmend nun auf 7 umfasst jeder Block des hier beschriebenen Verfahrens 700 einen Berechnungsprozess, der unter Verwendung einer beliebigen Kombination aus Hardware, Firmware und/oder Software durchgeführt werden kann. Zum Beispiel können verschiedene Funktionen mittels eines Prozessors ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Die Verfahren können auch als computerverwendbare Anweisungen verkörpert sein, die auf einem Computerspeicherungsmedium gespeichert sind. Die Verfahren können ebenfalls mittels einer eigenständigen Anwendung, eines Dienstes oder gehosteten Dienstes (eigenständig oder in Kombination mit anderen gehosteten Diensten) oder eines Plug-In zu einem anderen Produkt, um nur einige zu nennen, bereitgestellt werden. Zusätzlich wird das Verfahren 700 im Wege eines Beispiels mit Bezug auf die Video- und/oder Bildzusammensetzungs-Pipeline von 1 beschrieben, wie durch ein Surround-View-System in Automobilanwendungen durchgeführt. Jedoch können diese Verfahren zusätzlich oder alternativ mittels jeden einzelnen Systems oder jeder Kombination von Systemen einschließlich jener, jedoch nicht auf die hier beschriebenen beschränkt, ausgeführt werden.
  • 7 ist ein Ablaufdiagramm, das ein Verfahren 700 zum Durchführen einer verbesserten Bildzusammensetzung unter Verwendung der Zusammensetzungsqualitäts-Optimierung zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In dem Verfahren 700 bei Block 702 empfängt ein Zusammensetzungsmodul oder eine Zusammensetzungs-Pipeline zwei oder mehr Bilder von zwei oder mehr Kameras sowie auch die den beiden oder mehr Kameras zugeordneten Kalibrierungsparameter, die verwendet werden, um die beiden oder mehr Bilder zu erzeugen, wie oben in Verbindung mit 1 beschrieben.
  • Bei Block 704 konvertiert das Zusammensetzungsmodul oder die Zusammensetzungs-Pipeline jedes Eingabebild in den Zusammensetzungsraum, wie oben in Verbindung mit 3 beschrieben, und erzeugt bei Block 706 ein zusammengefügtes Anfangsbild. In einer Ausführungsform werden Blöcke 704 und 706 kombiniert und ein zusammengefügtes Bild wird als Ergebnis des Konvertierens von zwei oder mehr Bildern in dem Zusammensetzungsraum 704 erzeugt 706. In einer anderen Ausführungsform werden Blöcke 704 und 706 unabhängig durchgeführt und ein zusammengefügtes Bild wird durch ein Zusammensetzungsmodul oder eine Zusammensetzungs-Pipeline erzeugt 706, nachdem zwei oder mehr 2D-Eingabebilder in den Zusammensetzungsraum 704 konvertiert sind. In einer Ausführungsform transformiert das Zusammensetzungsmodul oder eine Zusammensetzungs-Pipeline zwei oder mehr 2D-Eingabebilder in einen einzigen virtuellen 3D-Kamera- oder zusammengefügten Raum unter Verwendung einer Vorwärts- oder Umkehrabbildung. In einer anderen Ausführungsform transformiert das Zusammensetzungsmodul oder die Zusammensetzungs-Pipeline Transformationen zwei oder mehr 2D-Eingabebilder in ein einziges 2D-Bild.
  • Bei Block 708 berechnet ein Qualitätsbewertungsblock des Zusammensetzungsmoduls einen geometrischen Kennwert unter Verwendung verschiedener Techniken, die oben in Verbindung mit 6 beschrieben sind. Bei Block 710 berechnet ein Qualitätsbewertungsblock des Zusammensetzungsmoduls einen photometrischen Kennwert unter Verwendung verschiedener Techniken, die oben in Verbindung mit 5 und 6 beschrieben sind. Basierend auf dem bei Blöcken 708 und 710 berechneten geometrischen Kennwert und/oder photometrischen Kennwert bestimmt ein Qualitätskennwerts-Validierungsblock, ob entweder der geometrische Kennwert und/oder der photometrische Kennwert unter einem oder mehreren Schwellenwerten sind. Wenn weder der geometrische Kennwert noch der photometrische Kennwert unter 712 einem oder mehreren Schwellenwerten sind, konvertiert das Zusammensetzungsmodul oder die Zusammensetzungs-Pipeline das resultierende zusammengefügte Bild in den Projektionsraum bei Block 718, wie oben in Verbindung mit 3 beschrieben.
  • Wenn der geometrische Kennwert unter einem Schwellenwert 712 ist, verringert ein Zusammensetzungsmodul die geometrische Verzerrung bei Block 714 durch Berechnen einer optimalen geometrischen 3D-Transformation, wie oben in Verbindung mit 5 beschrieben. Wenn der photometrische Kennwert unter einem Schwellenwert 712 ist, verringert das Zusammensetzungsmodul die photometrische Verzerrung bei Block 716 durch Anwenden einer oder mehrerer optimaler photometrischer Transformationen, wie oben in Verbindung mit 5 beschrieben.
  • BEISPIEL EINES AUTONOMEN FAHRZEUGS
  • 8A ist eine Veranschaulichung eines Beispiels eines autonomen Fahrzeugs 800 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 800 (hier alternativ als das „Fahrzeug 800“ bezeichnet) kann umfassen, ohne darauf beschränkt zu sein, ein Personenfahrzeug sein, wie z.B. ein Pkw, ein Lkw, ein Bus, ein First-Responder-Fahrzeug, ein Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Feuerwehrauto, ein Polizeifahrzeug, ein Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne und/oder eine andere Art von Fahrzeug (z.B., das unbemannt ist und/oder einen oder mehrere Insassen beherbergt). Autonome Fahrzeuge werden im Allgemeinen in Bezug auf Automatisierungsgrade beschrieben, wie beispielsweise jene, die von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US Department of Transportation, und dem Standard „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ der Society of Automotive Engineers (SAE) (Standard Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, und frühere und zukünftige Versionen dieser Norm) definiert wird. Das Fahrzeug 800 kann in Übereinstimmung mit einer oder mehreren der autonomen Fahrstufen 3-5 funktionsfähig sein. Beispielsweise kann das Fahrzeug 800 je nach Ausführungsform in der Lage sein, eine bedingte Automatisierung (Stufe 3), eine hohe Automatisierung (Stufe 4) und/oder eine vollständige Automatisierung (Stufe 5) durchzuführen.
  • Das Fahrzeug 800 kann Komponenten wie beispielsweise ein Fahrgestell, eine Fahrzeugkarosserie, 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, wie beispielsweise einen Verbrennungsmotor, eine Hybrid-Elektroanlage, einen vollelektrischen Motor und/oder eine andere Art eines Antriebssystems umfassen. Das Antriebssystem 850 kann mit einem Antriebsstrang des Fahrzeugs 800 verbunden sein, der ein Getriebe umfassen kann, um den Antrieb des Fahrzeugs 800 zu ermöglichen. Das Antriebssystem 850 kann als Reaktion auf ein Empfangen von Signalen von der Drossel/dem Beschleuniger 852 gesteuert werden.
  • Ein Lenksystem 854, das ein Lenkrad umfassen kann, 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 Lenkaktuator 856 empfangen. Das Lenkrad kann für die Funktionalität der Vollautomatisierung (Stufe 5) optional sein.
  • Das Bremssensorsystem 846 kann verwendet werden, um die Fahrzeugbremsen als Reaktion auf Empfangssignale von den Bremsaktuatoren 848 und/oder Bremssensoren zu betätigen.
  • Der(die) Controller 836, der(die) ein oder mehrere CPU(s),System on Chips (SoCs) 804 ( 8C) und/oder GPU(s) umfassen kann(können), kann(können) Signale (z.B. welche Befehle repräsentieren) an eine oder mehrere Komponenten und/oder Systeme des Fahrzeugs 800 bereitstellen. Der(die) Controller kann(können) beispielsweise Signale zum Betätigen der Fahrzeugbremsen über ein oder mehrere Bremsaktuatoren 848, zum Betätigen des Lenksystems 854 über ein oder mehrere Lenkaktuatoren 856, zum Betätigen des Antriebssystems 850 über ein oder mehrere Drosseln/Beschleuniger 852 senden. Der(die) Controller 836 kann(können) eine oder mehrere eingebaute (z.B. integrierte) Rechenvorrichtungen (z.B. Supercomputer) umfassen, die Sensorsignale verarbeiten, und Betriebsbefehle (z.B. Signale, die Befehle repräsentieren) ausgeben, um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Fahren des Fahrzeugs 800 zu unterstützen. Der(die) Controller 836 kann(können) einen ersten Controller 836 für autonome Fahrfunktionen, einen zweiten Controller 836 für funktionale Sicherheitsfunktionen, einen dritten Controller 836 für Funktionen der künstlichen Intelligenz (z.B. Computervision), einen vierten Controller 836 für Infotainment-Funktionen, einen fünften Controller 836 für Redundanz bei Notfällen und/oder andere Controller umfassen. In einigen Beispielen kann ein einzelner Controller 836 zwei oder mehr der oben genannten Funktionalitäten, zwei oder mehr Controller 836 eine einzelne Funktionalität und/oder eine beliebige Kombination davon übernehmen.
  • Der(die) Controller 836 kann(können) die Signale zum Steuern einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 800 als Reaktion auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren (z.B. Sensoreingaben) empfangen werden. Die Sensordaten können beispielsweise und ohne Beschränkung von einem bzw. mehreren Sensor(en) von globalen Navigationssatellitensystemen 858 (z.B. Global Positioning System Sensor(en)), RADAR-Sensor(en) 860, Ultraschallsensor(en) 862, LIDAR-Sensor(en) 864, Inertial Measurement Unit (IMU) Sensor(en) 886 (z.B. Beschleunigungssensor(en), Gyroskop(e), Magnetkompass(e), Magnetometer(e), usw.), Mikrophon(e) 896, Stereokamera(s) 868, Weitwinkelkamera(s) 870 (z.B. Fischaugenkameras), Infrarot-Kamera(s) 872, Surround-Kamera(s) 874 (z.B. 360-Grad-Kameras), Lang- und/oder Mittelbereichskamera(s) 898, Geschwindigkeitssensor(en) 644 (z.B. zur Messung der Geschwindigkeit des Fahrzeugs 800), Vibrationssensor(en) 842, Lenksensor(en) 840, Bremssensor(en) 846 (z.B. als Teil des Bremssensorsystems 846) und/oder anderen Sensortypen empfangen werden.
  • Einer oder mehrere der Controller 836 können Eingaben (repräsentiert durch Eingabedaten) von einer Instrumentengruppe 832 des Fahrzeugs 800 empfangen und Ausgaben (repräsentiert durch Ausgabedaten, Anzeigedaten usw.) über eine Anzeige einer Mensch-Maschine-Schnittstelle (HMI) 634, eine hörbare Meldevorrichtung, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 800 bereitstellen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Geschwindigkeit, Zeit, Kartendaten (z.B. die HD-Karte 822 von 8C), Standortdaten (z.B. den Standort des Fahrzeugs 800, z.B. auf einer Karte), Richtung, Standort anderer Fahrzeuge (z.B. ein Belegungsgitter), Informationen über Objekte und Status von Objekten, wie sie von dem(den) Controllern 836 wahrgenommen werden, usw. umfassen. Beispielsweise kann die HMI-Anzeige 634 Informationen über das Vorhandensein eines oder mehrerer Objekte (z.B. ein Straßenschild, Warnschild, Ampeländerung usw.) und/oder Informationen über Fahrmanöver, die das Fahrzeug durchführte, gerade durchführt oder durchführen wird (z.B. Wechseln von Spuren sofort, Nehmen einer Ausfahrt 34B in zwei Meilen, usw.), anzeigen.
  • Das Fahrzeug 800 umfasst ferner eine Netzwerkschnittstelle 824, die eine oder mehrere drahtlose Antenne(n) 826 und/oder Modem(s) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Beispielsweise kann die Netzwerkschnittstelle 824 imstande sein, über LTE, WCDMA, UMTS, GSM, CDMA2000, usw. kommunizieren. Die drahtlose(n) Antenne(n) 826 kann(können) auch die Kommunikation zwischen Objekten in der Umgebung (z.B. Fahrzeugen, mobilen Vorrichtungen usw.) unter Verwendung von einem Lokalbereichsnetzwerk(en), wie beispielweise Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder einem Weitbereichsnetzwerk(en) mit geringer Leistung (low power wide-area network(s); LPWANs), wie beispielsweise LoRaWAN, SigFox usw. ermöglichen.
  • 8B ist ein Beispiel von Kamerastandorten und Sichtfeldern für das Beispiel eines autonomen Fahrzeugs 800 von 8A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die entsprechenden Sichtfelder sind eine Beispielausführungsform und sind nicht bestimmt, einschränkend zu sein. Beispielsweise können zusätzliche und/oder alternative Kameras umfasst sein und/oder die Kameras können an verschiedenen Stellen an dem Fahrzeug 800 lokalisiert sein.
  • Die Kameratypen für die Kameras können Digitalkameras umfassen, sind jedoch nicht beschränkt darauf, die für eine Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 800 angepasst sein können. Die Kamera(s) kann(können) bei dem Automotive Safety Integrity Level (ASIL) B und/oder mit einem anderen ASIL arbeiten. Die Kameratypen können abhängig von der Ausführungsform für jede Bildaufnahmerate fähig sein, z. B. 60 Bilder pro Sekunde (frames per second; fps), 120 fps, 240 fps, usw. Die Kameras können in der Lage sein, rollende Verschlüsse, globale Verschlüsse, eine andere Art von Verschluss oder eine Kombination davon zu verwenden. In einigen Beispielen kann das Farbfilterarray der Kameras ein red clear clear (TCCC) Farbfilterarray, ein red clear blue (RCCB) Farbfilterarray, ein red blue green clear (RBGC) Farbfilterarray, ein Foveon X3 Farbfilterarray, ein Bayer-Sensoren (RGGB) Farbfilterarray, ein monochromes Sensorfarbfilterarray und/oder eine andere Art von Farbfilterarray umfassen. In einigen Ausführungsformen können klare Pixelkameras, wie beispielsweise Kameras mit einem RCCC-, einem RCCB- und/oder einem RBGC-Farbfilterarray, in einem Bemühen verwendet werden, die Lichtempfindlichkeit zu erhöhen.
  • In einigen Beispielen kann(können) eine oder mehrere der Kameras verwendet werden, ADAS-Funktionen (advanced driver assistance systems) durchzuführen (z.B. als Teil eines redundanten oder ausfallsicheren Designs). Beispielsweise kann eine Multifunktions-Monokamera installiert werden, um Funktionen bereitzustellen, die Spurabweichungswarnung, Verkehrszeichenunterstützung und intelligente Scheinwerfersteuerung bereitstellt. Eine oder mehrere der Kameras (z.B. alle Kameras) können Bilddaten (z.B. Video) gleichzeitig aufzeichnen und bereitstellen.
  • Eine oder mehrere der Kameras können in einer Montagebaugruppe, wie beispielsweise einer kundenspezifischen (3-D-gedruckten) Baugruppe, angebracht werden, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z.B. Reflexionen vom Armaturenbrett, die in den Spiegeln der Windschutzscheibe reflektiert werden) abzubauen, welche die Fähigkeiten der Bilddatenerfassung der Kamera beeinträchtigen können. In Bezug auf die Montagebaugruppen der Außenspiegel können die Außenspiegelbaugruppen individuell in 3D gedruckt werden, so dass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen kann(können) die Kamera(s) in dem Außenspiegel integriert werden. Bei Seitensichtkameras kann(können) die Kamera(s) 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. nach vorne gerichtete Kameras), können für eine Rundumsicht verwendet werden, um nach vorne gerichtete Wege und Hindernisse zu identifizieren, sowie mit Hilfe einer oder mehreren Controllern 836 und/oder Steuer-SoCs dabei zu unterstützen, wichtige Informationen zum Erzeugen eines Belegungsgitters und/oder zum Bestimmen der bevorzugten Fahrzeugwege bereitzustellen. Nach vorne gerichtete Kameras können verwendet werden, um viele der gleichen ADAS-Funktionen wie LIDAR durchzuführen, einschließlich Notbremsung, Fußgängererfassung und Kollisionsvermeidung. Nach vorne gerichtete Kameras können auch für ADAS-Funktionen und -Systeme verwendet werden, einschließlich Spurhaltewarnungen (lane departing warnings; LDW), autonome Geschwindigkeitsregelung (Autonomous Cruise Control; ACC) und/oder andere Funktionen wie beispielsweise Verkehrszeichenerfassung.
  • Eine Vielzahl von Kameras kann in einer nach vorne gerichteten Konfiguration verwendet werden, die beispielsweise eine monokulare Kameraplattform umfasst, die einen CMOS (complementary metal oxide semiconductor) Farbbildgeber umfasst. Ein weiteres Beispiel kann(können) eine Weitwinkelkamera(s) 870, die verwendet werden kann(können), um Objekte wahrzunehmen, die von der Peripherie in Sicht kommen (z.B. Fußgänger, Kreuzverkehr oder Fahrräder). Obwohl nur eine Weitwinkelkamera in 8B veranschaulicht ist, kann sich am Fahrzeug 800 eine beliebige Anzahl von Weitwinkelkameras 870 befinden. Außerdem können Fernbereichskameras 898 (z.B. ein Langsicht-Stereokamerapaar) zur tiefenbasierten Objekterfassung verwendet werden, insbesondere für Objekte, für die ein neuronales Netzwerk noch nicht trainiert wurde. Die Fernbereichskameras 898 können auch zur Objekterfassung und -klassifizierung sowie auch zur einfachen Objektverfolgung eingesetzt werden.
  • Eine oder mehrere Stereokameras 868 können ebenfalls in einer nach vorne gerichteten Konfiguration umfasst sein. Die Stereokamera(s) 868 kann(können) eine integrierte Steuereinheit umfassen, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (z.B. FPGA) und einen Mehrkernmikroprozessor mit einer CAN oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Eine derartige Einheit kann verwendet werden, um eine 3D-Karte der Umgebung des Fahrzeugs zu erzeugen, die eine Abstandsschätzung für alle Punkte im Bild umfasst. Eine alternative Stereokamera(s) 868 kann(können) einen kompakten Stereosichtsensor(en) umfassen, der zwei Kameraobjektive (je eine links und rechts) und einen Bildverarbeitungschip umfassen kann, der den Abstand von dem Fahrzeug zu dem Zielobjekt messen und die erzeugten Information (z.B. Metadaten) verwenden kann, um die autonomen Funktionen der Notbremsung und Spurhaltemeldung zu aktivieren. Andere Arten von Stereokameras 868 können zusätzlich zu oder alternativ zu den hier beschriebenen verwendet werden.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung seitlich des Fahrzeugs 800 umfasst (z.B. Seitensichtkameras), können für die Surround-Ansicht verwendet werden und Informationen bereitstellen, die zum Erzeugen und Aktualisieren des Belegungsgitters sowie auch zum Erzeugen von Seitenaufprallwarnungen verwendet werden. Beispielsweise kann(können) die Surround-Kamera(s) 874 (z.B. vier Surround-Kameras 874, wie in 8B veranschaulicht) um das Fahrzeug 800 positioniert werden. Die Surround-Kamera(s) 874 kann(können) Weitwinkelkamera(s) 870, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder dergleichen umfassen. Beispielsweise können vier Fischaugenkameras an der Vorderseite, am Heck 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 kann eine oder mehrere andere Kameras (z.B. eine nach vorne gerichtete Kamera) als eine vierte Surround-View-Kamera wirksam einsetzen.
  • Kameras mit einem Sichtfeld, das Teile der Umgebung am Heck des Fahrzeugs 800 umfasst (z.B. Rückfahrkameras), können für eine Einparkhilfe, eine Rundumsicht, Warnungen vor Heckkollision sowie zum Erzeugen und Aktualisieren des Belegungsgitters verwendet werden. Eine weite Vielzahl von Kameras kann verwendet werden, einschließlich, jedoch nicht beschränkt auf, Kameras, die auch als nach vorne gerichtete Kameras geeignet sind (z.B. Lang- und/oder Mittelbereichskameras 898, Stereokameras 868), Infrarotkameras 872, usw.), wie hier beschrieben.
  • 8C ist ein Blockdiagramm eines Beispiels einer Systemarchitektur für das Beispiel eines autonomes Fahrzeugs 800 von 8A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es sei zu verstehen, dass diese und andere hier beschriebene Anordnungen nur als Beispiele dargelegt sind. Andere Anordnungen und Elemente (z.B. Maschinen, Schnittstellen, Funktionen, Reihenfolgen, Gruppierungen von Funktionen usw.) können zusätzlich oder anstelle derjenigen verwendet werden, die gezeigt werden, und einige Elemente können ganz weggelassen werden. Ferner sind viele der hier beschriebenen Elemente funktionale Entitäten, die als diskrete oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und jedem geeigneten Ort implementiert werden können. Verschiedene Funktionen, die hier als von Einheiten ausgeführt beschrieben werden, können durch 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.
  • Jede der Komponenten, Merkmale und Systeme des Fahrzeugs 800 in 8C wird als über den Bus 802 verbunden veranschaulicht. Der Bus 802 kann eine Controller Area Network (CAN)-Datenschnittstelle (im Folgenden alternativ als „CAN-Bus“ bezeichnet). Ein CAN kann ein Netzwerk innerhalb des Fahrzeugs 800 sein, das verwendet wird, um bei der Steuerung verschiedener Merkmale und der Funktionalität des Fahrzeugs 800 zu helfen, wie z.B. Betätigung von Bremsen, Beschleunigung, Bremsen, Lenkung, Scheibenwischern, usw. Ein CAN-Bus kann konfiguriert sein, dass er Dutzenden oder sogar Hunderten von Knoten jeweils mit seinem eigenen eindeutigen Identifikator (z.B. einer CAN-ID) aufweist. Der CAN-Bus kann ausgelesen werden, um Lenkradwinkel, Bodengeschwindigkeit, Motordrehzahlen pro Minute (U/min), Schalterpositionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. Der CAN-Bus kann ASIL B-konform sein.
  • Obwohl der Bus 802 hier als ein CAN-Bus beschrieben wird, ist dies nicht bestimmt, einschränkend zu sein. Beispielweise können zusätzlich zu oder alternativ von dem CAN-Bus FlexRay und/oder Ethernet verwendet werden. Außerdem ist dies, obwohl eine einzige Leitung zur Darstellung des Busses 802 verwendet wird, nicht bestimmt, einschränkend zu sein. Es kann beispielsweise 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 Arten von Bussen 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 für Redundanz verwendet werden. Beispielsweise kann ein erster Bus 802 für eine Kollisionsvermeidungsfunktionalität und ein zweiter Bus 802 für eine Betätigungssteuerung verwendet werden. In jedem Beispiel kann jeder Bus 802 mit einer der Komponenten des Fahrzeugs 800 kommunizieren, und zwei oder mehr Busse 802 können mit den gleichen Komponenten kommunizieren. In einigen Beispielen kann jedes SoC 804, jede Steuerung 836 und/oder jeder Computer im Fahrzeug Zugriff auf die gleichen Eingabedaten haben (z.B. Eingaben von Sensoren des Fahrzeugs 800) und mit einem gemeinsamen Bus, wie beispielsweise dem CAN-Bus, verbunden sein.
  • Das Fahrzeug 800 kann einen oder mehrere Controller 836 umfassen, wie sie hier in Bezug auf 8A beschrieben sind. Der(die) Controller 836 kann(können) für eine Vielzahl von Funktionen verwendet werden. Der(die) Controller 836 kann(können) mit einer 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 System(e)-on-a-Chip 804 umfassen. Das SoC 804 kann CPU(s) 806, GPU(s) 808, Prozessor(en) 810, Cache-Speicher 812, Beschleuniger 814, Datenspeicher 816 und/oder andere nicht veranschaulichte Komponenten und Merkmale umfassen. Das(die) SoC(s) 804 kann(können) zur Steuerung des Fahrzeugs 800 in einer Vielzahl von Plattformen und Systemen verwendet werden. Beispielsweise kann(können) das(die) SoC(s) 804 in einem System (z.B. dem System des Fahrzeugs 800) mit einer HD-Karte 822 kombiniert werden, die über eine Netzwerkschnittstelle 824 von einem oder mehreren Servern (z.B. Server(n) 878 der 8D) Kartenaktualisierungen und/oder Updates erhalten kann.
  • Die CPU(s) 806 kann(können) einen CPU-Cluster oder CPU-Komplex (alternativ hier als „CCPLEX“ bezeichnet) umfassen. Die CPU(s) 806 kann(können) mehrere Kerne und/oder L2-Caches umfassen. Beispielsweise kann(können) in einigen Ausführungsformen die CPU(s) 806 acht Kerne in einer kohärenten Multiprozessor-Konfiguration umfassen. In einigen Ausführungsformen kann(können) die CPU(s) 806 vier Dual-Core-Cluster umfassen, wobei jeder Cluster einen dedizierten L2-Cache (z.B. einen 2 MB L2-Cache) aufweist. Die CPU(s) 806 (z.B. der CCPLEX) kann(können) so konfiguriert sein, dass sie einen simultanen Clusterbetrieb unterstützen, wobei eine beliebige Kombination der Cluster der CPU(s) 806 zu einem gegebenen Zeitpunkt aktiv sein kann.
  • Die CPU(s) 806 kann(können) Energieverwaltungsfähigkeiten implementieren, die eine oder mehrere der folgenden Merkmale umfassen: Einzelne Hardwareblöcke können durch Clock-Gating automatisch im Leerlauf gesteuert werden, um dynamische Leistung zu sparen, oder jeder Kerntakt kann durch Gating gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen keine aktiven Anweisungen ausführt, oder jeder Kern kann unabhängig durch Power-Gating gesteuert werden, oder jeder Kerncluster kann durch Clock-Gating gesteuert werden, wenn alle Kerne durch Clock-Gating oder Power-Gating gesteuert werden, oder jeder Kerncluster kann unabhängig durch Power-Gating gesteuert werden. Die CPU(s) 806 kann(können) ferner einen erweiterten Algorithmus zur Verwaltung von Leistungszuständen implementieren, bei dem zulässige Leistungszustände und erwartete Aufwachzeiten spezifiziert werden, und die Hardware bzw. der Mikrocode bestimmt den besten Leistungszustand, der für den Kern, den Cluster und den CCPLEX erreicht werden kann. Die Verarbeitungskerne können vereinfachte Eingangssequenzen für den Leistungszustand in der Software unterstützen, wobei die Arbeit auf einen Mikrocode abgeladen wird.
  • Die GPU(s) 808 kann(können) eine integrierte GPU(s) umfassen (alternativ hier als „iGPU“ bezeichnet). Die GPU(s) 808 kann(können) programmierbar und für parallele Arbeitslasten effizient sein. Die GPU(s) 808 kann(können) in einigen Beispielen einen erweiterten Tensorbefehlssatz verwenden. Die GPU(s) 808 kann(können) einen oder mehrere Streaming-Mikroprozessoren umfassen, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z.B. einen L1-Cache mit mindestens 96KB Speicherkapazität) umfassen kann, und zwei oder mehr der Streaming-Mikroprozessoren sich einen L2-Cache (z.B. einen L2-Cache mit einer Speicherkapazität von 512 KB) teilen können. In einigen Ausführungsformen kann(können) die GPU(s) 808 mindestens acht Streaming-Mikroprozessoren umfassen. Der(die) GPU(s) 808 kann(können) computerbasierte anwendungsprogrammierbare Schnittstelle(n) (API(s)) zur Programmierung von Computeranwendungen verwenden. Außerdem kann(können) die GPU(s) 808 eine oder mehrere parallele Computerplattformen und/oder Programmiermodelle (z.B. NVIDIAs CUDA) verwenden.
  • Die GPU(s) 808 kann(können) zur besten Leistung in Automobil- und Eingebetteten-Anwendungsfällen leistungsoptimiert sein. Beispielsweise kann(können) die GPU(s) 808 auf einem Fin-Feldeffekttransistor(FinFET) hergestellt sein. Dies ist jedoch nicht als Einschränkung bestimmt und die GPU(s) 808 kann(können) mit anderen Halbleiterherstellungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Reihe von gemischt-präzisen Verarbeitungskernen umfassen, die in mehrere Blöcke unterteilt sind. Beispielsweise können 64 PF32-Kerne und 32 PF64-Kerne ohne Einschränkung in vier Verarbeitungsblöcke unterteilt werden. In einem derartigen Beispiel kann jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR-Kerne mit gemischter Präzision für die Deep-Learning-Matrix-Arithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Dispositionseinheit und/oder eine 64 KB-Registerdatei zugeordnet werden. Außerdem können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkommadatenpfade umfassen, um eine effiziente Ausführung von Workloads mit einer Mischung aus Berechnung und Adressierungsberechnungen zu gewährleisten. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Scheduling-Funktionalität umfassen, um eine feinere Synchronisation und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Daten-Cache und eine gemeinsame Speichereinheit umfassen, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.
  • Die GPU(s) 808 kann(können) einen Speicher mit hoher Bandbreite (High Bandwidth Memory; HBM) und/oder ein 16 GB HBM2-Speichersubsystem umfassen, um in einigen Beispielen eine Spitzenspeicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich zum oder alternativ zum HBM-Speicher ein synchroner Graphik-Random-Access-Speicher (SGRAM) verwendet werden, wie beispielsweise ein Graphik-Doppel-Datenraten Typ fünf synchroner Direktzugriffsspeicher (GDDR5).
  • Die GPU(s) 808 kann(können) eine Unified Memory-Technologie einschließlich Zugriffszählern umfassen, um eine genauere Migration von Speicherseiten zu dem Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, wodurch die Effizienz der zwischen den Prozessoren geteilten Speicherbereiche verbessert wird. In einigen Beispielen kann die Unterstützung von Adressübersetzungsdiensten (Address Translation Services; ATS) verwendet werden, damit der(die) GPU(s) 808 direkt auf die Seitentabellen der CPU(s) 806 zugreifen kann(können). In derartigen Beispielen kann, wenn die Speicherverwaltungseinheit (MMU) der GPU(s) 808 einen Fehlzugriff erfährt, eine Adressübersetzungsanforderung an die CPU(s) 806 gesendet werden. Als Antwort darauf kann(können) die CPU(s) 806 in ihren Seitentabellen nach der virtuell-physikalischen Mapping für die Adresse suchen und die Übersetzung zurück an die GPU(s) 808 senden. Daher kann die Unified Memory-Technologie einen einzigen einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 806 als auch der GPU(s) 808 ermöglichen, wodurch die Programmierung und Portierung von Anwendungen auf die GPU(s) 808 vereinfacht wird.
  • Außerdem kann(können) die GPU(s) 808 einen Zugriffszähler umfassen, der die Häufigkeit eines Zugriffs der GPU(s) 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.
  • Der(die) SoC(s) 804 kann(können) eine beliebige Anzahl von Cache(s) 812 umfassen, einschließlich der hier beschriebenen. Beispielsweise kann(können) der(die) Cache(s) 812 einen L3-Cache umfassen, der sowohl für die CPU(s) 806 als auch für die GPU(s) 808 verfügbar ist (z.B. der(die) sowohl mit der/den CPU(s) 806 als auch der/den GPU(s) 808 verbunden ist bzw. sind). Der(die) Cache(s) 812 kann(können) einen Write-Back-Cache umfassen, der den Zustand der Leitungen nachverfolgt, wie beispielsweise 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, obwohl kleinere Cachegrößen verwendet werden können.
  • Der/die SOC(s) 804 kann(können) eine Arithmetik-Logik-Einheit(en) (ALU(s)) umfassen, die beim Durchführen einer Verarbeitung im Zusammenhang mit jeder der Vielfalt von Aufgaben und Operationen des Fahrzeugs 800, wie zum Beispiel Verarbeitung der DNN, wirksam eingesetzt werden kann(können). Außerdem kann/können der/die SoC(s) 804 eine Floating-Point- Einheit(en) (FPU(s)), oder andere mathematische Coprozessoren- oder numerische Coprozessoren-Typen, zum Durchführen mathematischer Operationen innerhalb des Systems umfassen. Zum Beispiel kann/können der/die SoC(s) 104 einen oder mehrere FPUs umfassen, die als Ausführungseinheiten innerhalb einer CPU(s) 806 und/oder GPU(s) 808 integriert sind.
  • Das(die) SoC(s) 804 kann(können) einen oder mehrere Beschleuniger 814 umfassen (z.B. Hardwarebeschleuniger, Softwarebeschleuniger oder eine Kombination davon). Beispielsweise kann(können) die SoC(s) 804 einen Hardwarebeschleunigungscluster umfassen, der optimierte Hardwarebeschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. Der große On-Chip-Speicher (z.B. 4 MB SRAM) kann es dem Hardwarebeschleunigungscluster ermöglichen, neuronale Netzwerke und andere Berechnungen zu beschleunigen. Der Hardwarebeschleunigungscluster kann verwendet werden, um die GPU(s) 808 zu ergänzen und einige der Aufgaben der GPU(s) 808 auszulagern (z.B. um mehr Zyklen der GPU(s) 808 für die Ausführung anderer Aufgaben freizugeben). Als Beispiel kann(können) der(die) Beschleuniger 814 für gezielte Arbeitslasten (z.B. Wahrnehmung, faltende neuronale Netzwerke (Convolutional Neural Networks; CNNs), usw.) verwendet werden, die für eine Beschleunigung stabil genug sind. Der Begriff „CNN“, wie hier verwendet, kann alle Arten von CNNs umfassen, einschließlich regionenbasierte oder regionale faltende neuronale Netzwerke (regional Convolutional Neural Networks; RCNNs) und Fast RCNNs (z.B. wie zur Objekterfassung verwendet).
  • Der(die) Beschleuniger 814 (z.B. der Hardwarebeschleunigungscluster) kann(können) einen oder mehrere Beschleuniger für tiefes Lernen (Deep Learning Accelerator(s); DLA) umfassen. Die DLA(s) kann(können) eine oder mehrere Tensor-Verarbeitungseinheiten (Tensor Processing Units; TPUs) umfassen, die konfiguriert sein können, um zusätzliche zehn Billionen Operationen pro Sekunde für Deep Learning-Anwendungen und Inferenzieren bereitzustellen. Die TPUs kann(können) Beschleuniger sein, die für die Durchführung von Bildverarbeitungsfunktionen konfiguriert und optimiert sind (z.B. für CNNs, RCNNs usw.). Der(die) DLA(s) kann(können) weiter für einen bestimmten Satz von neuronalen Netzwerktypen und Gleitkommaoperationen sowie für Inferenzierung optimiert werden. Die Ausgestaltung der DLA(s) kann mehr Leistung pro Millimeter bieten als ein Universal-Graphikprozessor und übersteigt bei weitem die Leistung einer CPU. Die TPU(s) kann(können) mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die beispielsweise Merkmale und Gewichtungen bei den Datentypen INT8, INT 16 und FP16 sowie auch Postprozessorfunktionen unterstützt.
  • Der(die) DLA(s) kann(können) neuronale Netzwerke, insbesondere CNNs, schnell und effizient an verarbeiteten oder unverarbeiteten Daten für eine Vielzahl von Funktionen ausführen, einschließlich beispielsweise und ohne Einschränkung: ein CNN zur Objektidentifikation und -erfassung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Abstandsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN zur Fahrzeugerfassung und -identifikation und -erfassung unter Verwendung von Daten aus Mikrophonen; ein CNN zur Gesichtserfassung und Fahrzeughalteridentifikation unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für Sicherheit und/oder sicherheitsbezogene Ereignisse.
  • Der(die) DLA(s) kann(können) jede beliebige Funktion der GPU(s) 808 ausführen und durch die Verwendung eines Inferenzbeschleunigers kann ein Designer beispielsweise für jede Funktion entweder die DLA(s) oder die GPU(s) 808 ansprechen. Beispielsweise kann sich der Designer auf die Verarbeitung von CNNs und Gleitkommaoperationen auf dem(den) DLA(s) konzentrieren und andere Funktionen dem(den) GPU(s) 808 und/oder einem anderem(anderen) Beschleuniger(n) 814 überlassen.
  • Der(die) Beschleuniger 814 (z.B. der Hardwarebeschleunigungscluster) kann(können) einen programmierbaren Visionsbeschleuniger (programmable vision accelerator; PVA) umfassen, der hier alternativ als ein Computer Vision Accelerator bezeichnet werden kann. Der(die) PVA(s) kann(können) so ausgestaltet und konfiguriert sein, dass sie die Bildverarbeitungsalgorithmen für die Anwendungen der fortgeschrittene Fahrerassistenzsysteme (advanced driver assistance systems; ADAS), autonomen Fahrens und/oder der Augmented Reality (AR) und/oder Virtual Reality (VR) beschleunigen. Der(die) PVA(s) kann(können) ein Gleichgewicht zwischen Leistung und Flexibilität bieten. Jede(r) PVA(s) kann(können) beispielsweise ohne Einschränkung eine beliebige Anzahl von Computerprozessor mit reduziertem Befehlssatzkernen (reduced instruction set computer cores; RISC cores), Direktzugriffsspeicher (direct memory access; DMA) und/oder eine beliebige Anzahl von Vektorprozessoren umfassen.
  • Die RISC-Kerne können mit Bildsensoren (z.B. den Bildsensoren einer der hier beschriebenen Kameras), Bildsignalprozessor(en) und/oder dergleichen wechselwirken. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher umfassen. Die RISC-Kerne können je nach Ausführungsform eines einer Anzahl von Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (real-time operating system; RTOS) ausführen. Die RISC-Kerne können mit einer oder mehreren integrierten Schaltungsvorrichtungen, anwendungsspezifischen integrierten Schaltungen (application specific integrated circuits; ASICs) und/oder Speichervorrichtungen implementiert werden.
  • Beispielsweise können die RISC-Kerne einen Befehls-Cache und/oder einen eng gekoppelten RAM umfassen.
  • Der DMA kann Komponenten des(der) PVA(s) ermöglichen, unabhängig von der(den) CPU(s) 806 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Merkmalen unterstützen, die zur Optimierung des PVA verwendet werden, einschließlich, jedoch nicht beschränkt auf, der Unterstützung multidimensionaler Adressierung und/oder zirkulärer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, welche die Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockstufen, vertikale Blockstufen und/oder Tiefenstufen umfassen können.
  • Die Vektorprozessoren können programmierbare Prozessoren sein, die ausgestaltet sein können, dass sie die Programmierung für Computer-Vision-Algorithmen effizient und flexibel durchführen und Signalverarbeitungsfähigkeiten bereitstellen. In einigen Beispielen kann der PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen umfassen. Der PVA-Kern kann ein Prozessorsubsystem, ein DMA-Engine(s) (z.B. zwei DMA-Engines) und/oder andere Peripheriegeräte umfassen. Das Vektorverarbeitungs-Subsystem kann als das primäre Verarbeitungs-Engine des PVA fungieren und kann eine Vektorverarbeitungseinheit (vector processing unit; VPU), einen Anweisungs-Cache und/oder einen Vektorspeicher (z.B. vector memory; VMEM) umfassen. Ein VPU-Kern kann einen digitalen Signalprozessor umfassen, wie beispielsweise einen digitalen Signalprozessor mit mehreren Daten (single instruction, multiple data; SIMD) und einem sehr langen Anweisungswort (very long instruction word; VLIW). Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.
  • Jeder der Vektorprozessoren kann einen Befehls-Cache umfassen und mit einem dedizierten Speicher gekoppelt sein. Infolgedessen kann in einigen Beispielen jeder der Vektorprozessoren konfiguriert sein, um unabhängig von den anderen Vektorprozessoren ausführen zu können. In anderen Beispielen können die Vektorprozessoren, die in einem bestimmten PVA umfasst sind, konfiguriert sein, um Datenparallelität anzuwenden. Beispielsweise können in einigen Ausführungsformen mehrere, in einem einzigen PVA enthaltene Vektorprozessoren den gleichen Computer-Vision-Algorithmus ausführen, jedoch auf verschiedenen Bereichen eines Bildes. In anderen Beispielen können die in einem bestimmten PVA enthaltenen Vektorprozessoren gleichzeitig verschiedene Computer-Vision-Algorithmen für dasselbe Bild ausführen oder sogar verschiedene Algorithmen an sequentiellen Bildern oder Teile eines Bildes ausführen. Unter anderem können beliebig viele PVAs in dem Hardwarebeschleunigungscluster und beliebig viele Vektorprozessoren in jedem der PVAs eingebunden werden. Außerdem kann(können) die PVA(s) zusätzlichen ECC-(error correcting code)-Speicher umfassen, um die Gesamtsystemsicherheit zu erhöhen.
  • Der(die) Beschleuniger 814 (z.B. der Hardwarebeschleunigungscluster) kann(können) ein On-Chip-Computer-Vision-Netzwerk und SRAM umfassen, um ein 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, der beispielsweise aus acht feldkonfigurierbaren Speicherblöcken besteht, die sowohl für den PVA als auch für den DLA zugänglich sind. Jedes Speicherblockpaar kann eine erweiterte APB-Schnittstelle (advanced peripheral bus interface), Konfigurationsschaltungen, einen Controller und einen Multiplexer umfassen. Es kann eine beliebige Art von Speicher verwendet werden. Der PVA und DLA können über ein Backbone auf den Speicher zugreifen, das dem PVA und DLA einem Hochgeschwindigkeitszugriff auf den Speicher bereitstellt. Das Backbone kann ein On-Chip Computer-Vision-Netzwerk umfassen, das das PVA und das DLA mit dem Speicher (z.B. unter Verwendung des APB) verbindet.
  • Das On-Chip-Computer-Vision-Netzwerk kann eine Schnittstelle umfassen, die vor der Übertragung irgendwelcher Steuersignalen/Adressen/Daten bestimmt, dass sowohl der PVA als auch der DLA bereite und gültige Signale bereitstellen. Eine derartige Schnittstelle kann getrennte Phasen und getrennte Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-Kommunikation für den kontinuierlichen Datentransfer vorsehen. Diese Art von Schnittstelle kann den Normen ISO 28262 oder IEC 61508 entsprechen, obwohl auch andere Normen und Protokolle verwendet werden können.
  • In einigen Beispielen kann(können) das(die) SoC(s) 804 einen Echtzeit-Raytracing-Hardwarebeschleuniger umfassen, wie beispielweise in der U. S. Patentanmeldung Nr. 16/101,232 , eingereicht am 10. August 2018, beschrieben ist. Der Echtzeit-Raytracing-Hardwarebeschleuniger kann verwendet werden, um schnell und effizient die Positionen und Ausmaße von Objekten (z.B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeit-Visualisierungssimulationen zur RADAR-Signalinterpretation, zur Schallausbreitungssynthese und/oder -analyse, zur Simulation von SONAR-Systemen, zur Simulation einer allgemeinen Wellenausbreitung, zum Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder andere Funktionen und/oder für andere Anwendungen zu erzeugen. In einigen Ausführungsformen können ein oder mehrere Baumtraversierungseinheiten (TTUs) zum Ausführen einer oder mehrerer Ray-Tracing-Operationen verwendet werden.
  • Der(die) Beschleuniger 814 (z.B. der Hardwarebeschleuniger-Cluster) weist(weisen) eine breite Anordnung von Verwendungen für autonomes Fahren auf. Der PVA kann ein programmierbarer Vision-Beschleuniger sein, der für wichtige Verarbeitungsstufen in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten des PVA sind eine gute Anpassung für algorithmische Domänen, die eine vorhersagbare Verarbeitung bei geringer Leistungsaufnahme und geringer Latenzzeit benötigen. Mit anderen Worten kann der PVA bei semidichtem oder dichtem regulärem Rechnen selbst bei kleinen Datensätzen gut arbeiten, die vorhersagbare Laufzeiten mit geringer Latenz und geringer Leistung benötigen. Somit können die PVAs im Kontext von Plattformen für autonome Fahrzeuge so ausgestaltet sein, um klassische Computer-Vision-Algorithmen auszuführen, da sie bei der Objekterfassung effizient sind und mit ganzzahliger Mathematik arbeiten.
  • Zum Beispiel wird gemäß einer Ausführungsform der Technologie der PVA verwendet, um Computer-Stereo-Vision durchzuführen. In einigen Beispielen kann ein semiglobaler Abgleich-basierter Algorithmus verwendet werden, der jedoch nicht bestimmt ist, einschränkend zu sein. Viele Anwendungen für autonomes Fahren der Stufe 3-5 erfordern eine Bewegungsschätzung/on-the-fly Stereoabgleich (z.B. Struktur aus Bewegung, Fußgängererfassung, Spurerfassung usw.). Der PVA kann eine Computer-Stereo-Vision-Funktion an Eingaben von zwei Monokularkameras ausführen.
  • In einigen Beispielen kann der PVA zur Durchführung von dichtem optischem Fluss verwendet werden. Beispielsweise kann der PVA verwendet werden, um rohe RADAR-Daten (z.B. unter Verwendung einer 4D Fast Fourier Transformation) zu verarbeiten, um ein verarbeiteten RADAR-Signal bereitzustellen, bevor der nächste RADAR-Puls emittiert wird. In anderen Beispielen wird der PVA für die Time-of-Flight-Tiefenverarbeitung verwendet, indem Rohdaten von Flugdaten verarbeitet werden, um beispielsweise verarbeitete Flugzeitdaten bereitzustellen.
  • Der DLA kann verwendet werden, um jede Art von Netzwerk zu betreiben, um die Kontrolle und Fahrsicherheit zu erhöhen, einschließlich beispielsweise eines neuronalen Netzwerks, das ein Maß an Vertrauen für jede Objekterfassung ausgibt. Ein derartiger Vertrauenswert kann als Wahrscheinlichkeit oder als Bereitstellung einer relativen „Gewichtung“ jeder Erfassung im Vergleich zu anderen Erfassungen interpretiert werden. Dieser Vertrauenswert ermöglicht dem System, um weitere Entscheidungen hinsichtlich dessen zu treffen, welche Erfassungen als echt positive Erfassungen und nicht als falsch positive Erfassungen zu betrachten sind. Das System kann beispielsweise einen Schwellenwert für das Vertrauen festlegen und nur die den Schwellenwert übersteigenden Erfassungen als echt positive Erfassungen betrachten. In einem automatischen Notbremssystem (automatic emergency braking system; AEB system) 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 vertrauensvollsten Erfassungen als Auslöser für die AEB betrachtet werden. Der DLA kann ein neuronales Netzwerk zur Regression des Vertrauenswerts betreiben. Das neuronale Netzwerk kann mindestens eine Teilmenge von Parametern als Eingabe verwenden, wie unter anderem z.B. Abmessungen eines Begrenzungskastens, einer Schätzung der Bodenebene (z.B. von einem anderen Subsystem erhalten), eine Ausgabe eines Sensors 866 der Trägheitsmesseinheit (inertial measurement unit; IMU), die mit der Orientierung des Fahrzeugs 800 korreliert, einen Abstand, 3D-Positionsschätzungen des Objekts, die von dem neuronalen Netzwerk und/oder von anderen Sensoren (z.B. LIDAR-Sensor(en) 864 oder RADAR-Sensor(en) 860) stammen.
  • Der(die) SoC(s) 804 kann(können) Datenspeicher 816 (z.B. Speicher) umfassen. Der(die) Datenspeicher 816 kann(können) ein On-Chip-Speicher des(der) SoC(s) 804 sein, der neuronale Netzwerke speichern kann, die auf der GPU und/oder dem DLA ausgeführt werden sollen. In einigen Beispielen kann(können) der(die) Datenspeicher 816 in der Kapazität groß genug sein, um mehrere Instanzen neuronaler Netzwerke für Redundanz und Sicherheit zu speichern. Der(die) Datenspeicher 812 kann(können) einen L2- oder L3-Cache(s) 816 umfassen. Die Bezugnahme auf den(die) Datenspeicher 816 kann eine Bezugnahme auf den Speicher umfassen, der dem PVA, DLA und/oder anderen Beschleunigern 814 zugeordnet ist, wie hier beschrieben.
  • Das(die) SoC(s) 804 kann(können) einen oder mehrere Prozessor(en) 810 (z.B. eingebettete Prozessoren) umfassen. Der(die) Prozessor(en) 810 kann(können) einen Boot- und Power-Management-Prozessor umfassen, der ein dedizierter Prozessor und ein Subsystem sein kann, um Boot-Power- und Management-Funktionen und die damit assoziierte Sicherheitserzwingung zu handhaben. Der Boot- und Power-Management-Prozessor kann ein Teil der Boot-Sequenz des(der) SoC(s) 804 sein und zur Laufzeit Power-Management-Dienste bereitstellen. Der Boot-Power- und Management-Prozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen mit niedrigem Stromverbrauch, Verwaltung von Thermik- und Temperatursensoren von SoC(s) 804 und/oder Verwaltung der Leistungszustände von SoC(s) 804 bereitstellen. Jeder Temperatursensor kann als Ringoszillator implementiert werden, dessen Ausgangsfrequenz proportional zur Temperatur ist, und das(die) SoC(s) 804 kann(können) die Ringoszillatoren verwenden, um Temperaturen der CPU(s) 806, GPU(s) 808 und/oder Beschleuniger 814 zu erfassen. Wenn festgestellt wird, dass die Temperaturen einen Schwellenwert überschreiten, kann der Boot- und Power-Management-Prozessor in eine Temperaturfehlerroutine eintreten und das(die) SoC(s) 804 in einen niedrigeren Leistungszustand versetzen und/oder das Fahrzeug 800 in einen sicheren Stoppmodus versetzen (z.B. das Fahrzeug 800 zu einem sicheren Halt bringen).
  • Der(die) Prozessor(en) 810 kann(können) ferner eine Reihe von eingebetteten Prozessoren umfassen, die als eine Audioverarbeitungs-Engine dienen können. Die Audioverarbeitungs-Engine kann ein Audiosubsystem sein, das eine vollständige Hardwareunterstützung für Mehrkanal-Audio über mehrere Schnittstellen und eine breite und flexible Palette von Audio-E/A-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungsmaschine ein dedizierter Prozessorkern mit einem Digitalsignalprozessor mit dediziertem RAM.
  • Der(die) Prozessor(en) 810 kann(können) ferner eine Always-On-Prozessor-Engine umfassen, die notwendige Hardware-Merkmale bereitstellen kann, um die Verwaltung von Sensoren mit niedriger Leistung und Aufwachanwendungen zu unterstützen. Die Always-On-Prozessor-Engine kann einen Prozessorkern, ein eng gekoppeltes RAM, die Unterstützung von Peripherievorrichtungen (z.B. Zeitgeber und Interrupt-Controller), verschiedene E/A-Controller-Peripheriegeräte und Routinglogik umfassen.
  • Der(die) Prozessor(en) 810 kann(können) ferner eine Sicherheits-Cluster-Engine umfassen, die ein dediziertes Prozessorsubsystem für das Sicherheitsmanagement für Automobilanwendungen umfasst. Die Sicherheits-Cluster-Engine kann zwei oder mehr Prozessorkerne, ein eng gekoppeltes RAM, Unterstützung von Peripherievorrichtungen (z.B. Zeitgeber, Interrupt-Controller usw.) und/oder Routinglogik umfassen. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Lockstep-Modus arbeiten und als einzelner Kern mit Vergleichslogik fungieren, um Unterschiede zwischen ihren Operationen zu erfassen.
  • Der(die) Prozessor(en) 810 können ferner eine Echtzeit-Kamera-Engine umfassen, die ein dediziertes Prozessor-Subsystem für die Handhabung des Echtzeit-Kamera-Management umfassen kann.
  • Der(die) Prozessor(en) 810 kann(können) weiter einen Signalprozessor mit hohem Dynamikbereich umfassen, der einen Bildsignalprozessor umfassen kann, der eine Hardware-Engine ist, die Teil der Kameraverarbeitung-Pipeline ist.
  • Der(die) Prozessor(en) 810 kann(können) einen Videobild-Compositor umfassen, der ein Verarbeitungsblock sein kann (z.B. auf einem Mikroprozessor implementiert), der Funktionen zur Videonachbearbeitung implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Player-Fenster zu erzeugen. Der Videobild-Compositor kann eine Objektivverzerrungskorrektur an Weitwinkelkameras 870, Surround-Kameras 874 und/oder an Kamerasensoren in der Fahrgastkabine durchführen. Ein kabineninterner Überwachungskamerasensor wird vorzugsweise von einem neuronalen Netzwerk überwacht, das auf einer anderen Instanz des advanced SoC läuft und konfiguriert ist, um Ereignisse in der Kabine zu identifizieren und entsprechend zu reagieren. Ein Kabinensystem kann Lippenlesen durchführen, um den Mobilfunk zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, das Ziel des Fahrzeugs zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachaktiviertes Internetsurfen anzubieten. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind andernfalls deaktiviert.
  • Der Videobild-Compositor kann eine verbesserte zeitliche Rauschunterdrückung für sowohl räumliche als auch zeitliche Rauschunterdrückung umfassen. Wenn beispielsweise eine Bewegung in einem Video stattfindet, gewichtet die Rauschunterdrückung räumliche Information geeigneter Weise, wobei das Gewicht der von benachbarten Einzelbildern bereitgestellten Informationen verringert wird. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung umfasst, kann die vom Videobild-Compositor durchgeführte zeitliche Rauschunterdrückung Information aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu reduzieren.
  • Der Videobild-Compositor kann ebenfalls konfiguriert sein, um eine Stereogleichrichtung für Eingangs-Stereolinseneinzelbilder durchzuführen. Der Videobild-Compositor kann ferner für eine Zusammensetzung der Benutzeroberfläche verwendet werden, wenn der Desktop des Betriebssystems verwendet wird und die GPU(s) 808 nicht erforderlich ist(sind), um kontinuierlich neue Oberflächen darzustellen. Selbst wenn die GPU(s) 808 eingeschaltet und aktiv 3D-Rendering durchführt/durchführen, kann der Videobild-Compositor verwendet werden, um die GPU(s) 808 zu entlasten und die Leistung und Reaktionsfähigkeit zu verbessern.
  • Das(die) SoC(s) 804 kann(können) ferner eine serielle MIPI-Kameraschnittstelle (mobile industry processor interface) zum Empfangen von Video und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingangsblock umfassen, der für Kamera- und zugehörige Pixeleingabefunktionen verwendet werden kann. Das(die) SoC(s) 804 kann(können) ferner einen Eingabe-/Ausgabe-Controller umfassen, der(die) durch Software gesteuert werden kann(können) und zum Empfangen von E/A-Signalen verwendet werden kann(können), die nicht an eine spezifische Rolle gebunden sind.
  • Das(die) SoC(s) 804 kann(können) ferner einen breiten Bereich von Peripherieschnittstellen umfassen, um die Kommunikation mit Peripherievorrichtungen, Audiocodecs, Power Management und/oder anderen Vorrichtungen zu ermöglichen. Das(die) SoC(s) 804 kann(können) verwendet werden, um Daten von Kameras (z.B. über Gigabit Multimedia Serial Link und Ethernet verbunden), Sensoren (z.B. LIDAR-Sensor(en) 864, RADAR-Sensor(en) 860, usw., die über Ethernet verbunden sein können), Daten von Bus 802 (z.B. Fahrzeuggeschwindigkeit 800, Lenkradposition usw.), Daten von GNSS-Sensor(en) 858 (z.B. über Ethernet oder CAN-Bus verbunden) zu verarbeiten. Das (die) SoC(s) 804 kann(können) ferner dedizierte Hochleistungs-Massenspeicher-Controller umfassen, die ihre eigenen DMA-Engines umfassen können und die verwendet werden können, um die CPU(s) 806 von Routinedatenverwaltungsaufgaben zu entlasten.
  • Das (die) SoC(s) 804 kann(können) eine Ende-zu-Ende Plattform mit einer flexiblen Architektur sein, die sich über die Automatisierungsstufen 3-5 erstreckt und somit eine umfassende funktionale Sicherheitsarchitektur bereitstellt, die Computer-Vision- und ADAS-Techniken für Diversität und Redundanz nutzt und effizient einsetzt, eine Plattform für einen flexiblen, zuverlässigen Treiber-Software-Stapel zusammen mit Deep-Learning-Mechanismen darstellt. Das(die) SoC(s) 804 kann(können) schneller, zuverlässiger, energieeffizienter und platzsparender sein als herkömmliche Systeme. Beispielsweise kann(können) der(die) Beschleuniger 814 in Kombination mit der(den) CPU(s) 806, der(den) GPU(s) 808 und dem(den) Datenspeicher(n) 816 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bieten.
  • Die hier beschriebene Technologie stellt somit Fähigkeiten und eine Funktionalität bereit, die mit herkömmlichen Systemen nicht erreicht werden können. Beispielsweise können Computer- Vision-Algorithmen auf CPUs ausgeführt werden, die mit einer hochrangigen Programmiersprache, wie der Programmiersprache C, konfiguriert sein können, um eine weite Vielzahl von Verarbeitungsalgorithmen mit einer weiten Vielzahl von visuellen Daten auszuführen. Allerdings sind CPUs oft nicht in der Lage, die Leistungsanforderungen vieler Bildverarbeitungsanwendungen zu erfüllen, wie beispielsweise jene bezogen auf Ausführungszeit und Stromverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterfassungsalgorithmen in Echtzeit auszuführen, was eine Anforderung von fahrzeuginternen ADAS-Anwendungen und eine Anforderung für praktische autonome Fahrzeuge der Stufe 3-5 sein kann.
  • Im Gegensatz zu herkömmlichen Systemen ermöglicht, durch die Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardwarebeschleunigungsclusters, die hier beschriebene Technologie, dass mehrere neuronale Netzwerke gleichzeitig und/oder sequentiell durchgeführt werden und die Ergebnisse zusammen kombiniert werden können, um eine autonome Fahrfunktionalität der Stufe 3-5 zu ermöglichen. Beispielsweise kann ein CNN, das auf dem DLA oder der dGPU ausgeführt wird (z.B. der GPU(s) 820), eine Text- und Worterfassung umfassen, so dass der Supercomputer Verkehrszeichen lesen und verstehen kann, einschließlich Zeichen, für die das neuronale Netzwerk nicht speziell trainiert wurde. Das DLA kann ferner ein neuronales Netzwerk umfassen, das in der Lage ist, das Zeichen zu identifizieren, zu interpretieren und ein semantisches Verständnis des Zeichens bereitzustellen, und dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Wegplanungsmodule weiterzugeben.
  • Als weiteres Beispiel können mehrere neuronale Netzwerke gleichzeitig ausgeführt werden, wie es für das Fahren auf Stufe 3, 4 oder 5 erforderlich ist. Beispielsweise kann ein Warnzeichen bestehend aus „Vorsicht: Blinklichter zeigen eisige Zustände an“ zusammen mit einer elektrischen Lichtquelle von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. Das Schild selbst kann durch ein erstes eingesetztes neuronales Netzwerk (z.B. ein neuronales Netzwerk, das trainiert wurde) als Verkehrszeichen identifiziert werden, der Text „Blinklichter zeigen eisige Zustände an“ kann durch ein zweites eingesetztes neuronales Netzwerk interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass bei Erfassung von blinkenden Lichtern eisige Bedingungen vorliegen. Das blinkende Licht kann identifiziert werden, indem ein drittes eingesetztes neuronales Netzwerk über mehrere Einzelbilder betrieben wird, das die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von blinkenden Lichtern informiert. Alle drei neuronalen Netzwerke können z.B. innerhalb des DLA und/oder auf der GPU(s) 808 gleichzeitig ausgeführt werden.
  • In einigen Beispielen kann ein CNN zur Gesichtserfassung und Fahrzeughalteridentifikation Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Fahrzeughalters 800 zu identifizieren. Die Always-On Sensor-Verarbeitungs-Engine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn sich der Eigentümer der Fahrertür nähert, und die Lichter einzuschalten, und um das Fahrzeug im Sicherheitsmodus zu deaktivieren, wenn der Eigentümer das Fahrzeug verlässt. Auf diese Weise bietet(bieten) die SoC(s) 804 Schutz vor Diebstahl und/oder Fahrzeugraub.
  • In einem weiteren Beispiel kann ein CNN zur Erfassung und Identifizierung von Rettungsfahrzeugen Daten aus den Mikrophonen 896 verwenden, um Sirenen von Rettungsfahrzeugen zu erfassen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifizierer verwenden, um Sirenen zu erfassen und Merkmale manuell zu extrahieren, verwendet(verwenden) das(die) SoC(s) 804 das CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In einer bevorzugten Ausführungsform wird das CNN, das auf dem DLA läuft, trainiert, um die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu identifizieren (z.B. durch Verwendung des Doppler-Effekts). Das CNN kann ebenfalls trainiert werden, um Rettungsfahrzeuge zu identifizieren, die spezifisch für das lokale Gebiet sind, in dem das Fahrzeug eingesetzt wird, wie durch GNSS-Sensor(en) 858 identifiziert. So wird beispielsweise das CNN beim Arbeiten in Europa versuchen, europäische Sirenen zu erfassen, und wenn es in den Vereinigten Staaten ist, wird das CNN versuchen, nur nordamerikanische Sirenen zu identifizieren. Sobald ein Rettungsfahrzeug erfasst ist, kann ein Steuerprogramm verwendet werden, um eine Notfallroutine für die Fahrzeugsicherheit auszuführen, das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug mit Hilfe von Ultraschallsensoren 862 im Leerlauf zu halten, bis das(die) Rettungsfahrzeug(e) vorbeifährt(vorbeifahren).
  • Das Fahrzeug kann eine CPU(s) 818 (z.B. diskrete CPU(s) oder dCPU(s)) umfassen, die über eine Hochgeschwindigkeitsverbindung (z.B. PCIe) mit dem(den) SoC(s) 804 gekoppelt werden kann(können). Die CPU(s) 818 kann(können) beispielsweise einen X86-Prozessor umfassen. Die CPU(s) 818 kann(können) beispielsweise verwendet werden, um eine Vielzahl von Funktionen auszuführen, einschließlich der Arbitrierung potenziell inkonsistenter Ergebnisse zwischen ADAS-Sensoren und dem(den) SoC(s) 804 und/oder der beispielhaften Überwachung von Status und Gesundheitszustand des(der) Controller 836 und/oder des Infotainment-SoC 830.
  • Das Fahrzeug 800 kann eine GPU(s) 820 (z.B. diskrete GPU(s) oder dGPU(s)) umfassen, die über eine Hochgeschwindigkeitsverbindung (z.B. NVIDIAs NVLINK) mit dem(den) SoC(s) 804 gekoppelt werden kann(können). Die GPU(s) 820 kann(können) eine zusätzliche Funktionalität künstlicher Intelligenz beispielsweise durch die Ausführung redundanter und/oder verschiedener neuronaler Netzwerke bereitstellen, und können verwendet werden, um neuronale Netzwerke basierend auf Eingaben (z.B. Sensordaten) von Sensoren des Fahrzeugs 800 zu trainieren und/oder zu aktualisieren.
  • Das Fahrzeug 800 kann ferner die Netzwerkschnittstelle 824 umfassen, die eine oder mehrere drahtlose Antennen 826 umfassen kann (z.B. eine oder mehrere drahtlose Antennen für unterschiedliche Kommunikationsprotokolle, wie beispielsweise eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 824 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z.B. mit dem(den) Server(n) 878 und/oder anderen Netzwerkvorrichtungen), mit anderen Fahrzeugen und/oder mit Rechenvorrichtungen (z.B. Client-Vorrichtungen von Fahrgästen) zu ermöglichen. Um mit anderen Fahrzeugen zu kommunizieren, kann eine direkte Verbindung zwischen den beiden Fahrzeugen und/oder eine indirekte Verbindung (z.B. über Netzwerke und über das Internet) hergestellt werden. Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung bereitgestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 800 Information über Fahrzeuge in der Nähe des Fahrzeugs 800 bereitstellen (z.B. Fahrzeuge vor, auf der Seite und/oder hinter dem Fahrzeug 800). Diese Funktionalität kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 800 sein.
  • Die Netzwerkschnittstelle 824 kann ein SoC umfassen, das Modulations- und Demodulationsfunktionalität bereitstellt und dem(den) Controller(n) 836 eine Kommunikation über drahtlose Netzwerke ermöglicht. Die Netzwerkschnittstelle 824 kann ein Hochfrequenz-Frontend für die Aufwärtskonvertierung von einem Basisband zur Hochfrequenz und eine Abwärtskonvertierung von der Hochfrequenz in das Basisband umfassen. Die Frequenzumwandlungen können durch wohlbekannte Verfahren und/oder durch Superheterodyn-Verfahren durchgeführt werden. In einigen Beispielen kann die Radiofrequenz-Frontend-Funktionalität durch einen separaten Chip bereitgestellt werden. Die Netzwerkschnittstelle kann drahtlose Funktionen für die Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth, LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle umfassen.
  • Das Fahrzeug 800 kann ferner einen oder mehrere Datenspeicher 828 umfassen, die auch Off-Chip-Speicher (z.B. außerhalb des(der) SoC((s) 804) Speichers) umfassen können. Der(die) Datenspeicher 828 können ein oder mehrere Speicherelemente einschließlich RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Vorrichtungen umfassen, die mindestens ein Bit Daten speichern können.
  • Das Fahrzeug 800 kann ferner einen oder mehrere GNSS-Sensoren 858 (z.B. GNSS-Sensor(en) 858 (z.B. GPS- und/oder assistierte GPS-Sensoren) umfassen, um bei der Kartierung, Wahrnehmung, Belegungsgittererzeugung und/oder Wegplanungsfunktionen zu helfen. Es kann eine beliebige Anzahl von GNSS-Sensoren 858 verwendet werden, einschließlich beispielsweise und ohne Einschränkung eines GPS mit einem USB-Anschluss mit einer Ethernet-Seriell-(RS-232)-Brücke.
  • Das Fahrzeug 800 kann ferner einen oder mehrere RADAR-Sensoren 860 umfassen. Der(die) RADAR-Sensor(en) 860 kann(können) von dem Fahrzeug 800 zur Fahrzeugerfassung mit großer Reichweite verwendet werden, selbst bei Dunkelheit und/oder extremen Wetterbedingungen. Die funktionalen Sicherheitsstufen von RADAR können ASIL B sein. Der(die) RADAR-Sensoren 860 können den CAN- und/oder den Bus 802 verwenden (z.B. um Daten zu übertragen, die von den RADAR-Sensoren 860 erzeugt werden), zur Steuerung und zum Zugriff auf Objektverfolgungsdaten, in einigen Beispielen mit Zugriff auf Ethernet zum Zugriff auf Rohdaten. Es können eine weite Vielzahl von RADAR-Sensortypen verwendet werden. Beispielsweise kann(können) der(die) RADAR-Sensor(en) 860 ohne Einschränkung für den vorderen, hinteren und seitlichen RADAR-Einsatz geeignet sein. In einigen Beispielen wird(werden) ein Puls-Doppler-RADAR-Sensor(en) verwendet.
  • Der(die) RADAR-Sensor(en) 860 kann(können) verschiedene Konfigurationen umfassen, wie z.B. eine große Reichweite mit engem Sichtfeld, eine kurze Reichweite mit breitem Sichtfeld, eine seitliche Abdeckung mit kurzer Reichweite usw. In einigen Beispielen kann das RADAR mit großer Reichweite für eine adaptive Geschwindigkeitsregelungsfunktion verwendet werden. Die RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld bereitstellen, das durch zwei oder mehr unabhängige Scans erreicht wird, wie beispielsweise innerhalb einer Reichweite von 250 m. Der(die) RADAR-Sensor(en) 860 kann(können) helfen, zwischen statischen und beweglichen Objekten zu unterscheiden, und kann(können) von ADAS-Systemen zur Notbremsunterstützung und Vorwärtskollisionswarnung verwendet werden. RADAR-Sensoren mit großer Reichweite können monostatische multimodale RADAR-Sensoren mit mehreren (z.B. sechs oder mehr) festen RADAR-Antennen und einer schnellen CAN- und FlexRay-Schnittstelle umfassen. In einem Beispiel mit sechs Antennen können die zentralen vier Antennen ein fokussiertes Strahlmuster erzeugen, das ausgelegt ist, um die Umgebung des Fahrzeugs 800 bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr in benachbarten Spuren aufzunehmen. Die beiden anderen Antennen können das Sichtfeld erweitern, so dass es möglich ist, Fahrzeuge, die in die Spur des Fahrzeugs 800 eintreten oder diese verlassen, schnell erkannt werden können.
  • RADAR-Systeme mit mittlerer Reichweite 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. RADAR-Systeme mit kurzer Reichweite können ohne Einschränkung RADAR-Sensoren umfassen, die für die Installation an beiden Enden der hinteren Stoßstange ausgestaltet sind. Bei Installation an beiden Enden der hinteren Stoßstange kann ein derartiges RADAR-Sensorsystem zwei Strahlen erzeugen, die den toten Winkel im Heck und neben dem Fahrzeug ständig überwachen.
  • RADAR-Systeme mit kurzer Reichweite können in einem ADAS-System zur Erfassung des toten Winkels und/oder zur Spurwechselassistenz verwendet werden.
  • Das Fahrzeug 800 kann ferner einen oder mehrere Ultraschallsensoren 862 umfassen. Der(die) Ultraschallsensor(en) 862, der(die) vorne, hinten und/oder an den Seiten des Fahrzeugs 800 positioniert werden kann(können), kann(können) für eine Einparkhilfe und/oder zum Erzeugen und Aktualisieren eines Belegungsgitters verwendet werden. Eine weite Vielzahl von Ultraschallsensoren 862 kann verwendet werden, und unterschiedliche Ultraschallsensoren 862 können für verschiedene Erfassungsbereiche (z.B. 2,5 m; 4 m) verwendet werden. Der(die) Ultraschallsensor(en) 862 kann(können) bei den funktionalen Sicherheitsstufen von ASIL B arbeiten.
  • Das Fahrzeug 800 kann einen oder mehrere LIDAR-Sensoren 864 umfassen. Der(die) LIDAR-Sensor(en) 864 können zur Objekt- und Fußgängererfassung, Notbremsung, Kollisionsvermeidung und/oder für andere Funktionen verwendet werden. In einigen Beispielen kann das Fahrzeug 800 mehrere LIDAR-Sensoren 864 (z.B. zwei, vier, sechs usw.) umfassen, die Ethernet verwenden können (z.B. um Daten an einen Gigabit-Ethernet-Switch zu liefern).
  • In einigen Beispielen kann(können) der(die) LIDAR-Sensor(en) 864 in der Lage sein, eine Liste von Objekten und deren Abstände für ein 360-Grad-Sichtfeld bereitzustellen. Handelsübliche LIDAR-Sensoren 864 können beispielsweise eine beworbene Reichweite von ungefähr 100 m mit einer Genauigkeit von 2 cm - 3 cm und einer Unterstützung für eine 100 Mbps Ethernet-Verbindung aufweisen. In einigen Beispielen können ein oder mehrere nicht vorstehende LIDAR-Sensoren 864 verwendet werden. In derartigen Beispielen kann(können) der(die) LIDAR-Sensor(en) 864 als kleine Vorrichtung implementiert werden, die in die Vorderseite, dem Heck, den Seiten und/oder Ecken des Fahrzeugs 800 eingebettet sein kann. Der(die) LIDAR-Sensoren) 864 kann(können) in derartigen Beispielen ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von 35 Grad mit einer Reichweite von 200 m sogar für Objekte mit geringer Reflexion bereitstellen. Der(die) vorderseitig montierte(n) LIDAR-Sensor(en) 864 kann(können) für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert sein.
  • In einigen Beispielen können LIDAR-Technologien, wie beispielsweise 3D-Flash-LIDAR, ebenfalls verwendet werden. 3D-Flash-LIDAR verwendet einen Laserblitz als eine Übertragungsquelle, um die Fahrzeugumgebung bis zu etwa 200 m zu beleuchten. Eine Flash-LIDAR-Einheit umfasst einen Rezeptor, der die Laserpulslaufzeit und das reflektierte Licht auf jedem Pixel erfasst, was wiederum der Reichweite von dem Fahrzeug bis zu den Objekten entspricht. Flash-LIDAR kann ermöglichen, dass mit jedem Laserblitz hochpräzise und verzerrungsfreie Bilder der Umgebung erzeugt werden. In einigen Beispielen können vier Flash-LIDAR-Sensoren eingesetzt werden, einer auf jeder Seite des Fahrzeugs 800. Verfügbare 3D-Flash-LIDAR-Systeme umfassen eine 3D-Festkörper-LIDAR-Kamera mit feststehender Anordnung ohne bewegliche Teile außer einem Lüfter (z.B. eine nicht abtastende LIDAR-Vorrichtung). Das Flash-LIDAR-Gerät kann einen Laser der Klasse I (augensicher) mit Pulsen von fünf Nanosekunden pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Reichweitenpunktwolken und gemeinsam registrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR eine Festkörper-Vorrichtung ohne bewegliche Teile ist, kann(können) der(die) LIDAR-Sensor(en) 864 weniger anfällig für Bewegungsunschärfe, Vibrationen und/oder Stöße sein.
  • Das Fahrzeug kann ferner einen oder mehrere IMU-Sensor(en) 866 umfassen. Der(die) IMU-Sensor(en) 866 kann(können) in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 800 lokalisiert sein. Der(die) IMU-Sensor(en) 866 kann(können) beispielsweise und ohne Einschränkung einen(mehrere) Beschleunigungssensor(en), Magnetometer, Gyroskop(e), Magnetkompass(e) und/oder andere Sensortypen umfassen. In einigen Beispielen, wie beispielsweise in sechsachsigen Anwendungen, kann(können) der(die) IMU-Sensor(en) 866 Beschleunigungssensoren und Gyroskope umfassen, während in neunachsigen Anwendungen die IMU-Sensoren 866 Beschleunigungssensoren, Gyroskope und Magnetometer umfassen können.
  • In einigen Ausführungsformen kann(können) der(die) IMU-Sensor(en) 866 als miniaturisiertes, leistungsstarkes GPS-gestütztes Trägheitsnavigationssystem (GPS/INS) implementiert werden, das Trägheitssensoren mikro-elektromechanische Systeme (MEMS), einen hochempfindlichen GPS-Empfänger und erweiterte Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Lage bereitzustellen. Als solches kann(können) der(die) IMU-Sensor(en) 866 in einigen Beispielen es dem Fahrzeug 800 ermöglichen, die Fahrtrichtung abzuschätzen, ohne dass eine Eingabe von einem Magnetsensor erforderlich ist, indem die Geschwindigkeitsänderungen vom GPS zum IMU-Sensor(en) 866 direkt beobachtet und korreliert werden. In einigen Beispielen kann(können) der(die) IMU-Sensor(en) 866 und der(die) GNSS-Sensor(en) 858 in einer einzigen integrierten Einheit kombiniert sein.
  • Das Fahrzeug kann ein oder mehrere Mikrophone 896 umfassen, die sich im und/oder um das Fahrzeug 800 herum befinden. Das(die) Mikrophon(e) 896 kann(können) unter anderem zur Erfassung und Identifizierung von Rettungsfahrzeugen verwendet werden.
  • Das Fahrzeug kann ferner eine beliebige Anzahl von Kameratypen umfassen, einschließlich Stereokamera(s) 868, Weitwinkelkamera(s) 870, Infrarotkamera(s) 872, Surround-Kamera(s) 874, Kamera(s) 898 mit großer und/oder mittlerer Reichweite und/oder andere Kameratypen. Die Kameras können zum Erfassen von Bilddaten über den gesamten Umfang des Fahrzeugs 800 verwendet werden. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen an das Fahrzeug 800 ab, und eine beliebige Kombination von Kameratypen kann verwendet werden, um die notwendige Abdeckung rund um das Fahrzeug 800 bereitzustellen. Außerdem kann die Anzahl der Kameras abhängig von der Ausführungsform unterschiedlich sein. Beispielsweise 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 der Kameras wird hier ausführlicher mit Bezug auf 8A und 8B beschrieben.
  • Das Fahrzeug 800 kann ferner einen Vibrationssensor(en) 842 umfassen. De+r(die) Vibrationssensor(en) 842 kann(können) die Vibrationen von Komponenten des Fahrzeugs, wie beispielsweise der Achse(n), messen. Beispielsweise können Änderungen in Vibrationen auf eine Veränderung in der Straßenoberfläche hinweisen. In einem weiteren Beispiel können, wenn zwei oder mehr Vibrationssensoren 842 verwendet werden, die Unterschiede zwischen den Schwingungen verwendet werden, um die Reibung oder den Schlupf der Straßenoberfläche zu bestimmen (z.B., wenn die Schwingungsdifferenz zwischen einer angetriebenen Achse und einer frei rotierenden Achse besteht).
  • Das Fahrzeug 800 kann ein ADAS-System 838 umfassen. Das ADAS-System 838 kann in einigen Beispielen einen SoC umfassen. Das ADAS-System 838 kann einen autonomen/adaptiven/automatischen Geschwindigkeitsregler (ACC), einen kooperativen adaptiven Geschwindigkeitsregler (CACC), eine Vorwärts-Zusammenstoßwarnung (FCW), eine automatische Notbremsung (AEB), Spurhaltemeldungen (LDW), einen Spurhalteassistenten (LKA), eine Tote-Winkel-Warnung (BSW), eine hintere Querverkehrswarnung (RCTW), Kollisionswarnsysteme (CWS), eine Spurzentrierung (LC) und/oder andere Merkmale und Funktionen umfassen.
  • Die ACC-Systeme können RADAR-Sensoren 860, LIDAR-Sensoren 864 und/oder eine oder mehrere Kameras verwenden. Die ACC-Systeme können ein längs gerichtetes ACC und/oder ein seitwärts gerichtetes ACC umfassen. Das längs gerichtete ACC überwacht und steuert den Abstand zum Fahrzeug unmittelbar vor dem Fahrzeug 800 und passt die Fahrzeuggeschwindigkeit automatisch an, um einen Sicherheitsabstand zu den vorausfahrenden Fahrzeugen einzuhalten. Das seitwärts gerichtete ACC führt eine Abstandshaltung durch und empfiehlt dem Fahrzeug 800, bei Bedarf die Spur zu wechseln. Das seitwärts gerichtete ACC ist mit anderen ADAS-Anwendungen, wie beispielsweise LC und CWS assoziiert.
  • CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 824 und/oder die drahtlose(n) Antenne(n) 826 von anderen Fahrzeugen über eine drahtlose Verbindung oder indirekt über eine Netzwerkverbindung (z.B. über das Internet) empfangen werden können. Direkte Verbindungen können über eine Kommunikationsverbindung zwischen Fahrzeug-zu-Fahrzeug (V2V) bereitgestellt werden, während indirekte Verbindungen eine Kommunikationsverbindung zwischen Infrastruktur-zu-Fahrzeug (I2V) sein können. Im Allgemeinen stellt das V2V-Kommunikationskonzept Information über die unmittelbar vorausfahrenden Fahrzeuge bereit (z.B. Fahrzeuge unmittelbar vor und in der gleichen Spur wie das Fahrzeug 800), während das I2V-Kommunikationskonzept Information über den weiter vorausfahrenden weiteren Verkehr bereitstellt. CACC-Systeme können eine oder beide der I2V- und V2V-Informationsquellen umfassen. Bei gegebener Information der vor dem Fahrzeug 800 fahrenden Fahrzeuge kann CACC zuverlässiger sein und weist das Potenzial auf, die Verkehrsfluss glätte zu verbessern und Staus auf der Straße zu verringern.
  • FCW-Systeme sind ausgestaltet, um den Fahrer vor einer Gefahr warnen, so dass der Fahrer Korrekturmaßnahmen ergreifen kann. FCW-Systeme können eine nach vorne gerichtete Kamera und/oder RADAR-Sensoren 860 umfassen, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung, wie beispielsweise einer Anzeige, Lautsprecher und/oder Vibrationskomponente, gekoppelt ist. FCW-Systeme können eine Warnung, wie beispielweise in Form von Schall, optischer Warnung, Vibration und/oder einem schnellen Bremsimpuls bereitstellen.
  • AEB-Systeme erfassen eine drohende Vorwärtskollision mit einem anderen Fahrzeug oder einem anderen Objekt und können die Bremsen automatisch betätigen, wenn der Fahrer innerhalb eines bestimmten Zeit- oder Abstandsparameters keine Korrekturmaßnahmen ergreift. AEB-Systeme können nach vorne gerichtete Kameras und/oder Radarsensoren 860 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind. Wenn das AEB-System eine Gefahr erkennt, macht es den Fahrer typischerweise zunächst darauf aufmerksam, um Korrekturmaßnahmen zur Vermeidung der Kollision zu ergreifen, und wenn der Fahrer keine Korrekturmaßnahmen ergreift, kann das AEB-System automatisch die Bremsen in einem Bemühen betätigen, um die Auswirkungen der vorhergesagten Kollision zu verhindern oder zumindest zu mildern. AEB-Systeme können Techniken, wie beispielsweise dynamische Bremsunterstützung und/oder Bremsen bei drohender Kollision, umfassen.
  • LDW-Systeme stellen visuelle, akustische und/oder taktile Warnungen bereitstellen, wie beispielsweise Lenkrad- oder Sitzvibrationen, um den Fahrer zu warnen, wenn das Fahrzeug 800 Fahrbahnmarkierungen überquert. Ein LDW-System wird nicht aktiviert, wenn der Fahrer ein absichtliches Verlassen der Spur durch Aktivieren eines Blinkers, angibt. LDW-Systeme können nach vorne/seitlich gerichtete Kameras verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung gekoppelt ist, wie beispielsweise einer Anzeige, einem Lautsprecher und/oder einer Vibrationskomponente.
  • LKA-Systeme sind eine Variante von LDW-Systemen. LKA-Systeme stellen Lenkeingaben oder Bremsen bereit, um das Fahrzeug 800 zu korrigieren, wenn das Fahrzeug 800 beginnt, die Spur zu verlassen.
  • BSW-Systeme erfassen und warnen den Fahrer von Fahrzeugen im toten Winkel eines Fahrzeugs. BSW-Systeme können einen visuellen, akustischen und/oder taktilen Alarm bereitstellen, um anzugeben, dass das Zusammenführen oder Wechseln von Spuren unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker benutzt. BSW-Systeme können rückwärts-seitlich gerichtete Kameras und/oder RADAR-Sensoren 860 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung gekoppelt ist, wie beispielsweise einer Anzeige, einem Lautsprecher und/oder einer Vibrationskomponente.
  • RCTW-Systeme können visuelle, akustische und/oder taktile Benachrichtigung liefern, wenn ein Objekt außerhalb des Rückfahrkamerabereichs erkannt wird, wenn das Fahrzeug 800 rückwärtsfährt. Einige RCTW-Systeme umfassen AEB, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensoren 860 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit einer Fahrerrückkopplung, wie beispielsweise einer Anzeige, einem Lautsprecher und/oder einer Vibrationskomponente, gekoppelt ist.
  • Herkömmliche ADAS-Systeme können für falsch positive Ergebnissen anfällig sein, die für einen Fahrer lästig und störend sein können, jedoch typischerweise nicht katastrophal sind, da die ADAS-Systeme den Fahrer warnen und es dem Fahrer ermöglichen, zu entscheiden, ob eine Sicherheitsbedingung tatsächlich vorliegt, und entsprechend zu handeln. Bei einem autonomen Fahrzeug 800 muss das Fahrzeug 800 jedoch bei widersprüchlichen Ergebnissen selbst entscheiden, ob es das Ergebnis von einem Primärcomputer oder einem Sekundärcomputer (z.B. einem ersten Controller 836 oder einem zweiten Controller 836) beachtet. Beispielsweise kann das ADAS-System 838 in einigen Ausführungsformen ein Backup- und/oder Sekundärcomputer sein, um einem Rationalitätsmodul des Backup-Computers Wahrnehmungsinformationen zur Verfügung zu stellen. Der Rationalitätsmonitor des Backup-Computers kann eine redundante, diverse Software auf Hardwarekomponenten ausführen, um Fehler in der Wahrnehmung und dynamischen Fahraufgaben zu erfassen. Ausgaben von dem ADAS-System 838 können einer Supervisor-MCU bereitgestellt werden. Wenn Ausgaben von dem primären Computer und dem sekundären Computer miteinander kollidieren, muss die Supervisor-MCU bestimmen, wie der Konflikt zu lösen ist, um einen sicheren Betrieb zu gewährleisten.
  • In einigen Beispielen kann der Primärcomputer konfiguriert sein, um der Supervisor-MCU einen Vertrauenswert zu liefern, der das Vertrauen des Primärcomputers in das gewählte Ergebnis anzeigt. Wenn der Vertrauenswert einen Schwellenwert überschreitet, kann die Supervisor-MCU der Richtung des Primärcomputers unabhängig davon folgen, ob der Sekundärcomputer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Wenn der Vertrauenswert den Schwellenwert nicht erreicht und wenn der primäre und der sekundäre Computer unterschiedliche Ergebnisse angeben (z.B. den Konflikt), kann die Supervisor-MCU zwischen den Computern vermitteln, um das angemessene Ergebnis zu bestimmen.
  • Die Supervisor-MCU kann konfiguriert sein, um ein oder mehrere neuronale Netzwerke zu betreiben, die trainiert und konfiguriert sind, um basierend auf den Ergebnissen des primären Computers und des sekundären Computers Bedingungen zu bestimmen, unter denen der sekundäre Computer Fehlalarme liefert. Somit kann(können) das(die) neuronale(n) Netzwerk(e) in der Supervisor-MCU lernen, wenn der Ausgabe des Sekundärcomputers vertraut werden kann und wenn nicht. Wenn der Sekundärcomputer beispielsweise ein RADAR-basiertes FCW-System ist, kann(können) ein neuronales Netzwerk(e) in der Supervisor-MCU lernen, wenn das FCW-System metallische Objekte identifiziert, die in Wirklichkeit keine Gefahren sind, wie beispielsweise ein Drainagerost oder eine Schachtabdeckung, die einen Alarm auslöst. Auf ähnliche Weise kann, wenn der Sekundärcomputer ein kamerabasiertes LDW-System ist, ein neuronales Netzwerk in der Supervisor-MCU lernen, das LDW zu übersteuern, wenn Radfahrer oder Fußgänger anwesend sind und ein Verlassen der Spur tatsächlich das sicherste Manöver ist. In Ausführungsformen, die ein neuronales Netz(e) umfassen, die auf der Supervisor-MCU ausgeführt werden, kann die Supervisor-MCU mindestens eine von einer DLA oder einer GPU umfassen, die zum Ausführen des/der neuronalen Netzwerke mit zugehörigem Speicher geeignet ist. In bevorzugten Ausführungsformen kann die Supervisor-MCU ein SoC(s) umfassen und/oder als ein Bestandteil des/der SoC(s) 804 enthalten sein.
  • In anderen Beispielen kann das ADAS-System 838 einen sekundären Computer umfassen, der die ADAS-Funktionalität nach den herkömmlichen Regeln der Computer-Vision ausführt. Somit kann der Sekundärcomputer klassische Computer-Vision-Regeln verwenden (Wenn-Dann), und das Vorhandensein eines oder mehrerer neuronaler Netzwerke in der Supervisor-MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. Beispielsweise kann die vielfältige Implementierung und absichtliche Nicht-Identität das Gesamtsystem insbesondere gegenüber Fehlern fehlertoleranter machen, die durch die Funktionalität von Software (oder einer Software-Hardware-Schnittstelle) verursacht werden. Wenn es beispielsweise einen Software-Bug oder Fehler in der auf dem primären Computer ausgeführten Software gibt und der nicht-identische Softwarecode, der auf dem sekundären Computer ausgeführt wird, das gleiche Gesamtergebnis liefert, kann die Supervisor-MCU eine größere Sicherheit aufweisen, dass das Gesamtergebnis korrekt ist, und der Bug in Software oder Hardware, die von dem primären Computer verwendet wird, keinen wesentlichen Fehler verursacht.
  • In einigen Beispielen kann die Ausgabe des ADAS-Systems 838 in den Wahrnehmungsblock des Primärcomputers und/oder in den dynamischen Fahraufgabenblock des Primärcomputers eingespeist werden. Wenn das ADAS-System 838 beispielsweise eine Vorwärts-Zusammenstoß-Warnung aufgrund eines unmittelbar vorausgehenden Objekts anzeigt, kann der Wahrnehmungsblock diese Information beim Identifizieren von Objekten verwenden. In anderen Beispielen kann der Sekundärcomputer sein eigenes neuronales Netzwerk aufweisen, das trainiert wird und somit das Risiko von Fehlalarmen reduziert, wie hier beschrieben.
  • Das Fahrzeug 800 kann ferner das Infotainment-SoC 830 umfassen (z.B. ein Infotainmentsystem (IVI) im Fahrzeug). Obwohl als ein SoC veranschaulicht und beschrieben, ist das Infotainmentsystem möglicherweise kein SoC und kann zwei oder mehr diskrete Komponenten umfassen. Das Infotainment-SoC 830 kann eine Kombination aus Hardware und Software umfassen, die verwendet werden kann, um 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, Rückfahrhilfen, ein Funkdatensystem, fahrzeugbezogene Information wie Kraftstoffstand, Gesamtstrecke, Bremskraftstoffstand, Ölstand, Tür auf/zu, Luftfilterinformation usw.) für das Fahrzeug 800 bereitzustellen. Beispielsweise kann das Infotainment-SoC 830 Radios, Diskettenspieler, Navigationssysteme, Videoplayer, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Lenkrad-Audio Steuerungen, Freisprechfunktion, eine Head-Up-Display (HUD), eine HMI-Display 634, ein Telematikgerät, ein Bedienfeld (z.B. zur Steuerung und/oder Wechselwirkung mit verschiedenen Komponenten, Merkmalen und/oder Systemen) und/oder andere Komponenten umfassen. Das Infotainment-SoC 830 kann ferner verwendet werden, um einem Benutzer(n) des Fahrzeugs Informationen (z.B. visuell und/oder akustisch), wie z. B. Informationen aus dem ADAS-System 838, autonome Fahrinformationen wie geplante Fahrzeugmanöver, Trajektorien, Umgebungsinformationen (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen, usw.) und/oder andere Informationen bereitzustellen.
  • Das Infotainment-SoC 830 kann eine GPU-Funktionalität umfassen. Das Infotainment-SoC 830 kann über den Bus 802 (z.B. CAN-Bus, Ethernet, usw.) mit anderen Vorrichtungen, Systemen und/oder Komponenten des Fahrzeugs 800 kommunizieren. In einigen Beispielen kann das Infotainment-SoC 830 mit einer Supervisor-MCU gekoppelt sein, so dass die GPU des Infotainmentsystems einige Selbstfahrfunktionen übernehmen kann, falls der(die) primäre(n) Controller 836 (z.B. die primären und/oder Backup-Computer des Fahrzeugs 800) ausfällt/ausfallen. In einem derartigen Beispiel kann das Infotainment-SoC 830 das Fahrzeug 800 in einen sicheren Stoppmodus versetzen, wie hier beschrieben.
  • Das Fahrzeug 800 kann ferner eine Instrumentengruppe 832 umfassen (z.B. ein digitales Armaturenbrett, eine elektronische Instrumentengruppe, ein digitales Instrumentenbrett usw.). Das Instrumentengruppe 832 kann einen Controller und/oder einen Supercomputer (z.B. eine diskrete Steuerung oder einen Supercomputer) umfassen. Die Instrumentengruppe 832 kann einen Satz von Instrumenten umfassen, wie beispielsweise Geschwindigkeitsmesser, Kraftstoffstand, Öldruck, Drehzahlmesser, Kilometerzähler, Blinker, Schaltpositionsanzeige, Sicherheitsgurtwarnleuchte(n), Feststellbremswarnleuchte(n), Motorstörungsleuchte(n), Airbag (SRS)-Systeminformationen, Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. In einigen Beispielen können Informationen zwischen dem Infotainment-SoC 830 und dem Instrumentengruppe 832 angezeigt und/oder ausgetauscht werden. Mit anderen Worten kann die Instrumentengruppe 832 als Teil des Infotainment-SoC 830 integriert sein oder umgekehrt.
  • 8D ist ein Systemdiagramm für die Kommunikation zwischen einem Cloud-basierten Server(n) und dem Beispiel eines autonomen Fahrzeugs 800 von 8A gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 876 kann einen oder mehrere Server 878, ein oder mehrere Netzwerke 890, sowie Fahrzeuge, einschließlich des Fahrzeugs 800, umfassen. Der(die) Server 878 können mehrere GPUs 884(A)-884(H) (hier zusammenfassend als GPUs 884 bezeichnet), PCIe-Schalter 882(A)-882(H) (hier zusammenfassend als PCIe-Schalter 882 bezeichnet) und/oder CPUs 880(A)-880(B) (hier zusammenfassend als CPUs 880 bezeichnet) umfassen. Die GPUs 884, die CPUs 880 und die PCIe-Schalter können mit Hochgeschwindigkeit-Interconnects, wie beispielsweise und ohne Einschränkung NVLink-Schnittstellen 888, die von NVIDIA entwickelt wurden, und/oder PCIe-Anschlüssen 886 verbunden sein. In einigen Beispielen sind die GPUs 884 über NVLink und/oder NVSwitch SoC verbunden und die GPUs 884 und die PCIe-Schalter 882 sind über PCIe-Interconnects verbunden. Obwohl acht GPUs 884, zwei CPUs 880 und zwei PCIe-Schalter veranschaulicht sind, ist dies nicht bestimmt, einschränkend zu sein. Abhängig von der Ausführungsform kann jeder (der) Server 878 eine beliebige Anzahl von GPUs 884, CPUs 880 und/oder PCIe-Schalter umfassen. Beispielsweise kann(können) der(die) Server 878 jeweils acht, sechzehn, zweiunddreißig und/oder mehr GPUs 884 umfassen.
  • Der(die) Server 878 können über das(die) Netzwerk(e) 890 und von den Fahrzeugen Bilddaten empfangen, die Bilder repräsentieren, die unerwartete oder veränderte Straßenbedingungen zeigen, wie beispielsweise kürzlich begonnene Straßenarbeiten. Der(die) Server 878 können über das(die) Netzwerk(e) 890 und an die Fahrzeuge neuronale Netzwerke 892, aktualisierte neuronale Netzwerke 892 und/oder Karteninformation 894 übertragen, einschließlich Information über Verkehrs- und Straßenzustände. Die Aktualisierungen der Karteninformationen 894 können Aktualisierungen für die HD-Karte 822 umfassen, wie beispielsweise Information über Baustellen, Schlaglöcher, Umwege, Überschwemmungen und/oder anderen Hindernisse. In einigen Beispielen können die neuronalen Netzwerke 892, die aktualisierten neuronalen Netzwerke 892 und/oder die Karteninformationen 894 aus einem erneuten Trainieren und/oder aus Erfahrungen, die durch Daten aus einer beliebigen Anzahl von Fahrzeugen in der Umgebung repräsentiert werden, und/oder basierend auf einem in einem Rechenzentrum durchgeführten Training (z.B. unter Verwendung des/der Server 878 und/oder eines anderen/anderer Server) entstanden sein.
  • Der(die) Server 878 kann(können) verwendet werden, um Modelle für maschinelles Lernen (z.B. neuronale Netzwerke) basierend auf Trainingsdaten zu trainieren (z.B. eine beliebige Kombination der hier beschriebenen Modelle für maschinelles Lernen). Die Trainingsdaten können von den Fahrzeugen erzeugt und/oder in einer Simulation (z.B. mit einer Game-Engine) erzeugt werden. In einigen Beispielen werden die Trainingsdaten mit einer Kennzeichnung versehen (z.B., wenn das neuronale Netzwerk durch überwachtes Lernen profitiert) und/oder eine andere Vorverarbeitung durchläuft, während in anderen Beispielen die Trainingsdaten nicht gekennzeichnet und/oder vorverarbeitet werden (z.B., wenn das neuronale Netzwerk kein überwachtes Lernen erfordert). Das Training kann gemäß einer oder mehreren Klassen von Machine-Learning-Techniken durchgeführt werden, einschließlich jedoch nicht beschränkt auf Klassen wie beispielsweise: überwachtes Training, halbüberwachtes Training, nicht überwachtes Training, Selbstlernen, Reinforcement Learning (Verstärkungslemen), Federated Learning (Föderales Lernen), Transfer Learning (Transfer-Lernen), Feature Learning (Charakteristik-Lernen) (einschließlich Hauptkomponenten- und Clusteranalysen), multi-linear Subspace Learning (Multilineares Unterraumlemen), Manifold Learning (Vielfältiges Lernen), Representation Learning (Darstellendes Lernen) (einschließlich Ersatzwörterbuchlernen), regelbasiertes maschinelles Lernen, Anomalieerkennung sowie alle Varianten oder Kombinationen davon. Sobald die Modelle für maschinelles Lernen trainiert sind, können die Modelle für maschinelles Lernen von den Fahrzeugen verwendet werden (z.B. übermittelt an die Fahrzeuge über das/die Netzwerk(e) 890 und/oder die Modelle für maschinelles Lernen können von dem(den) Server(n) 878 verwendet werden, um die Fahrzeuge aus der Ferne zu überwachen.
  • In einigen Beispielen kann(können) der(die) Server 878 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Echtzeit-Netzwerke für intelligente Echtzeit-Inferenzierung anwenden. Der(die) Server 878 kann(können) Deep-Learning-Supercomputer und/oder von einer GPU(s) 884 angetriebene dedizierte KI-Computer umfassen, wie beispielsweise DGX- und DGX-Station-Maschinen, die von NVIDIA entwickelt wurden. In einigen Beispielen kann(können) der(die) Server 878 jedoch eine Deep-Learning-Infrastruktur umfassen, die nur CPU-betriebene Rechenzentren verwendet.
  • Die Deep-Learning-Infrastruktur des/der Server(s) 878 kann in der Lage sein, schnell und in Echtzeit zu inferenzieren, und kann diese Fähigkeit 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 periodische Aktualisierungen vom Fahrzeug 800 erhalten, wie beispielsweise eine Folge von Bildern und/oder Objekten, die sich das Fahrzeug 800 in dieser Folge von Bildern lokalisiert hat (z.B. durch Computer-Vision und/oder andere Techniken des maschinellen Lernens zur Klassifizierung von Lernobjekten). Die Deep-Learning-Infrastruktur kann ihr eigenes neuronales Netzwerk betreiben, um die Objekte zu identifizieren und mit den vom Fahrzeug 800 identifizierten Objekten zu vergleichen, und wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 800 nicht funktioniert, können die Server 878 ein Signal an das Fahrzeug 800 senden, das einen ausfallsicheren Computer des Fahrzeugs 800 anweist, die Steuerung zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.
  • Zum Inferenzieren kann der Server(s) 878 die GPU(s) 884 und einen oder mehrere programmierbare Inferenzbeschleuniger (z.B. NVIDIA's TensorRT) umfassen. Die Kombination von GPU-betriebenen Servern und Inferenzbeschleunigung kann Echtzeit-Antwortvermögen möglich machen. In anderen Beispielen, in denen beispielsweise das Leistungsvermögen weniger kritisch ist, können Server, die von CPUs, FPGAs und anderen Prozessoren betrieben werden, zum Inferenzieren verwendet werden.
  • BEISPIEL EINER RECHENVORRICHTUNG
  • 9 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung 900, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Die Rechenvorrichtung 900 kann einen Zwischenverbindungssystem 902 umfassen, das direkt oder indirekt die folgenden Vorrichtungen koppelt: Speicher 904, eine oder mehrere Zentralverarbeitungseinheiten (CPUs) 906, eine oder mehrere Graphikverarbeitungseinheiten (GPUs) 908, eine Kommunikationsschnittstelle 910, Ein-/Ausgabe (E/A)-Ports 912, Eingabe-/Ausgabe-Komponenten 914, eine Leistungsversorgung 916, eine oder mehreren Präsentationskomponenten 918 (z.B. Anzeige(n)) und eine oder mehrere Logikeinheiten 920.
  • Obwohl die verschiedenen Blöcke von 9 als über das Zwischenverbindungssystem 902 mit Leitungen verbunden gezeigt sind, ist dies nicht bestimmt, einschränkend zu sein, und dient nur der Klarheit. Beispielsweise kann in einigen Ausführungsformen eine Präsentationskomponente 918, wie beispielsweise eine Anzeigevorrichtung, als eine E/A-Komponente 914 betrachtet werden (z.B., wenn die Anzeige ein Touchscreen ist). Als weiteres Beispiel können die CPUs 906 und/oder die GPUs 908 Speicher umfassen (z.B. kann der Speicher 904 für eine Speichervorrichtung zusätzlich zu dem Speicher der GPUs 908, der CPUs 906 und/oder anderer Komponenten repräsentativ sein). Mit anderen Worten ist die Rechenvorrichtung von 9 lediglich veranschaulichend. Es wird nicht zwischen derartigen Kategorien wie „Arbeitsstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Vorrichtung“, „mobile Vorrichtung“, „Handheld-Vorrichtung“, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“, und/oder anderen Vorrichtungs- oder Systemarten unterschieden, wie sie alle innerhalb des Umfangs der Rechenvorrichtung von 9 denkbar sind.
  • Das Zwischenverbindungssystem 902 kann einen oder mehrere Verbindungen oder Busse darstellen, wie beispielsweise einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Der Bus 902 kann eine oder mehrere Bus- oder Verbindungstypen umfassen, wie beispielsweise einen Industrie-Standard-Architektur (ISA)-Bus, einen erweiterten Industrie-Standard-Architektur (EISA)-Bus, einen Video Electronics Standards Association (VESA)-Bus, einen Peripheral Component Interconnect (PCI)-Bus, einen Peripheral Component Interconnect Express (PCIe)-Bus und/oder einen anderen Typ von Bus oder Verbindung. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen Komponenten. Als Beispiel kann die CPU direkt mit dem Speicher 904 verbunden sein. Ferner kann die CPU 906 direkt mit der GPU 908 verbunden sein. Wo es eine direkte oder Punkt-zu-Punkt-Verbindung zwischen Komponenten gibt, kann das Zwischenverbindungssystem eine PCIe-Verbindung umfassen, um die Verbindung auszuführen. In diesen Beispielen muss ein PCI-Bus nicht in der Rechenvorrichtung umfasst sein.
  • Der Speicher 904 kann beliebige einer Vielzahl von computerlesbaren Medien umfassen. Die computerlesbaren Medien können beliebige verfügbare Medien sein, auf die von der Rechenvorrichtung 900 zugegriffen werden kann. Die computerlesbaren Medien können sowohl flüchtige als auch nichtflüchtige Medien und entfernbare als auch nicht entfernbare Medien umfassen. Beispielsweise und nicht beschränkend können die computerlesbaren Medien Computer-Speichermedien und Kommunikationsmedien umfassen.
  • Die Computer-Speichermedien können sowohl flüchtige als auch nichtflüchtige Medien und/oder entfernbare als auch nicht entfernbare Medien umfassen, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen, wie beispielsweise computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder anderen Datenarten, implementiert sind. Beispielsweise kann der Speicher 904 computerlesbare Anweisungen (z.B. solche, die ein Programm(e) und/oder ein Programmelement(e), wie beispielsweise ein Betriebssystem darstellen) speichern. Computer-Speichermedien können umfassen, sind jedoch nicht begrenzt auf, RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, magnetische Plattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium, das verwendet werden kann, um die erwünschten Informationen zu speichern, und auf das von der Rechenvorrichtung 900 zugegriffen werden kann. Wie hier verwendet, umfassen Computerspeichermedien keine Signale per se.
  • Die Computerspeicherungsmedien können computerlesbare Anweisungen, Datenstrukturen, Programmmodule und/oder andere Datenarten in einem modulierten Datensignal, wie beispielsweise einer Trägerwelle oder einem anderen Transportmechanismus, verkörpern und beliebige Information-liefernde Medien umfassen. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, das eine oder mehrere seiner Eigenschaften eingestellt oder auf eine derartige Art und Weise geändert hat, um Informationen in dem Signal zu codieren. Beispielhaft und nicht einschränkend können die Kommunikationsmedien drahtgebundene Medien, wie beispielsweise ein drahtgebundenes Netzwerk oder eine direktverdrahtete Verbindung sowie drahtlosen Medien, wie beispielsweise akustische, HF-, Infrarot- und andere drahtlose Medien, umfassen. Kombinationen aus beliebigem des Obigen sollten ebenfalls innerhalb des Umfangs von computerlesbaren Medien umfasst sein.
  • Die CPU(s) 906 kann(können) konfiguriert sein, um mindestens einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Rechenvorrichtung 900 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Die CPU(s) 906 kann(können) jeweils einen oder mehrere Kerne (z.B. ein, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 906 kann(können) jede Art von Prozessor umfassen und kann(können) unterschiedliche Arten von Prozessoren abhängig von der Art der implementierten Rechenvorrichtung 900 umfassen (z.B. Prozessoren mit weniger Kernen für mobile Vorrichtungen und Prozessoren mit mehr Kernen für Server). Beispielsweise kann der Prozessor abhängig von der Art der Rechenvorrichtung 900 ein Advanced RISC Machines (ARM) Prozessor sein, der unter Verwendung des Reduced Instruction Set Computing (RISC) implementiert ist, oder ein x86-Prozessor sein, der unter Verwendung des Complex Instruction Set Computing (CISC) implementiert ist. Die Rechenvorrichtung 900 kann eine oder mehrere CPUs 906 zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzliche Co-Prozessoren, wie beispielsweise mathematische Co-Prozessoren, umfassen.
  • Zusätzlich zu oder alternativ zu der/den CPU(s) 906 kann(können) die GPU(s) 908 ausgestaltet sein, um zumindest einige der computerlesbaren Anweisungen auszuführen, um eine oder mehrere Komponenten der Recheneinrichtung 900 zu steuern, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Eine oder mehrere der GPU(s) 908 kann(können) eine integrierte GPU sein (z.B. mit einer oder mehreren der CPU(s) 906), und/oder eine oder mehrere der GPU(s) 908 kann(können) eine diskrete GPU sein. In Ausführungsformen kann eine oder können mehrere der GPU(s) 908 ein Coprozessor einer oder mehrerer der CPU(s) 906 sein. Die GPU(s) 908 kann(können) von der Recheneinrichtung 900 zum Rendern von Graphiken (z. B. 3D-Graphiken) oder zur Durchführung von Allzweckberechnungen verwendet werden. Die GPU(s) 908 kann(können) beispielsweise für General-Purpose-Computing auf GPUs (GPGPU) verwendet werden. Die GPU(s) 908 kann(können) Hunderte oder Tausende von Kernen aufweisen, die in der Lage sind, Hunderte oder Tausende von Software-Threads gleichzeitig zu verarbeiten. Die GPU(s) 908 kann(können) als Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von der/den CPU(s) 906, die über eine Host-Schnittstelle empfangen werden) Pixeldaten für Ausgabebilder erzeugen. Die GPU(s) 908 kann(können) einen Graphikspeicher, wie beispielsweise einen Anzeigespeicher, zum Speichern von Pixeldaten oder anderen geeigneten Daten, wie z.B. GPGPU-Daten, aufweisen. Der Anzeigespeicher kann als Teil des Speichers 904 vorhanden sein. Die GPU(s) 908 kann(können) zwei oder mehr GPUs aufweisen, die parallel arbeiten (z. B. über eine Verbindung). Die Verbindung kann die GPUs direkt (z.B. mit NVLINK) oder über einen Schalter (z. B. mit NVSwitch) verbinden. Wenn zusammen kombiniert, kann jede GPU 908 Pixeldaten oder GPGPU-Daten für verschiedene Abschnitte einer Ausgabe oder für verschiedene Ausgaben erzeugen (z.B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher aufweisen oder kann den Speicher mit anderen GPUs gemeinsam nutzen.
  • Zusätzlich zu oder alternativ zu der (den) CPU(s) 906 und/oder der (den) GPU(s) 908 kann(können) die Logikeinheit(en) 920 so konfiguriert sein, dass sie zumindest einige der computerlesbaren Anweisungen ausführt (ausführen), um eine oder mehrere Komponenten der Recheneinrichtung 900 zu steuern, um eine oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. In Ausführungsformen können die CPU(s) 906, die GPU(s) 908 und/oder die Logikeinheit(en) 920 diskret oder gemeinsam eine beliebige Kombination der Verfahren, Prozesse und/oder Teile davon ausführen. Eine oder mehrere der Logikeinheiten 920 kann(können) Teil einer oder mehrerer der CPU(s) 906 und/oder der GPU(s) 908 sein und/oder eine oder mehrere der Logikeinheiten 920 kann(können) diskrete Komponenten sein oder anderweitig außerhalb der CPU(s) 906 und/oder der GPU(s) 908 liegen. In Ausführungsformen können eine oder mehrere der Logikeinheiten 920 ein Coprozessor einer oder mehrerer der CPU(s) 906 und/oder einer oder mehrerer der GPU(s) 908 sein.
  • Beispiele für die Logikeinheit(en) 920 umfassen einen oder mehrere Verarbeitungskerne und/oder Komponenten davon auf, wie z.B. Tensor-Cores (TCs), Tensor Processing Units (TPUs), Pixel Visual Cores (PVCs), Vision Processing Units (VPUs), Graphics Processing Clusters (GPCs), Texture Processing Clusters (TPCs), Streaming Multiprocessors (SMs), Tree Traversal Units (TTUs), Künstliche-Intelligenz-Beschleuniger (AIAs), Deep-Learning-Beschleuniger (DLAs), Arithmetik-Logik-Einheiten (ALUs), anwendungsspezifische integrierte Schaltungen (ASICs), Fließkomma-Einheiten (FPUs), Eingabe-/Ausgabe-Elemente (E/A), Peripheral-Component-Interconnect-Elemente (PCI) oder Peripheral-Component-Interconnect-Express-Elemente (PCIe) und/oder dergleichen.
  • Die Kommunikationsschnittstelle 910 kann einen oder mehrere Empfänger, Sender und/oder Sender-Empfänger umfassen, die es der Rechenvorrichtung 900 ermöglichen, mit anderen Rechenvorrichtungen über ein elektronisches Kommunikationsnetzwerk, einschließlich drahtgebundener und/oder drahtloser Kommunikation, zu kommunizieren. Die Kommunikationsschnittstelle 910 kann Komponenten und Funktionalität umfassen, um Kommunikation über ein beliebiges einer Anzahl von unterschiedlichen Netzwerken, wie beispielsweise drahtlose Netzwerke (z.B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z.B. Kommunikation über Ethernet), Low-Power-Weitbereichsnetzwerke (z.B. LoRaWAN, SigFox usw.) und/oder das Internet zu ermöglichen.
  • Die E/A-Ports 912 können es der Rechenvorrichtung 900 ermöglichen, logisch mit anderen Vorrichtungen, einschließlich der E/A-Komponenten 914, der Präsentationskomponente(n) 918 und/oder anderen Komponenten, von denen einigen in die Rechenvorrichtung 900 eingebaut (z.B. integriert) sein können, gekoppelt zu sein. Veranschaulichende E/A-Komponenten 914 umfassen ein Mikrophon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Spielecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, eine drahtlose Vorrichtung usw. Die E/A-Komponenten 914 können eine natürliche Benutzer-Schnittstelle (NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben, die von einem Benutzer erzeugt werden, verarbeitet. In einigen Fällen können Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann jede beliebige Kombination aus Spracherkennung, Styluserkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch neben dem Bildschirm, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie nachstehend ausführlicher beschrieben), einer Anzeige der Rechenvorrichtung 900 zugeordnet sind. Die Rechenvorrichtung 900 kann Tiefenkameras umfassen, wie beispielsweise stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon zur Gestenerfassung und -erkennung. Zusätzlich kann die Rechenvorrichtung 900 Beschleunigungssensoren oder Gyroskope (z.B. als Teil einer Trägheitsmesseinheit (IMU)) umfassen, die die Erfassung von Bewegungen ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungssensoren oder Gyroskope von der Rechenvorrichtung 900 dazu verwendet werden, immersive erweiterte Realität oder virtuelle Realität zu rendern.
  • Die Leistungsversorgung 916 kann eine fest verdrahtete Leistungsversorgung, eine Batterieleistungsversorgung oder eine Kombination davon umfassen. Die Leistungsversorgung 916 kann e Leistung an die Rechenvorrichtung 900 liefern, um den Betrieb der Komponenten der Rechenvorrichtung 900 zu ermöglichen.
  • Die Präsentationskomponente(n) 918 kann(können) eine Anzeige (z.B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, eine Heads-up-Anzeige (HUD), andere Anzeigearten oder ein Kombination davon), Lautsprecher und/oder andere Präsentationskomponenten umfassen. Die Präsentationskomponente(n) 918 kann(können) Daten von anderen Komponenten (z.B. den GPU(s) 908, den CPU(s) 906 usw.) empfangen und die Daten (z.B. als Bild, Video, Ton usw.) ausgeben.
  • Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinenverwendbaren Anweisungen, einschließlich computerausführbaren Anweisungen, wie beispielsweise Programmmodulen, die von einem Computer oder einer anderen Maschine, wie beispielsweise einem Assistenten für personenbezogene Daten oder einer anderen handgehaltenen Vorrichtung, ausgeführt werden, beschrieben werden. Allgemein beziehen sich Programmodule, einschließlich Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., auf einen Code, der bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert. Die Offenbarung kann in einer Vielfalt von Systemkonfigurationen praktiziert werden, die handgehaltene Vorrichtungen, Unterhaltungselektronik, Universalcomputer, spezialisiertere Rechenvorrichtungen usw. umfassen. Die Offenbarung kann auch in verteilten Computerumgebungen praktiziert werden, in denen Aufgaben von entfernten Verarbeitungsvorrichtungen, die über ein Kommunikationsnetzwerk verbunden sind, ausgeführt werden.
  • Wie hier verwendet, sollte eine Angabe von „und/oder“ in Bezug auf zwei oder mehr Elemente so interpretiert werden, dass nur ein Element oder eine Kombination von Elementen gemeint ist. 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 „zumindest eines von Element A oder Element B“ zumindest eines von Element A, zumindest eines von Element B oder zumindest eines von Element A und zumindest eines von Element B umfassen. Weiterhin kann „zumindest eines von Element A und Element B“ zumindest eines von Element A, zumindest eines von Element B oder zumindest eines von Element A und zumindest eines von Element B umfassen.
  • Der Gegenstand der vorliegenden Offenbarung ist hier spezifisch beschrieben, um gesetzlichen Anforderungen zu entsprechen. Die Beschreibung selbst soll jedoch den Umfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder ins Auge gefasst, dass der beanspruchte Gegenstand auch auf andere Weisen verkörpert sein könnte, um unterschiedliche Schritte oder Kombinationen von Schritten ähnlich zu denen in diesem Dokument beschriebenen in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien zu umfassen. Außerdem sollten, obwohl die Begriffe „Schritt“ und/oder „Block“ hier verwendet werden können, um verschiedene Elemente der verwendeten Verfahren zu benennen, sollten die Begriffe nicht so interpretiert werden, dass sie eine bestimmte Reihenfolge unter oder zwischen den verschiedenen hier offenbarten Schritten bedeuten, es sei denn, dass die Reihenfolge der einzelnen Schritte ausdrücklich beschrieben wird.
  • 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 [0119]

Claims (27)

  1. Verfahren, umfassend: Bestimmen einer Überlappungsregion, die einer Überlappung zwischen einem ersten Bild und einem zweiten Bild entspricht; Bestimmen von Unterschieden zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion; und Transformieren mindestens des ersten Bildes basierend mindestens teilweise auf den Unterschieden.
  2. Verfahren gemäß Anspruch 1, ferner umfassend: Berechnen einer oder mehrerer Transformationen als Ergebnis dessen, dass die Unterschiede unter einem Schwellenwert sind; und Anwenden der einen oder mehreren Transformationen auf eines des ersten Bildes oder des zweiten Bildes.
  3. Verfahren gemäß Anspruch 1 oder 2, ferner umfassend Kombinieren des ersten Bildes und des zweiten Bildes in ein drittes Bild basierend mindestens teilweise auf der Überlappungsregion.
  4. Verfahren gemäß einem vorangehenden Anspruch, wobei das Bestimmen der Unterschiede umfasst: Berechnen mindestens eines Kennwerts, der Unterschiede zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion angibt, wobei der mindestens eine berechnete Kennwert mindestens teilweise auf einem oder mehreren geometrischen Unterschieden zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion basiert; und Anwenden einer oder mehrerer geometrischer Transformationen auf das erste Bild oder das zweite Bild als Ergebnis des einen oder mehrerer geometrischer Unterschiede.
  5. Verfahren gemäß einem vorangehenden Anspruch, wobei das Bestimmen der Unterschiede umfasst: Berechnen mindestens eines Kennwerts, der Unterschiede zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion angibt, wobei der mindestens eine berechnete Kennwert mindestens teilweise auf einem oder mehreren photometrischen Unterschieden zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion basiert; und Anwenden einer oder mehrerer photometrischer Transformationen auf das erste Bild oder das zweite Bild als Ergebnis des einen oder mehrerer photometrischer Unterschiede.
  6. Verfahren gemäß einem vorangehenden Anspruch, wobei das Bestimmen der Unterschiede das Berechnen mindestens eines ersten Kennwerts umfasst, der eine geometrische Differenz zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion angibt, wobei: als Ergebnis des Transformierens mindestens des ersten Bildes, Berechnen mindestens eines zweiten Kennwerts, der eine photometrische Differenz zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion angibt; und Berechnen einer oder mehrerer Transformationen, die auf mindestens das erste Bild basierend mindestens teilweise auf dem mindestens einen zweiten Kennwert anzuwenden sind.
  7. Verfahren gemäß einem vorangehenden Anspruch, wobei das Bestimmen der Unterschiede umfasst: Berechnen mindestens eines Kennwerts, der Unterschiede zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion angibt; Bestimmen, wenn der mindestens eine Kennwert über der Schwelle ist; und als Ergebnis dessen, dass der mindestens eine Kennwert über einem Schwellenwert ist, Kombinieren des ersten Bildes und des zweiten Bildes in ein drittes Bild basierend mindestens teilweise auf der Überlappungsregion.
  8. Fahrzeug oder Roboter, welches/welcher das Verfahren gemäß einem der Ansprüche 1 bis 7 implementiert, umfassend: eine erste Bilderfassungsvorrichtung, um das erste Bild zu erfassen; eine zweite Bilderfassungsvorrichtung, um das zweite Bild zu erfassen; eine Anzeigenvorrichtung, um ein zusammengefügtes Bild anzuzeigen, das basierend mindestens teilweise auf mindestens dem transformierten ersten Bild erzeugt wird; einen oder mehrere Prozessoren; und einen Speicher, der Anweisungen umfasst, die durch den einen oder mehrere Prozessoren ausführbar sind, um den einen oder mehrere Prozessoren zu veranlassen, das Verfahren gemäß einem der Ansprüche 1 bis 7 durchzuführen.
  9. Fahrzeugsystem, umfassend: einen oder mehrere Prozessoren; und einen Speicher, der Anweisungen umfasst, die, wenn durch den einen oder mehrere Prozessoren durchgeführt, das Fahrzeugsystem veranlassen, mindestens: eine Überlappungsregion zu bestimmen, die einer Überlappung zwischen einem ersten Bild und einem zweiten Bild entspricht; einen Kennwert zu berechnen, der Unterschiede zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion angibt; und mindestens das erste Bild basierend mindestens teilweise auf dem Kennwert zu transformieren.
  10. Fahrzeugsystem gemäß Anspruch 9, wobei der Speicher ferner Anweisungen umfasst, die als Reaktion darauf, durch den einen oder mehrere Prozessoren durchgeführt zu werden, das Fahrzeugsystem veranlassen: eine oder mehrere Transformationen als Ergebnis dessen zu berechnen, dass der Kennwert unter einen Schwellenwert ist; und die eine oder mehrere Transformationen auf eines von dem ersten Bild oder dem zweiten Bildes anzuwenden.
  11. Fahrzeugsystem gemäß Anspruch 10, wobei: das erste Bild einer ersten Zeit zugeordnet ist und ein drittes Bild einer zweiten Zeit zugeordnet ist; und der Kennwert Unterschiede zwischen dem ersten Bild und dem dritten Bild angibt.
  12. Fahrzeugsystem gemäß einem der Ansprüche 9 bis 11, wobei der Speicher ferner Anweisungen umfasst, die als Reaktion darauf, dass sie durch den einen oder mehrere Prozessoren durchgeführt werden, das Fahrzeugsystem veranlassen: den Kennwert basierend mindestens teilweise auf einem optischen Strömungsvektor zu berechnen, der verwendbar ist, um die Identifikation einer oder mehrerer Unterschiede zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion zu erleichtern; und eine oder mehrere geometrische Transformationen auf mindestens das erste Bild als Ergebnis des einen oder mehrerer Objektunterschiede anzuwenden.
  13. Fahrzeugsystem gemäß einem der Ansprüche 9 bis 12, wobei der Speicher ferner Anweisungen umfasst, die als Reaktion darauf, dass sie durch den einen oder mehrere Prozessoren durchgeführt werden, das Fahrzeugsystem veranlassen: den Kennwert basierend mindestens teilweise auf einem oder mehreren Farbunterschieden zwischen jedem Farbkanal des ersten Bildes oder des zweiten Bildes in der Überlappungsregion zu berechnen; und eine oder mehrere photometrische Transformationen auf das erste Bild oder das zweite Bild als Ergebnis des einen oder mehrerer Farbunterschiede anzuwenden.
  14. Fahrzeugsystem gemäß einem der Ansprüche 9 bis 13, wobei der Speicher ferner Anweisungen umfasst, die als Reaktion darauf, dass sie durch den einen oder mehrere Prozessoren durchgeführt werden, das Fahrzeugsystem veranlassen: einen zweiten Kennwert von dem Kennwert unter Verwendung eines oder mehrerer neuronaler Netzwerke abzuleiten; und mindestens das erste Bild basierend mindestens teilweise auf dem zweiten Kennwert zu transformieren.
  15. Fahrzeugsystem gemäß einem der Ansprüche 9 bis 14, wobei der Speicher ferner Anweisungen umfasst, die, als Reaktion darauf, dass sie durch den einen oder mehrere Prozessoren durchgeführt werden, das Fahrzeugsystem veranlassen, das erste Bild und das zweite Bild in ein drittes Bild basierend mindestens teilweise auf der Überlappungsregion zu kombinieren.
  16. Fahrzeugsystem gemäß einem der Ansprüche 9 bis 15, wobei der Speicher ferner Anweisungen umfasst, die als Reaktion darauf, dass sie durch den einen oder mehrere Prozessoren durchgeführt werden, das Fahrzeugsystem veranlassen: einen zweiten Kennwert als Ergebnis des Transformierens mindestens des ersten Bildes zu berechnen; eine oder mehrere Transformationen zu berechnen, die mindestens auf das erste Bild basierend mindestens teilweise auf dem zweiten Kennwert anzuwenden sind; und die eine oder mehrere Transformationen auf mindestens das erste Bild anzuwenden.
  17. Fahrzeugsystem gemäß einem der Ansprüche 9 bis 16, wobei der Speicher ferner Anweisungen umfasst, die als Reaktion darauf, dass sie durch den einen oder mehrere Prozessoren durchgeführt werden, das Fahrzeugsystem veranlassen, das erste Bild und das zweite Bild in ein drittes Bild basierend mindestens teilweise auf der Überlappungsregion als Ergebnis dessen zu kombinieren, dass der Kennwert über einem Schwellenwert ist.
  18. Fahrzeugsystem gemäß einem der Ansprüche 9 bis 17, ferner umfassend: einen oder mehrere Controller; eine Netzwerkschnittstelle; eine Anzeige; ein Antriebssystem; und zwei oder mehr Surround-Kameras, die verwendbar sind, um das erste Bild und das zweite Bild zu erfassen.
  19. Robotersystem, umfassend: einen oder mehrere Prozessoren, die mit computerlesbaren Medien gekoppelt sind; wobei die computerlesbaren Medien ausführbare Anweisungen speichern, die als Ergebnis dessen, dass sie durch den einen oder mehrere Prozessoren ausgeführt werden, das System veranlassen: eine Überlappungsregion zu bestimmen, die einer Überlappung zwischen einem ersten Bild und einem zweiten Bild entspricht; einen Kennwert zu berechnen, der Unterschiede zwischen dem ersten Bild und dem zweiten Bild in der Überlappungsregion angibt; und mindestens das erste Bild basierend mindestens teilweise auf dem Kennwert zu transformieren.
  20. Robotersystem gemäß Anspruch 19, wobei die computerlesbaren Medien ferner Anweisungen umfassen, die, wenn sie durch den einen oder mehrere Prozessoren durchgeführt werden, den einen oder mehrere Prozessoren veranlassen: einen zweiten Kennwert als Ergebnis des Transformierens mindestens des ersten Bildes zu berechnen; und eine oder mehrere Transformationen zu berechnen, die auf mindestens das erste Bild basierend mindestens teilweise auf dem zweiten Kennwert anzuwenden sind; und die eine oder mehrere Transformationen auf mindestens das erste Bild anzuwenden.
  21. Robotersystem gemäß Anspruch 19 oder 20, wobei die computerlesbaren Medien ferner Anweisungen umfassen, die, wenn sie durch den einen oder mehrere Prozessoren durchgeführt werden, den einen oder mehrere Prozessoren veranlassen: einen zweiten Kennwert von dem Kennwert unter Verwendung eines oder mehrerer neuronaler Netzwerke abzuleiten; und mindestens das erste Bild basierend mindestens teilweise auf dem zweiten Kennwert zu transformieren.
  22. Robotersystem gemäß einem der Ansprüche 19 bis 21, wobei die computerlesbaren Medien ferner Anweisungen umfassen, die, wenn sie durch den einen oder mehrere Prozessoren durchgeführt werden, den einen oder mehrere Prozessoren veranlassen: den Kennwert basierend mindestens teilweise auf einem oder mehreren geometrischen Unterschieden zwischen dem ersten Bild und dem zweitem Bild in der Überlappungsregion zu berechnen; und eine oder mehrere dreidimensionale Transformationen auf mindestens das erste Bild als Ergebnis des einen oder mehrerer geometrischer Unterschiede anzuwenden.
  23. Robotersystem gemäß einem der Ansprüche 19 bis 22, wobei die computerlesbaren Medien ferner Anweisungen umfassen, die, wenn sie durch den einen oder mehrere Prozessoren durchgeführt werden, den einen oder mehrere Prozessoren veranlassen: den Kennwert basierend mindestens teilweise auf einem oder mehreren Farbunterschieden zwischen dem ersten Bild und dem zweiten Bild zu berechnen; und einen oder mehrere Farbparameter von mindestens dem ersten Bild als Ergebnis des einen oder mehrerer Farbunterschiede einzustellen.
  24. Robotersystem gemäß einem der Ansprüche 19 bis 23, wobei die computerlesbaren Medien ferner Anweisungen umfassen, die, wenn sie durch den einen oder mehrere Prozessoren durchgeführt werden, den einen oder mehrere Prozessoren veranlassen: mindestens das erste Bild in ein drittes Bild zu transformieren; eine zweite Überlappungsregion zu bestimmen, die einer zweiten Überlappung zwischen einem vierten Bild und einem fünften Bild entspricht; ein zweites Kennwert zu berechnen, das Unterschiede zwischen dem vierten Bild und dem fünften Bild in der zweiten Überlappungsregion angibt; mindestens das vierte Bild in ein sechstes Bild basierend mindestens teilweise auf dem zweiten Kennwert zu transformieren; und das dritte Bild und das sechste Bild zu kombinieren, um Videodaten zu erzeugen.
  25. Robotersystem gemäß einem der Ansprüche 19 bis 24, wobei die computerlesbaren Medien ferner Anweisungen umfassen, die, wenn sie durch den einen oder mehrere Prozessoren durchgeführt werden, den einen oder mehrere Prozessoren veranlassen: eine oder mehrere Transformationen als Ergebnis dessen zu berechnen, dass der Kennwert unter einem Schwellenwert ist; und die eine oder mehrere Transformationen auf eines von dem ersten Bild oder dem zweiten Bild anzuwenden.
  26. Robotersystem gemäß einem der Ansprüche 19 bis 25, wobei: das erste Bild einer ersten Zeit zugeordnet ist und ein drittes Bild einer zweiten Zeit in einem Zeitintervall zugeordnet ist; und der Kennwert zeitliche Unterschiede zwischen dem ersten Bild und dem dritten Bild in dem Zeitintervall angibt.
  27. Robotersystem gemäß einem der Ansprüche 19 bis 26, ferner umfassend: einen oder mehrere Roboterarme; einen oder mehrere Servocontroller; einen oder mehrere Sensoren; eine Kommunikationsschnittstelle; und zwei oder mehr Kameras, die verwendbar sind, um mindestens das erste Bild und das zweite Bild zu erfassen.
DE102021133638.4A 2020-12-31 2021-12-17 Bildzusammensetzung in multi-view-automobilsystemen und robotersystemen Pending DE102021133638A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/139,587 2020-12-31
US17/139,587 US11948315B2 (en) 2020-12-31 2020-12-31 Image composition in multiview automotive and robotics systems

Publications (1)

Publication Number Publication Date
DE102021133638A1 true DE102021133638A1 (de) 2022-06-30

Family

ID=81972268

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021133638.4A Pending DE102021133638A1 (de) 2020-12-31 2021-12-17 Bildzusammensetzung in multi-view-automobilsystemen und robotersystemen

Country Status (4)

Country Link
US (1) US11948315B2 (de)
JP (1) JP2022105256A (de)
CN (1) CN114764782A (de)
DE (1) DE102021133638A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116128734A (zh) * 2023-04-17 2023-05-16 湖南大学 一种基于深度学习的图像拼接方法、装置、设备和介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10861359B2 (en) * 2017-05-16 2020-12-08 Texas Instruments Incorporated Surround-view with seamless transition to 3D view system and method
US20200294194A1 (en) * 2019-03-11 2020-09-17 Nvidia Corporation View synthesis using neural networks
US11948315B2 (en) * 2020-12-31 2024-04-02 Nvidia Corporation Image composition in multiview automotive and robotics systems
US20230326091A1 (en) * 2022-04-07 2023-10-12 GM Global Technology Operations LLC Systems and methods for testing vehicle systems
US20240048843A1 (en) * 2022-08-04 2024-02-08 Ford Global Technologies, Llc Local compute camera calibration
DE102022126322A1 (de) * 2022-10-11 2024-04-11 Valeo Schalter Und Sensoren Gmbh Verfahren zum Betreiben eines Fahrerassistenzsystems für ein Kraftfahrzeug, Fahrerassistenzsystem für ein Kraftfahrzeug sowie Kraftfahrzeug mit einem Fahrerassistenzsystem

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075905A (en) * 1996-07-17 2000-06-13 Sarnoff Corporation Method and apparatus for mosaic image construction
KR100790887B1 (ko) * 2006-09-22 2008-01-02 삼성전자주식회사 영상 처리장치 및 방법
WO2011143622A2 (en) * 2010-05-13 2011-11-17 Google Inc. Underwater acquisition of imagery for 3d mapping environments
KR20140112909A (ko) * 2013-03-14 2014-09-24 삼성전자주식회사 파노라마 영상을 생성하는 전자 장치 및 방법
WO2015104235A1 (en) * 2014-01-07 2015-07-16 Dacuda Ag Dynamic updating of composite images
WO2016160716A1 (en) * 2015-03-27 2016-10-06 Syntheslide, LLC Systems and methods for combining magnified images of a sample
CN109074090A (zh) * 2016-02-29 2018-12-21 深圳市大疆创新科技有限公司 无人机硬件架构
US10616482B2 (en) * 2017-03-10 2020-04-07 Gopro, Inc. Image quality assessment
JP2018206323A (ja) * 2017-06-09 2018-12-27 アイシン精機株式会社 画像処理装置
JP7039879B2 (ja) * 2017-08-03 2022-03-23 株式会社アイシン 表示制御装置
US11049218B2 (en) * 2017-08-11 2021-06-29 Samsung Electronics Company, Ltd. Seamless image stitching
CN109509146B (zh) * 2017-09-15 2023-03-24 腾讯科技(深圳)有限公司 图像拼接方法及装置、存储介质
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
JPWO2020170288A1 (ja) * 2019-02-18 2021-03-11 三菱電機株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
WO2020171258A1 (ko) * 2019-02-21 2020-08-27 한국과학기술원 영상 처리 방법 및 그 장치
US11948315B2 (en) * 2020-12-31 2024-04-02 Nvidia Corporation Image composition in multiview automotive and robotics systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116128734A (zh) * 2023-04-17 2023-05-16 湖南大学 一种基于深度学习的图像拼接方法、装置、设备和介质

Also Published As

Publication number Publication date
US11948315B2 (en) 2024-04-02
CN114764782A (zh) 2022-07-19
JP2022105256A (ja) 2022-07-13
US20220207756A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE112020002166T5 (de) Simulation realistischer testdaten aus transformierten sensordaten der realen welt für autonome maschinenanwendungen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112019000049T5 (de) Für autonomes fahren geeignete objekterfassung und erfassungssicherheit
DE112020004139T5 (de) Erstellung von karten und lokalisierung für anwendungen im bereich des autonomen fahrens
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE112019006484T5 (de) Detektion von abständen zu hindernissen in autonomen maschinenanwendungen
DE102021121558A1 (de) Auf neuronalen netzen basierende bestimmung der blickrichtung unter verwendung räumlicher modelle
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
DE102020115479A1 (de) Erweiterte bildgebung mit hohem dynamikumfang und tone -mapping
DE102021133638A1 (de) Bildzusammensetzung in multi-view-automobilsystemen und robotersystemen
DE102021123159A1 (de) Adaptiver objektverfolgungsalgorithmus für autonome maschinenanwendungen
DE112020001396T5 (de) Formfusion zur bildanalyse
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE102021125234A1 (de) Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken
DE112020006181T5 (de) Blickbestimmung mit blendung als eingabe
DE102022121121A1 (de) Objektverfolgung unter Verwendung von LiDAR-Daten für autonome Maschinenanwendungen
DE112021000104T5 (de) Projizieren von mit fischaugenobjektiven aufgenommenen bildern zur merkmalserkennung in autonomen maschinenanwendungen
DE102022118649A1 (de) Belief Propagation für das Abstandsbild-Mapping in autonomen Maschinenanwendungen
DE102022117298A1 (de) Zusammenfügungsqualitätsbewertung für rundumsichtsysteme
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
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed