DE102020113779A1 - Umgebungs-kamerasystem mit nahtlosem zusammenfügen für die auswahl beliebiger blickwinkel - Google Patents

Umgebungs-kamerasystem mit nahtlosem zusammenfügen für die auswahl beliebiger blickwinkel Download PDF

Info

Publication number
DE102020113779A1
DE102020113779A1 DE102020113779.6A DE102020113779A DE102020113779A1 DE 102020113779 A1 DE102020113779 A1 DE 102020113779A1 DE 102020113779 A DE102020113779 A DE 102020113779A DE 102020113779 A1 DE102020113779 A1 DE 102020113779A1
Authority
DE
Germany
Prior art keywords
image
parameters
images
processor
camera
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
DE102020113779.6A
Other languages
English (en)
Inventor
Rastislav Lukac
Ravi Basavaraj
Gazi Ali
Krishna Madaparambil
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102020113779A1 publication Critical patent/DE102020113779A1/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/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)

Abstract

Eine Vorrichtung umfassend einen Speicher zum Speichern eines ersten Bildes, erfasst durch eine erste Kamera, und eines zweiten Bildes, erfasst durch eine zweite Kamera; und einen Prozessor umfassend eine Schaltungsanordnung, der Prozessor zum Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, das zusammengefügte Bild soll aus einer Kombination einer Mehrzahl von Bildern umfassend das erste Bild und das zweite Bild erzeugt werden; und basierend auf den Blickwinkelinformationen und einer Projektionsart, Bestimmen von Transformationsparametern für zumindest eine Referenz-Region, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes zum Bestimmen von Zusammenfügungs-Parametern; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung bezieht sich im Allgemeinen auf das Gebiet der Rechensysteme und insbesondere auf Rechensysteme, die Kamerabildgebung ermöglichen.
  • HINTERGRUND
  • Automobil-Umgebungs-Kamerasysteme stitch (fügen) Bilder von mehreren Kameras zusammen, um ein vollständiges 3D-Bild der Umgebung des Fahrzeugs zu erzeugen, welches verschiedenen Zwecken dienen kann, wie beispielsweise der Unterstützung des Fahrers durch das Ermöglichen von sichererem und einfacherem Manövrieren oder dem Bereitstellen von Unterstützung zu Versicherungszwecken. Diese Systeme haben in der Automobilindustrie aufgrund ihrer Rolle bei der Sicherheit (z.B. Schutz vor Rückwärtsfahrten-Todesfällen und alltäglichen Schäden) und Fahrerassistenz (z.B. Einparken, Eliminierung des toten Winkels, Umkreis-Überprüfung, Navigation auf engen Straßen), guter Performance und Kosteneffizienz zunehmend an Bedeutung gewonnen.
  • Figurenliste
    • 1 stellt ein Fahrzeug umfassend ein Umgebungs-Kamerasystem gemäß bestimmten Ausführungsbeispielen dar.
    • 2 stellt einen Ablauf zur Erzeugung eines zusammengefügten Bildes aus mehreren Bildern gemäß bestimmten Ausführungsbeispielen dar.
    • 3 stellt einen Ablauf zur Erzeugung von zusammengefügten Bildern basierend auf Zusammenfügungs-Parametern gemäß bestimmten Ausführungsbeispielen dar.
    • 4 stellt einen Prozessor gemäß bestimmten Ausführungsbeispielen dar.
    • 5 stellt ein System umfassend mehrere Zusammenfügungs-Module einer Bildverarbeitungseinheit (IPU; image processing unit) gemäß bestimmten Ausführungsbeispielen dar.
    • 6 stellt ein System umfassend eine IPU und eine Grafikverarbeitungseinheit (GPU; graphics processing unit) zum Erzeugen mehrerer zusammengefügter Bilder gemäß bestimmten Ausführungsbeispielen dar.
    • 7 stellt ein System umfassend eine IPU und eine GPU mit mehreren Multi-Kamera-Zusammenfügungs-Modulen zum Erzeugen von mehreren zusammengefügten Bildern gemäß bestimmten Ausführungsbeispielen dar.
    • 8 stellt einen Ablauf zur Zuweisung von Daten von kombinierten Bildern an ein zusammengefügtes Bild gemäß bestimmten Ausführungsbeispielen dar.
    • 9 ist eine vereinfachte Darstellung, die eine beispielhafte autonome Fahrumgebung zeigt, gemäß bestimmten Ausführungsbeispielen.
    • 10 ist ein vereinfachtes Blockdiagramm, das eine beispielhafte Implementierung eines Fahrzeugs (und eines entsprechenden bordeigenen Rechensystems) veranschaulicht, das mit einer autonomen Fahrfunktionalität ausgestattet ist, gemäß bestimmten Ausführungsbeispielen.
    • 11 ist ein vereinfachtes Blockdiagramm, das beispielhafte Niveaus des autonomen Fahrens veranschaulicht, die in verschiedenen Fahrzeugen (z. B. durch ihre entsprechenden bordeigenen Rechensysteme) unterstützt werden können, gemäß bestimmten Ausführungsbeispielen.
    • 12 ist ein vereinfachtes Blockdiagramm, das einen beispielhaften Autonomes-Fahren-Ablauf veranschaulicht, der in einigen autonomen Fahrsystemen implementiert werden kann, gemäß bestimmten Ausführungsbeispielen.
    • 13 ist eine beispielhafte Darstellung eines Prozessors gemäß bestimmten Ausführungsbeispielen.
    • 14 veranschaulicht ein Rechensystem, das in einer Punkt-zu-Punkt- (PtP-; point-to-point) Konfiguration angeordnet ist, gemäß bestimmten Ausführungsbeispielen.
  • Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen weisen auf ähnliche Elemente hin.
  • BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
  • 1 stellt ein Fahrzeug 100 umfassend ein Umgebungs-Kamerasystem gemäß bestimmten Ausführungsbeispielen dar. Das System umfasst vier Videokameras 102, die am Fahrzeug 100 befestigt sind, wobei eine erste Kamera 102A nach vorne gerichtet ist, eine zweite Kamera 102B zur rechten Seite gerichtet ist, eine dritte Kamera 102C nach hinten gerichtet ist und eine vierte Kamera 102D zur linken Seite des Fahrzeugs gerichtet ist. Bei einigen Ausführungsbeispielen können die Kameras mit Fischaugenobjektiven ausgestattete Sensoren umfassen (es können jedoch irgendwelche geeigneten Sensoren verwendet werden), um relativ weite Sichtfelder zu erfassen, um Überlappungen in den von benachbarten Kameras erfassten Bildern zu erzeugen. Zum Beispiel, bei dem gezeigten Ausführungsbeispiel, erfasst Kamera 102A ein Sichtfeld innerhalb der Grenzen 104A, Kamera 102B erfasst ein Sichtfeld innerhalb der Grenzen 104B, Kamera 102C erfasst ein Sichtfeld innerhalb der Grenzen 104C, Kamera 102D erfasst ein Sichtfeld innerhalb der Grenzen 104D. Bei dem gezeigten Ausführungsbeispiel erfasst jede Kamera ein Bild, das einen Teil aufweist, der sich mit einem von einer anderen Kamera erfassten Bild überlappt. Zum Beispiel können ein von Kamera 102A erfasstes Bild und ein von Kamera 102B erfasstes Bild eine Überlappungsregion 106A aufweisen, ein von Kamera 102B erfasstes Bild und ein von Kamera 102C erfasstes Bild können eine Überlappungsregion 106B aufweisen, ein von Kamera 102C erfasstes Bild und ein von Kamera 102D erfasstes Bild können eine Überlappungsregion 106C aufweisen und ein von Kamera 102D erfasstes Bild und ein von Kamera 102A erfasstes Bild können eine Überlappungsregion 106D aufweisen.
  • Bilder oder Videoströme (die einen Strom von Bildern umfassen können) von allen vier Kameras können von einem Prozessor zu einem einzelnen Panoramabild oder -strom zusammengeschlossen oder zusammengefügt werden. Der resultierende Panoramavideostrom kann dann in Echtzeit ohne tote Winkel aufgezeichnet und/oder auf einem Monitor (z.B. des Fahrzeugs 100) angezeigt werden. Das Umgebungs-Kamerasystem wird häufig für niedrigere Geschwindigkeiten (z. B. unter 20 mph) verwendet, um beim Einparken, Manövrieren unter komplexen Bedingungen (z. B. enge Straßen, schwieriges Gelände), bei Sicherheitsscans im Umkreis usw. zu helfen.
  • Die verschiedenen Anwendungsfälle, umfassend zusammengefügte Bilder, können von der Bereitstellung des korrekten Abschnitts einer Szene und des genauen Informationsgehalts abhängen. Ersteres bezieht sich auf die Blickwinkelauswahl, während letzteres ein nahtloses Zusammenfügen benachbarter Kameras durch ihre geometrische und photometrische Ausrichtung umfasst. Bei einigen Systemen unterstützen Umgebungs-Kamerasysteme jedoch nur einige wenige vordefinierte Ansichten, wie z.B. Umgebungs- (360°), Seiten- und breite Vorder- oder Rückansichten, die nicht weiter differenziert werden können. Darüber hinaus können Bildausrichtungslösungen verschiedene Nachteile aufweisen, insbesondere in Situationen mit unterschiedlichen Lichtverhältnissen und komplexeren Szenen. Das gleiche Objekt, das von benachbarten Kameras erfasst wird, kann aufgrund unterschiedlicher Kamerabefestigungswinkel oder Szenenbeleuchtung unterschiedliche Helligkeitsstufen oder Weißabgleich aufweisen, was zu unerwünschten Qualitätseffekten in dem final angezeigten oder aufgezeichneten zusammengefügten Bild führt.
  • Selbst eine Szene mit einem einfachen Straßenhintergrund kann durch variierende Lichtverhältnisse und Schatten, aufgrund des Autos selbst oder Objekte in seiner Nähe, stark beeinträchtigt werden. Helligkeitsunterschiede können auch dem Belichten jeder Kamera für ihr eigenes Sichtfeld zugeschrieben werden, um Unterbelichtungs- (mit der Folge von Rauschen) oder Überbelichtungs- (mit der Folge von Sättigung) Effekte zu vermeiden. Diese Belichtungsunterschiede können reduziert werden, indem alle Kameras gemeinsam gesteuert werden, z.B. indem sie identisch wie die Master- (z.B. Front-) Kamera belichtet werden; diese Vorgehensweise kann jedoch zu unterschiedlichen Belichtungsfehlern für jede Slave-Kamera führen, da sowohl die Beleuchtung als auch die Szeneninhalte von Kamera zu Kamera variieren. Ähnlich werden Farbunterschiede oft durch unterschiedliche Beleuchtung und Szeneninhalte verursacht, die von jeder Kamera gesehen werden. Andere Faktoren, wie beispielsweise Modulzu-Modul-Variationen, können in der Regel offline kalibriert und pro Kamera früher in der Bildgebungs-Pipeline (außerhalb des Zusammenfügungs-Blocks) kompensiert werden.
  • Wie vorangehend erörtert, sind die bestehenden Lösungen nicht flexibel genug, da sie üblicherweise nur einige wenige vordefinierte Ansichten unterstützen, die die tatsächlichen Interessensregionen nur teilweise umfassen oder sogar ganz weglassen können. Zusätzlich, trotz der Verwendung verschiedener optimierter Profile und Parameter, zugeordnet zu diesen vordefinierten Ansichten, erzeugen diese Systeme oft große Ausrichtungsfehler, die entweder vollständig auf die finalen Bilder ausgebreitet oder bestenfalls etwas maskiert werden (z.B. durch Einfügen von Linien an separate Quellkameras in dem zusammengefügten Bild). Bei komplexen Szenen kann dieser Ansatz jedoch erhebliche Fahrsicherheits- und Betriebsrisiken erzeugen, da wichtige Bildmerkmale in Nahtbereichen aufgrund von Ausrichtungsfehlern, Maskierungseffekten und falschen Helligkeits- und Kontrastcharakteristika stark verzerrt oder sogar völlig ausgeblendet werden können.
  • Verschiedene Ausführungsbeispiele der vorliegenden Offenlegung stellen eine fortschrittliche und effiziente Lösung zur Erzeugung beliebiger und nahtloser Ansichten unter Verwendung von Umgebungs-Kamerasystemen bereit. Bestimmte Ausführungsbeispiele können praktische Lösungen für das Erreichen von nahtlosem Zusammenfügen bei Umgebungs-Kamerasystemen für einen beliebigen Blickwinkel bereitstellen. Bei einem bestimmten Ausführungsbeispiel verringert ein einzigartiges und effizientes photometrisches Ausrichtungsverfahren Helligkeits- und Farbunterschiede zwischen benachbarten Kameras aufgrund von unterschiedlichen Kamerabefestigungswinkeln, Sensorcharakteristika und variierende Beleuchtung über die Szene. Bei verschiedenen Ausführungsbeispielen werden Blickwinkelinformationen verwendet, um die Begrenzungen von überlappenden Regionen für jedes Paar benachbarter Kameras zu bestimmen und Blending (Misch)-Masken für das nahtlose Zusammenfügen von Bildern auszubilden. Statistiken, die in überlappenden Regionen gesammelt werden, können zur Berechnung von Anpassungsgewinnen verwendet werden, die Änderungen des Blickwinkels und der Szeneninhalte widerspiegeln, und die Anpassungsgewinne können durch geeignete Kriterien eingeschränkt werden, um zu vermeiden, dass Unterschreitungen zu einer Verdunkelung des Bildes und Überschreitungen zu Sättigungseffekten führen. Die Anpassungsgewinne können mit den Mischmasken kombiniert werden, um Ausrichtungsfehler zu minimieren und Zusammenfügungs-Parameter zu erhalten, die auf die Eingabebilder angewendet werden, um das zusammengefügte Ausgabebild zu erzeugen.
  • Verschiedene Ausführungsbeispiele ermöglichen eine flexible und genaue Blickwinkelauswahl in Umgebungs-Kamerasystemen und ein nahtloses Zusammenfügen von Bildern, die mit mehreren Kameras aufgenommen wurden, unter Verwendung einer Blickwinkel-adaptiven Statistikerfassung und Bildausrichtung. Die Benutzererfahrung kann in verschiedenen Multikamera-Zusammenfügungs-Anwendungsfällen verbessert werden, z.B. durch Erzeugen einer vollständigen Ansicht (360 Grad) der Objektumgebung, der Unterstützung des Fahrers durch sichereres und einfacheres Manövrieren des Fahrzeugs und der Aufzeichnung mehrerer miteinander verbundener Kameras. Bestimmte Ausführungsbeispiele können einen Fokus auf den relevanten Abschnitt der Szene und relevante Informationsinhalte ermöglichen, anstatt den Benutzer mit suboptimalen Ansichten und unerwünschten Qualitätseffekten in der zusammengefügten Ausgabe abzulenken. Verschiedene hierin beschriebene Ausführungsbeispiele können sowohl für Standbild- als auch für Videoaufnahmen (die einen Strom von Bildern darstellen können) geeignet sein, können speichereffizient sein und können effizient in Software und Hardware implementiert werden. Die Bildzusammenfügungsprozeduren können in einer Einzellösung verwendet oder als Teil der Datenverarbeitungspipeline durch Kombinationen der in dieser Offenbarung beschriebenen Techniken implementiert werden. Bestimmte Ausführungsbeispiele können die Bildqualität erheblich verbessern, indem verschiedene Ausrichtungsfehler, die sonst zu erheblichen Helligkeits- und Farbunterschieden zwischen benachbarten Kameras führen würden, verringert oder ganz vermieden werden. Schließlich können einige Ausführungsbeispiele hierin fortgeschrittene Projektionen unterstützen (z.B. zusammengesetzte Ansichten, willkürliche Blickwinkel), um mehr Informationen, Differenzierung, höhere Flexibilität und bessere Qualität im Vergleich zu bestehenden Automobillösungen bereitzustellen.
  • 2 stellt einen Ablauf 200 zur Erzeugung eines zusammengefügten Bildes aus mehreren Bildern gemäß bestimmten Ausführungsbeispielen dar. Erfasste Bilder 202 repräsentieren Bilder, die von verschiedenen Kameras erfasst werden. Beispielsweise können die Bilder 202A von Kamera 102A erfasst werden, die Bilder 202B können von Kamera 102B erfasst werden, die Bilder 202C können von Kamera 102C erfasst werden und die Bilder 202D können von Kamera 102D erfasst werden. Bei verschiedenen Ausführungsbeispielen kann ein Satz von Bildern, die zu einem bestimmten Zeitpunkt erfasst werden, miteinander verbunden werden (z.B. über einen Zeitstempel oder andere Angaben) und verarbeitet werden, um ein zusammengefügtes Bild zu bilden.
  • Nach der Erfassung werden die Bilder 202 verschiedenen Verarbeitungen durch das Bildverarbeitungsmodul 204 unterzogen. Zum Beispiel kann das Bildverarbeitungsmodul 204 irgendeine Kombination aus Schwarzpegelkorrektur, Korrektur fehlerhafter Pixel, Rauschminderung, Weißabgleich, Farbkorrektur und Tonemapping durchführen. Das Bildverarbeitungsmodul 204 kann auch Verarbeitungen zur Berücksichtigung von Linsenverzerrungen und geometrischer Ausrichtung (z. B. durch Rotation, Übersetzung und Skalierung) durchführen, um Projektionen in einem gemeinsamen Koordinatenraum (z. B. einem Weltkoordinatenraum) zu erzeugen. Zum Beispiel können die Daten der Bilder 202 vor der Verarbeitung jede gemäß einem Koordinatensystem dargestellt werden, das für den Typ der Kamera, die das Bild erfasst hat, einzigartig ist (z. B. ein Modell oder ein lokales Koordinatensystem), und nach der Verarbeitung können die Daten der Bilder 202 in einem gemeinsamen Koordinatenraum relativ zu einem gemeinsamen Ursprung innerhalb des gemeinsamen Koordinatenraums dargestellt werden (z. B. basierend auf Höhe, Position und Winkel der bestimmten Kamera).
  • Das Multi-Kamera-Zusammenfügungs-Modul 206 synthetisiert ein zusammengefügtes Bild unter Verwendung der verarbeiteten Bilder der mehreren Kameras. Da solche Bilder aufgrund unterschiedlicher Linsen- und Sensoreigenschaften, 3A-Einschränkungen, Kalibrierungsfehler und Verarbeitungsunterschieden wahrscheinlich Helligkeits- und Farbvariationen aufweisen, kann das Multi-Kamera-Zusammenfügungs-Modul 206 Bildanpassungen (z. B. photometrische Ausrichtung) und Mischung durchführen, um die zusammengefügte Ausgabe nahtlos erscheinen zu lassen für verbessertes Benutzererlebnis und Genauigkeit. Eine solche Verarbeitung kann die Verringerung von Farb- und Helligkeitsunterschieden in Bildern umfassen, erfasst von unterschiedlichen Kameras.
  • Das zusammengefügte Bild kann dann vom Bildnachbearbeitungsmodul 208 verarbeitet werden. Eine solche Nachbearbeitung kann irgendwelche geeigneten Operationen umfassen, wie beispielsweise eine oder mehrere aus Schärfen, Aufbereitung, Neuabtastung und Formatkonvertierung, um die finale Bildqualität zu verbessern und die Anforderungen an das Ausgabemedium zu erfüllen. Das resultierende Bild wird dann auf einem Monitor (z.B. eines Fahrzeugs oder eines vom Fahrzeug entfernten Monitors) angezeigt oder von Modul 210 im Speicher gespeichert.
  • 3 stellt einen Ablauf 300 zur Erzeugung von Zusammenfügungs-Parameter und zum Zusammenfügen von Bildern zusammen basierend auf den Zusammenfügungs-Parametern gemäß bestimmten Ausführungsbeispielen dar. Der Ablauf kann von einem Prozessor ausgeführt werden, umfassend irgendeine geeignete Schaltungsanordnung, wie beispielsweise das Multi-Kamera-Zusammenfügungs-Modul 206.
  • Der Ablauf kann auf Eingabebildern von mehreren unterschiedlichen Kameras arbeiten, wie beispielsweise den erfassten Bildern 202. Es wird davon ausgegangen, dass die Eingabebilder vor der Durchführung von Zusammenfügungsoperationen in der Verarbeitungspipeline durch geeignete Schaltungsanordnungen (z.B. Bildverarbeitungsmodul 204) für Linsenverzerrungen kompensiert und geometrisch ausgerichtet werden.
  • Der Ablauf kann auch auf Blickwinkelinformationen arbeiten, die eine gewünschte Ansicht für das zusammengefügte Bild anzeigen. Diese Ansicht kann für einen bestimmten Projektionstyp (z.B. Abbilden der Eingabekamerabilder in eine Ausgabebildebene) und einen bestimmten Blickwinkel (z.B. eine Position oder Perspektive, aus der die Szene aufbereitet und betrachtet wird) erzeugt werden. Bei verschiedenen Ausführungsbeispielen kann ein Benutzer oder eine Recheneinheit die Ansicht, die Projektion und/oder den Blickwinkel spezifizieren, z.B. abhängig von dem Anwendungsfall oder Fahrsituationen.
  • Beispielsweise können Automobil-Kamerasysteme eine Umgebungs-Ansicht (basierend auf geradliniger Projektion, manchmal auch als Planarprojektion bezeichnet), eine zweite Umgebungs-Ansicht (basierend auf 2D-zusammengesetzte-Kugelprojektion), eine Rückwärtsneigungs-Ansicht (basierend auf 2D-zusammengesetzte-Kugelprojektion) und eine Seitenansicht (basierend auf geradliniger Projektion), eine Vorder- oder Rückansicht (basierend auf geradliniger Projektion) oder eine andere geeignete Ansicht verwenden. Bei verschiedenen Ausführungsbeispielen kann jede Ansicht einen bestimmten Projektionstyp nutzen (z.B. geradlinig, 2D-zusammengesetzte Kugel, zylindrisch, sphärisch, Panini oder eine andere geeignete Projektion). Die Recheneinheit kann eine geeignete Ansicht, Projektion und/oder einen Blickwinkel basierend auf einer Fahrsituation und einer Szenen-/Bildanalyse spezifizieren, während der Benutzer eine solche Wahl manuell unter Verwendung einer grafischen Benutzeroberfläche (GUI; graphical user interface), Sprachsteuerung, dedizierte Knöpfen und so weiter treffen kann.
  • Der Blickwinkel kann einen Referenzpunkt umfassen, wie beispielsweise eine dreidimensionale (3D) Koordinate oder einen Vektor, spezifiziert durch seine Länge (z.B. Größe, Entfernung, Umfang) und Richtung (z.B. Winkel oder Ausrichtung) in einem gegebenen Koordinatenraum. Zusätzlich oder als eine Alternative zur Definition des Blickwinkels im Hinblick auf einen Ursprung eines Koordinatenraumes kann der Blickwinkel basierend auf einem anderen geeigneten Punkt in diesem Koordinatenraum definiert werden. Zum Beispiel kann der Blickwinkel als ein Vektor definiert werden, der von dem vorherigen Blickwinkel ausgeht. Alternativ kann der Blickwinkel als eine Änderung oder ein Unterschied der Koordinaten im Hinblick auf den vorherigen Blickwinkel oder einen anderen geeigneten Punkt definiert werden. Bei einigen Ausführungsbeispielen kann der Blickwinkel unter Verwendung eines Satzes von Winkelwerten (z.B. Rotationsparameter) und Versatzwerten (z.B. Translationsparameter) in Bezug auf jede Achse oder Ebene eines gegebenen Koordinatensystems definiert werden. Bei verschiedenen Ausführungsbeispielen ist der Blickwinkel in irgendeinem geeigneten Koordinatenraum definiert, wie beispielsweise dem gemeinsamen Koordinatenraum oder dem Koordinatenraum des Koordinatensystems, verwendet zum Aufbereiten der finalen Ansicht (z.B. um die Auswahl des Blickwinkels für den Benutzer zu erleichtern). Nach hiesigem Gebrauch kann sich ein Referenzblickwinkel auf einen vorangehenden Blickwinkel oder einen durch Kalibrierung bestimmten Standardblickwinkel beziehen.
  • Bei verschiedenen Ausführungsbeispielen können die Blickwinkelinformationen von dem Benutzer dynamisch spezifiziert werden. Zum Beispiel kann der Benutzer die Blickwinkelinformationen durch direktes Spezifizieren einer Koordinate; Berühren eines Punkts auf einem Bildschirm; Auswählen einer vordefinierten Ansicht, Blickwinkels oder einer anderen Einstellung; oder Definieren solcher Einstellungen durch Sprachsteuerung spezifizieren. Zum Beispiel kann einem Benutzer die Möglichkeit gegeben werden, den Blickwinkel einer 2D-zusammengesetzten-Kugelprojektion von einem Standardblickwinkel (z. B. einer Ansicht von oben nach unten) in irgendeinen anderen gewünschten Blickwinkel zu ändern.
  • Bei einem bestimmten Ausführungsbeispiel können die Blickwinkelinformation Informationen umfassen, basierend auf der Projektionsart und der Blickwinkeleinstellung. Bei Ausführungsbeispielen können diese Informationen eine Mehrzahl von Rotationswinkeln im Hinblick auf die Achsen des gemeinsamen Koordinatensystems und einen oder mehrere Translationsparameter umfassen (diese Rotationswinkel und Translationsparameter können auch als Transformationsparameter bezeichnet werden). Zum Beispiel können die Blickwinkelinformationen einen Rotationswinkel um die x-Achse (α), einen Rotationswinkel um die y-Achse (β), und einen Rotationswinkel um die z-Achse (γ), sowie einen 3D-Translationsparameter (T) umfassen. Bei verschiedenen Ausführungsbeispielen können Rotationsparameter in Grad definiert sein (z.B. im Bereich von -45 bis 45 Grad), während Translationsparameter in Pixeleinheiten definiert sein können. Der Bereich der Translationsparameterwerte, zugeordnet zu den X- und Y-Achsen hängt üblicherweise von der Auflösung des Ausgabebildes ab, während der Parameterwert, zugeordnet zu der z-Achse, einen Bildvergrößerungsfaktor darstellt (z.B. erzeugen kleinere Absolutwerte mehr Zoom). Abhängig von der Implementierung können Rotations- und Translationsparameter sowohl positive als auch negative Werte aufweisen. Als erstes Beispiel für eine 2D-zusammengesetzte Kugel-Ansicht: α = 0, β = 0,γ = 0 und T = [0 0 -1800]'. Als weiteres Beispiel, für eine Rückwärtsneigungs-Ansicht: α = 20, β = 25, γ = 0, und T = [750 600 -1800]'. Andere gängige Beispiele umfassen die Rückansicht mit α = 25.0, β = 0, γ = 0, und T = [0 1500 -1800]', Vorderansicht mit α = -25, β = 0, γ = 0, und T = [0 -1500 -1800]', rechter Straßenrand-Ansicht mit α = 0, β = 20, γ = 0, und T = [1500 0 -1800]', und linke Straßenrand-Ansicht mit α = 0, β = -20, γ = 0, und T = [-1500 0 -1800]'.
  • Bei 302 werden überlappende Regionen der Bilder lokalisiert und Mischmasken werden unter Verwendung der Blickwinkelinformationen ausgebildet. Die Lokalisierung kann die Bestimmung der Begrenzungen der überlappenden Regionen in dem gemeinsamen Koordinatenraum (z.B. Weltkoordinatensystem) und die Umwandlung dieser Koordinaten basierend auf dem Blickwinkel umfassen.
  • Die Größe, Form und Position der überlappenden Region in Bildern, erfasst von zwei benachbarten Kameras, hängt von dem Sichtfeld der Linse, der Platzierung der Kameras auf dem Fahrzeug, der Projektionsart und den Blickwinkelinformationen ab. Das Sichtfeld der Linse und die Platzierung der Kameras sind im Allgemeinen statisch und können durch Offline-Kalibrierung charakterisiert werden, zur Verwendung in der Bestimmung der Größe und Position der überlappenden Regionen der Kameras. Die Projektionsart und Blickwinkelinformationen können jedoch dynamisch sein, abhängig von einer Benutzerauswahl oder einer Situation, zugeordnet zu dem Fahrzeug. Beispielsweise kann eine erste Kombination aus Projektionsart und Blickwinkelinformationen für das Fahren verwendet werden und eine zweite Kombination aus Projektionsart und Blickwinkelinformationen kann für paralleles Einparken verwendet werden. Irgendeine Änderung des Blickwinkels und der Projektionsart kann verschiedene Attribute überlappender Regionen beeinflussen, wie beispielsweise Koordinaten, Position/Ort, Form, Begrenzungen, Größe/Bereich, Orientierung und so weiter.
  • Die Koordinaten in dem gemeinsamen Koordinatenraum der überlappenden Regionen in Bildern, erfasst von jedem Paar von benachbarten Kameras, können bestimmt werden (z.B. basierend auf den Koordinaten, zugeordnet durch das Bildverarbeitungsmodul 204). Zum Beispiel kann sich ein Bild, erfasst von einer ersten Kamera, mit einem Bild, erfasst von einer zweiten Kamera, in Pixeln überlappen, die die gleichen Koordinaten in dem gemeinsamen Koordinatenraum aufweisen. Für einige gemeinsame Projektionen und Blickwinkel können überlappende Regionen durch Kalibrierung bestimmt werden. Solche überlappenden Regionen, bestimmt in Kalibrierung oder berechnet für vorangehende Blickwinkel und/oder Projektionen, werden hierin als Referenzregionen bezeichnet und können zur Lokalisierung überlappender Regionen bei der Erzeugung neuer Ansichten verwendet werden. Diese Lokalisierung kann durch Transformation (z. B. Funktion, Abbildung, Konvertierung, Änderung, Modifikation, Überarbeitung, Variation etc.) der Attribute von Referenzregionen erfolgen, üblicherweise Koordinaten, basierend auf der Änderung des Blickwinkels und der Projektion zwischen der Standard-/Referenzansicht und der tatsächlichen Ansicht. Eine solche Koordinatenänderung kann Änderungen anderer oben genannter Attribute implizieren. Bei verschiedenen Ausführungsbeispielen kann diese Transformation unter Verwendung einer Mehrzahl von Parametern gesteuert werden, hierin bezeichnet als Transformationsparameter, wie beispielsweise Rotations- und Translationsparameter, bestimmt im Hinblick auf Referenzregionen. Somit, wenn eine Referenzregion einer/m vorangehenden Blickwinkel und/oder Projektion zugeordnet ist (im Gegensatz zu einer Standard-Referenzregion, z.B. zugeordnet zu einer Kalibrierung), können die beispielhaften Transformationsparameter, vorangehend beschrieben für verschiedene Blickwinkel und Projektionen gemäß dem/r vorangehenden Blickwinkel und/oder Projektion modifiziert werden.
  • Bei einigen Ausführungsbeispielen können die tatsächlichen Transformationsparameter (d. h. die Transformationsparameter für den tatsächlichen Blickwinkel) unter Verwendung von Transformationsparametern bestimmt werden, die optimiert oder abgestimmt sind, um die gewünschte Bildqualität für eine Mehrzahl von Blickwinkeln, hierin als Abstimmungsblickwinkel bezeichnet, für jede der unterstützten Projektionen zu erzeugen. Diese Abstimmung kann offline erfolgen, zum Beispiel als Teil der Kalibrierung des Umgebungs-Kamerasystems oder der Bildverarbeitungs-Pipeline-Abstimmung und Performanceoptimierung. Transformationsparameter zur Abstimmung von Blickwinkeln können als Liste, Nachschlagetabelle, Abtastgitter oder in einer anderen geeigneten Form gespeichert werden. Abhängig von der Implementierung können ein oder mehrere Abstimmungsblickwinkel, die dem tatsächlichen Blickwinkel am nächsten sind, aus einer Mehrzahl von Abstimmpunkten ausgewählt werden, basierend auf Manhattan, Euklidisch, Minkowski oder Winkeldistanz oder einer anderen Distanz, einem Ähnlichkeitsmaß oder einer anderen Funktion basieren, geeignet zur Quantifizierung von Unterschieden oder Ähnlichkeiten zwischen den beiden Blickwinkeln in einem gegebenen Koordinatenraum. Bei einigen Ausführungsbeispielen können Transformationsparameter, zugeordnet zu den ausgewählten Abstimmungsblickwinkeln gemittelt werden, um die tatsächlichen Transformationsparameter zu erhalten. Bei einigen anderen Ausführungsbeispielen kann jedem ausgewählten Abstimmungsblickwinkel ein Gewicht zugeordnet werden, das einem Unterschied oder Ähnlichkeit dieses Abstimmungsblickwinkels und dem tatsächlichen Blickwinkel entspricht. Die tatsächlichen Transformationsparameter werden dann als gewichteter Mittelwert der Transformationsparameter, zugeordnet zu ausgewählten Abstimmungsblickwinkeln, erhalten. Bei einigen noch anderen Ausführungsbeispielen werden die tatsächlichen Transformationsparameter unter Verwendung von Transformationsparametern bestimmt, zugeordnet zu einer Mehrzahl von Abstimmungsblickwinkeln durch Interpolation, Filterung, Schätzung und/oder anderen geeigneten Prozessen.
  • Eine Referenzregion kann auch einer/m vorangehenden Blickwinkel und/oder einer Projektion zugeordnet sein (im Gegensatz zu einer Standardansicht mit einem vordefinierten Blickwinkel und einer vordefinierten Projektion). In diesem Fall können die Transformationsparameter, zugeordnet zu einer Mehrzahl von Abstimmungsblickwinkeln, zunächst aktualisiert, kompensiert, normalisiert oder anderweitig im Hinblick auf den vorangehenden Blickwinkel angepasst werden, bevor die tatsächlichen Transformationsparameter unter Verwendung einer oder mehrerer der oben erörterten Prozeduren bestimmt werden. Bei einigen anderen Ausführungsbeispielen können die tatsächlichen Transformationsparameter (z.B. basierend auf Transformationsparametern oder einem Blickwinkel, zugeordnet zu einer Referenzregion) unter Verwendung einer oder mehrerer linearer zwei- oder dreidimensionaler Transformationen (z. B. Translation, Rotation, Skalierung) und/oder perspektivischer Transformationen basierend auf Änderungen in zumindest einer der Blickwinkelinformationen und der Projektionsart erhalten werden.
  • Basierend auf den Koordinaten der überlappenden Regionen kann ein statistisches Gitter bestimmt werden. Die Positionen des Statistikgitters (z.B. einer 2D-zusammengesetzten Kugelprojektion) werden zuerst in dem gemeinsamen Koordinatenraum (z.B. Weltkoordinatensystem) definiert, in dem die Blickwinkel definiert sind. Bei einem Beispiel kann das Gitter ein Rechteck (oder eine andere geeignete Form) sein, das die gesamte überlappende Region zwischen zwei Bildern umfasst. Bei einem anderen Beispiel kann das Gitter ein Rechteck (oder eine andere geeignete Form) sein, das einen Großteil der überlappenden Region (z.B. etwa 90% der überlappenden Region) umfasst. Bei anderen Beispielen kann das Gitter irgendeinen geeigneten Betrag der überlappenden Region umfassen.
  • Wenn ein Gitter beispielsweise als Rechteck dargestellt wird, kann die Positionierung des Gitters wie folgt ausgedrückt werden: grid_pos_tl= [ x _ tl y _ tl  0 ]  f u ¨ r die obere linke Ecke
    Figure DE102020113779A1_0001
    grid_pos_tr= [ x _ tr y _ tr  0 ]  f u ¨ r die obere linke Ecke
    Figure DE102020113779A1_0002
    grid_pos_bl= [ x _ bl y _ bl  0 ]  f u ¨ r die obere linke Ecke
    Figure DE102020113779A1_0003
    grid_pos_br= [ x _ br y _ br  0 ]  f u ¨ r die obere linke Ecke
    Figure DE102020113779A1_0004
  • Nachdem die Gitterpositionen definiert sind, werden sie basierend auf den Blickwinkelinformationen rotiert und übersetzt. Jeder Rotationswinkel kann durch seine eigene Rotationsmatrix kompensiert werden, und die Gesamtrotation, definiert als Produkt der individuellen Rotationsmatrizen, kann mit der Translation kombiniert werden, um die transformierten Koordinaten wie folgt zu erhalten.
  • Es kann eine Rotationsmatrix für die Rotation um jede Achse berechnet werden, wobei Ra eine Rotationsmatrix zur Kompensation der Rotation um die x-Achse darstellt, Rβ eine Rotationsmatrix zur Kompensation der Rotation um die y-Achse darstellt und Rγ eine Rotationsmatrix zur Kompensation der Rotation um die z-Achse darstellt. Zum Beispiel: R α = [ 1 0 0 0 cos ( α ) sin ( α ) 0 sin ( α ) cos ( α ) ]
    Figure DE102020113779A1_0005
    R β = [ cos ( β ) 0 sin ( β ) 0 1 0 sin ( β ) 0 cos ( β ) ]
    Figure DE102020113779A1_0006
    R γ = [ cos ( γ ) sin ( γ ) 0 sin ( γ ) cos ( γ ) sin ( α ) 0 0 1 ]
    Figure DE102020113779A1_0007
  • Die Rotationsmatrizen können in der folgenden Reihenfolge angewendet werden: R =Rα Rβ Rγ. Wie oben angedeutet, kann der Translationsvektor im gemeinsamen 3D-Koordinatenraum als T = [tx ty tz]' definiert werden. Das Kombinieren der Rotationsmatrix R und des Translationsvektors T führt zu der Matrix E, ausgedrückt in homogenen Koordinaten: E = [ R R T 0 1 ]
    Figure DE102020113779A1_0008
  • Die Gitterpositionen in dem gemeinsamen Koordinatenraum werden jeweils mit E multipliziert, um die transformierten Positionen (die auf dem Blickwinkel basierenden Positionen) zu erhalten. Zum Beispiel, grid_tl_t = E*[grid_tl 1]' -> [x_tl_t y_tl_t z_tl_t 1]' = E*[x_tl y_tl 0 1]'.
  • Die Koordinaten in der Bildebene (z.B. Projektionskoordinatensystem) werden dann unter Verwendung der perspektivischen Projektion erhalten: grid_tl' = [x_tl' y_tl'] = [f*x_tl_t/z_tl_t f*y_tl_t/z_tl_t] + [w/2 h/2], wobei f die Brennweite der virtuellen Kamera ist, während w und h die Breite und die Höhe des Bildes sind. Die anderen Ecken des Gitters (d.h. grid tr, grid bl und grid br) werden ähnlich transformiert, um die neuen Positionen des Gitters basierend auf dem gewählten Blickwinkel zu erhalten. Auf ähnliche Weise können die Gitterpositionen für andere Paare von überlappenden Bildern berechnet werden (z.B. können Positionen für ein erstes Gitter für die überlappende Region 106A, ein zweites Gitter für die überlappende Region 106B, ein drittes Gitter für die überlappende Region 106C und ein viertes Gitter für die überlappende Region 106D berechnet werden).
  • Bei verschiedenen Ausführungsbeispielen können die transformierten Positionen des einen oder der mehreren Gitter periodisch (z.B. jeder Rahmen) oder bei einer Änderung der Blickwinkelinformation berechnet werden. Bei einigen Ausführungsbeispielen können die transformierten Positionen des einen oder der mehreren Gitter im Speicher gespeichert und für unterschiedliche Sätze von verarbeiteten Bildern wiederverwendet werden (z.B. kann jeder Satz einem bestimmten Zeitpunkt entsprechen).
  • Bei 302 können Mischmasken auch unter Verwendung der Blickwinkelinformationen ausgebildet werden. Eine Mischmaske kann einen Satz von Misch-Koeffizienten umfassen, die definieren, wie eine Mehrzahl von Bildern vermischt werden soll. Die Misch-Koeffizienten können vorbestimmt (z.B. für gemeinsame Blickwinkel und Projektionen) oder adaptiv unter Verwendung einer geeigneten Funktion erhalten werden. Bei einem Beispiel kann ein Blending-Koeffizient einen ersten Multiplizierer für ein Pixel (oder mehrere Pixel) eines ersten Bildes, erfasst von einer ersten Kamera, und einen zweiten Multiplizierer für ein entsprechendes überlappendes Pixel (oder mehrere Pixel) eines zweiten Bildes, erfasst von einer zweiten Kamera, spezifizieren. Der Wert eines Pixels in dem zusammengefügten Bild kann durch Multiplizieren eines Wertes des Pixels des ersten Bildes mit dem ersten Multiplizierer und Hinzufügen zu einem Wert des Pixels des zweiten Bildes, multipliziert mit dem zweiten Multiplizierer, erhalten werden. Der Wert eines Pixels kann auf irgendeine geeignete Weise ausgedrückt werden. Zum Beispiel kann ein Pixel einen oder mehrere Werte umfassen, die eine Farbe des Pixels anzeigen (z.B. RGB-Pixelwerte, Farbartwerte, einen Farbtonwert, Sättigungswert, Winkel/Orientierung eines Farbvektors in einem Farbraum oder einen anderen geeigneten Wert) oder einen oder mehrere Werte, die eine Helligkeit des Pixels anzeigen (z.B. einen Helligkeitswert, Luminanzwert, Intensitätswert, Größe oder einen anderen geeigneten Wert).
  • Bei einigen Ausführungsbeispielen kann eine Mitte des Bildes oder ein/e andere/r Punkt oder Region des rotierten und übersetzten Gitters, umfassend zumindest einen Abschnitt einer überlappenden Region, oder eine Linie, die von dem Blickwinkel ausgeht und einen solchen Punkt kreuzt, bei der Ausbildung einer Mischmaske als Referenz dienen. Die Misch-Koeffizienten der Maske können als eine Funktion des Abstands von dem Referenzpunkt oder -linie erhalten werden. Beispielsweise kann ein erstes Bild die Pixel stärker beeinflussen, die sich in der Überlappungsregion näher an dem Abschnitt des ersten Bildes befinden, der nicht mit einem zweiten Bild überlappt, während das zweite Bild die Pixel stärker beeinflussen kann, die sich in der Überlappungsregion näher an dem Abschnitt des zweiten Bildes befinden, der nicht mit dem ersten Bild überlappt. Bei verschiedenen Ausführungsbeispielen können abstimmbare lineare oder exponentielle Funktionen verwendet werden, um die Pixel entlang der Bildzeilen, Spalten oder in beiden Richtungen gleichzeitig zu mischen. Eine Mischmaske kann Misch-Koeffizienten pro Pixel, pro Block oder pro anderer geeigneter Pixelgruppe spezifizieren. Bei einigen Ausführungsbeispielen können Mischmasken durch Transformationen oder einige andere geeignete Funktionen der Referenzmasken erhalten werden (d.h. Mischmasken, die für Referenzregionen/-ansichten bestimmt sind). Aufbauend auf der Abbildung der Koordinaten und Koeffizienten von Referenzmasken bestimmt dieser Prozess (z.B. durch Interpolation, Filterung oder Schätzung) Misch-Koeffizienten für die tatsächliche Ansicht. Bei einigen Ausführungsbeispielen kann dieser Prozess die erhaltenen Transformationen zur Lokalisierung überlappender Regionen nutzen. Bei anderen Ausführungsbeispielen können Referenz-Mischmasken unter Verwendung von Parametern aktualisiert werden, bevor Mischmasken für die tatsächliche Ansicht bestimmt werden. Alternativ können Mischmasken, die unter Verwendung von Transformationen von Referenzmasken erhalten werden, einer weiteren Anpassung über Parameter unterzogen werden.
  • Bei 304 werden Statistiken in den überlappenden Regionen gesammelt. Zum Beispiel können diese Statistiken basierend auf Pixeln der Bilder innerhalb der oben beschriebenen Gitter gesammelt werden (die rotiert und übersetzt oder anderweitig transformiert oder angepasst wurden, basierend auf den Blickwinkelinformationen). Bei einigen Ausführungsbeispielen können die Gitter einige Pixel umfassen, die nicht von beiden Bildern mit überlappenden Regionen gemeinschaftlich verwendet werden, oder können einige der Pixel möglicherweise nicht umfassen, die in beiden Bildern mit überlappenden Regionen vorliegen, aber das Gitter kann trotzdem einen relativ genauen Proxy für die gesamte überlappende Region bereitstellen.
  • Die Pixel von überlappenden Regionen werden verwendet, um Statistiken für jede von zwei benachbarten Kameras zu sammeln, zugeordnet zu der überlappenden Region von Interesse. Dieser Prozess kann alle solcher Regionen und Kameras umfassen oder kann alternativ zumindest eine solche Region (d.h. ein Paar benachbarter Kameras) umfassen. Bei verschiedenen Ausführungsbeispielen können die Statistiken unter Verwendung aller Pixel von der überlappenden Region oder einiger Teilmengen dieser Pixel berechnet werden (z.B. Weglassen ungültiger oder verdeckter Pixel, Verwendung nur eines inneren Abschnitts der überlappenden Regionen, Verwendung nur einer Abtastung von Pixeln der überlappenden Regionen etc.). Die Statistiken können für die gesamte überlappende Region oder auf einer Block-für-Block-Basis berechnet werden (zum Beispiel können erste Statistiken für einen ersten Block des Gitters berechnet werden, die zweiten Statistiken können für einen zweiten Block des Gitters berechnet werden und so weiter).
  • Für jede überlappende Region können eine oder mehrere Arten von Statistiken gesammelt werden. Als ein Beispiel können Farbstatistiken (z.B. basierend auf Werten, die die Farben von Pixeln anzeigen) oder Helligkeitsstatistiken (z.B. basierend auf Werten, die die Helligkeit von Pixeln anzeigen) gesammelt werden.
  • Irgendein geeigneter Operator kann verwendet werden, um die Statistiken zu sammeln. Beispielsweise kann ein Mittel von Werten einer Pixelgruppe, ein Median der Werte einer Pixelgruppe oder ein anderes statistisches Wertmaß von Pixeln eines Gitters, das eine überlappende Region (oder eine Teilmenge davon) darstellt, gesammelt werden.
  • Die Anzahl der in den Statistikberechnungen verwendeten Pixel kann variieren (z. B. können Videokomprimierungsformate eine höhere Luminanzauflösung und eine niedrigere Farbartauflösung verwenden), um Statistiken zu sammeln, die verwendet werden, um zumindest eine aus der Helligkeits- und Farbanpassung durchzuführen.
  • Bei einem Ausführungsbeispiel können die folgenden Statistiken für einen oder beide der Pixel-Helligkeitswerte und Pixel-Farbwerte gesammelt werden (alternativ könnten ähnliche Statistiken unter Verwendung von Medianwerten oder anderen statistischen Operatoren gesammelt werden):
    • Für ein Bild von Kamera 102A: mean AB bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102A mit Kamera 102B darstellt, und mean_AD bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102A mit Kamera 102D darstellt.
  • Für ein Bild von Kamera 102B: mean BA bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102B mit Kamera 102A darstellt, und mean_BC bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102B mit Kamera 102C darstellt.
  • Für ein Bild von Kamera 102C: mean CB bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102C mit Kamera 102B darstellt, und mean_CD bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102C mit Kamera 102D darstellt.
  • Für ein Bild von Kamera 102D: mean DC bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102D mit Kamera 102C darstellt, und mean_DA bezeichnet das Mittel der Werte aller Pixel innerhalb des Gitters, das die überlappende Region von Kamera 102D mit Kamera 102A darstellt.
  • Bei 306 werden Anpassungsfaktoren basierend auf den Statistiken berechnet. Bei einem Ausführungsbeispiel weisen die Anpassungsfaktoren die Form von Verhältnissen zwischen den Statistiken von einem Bild von einer Kamera und den Statistiken von einem Bild von einer anderen Kamera auf, zugeordnet zu derselben überlappenden Region. Bei einem anderen Ausführungsbeispiel werden die Anpassungsfaktoren als eine Kombination (z.B. Durchschnitt oder gewichteter Durchschnitt) solcher Verhältnisse von beiden überlappenden Regionen berechnet, zugeordnet zu derselben Kamera von Interesse. Fortfahrend mit den oben beschriebenen beispielhaften Mittelstatistiken, kann die Berechnung eines Anpassungsfaktors für Kamera 102A beispielsweise wie folgt aussehen: adjustmentFactor_A = ( mean_DA/mean_AD + mean _ BA/mean_AB ) / 2
    Figure DE102020113779A1_0009
  • Ähnlich kann die Berechnung eines Kompensationsverstärkungsfaktors für die Kamera 102C wie folgt aussehen: adjustmentFactor_C = ( mean_BC/mean_CB + mean_DC/mean_CD ) / 2
    Figure DE102020113779A1_0010
  • Bei diesem Beispiel wird derselbe Anpassungsfaktor auf das gesamte Bild der Kamera 102A angewendet und ein unterschiedlicher Anpassungsfaktor auf das gesamte Bild der Kamera 102C angewendet, während auf die Bilder der Kameras 102B und 102D kein Anpassungsfaktor angewendet wird. Bei anderen Ausführungsbeispielen können jedoch ein oder mehrere Anpassungsfaktoren auf ein Bild angewendet werden (z. B. ein erster Anpassungsfaktor für einen ersten Abschnitt des Bildes, ein zweiter Anpassungsfaktor für einen zweiten Abschnitt des Bildes und so weiter), oder auf jedes Bild aller Kameras (oder einer Teilmenge davon) können ein oder mehrere Anpassungsfaktoren auf einen oder mehrere Abschnitte der jeweiligen Bilder angewendet werden. Bei einem Ausführungsbeispiel kann ein Anpassungsfaktor für eine bestimmte Position eines Bildes bestimmt werden, und die tatsächliche Anpassung, die auf ein Pixel des Bildes angewendet wird, kann eine Funktion des Abstands dieses Pixels von der Position des Bildes sein.
  • Bei 308 sind die Anpassungsfaktoren eingeschränkt. Beispielsweise können die Anpassungsfaktoren durch die Anwendung geeigneter Kriterien eingeschränkt werden, um Signalunter- und -überschreitungen in dem zusammengefügten Bild zu vermeiden. Da die Berechnungen der Anpassungsfaktoren zu Anpassungsfaktoren führen können, die für einige Pixel in Bildern mit komplexer Beleuchtung oder Szenen zu klein oder zu groß sind, können die Werte der Anpassungsfaktoren eingeschränkt werden, zum Beispiel durch Anwendung eines oder mehrerer vordefinierter Kriterien.
  • Eine solche Beschränkung kann die Form einer Clippingfunktion aufweisen, die den ursprünglichen Wert des Anpassungsfaktors durch den niedrigeren Wert des ursprünglichen Faktors und einem vorgegebenen Parameter ersetzt. Ähnlich kann eine andere Clippingfunktion verwendet werden, um den ursprünglichen Wert des Anpassungsfaktors durch den größeren Wert des ursprünglichen Faktorwerts und einem anderen vorbestimmten Parameter zu ersetzen, der kleiner ist als der vorbestimmte Parameter in der vorherigen Clippingfunktion. Bei einigen Ausführungsbeispielen ist der absolute Unterschied zwischen den ursprünglichen und den angepassten Pixelwerten durch eine vorbestimmte Schwelle begrenzt. Bei anderen Ausführungsbeispielen ist diese Schwelle eine Funktion des ursprünglichen Pixelwerts, zum Beispiel ausgedrückt als Prozentsatz, Multiplizierer oder Faktor des ursprünglichen Pixelwerts. Alternativ kann der ursprüngliche Wert des Anpassungsfaktors durch den vorbestimmten Parameter ersetzt werden, wenn ein Pixelwert (oder eine Schwellenanzahl von Pixelwerten) von der überlappenden Region von Interesse, multipliziert mit dem ursprünglichen Wert des Anpassungsfaktors, einen Maximalwert für eine gegebene Bitdarstellung des Pixelwertes überschreitet (und somit eine Sättigung oder einen Überlauf für das Pixel verursacht). Um Sättigungseffekte zu vermeiden, wird der Anpassungsfaktor entsprechend gekürzt. Im Folgenden wird eine Beispielimplementierung beschrieben, bei der maxValue der höchste Wert eines Pixels in einer der überlappenden Regionen eines Bildes und satThreshold eine untere Grenze des Sättigungsbereichs ist: maxWert = max ( max ( Region von Interesse der Kamera 102A , die sich mit Kamera 102B  u ¨ berlappt ) ) ;
    Figure DE102020113779A1_0011
    adjustmentFactor = satThreshold/maxValue if maxValue adjustmentFactor>satThreshold
    Figure DE102020113779A1_0012
  • Für ein 8-Bit-Bild könnte satThreshold zum Beispiel auf einen Wert zwischen 240 und 245 gesetzt werden.
  • Bei 310 werden die Anpassungsfaktoren (z.B. als eingeschränkte) und Mischmasken kombiniert, um Zusammenfügungs-Parameter zu erhalten. Beispielsweise kann für irgendein bestimmtes Pixel eines ersten Bildes die Mischmaske eine Gewichtung spezifizieren, die den Beitrag dieses Pixels zum entsprechenden Pixel des zusammengefügten Bildes darstellt, und ein Helligkeitsanpassungsfaktor kann eine Anpassung eines Helligkeitswertes dieses Pixels spezifizieren (die Mischmaske oder der Helligkeitsanpassungsfaktor kann bei einer Granularität spezifiziert werden, die größer als ein Pixel ist, und dennoch die relevanten Informationen für jedes Pixel des Bildes oder einer Teilmenge davon bereitstellt). Der Zusammenfügungs-Parameter für dieses bestimmte Pixel kann dann durch Multiplikation des Gewichts, das den Beitrag des Pixels darstellt, mit dem Helligkeitsanpassungsfaktor erhalten werden. Dieser Zusammenfügungs-Parameter kann dann mit dem Helligkeitswert des Pixels multipliziert werden, um einen korrigierten oder angepassten Helligkeitswert zu bestimmen, der zu einem ähnlichen korrigierten oder angepassten Helligkeitswert von einem entsprechenden Pixel eines zweiten Bildes, das mit dem ersten Bild überlappt, hinzugefügt werden kann. Als ein Beispiel für das Obige können für ein bestimmtes Pixel des zusammengefügten Bildes die kombinierten Anpassungsfaktoren und Mischmasken spezifizieren, dass das korrigierte Pixel wie folgt zu bestimmen ist:
    Figure DE102020113779A1_0013
    wobei sich der tiefgestellte Index 1 auf ein Pixel eines ersten Bildes einer ersten Kamera und der tiefgestellte Index 2 auf ein Pixel eines zweiten Bildes einer zweiten Kamera bezieht, wobei das zweite Bild das erste Bild überlappt.
  • Bei einem anderen Beispiel können auf die Pixel von nur einem der Bilder Anpassungsfaktoren angewendet werden, in welchem Fall sich die obige Gleichung ändern kann zu: stitched _ brightness_value = blending_coefficient 1 brightness_adjustment_factor 1 pixel 1 _ brightness_value + blending_coefficient 2 pixel 2 _ brightness_value .
    Figure DE102020113779A1_0014
  • Bei anderen Beispielen kann der korrigierte Wert von einem Bild als finaler Pixelwert verwendet werden (ohne einen Beitrag des zweiten Bildes): stitched_brightness_value=brightness_adjustment_factor 1 pixel 1 _ brightness_value .
    Figure DE102020113779A1_0015
  • Bei noch einem anderen Beispiel kann der Pixelwert von einem Bild direkt mit dem Pixelwert von dem zweiten Bild kombiniert werden, ohne die Verwendung von Anpassungsfaktoren: stitched_brightness_value = blending_coefficient 1 pixel 1 _ brightness_value + blending_coefficient 2 pixel 2 _ brightness_value .
    Figure DE102020113779A1_0016
  • Im Allgemeinen werden die finalen Zusammenfügungs-Parameter unter Verwendung von zumindest einem der Anpassungsfaktoren und den räumlichen Mischmasken erhalten. Bei verschiedenen Ausführungsbeispielen können ähnliche Prozesse im Hinblick auf die Erzeugung der finalen Zusammenfügungs-Parameter basierend auf zumindest einem aus den Farbanpassungsfaktoren und der räumlichen Mischmasken und/oder zumindest einem der Helligkeitsanpassungsfaktoren und der räumlichen Mischmasken verfolgt werden. Irgendwelche geeigneten Variationen des obigen werden hierin in Betracht gezogen. Zum Beispiel können im Fall eines einzelnen Anpassungsfaktors pro Kamera die Zusammenfügungs-Parameter für die Pixel, zugeordnet zu einer Kamera von Interesse, auf den Wert des Anpassungsfaktors eingestellt werden, anwendbar auf diese Kamera. Als ein anderes Beispiel können die Anpassungsfaktoren von zwei überlappenden Regionen, zugeordnet zu derselben Kamera, verwendet werden, um die Zusammenfügungs-Parameter in jeder Pixelposition abhängig von den Pixelabständen von einem oder mehreren Referenzpunkten zu interpolieren.
  • Bei 312 werden die Eingabebilder unter Verwendung der Zusammenfügungs-Parameter zusammengefügt. Bei einem Ausführungsbeispiel werden die Zusammenfügungs-Parameter pixelweise auf das Bild angewendet, zugeordnet zu der Kamera von Interesse. Die zusammengefügten Pixel werden als eine Funktion von den Eingabepixelwerten und den finalen Zusammenfügungs-Parametern berechnet. Zum Beispiel wird (wie oben dargestellt) im Falle von rationalen Anpassungsfaktoren der Wert der zusammengefügten Pixel als Produkt aus dem Eingabepixelwert und den Zusammenfügungs-Parametern, zugeordnet zu dieser Pixelposition, erhalten.
  • Bei einigen Ausführungsbeispielen wird nur die Bildhelligkeit und/oder -farbe ausgewählter (z. B. jeder zweiten) Kamera angepasst, während Abschnitte der Bilder der nicht ausgewählten Kamera in dem zusammengefügten Bild umfasst sind, ohne irgendeine Anpassung der Helligkeit und/oder Farbe dieser Abschnitte. Bei anderen Ausführungsbeispielen (wie oben angedeutet) können auf Pixel von jeder der überlappenden Kameras Zusammenfügungs-Parameter angewendet werden, und die resultierenden Werte können addiert werden, um die finalen Pixelwerte zu erhalten.
  • Nachdem die Eingabebilder zusammengefügt wurden, kann das Ausgabebild im Speicher gespeichert, auf einem Monitor angezeigt, an eine andere Recheneinheit oder ein anderes Modul kommuniziert oder anderweitig genutzt werden.
  • Bei verschiedenen Ausführungsbeispielen kann der vom Multi-Kamera-Zusammenfügungs-Modul (z.B. 206) ausgeführte Ablauf abgebildete Operationen auslassen oder zusätzliche Operationen umfassen. Als ein Beispiel kann das Zusammenfügungs-Modul eine Projektionsverfeinerung durchführen, um die geometrischen Ausrichtungseinstellungen zu validieren oder zu verbessern. Da die geometrische Ausrichtung in Umgebungs-Kamerasystemen üblicherweise auf einer Kalibrierung beruht, kann die Ausrichtung im Laufe der Zeit aufgrund mechanischer Änderungen in der Befestigung der Kameras, die zu Änderungen der Kameraposition führen, ihre Genauigkeit verlieren. Bei einigen Ausführungsbeispielen kann der Prozess der Projektionsverfeinerung die geometrischen Standard-Ausrichtungseinstellungen schnell validieren und kann anschließend eine umfassendere Bildanalyse durchführen, um die geometrischen Ausrichtungseinstellungen zu korrigieren (und kann aktualisierte geometrische Ausrichtungseinstellungen für die zukünftige Verwendung speichern), bevor die Bildausrichtung durchgeführt wird. Bei einigen Ausführungsbeispielen kann der Prozess der Projektionsverfeinerung direkt an geometrisch ausgerichteten Bildern durchgeführt werden (z.B. durch das Bildverarbeitungsmodul 204) und kann die Bilder durch geometrische Transformationen verfeinern, um die finalen Projektionen zu erzeugen, die für das Zusammenfügen verwendet werden.
  • Die Projektionsverfeinerung kann in Bildern von zwei überlappenden Kameras nach einem Referenzpunkt suchen. Bei verschiedenen Ausführungsbeispielen kann der Verfeinerungsprozess irgendeine oder mehrere aus Merkmalsextraktion und Anpassung, Randdetektierung, Vorlagenanpassung, semantische Segmentierung, Objektdetektion, Bildregistrierung, trainierte Klassifizierer (maschinelles Lernen) oder andere Techniken nutzen, um adaptiv die Ähnlichkeiten in der überlappenden Region in Bildern von zwei benachbarten Kameras zu maximieren.
  • Als ein anderes Beispiel kann das Zusammenfügungs-Modul ein Verarbeiten ausführen, um Fehler zu unterdrücken, verursacht durch eines oder mehrere aus Datenausrichtung, Bildregistrierung, Merkmalsextraktion, Anpassung, und Wiederholung, Ghosting aufgrund von Bewegung und Parallaxe. Es kann auch (zusätzlich oder alternativ zu der hierin beschriebenen Mischung und photometrischen Ausrichtung) Objektsegmentierung, semantische Verarbeitung, Tiefeninformation und Multiauflösungsanalyse einsetzen, um den Bildzusammenfügungsprozess weiter zu führen oder zu verbessern.
  • 4 stellt einen Prozessor 400 gemäß bestimmten Ausführungsbeispielen dar. Prozessor 400 stellt ein System-auf-Chip (SoC; System on Chip) dar und umfasst eine Mehrzahl von zentralen Verarbeitungseinheiten (CPUs; Central Processing Units) 402A und 402B, eine Grafikverarbeitungseinheit (GPU) 404, einen Systemagenten 406, umfassend eine Bildverarbeitungseinheit (IPU) 410 und eine Anzeige-Maschine 412, Speicher 408 und eine Grafik-Maschine 414. Die oben beschriebenen Bild-Zusammenfügungs-Operationen können ganz oder teilweise auf irgendeiner der CPUs, GPUs und/oder IPUs stattfinden. Bei verschiedenen Ausführungsbeispielen können die hierin beschriebenen Bildzusammenfügungsoperationen auf GPU 404 und/oder IPU 406 implementiert werden, um eine oder mehrere aus geringerer Latenzzeit, hoher Flächen- und Leistungseffizienz, Skalierbarkeit und Anpassung für mehrere Kameraströme und unterschiedliche Ansichten zu erreichen. Gleich benannte Komponenten in 5 und die anderen FIG. können irgendwelche geeigneten Charakteristika gemeinschaftlich verwenden.
  • Eine einzelne IPU verarbeitet im Allgemeinen die Bilder mehrerer Kameras seriell; andere hierin betrachtete Architekturen können jedoch in der Lage sein, mehrere Eingangsströme parallel zu verarbeiten. Die Zwischenausgaben können nach verschiedenen Vorverarbeitungs- und Bildverarbeitungsoperationen, die zuvor in Bezug auf 2 erörtert wurden, in dem Speicher 408 (z.B. DDR oder einem anderen geeigneten Speicher) gesammelt werden, bevor sie einer Korrektur der Linsenverzerrung und geometrischer Ausrichtung unterzogen werden, um Projektionen in einem gemeinsamen Koordinatenraum und Zusammenfügen zu erzeugen, um unter Verwendung dieser Projektionen die gewünschte Ansicht zu synthetisieren. Die Korrektur der Linsenverzerrung und die geometrische Ausrichtung erfolgt üblicherweise durch blockweise Verarbeitung der Bilder mit vorbestimmten Blockabmessungen (z.B. 32×32 Pixel). Nach dieser geometrischen Transformation und möglicherweise einigen blockbasierten Filteroperationen (z.B. Schärfung und zeitliche Filterung) können die Bilder im Speicher 408 für nachfolgendes Zusammenfügen zum Kombinieren der Bilder von mehreren Kameras zu einem einzelnen Bild gespeichert werden, Dieses Bild kann einer Skalierung und Konvertierung unterzogen werden, um ein oder mehrere gewünschte Ausgabeformate und Bildauflösungen zu erzeugen, zum Beispiel für Anzeige, Speicherung, Computer Vision-Maschine, etc.
  • Bei verschiedenen Ausführungsbeispielen können zusammengefügte Bilder direkt angezeigt werden, ohne dass der Systemagent 410, der sowohl die IPU 406 als auch die Anzeige-Maschine 412 umfasst, verlassen werden muss. Dies kann den Leistungsverbrauch senken, da die Grafik-Maschine (die 3D- und Medienblöcke umfassen kann) ausgeschaltet bleiben kann. Wenn die Koordinatentransformation vollständig innerhalb der IPU 410 mit kombinierter Linsen- und geometrischer Verzerrungskorrektur und geometrischen Ausrichtungsfähigkeiten durchgeführt wird, werden die Bilddaten nur einmal neu abgetastet, was Vorteile bei der Bildqualität bereitstellt. Darüber hinaus spart das Vermeiden des Nutzens der GPU in diesem Prozess Leistung und verbessert die Latenzzeit.
  • 5 stellt eine Architektur 500 umfassend mehrere Multi-Kamera-Zusammenfügungs-Module 508 (z.B. 508A und 508B) einer Bildverarbeitungseinheit IPU 502 gemäß bestimmten Ausführungsbeispielen dar. Die mehreren Module 508 können die parallele Erzeugung mehrerer unterschiedlicher Ansichten (z.B. eine Seitenansicht und eine Umgebungs-Ansicht) ermöglichen.
  • Bei einem bestimmten Ausführungsbeispiel umfasst die IPU 502 ein Bildverarbeitungsmodul 506 zur Durchführung der Linsen- und geometrischen Verzerrungskorrektur (umfassend geometrische Ausrichtung). Die resultierenden Daten können dann in dem Speicher 504 gespeichert werden. Bei einem Ausführungsbeispiel kann der Speicher 504 ein DDR-Puffer mit voller Auflösung sein, der für die Speicherung der verarbeiteten Bilddaten bestimmt ist. Jedes der Multi-Kamera-Zusammenfügungs-Module 508 kann Schaltungsanordnungen zum Zusammenfügen (umfassend Mischen und photometrische Ausrichtung) und Nachverarbeitung (umfassend Aufbereitung) der Bilddaten aus dem Speicher 504 umfassen.
  • Die Implementierung der Zusammenfügungs-Funktionalität ausschließlich auf der IPU 502 kann aufgrund von Speicherzugriffs- (Daten-Lese-/Schreiboperationen) und Verarbeitungsbeschränkungen zu einigen Kompromissen bei der Bildqualität führen. Zum Beispiel kann der Zusammenfügungs-Prozess vereinfacht werden, um ihn für die Hardware-Implementierung auf der IPU durchführbar zu halten.
  • Basierend auf der Blockposition innerhalb des zusammengefügten Bildes können Blöcke von einer oder mehreren Kameras eingelesen und ausgegeben werden, um Mischen und/oder photometrische Ausrichtung durchzuführen. Der Zusammenfügungs-Prozess kann für unterschiedliche Projektionen und Ansichten unterschiedlich optimiert werden. Beispielsweise können für eine Vogelperspektive Bilder von Seitenkameras (z.B. 102B und 102D) dem zusammengefügten Bild zunächst zugeordnet werden, ohne dass die Daten (z.B. ohne die Farb- oder Helligkeitswerte der Pixel dieser Bilder anzupassen) im Zusammenfügungs-Block verarbeitet werden. Die von Front- und Rückkameras (z.B. 102A und 102C) erfassten Bilder können dann aus dem Speicher 504 gelesen und für Mischen und photometrische Korrektur verarbeitet werden, bevor sie dem zusammengefügten Bild zugeordnet werden.
  • Bei einem anderen Beispiel können die nicht überlappenden Abschnitte der Seitenkameras (z.B. 102B und 102D) direkt dem zusammengefügten Bild zugeordnet werden, während die überlappenden Abschnitte des zusammengefügten Bildes mit den Zusammenfügungs-Parametern angepasst und dem Ausgabebild zugeordnet werden. Nicht überlappende Abschnitte der Front- und Rückkameras (z.B. 102A und 102C) können auch direkt dem Ausgabebild zugeordnet werden, während überlappende Abschnitte mit den Zusammenfügungs-Parametern angepasst und dann mit den angepassten überlappenden Abschnitten der Seitenkameras kombiniert werden, die bereits dem zusammengefügten Bild zugeordnet sind (somit werden die überlappenden Regionen der Front- und Rückkameras mit den Daten in dem zusammengefügten Bild aus den überlappenden Regionen der Seitenkameras kombiniert). Bei noch einem weiteren Beispiel können auch nicht überlappende Abschnitte irgendeiner Kamera angepasst werden, bevor die Daten dem Ausgabebild zugeordnet werden.
  • 6 stellt eine Architektur umfassend eine IPU 602 und eine GPU 604 zum Erzeugen mehrerer zusammengefügter Bilder gemäß bestimmten Ausführungsbeispielen dar. Bei diesem Ausführungsbeispiel kann die Korrektur der Linsen- und der geometrischen Verzerrung (umfassend geometrische Ausrichtung) von einem Bildverarbeitungsmodul 606 der IPU 602 durchgeführt werden, und die Ergebnisse werden in dem Speicher 608 gespeichert, während das Multi-Kamera-Zusammenfügen (umfassend Mischen und photometrische Ausrichtung) und - Aufbereiten vollständig in der GPU 604 handgehabt wird. Beispielsweise kann das Multi-Kamera-Zusammenfügungs-Modul 612 das Multi-Kamera-Zusammenfügen durchführen, und die Bildaufbereitungsmodule 614A und 614B können jeweils eine Ansicht (Bildansichten 616A und 616B) basierend auf der im Speicher 610 gespeicherten Ausgabe des Multi-Kamera-Zusammenfügungs-Moduls 612 aufbereiten. Der Speicher 610 kann der gleiche Speicher wie 608 oder kann ein separater Speicher sein. Jeder Speicher kann ein Systemspeicher, umfassend DDR oder eine andere Art von Speicher oder ein Speicher, der für die Speicherung von Bilddaten dediziert ist, sein.
  • Während mehrfaches Lesen und Schreiben in die Speicher 608 und 610 die Performance und den Leistungsverbrauch beeinträchtigen können, bietet dieser Ansatz die Flexibilität, komplexere Implementierungen der vorgeschlagenen Zusammenfügungs-Verfahren (die zu einer besseren Bildqualität führen) und irgendeine Anzahl von Ansichten durch Hinzufügen verschiedener GPU-Aufbereitungs-Stufen zu ermöglichen. Das Zusammenfügen der Bilder auf der GPU 604 kann dazu führen, dass die Grafik-Maschine (z. B. 414) während der Zusammenfügungs-Operation eingeschaltet und während der restlichen Rahmenzeit ausgeschaltet wird, wodurch potenziell eine höhere Latenzzeit und Leistung aufgrund der GPU-Nutzung verursacht wird.
  • Bei einigen Ausführungsbeispielen kann die dargestellte Implementierung auch die Qualität der Bilder aufgrund mehrfacher Neuabtastungs-Prozesse beeinflussen, die während des Aufbereitens von dem im Speicher 610 gespeicherten zusammengefügten Basisbild angewendet werden. Um dieses Problem zu mindern, können bei einigen Ausführungsbeispielen einige der Bildaufbereitungsprozesse Skalierungs- und Konvertierungsoperationen umfassen und eine Neuabtastung für die Ansichtserzeugung ausschließen.
  • 7 stellt eine Architektur umfassend eine IPU 702, eine GPU 704, und dedizierten Speicher 706 zum Erzeugen mehrerer zusammengefügter Bildansichten 712 und 712B gemäß bestimmten Ausführungsbeispielen dar. Bei einem solchen Ausführungsbeispiel können die Verarbeitungsschritte für das Umgebungs-Kamerasystem, wie beispielsweise die Korrektur der Linsen- und geometrischen Verzerrung (umfassend geometrische Ausrichtung), das Zusammenfügen (umfassend Mischen und photometrische Ausrichtung) und die finale Bildaufbereitung von den Multi-Kamera-Zusammenfügungs-Modulen 710A und 710B durchgeführt und vollständig in der GPU gehandhabt werden (während andere Bildvorverarbeitungsschritte vom Bildverarbeitungsmodul 708 der IPU 702 durchgeführt werden können). Eine solche Implementierung kann den Leistungsverbrauch und die Latenzzeit relativ zu der in 5 beschriebenen Implementierung erhöhen, aber eine ähnliche oder verbesserte Flexibilität und Verarbeitungsqualität (diese Architektur erlaubt komplexere Versionen des Zusammenfügungs-Verfahrens) relativ zu der Architektur von 5 bieten. Die Architektur von 7 kann auch Bildqualitätsverschlechterungen aufgrund von wiederholtem Neuabtasten vermeiden, die (für zumindest einige Ansichten) in der in 6 gezeigten Architektur auftreten können.
  • Zusätzlich zu den hierin beschriebenen Architekturen werden hierin auch andere Implementierungen in Betracht gezogen. So kann sich beispielsweise die Anzahl der verwendeten Kameras mit der Fahrzeuggröße ändern (im Allgemeinen können Bilder von irgendeiner Anzahl von Kameras von überlappenden Regionen gemäß den hierin beschriebenen Techniken zusammengefügt werden). Ähnlich kann die Anzahl und Art der zu erzeugenden Ansichten abhängig von Anwendungsfällen variiert werden, wie beispielsweise Unterstützung des Fahrers (vom Fahrer bestimmte Ansichten und/oder Blickwinkel vs. automatisierte Entscheidungsfindung basierend auf Fahrmodus und -situationen, Analysen, Kopfhaltung des Fahrers etc.), Aufnahme von Ansichten für Versicherungszwecke, Verwendung von Bildern für Computer Vision oder AR/VR-basierte Unterhaltung etc.
  • Bei einigen Ausführungsbeispielen (z. B. basierend auf dem Anwendungsfall, Berechnungs- und Bildqualitätsanforderungen) kann ein Multi-Kamera-Zusammenfügungs-Modul (z. B. 206, 508, 612, 710) in zwei oder mehr Teilmodule aufgeteilt werden. Somit, anstatt mehrere Instanzen des Gesamtmoduls zu erzeugen, um mehrere Ansichten zu erzeugen, kann die Zwischenausgabe einiger der vorangehenden Teilmodule als Eingabe für mehrere Instanzen nachfolgender Teilmodule gemeinschaftlich verwendet werden. Bei einigen Ausführungsbeispielen können unterschiedliche Teilmodule unterschiedliche Parameterkonfigurationen aufweisen oder können unterschiedliche Verarbeitungsoperationen anwenden.
  • 8 stellt einen Ablauf zur Zuweisung von kombinierten Daten an ein zusammengefügtes Bild gemäß bestimmten Ausführungsbeispielen dar. Der Ablauf kann von einem Prozessor oder einer anderen geeigneten Rechenlogik ausgeführt werden. Bei 800 werden Blickwinkelinformationen identifiziert, die eine Ansicht für ein zusammengefügtes Bild definieren. Bei 802 wird zumindest ein Transformationsparameter für zumindest eine Referenzregion (z.B. basierend auf den Blickwinkelinformationen und einer Projektionsart) bestimmt. Bei 804 werden überlappende Regionen eines ersten Bildes und eines zweiten Bildes lokalisiert, um Zusammenfügungs-Parameter zu bestimmen. Bei 806 können das erste Bild und das zweite Bild unter Verwendung der Zusammenfügungs-Parameter kombiniert werden. Bei 808 können Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild zugewiesen werden. Bei verschiedenen Ausführungsbeispielen können 804, 806 und 808 basierend auf den Blickwinkelinformationen und einer Projektionsart durchgeführt werden.
  • 9-14 veranschaulichen beispielhafte Umgebungen, in denen verschiedene Aspekte der vorliegenden Offenbarung arbeiten können, oder verschiedene Komponenten, die zur Ausführung der hierin beschriebenen Operationen verwendet werden können. Zum Beispiel kann irgendeines der Module (z.B. 204, 206, 208, 210, 506, 508, 606, 612, 614, 708, 710), IPUs, GPUs oder andere geeignete Komponenten durch einen Prozessor implementiert werden, wie beispielsweise das bordeigene Verarbeitungssystem 1010, Prozessor 1300 oder eine andere geeignete Kombination einer Schaltungsanordnung (die in einigen Fällen ein computerlesbares Medium mit Anweisungen zur Ausführung verschiedener hierin beschriebener Operationen umfassen kann). Bei verschiedenen Ausführungsbeispielen können irgendeine oder mehrere der hierin beschriebenen Operationen bordeigen oder von einem oder mehreren, mit einem Fahrzeug gekoppelten Servern ausgeführt werden (verschiedene Verarbeitungsumgebungen werden nachstehend detaillierter beschrieben).
  • 9 ist eine vereinfachte Darstellung 900, die eine beispielhafte autonome Fahrumgebung zeigt. Fahrzeuge (z. B. 905, 910, 915 etc.) können mit unterschiedlichen Niveaus von Autonomes-Fahren-Fähigkeiten ausgestattet sein, die durch bordeigene Rechensysteme mit in Hardware, Firmware und/oder Software implementierter Logik erleichtert werden, um jeweilige Autonomes-Fahren-Stacks zu ermöglichen. Solche Autonomes-Fahren-Stacks können es Fahrzeugen ermöglichen, sich selbst zu steuern oder eine Fahrerassistenz bereitzustellen, um Fahrbahnen zu detektieren, von einem Punkt zum anderen zu navigieren, andere Fahrzeuge und Verkehrsteilnehmer (z. B. Fußgänger (z. B. 935), Radfahrer etc.) zu detektieren, Hindernisse und Gefahren (z. B. 920) und Straßenzustände (z. B. Verkehr, Straßenzustand, Wetterbedingungen etc.) zu detektieren und die Steuerung und Führung des Fahrzeugs entsprechend anzupassen.
  • Bei einigen Implementierungen können Fahrzeuge (z. B. 905, 910, 915) innerhalb der Umgebung „verbunden“ sein, dadurch, dass die bordeigenen Rechensysteme Kommunikationsmodule zur Unterstützung der drahtlosen Kommunikation umfassen unter Verwendung einer oder mehrerer Technologien (z.B. Institute of Electrical and Electronics Engineers (IEEE) 802.11-Kommunikation (z. B. WiFi), zellulare Datennetzwerke (z. B. 3GPP-Netzwerke (3rd Generation Partnership Project; Partnerschaftsprojekt der 3. Generation), Global System for Mobile Communication (GSM), General Packet Radio Service, Codemultiplexzugriff (CDMA; Code Division Multiple Access) etc.), Bluetooth, Millimeterwellen (mmWave), ZigBee, Z-Wave etc.), die es den bordeigenen Rechensystemen ermöglichen, sich mit anderen Rechensystemen zu verbinden und mit ihnen zu kommunizieren, z. B. den bordeigenen Rechensystemen anderer Fahrzeuge oder der unterstützenden Infrastruktur. Beispielsweise können bei einigen Implementierungen Fahrzeuge (z. B. 905, 910, 915) mit Rechensystemen kommunizieren, die Sensoren, Daten und Dienste zur Unterstützung der Autonomes-Fahren-Fähigkeiten der Fahrzeuge bereitstellen. Zum Beispiel, wie in dem veranschaulichenden Beispiel von 9 gezeigt, können unterstützende Drohnen 980 (z. B. boden- und/oder luftgestützt), straßenseitige Rechenvorrichtungen (z. B. 940), verschiedene externe (zu dem Fahrzeug oder „fremde“) Sensorvorrichtungen (z. B. 960, 965, 970, 975 etc.) und andere Vorrichtungen als autonome Fahrinfrastruktur bereitgestellt werden, getrennt von den auf den Fahrzeugen (z.B. 905, 910, 915) implementierten Rechensystemen, Sensoren und Logiken, um u.a. die durch die Fahrzeuge bereitgestellten autonomen Fahrergebnisse zu unterstützen und zu verbessern. Fahrzeuge können auch mit anderen verbundenen Fahrzeugen über drahtlose Kommunikationskanäle kommunizieren, um Daten gemeinschaftlich zu verwenden und Bewegungen innerhalb einer autonomen Fahrumgebung zu koordinieren, unter anderem beispielhafte Kommunikationen.
  • Wie bei dem Beispiel von 9 dargestellt, kann eine autonome Fahrinfrastruktur eine Mehrzahl unterschiedlicher Systeme einbeziehen. Solche Systeme können je nach Standort variieren, wobei besser ausgebaute Straßen (z. B. Straßen, die von bestimmten Gemeinden oder Mautbehörden gesteuert werden, Straßen in städtischen Gebieten, Straßenabschnitte, die bekanntermaßen für autonome Fahrzeuge problematisch sind etc.) eine größere Anzahl oder fortschrittlichere unterstützende Infrastrukturvorrichtungen aufweisen als andere Straßenabschnitte etc. Beispielsweise können zusätzliche Sensorvorrichtungen (z. B. 960, 965, 970, 975) bereitgestellt sein, die Sensoren zur Beobachtung von Straßenabschnitten und Fahrzeugen umfassen, die sich innerhalb der Umgebung bewegen und entsprechende Daten erzeugen, die die Beobachtungen der Sensoren beschreiben oder verkörpern. Als Beispiele können Sensorvorrichtungen u.a. in die Fahrbahn selbst (z. B. Sensor 960), auf straßenseitiger oder Überkopf-Beschilderung (z. B. Sensor 965 auf dem Schild 925), in Sensoren (z. B. 970, 975), die an elektronischen Vorrichtungen oder Einrichtungen am Straßenrand (z. B. Ampeln (z. B. 930), elektronischen Verkehrsschildern, elektronischen Reklametafeln etc.) angebracht sind, in dedizierte Einheiten am Straßenrand (z. B. 940) eingebettet sein. Sensorvorrichtungen können auch Kommunikationsfähigkeiten aufweisen, um ihre gesammelten Sensordaten direkt an angeschlossene Fahrzeuge in der Nähe oder an nebel- oder wolkenbasierte Rechensysteme (z. B. 940, 950) zu übermitteln. Fahrzeuge können Sensordaten erhalten, die von externen Sensorvorrichtungen (z. B. 960, 965, 970, 975, 980) gesammelt wurden, oder Daten, die Beobachtungen oder Empfehlungen umfassen, die von anderen Systemen (z. B. 940, 950) basierend auf Sensordaten von diesen Sensorvorrichtungen (z. B. 960, 965, 970, 975, 980) erzeugt wurden, und diese Daten bei der Sensorfusion, Inferenz, Bahnplanung und anderen Aufgaben verwenden, die von dem bordeigenen autonomen Fahrsystem ausgeführt werden. In einigen Fällen können solche fremden Sensoren und Sensordaten tatsächlich innerhalb des Fahrzeugs sein, z. B. in Form eines an dem Fahrzeug angebrachten Nachrüstmarkt-Sensors, einer personalen Rechenvorrichtung (z. B. Smartphone, tragbare Vorrichtung etc.), das von den Fahrzeuginsassen mitgeführt oder getragen wird, etc. Andere Akteure im Straßenverkehr, umfassend Fußgänger, Fahrräder, Drohnen, elektronische Roller etc., können ebenfalls mit Sensoren bereitgestellt sein oder Sensoren tragen, um Sensordaten zu erzeugen, die eine autonome Fahrumgebung beschreiben, die u. a. von autonomen Fahrzeugen, wolken- oder nebelbasierten Unterstützungssystemen (z. B. 940, 950), anderen Sensorvorrichtungen (z. B. 960, 965, 970, 975, 980) verwendet und verbraucht werden können.
  • Da autonome Fahrzeugsysteme unterschiedliche Grade an Funktionalität und Ausgereiftheit aufweisen können, kann eine unterstützende Infrastruktur herangezogen werden, um nicht nur die Erfassungsfähigkeiten einiger Fahrzeuge, sondern auch die Computer- und Maschinelles-Lernen-Funktionalität, die die autonome Fahrfunktionalität einiger Fahrzeuge ermöglicht, zu ergänzen. Beispielsweise können Rechenressourcen und autonome Fahrlogik, die verwendet werden, um Maschinelles-Lernen-Modelle-Training und die Verwendung solcher Maschinelles-Lernen-Modelle zu ermöglichen, auf den bordeigenen Rechensystemen ganz oder teilweise auf sowohl den bordeigenen Systemen als auch einigen externen Systemen (z.B. 940, 950) bereitgestellt werden. Beispielsweise kann ein verbundenes Fahrzeug mit straßenseitigen Einheiten, Randsystemen oder wolkenbasierten Vorrichtungen (z.B. 940) kommunizieren, die sich lokal auf einem bestimmten Fahrbahnsegment befinden, wobei solche Vorrichtungen (z.B. 940) in der Lage sind, Daten bereitzustellen (z.B. von lokalen Sensoren aggregierte Sensordaten (z. B. 960, 965, 970, 975, 980) oder Daten, die von Sensoren anderer Fahrzeuge gemeldet werden), Berechnungen (als Dienst) zu Daten auszuführen, die von einem Fahrzeug bereitgestellt werden, um die fahrzeugeigenen Fähigkeiten zu ergänzen und/oder Informationen an vorbeifahrende oder sich nähernde Fahrzeuge zu senden (z.B. basierend auf Sensordaten, die an der Vorrichtung 940 oder von Sensorvorrichtungen in der Nähe gesammelt wurden etc.). Ein verbundenes Fahrzeug (z. B. 905, 910, 915) kann auch oder stattdessen mit Cloud-basierten Rechensystemen (z. B. 950) kommunizieren, die ähnliche Speicher-, Erfassungs- und Rechen-Ressourcen bereitstellen können, um die an dem Fahrzeug Verfügbaren zu verbessern. Beispielsweise kann ein Cloud-basiertes System (z. B. 950) Sensordaten von einer Mehrzahl von Vorrichtungen an einem oder mehreren Orten sammeln und diese Daten nutzen, um Maschinelles-Lernen-Modelle zu erstellen und/oder zu trainieren, die an dem Cloud-basierten System verwendet werden können (um Ergebnisse an verschiedene Fahrzeuge (z. B. 905, 910, 915) in Kommunikation mit dem Cloud-basierten System 950 bereitzustellen, oder um sie an Fahrzeuge zur Verwendung durch ihre bordeigenen Systeme zu senden, neben anderen beispielhaften Implementierungen. Zugangspunkte (z. B. 945), wie z. B. Mobilfunkmasten, straßenseitige Einheiten, Netzzugangspunkte, die an verschiedenen Fahrbahninfrastrukturen angebracht sind, Zugangspunkte, die von benachbarten Fahrzeugen oder Gebäuden bereitgestellt werden, und andere Zugangspunkte können innerhalb einer Umgebung bereitgestellt werden und verwendet werden, um die Kommunikation über ein oder mehrere lokale oder Weitbereich-Netzwerke (z. B. 955) zwischen cloud-basierten Systemen (z. B. 950) und verschiedenen Fahrzeugen (z. B. 905, 910, 915) zu ermöglichen. Durch solche Infrastruktur- und Rechensysteme wird darauf hingewiesen, dass die hierin erörterten Beispiele, Merkmale und Lösungen vollständig von einem oder mehreren solcher bordeigenen Rechensysteme, nebel-basierten oder Edge-Computing-Vorrichtungen oder Cloud-basierten Rechensysteme oder von Kombinationen des Vorgenannten durch Kommunikation und Kooperation zwischen den Systemen ausgeführt werden können.
  • Im Allgemeinen können „Server“, „Clients“, „Rechenvorrichtungen“, „Netzwerkelemente“, „Hosts“, „Plattformen“, „Sensorvorrichtungen“, „Edge-Vorrichtung“, „autonome Fahrsysteme“, „autonome Fahrzeuge“, „nebelbasiertes System“, „cloud-basiertes System“ und „Systeme“ im Allgemeinen etc., die hierin erörtert werden, elektronische Rechenvorrichtungen umfassen, die wirksam sind, um einer autonomen Fahrumgebung zugeordnete Daten und Informationen zu empfangen, zu senden, zu verarbeiten, zu speichern oder zu verwalten. Gemäß Verwendung in diesem Dokument soll der Begriff „Computer“, „Prozessor“, „Prozessorvorrichtung“ oder „Verarbeitungsvorrichtung“ irgendeine geeignete Verarbeitungsvorrichtung umfassen, umfassend u. a. Zentralverarbeitungseinheiten (CPUs), graphische Verarbeitungseinheiten (GPUs), anwendungsspezifische integrierte Schaltungen (ASICs; application specific integrated circuits), feldprogrammierbare Gate-Arrays (FPGAs; field programmable gate arrays), digitale Signalprozessoren (DSPs; digital signal processors), Tensor-Prozessoren und andere Matrix-Arithmetikprozessoren. Beispielsweise können Elemente, die als einzelne Vorrichtungen innerhalb der Umgebung gezeigt werden, unter Verwendung einer Mehrzahl von Rechenvorrichtungen und Prozessoren implementiert werden, wie z. B. Server-Pools, die mehrere Server-Computer umfassen. Ferner können irgendwelche, alle oder einige der Rechenvorrichtungen angepasst werden, um irgendein Betriebssystem ausführen zu können, umfassend Linux, UNIX, Microsoft Windows, Apple OS, Apple iOS, Google Android, Windows Server etc., sowie virtuelle Maschinen, die angepasst sind, um die Ausführung eines bestimmten Betriebssystems zu virtualisieren, umfassend angepasste und proprietäre Betriebssysteme.
  • Irgendwelche von den Abläufen, Verfahren, Prozessen (oder Abschnitten davon) oder Funktionalität von irgendwelchen der verschiedenen Komponenten, die hierin beschrieben oder in den FIG. dargestellt sind, können durch irgendeine geeignete Rechenlogik, wie z.B. ein oder mehrere Module, Maschinen, Blöcke, Einheiten, Modelle, Systeme oder andere geeignete Rechenlogik, durchgeführt werden. Der Verweis hierin auf ein „Modul“, eine „Maschine“, einen „Block“, eine „Einheit“, ein „Modell“, ein „System“ oder eine „Logik“ kann sich auf Hardware, Firmware, Software und/oder Kombinationen von jedem beziehen, um eine oder mehrere Funktionen auszuführen. Als ein Beispiel kann ein Modul, eine Maschine, ein Block, eine Einheit, ein Modell, ein System oder eine Logik eine oder mehrere Hardwarekomponenten umfassen, wie beispielsweise einen Mikrocontroller oder Prozessor, zugeordnet zu einem nichtflüchtigen Medium, um Code zu speichern, der angepasst ist, um durch den Mikrocontroller oder Prozessor ausgeführt zu werden. Daher kann sich der Bezug auf ein Modul, eine Maschine, einen Block, eine Einheit, ein Modell, ein System oder eine Logik bei einem Ausführungsbeispiel auf Hardware beziehen, die spezifisch ausgebildet ist, um den Code, der auf einem nichtflüchtigen Medium zu halten ist, zu erkennen und/oder auszuführen. Ferner bezieht sich bei einem anderen Ausführungsbeispiel die Verwendung von Modul, Maschine, Block, Einheit, Modell, System oder Logik auf das nichtflüchtige Medium, umfassend den Code, der spezifisch angepasst ist, um durch den Mikrocontroller oder Prozessor ausgeführt zu werden, um vorbestimmte Operationen durchzuführen. Und wie abgeleitet werden kann, kann sich bei einem wiederum anderen Ausführungsbeispiel ein Modul, eine Maschine, ein Block, eine Einheit, ein Modell, ein System oder eine Logik auf die Kombination der Hardware und des nichtflüchtigen Mediums beziehen. Bei verschiedenen Ausführungsbeispielen kann ein Modul, eine Maschine, ein Block, eine Einheit, ein Modell, ein System oder eine Logik einen Mikroprozessor oder ein anderes Verarbeitungselement, das zur Ausführung von Softwareanweisungen betrieben werden kann, diskrete Logik, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC), eine programmierte Logikvorrichtung, wie beispielsweise ein feld-programmierbares Gate-Array (FPGA), ein Speicherbauelement, das Anweisungen umfasst, Kombinationen von Logikvorrichtungen (z.B. wie sie auf einer gedruckten Schaltungsplatine zu finden wären) oder andere geeignete Hardware und/oder Software umfassen. Ein Modul, eine Maschine, ein Block, eine Einheit, ein Modell, ein System oder eine Logik kann ein oder mehrere Gates oder andere Schaltungskomponenten umfassen, die z.B. durch Transistoren implementiert sein können. Bei einigen Ausführungsbeispielen kann ein Modul, eine Maschine, ein Block, eine Einheit, ein Modell, ein System oder eine Logik vollständig als Software verkörpert sein. Software kann als ein Software-Package, Code, Anweisungen, Anweisungssätze und/oder Daten, aufgezeichnet auf einem nichtflüchtigen computerlesbaren Speichermedium, verkörpert sein. Firmware kann als Code, Anweisungen oder Anweisungssätze und/oder Daten, die in Speicherbauelementen hartcodiert (z. B. nichtflüchtig) sind, verkörpert sein. Ferner variieren Logikgrenzen, die als getrennt dargestellt sind, gewöhnlich und überlappen potenziell. Zum Beispiel können ein erstes und ein zweites Modul (oder mehrere Maschinen, Blöcke, Einheiten, Modelle, Systeme oder Logiken) Hardware, Software, Firmware oder eine Kombination davon gemeinschaftlich verwenden, während potenziell eine gewisse unabhängige Hardware, Software oder Firmware beibehalten wird.
  • Bezugnehmend nun auf 10 ist ein vereinfachtes Blockdiagramm 1000 gezeigt, das eine beispielhafte Implementierung eines Fahrzeugs (und eines entsprechenden bordeigenen Rechensystems) 905 veranschaulicht, das mit einer autonomen Fahrfunktionalität ausgestattet ist. Bei einem Beispiel kann ein Fahrzeug 905 mit einem oder mehreren Prozessoren 1102 ausgestattet sein, wie beispielsweise u. a. Zentralverarbeitungseinheiten (CPUs), graphische Verarbeitungseinheiten (GPUs), anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Gate-Arrays (FPGAs), digitale Signalprozessoren (DSPs), Tensor-Prozessoren und andere Matrix-Arithmetikprozessoren. Solche Prozessoren 1002 können mit Hardware-Beschleunigungssensor-Vorrichtungen (z. B. 1004) gekoppelt sein oder dieselben integriert aufweisen, die mit Hardware bereitgestellt sein können, um bestimmte Verarbeitungs- und Speicherzugriffsfunktionen zu beschleunigen, wie z. B. u. a. Funktionen im Zusammenhang mit Maschinelles-Lernen-Inferenz oder -Training, Verarbeitung bestimmter Sensordaten (z. B. Kamerabilddaten, LIDAR-Punktewolken etc.), Ausführung bestimmter arithmetischer Funktionen betreffend das autonome Fahren (z. B. Matrixarithmetik, Faltungsarithmetik etc.). Ein oder mehrere Speicherelemente (z. B. 1006) können bereitgestellt sein, um maschinenausführbare Anweisungen zu speichern, die alle oder einen Abschnitt von irgendeinem der Module oder Teilmodule eines auf dem Fahrzeug implementierten Autonomes-Fahren-Stack implementieren, sowie um Maschinelles-Lernen-Modelle (z. B. 1056), Sensordaten (z. B. 1058) und andere Daten zu speichern, die in Verbindung mit der von dem Fahrzeug auszuführenden, autonomen Fahrfunktionalität empfangen, erzeugt oder verwendet werden (oder in Verbindung mit den hierin erörterten Beispielen und Lösungen verwendet werden). Es können auch verschiedene Kommunikationsmodule (z. B. 1012) bereitgestellt werden, die in einer Hardware-Schaltungsanordnung und/oder Software implementiert sind, um Kommunikationsfähigkeiten zu implementieren, die von dem Fahrzeugsystem verwendet werden, um mit anderen fremden Rechensystemen über einen oder mehrere Netzwerkkanäle, die eine oder mehrere Netzwerkkommunikationstechnologien einsetzen, zu kommunizieren. Diese verschiedenen Prozessoren 1002, Beschleunigungssensoren 1004, Speichervorrichtungen 1006 und Netzwerkkommunikationsmodule 1012 können auf dem Fahrzeugsystem durch eine oder mehrere Verbindungsstrukturen oder -verknüpfungen verbunden werden (z. B. 1008), wie z. B. Strukturen, die Technologien wie z. B. u. a. Peripheral Component Interconnect Express (PCIe), Ethernet, OpenCAPI™, Gen-Z™, UPI, Universal Serial Bus, (USB), Cache Coherent Interconnect for Accelerators (CCIX™), Advanced Micro Device™'s (AMD™) Infinity™, Common Communication Interface (CCI), or Qualcomm™'s Centriq™ Verbindung nutzen.
  • Um mit dem Beispiel von 10 fortzufahren, kann ein beispielhaftes Fahrzeug (und ein entsprechendes bordeigenes Rechensystem) 905 ein bordeigenes Verarbeitungssystem 1010, Fahrsteuerungen (z. B. 1020), Sensoren (z. B. 1025) und Benutzer-/Insassen-Schnittstelle(n) (z. B. 1030) umfassen, neben anderen beispielhaften Modulen, die die Funktionalität des autonomen Fahrzeugs in Hardware und/oder Software implementieren. Beispielsweise kann ein bordeigenes Verarbeitungssystem 1010 bei einigen Implementierungen den gesamten oder einen Abschnitt eines Autonomes-Fahren-Stacks und Prozessablaufs implementieren (z. B. wie bei dem Beispiel von 5 gezeigt und erörtert). Eine Maschinelles-Lernen-Maschine 1032 kann bereitgestellt werden, um verschiedene an dem Fahrzeug 905 bereitgestellte Maschinelles-Lernen-Modelle (z. B. 1056) in Verbindung mit einer oder mehreren autonomen Funktionen und Merkmalen zu nutzen, die an dem oder für das Fahrzeug bereitgestellt und implementiert werden, wie in den Beispielen hierin erörtert wird. Solche Maschinelles-Lernen-Modelle 1056 können Modelle für künstliche neuronale Netzwerke, faltende neuronale Netzwerke, auf Entscheidungsbäumen basierende Modelle, Support-Vektor-Maschinen (SVMs), Bayessche Modelle, Deep-Learning-Modelle und andere beispielhafte Modelle umfassen. Bei einigen Implementierungen kann eine beispielhafte Maschinelles-Lernen-Maschine 1032 eine oder mehrere Modell-Trainer-Maschinen 1052 umfassen, um an dem Training (z. B. Erstausbildung, Weiterbildung etc.) eines oder mehrerer der Maschinelles-Lernen-Modelle 1056 teilzunehmen. Eine oder mehrere Inferenz-Maschinen 1054 können auch bereitgestellt sein, um die trainierten Maschinelles-Lernen-Modelle 1056 zu nutzen, um verschiedene Rückschlüsse, Vorhersagen, Klassifizierungen und andere Ergebnisse herzuleiten.
  • Die an dem Fahrzeug bereitgestellten Maschinelles-Lernen-Maschine(n) 1032 kann/können verwendet werden, um Ergebnisse für die Verwendung durch andere logische Komponenten und Module des bordeigenen Verarbeitungssystems 1010 zu unterstützen und bereitzustellen, die einen Autonomes-Fahren-Stack und andere mit dem autonomen Fahren zusammenhängende Merkmale implementieren. So kann z.B. ein Datensammlungsmodul 1034 mit einer Logik bereitgestellt sein, um Quellen zu bestimmen, aus denen Daten gesammelt werden sollen (z. B. für Eingaben in das Training oder die Nutzung von verschiedenen von dem Fahrzeug verwendeten Maschinelles-Lernen-Modelle 1056). So können z. B. die bestimmte Quelle (z. B. interne Sensoren (z. B. 1025) oder fremde Quellen (z. B. 915, 940, 950, 980, 1015 etc.) ausgewählt werden, ebenso wie die Häufigkeit und Übertragungstreue, mit der die Daten abgetastet werden. In einigen Fällen können solche Selektionen und Konfigurationen zumindest teilweise autonom durch das Datensammlungsmodul 1034 unter Verwendung eines oder mehrerer entsprechender Maschinelles-Lernen-Modelle vorgenommen werden (z. B. um Daten gegebenenfalls unter Berücksichtigung eines bestimmten detektierten Szenarios zu sammeln).
  • Ein Sensorfusionsmodul 1036 kann auch verwendet werden, um die Verwendung und Verarbeitung der verschiedenen Sensoreingaben zu regeln, die von der Maschinelles-Lernen-Maschine 1032 und anderen Modulen (z. B. 1038, 1040, 1042, 1044, 1046 etc.) des bordeigenen Verarbeitungssystems genutzt werden. Es können ein oder mehrere Sensorfusionsmodule (z. B. 1036) bereitgestellt werden, die eine Ausgabe von mehreren Sensordatenquellen (z. B. am Fahrzeug oder fahrzeugextern) herleiten können. Die Quellen können homogene oder heterogene Arten von Quellen sein (z. B. mehrere Eingaben von mehreren Instanzen eines gemeinsamen Sensortyps oder von Instanzen mehrerer unterschiedlicher Sensortypen). Ein beispielhaftes Sensorfusionsmodul 1036 kann direkte Fusion, indirekte Fusion, neben anderen beispielhaften Sensorfusionstechniken, anwenden. Die Ausgabe der Sensorfusion kann in einigen Fällen als Eingabe (zusammen mit potenziell zusätzlichen Eingaben) einem anderen Modul des bordeigenen Verarbeitungssystems und/oder einem oder mehreren Maschinelles-Lernen-Modellen in Verbindung mit der Bereitstellung einer autonomen Fahrfunktionalität oder einer anderen Funktionalität, wie beispielsweise bei den hierin erörterten beispielhaften Lösungen beschrieben, zugeführt werden.
  • Bei einigen Beispielen kann eine Wahrnehmungs-Maschine 1038 bereitgestellt sein, die als Eingaben verschiedene Sensordaten (z. B. 1058) nimmt, umfassend Daten, in einigen Fällen, von Fremdquellen und/oder Sensorfusionsmodul 1036, um eine Objektdetektion und/oder - nachverfolgung von detektierten Objekten auszuführen, unter anderem Beispielfunktionen, die der autonomen Wahrnehmung der von dem Fahrzeug 905 angetroffenen (oder anzutreffenden) Umgebung entsprechen. Die Wahrnehmungs-Maschine 1038 kann die Objekterkennung von Sensordateneingaben unter Verwendung von tiefem Lernen ausführen, z. B. durch ein oder mehrere faltende neuronale Netze und andere Maschinelles-Lernen-Modelle 1056. Die Objektnachverfolgung kann auch ausgeführt werden, um anhand von Sensordateneingaben autonom zu schätzen, ob sich ein Objekt bewegt und, wenn ja, entlang welcher Trajektorie. Zum Beispiel kann eine Wahrnehmungs-Maschine 1038, nachdem ein gegebenes Objekt erkannt wurde, detektieren, wie sich das gegebene Objekt im Verhältnis zu dem Fahrzeug bewegt. Eine solche Funktionalität kann z. B. verwendet werden, um Objekte, wie beispielsweise andere Fahrzeuge, Fußgänger, Wildtiere, Radfahrer etc., zu detektieren, die sich in einer Umgebung bewegen, die neben anderen beispielhaften Verwendungen die Bahn des Fahrzeugs auf einer Fahrbahn beeinflussen können.
  • Eine Lokalisierungs-Maschine 1040 kann bei einigen Implementierungen auch in einem bordeigenen Verarbeitungssystem 1010 umfasst sein. In einigen Fällen kann die Lokalisierungs-Maschine 1040 als eine Teilkomponente einer Wahrnehmungs-Maschine 1038 implementiert werden. Die Lokalisierungs-Maschine 1040 kann auch ein oder mehrere Maschinelles-Lernen-Modelle 1056 und die Sensorfusion (z. B. von LIDAR- und GPS-Daten etc.) nutzen, um einen hochzuverlässigen Standort des Fahrzeugs und den Raum, den es in einem gegebenen physischen Raum (oder „Umgebung“) einnimmt, zu bestimmen.
  • Ein Fahrzeug 905 kann ferner einen Bahnplaner 1042 umfassen, der die Ergebnisse verschiedener anderer Module wie beispielsweise u. a. Datensammlung (z. B. 1034), Sensorfusion (z. B. 1036), Wahrnehmungs-Maschine (z. B. 1038) und Lokalisierungs-Maschine (z. B. 1040) nutzen kann, (z.B. Empfehlungs-Maschine 1044), um einen Bahnplan und/oder Aktionsplan für das Fahrzeug zu bestimmen, der von Fahrsteuerungen (z. B. 1020) verwendet werden kann, um das Fahren des Fahrzeugs 905 innerhalb einer Umgebung zu steuern. Zum Beispiel kann ein Bahnplaner 1042 diese Eingaben und ein oder mehrere maschinelle Lernmodelle nutzen, um Wahrscheinlichkeiten verschiedener Ereignisse innerhalb einer Fahrumgebung zu bestimmen, um effektive Echtzeitpläne für das Handeln innerhalb der Umgebung zu bestimmen.
  • Bei einigen Implementierungen kann das Fahrzeug 905 eine oder mehrere Empfehlungs-Maschinen 1044 umfassen, um verschiedene Empfehlungen aus Sensordaten zu erzeugen, die von den eigenen Sensoren des Fahrzeugs 905 (z. B. 1025) sowie aus Sensordaten von Fremdsensoren (z. B. Sensorvorrichtungen 915, 980, 1015 etc.) erzeugt werden. Einige Empfehlungen können durch die Empfehlungs-Maschine 1044 bestimmt werden, die als Eingaben an andere Komponenten des Autonomes-Fahren-Stacks des Fahrzeugs bereitgestellt werden können, um von diesen Komponenten vorgenommene Bestimmungen zu beeinflussen. Zum Beispiel kann eine Empfehlung bestimmt werden, die, wenn sie von einem Bahnplaner 1042 berücksichtigt wird, den Bahnplaner 1042 dazu veranlasst, von Entscheidungen oder Plänen abzuweichen, die er ansonsten normalerweise bestimmen würde, wäre es nicht für die Empfehlung. Empfehlungen können auch von Empfehlungs-Maschinen (z. B. 1044) basierend auf Überlegungen zu Insassenkomfort und - erfahrung erzeugt werden. In einigen Fällen können Innenraummerkmale innerhalb des Fahrzeugs basierend auf diesen Empfehlungen (die aus Sensordaten (z. B. 1058) bestimmt werden, die von den Sensoren des Fahrzeugs und/oder Fremdsensoren etc. erfasst werden) vorausschauend und autonom manipuliert werden können.
  • Wie vorstehend eingeführt, können einige Fahrzeugimplementierungen Benutzer-/Insassen-Erfahrungs-Maschinen (z. B. 1046) umfassen, die Sensordaten und Ausgaben anderer Module innerhalb des Autonomes-Fahren-Stacks des Fahrzeugs nutzen können, um Fahrmanöver und Änderungen der Kabinenumgebung des Fahrzeugs zu veranlassen, um die Erfahrung der Insassen innerhalb des Fahrzeugs basierend auf den von den Sensordaten (z. B. 1058) erfassten Beobachtungen zu verbessern. In einigen Fällen können Aspekte der Benutzerschnittstellen (z. B. 1030), die auf dem Fahrzeug bereitgestellt werden, um den Benutzern die Interaktion mit dem Fahrzeug und seinem autonomen Fahrsystem zu ermöglichen, verbessert werden. In einigen Fällen können Informationspräsentationen erzeugt und durch Benutzeranzeigen (z. B. Audio-, visuelle und/oder taktile Präsentationen) bereitgestellt werden, um zu helfen, die Insassenerfahrungen innerhalb eines Fahrzeugs (z. B. 905) neben anderen beispielhaften Verwendungen zu beeinflussen und zu verbessern.
  • In einigen Fällen kann auch ein Systemverwalter 1050 bereitgestellt sein, der die von verschiedenen Sensoren an dem Fahrzeug gesammelten Informationen überwacht, um Probleme betreffend die Performance des autonomen Fahrsystems eines Fahrzeugs zu detektieren. So können z. B. Rechenfehler, Sensorausfälle und -probleme, Verfügbarkeit und Qualität der Kommunikationskanäle (die z. B. über die Kommunikationsmodule 1012 bereitgestellt werden), Fahrzeugsystemüberprüfungen (z. B. Probleme betreffend den Motor, das Getriebe, die Batterie, das Kühlsystem, das elektrische System, die Reifen etc.) oder andere Betriebsereignisse von dem Systemverwalter 1050 detektiert werden. Solche Probleme können in den von dem Systemverwalter 1050 erzeugten Systemberichtdaten identifiziert werden, die in einigen Fällen als Eingaben für die Maschinelles-Lernen-Modelle 1056 und zugehörige Autonomes-Fahren-Module (z. B. 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046 etc.) verwendet werden können, um zu ermöglichen, dass die Fahrzeugsystem-Gesundheit und -Probleme zusammen mit anderen Informationen, die in den Sensordaten 1058 in der autonomen Fahrfunktionalität des Fahrzeugs 905 gesammelt werden, ebenfalls berücksichtigt werden können.
  • Bei einigen Implementierungen kann ein Autonomes-Fahren-Stack eines Fahrzeugs 905 mit den Fahrsteuerungen 1020 gekoppelt sein, um die Fahrweise des Fahrzeugs zu beeinflussen, umfassend u. a. Lenkungssteuerungen (z. B. 1060), Gaspedal-/Drosselklappen-Steuerungen (z. B. 1062), Bremssteuerungen (z. B. 1064), Signalsteuerungen (z. B. 1066). In einigen Fällen kann ein Fahrzeug auch ganz oder teilweise basierend auf Benutzereingaben gesteuert werden. Benutzerschnittstellen (z. B. 1030) können beispielsweise Fahrsteuerungen umfassen (z. B. ein physisches oder virtuelles Lenkrad, Gaspedal, Bremsen, Kupplung etc.), die es einem menschlichen Fahrer ermöglichen, die Kontrolle über das autonome Fahrsystem zu übernehmen (z. B. bei einer Übergabe oder nach einer Fahrerassistenz-Aktion). Andere Sensoren können verwendet werden, um Benutzer/Insassen-Eingaben zu akzeptieren, wie beispielsweise Sprachdetektion 1092, Gestendetektionskameras 1094 und andere Beispiele. Benutzerschnittstellen (z. B. 1030) können die Wünsche und Absichten der Insassen-Benutzer erfassen, und der Autonomes-Fahren-Stack des Fahrzeugs 905 kann diese als zusätzliche Eingaben bei der Steuerung des Fahrens des Fahrzeugs berücksichtigen (z. B. Fahrsteuerungen 1020). Bei einigen Implementierungen können die Fahrsteuerungen von externen Rechensystemen gesteuert werden, z. B. in Fällen, in denen ein Insasse eine externe Vorrichtung (z. B. ein Smartphone oder Tablet) verwendet, um die Fahrtrichtung oder die Steuerung bereitzustellen, oder in Fällen eines ferngesteuerten Valet-Service, in denen ein externer Fahrer oder ein externes System die Steuerung des Fahrzeugs übernimmt (z. B. basierend auf einem Notfallereignis), neben anderen beispielhaften Implementierungen.
  • Wie vorstehend erörtert, kann der Autonomes-Fahren-Stack eines Fahrzeugs eine Mehrzahl von Sensordaten (z. B. 1058) nutzen, die von verschiedenen, an dem und außerhalb des Fahrzeugs bereitgestellten Sensoren erzeugt werden. Beispielsweise kann ein Fahrzeug 905 über ein Array von Sensoren 1025 verfügen, um verschiedene Informationen über das Äußere des Fahrzeugs und die umgebende Umgebung, den Fahrzeugsystemzustand, die Bedingungen innerhalb des Fahrzeugs und andere Informationen zu sammeln, die von den Modulen des Verarbeitungssystems 1010 des Fahrzeugs verwendet werden können. Solche Sensoren 1025 können z. B. neben anderen Beispielsensoren Globale Positionierungs- (GPS; global positioning ) Sensoren 1068, Licht- und Abstandsmessungs- (LiDAR-; Light Detection and Ranging) Sensoren 1070, zweidimensionale (2D-) Kameras 1072, dreidimensionale (3D-) oder Stereo-Kameras 1074, akustische Sensoren 1076, Inertiale-Messeinheiten- (IMU-; Inertial Measurement Unit) Sensoren 1078, thermische Sensoren 1080, Ultraschall-Sensoren 1082, Bio-Sensoren 1084 (z. B. Gesichtserkennung, Spracherkennung, Herzfrequenzsensoren, Körpertemperatursensoren, Emotionsdetektionssensoren etc.), Radarsensoren 1086, Wettersensoren (nicht gezeigt) umfassen. Die Sensordaten 1058 können auch (oder stattdessen) von Sensoren erzeugt werden, die nicht integral mit dem Fahrzeug gekoppelt sind, umfassend Sensoren an anderen Fahrzeugen (z. B. 915) (die über Fahrzeug-zu-Fahrzeug-Kommunikationen oder andere Techniken an das Fahrzeug 905 kommuniziert werden können), Sensoren an bodengestützten oder Flug-Drohnen 980, Sensoren von Benutzervorrichtungen 1015 (z. B. ein Smartphone oder eine tragbare Vorrichtung), die von menschlichen Benutzern innerhalb oder außerhalb des Fahrzeugs 905 getragen werden, und Sensoren, die an anderen straßenseitigen Elementen befestigt oder mit diesen versehen sind, wie z. B. einer straßenseitigen Einheit (z.B. 940), einem Straßenschild, einer Ampel, einer Straßenbeleuchtung etc. Sensordaten von solchen fremden Sensorvorrichtungen können direkt von den Sensorvorrichtungen an das Fahrzeug bereitgestellt werden, oder sie können durch Datenaggregationsvorrichtungen oder als Ergebnisse, die basierend auf diesen Sensoren von anderen Rechensystemen (z. B. 940, 950) erzeugt werden, bereitgestellt werden, u. a. beispielhaften Implementierungen.
  • Bei einigen Implementierungen kann ein autonomes Fahrzeugsystem 905 mit Informationen und Diensten, die von anderen Rechensystemen bereitgestellt werden, eine Schnittstelle bilden und diese nutzen, um die autonome Fahrfunktionalität der Vorrichtung 905 zu verbessern, zu ermöglichen oder anderweitig zu unterstützen. In einigen Fällen können einige Autonomes-Fahren-Merkmale (umfassend einige der hierin erörterten beispielhaften Lösungen) durch Dienste, Rechenlogik, Maschinelles-Lernen-Modelle, Daten oder andere Ressourcen von Rechensystemen außerhalb eines Fahrzeugs ermöglicht werden. Wenn solche externen Systeme für ein Fahrzeug nicht verfügbar sind, kann es sein, dass diese Merkmale zumindest vorübergehend deaktiviert sind. Beispielsweise können externe Rechensysteme bereitgestellt und genutzt werden, die in straßenseitigen Einheiten oder nebelbasierten Edge-Vorrichtungen (z. B. 940), anderen (z. B. übergeordneten) Fahrzeugen (z. B. 915) und Cloud-basierten Systemen 950 (z. B. über verschiedene Netzwerkzugangspunkte (z. B. 945) zugänglich) untergebracht sind. Eine straßenseitige Einheit 940 oder ein Cloud-basiertes System 950 (oder ein anderes kooperierendes System, mit dem ein Fahrzeug (z. B. 905) interagiert, kann die gesamte oder einen Abschnitt der Logik umfassen, die als zu einem beispielhaften bordeigenen Verarbeitungssystem (z. B. 1010) gehörend dargestellt ist, zusammen mit potenzieller zusätzlicher Funktionalität und Logik. Zum Beispiel kann ein Cloud-basiertes Rechensystem, eine straßenseitige Einheit 940 oder ein anderes Rechensystem eine Maschinelles-Lernen-Maschine umfassen, die entweder die Modell-Training- oder die Inferenz-Maschine-Logik oder beides, unterstützt. Beispielsweise können solche externen Systeme über höherwertige Rechenressourcen und weiterentwickelte oder aktuelle Maschinelles-Lernen-Modelle verfügen, sodass diese Dienste bessere Ergebnisse bereitstellen können als das, was nativ auf dem Verarbeitungssystem 1010 eines Fahrzeugs erzeugt würde. Beispielsweise kann sich ein bordeigenes Verarbeitungssystem 1010 für bestimmte Aufgaben und die Handhabung bestimmter Szenarien auf das Maschinelles-Lernen-Training, die Maschinelles-Lernen-Inferenz und/oder die Maschinelles-Lernen-Modelle verlassen, die über einen Cloud-basierten Dienst bereitgestellt werden. Es sollte tatsächlich darauf hingewiesen werden, dass eines oder mehrere der erörterten und als zum Fahrzeug 905 gehörend dargestellten Module bei einigen Implementierungen alternativ oder redundant innerhalb eines Cloud-basierten, nebel-basierten oder eines anderen Rechensystems, das eine autonome Fahrumgebung unterstützt, bereitgestellt werden können.
  • Verschiedene Ausführungsbeispiele hierin können ein oder mehrere Maschinelles-Lernen-Modelle nutzen, um Funktionen des AV-Stapels (oder andere hierin beschriebene Funktionen) auszuführen. Ein Maschinelles-Lernen-Modell kann von einem Rechensystem ausgeführt werden, um die Ausführung einer bestimmten Aufgabe schrittweise zu verbessern. Bei einigen Ausführungsbeispielen können die Parameter eines Maschinelles-Lernen-Modells während einer Trainingsphase basierend auf Trainingsdaten angepasst werden. Ein trainiertes Maschinelles-Lernen-Modell kann dann während einer Inferenzphase verwendet werden, um Vorhersagen oder Entscheidungen basierend auf Eingabedaten zu treffen.
  • Die hierin beschriebenen Maschinelles-Lernen-Modelle können irgendeine geeignete Form annehmen oder irgendwelche geeigneten Techniken verwenden. Beispielsweise kann irgendeines der Maschinelles-Lernen-Modelle Techniken des Überwachten Lernens, des Teilüberwachten Lernens, des Unüberwachtes Lernens oder des Bestärkendes Lernens verwenden.
  • Beim Überwachten Lernen kann das Modell unter Verwendung eines Trainingsdatensatzes aufgebaut werden, der sowohl die Eingaben als auch die entsprechenden erwünschten Ausgaben umfasst. Jeder Trainingsfall kann einen oder mehrere Eingaben und eine erwünschte Ausgabe umfassen. Das Training kann eine Iteration durch Trainingsfälle und eine Verwendung einer objektiven Funktion umfassen, um dem Modell beizubringen, die Ausgabe für neue Eingaben vorherzusagen. Beim Teilüberwachten Lernen fehlen möglicherweise einem Abschnitt der Eingaben in dem Trainingssatz die erwünschten Ausgaben.
  • Beim Unüberwachten Lernen kann das Modell aus einem Satz von Daten aufgebaut werden, der nur Eingaben und keine erwünschten Ausgaben umfasst. Das Unüberwachte Modell kann verwendet werden, um Struktur in den Daten zu finden (z.B. Gruppieren oder Clustern von Datenpunkten), indem Muster in den Daten entdeckt werden. Techniken, die in einem Unüberwachtes-Lernen-Modell implementiert sein können, umfassen z. B. selbstorganisierende Karten, Nearest-Neighbor-Abbildung, k-Means-Clustering und Singulärwertzerlegung.
  • Bestärkendes-Lernen-Modelle können positive oder negative Rückmeldung erhalten, um die Genauigkeit zu verbessern. Ein Bestärkendes-Lernen-Modell kann versuchen, ein oder mehrere Ziele/Belohnungen zu maximieren. Techniken, die in einem Bestärkendes-Lernen-Modell implementiert werden können, umfassen z. B. Q-Learning, Temporal Difference (TD) und Deep Adversarial Networks.
  • Verschiedene hierin beschriebene Ausführungsbeispiele können ein oder mehrere Klassifizierungsmodelle verwenden. In einem Klassifizierungsmodell können die Ausgaben auf einen begrenzten Satz von Werten beschränkt werden. Das Klassifizierungsmodell kann eine Klasse für einen Eingabesatz von einem oder mehreren Eingabewerten ausgeben. Hiesige Verweise auf Klassifizierungsmodelle können ein Modell betrachten, das z. B. irgendeine oder mehrere der folgenden Techniken implementiert: lineare Klassifizierer (z. B. logistische Regression oder naiver Bayes-Klassifizierer), Support-Vektor-Maschinen, Entscheidungsbäume, Boosted Trees, Random Forest, neuronale Netze oder Nearest-Neighbor.
  • Verschiedene hierin beschriebene Ausführungsbeispiele können ein oder mehrere Regressionsmodelle verwenden. Ein Regressionsmodell kann einen numerischen Wert aus einem durchgehenden Bereich basierend auf einem Eingabesatz von einem oder mehreren Werten ausgeben. Hiesige Verweise auf Regressionsmodelle können ein Modell betrachten, das z. B. irgendeine oder mehrere der folgenden Techniken (oder andere geeignete Techniken) implementiert: lineare Regression, Entscheidungsbäume, Random Forest oder neuronale Netze.
  • Bezugnehmend auf 11 ist ein vereinfachtes Blockdiagramm 1100 gezeigt, das beispielhafte Niveaus des autonomen Fahrens veranschaulicht, die in verschiedenen Fahrzeugen (z. B. durch ihre entsprechenden bordeigenen Rechensysteme) unterstützt werden können. Beispielsweise kann ein Bereich von Niveaus definiert werden (z. B. L0-L5 (1105-1135)), wobei Niveau 5 (L5) den Fahrzeugen mit dem höchsten Grad autonomer Fahrfunktionalität (z. B. Vollautomatisierung) entspricht und Niveau 0 (L0) dem niedrigsten Grad autonomer Fahrfunktionalität (z. B. keine Automatisierung) entspricht. Beispielsweise kann ein L5-Fahrzeug (z.B. 1135) über ein vollständig autonomes Rechensystem verfügen, das in der Lage ist, in jedem Fahrszenario eine Autonomes-Fahren-Performance bereitzustellen, die gleich oder besser ist als die eines menschlichen Fahrers, umfassend bei extremen Straßenbedingungen und Wetter. Ein L4-Fahrzeug (z.B. 1130) kann auch als vollständig autonom betrachtet werden, das in der Lage ist, sicherheitskritische Fahrfunktionen auszuführen und Fahrbahnzustände während einer gesamten Fahrt von einem Startort bis zu einem Zielort effektiv zu überwachen. L4-Fahrzeuge können sich von L5-Fahrzeugen dadurch unterscheiden, dass die autonomen Fähigkeiten eines L4 innerhalb der Begrenzungen der „operationellen Konstruktionsdomäne“ des Fahrzeugs definiert sind, die möglicherweise nicht alle Fahrszenarien umfasst. L3-Fahrzeuge (z. B. 1120) stellen eine autonome Fahrfunktionalität bereit, um sicherheitskritische Funktionen in einem Satz von spezifischen Verkehrs- und Umgebungsbedingungen vollständig auf das Fahrzeug zu verlagern, die aber dennoch die Beteiligung und Verfügbarkeit menschlicher Fahrer erwarten, um das Fahren in allen anderen Szenarien zu handhaben. Dementsprechend können L3-Fahrzeuge Übergabeprotokolle bereitstellen, um die Übertragung der Steuerung von einem menschlichen Fahrer auf den Autonomes-Fahren-Stack und zurück zu orchestrieren. L2-Fahrzeuge (z.B. 1115) stellen eine Fahrerassistenzfunktionalität bereit, die es dem Fahrer erlaubt, sich gelegentlich von der physischen Bedienung des Fahrzeugs zu lösen, derart, dass sowohl die Hände als auch die Füße des Fahrers periodisch von den physischen Steuerungselementen des Fahrzeugs gelöst werden können. L1-Fahrzeuge (z. B. 1110) stellen eine Fahrerassistenz einer oder mehrerer spezifischer Funktionen (z. B. Lenkung, Bremsen etc.) bereit, erfordern aber dennoch eine ständige Steuerung seitens des Fahrers der meisten Funktionen des Fahrzeugs. L0-Fahrzeuge können als nicht autonom angesehen werden - der menschliche Fahrer steuert die gesamte Fahrfunktionalität des Fahrzeugs (obwohl solche Fahrzeuge dennoch passiv innerhalb autonomer Fahrumgebungen teilnehmen können, z. B. durch die Bereitstellung von Sensordaten für Höhere-Niveau-Fahrzeuge, unter Verwendung von Sensordaten zur Verbesserung von GPS- und Infotainment-Diensten innerhalb des Fahrzeugs etc.). Bei einigen Implementierungen kann ein einzelnes Fahrzeug den Betrieb auf mehreren Autonomes-Fahren-Niveaus unterstützen. Beispielsweise kann ein Fahrer steuern und auswählen, welcher unterstützte Autonomiegrad während einer bestimmten Fahrt verwendet wird (z. B. L4 oder eine niedrigere Niveau). In anderen Fällen kann ein Fahrzeug autonom zwischen den Niveaus umschalten, z.B. basierend auf Bedingungen, die die Fahrbahn oder das autonome Fahrsystem des Fahrzeugs beeinflussen. Zum Beispiel kann ein L5- oder L4-Fahrzeug ansprechend auf das Detektieren, dass ein oder mehrere Sensoren beeinträchtigt wurden, in einen niedrigeren Modus (z. B. L2 oder niedriger) schalten, um, neben anderen Beispielen, angesichts des Sensorproblems einen menschlichen Insassen einzubeziehen.
  • 12 ist ein vereinfachtes Blockdiagramm 1200, das einen beispielhaften Autonomes-Fahren-Ablauf veranschaulicht, der in einigen autonomen Fahrsystemen implementiert sein kann. So kann beispielsweise ein autonomer Fahrablauf, der in einem autonomen (oder halbautonomen) Fahrzeug implementiert wird, eine Erfassungs- und Wahrnehmungsstufe 1205, eine Planungs- und Entscheidungsstufe 1210 und eine Steuerungs- und Handlungsphase 1215 umfassen. Während einer Erfassungs- und Wahrnehmungsstufe 1205 werden Daten von verschiedenen Sensoren erzeugt und zur Verwendung durch das autonome Fahrsystem gesammelt. Die Datensammlung kann in einigen Fällen Datenfilterung und den Empfang von Sensor von externen Quellen umfassen. Diese Stufe kann auch Sensorfusionsoperationen und Objekterkennung und andere Wahrnehmungsaufgaben, wie z.B. Lokalisierung, umfassen, die unter Verwendung eines oder mehrerer Maschinelles-Lernen-Modelle ausgeführt werden. Eine Planungs- und Entscheidungsstufe 1210 kann die Sensordaten und Ergebnisse verschiedener Wahrnehmungsoperationen nutzen, um probabilistische Vorhersagen über die vorausliegende(n) Fahrbahn(en) zu treffen und basierend auf diesen Vorhersagen einen Echtzeit-Bahnplan zu bestimmen. Eine Planungs- und Entscheidungsstufe 1210 kann zusätzlich das Treffen von Entscheidungen in Bezug auf den Bahnplan ansprechend auf die Detektion von Hindernissen und anderen Ereignissen umfassen, um zu entscheiden, ob und welche Maßnahmen zu ergreifen sind, um die festgelegte Bahn angesichts dieser Ereignisse sicher zu befahren. Basierend auf dem Bahnplan und den Entscheidungen der Planungs- und Entscheidungsstufe 1210 kann eine Steuerungs- und Handlungsstufe 1215 diese Bestimmungen in Handlungen umwandeln, durch Aktuatoren zur Manipulation der Fahrsteuerungen, umfassend Lenkung, Beschleunigung und Bremsen sowie sekundärer Steuerungen wie Blinker, Sensorreiniger, Scheibenwischer, Scheinwerfer etc.
  • 13-14 sind Blockdiagramme beispielhafter Computerarchitekturen, die gemäß hierin offenbarten Ausführungsbeispielen verwendet werden können. Es können auch andere im Stand der Technik bekannte Computerarchitekturentwürfe für Prozessoren und Rechensysteme verwendet werden. Im Allgemeinen können geeignete Computerarchitekturen für hierin offenbarte Ausführungsbeispiele Konfigurationen, die in den 13-14 dargestellt sind, umfassen, sind aber nicht darauf beschränkt.
  • 13 ist eine beispielhafte Darstellung eines Prozessors gemäß einem Ausführungsbeispiel. Der Prozessor 1300 ist ein Beispiel einer Art von Hardware-Vorrichtung, die in Verbindung mit den obigen Implementierungen verwendet werden kann. Prozessor 1300 kann irgendeine Art von Prozessor sein, z. B. ein Mikroprozessor, ein eingebetteter Prozessor, ein digitaler Signalprozessor (DSP), ein Netzwerkprozessor, ein Mehrkernprozessor, ein Einkernprozessor oder eine andere Vorrichtung, um einen Code auszuführen. Obwohl nur ein Prozessor 1300 in 13 dargestellt ist, kann ein Verarbeitungselement alternativ auch mehr als einen des in 13 dargestellten Prozessors 1300 umfassen. Der Prozessor 1300 kann ein Einzel-Thread-Kern sein oder bei zumindest einem Ausführungsbeispiel kann der Prozessor 1300 dahingehend multi-threaded sein, dass er mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern umfassen kann.
  • 13 veranschaulicht gemäß einem Ausführungsbeispiel auch einen Speicher 1302, der mit dem Prozessor 1300 gekoppelt ist. Der Speicher 1302 kann irgendeiner einer Mehrzahl von Speichern (umfassend verschiedene Schichten der Speicherhierarchie) sein, wie sie dem Fachmann bekannt oder für diesen anderweitig verfügbar sind. Solche Speicherelemente können umfassen, sind aber nicht beschränkt auf, Direktzugriffsspeicher (RAM; Random Access Memory), Nurlesespeicher (ROM; Read Only Memory), logische Blöcke eines feldprogrammierbaren Gate-Arrays (FPGA; Field Programmable Gate Array), löschbarer programmierbarer Nurlesespeicher (EPROM; Erasable Programmable Read Only Memory) und elektrisch löschbarer, programmierbarer ROM (EEPROM; electrically erasable programmable ROM).
  • Der Prozessor 1300 kann irgendeine Art von Anweisungen ausführen, die hier detaillierten Algorithmen, Prozessen oder Operationen zugeordnet sind. Im Allgemeinen kann der Prozessor 1300 ein Element oder einen Artikel (z. B. Daten) von einem Zustand oder Ding in einen anderen Zustand oder Ding transformieren.
  • Ein Code 1304, der eine oder mehrere durch den Prozessor 1300 auszuführende Anweisungen sein kann, kann in dem Speicher 1302 gespeichert sein, oder er kann in Software, Hardware, Firmware oder irgendeiner geeigneten Kombination davon oder in irgendeiner anderen internen oder externen Komponente, Vorrichtung, Element oder Objekt gespeichert sein, wo dies angemessen ist und basierend auf bestimmten Bedürfnissen. Bei einem Beispiel kann der Prozessor 1300 einer Programmsequenz von Anweisungen folgen, die durch den Code 1304 angezeigt wird. Jede Anweisung geht in eine Front-End-Logik 1306 und wird von einem oder mehreren Dekodierern 1308 verarbeitet. Der Dekodierer kann als seine Ausgabe eine Mikrooperation wie z. B. eine Feste-Breite-Mikrooperation in einem vordefinierten Format erzeugen, oder kann andere Anweisungen, Mikroanweisungen oder Steuersignale erzeugen, die die ursprüngliche Codeanweisung widerspiegeln. Die Front-End-Logik 1306 umfasst auch die Register-Umbenennungslogik 1310 und die Zeitplanungs-Logik 1312, die im Allgemeinen Ressourcen zuweisen und die Operation, die der Anweisung zur Ausführung entspricht, in eine Warteschlange stellen.
  • Der Prozessor 1300 kann auch eine Ausführungslogik 1314 mit einem Satz von Ausführungseinheiten 1316a, 1316b, 1316n etc. umfassen. Einige Ausführungsbeispiele können eine Anzahl von Ausführungseinheiten umfassen, die für spezifische Funktionen oder Sätze von Funktionen zweckgebunden sind. Andere Ausführungsbeispiele können nur eine Ausführungseinheit oder eine Ausführungseinheit, die eine bestimmte Funktion ausführen kann, umfassen. Die Ausführungslogik 1314 führt die durch Code-Anweisungen festgelegten Operationen aus.
  • Nach Abschluss der Ausführung der durch die Code-Anweisungen festgelegten Operationen kann die Back-End-Logik 1318 die Anweisungen von Code 1304 zurückziehen. Bei einem Ausführungsbeispiel erlaubt der Prozessor 1300 die Ausführung außerhalb der Reihenfolge, fordert aber ein Zurückziehen von Anweisungen der Reihenfolge nach. Die Retirement-Logik 1320 kann verschiedene bekannte Formen annehmen (z. B. Neuordnungs-Puffer oder Ähnliches). Auf diese Weise wird der Prozessor 1300 während der Ausführung von Code 1304 transformiert, zumindest hinsichtlich der Ausgabe, die von dem Dekodierer, den Hardware-Registern und Tabellen, die von der Registerumbenennungslogik 1310 verwendet werden, und irgendwelchen Registern (nicht gezeigt), die von der Ausführungslogik 1314 modifiziert werden, erzeugt werden.
  • Obwohl es in 13 nicht gezeigt ist, kann ein Verarbeitungselement andere Elemente auf einem Chip mit Prozessor 1300 umfassen. Beispielsweise kann ein Verarbeitungselement neben dem Prozessor 1300 eine Speichersteuerlogik umfassen. Das Verarbeitungselement kann eine I/O-(Eingangs/Ausgangs-; input/output) Steuerlogik umfassen und/oder kann eine in die Speichersteuerlogik integrierte I/O-Steuerlogik umfassen. Das Verarbeitungselement kann auch einen oder mehrere Caches umfassen. Bei einigen Ausführungsbeispielen kann auch ein nichtflüchtiger Speicher (wie beispielsweise Flash-Speicher oder Sicherungen) auf dem Chip mit Prozessor 1300 umfasst sein.
  • 14 veranschaulicht gemäß einem Ausführungsbeispiel ein Rechensystem 1400, das in einer Punkt-zu-Punkt- (PtP; point-to-point) Konfiguration angeordnet ist. Genauer gesagt zeigt 14 ein System, wo Prozessoren, Speicher und Eingabe-/Ausgabe-Vorrichtungen durch eine Anzahl von Punkt-zu-Punkt-Schnittstellen verbunden sind. Im Allgemeinen können ein oder mehrere der hierin beschriebenen Rechensysteme auf die gleiche oder ähnliche Weise wie das Rechensystem 1300 konfiguriert sein.
  • Die Prozessoren 1470 und 1480 können auch jeweils die integrierte Speichersteuerlogik (MC) 1472 und 1482 umfassen, um mit den Speicherelementen 1432 und 1434 zu kommunizieren. Bei alternativen Ausführungsbeispielen kann die Speichersteuerlogik 1472 und 1482 eine von den Prozessoren 1470 und 1480 getrennte diskrete Logik sein. Die Speicherelemente 1432 und/oder 1434 können verschiedene Daten speichern, die von den Prozessoren 1470 und 1480 verwendet werden sollen, um die hierin dargestellten Operationen und Funktionalität zu erreichen.
  • Die Prozessoren 1470 und 1480 können irgendeine Art von Prozessor sein, wie sie beispielsweise in Verbindung mit anderen Figuren erörtert werden. Die Prozessoren 1470 und 1480 können Daten über eine Punkt-zu-Punkt- (PtP) Schnittstelle 1450 jeweils unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1478 und 1488 austauschen. Die Prozessoren 1470 und 1480 können jeweils Daten mit einem Chipsatz 1490 über individuelle Punkt-zu-Punkt-Schnittstellen 1452 und 1454 unter Verwendung der Punkt-zu-Punkt-Schnittstellenschaltungen 1476, 1486, 1494 und 1498 austauschen. Der Chipsatz 1490 kann über eine Schnittstelle 1439, die eine PtP-Schnittstellenschaltung sein könnte, auch Daten mit einem Co-Prozessor 1438 austauschen, z. B. einer Hochperformance-Grafikschaltung, einem Maschinelles-Lernen-Beschleunigungssensor oder einem anderen Co-Prozessor 1438. Bei alternativen Ausführungsbeispielen könnten irgendwelche oder alle der in 14 dargestellten PtP-Verknüpfungen als Multidrop-Bus statt als PtP-Verknüpfung implementiert werden.
  • Der Chipsatz 1490 kann über eine Schnittstellenschaltung 1496 mit einem Bus 1420 kommunizieren. Der Bus 1420 kann eine oder mehrere Vorrichtungen aufweisen, die über ihn kommunizieren, wie z.B. eine Busbrücke 1418 und I/O-Vorrichtungen 1416. Über einen Bus 1410 kann die Busbrücke 1418 mit anderen Vorrichtungen kommunizieren, z. B. einer Benutzerschnittstelle 1412 (z. B. Tastatur, Maus, Touchscreen oder anderen Eingabevorrichtungen), Kommunikationsvorrichtungen 1426 (z. B. Modems, Netzwerkschnittstellenvorrichtungen oder anderen Arten von Kommunikationsvorrichtungen, die durch ein Computernetzwerk 1460 kommunizieren können), Audio-I/O-Vorrichtungen 1414 und/oder einer Datenspeichervorrichtung 1428. Die Datenspeichervorrichtung 1428 kann den Code 1430 speichern, der von den Prozessoren 1470 und/oder 1480 ausgeführt werden kann. Bei alternativen Ausführungsbeispielen können irgendwelche Abschnitte der Busarchitekturen mit einer oder mehreren PtP-Verknüpfungen implementiert werden.
  • Das in 14 dargestellte Computersystem ist eine schematische Darstellung eines Ausführungsbeispiels eines Rechensystems, das verwendet werden kann, um verschiedene, hierin erörterte Ausführungsbeispiele zu implementieren. Es wird darauf hingewiesen, dass verschiedene Komponenten des in 14 dargestellten Systems in einer System-auf-einem-Chip-(SoC) Architektur oder in irgendeiner anderen geeigneten Konfiguration kombiniert werden können, die in der Lage ist, die Funktionalität und Merkmale der hierin bereitgestellten Beispiele und Implementierungen zu erreichen.
  • Während einige der hierin beschriebenen und dargestellten Systeme und Lösungen so beschrieben wurden, dass sie eine Mehrzahl von Elementen umfassen oder einer Mehrzahl derselben zugeordnet sind, werden möglicherweise nicht alle explizit dargestellten oder beschriebenen Elemente bei jeder alternativen Implementierung der vorliegenden Offenbarung verwendet. Zusätzlich können sich eines oder mehrere der hierin beschriebenen Elemente außerhalb eines Systems befinden, während in anderen Fällen bestimmte Elemente in oder als Abschnitt eines oder mehrerer der anderen beschriebenen Elemente umfasst sein können, ebenso wie andere Elemente, die in der dargestellten Implementierung nicht beschrieben sind. Ferner können bestimmte Elemente mit anderen Komponenten kombiniert werden, sowie für alternative oder zusätzliche Zwecke neben den hierin beschriebenen Zwecken verwendet werden.
  • Die folgenden Beispiele beziehen sich auf Ausführungsbeispiele gemäß dieser Beschreibung.
  • Beispiel 1 ist eine Vorrichtung, umfassend einen Speicher zum Speichern eines ersten Bildes, erfasst durch eine erste Kamera, und eines zweiten Bildes, erfasst durch eine zweite Kamera; und einen mit dem Speicher gekoppelten Prozessor, der Prozessor umfassend eine Schaltungsanordnung, der Prozessor zum: Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, das zusammengefügte Bild soll aus einer Kombination einer Mehrzahl von Bildern umfassend das erste Bild und das zweite Bild erzeugt werden; und basierend auf den Blickwinkelinformationen und einer Projektionsart, Bestimmen von Transformationsparametern für zumindest eine Referenz-Region, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes zum Bestimmen von Zusammenfügungs-Parametern; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.
  • Beispiel 2 kann den Gegenstand von Beispiel 1 umfassen, wobei die Blickwinkelinformationen ferner einen oder mehrere Rotationswinkel und einen oder mehrere Translationsparameter umfassen.
  • Beispiel 3 kann den Gegenstand von irgendeinem der Beispiele 1-2 umfassen, wobei der Prozessor ausgebildet ist, um das zusammengefügte Bild basierend auf den Blickwinkelinformationen zu erzeugen, unter Verwendung von zumindest einem zusätzlichen Paar von Bildern der Mehrzahl von Bildern durch: Lokalisieren von überlappenden Regionen von zumindest einem zusätzlichen Paar von Bildern zum Bestimmen zusätzlicher Zusammenfügungs-Parameter; Kombinieren des zumindest einen zusätzlichen Paars von Bildern unter Verwendung der zusätzlichen Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten zumindest einen zusätzlichen Paars von Bildern an das zusammengefügte Bild.
  • Beispiel 4 kann den Gegenstand von irgendeinem der Beispiele 1-3 umfassen, wobei die Zusammenfügungs-Parameter eine konfigurierbare Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes umfassen und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf der konfigurierten Mischmaske zu kombinieren.
  • Beispiel 5 kann den Gegenstand von Beispiel 4 umfassen, wobei der Prozessor ausgebildet ist, um die konfigurierbare Mischmaske durch Transformieren einer Referenz-Mischmaske, zugeordnet zu einer oder mehreren der zumindest einen Referenzregion zu erzeugen.
  • Beispiel 6 kann den Gegenstand von irgendeinem der Beispiele 1-5 umfassen, wobei die Zusammenfügungs-Parameter zumindest einen Anpassungsfaktor basierend auf Statistiken umfassen, die den überlappenden Regionen zugeordnet sind, und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf dem zumindest einen Anpassungsfaktor zu kombinieren.
  • Beispiel 7 kann den Gegenstand von Beispiel 6 umfassen, wobei der Prozessor ausgebildet ist zum Ausführen von zumindest einem aus: Erzeugen des zumindest einen Anpassungsfaktors, wobei der zumindest eine Anpassungsfaktor eine Anpassung von einem aus Helligkeit und Farbe von Pixeln des ersten Bildes und des zweiten Bildes spezifiziert; und Modifizieren eines oder mehrerer des zumindest einen Anpassungsfaktors, um zumindest eines aus Unterschreitungen und Überschreitungen von Pixelwerten in dem zusammengefügten Bild zu verhindern.
  • Beispiel 8 kann den Gegenstand von Beispiel 6 umfassen, wobei der Prozessor ausgebildet ist, um die Zusammenfügungs-Parameter basierend auf einer Kombination des zumindest einen Anpassungsfaktors und einer konfigurierbaren Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes zu bestimmen.
  • Beispiel 9 kann den Gegenstand von irgendeinem der Beispiele 1-8 umfassen, wobei der Prozessor ausgebildet ist zum: Detektieren von zumindest einem aus gemeinsamen Merkmalen und Punkten in dem ersten Bild und dem zweiten Bild durch zumindest eines aus einer Bildanalyse, Merkmalsextraktion und Anpassung, Randdetektierung, Vorlagenanpassung, semantische Segmentierung, Objektdetektion, Bildregistrierung und trainierte Klassifizierer; und Verwenden des detektierten zumindest einen von gemeinsamen Merkmalen oder Punkten, um eine bestimmte Position der überlappenden Regionen des ersten Bildes und des zweiten Bildes zu verfeinern oder zumindest eines des ersten Bildes und des zweiten Bildes durch geometrische Transformation vor dem Lokalisieren der überlappenden Regionen des ersten Bildes und des zweiten Bildes anzupassen.
  • Beispiel 10 kann den Gegenstand von irgendeinem der Beispiel 1-9 umfassen, wobei der Prozessor ferner ausgebildet ist zum Ausführen von zumindest einem aus: Unterdrücken von Fehlern in der Kombination aus dem ersten Bild und zweiten Bild, verursacht durch eines oder mehrere aus Datenausrichtung, Bildregistrierung, Merkmalsextraktion, Anpassung, und Wiederholung, Ghosting aufgrund von Bewegung und Parallaxe; und Nutzen von zumindest einem aus Objektsegmentierung, semantische Verarbeitung, Tiefeninformationen und Multiskalenanalyse in der Kombination aus dem ersten Bild und zweiten Bild.
  • Beispiel 11 kann den Gegenstand von irgendeinem der Beispiele 1-10 umfassen, der Prozessor umfassend: ein erstes Multi-Kamera-Zusammenfügungs-Modul zum Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und ein zweites Multi-Kamera-Zusammenfügungs-Modul, basierend auf zumindest einem aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der Projektionsart unterscheidet, zum: Lokalisieren von überlappenden Regionen von zwei Bildern der Mehrzahl von Bildern zum Bestimmen zweiter Zusammenfügungs-Parameter; Kombinieren der zwei Bilder der Mehrzahl von Bildern unter Verwendung der zweiten Zusammenfügungs-Parameter; und Zuweisen der Daten der kombinierten zwei Bilder der Mehrzahl von Bildern zu einem zweiten zusammengefügten Bild.
  • Beispiel 12 kann den Gegenstand von Beispiel 11 umfassen, wobei die zwei Bilder das erste Bild und das zweite Bild umfassen.
  • Beispiel 13 kann den Gegenstand von irgendeinem der Beispiele 1-12 umfassen, der Prozessor umfassend: ein erstes Multi-Kamera-Zusammenfügungs-Modul zum Erzeugen von intermediären Bilddaten unter Verwendung der Mehrzahl von Bildern basierend auf zumindest einem aus den Blickwinkelinformationen und der Projektionsart, das erste Multi-Kamera-Zusammenfügungs-Modul zum weiteren Erzeugen einer ersten Ansicht von den erzeugten intermediären Bilddaten; und ein zweites Multi-Kamera-Zusammenfügungs-Modul zum Erzeugen einer zweiten Ansicht von den erzeugten intermediären Bilddaten basierend auf zumindest einer aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der ersten Projektionsart unterscheidet.
  • Beispiel 14 kann den Gegenstand von irgendeinem der Beispiele 1-13 umfassen, wobei der Prozessor ausgebildet ist zum Spezifizieren zumindest einer der Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild für zumindest einen aus dem Blickwinkel und der Projektionsart basierend auf einer Fahrsituation und einer Bild- oder Szenenanalyse definieren.
  • Beispiel 15 kann den Gegenstand von irgendeinem der Beispiele 1-14 umfassen, wobei der zumindest eine Transformations-Parameter basierend auf zumindest einem anderen Transformations-Parameter zugeordnet zu einem oder mehreren Abstimmungs-Blickwinkeln bestimmt wird.
  • Beispiel 16 kann den Gegenstand von Beispiel 15 umfassen, wobei der Prozessor ausgebildet ist zum Ausführen von zumindest einem aus: Auswählen des einen oder der mehreren AbstimmungsBlickwinkel basierend auf zumindest einem aus einem Unterschied und einer Ähnlichkeit zwischen dem einen oder den mehreren Abstimmungs-Blickwinkeln und eines Blickwinkels spezifiziert durch die Blickwinkelinformationen; und Anpassen des zumindest einen anderen Transformations-Parameters, zugeordnet zu dem einen oder den mehreren Abstimmungs-Blickwinkeln im Hinblick auf einen Referenz-Blickwinkel.
  • Beispiel 17 kann den Gegenstand von irgendeinem der Beispiele 1-16 umfassen, wobei der zumindest eine Transformations-Parameter bestimmt wird unter Verwendung zumindest einer aus linearer Transformation und Perspektivtransformation basierend auf einer Änderung in zumindest einer aus den Blickwinkelinformationen und der Projektionsart.
  • Beispiel 18 umfasst ein Verfahren, umfassend: Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, das zusammenfügte Bild soll aus einer Kombination einer Mehrzahl von Bildern erzeugt werden, umfassend ein erstes Bild und ein zweites Bild; und basierend auf den Blickwinkelinformationen und einer Projektionsart, Bestimmen von Transformationsparametern für zumindest eine Referenzregion, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes, um Zusammenfügungs-Parameter zu bestimmen; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.
  • Beispiel 19 kann den Gegenstand von Beispiel 18 umfassen, wobei der zumindest eine Transformationsparameter einen oder mehrere Rotationsparameter und einen oder mehrere Translationsparameter umfasst.
  • Beispiel 20 kann den Gegenstand von irgendeinem der Beispiele 18-19 umfassen, ferner umfassend das Erzeugen des zusammengefügten Bildes basierend auf den Blickwinkelinformationen unter Verwendung von zumindest einem zusätzlichen Paar von Bildern von der Mehrzahl von Bildern durch: Lokalisieren von überlappenden Regionen von zumindest einem zusätzlichen Paar von Bildern zum Bestimmen zusätzlicher Zusammenfügungs-Parameter; Kombinieren des zumindest einen zusätzlichen Paars von Bildern unter Verwendung der zusätzlichen Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten zumindest einen zusätzlichen Paars von Bildern an das zusammengefügte Bild.
  • Beispiel 21 kann den Gegenstand von irgendeinem der Beispiele 18-20 umfassen, wobei die Zusammenfügungs-Parameter eine konfigurierbare Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes umfassen und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf der konfigurieren Mischmaske zu kombinieren.
  • Beispiel 22 kann den Gegenstand von Beispiel 21 umfassen, wobei die konfigurierbare Mischmaske erzeugt wird durch Transformieren einer Referenz-Mischmaske, zugeordnet zu einer oder mehreren der zumindest einen Referenz-Region.
  • Beispiel 23 kann den Gegenstand von irgendeinem der Beispiele 18-22 umfassen, wobei die Zusammenfügungs-Parameter zumindest einen Anpassungsfaktor basierend auf Statistiken umfassen, die den überlappenden Regionen zugeordnet sind, und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf dem zumindest einen Anpassungsfaktor zu kombinieren.
  • Beispiel 24 kann den Gegenstand von Beispiel 23 umfassen, ferner umfassend zumindest eines aus: Erzeugen des zumindest einen Anpassungsfaktors, wobei der zumindest eine Anpassungsfaktor eine Anpassung von einem aus Helligkeit und Farbe von Pixeln des ersten Bildes und des zweiten Bildes spezifiziert; und Modifizieren eines oder mehrerer des zumindest einen Anpassungsfaktors, um zumindest eines aus Unterschreitungen und Überschreitungen von Pixelwerten in dem zusammengefügten Bild zu verhindern.
  • Beispiel 25 kann den Gegenstand von Beispiel 23 umfassen, ferner umfassend das Bestimmen der Zusammenfügungs-Parameter basierend auf einer Kombination aus dem zumindest einen Anpassungsfaktor und einer konfigurierbaren Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes.
  • Beispiel 26 kann den Gegenstand von irgendeinem der Beispiele 18-25 umfassen, ferner umfassend ein Detektieren von zumindest einem aus gemeinsamen Merkmalen und Punkten in dem ersten Bild und dem zweiten Bild durch zumindest eines aus einer Bildanalyse, Merkmalsextraktion und Anpassung, Randdetektierung, Vorlagenanpassung, semantische Segmentierung, Objektdetektion, Bildregistrierung und trainierte Klassifizierer; und Verwenden des detektierten zumindest einen von gemeinsamen Merkmalen oder Punkten, um eine bestimmte Position der überlappenden Regionen des ersten Bildes und des zweiten Bildes zu verfeinern oder zumindest eines des ersten Bildes und des zweiten Bildes durch geometrische Transformation vor dem Lokalisieren der überlappenden Regionen des ersten Bildes und des zweiten Bildes anzupassen.
  • Beispiel 27 kann den Gegenstand von irgendeinem der Beispiel 18-26 umfassen, ferner umfassend das Ausführen von zumindest einem aus: Unterdrücken von Fehlern in der Kombination aus dem ersten Bild und zweiten Bild, verursacht durch eines oder mehrere aus Datenausrichtung, Bildregistrierung, Merkmalsextraktion, Anpassung, und Wiederholung, Ghosting aufgrund von Bewegung und Parallaxe; und Nutzen von zumindest einem aus Objektsegmentierung, semantische Verarbeitung, Tiefeninformationen und Multiauflösungsanalyse in der Kombination aus dem ersten Bild und zweiten Bild.
  • Beispiel 28 kann den Gegenstand von irgendeinem der Beispiele 18-27 umfassen, ferner umfassend ein Kombinieren, durch ein erstes Multi-Kamera-Zusammenfügungs-Modul, des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und, durch ein zweites Multi-Kamera-Zusammenfügungs-Modul: basierend auf zumindest einem aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der Projektionsart unterscheidet: Lokalisieren von überlappenden Regionen von zwei Bildern der Mehrzahl von Bildern zum Bestimmen zweiter Zusammenfügungs-Parameter; Kombinieren der zwei Bilder der Mehrzahl von Bildern unter Verwendung der zweiten Zusammenfügungs-Parameter; und Zuweisen der Daten der kombinierten zwei Bilder der Mehrzahl von Bildern an ein zweites zusammengefügtes Bild.
  • Beispiel 29 kann den Gegenstand von Beispiel 28 umfassen, wobei die zwei Bilder das erste Bild und das zweite Bild umfassen.
  • Beispiel 30 kann den Gegenstand von irgendeinem der Beispiele 18-29 umfassen, ferner umfassend ein Erzeugen, durch ein erstes Multi-Kamera-Zusammenfügungs-Modul, von intermediären Bilddaten unter Verwendung der Mehrzahl von Bildern basierend auf zumindest einem aus den Blickwinkelinformationen und der Projektionsart, das erste Multi-Kamera-Zusammenfügungs-Modul zum weiteren Erzeugen einer ersten Ansicht von den erzeugten intermediären Bilddaten; und Erzeugen, durch ein zweites Multi-Kamera-Zusammenfügungs-Modul, einer zweiten Ansicht von den erzeugten intermediären Bilddaten basierend auf zumindest einer aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der ersten Projektionsart unterscheidet.
  • Beispiel 31 kann den Gegenstand von irgendeinem der Beispiele 18-30 umfassen, ferner umfassend ein Spezifizieren zumindest einer der Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild für zumindest einen aus dem Blickwinkel und der Projektionsart basierend auf einer Fahrsituation und einer Bild- oder Szenenanalyse definieren.
  • Beispiel 32 kann den Gegenstand von irgendeinem der Beispiele 18-31 umfassen, wobei der zumindest eine Transformations-Parameter basierend auf zumindest einem anderen Transformations-Parameter, zugeordnet zu einem oder mehreren Abstimmungs-Blickwinkeln, bestimmt wird.
  • Beispiel 33 kann den Gegenstand von Beispiel 32 umfassen, wobei der Prozessor ausgebildet ist zum Ausführen von zumindest einem aus: Auswählen des einen oder der mehreren AbstimmungsBlickwinkel basierend auf zumindest einem aus einem Unterschied und einer Ähnlichkeit zwischen dem einen oder den mehreren Abstimmungs-Blickwinkeln und eines Blickwinkels spezifiziert durch die Blickwinkelinformationen; und Anpassen des zumindest einen anderen Transformations-Parameters, zugeordnet zu dem einen oder den mehreren Abstimmungs-Blickwinkeln im Hinblick auf einen Referenz-Blickwinkel.
  • Beispiel 34 kann den Gegenstand von irgendeinem der Beispiele 18-33 umfassen, wobei der zumindest eine Transformations-Parameter bestimmt wird unter Verwendung von zumindest einem aus linearer Transformation und Perspektivtransformation basierend auf einer Änderung in zumindest einer aus den Blickwinkelinformationen und der Projektionsart.
  • Beispiel 35 kann zumindest ein nichtflüchtiges maschinenlesbares Speichermedium mit darauf gespeicherten Anweisungen umfassen, wobei die Anweisungen bei Ausführung durch eine Maschine die Maschine veranlassen zum: Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, das zusammenfügte Bild soll aus einer Kombination einer Mehrzahl von Bildern erzeugt werden, umfassend ein erstes Bild und ein zweites Bild; und basierend auf den Blickwinkelinformationen und einer Projektionsart, Bestimmen von Transformationsparametern für zumindest eine Referenzregion, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes, um Zusammenfügungs-Parameter zu bestimmen; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.
  • Beispiel 36 kann den Gegenstand von Beispiel 35 umfassen, wobei der zumindest eine Translationsparameter einen oder mehrere Rotationswinkel und einen oder mehrere Translationsparameter umfasst.
  • Beispiel 37 kann den Gegenstand von irgendeinem der Beispiele 35-36 umfassen, wobei die Anweisungen bei Ausführung durch eine Maschine die Maschine veranlassen zum Erzeugen des zusammengefügten Bildes basierend auf den Blickwinkelinformationen unter Verwendung von zumindest einem zusätzlichen Paar von Bildern der Mehrzahl von Bildern durch: Lokalisieren von überlappenden Regionen von zumindest einem zusätzlichen Paar von Bildern zum Bestimmen zusätzlicher Zusammenfügungs-Parameter; Kombinieren des zumindest einen zusätzlichen Paars von Bildern unter Verwendung der zusätzlichen Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten zumindest einen zusätzlichen Paars von Bildern an das zusammengefügte Bild.
  • Beispiel 38 kann den Gegenstand von irgendeinem der Beispiele 35-37 umfassen, wobei die Zusammenfügungs-Parameter eine konfigurierbare Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes umfassen und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf der konfigurieren Mischmaske zu kombinieren.
  • Beispiel 39 kann den Gegenstand von Beispiel 38 umfassen, die Anweisungen zum Verursachen der Maschine zum Erzeugen der konfigurierbaren Mischmaske durch Transformieren einer Referenz-Mischmaske, zugeordnet zu einer oder mehreren der zumindest einen Referenzregion zu.
  • Beispiel 40 kann den Gegenstand von irgendeinem der Beispiele 35-39 umfassen, wobei die Zusammenfügungs-Parameter zumindest einen Anpassungsfaktor basierend auf Statistiken umfassen, die den überlappenden Regionen zugeordnet sind, und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf dem zumindest einen Anpassungsfaktor zu kombinieren.
  • Beispiel 41 kann den Gegenstand von Beispiel 40 umfassen, wobei die Anweisungen bei Ausführung durch eine Maschine die Maschine veranlassen zum Ausführen von zumindest einem aus: Erzeugen des zumindest einen Anpassungsfaktors, wobei der zumindest eine Anpassungsfaktor eine Anpassung von einem aus Helligkeit und Farbe von Pixeln des ersten Bildes und des zweiten Bildes spezifiziert; und Modifizieren eines oder mehrerer des zumindest einen Anpassungsfaktors, um zumindest eines aus Unterschreitungen und Überschreitungen von Pixelwerten in dem zusammengefügten Bild zu verhindern.
  • Beispiel 42 kann den Gegenstand von irgendeinem der Beispiele 35-41 umfassen, wobei die Anweisungen bei Ausführung durch eine Maschine die Maschine veranlassen zum Bestimmen der Zusammenfügungs-Parameter basierend auf einer Kombination des zumindest einen Anpassungsfaktors und einer konfigurierbaren Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes.
  • Beispiel 43 kann den Gegenstand von irgendeinem der Beispiele 35-42 umfassen, wobei die Anweisungen bei Ausführung durch eine Maschine die Maschine veranlassen zum Detektieren von zumindest einem aus gemeinsamen Merkmalen und Punkten in dem ersten Bild und dem zweiten Bild durch zumindest eines aus einer Bildanalyse, Merkmalsextraktion und Anpassung, Randdetektierung, Vorlagenanpassung, semantische Segmentierung, Objektdetektion, Bildregistrierung und trainierte Klassifizierer; und Verwenden des detektierten zumindest einen aus gemeinsamen Merkmalen oder Punkten, um eine bestimmte Position der überlappenden Regionen des ersten Bildes und des zweiten Bildes zu verfeinern oder zumindest eines des ersten Bildes und des zweiten Bildes durch geometrische Transformation vor dem Lokalisieren der überlappenden Regionen des ersten Bildes und des zweiten Bildes anzupassen.
  • Beispiel 44 kann den Gegenstand von irgendeinem der Beispiel 35-43 umfassen, wobei die Anweisungen bei Ausführung durch eine Maschine veranlassen zum Ausführen von zumindest einem aus: Unterdrücken von Fehlern in der Kombination aus dem ersten Bild und zweiten Bild, verursacht durch eines oder mehrere aus Datenausrichtung, Bildregistrierung, Merkmalsextraktion, Anpassung, und Wiederholung, Ghosting aufgrund von Bewegung und Parallaxe; und Nutzen von zumindest einem aus Objektsegmentierung, semantische Verarbeitung, Tiefeninformationen und Multiauflösungsanalyse in der Kombination aus dem ersten Bild und zweiten Bild.
  • Beispiel 45 kann den Gegenstand von irgendeinem der Beispiele 35-44 umfassen, die Maschine umfassend: ein erstes Multi-Kamera-Zusammenfügungs-Modul zum Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und ein zweites Multi-Kamera-Zusammenfügungs-Modul, basierend auf zumindest einem aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der Projektionsart unterscheidet, zum: Lokalisieren von überlappenden Regionen von zwei Bildern der Mehrzahl von Bildern zum Bestimmen zweiter Zusammenfügungs-Parameter; Kombinieren der zwei Bilder der Mehrzahl von Bildern unter Verwendung der zweiten Zusammenfügungs-Parameter; und Zuweisen der Daten der kombinierten zwei Bilder der Mehrzahl von Bildern an ein zweites zusammengefügtes Bild.
  • Beispiel 46 kann den Gegenstand von Beispiel 45 umfassen, wobei die zwei Bilder das erste Bild und das zweite Bild umfassen.
  • Beispiel 47 kann den Gegenstand von irgendeinem der Beispiele 35-46 umfassen, die Maschine umfassend: ein erstes Multi-Kamera-Zusammenfügungs-Modul zum Erzeugen von intermediären Bilddaten unter Verwendung der Mehrzahl von Bildern basierend auf zumindest einem aus den Blickwinkelinformationen und der Projektionsart, das erste Multi-Kamera-Zusammenfügungs-Modul zum weiteren Erzeugen einer ersten Ansicht von den erzeugten intermediären Bilddaten; und ein zweites Multi-Kamera-Zusammenfügungs-Modul zum Erzeugen einer zweiten Ansicht von den erzeugten intermediären Bilddaten basierend auf zumindest einer aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der ersten Projektionsart unterscheidet.
  • Beispiel 48 kann den Gegenstand von irgendeinem der Beispiele 35-47 umfassen, wobei die Anweisungen ferner ausgebildet sind zum Veranlassen der Maschine zum Spezifizieren zumindest einer der Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild für zumindest einen aus dem Blickwinkel und der Projektionsart basierend auf einer Fahrsituation und einer Bild- oder Szenenanalyse definieren.
  • Beispiel 49 kann den Gegenstand von irgendeinem der Beispiele 35-48 umfassen, wobei der zumindest eine Transformations-Parameter basierend auf zumindest einem anderen Transformations-Parameter, zugeordnet zu einem oder mehreren Abstimmungs-Blickwinkeln, bestimmt wird.
  • Beispiel 50 kann den Gegenstand von Beispiel 49 umfassen, wobei der Prozessor ausgebildet ist zum Ausführen von zumindest einem aus: Auswählen des einen oder der mehreren Abstimmungs-Blickwinkel basierend auf zumindest einem aus einem Unterschied und einer Ähnlichkeit zwischen dem einen oder den mehreren Abstimmungs-Blickwinkeln und eines Blickwinkels spezifiziert durch die Blickwinkelinformationen; und Anpassen des zumindest einen anderen Transformations-Parameters, zugeordnet zu dem einen oder den mehreren Abstimmungs-Blickwinkeln im Hinblick auf einen Referenz-Blickwinkel.
  • Beispiel 51 kann den Gegenstand von irgendeinem der Beispiele 35-50 umfassen, wobei der zumindest eine Transformations-Parameter bestimmt wird unter Verwendung zumindest einem aus linearer Transformation und Perspektivtransformation basierend auf einer Änderung in zumindest einer aus den Blickwinkelinformationen und der Projektionsart.
  • Es wird darauf hingewiesen, dass die vorstehend gezeigten Beispiele nicht einschränkende Beispiele sind, die lediglich bereitgestellt sind, um bestimmte Grundsätze und Merkmale darzustellen und nicht zwingend, um die möglichen Ausführungsbeispiele der hierin beschriebenen Konzepte zu beschränken oder einzuschränken. Beispielsweise kann eine Mehrzahl verschiedener Ausführungsbeispiele unter Verwendung verschiedener Kombinationen der hierin beschriebenen Merkmale und Komponenten realisiert werden, umfassend Kombinationen, die durch die verschiedenen Implementierungen der hierin beschriebenen Komponenten realisiert werden. Andere Implementierungen, Merkmale und Details sollten dem Inhalt dieser Beschreibung entnommen werden.
  • Obwohl diese Offenbarung in Bezug auf bestimmte Implementierungen und allgemein zugeordnete Verfahren beschrieben wurde, sind Abänderungen und Permutationen dieser Implementierungen und Verfahren für den Fachmann offensichtlich. Beispielsweise können die hierin beschriebenen Handlungen in einer anderen Reihenfolge als beschrieben durchgeführt werden und dennoch die erwünschten Ergebnisse erzielen. Als Beispiel, die in den beiliegenden Figuren gezeigten Prozesse erfordern nicht zwingend die gezeigte bestimmte Reihenfolge oder sequenzielle Reihenfolge, um die erwünschten Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein. Zusätzlich können auch andere Benutzerschnittstellen-Layouts und Funktionalität unterstützt werden. Andere Abweichungen sind innerhalb des Schutzbereichs der folgenden Ansprüche.
  • Obwohl diese Beschreibung viele bestimmte Implementierungsdetails umfasst, sollten diese nicht als Beschränkungen hinsichtlich des Schutzbereichs irgendwelcher Erfindungen oder dessen, was beansprucht werden kann, ausgelegt werden, sondern vielmehr als Beschreibungen von Merkmalen, die für bestimmte Ausführungsbeispiele bestimmter Erfindungen spezifisch sind. Bestimmte Merkmale, die in dieser Beschreibung in dem Kontext separater Ausführungsbeispiele beschrieben sind, können auch in Kombination in einem einzigen Ausführungsbeispiel implementiert werden. Umgekehrt können verschiedene Merkmale, die im Kontext eines einzigen Ausführungsbeispiels beschrieben werden, auch in mehreren Ausführungsbeispielen getrennt oder in irgendeiner geeigneten Teilkombination implementiert werden. Ferner, obwohl Merkmale vorstehend als in bestimmten Kombinationen wirkend beschrieben und sogar ursprünglich als solche beansprucht werden können, können in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination ausgeschnitten werden, und die beanspruchte Kombination kann auf eine Teilkombination oder Variation einer Teilkombination gerichtet sein.
  • Ähnlich sollte, auch wenn die Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, dies nicht so verstanden werden, dass es erforderlich ist, dass solche Operationen in der gezeigten bestimmten Reihenfolge oder in sequenzieller Reihenfolge ausgeführt werden oder dass alle dargestellten Operationen ausgeführt werden, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Ferner sollte die Trennung verschiedener Systemkomponenten bei den vorstehend beschriebenen Ausführungsbeispielen nicht so verstanden werden, dass eine solche Trennung bei allen Ausführungsbeispielen erforderlich ist, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einzelnes Softwareprodukt integriert oder in mehrere Softwareprodukte gepackt werden können.

Claims (25)

  1. Eine Vorrichtung, umfassend: einen Speicher zum Speichern eines ersten Bildes, erfasst durch eine erste Kamera, und eines zweiten Bildes, erfasst durch eine zweite Kamera; und einen mit dem Speicher gekoppelten Prozessor, der Prozessor umfassend eine Schaltungsanordnung, wobei der Prozessor ausgebildet ist zum: Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, wobei das zusammenfügte Bild aus einer Kombination einer Mehrzahl von Bildern erzeugt werden soll, umfassend das erste Bild und das zweite Bild; und Basierend auf den Blickwinkelinformationen und einer Projektionsart, Bestimmen zumindest eines Transformationsparameters für zumindest eine Referenzregion, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes, um Zusammenfügungs-Parameter zu bestimmen; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.
  2. Die Vorrichtung gemäß Anspruch 1, wobei der zumindest eine Transformationsparameter einen oder mehrere Rotationsparameter und einen oder mehrere Translationsparameter umfasst.
  3. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei der Prozessor ausgebildet ist, um das zusammengefügte Bild basierend auf den Blickwinkelinformationen zu erzeugen, unter Verwendung von zumindest einem zusätzlichen Paar von Bildern der Mehrzahl von Bildern durch: Lokalisieren von überlappenden Regionen von zumindest einem zusätzlichen Paar von Bildern zum Bestimmen zusätzlicher Zusammenfügungs-Parameter; Kombinieren des zumindest einen zusätzlichen Paars von Bildern unter Verwendung der zusätzlichen Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten zumindest einen zusätzlichen Paars von Bildern an das zusammengefügte Bild.
  4. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei die Zusammenfügungs-Parameter eine konfigurierbare Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes umfassen und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf der konfigurierten Mischmaske zu kombinieren.
  5. Die Vorrichtung gemäß Anspruch 4, wobei der Prozessor ausgebildet ist, um die konfigurierbare Mischmaske durch Transformieren einer Referenz-Mischmaske zugeordnet zu einer oder mehreren der zumindest einen Referenzregion zu erzeugen.
  6. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei die Zusammenfügungs-Parameter zumindest einen Anpassungsfaktor basierend auf Statistiken umfassen, die den überlappenden Regionen zugeordnet sind, und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf dem zumindest einen Anpassungsfaktor zu kombinieren.
  7. Die Vorrichtung gemäß Anspruch 6, wobei der Prozessor ausgebildet ist zum Ausführen von zumindest einem aus: Erzeugen des zumindest einen Anpassungsfaktors, wobei der zumindest eine Anpassungsfaktor eine Anpassung von einem aus Helligkeit und Farbe von Pixeln des ersten Bildes und des zweiten Bildes spezifiziert; und Modifizieren eines oder mehrerer des zumindest einen Anpassungsfaktors, um zumindest eines aus Unterschreitungen und Überschreitungen von Pixelwerten in dem zusammengefügten Bild zu verhindern.
  8. Die Vorrichtung gemäß Anspruch 6 oder 7, wobei der Prozessor ausgebildet ist, um die Zusammenfügungs-Parameter basierend auf einer Kombination des zumindest einen Anpassungsfaktors und einer konfigurierbaren Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes zu bestimmen.
  9. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei der Prozessor ausgebildet ist zum: Detektieren von zumindest einem aus gemeinsamen Merkmalen und Punkten in dem ersten Bild und dem zweiten Bild durch zumindest eines aus einer Bildanalyse, Merkmalsextraktion und Anpassung, Randdetektierung, Vorlagenanpassung, semantische Segmentierung, Objektdetektion, Bildregistrierung und trainierte Klassifizierer; und Verwenden des detektierten zumindest einen aus gemeinsamen Merkmalen oder Punkten, um eine bestimmte Position der überlappenden Regionen des ersten Bildes und des zweiten Bildes zu verfeinern oder zumindest eines des ersten Bildes und des zweiten Bildes durch geometrische Transformation vor dem Lokalisieren der überlappenden Regionen des ersten Bildes und des zweiten Bildes anzupassen.
  10. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei der Prozessor ferner ausgebildet ist zum Ausführen von zumindest einem aus: Unterdrücken von Fehlern in der Kombination aus dem ersten Bild und zweiten Bild, verursacht durch eines oder mehrere aus Datenausrichtung, Bildregistrierung, Merkmalsextraktion, Anpassung, und Wiederholung, Ghosting aufgrund von Bewegung und Parallaxe; und Nutzen von zumindest einem aus Objektsegmentierung, semantische Verarbeitung, Tiefeninformationen und Multiauflösungsanalyse in der Kombination aus dem ersten Bild und zweiten Bild.
  11. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, der Prozessor umfassend: ein erstes Multi-Kamera-Zusammenfügungs-Modul zum Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und ein zweites Multi-Kamera-Zusammenfügungs-Modul, basierend auf zumindest einem aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der Projektionsart unterscheidet, zum: Lokalisieren von überlappenden Regionen von zwei Bildern der Mehrzahl von Bildern zum Bestimmen zweiter Zusammenfügungs-Parameter; Kombinieren der zwei Bilder der Mehrzahl von Bildern unter Verwendung der zweiten Zusammenfügungs-Parameter; und Zuweisen der Daten der kombinierten zwei Bilder der Mehrzahl von Bildern zu einem zweiten zusammengefügten Bild.
  12. Die Vorrichtung gemäß Anspruch 11, wobei die zwei Bilder das erste Bild und das zweite Bild umfassen.
  13. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, der Prozessor umfassend: ein erstes Multi-Kamera-Zusammenfügungs-Modul zum Erzeugen von intermediären Bilddaten unter Verwendung der Mehrzahl von Bildern basierend auf zumindest einem aus den Blickwinkelinformationen und der Projektionsart, das erste Multi-Kamera-Zusammenfügungs-Modul zum weiteren Erzeugen einer ersten Ansicht von den erzeugten intermediären Bilddaten; und ein zweites Multi-Kamera-Zusammenfügungs-Modul zum Erzeugen einer zweiten Ansicht von den erzeugten intermediären Bilddaten basierend auf zumindest einer aus zweiten Blickwinkelinformationen, die sich von den Blickwinkelinformationen unterscheiden, und einer zweiten Projektionsart, die sich von der Projektionsart unterscheidet.
  14. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei der Prozessor ausgebildet ist zum Spezifizieren zumindest einer der Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild für zumindest einen aus dem Blickwinkel und der Projektionsart basierend auf einer Fahrsituation und einer Bild- oder Szenenanalyse definieren.
  15. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei der zumindest eine Transformations-Parameter basierend auf zumindest einem anderen Transformations-Parameter zugeordnet zu einem oder mehreren Abstimmungs-Blickwinkeln bestimmt wird.
  16. Die Vorrichtung gemäß Anspruch 15, wobei der Prozessor ausgebildet ist zum Ausführen von zumindest einem aus: Auswählen des einen oder der mehreren Abstimmungs-Blickwinkel basierend auf zumindest einem aus einem Unterschied und einer Ähnlichkeit zwischen dem einen oder den mehreren Abstimmungs-Blickwinkeln und eines Blickwinkels spezifiziert durch die Blickwinkelinformationen; und Anpassen des zumindest einen anderen Transformations-Parameters, zugeordnet zu dem einen oder den mehreren Abstimmungs-Blickwinkeln im Hinblick auf einen Referenz-Blickwinkel.
  17. Die Vorrichtung gemäß einem der vorangehenden Ansprüche, wobei der zumindest eine Transformations-Parameter bestimmt wird unter Verwendung zumindest einem aus linearer Transformation und Perspektivtransformation basierend auf einer Änderung in zumindest einer aus den Blickwinkelinformationen und der Projektionsart.
  18. Ein Verfahren, umfassend: Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, das zusammenfügte Bild soll aus einer Kombination einer Mehrzahl von Bildern erzeugt werden, umfassend ein erstes Bild und ein zweites Bild; und Basierend auf den Blickwinkelinformationen und einer Projektionsart, Bestimmen von Transformationsparametern für zumindest eine Referenzregion, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes, um Zusammenfügungs-Parameter zu bestimmen; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.
  19. Das Verfahren gemäß Anspruch 18, wobei der zumindest eine Transformationsparameter einen oder mehrere Rotationsparameter und einen oder mehrere Translationparameter umfasst.
  20. Das Verfahren gemäß Anspruch 18 oder 19, wobei die Zusammenfügungs-Parameter eine konfigurierbare Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes umfassen und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf der konfigurieren Mischmaske zu kombinieren.
  21. Das Verfahren gemäß Anspruch 18, 19 oder 20, wobei die Zusammenfügungs-Parameter zumindest einen Anpassungsfaktor basierend auf Statistiken umfassen, die den überlappenden Regionen zugeordnet sind, und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf dem zumindest einen Anpassungsfaktor zu kombinieren.
  22. Zumindest ein nichtflüchtiges maschinenlesbares Speichermedium mit darauf gespeicherten Anweisungen, wobei die Anweisungen bei Ausführung durch eine Maschine die Maschine veranlassen zum: Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, das zusammenfügte Bild soll aus einer Kombination einer Mehrzahl von Bildern erzeugt werden, umfassend ein erstes Bild und ein zweites Bild; und Basierend auf den Blickwinkelinformationen und einer Projektionsart, Bestimmen von Transformationsparametern für zumindest eine Referenzregion, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes, um Zusammenfügungs-Parameter zu bestimmen; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.
  23. Das zumindest eine nichtflüchtige maschinenlesbare Speichermedium gemäß Anspruch 22, wobei die Zusammenfügungs-Parameter eine konfigurierbare Mischmaske basierend auf einer Projektionsart des ersten Bildes und des zweiten Bildes umfassen und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf der konfigurierten Mischmaske zu kombinieren.
  24. Das zumindest eine nichtflüchtige maschinenlesbare Speichermedium gemäß Anspruch 22 oder 23, wobei die Zusammenfügungs-Parameter zumindest einen Anpassungsfaktor basierend auf Statistiken umfassen, die den überlappenden Regionen zugeordnet sind, und der Prozessor ferner ausgebildet ist, um das erste Bild mit dem zweiten Bild basierend zumindest teilweise auf dem zumindest einen Anpassungsfaktor zu kombinieren.
  25. Ein System, umfassend: Mittel zum Speichern eines ersten Bildes, erfasst durch eine erste Kamera, und eines zweiten Bildes, erfasst durch eine zweite Kamera; und Mittel zum Identifizieren von Blickwinkelinformationen, die eine Ansicht für ein zusammengefügtes Bild definieren, das zusammenfügte Bild soll aus einer Kombination einer Mehrzahl von Bildern erzeugt werden, umfassend das erste Bild und das zweite Bild; und Mittel zum Bestimmen, basierend auf den Blickwinkelinformationen und einer Projektionsart, zumindest eines Transformationsparameters für zumindest eine Referenzregion, zugeordnet zu überlappenden Regionen des ersten Bildes und des zweiten Bildes, zum: Lokalisieren von überlappenden Regionen des ersten Bildes und des zweiten Bildes, um Zusammenfügungs-Parameter zu bestimmen; Kombinieren des ersten Bildes und des zweiten Bildes unter Verwendung der Zusammenfügungs-Parameter; und Zuweisen von Daten des kombinierten ersten Bildes und des zweiten Bildes an das zusammengefügte Bild.
DE102020113779.6A 2019-06-26 2020-05-21 Umgebungs-kamerasystem mit nahtlosem zusammenfügen für die auswahl beliebiger blickwinkel Pending DE102020113779A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/453,823 2019-06-26
US16/453,823 US11158056B2 (en) 2019-06-26 2019-06-26 Surround camera system with seamless stitching for arbitrary viewpoint selection

Publications (1)

Publication Number Publication Date
DE102020113779A1 true DE102020113779A1 (de) 2020-12-31

Family

ID=68236015

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020113779.6A Pending DE102020113779A1 (de) 2019-06-26 2020-05-21 Umgebungs-kamerasystem mit nahtlosem zusammenfügen für die auswahl beliebiger blickwinkel

Country Status (2)

Country Link
US (1) US11158056B2 (de)
DE (1) DE102020113779A1 (de)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016116859A1 (de) * 2016-09-08 2018-03-08 Knorr-Bremse Systeme für Nutzfahrzeuge GmbH Sensoranordnung für ein autonom betriebenes Nutzfahrzeug und ein Verfahren zur Rundumbilderfassung
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
US10861359B2 (en) * 2017-05-16 2020-12-08 Texas Instruments Incorporated Surround-view with seamless transition to 3D view system and method
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
WO2019079403A1 (en) * 2017-10-18 2019-04-25 Gopro, Inc. LOCAL EXPOSURE COMPENSATION
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
IL282172B2 (en) 2018-10-11 2024-02-01 Tesla Inc Systems and methods for training machine models with enhanced data
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US11150664B2 (en) 2019-02-01 2021-10-19 Tesla, Inc. Predicting three-dimensional features for autonomous driving
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US11288842B2 (en) * 2019-02-15 2022-03-29 Interaptix Inc. Method and system for re-projecting and combining sensor data for visualization
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
US20200294194A1 (en) * 2019-03-11 2020-09-17 Nvidia Corporation View synthesis using neural networks
US11198431B2 (en) * 2019-04-30 2021-12-14 Retrospect Technology, LLC Operational risk assessment for autonomous vehicle control
US11235761B2 (en) * 2019-04-30 2022-02-01 Retrospect Technology, LLC Operational risk assessment for autonomous vehicle control
US11341607B2 (en) * 2019-06-07 2022-05-24 Texas Instruments Incorporated Enhanced rendering of surround view images
US11109010B2 (en) * 2019-06-28 2021-08-31 The United States of America As Represented By The Director Of The National Geospatial-Intelligence Agency Automatic system for production-grade stereo image enhancements
CN110753217B (zh) * 2019-10-28 2022-03-01 黑芝麻智能科技(上海)有限公司 色彩平衡方法和装置、车载设备以及存储介质
US11462041B2 (en) * 2019-12-23 2022-10-04 Zoox, Inc. Pedestrians with objects
US11789155B2 (en) 2019-12-23 2023-10-17 Zoox, Inc. Pedestrian object detection training
CN111274974B (zh) * 2020-01-21 2023-09-01 阿波罗智能技术(北京)有限公司 定位元素检测方法、装置、设备和介质
US11403773B2 (en) 2020-03-28 2022-08-02 Wipro Limited Method of stitching images captured by a vehicle, and a system thereof
US11418773B2 (en) * 2020-04-21 2022-08-16 Plato Systems, Inc. Method and apparatus for camera calibration
CN112714282A (zh) * 2020-12-22 2021-04-27 北京百度网讯科技有限公司 远程控制中的图像处理方法、装置、设备和程序产品
CN112712023B (zh) * 2020-12-30 2024-04-05 武汉万集光电技术有限公司 车型识别方法、***及电子设备
CN112862670B (zh) * 2021-02-08 2023-12-05 中国科学院信息工程研究所 一种基于多视角融合的360°图像对抗样本生成方法
WO2022204855A1 (zh) * 2021-03-29 2022-10-06 华为技术有限公司 一种图像处理方法及相关终端装置
CN113421183B (zh) * 2021-05-31 2022-09-20 中汽数据(天津)有限公司 车辆环视全景图的生成方法、装置、设备和存储介质
CN114189697B (zh) * 2021-12-03 2022-10-14 腾讯科技(深圳)有限公司 一种视频数据处理方法、装置以及可读存储介质
US11849225B2 (en) * 2022-02-21 2023-12-19 Ghost Autonomy Inc. Throughput reduction in autonomous vehicle camera sensors
US11909944B1 (en) * 2022-02-21 2024-02-20 Ghost Autonomy Inc. Dynamic calibration of cameras in a stereoscopic configuration
US11805316B2 (en) * 2022-02-21 2023-10-31 Ghost Autonomy Inc. Reducing camera sensor throughput via an intermediary device
CN114549321A (zh) * 2022-02-25 2022-05-27 小米汽车科技有限公司 图像处理方法和装置、车辆、可读存储介质
CN114359055B (zh) * 2022-03-21 2022-05-31 湖南大学 一种多相机拍摄屏体的图像拼接方法及相关装置
CN116029900A (zh) * 2022-12-30 2023-04-28 小米汽车科技有限公司 图像处理方法、装置、存储介质以及车辆
CN115861080B (zh) * 2023-02-24 2023-05-23 杭州枕石智能科技有限公司 环视透明车底图像的拼接方法和终端设备
CN117408657B (zh) * 2023-10-27 2024-05-17 杭州静嘉科技有限公司 一种基于人工智能的人力资源服务***

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2421814C2 (ru) * 2009-02-20 2011-06-20 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ формирования составного изображения
US8294748B2 (en) * 2009-12-11 2012-10-23 DigitalOptics Corporation Europe Limited Panorama imaging using a blending map
US9686479B2 (en) * 2013-09-16 2017-06-20 Duke University Method for combining multiple image fields
CN106683071B (zh) * 2015-11-06 2020-10-30 杭州海康威视数字技术股份有限公司 图像的拼接方法和装置
US10512395B2 (en) * 2016-04-29 2019-12-24 Carl Zeiss Meditec, Inc. Montaging of wide-field fundus images
KR101844885B1 (ko) * 2016-07-11 2018-05-18 엘지전자 주식회사 차량 운전 보조장치 및 이를 포함하는 차량
US11049218B2 (en) * 2017-08-11 2021-06-29 Samsung Electronics Company, Ltd. Seamless image stitching

Also Published As

Publication number Publication date
US11158056B2 (en) 2021-10-26
US20190325580A1 (en) 2019-10-24

Similar Documents

Publication Publication Date Title
DE102020113779A1 (de) Umgebungs-kamerasystem mit nahtlosem zusammenfügen für die auswahl beliebiger blickwinkel
DE112019000049T5 (de) Für autonomes fahren geeignete objekterfassung und erfassungssicherheit
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
DE102019120880A1 (de) End-to-end-deep-generative-modell für simultane lokalisierung und abbildung
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE102020115479A1 (de) Erweiterte bildgebung mit hohem dynamikumfang und tone -mapping
DE112020002126T5 (de) Erkennung von kreuzungsposen in autonomen maschinenanwendungen
DE112020001396T5 (de) Formfusion zur bildanalyse
DE102020106176A1 (de) Lokalisierungssysteme und -verfahren
DE112020003043T5 (de) Erkennung und klassifizierung von kreuzungsregionen für autonome maschinenanwendungen
DE102020107029A1 (de) Beschleunigung der datenverarbeitung zur objektdetektion
DE102019104482A1 (de) Massen-abtastende punktwolkenkarte
DE112019000070T5 (de) Führen von fahrzeugen durch fahrzeugmanöver unter verwendung von modellen für maschinelles lernen
DE102019115707A1 (de) Räumliches und zeitliches aufmerksamkeitsbasiertes tiefenverstärkungslernen von hierarchischen fahrspurwechselstrategien zum steuern eines autonomen fahrzeugs
DE102019115809A1 (de) Verfahren und system zum durchgehenden lernen von steuerbefehlen für autonome fahrzeuge
DE112019001605T5 (de) Trainieren, testen und verifizieren von autonomen maschinen unter verwendung simulierter umgebungen
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE102018105417A1 (de) Fahrzeugortung unter verwendung von kameras
DE112018000335T5 (de) Systeme und verfahren für einen berechnungsrahmen zur visuellen warnung des fahrers unter verwendung einer "fully convolutional"-architektur
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE102019110430A1 (de) Nebenbedingungen der simultanen positionsbestimmung und kartenerstellung in generative adversarial networks zur monokularen tiefenschätzung
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
DE102021133638A1 (de) Bildzusammensetzung in multi-view-automobilsystemen und robotersystemen