DE112021004501T5 - Modellierung der fahrzeugumgebung mit einer kamera - Google Patents

Modellierung der fahrzeugumgebung mit einer kamera Download PDF

Info

Publication number
DE112021004501T5
DE112021004501T5 DE112021004501.6T DE112021004501T DE112021004501T5 DE 112021004501 T5 DE112021004501 T5 DE 112021004501T5 DE 112021004501 T DE112021004501 T DE 112021004501T DE 112021004501 T5 DE112021004501 T5 DE 112021004501T5
Authority
DE
Germany
Prior art keywords
image
unrectified
previous
rectified
coordinates
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
DE112021004501.6T
Other languages
English (en)
Inventor
Gideon Stein
Itay BLUMENTHAL
Jeffrey Moskowitz
Nadav SHAAG
Natalie Carlebach
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.)
Mobileye Vision Technologies Ltd
Original Assignee
Mobileye Vision Technologies Ltd
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 Mobileye Vision Technologies Ltd filed Critical Mobileye Vision Technologies Ltd
Publication of DE112021004501T5 publication Critical patent/DE112021004501T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • B60W40/06Road conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24137Distances to cluster centroïds
    • G06F18/2414Smoothing the distance, e.g. radial basis function networks [RBFN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/247Aligning, centring, orientation detection or correction of the image by affine transforms, e.g. correction due to perspective effects; Quadrilaterals, e.g. trapezoids

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mathematical Physics (AREA)
  • Mechanical Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

Hierin sind ein System und Techniken zur Modellierung einer Fahrzeugumgebung mit einer Kamera beschrieben. Eine Vorrichtung zum Modellieren einer Umgebung umfasst: eine Hardwaresensorschnittstelle zum Erhalten einer Sequenz von nicht rektifizierten Bildern, die eine Straßenumgebung repräsentieren, wobei die Sequenz von nicht rektifizierten Bildern ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhaltet; und eine Verarbeitungsschaltungsanordnung zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an ein künstliches neuronales Netzwerk (ANN), um eine dreidimensionale Struktur einer Szene zu erzeugen; Bestimmen einer ausgewählten Homographie; und Anwenden der ausgewählten Homographie an der dreidimensionalen Struktur der Szene, um ein Modell der Straßenumgebung zu erzeugen.

Description

  • TECHNISCHES GEBIET
  • Hierin beschriebene Ausführungsformen betreffen allgemein Computer-Vision-Techniken und insbesondere die Modellierung einer Fahrzeugumgebung mit einer Kamera.
  • HINTERGRUND
  • Autonome oder semi-autonome Kraftfahrzeugtechnologien, bei Kraftfahrzeugen häufig als „Selbstfahr“- oder „Fahrassistenz“-Betrieb bezeichnet, unterliegen einer rasanten Entwicklung und einem rasanten Einsatz in Nutz- und Verbraucherfahrzeugen. Diese Systeme verwenden ein Array von Sensoren, um die Bewegung und das Umfeld des Fahrzeugs kontinuierlich zu beobachten. Eine Vielfalt von Sensortechnologien kann verwendet werden, um das Umfeld des Fahrzeugs, wie etwa die Straßenoberfläche und -grenzen, andere Fahrzeuge, Fußgänger, Objekte und Gefahren, Beschilderung und Straßenmarkierungen, und andere relevante Gegenstände zu beobachten.
  • Bilderfassungssensoren, die mit einer oder mehreren Kameras implementiert sind, sind besonders zur Objektdetektion und -erkennung und zum Lesen von Schildern und Straßenmarkierungen nützlich. Kamerabasierte Systeme wurden zum Messen dreidimensionaler Strukturen, wie etwa der vertikalen Kontur der Straße, Spurmarkierungen und Bordsteinkanten, und beim Detektieren von Objekten oder Gefahren angewendet. Es wird erwartet, dass praktische Sensorsysteme bei variierenden Wetter- und Straßenbedingungen zuverlässig arbeiten. Diese Erwartungen tendieren dazu, unzählige Herausforderungen bei der Verarbeitung der Eingaben einzuführen. Eingaberauschen von Schatten oder Lichtern bei Nacht kann die Detektion der Straßenoberfläche stören. Nasse Stra-ßen oder andere reflektierende Oberflächen führen häufig eine scheinbare Bewegung ein, die den Straßenoberflächenmodellen widerspricht. Ferner belastet die Notwendigkeit für eine schnelle (z. B. Echtzeit-) Detektion von Gefahren während der Modellierung von Straßenoberflächen, um autonomes oder unterstütztes Fahren zu ermöglichen, die Hardware angesichts dieser Schwierigkeiten bei der Detektion von Straßenoberflächen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen, die nicht notwendigerweise maßstabsgetreu gezeichnet sind, können gleiche Ziffern ähnliche Komponenten in unterschiedlichen Ansichten beschreiben. Gleiche Ziffern, die unterschiedliche Buchstabensuffixe aufweisen, können unterschiedliche Instanzen ähnlicher Komponenten repräsentieren. Einige Ausführungsformen sind beispielhaft und nicht beschränkend in den Figuren der begleitenden Zeichnungen veranschaulicht, in denen gilt:
    • 1 ist eine Blockdiagrammrepräsentation eines Systems, in Übereinstimmung gemäß einer Ausführungsform;
    • 2A ist eine diagrammatische Seitenansichtsrepräsentation eines beispielhaften Fahrzeugs, das ein System beinhaltet, gemäß einer Ausführungsform;
    • 2B ist eine diagrammatische Draufsichtsrepräsentation des in 2A gezeigten Fahrzeugs und Systems, gemäß einer Ausführungsform;
    • 2C ist eine diagrammatische Draufsichtsrepräsentation einer anderen Ausführungsform eines Fahrzeugs, das ein System beinhaltet, gemäß einer Ausführungsform;
    • 2D ist eine diagrammatische Draufsichtsrepräsentation noch einer anderen Ausführungsform eines Fahrzeugs, das ein System beinhaltet, gemäß einer Ausführungsform;
    • 2E ist eine diagrammatische Repräsentation eines beispielhaften Fahrzeugsteuersystems, gemäß einer Ausführungsform;
    • 3 ist eine diagrammatische Repräsentation eines Innenraums eines Fahrzeugs einschließlich eines Rückspiegels und einer Benutzerschnittstelle für ein Fahrzeugbildgebungssystem, gemäß einer Ausführungsform;
    • 4 ist ein Blockdiagramm eines Beispiels für eine Fahrzeugumgebung;
    • 5 ist ein Blockdiagramm eines Beispiels für ein System zur Modellierung der Fahrzeugumgebung mit einer Kamera, gemäß einer Ausführungsform;
    • 6 veranschaulicht ein Beispiel für ein neuronales Netzwerk zum Erzeugen eines Gamma-Modells einer Straßenoberfläche, gemäß einer Ausführungsform;
    • 7 veranschaulicht ein beispielhaftes tiefes neuronales Netzwerk (DNN) einer Maschinenlern(ML)-basierten Vertikalkontur-Engine, gemäß einer Ausführungsform;
    • 8 veranschaulicht ein Beispiel für eine DNN-Trainings-Engine, gemäß einer Ausführungsform;
    • 9 ist ein Flussdiagramm, das ein Beispiel für ein Verfahren zum Modellieren einer Umgebung im Umfeld eines Fahrzeugs veranschaulicht, gemäß einer Ausführungsform;
    • 10 veranschaulicht ein kamerabasiertes, fahrzeugmontiertes System zur Profilerstellung einer Straße zur Verwendung mit einem Steuersystem eines autonomen Fahrzeugs, gemäß einer Ausführungsform;
    • 11 veranschaulicht ein Mehrkameraarray an einem Fahrzeug, gemäß einer Ausführungsform;
    • 12 veranschaulicht Beispiele für Sichtfelder, die durch ein Mehrkameraarray erfasst werden können, gemäß einer Ausführungsform; und
    • 13 ist ein Blockdiagramm, das eine beispielhafte Maschine veranschaulicht, auf der eine oder mehrere beliebige der hierin besprochenen Techniken (z. B. Methoden) durchgeführt werden können, gemäß einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung sind für Erläuterungszwecke zahlreiche spezifische Einzelheiten dargelegt, um ein durchgehendes Verständnis einiger beispielhafter Ausführungsformen bereitzustellen. Es wird einem Fachmann auf dem Gebiet jedoch ersichtlich sein, dass die vorliegende Offenbarung ohne diese spezifischen Einzelheiten umgesetzt werden kann.
  • Eine Vielfalt von Techniken zur Modellierung der Fahrzeugumgebung können mit einer Vielfalt von Sensorkonfigurationen verwendet werden. Wenn eine Kamera (z. B. visuelles Lichtspektrum, Infrarot (IR) usw.) verwendet wird, erzeugen die Sensoren ein Bild, das aus Pixeln besteht. Verschiedene Merkmale der Pixel, wie etwa Farb- oder Luminanzwerte, können bei der Modellierung verwendet werden. Im Allgemeinen wird zum Modellieren einer dynamischen Umgebung eine Sequenz von Bildern analysiert, und basierend auf der Bewegung von Pixeln zwischen sequenziellen Bildern können Aspekte der Umgebung inferiert werden. Diese Aspekte können Merkmale wie etwa die Bewegung des Host-Fahrzeugs, wie sich andere Fahrzeuge bewegen, wie sich andere Objekte bewegen, die in den Bildern erfasst werden (z. B. Menschen, Tiere, Bälle usw.), Hindernisse auf der Straße, Merkmale der Straßenoberfläche (z. B. Schlaglöcher, Verkehrsschwellen, Spurmarkierungen usw.) und dergleichen beinhalten.
  • In vorherigen Systemen und Implementierungen wird ein Künstliches-Intelligenz(KI)-System trainiert, Aspekte einer Szene zu berechnen, die durch ein Bilderfassungssystem erfasst wird. Ein KI-System (z. B. Maschinenlernsystem, ein künstliches neuronales Netzwerk (ANN), ein tiefes ANN (DNN), ein faltendes ANN (CNN) usw.) kann trainiert werden, Gamma aus einer Sequenz von Bildern zu berechnen. Gamma ist als H Z
    Figure DE112021004501T5_0001
    zu verstehen, was ein Verhältnis von Höhe H eines Pixels über einer Ebene (z. B. der Straßenoberfläche) und Abstand Z eines Pixels zu dem Sensor (z. B. Bilderfassungsvorrichtung) ist.
  • Aus Gamma können eine Höhe eines Pixels über der Straßenebene und ein Abstand zu diesem Pixel bestimmt werden. Eine solche Modellierung der Straßenoberfläche kann zum Beispiel nützlich sein, um Schlaglöcher zu vermeiden oder die Aufhängung für Verkehrsschwellen anzupassen. Das direkte Bestimmen von Gamma aus Sensordaten (z. B. durch ein ANN) kann anderen Techniken - wie etwa Techniken mit dem Verwenden eines zweidimensionalen (2D) optischen Flusses, um Residual-Fluss zu ermitteln, oder eines ANN zum Bestimmen von Höhe über Ebene und Abstand zu dem Sensor eines Pixels - überlegen sein, da es epipolare Beschränkungen erzwingt.
  • Obwohl das ANN trainiert werden kann, die Tiefe oder die Höhe eines gegebenen Punktes direkt zu bestimmen, stellt die Verwendung von Gamma ein paar Vorteile bereit. Beispielsweise ist die Gamma-Berechnung stabiler als Tiefe, da signifikante Änderungen der Höhe von der Ebene zu relativ kleinen Änderungen der Tiefe von der Kamera führen können. In Anbetracht von H und der Referenzebene ist es auch möglich, die Tiefe Z und dann den Residual-Fluss zu berechnen, aber dies erhöht die Komplexität, da das ANN mehr Daten für das gleiche Ergebnis verarbeitet. In vorherigen Implementierungen ist dies auch ein Grund dafür, Bilder zuvor mit einem Ebenenmodell zu warpen und Ego-Bewegung (EM) bereitzustellen (z. B. Bewegung des Sensors oder Fahrzeugs wie etwa der Epipol e
    Figure DE112021004501T5_0002
    und T L Z d π '
    Figure DE112021004501T5_0003
    als Eingabe, wobei TZ die Translation eines Sensors in die Vorwärtsrichtung repräsentiert (z. B. wie weit bewegte sich das Fahrzeug zwischen Bildern) und d π '
    Figure DE112021004501T5_0004
    die Höhe des Sensors von der Ebene repräsentiert).
  • In Implementierungen, die die Tiefe Z oder Höhe H anstelle von Gamma berechnen, können dem ANN Eingabeparameter der Homographie-Ebene bereitgestellt werden. Beispielsweise kann die Ebene als eine Horizontlinie (z. B. die Fluchtlinie der Ebene) und ein Abstand zu der Ebene definiert sein. Die Linie kann als ein Paar von Abstandsbildern bereitgestellt sein, und der Abstand zu der Ebene wird als ein konstantes Bild bereitgestellt. Dies ähnelt der Weise, wie der Epipol und TZ oben als Eingabe bereitgestellt sind. Die Eingabebilder können ausgerichtet werden, um nur Rotation zu berücksichtigen (z. B. unter Verwendung einer Homographie , die eine Ebene bei Unendlichkeit verwendet) und Z zu berechnen.
  • In einer anderen Implementierung, anstatt Gamma für das gesamte Bild zu berechnen und dann nur das Gamma entlang eines bestimmten Pfads zu verwenden (z. B. zur Aufhängungssteuerung), kann das ANN trainiert werden, Gamma nur entlang eines spezifizierten Pfads zu erzeugen. Dies kann rechnerisch effizienter sein, falls zum Beispiel die Ausgabe nur für etwas verwendet wird, das auf Fahrzeugreifen anwendbar ist, wie etwa Aufhängungssteuerung, da die Entfaltungsoperationen rechenintensiv sein können. Pfaddiskriminierung (z. B. Erzeugen von Gamma für nur den Pfad) kann auf eine Anzahl von Weisen implementiert werden. Beispielsweise kann der Pfad als Eingabe bei der Inferenzstufe des ANN gegeben werden, wobei das ANN trainiert wird, nur Werte entlang des Pfads auszugeben. In einer anderen Implementierung kann das volle ANN trainiert werden, Gamma zu erzeugen, wie oben beschrieben. Dann wird während der Inferenz, wenn der Pfad gegeben ist, eine Bestimmung dahingehend vorgenommen, welche (Ent)Faltungen in der Erweiterungsstufe für den Pfad benötigt werden, und nur diese Entfaltungen werden angewendet. Beispielsweise werden zum Bestimmen von Gamma-Werten für eine vollständige Zeile der Ausgabe Faltungen entlang einer vollständigen Zeile benötigt. Für nur ein Segment der Ausgabezeile bezüglich eines Pfads müssen die Entfaltungen jedoch nur in einem gewissen Bereich entsprechend dem Segment durchgeführt werden.
  • In vorherigen Implementierungen wurden die Bilder zuerst rektifiziert, bevor sie in das ANN eingegeben wurden. Bildrektifizierung ist ein Prozess zum Transformieren eines Bildes auf eine gemeine Bildebene. In dem Kontext dieser Anmeldung beinhaltet Rektifizierung das Aufnehmen eines Rohbildes, das durch die Linsengeometrie verzerrt sein kann, und Transformieren von diesem zu einem Pinhole-Kamera-Modell. Ein Pinhole-Kamera-Modell beinhaltet keine geometrischen Verzerrungen oder Unschärfe von Objekten, die durch Linsen und endlich große Aperturen verursacht werden.
  • In den Systemen und Mechanismen, die in dem vorliegenden Dokument beschrieben sind, wird das ANN unter Verwendung nicht rektifizierter (d. h. verzerrter) Bilder trainiert, die von Bilderfassungsvorrichtungen erhalten werden. Diese nicht rektifizierten Bilder beinhalten Linsenverzerrungen und andere Artefakte aufgrund der Verwendung einer festen Apertur und Linse. Das ANN erzeugt eine Gamma-Karte als Ausgabe. Nachdem das ANN trainiert ist, ist das ANN in der Lage, nicht rektifizierte Bilder während der Inferenz zu verwenden, um eine Gamma-Karte zu erzeugen. Teile der Gamma-Karte werden rektifiziert, und dann können herkömmliche geometrische Pinhole-Gleichungen verwendet werden, um die Fahrbahn und die umliegende Umgebung zu modellieren.
  • Verarbeitungszeit und Leistungsverbrauch werden reduziert, da die Bilder nicht vorverarbeitet werden müssen, bevor sie als Eingabe in das ANN bereitgestellt werden. Wenn eine Rektifizierung verwendet wird, wird sie an einem Teilsatz von Bildkoordinaten angewendet, was noch effizienter ist. Diese Merkmale und andere sind weiter unten beschrieben.
  • 1, auf die jetzt Bezug genommen wird, ist eine Blockdiagrammrepräsentation eines Systems in Übereinstimmung mit den offenbarten Ausführungsformen. Ein System 100 kann in Abhängigkeit von den Anforderungen einer bestimmten Implementierung verschiedene Komponenten beinhalten. In einigen Beispielen kann das System 100 eine Verarbeitungseinheit 110, eine Bildgewinnungseinheit 120 und eine oder mehrere Speichereinheiten 140, 150 beinhalten. Die Verarbeitungseinheit 110 kann eine oder mehrere Verarbeitungsvorrichtungen beinhalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 einen Anwendungsprozessor 180, einen Bildprozessor 190 oder eine beliebige andere geeignete Verarbeitungsvorrichtung beinhalten. Gleichermaßen kann die Bildgewinnungseinheit 120 in Abhängigkeit von den Anforderungen einer bestimmten Anwendung eine beliebige Anzahl von Bildgewinnungseinheiten und -komponenten beinhalten. In einigen Ausführungsformen kann die Bildgewinnungseinheit 120 eine oder mehrere Bilderfassungsvorrichtungen (z. B. Kameras) beinhalten, wie etwa eine Bilderfassungsvorrichtung 122, eine Bilderfassungsvorrichtung 124 und eine Bilderfassungsvorrichtung 126. In einigen Ausführungsformen kann das System 100 auch eine Datenschnittstelle 128 beinhalten, die die Verarbeitungseinheit 110 kommunikativ mit der Bildgewinnungseinheit 120 verbindet. Beispielsweise kann die Datenschnittstelle 128 einen oder mehrere drahtgebundene und/oder drahtlose Link oder Links zum Übertragen von Bilddaten, die durch die Bildgewinnungseinheit 120 gewonnen werden, zu der Verarbeitungseinheit 110 beinhalten.
  • Sowohl der Anwendungsprozessor 180 als auch der Bildprozessor 190 können verschiedene Arten von Verarbeitungsvorrichtungen beinhalten. Beispielsweise können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 eine(n) oder mehrere Mikroprozessoren, Vorprozessoren (wie etwa Bildvorprozessoren), Grafikprozessoren, Zentralverarbeitungseinheiten (CPUs), Unterstützungsschaltungen, Digitalsignalprozessoren, integrierte Schaltungen, Speicher oder beliebige andere Arten von Vorrichtungen beinhalten, die sich zum Ausführen von Anwendungen und zur Bildverarbeitung und -analyse eignen. In einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 eine beliebige Art von Einzel- oder Mehrkemprozessor, Mobilvorrichtungsmikrocontroller, Zentralverarbeitungseinheit usw. beinhalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, einschließlich zum Beispiel Prozessoren, die von Herstellern wie etwa Intel®, AMD® usw. verfügbar sind, und können verschiedene Architekturen (z. B. x86-Prozessor, ARM® usw.) beinhalten.
  • In einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 beliebige der EyeQ-Reihe von Prozessorchips beinhalten, die von Mobileye® verfügbar sind. Diese Prozessordesigns beinhalten jeweils mehrere Verarbeitungseinheiten mit lokalem Speicher und Befehlssätzen. Solche Prozessoren können Videoeingänge zum Empfangen von Bilddaten von mehreren Bildsensoren beinhalten und können auch Videoausgabefähigkeiten beinhalten. In einem Beispiel verwendet das EyeQ2® eine 90-nm-Mikron-Technologie, die bei 332 MHz arbeitet. Die EyeQ2®-Architektur weist zwei Gleitkomma-Hyperthread-32-Bit-RISC-CPUs (MIPS32® 34K® Kerne), fünf Vision Computing Engines (VCE), drei Vector Microcode Processors (VMP®, Vektor-Mikrocode-Prozessoren), eine Denali 64-Bit-Mobile-DDR-Steuerung, ein internes 128-Bit-Sonics-Interconnect, duale 16-Bit-Videoeingang- und 18-Bit-Videoausgangssteuerungen, 16-Kanäle-DMA und mehrere Peripheriegeräte auf. Die MIPS34K-CPU verwaltet die fünf VCEs, drei VMP® und den DMA, die zweite MIPS34K-CPU und den Mehrkanal-DMA sowie die anderen Peripheriegeräte. Die fünf VCEs, drei VMP® und die MIPS34K-CPU können intensive Visionsberechnungen durchführen, die durch multifunktionelle Bündelanwendungen benötigt werden. In einem anderen Beispiel kann das EyeQ3®, das ein Prozessor der dritten Generation ist und sechsmal leistungsstärker als das EyeQ2® ist, in den offenbarten Beispielen verwendet werden. In noch einem anderen Beispiel kann das EyeQ4®, der Prozessor der vierten Generation, in den offenbarten Beispielen verwendet werden.
  • Während 1 zwei separate Verarbeitungsvorrichtungen darstellt, die in der Verarbeitungseinheit 110 enthalten sind, können mehr oder weniger Verarbeitungsvorrichtungen verwendet werden. Beispielsweise kann in einigen Beispielen eine einzelne Verarbeitungsvorrichtung verwendet werden, um die Aufgaben des Anwendungsprozessors 180 und des Bildprozessors 190 zu erzielen. In anderen Ausführungsformen können diese Aufgaben durch mehr als zwei Verarbeitungsvorrichtungen durchgeführt werden.
  • Die Verarbeitungseinheit 110 kann verschiedene Arten von Vorrichtungen beinhalten. Beispielsweise kann die Verarbeitungseinheit 110 verschiedene Vorrichtungen, wie etwa eine Steuerung, einen Bildvorprozessor, eine Zentralverarbeitungseinheit (CPU), Unterstützungsschaltungen, Digitalsignalprozessoren, integrierte Schaltungen, Speicher oder beliebige andere Arten von Vorrichtungen zur Bildverarbeitung und -analyse beinhalten. Der Bildvorprozessor kann einen Videoprozessor zum Erfassen, Digitalisieren und Verarbeiten der Bilder von den Bildsensoren beinhalten. Die CPU kann eine beliebige Anzahl von Mikrocontrollern oder Mikroprozessoren beinhalten. Die Unterstützungsschaltungen können eine beliebige Anzahl von Schaltungen sein, die im Allgemeinen in der Technik wohlbekannt sind, einschließlich Cache-, Leistungsversorgungs-, Takt- und Eingabe-Ausgabe-Schaltungen. Der Speicher kann Software speichern, die, wenn sie durch den Prozessor ausgeführt wird, den Betrieb des Systems steuert. Der Speicher kann Datenbanken und Bildverarbeitungssoftware, einschließlich eines trainierten Systems, wie etwa zum Beispiel ein neuronales Netzwerk, beinhalten. Der Speicher kann eine beliebige Anzahl von Direktzugriffsspeichern, Nurlesespeichern, Flash-Speichern, Plattenlaufwerken, optischer Speicherung, entfernbarer Speicherung und anderen Arten von Speicherung beinhalten. In einem Fall kann der Speicher von der Verarbeitungseinheit 110 separat sein. In einem anderen Fall kann der Speicher in die Verarbeitungseinheit 110 integriert sein.
  • Jeder Speicher 140, 150 kann Softwareanweisungen beinhalten, die, wenn sie durch einen Prozessor (z. B. den Anwendungsprozessor 180 und/oder den Bildprozessor 190) ausgeführt werden, den Betrieb verschiedener Aspekte des Systems 100 steuern können. Diese Speichereinheiten können verschiedene Datenbanken und Bildverarbeitungssoftware beinhalten. Die Speichereinheiten 140, 150 können Direktzugriffsspeicher, Nurlesespeicher, Flash-Speicher, Plattenlaufwerke, optische Speicherung, Bandspeicherung, entfernbare Speicherung und andere Arten von Speicherung beinhalten. In einigen Beispielen können die Speichereinheiten 140, 150 von dem Anwendungsprozessor 180 und/oder dem Bildprozessor 190 separat sein. In anderen Ausführungsformen können diese Speichereinheiten in den Anwendungsprozessor 180 und/oder den Bildprozessor 190 integriert sein.
  • In einigen Ausführungsformen kann das System einen Positionssensor 130 beinhalten. Der Positionssensor 130 kann eine beliebige Art von Vorrichtung beinhalten, die zum Bestimmen eines Standorts geeignet ist, der mit mindestens einer Komponente des Systems 100 assoziiert ist. In einigen Ausführungsformen kann der Positionssensor 130 einen GPS-Empfänger beinhalten. Solche Empfänger können eine Benutzerposition und -geschwindigkeit durch Verarbeitung von Signalen, die durch Satelliten des globalen Positionierungssystems übermittelt werden, bestimmen. Positionsinformationen vom Positionssensor 130 können dem Anwendungsprozessor 180 und/oder dem Bildprozessor 190 verfügbar gemacht werden.
  • In einigen Ausführungsformen kann das System 100 operativ mit verschiedenen Systemen, Vorrichtungen und Einheiten an Bord eines Fahrzeugs verbindbar sein, in dem das System 100 montiert werden kann, und über beliebige geeignete Schnittstellen (z. B. einen Kommunikationsbus) kann das System 100 mit den Systemen des Fahrzeugs kommunizieren. Beispiele für Fahrzeugsysteme, mit denen das System 100 kooperieren kann, beinhalten: ein Drosselsystem, ein Bremssystem und ein Lenksystem (z. B. Drosselsystem 220, Bremssystem 230 und Lenksystem 240 von 2E).
  • In einigen Ausführungsformen kann das System 100 eine Benutzerschnittstelle 170 beinhalten. Die Benutzerschnittstelle 170 kann eine beliebige Vorrichtung beinhalten, die zum Bereitstellen von Informationen an oder zum Empfangen von Eingaben von einem oder mehreren Benutzers des Systems 100 geeignet ist, einschließlich zum Beispiel eines Touchscreens, eines Mikrofons, einer Tastatur, Zeigervorrichtungen, Trackwheels, Kameras, Knöpfen, Tasten usw. Informationen können durch das System 100 über die Benutzerschnittstelle 170 an den Benutzer bereitgestellt werden.
  • In einigen Ausführungsformen kann das System 100 eine Kartendatenbank 160 beinhalten. Die Kartendatenbank 160 kann eine beliebige Art von Datenbank zum Speichern digitaler Kartendaten beinhalten. In einigen Beispielen kann die Kartendatenbank 160 Daten bezüglich einer Position, in einem Referenzkoordinatensystem, verschiedener Gegenstände beinhalten, einschließlich Straßen, Gewässern, geographischen Merkmalen, Punkten von Interesse usw. Die Kartendatenbank 160 kann nicht nur die Standorte solcher Gegenstände, sondern auch Deskriptoren bezüglich dieser Gegenstände, einschließlich zum Beispiel Namen, die mit jeglichen der gespeicherten Merkmale assoziiert sind, und andere Informationen über sie speichern. Beispielsweise können Orte und Typen bekannter Hindernisse in der Datenbank, Informationen über eine Topographie einer Straße oder eine Steigung gewisser Punkte entlang einer Straße usw. eingeschlossen werden. In einigen Ausführungsformen kann die Kartendatenbank 160 physisch mit anderen Komponenten des Systems 100 lokalisiert sein. Alternativ oder zusätzlich kann die Kartendatenbank 160 oder ein Teil davon bezüglich anderer Komponenten des Systems 100 (z. B. Verarbeitungseinheit 110) entfernt lokalisiert sein. In solchen Ausführungsformen können Informationen von der Kartendatenbank 160 über eine drahtgebundene oder drahtlose Datenverbindung zu einem Netzwerk (z. B. über ein zellulares Netzwerk und/oder das Internet usw.) heruntergeladen werden.
  • Die Bilderfassungsvorrichtungen 122, 124 und 126 können jeweils eine beliebige Art von Vorrichtung beinhalten, die zum Erfassen mindestens eines Bildes von einer Umgebung geeignet ist. Darüber hinaus kann eine beliebige Anzahl von Bilderfassungsvorrichtungen verwendet werden, um Bilder zur Eingabe in den Bildprozessor zu gewinnen. Einige Beispiele des gegenwärtig offenbarten Gegenstands kann nur eine einzelne Bilderfassungsvorrichtung beinhalten oder mit dieser implementiert werden, während andere Beispiele zwei, drei oder sogar vier oder mehr Bilderfassungsvorrichtungen beinhalten oder mit diesen implementiert werden können. Die Bilderfassungsvorrichtungen 122, 124 und 126 werden ferner mit Bezug auf 2B - 2E unten beschrieben.
  • Es würde verstanden werden, dass das System 100 andere Typen von Sensoren beinhalten oder mit diesen operativ assoziiert sein kann, einschließlich zum Beispiel: ein akustischer Sensor, ein Funkfrequenz(RF)-Sensor (z. B. Radar-Sendeempfänger), ein LIDAR-Sensor. Solche Sensoren können unabhängig von oder in Zusammenarbeit mit der Bildgewinnungseinheit 120 verwendet werden. Beispielsweise können die Daten vom Radarsystem (nicht gezeigt) zum Validieren der verarbeiteten Informationen verwendet werden, die von der Verarbeitung von Bildern empfangen werden, die durch die Bildgewinnungseinheit 120 gewonnen werden, um z. B. gewisse Falsch-Positive zu filtern, die aus der Verarbeitung von Bildern resultieren, die durch die Bildgewinnungseinheit 120 gewonnen werden, oder sie können mit den Bilddaten von der Bildgewinnungseinheit 120, oder eine verarbeitete Variation oder Ableitung der Bilddaten von der Bildgewinnungseinheit 120, kombiniert werden oder diese anderweitig ergänzen.
  • Das System 100, oder verschiedene Komponenten davon, kann in verschiedene unterschiedliche Plattformen integriert sein. In einigen Ausführungsformen kann das System 100 an einem Fahrzeug 200 enthalten sein, wie in 2A gezeigt. Beispielsweise kann das Fahrzeug 200 mit einer Verarbeitungseinheit 110 und beliebigen der anderen Komponenten des Systems 100 ausgestattet sein, wie oben bezüglich 1 beschrieben. Während in einigen Ausführungsformen das Fahrzeug 200 mit nur einer einzigen Bilderfassungsvorrichtung (z. B. Kamera) ausgestattet sein kann, können in anderen Ausführungsformen, wie etwa jenen, die in Verbindung mit 2B - 2E besprochen sind, mehrere Bilderfassungsvorrichtungen verwendet werden. Beispielsweise kann eine der beiden Bilderfassungsvorrichtungen 122 und 124 des Fahrzeugs 200, wie in 2A gezeigt, Teil eines FAS(Fahrerassistenzsystem)-Bildgebungssatzes sein.
  • Die Bilderfassungsvorrichtungen, die am Fahrzeug 200 als Teil der Bildgewinnungseinheit 120 enthalten sind, können an einem beliebigen geeigneten Ort positioniert sein. In einigen Ausführungsformen, wie in 2A - 2E und 3 gezeigt, kann sich die Bilderfassungsvorrichtung 122 in der Nähe des Rückspiegels befinden. Diese Position kann eine Sichtlinie ähnlich zu der des Fahrers des Fahrzeugs 200 bereitstellen, was bei der Bestimmung helfen kann, was für den Fahrer sichtbar ist oder nicht.
  • Andere Orte für die Bilderfassungsvorrichtungen der Bildgewinnungseinheit 120 können auch verwendet werden. Beispielsweise kann sich die Bilderfassungsvorrichtung 124 an oder in einer Stoßstange des Fahrzeugs 200 befinden. Ein solcher Ort kann insbesondere für Bilderfassungsvorrichtungen mit einem breiten Sichtfeld geeignet sein. Die Sichtlinie von sich an Stoßstangen befindlichen Bilderfassungsvorrichtungen kann sich von der des Fahrers unterscheiden. Die Bilderfassungsvorrichtungen (z. B. Bilderfassungsvorrichtungen 122, 124 und 126) können sich auch an anderen Orten befinden. Beispielsweise können sich die Bilderfassungsvorrichtungen an oder in einem oder beiden der Seitenspiegel des Fahrzeugs 200, auf dem Dach des Fahrzeugs 200, auf der Motorhaube des Fahrzeugs 200, auf dem Kofferraum des Fahrzeugs 200, an den Seiten des Fahrzeugs 200 befinden, an beliebigen der Fenster des Fahrzeugs 200 befestigt, dahinter positioniert oder davor positioniert sein und in oder nahe Leuchten an der Vorderseite und/oder Hinterseite des Fahrzeugs 200 montiert sein usw. Die Bilderfassungseinheit 120, oder eine Bilderfassungsvorrichtung, die eine einer Mehrzahl von Bilderfassungsvorrichtungen ist, die in einer Bilderfassungseinheit 120 verwendet werden, kann ein Sichtfeld (Field-Of-View, FOV) aufweisen, das sich von dem FOV eines Fahrers eines Fahrzeugs unterscheidet, und sehen nicht immer die selben Objekte. In einem Beispiel kann sich das FOV der Bildgewinnungseinheit 120 über das FOV eines typischen Fahrers hinaus erstrecken und kann somit Objekte bildlich erfassen, die sich außerhalb des FOV des Fahrers befinden. In noch einem anderen Beispiel ist das FOV der Bildgewinnungseinheit 120 ein Teil des FOV des Fahrers. In einigen Ausführungsformen entspricht das FOV der Bildgewinnungseinheit 120 einem Sektor, der einen Bereich einer Straße vor einem Fahrzeug und möglicherweise auch das Umfeld der Straße abdeckt.
  • Zusätzlich zu Bilderfassungsvorrichtungen kann das Fahrzeug 200 verschiedene andere Komponenten des Systems 100 beinhalten. Beispielsweise kann die Verarbeitungseinheit 110 am Fahrzeug 200 entweder integriert mit oder separat von einer Motorsteuereinheit (Engine Control Unit, ECU) des Fahrzeugs enthalten sein. Das Fahrzeug 200 kann auch mit einem Positionssensor 130, wie etwa einem GPS-Empfänger, ausgestattet sein und kann auch eine Kartendatenbank 160 und Speichereinheiten 140 und 150 beinhalten.
  • 2A ist eine diagrammatische Seitenansichtsrepräsentation eines Fahrzeugbildgebungssystems gemäß Beispielen des gegenwärtig offenbarten Gegenstands. 2B ist eine diagrammatische Draufsichtsveranschaulichung des in 2A gezeigten Beispiels. Wie in 2B veranschaulicht, können die offenbarten Beispiele ein Fahrzeug 200 beinhalten, das ein System 100 mit einer ersten Bilderfassungsvorrichtung 122, die in der Nähe des Rückspiegels und/oder nahe dem Fahrer des Fahrzeug 200 positioniert ist, einer zweiten Bilderfassungsvorrichtung 124, die an oder in einem Stoßstangengebiet (z. B. einem der Stoßstangengebiete 210) des Fahrzeugs 200 positioniert ist, und einer Verarbeitungseinheit 110 beinhaltet.
  • Wie in 2C veranschaulicht, können beide Bilderfassungsvorrichtungen 122 und 124 in der Nähe des Rückspiegels und/oder nahe dem Fahrer des Fahrzeugs 200 positioniert sein. Zusätzlich sollte verstanden werden, dass, obwohl zwei Bilderfassungsvorrichtungen 122 und 124 in 2B und 2C gezeigt sind, andere Ausführungsformen mehr als zwei Bilderfassungsvorrichtungen beinhalten können. Beispielsweise sind in der in 2D gezeigten Ausführungsform eine erste, zweite und dritte Bilderfassungsvorrichtung 122, 124 und 126 in dem System 100 des Fahrzeugs 200 enthalten.
  • Wie in 2D gezeigt, können die Bilderfassungsvorrichtungen 122, 124 und 126 in der Nähe des Rückspiegels und/oder nahe dem Fahrersitz des Fahrzeugs 200 positioniert sein. Die offenbarten Beispiele sind nicht auf irgendeine bestimmte Anzahl und Konfiguration der Bilderfassungsvorrichtungen beschränkt, und die Bilderfassungsvorrichtungen können an einem beliebigen zweckmäßigen Ort in und/oder an dem Fahrzeug 200 positioniert sein.
  • Es versteht sich auch, dass offenbarte Ausführungsformen nicht auf einen bestimmten Typ von Fahrzeug 200 beschränkt sind und auf alle Typen von Fahrzeugen anwendbar sind, einschließlich Kraftfahrzeugen, Lastkraftwagen, Anhängern, Motorrädern, Fahrrädern, selbstbalancierenden Transportvorrichtungen und anderen Typen von Fahrzeugen.
  • Die erste Bilderfassungsvorrichtung 122 kann eine beliebige geeignete Art von Bilderfassungsvorrichtung beinhalten. Die Bilderfassungsvorrichtung 122 kann eine optische Achse beinhalten. In einem Fall kann die Bilderfassungsvorrichtung 122 einen Aptina M9V024 WVGA-Sensor mit einem globalen Shutter beinhalten. In einem anderen Beispiel kann ein Rolling-Shutter-Sensor verwendet werden. Die Bildgewinnungseinheit 120 und eine jegliche Bilderfassungsvorrichtung, die als Teil der Bildgewinnungseinheit 120 implementiert wird, können eine beliebige gewünschte Bildauflösung aufweisen. Beispielsweise kann die Bilderfassungsvorrichtung 122 eine Auflösung von 1280x960 Pixeln bereitstellen und einen Rolling-Shutter beinhalten.
  • Die Bildgewinnungseinheit 120 und eine jegliche Bilderfassungsvorrichtung, die als Teil der Bildgewinnungseinheit 120 implementiert wird, können verschiedene optische Elemente beinhalten. In einigen Ausführungsformen können eine oder mehrere Linsen enthalten sein, um zum Beispiel eine gewünschte Brennweite und ein gewünschtes Sichtfeld für die Bildgewinnungseinheit 120 und für eine beliebige Bilderfassungsvorrichtung bereitzustellen, die als Teil der Bildgewinnungseinheit 120 implementiert wird. In einigen Beispielen kann eine Bilderfassungsvorrichtung, die als Teil der Bildgewinnungseinheit 120 implementiert wird, beliebige optische Elemente beinhalten oder damit assoziiert sein, wie etwa zum Beispiel eine 6-mm-Linse oder eine 12-mm-Linse. In einigen Beispielen kann die Bilderfassungsvorrichtung 122 dazu ausgelegt sein, Bilder mit einem gewünschten (und bekannten) Sichtfeld (FOV) zu erfassen.
  • Die erste Bilderfassungsvorrichtung 122 kann eine Scanrate aufweisen, die mit der Gewinnung von jeder der ersten Reihe von Bildscanlinien assoziiert ist. Die Scanrate kann sich auf eine Rate beziehen, mit der ein Bildsensor Bilddaten gewinnen kann, die mit jedem Pixel assoziiert sind, das in einer speziellen Scanlinie enthalten ist.
  • 2E ist eine diagrammatische Repräsentation von Fahrzeugsteuersystemen, gemäß Beispielen des gegenwärtig offenbarten Gegenstands. Wie in 2E angegeben, kann das Fahrzeug 200 ein Drosselsystem 220, ein Bremssystem 230 und ein Lenksystem 240 beinhalten. Das System 100 kann Eingaben (z. B. Steuersignale) zu einem oder mehreren des Drosselsystems 220, des Bremssystems 230 und des Lenksystems 240 über einen oder mehrere Datenlinks (z. B. einen oder mehrere beliebige drahtgebundene und/oder drahtlose Link oder Links zum Übertragen von Daten) bereitstellen. Beispielsweise kann das System 100 basierend auf der Analyse von Bildern, die durch die Bilderfassungsvorrichtungen 122, 124 und/oder 126 gewonnen werden, Steuersignale zu einem oder mehreren des Drosselsystems 220, des Bremssystems 230 und des Lenksystems 240 bereitstellen, um das Fahrzeug 1200 zu navigieren (z. B. durch Bewirken einer Beschleunigung, einer Abbiegung, eines Spurwechsels usw.). Ferner kann das System 100 Eingaben von einem oder mehreren des Drosselsystems 220, des Bremssystems 230 und des Lenksystems 240 empfangen, die Betriebsbedingungen des Fahrzeugs 200 angeben (z. B. Geschwindigkeit, ob das Fahrzeug 200 bremst und/oder abbiegt, usw.).
  • Wie in 3 gezeigt, kann das Fahrzeug 200 auch eine Benutzerschnittstelle 170 zum Interagieren mit einem Fahrer oder einem Mitfahrer des Fahrzeugs 200 beinhalten. Beispielsweise kann die Benutzerschnittstelle 170 in einer Fahrzeuganwendung einen Touchscreen 320, Knöpfe 330, Tasten 340 und ein Mikrofon 350 beinhalten. Ein Fahrer oder Mitfahrer des Fahrzeugs 200 kann auch Hebel (die sich z. B. an oder nahe der Lenksäule des Fahrzeugs 200 befinden, einschließlich zum Beispiel Blinkerhebel), Tasten (die sich z. B. am Lenkrad des Fahrzeugs 200 befinden) und dergleichen verwenden, um mit dem System 100 zu interagieren. In einigen Ausführungsformen kann das Mikrofon 350 neben einem Rückspiegel 310 positioniert sein. Gleichermaßen kann sich in einigen Ausführungsformen die Bilderfassungsvorrichtung 122 nahe dem Rückspiegel 310 befinden. In einigen Ausführungsformen kann die Benutzerschnittstelle 170 auch einen oder mehrere Lautsprecher 360 (z. B. Lautsprecher eines Fahrzeugaudiosystems) beinhalten. Beispielsweise kann das System 100 verschiedene Benachrichtigungen (z. B. Alarme) über die Lautsprecher 360 bereitstellen.
  • Wie durch einen Fachmann auf dem Gebiet verstanden wird, der den Vorteil dieser Offenbarung aufweist, können zahlreiche Variationen und/oder Modifikationen an den vorstehend offenbarten Ausführungsformen vorgenommen werden. Beispielsweise sind nicht alle Komponenten für den Betrieb des Systems 100 wichtig. Ferner kann sich eine jegliche Komponente in einem beliebigen zweckmäßigen Teil des Systems 100 befinden, und die Komponenten können in einer Vielfalt von Konfigurationen neu angeordnet werden, während sie die Funktionalität der offenbarten Ausführungsformen bereitstellen. Daher sind die vorstehenden Konfigurationen Beispiele, und ungeachtet der oben besprochenen Konfigurationen kann das System 100 einen breiten Bereich von Funktionalität zum Analysieren des Umfelds des Fahrzeugs 200 und, als Reaktion auf diese Analyse, Navigieren und/oder anderweitiges Steuern und/oder Betreiben des Fahrzeugs 200 bereitstellen. Die Navigation, die Steuerung und/oder der Betrieb des Fahrzeugs 200 können Aktivieren und/oder Deaktivieren (direkt oder über zwischengeschaltete Steuerungen, wie etwa die oben erwähnten Steuerungen) verschiedener mit dem Fahrzeug 200 assoziierter Merkmale, Komponenten, Vorrichtungen, Modi, Systeme und/oder Untersysteme beinhalten. Die Navigation, die Steuerung und/oder der Betrieb können alternativ oder zusätzlich eine Interaktion mit einem Benutzer, einem Fahrer, einem Mitfahrer, einem Passanten und/oder einem anderen Fahrzeug oder Benutzer beinhalten, die sich innerhalb oder außerhalb des Fahrzeugs 200 befinden können, zum Beispiel durch Bereitstellen von visuellen, akustischen, haptischen und/oder anderen sensorischen Alarmen und/oder Indikationen.
  • Wie unten ausführlicher besprochen, und in Übereinstimmung mit verschiedenen offenbarten Ausführungsformen, kann das System 100 eine Vielfalt von Merkmalen in Bezug auf autonomes Fahren, semi-autonomes Fahren und/oder Fahrerassistenztechnologie bereitstellen. Beispielsweise kann das System 100 Bilddaten, Positionsdaten (z. B. GPS-Standortinformationen), Kartendaten, Geschwindigkeitsdaten und/oder Daten von Sensoren, die im Fahrzeug 200 enthalten sind, analysieren. Das System 100 kann die Daten zur Analyse von zum Beispiel der Bildgewinnungseinheit 120, dem Positionssensor 130 und anderen Sensoren sammeln. Ferner kann das System 100 die gesammelten Daten analysieren, um zu bestimmen, ob das Fahrzeug 200 eine gewisse Handlung vornehmen sollte oder nicht, und dann automatisch die bestimmte Handlung ohne menschliche Intervention vornehmen. Es würde verstanden werden, dass in einigen Fällen die Handlungen automatisch durch das Fahrzeug unter menschlicher Aufsicht vorgenommen werden, und die Fähigkeit des Menschen, bei der maschinellen Handlung einzuschreiten, diese anzupassen, abzubrechen oder zu überschreiben, unter gewissen Umständen oder jederzeit aktiviert ist. Wenn das Fahrzeug 200 zum Beispiel ohne menschliche Intervention navigiert, kann das System 100 automatisch die Bremsung, Beschleunigung und/oder Lenkung des Fahrzeugs 200 steuern (z. B. durch Senden von Steuersignalen zu einem oder mehreren des Drosselsystems 220, des Bremssystems 230 und des Lenksystems 240). Ferner kann das System 100 die gesammelten Daten analysieren und Warnungen, Indikationen, Empfehlungen, Alarme oder Anweisungen an einen Fahrer, einen Mitfahrer, einen Benutzer oder eine andere Person innerhalb oder außerhalb des Fahrzeugs (oder an andere Fahrzeuge) basierend auf der Analyse der gesammelten Daten ausgeben. Zusätzliche Einzelheiten bezüglich der verschiedenen Ausführungsformen, die durch das System 100 bereitgestellt werden, sind unten bereitgestellt.
  • 4 ist ein Diagramm, das ein beispielhaftes Sichtfeld 400 einer fahrzeugmontierten Kamera veranschaulicht, in dem verschiedene Objekte vorhanden sind. Die Kamera kann an einem Host-Fahrzeug montiert sein. Wie dargestellt, beinhaltet das Sichtfeld 400 eine Straßenoberfläche 402, die ein oder mehrere Oberflächenmerkmale 404 aufweisen kann, wie etwa Vertiefungen 404A (z. B. Schlaglöcher, Gitterroste, Vertiefungen usw.) oder Erhebungen 404B (z. B. Verkehrsschwellen, Bordsteinkanten, Schutt usw.). Das Sichtfeld 400 kann auch einen Schatten 406, eine reflektierende Oberfläche 408 (z. B. eine Pfütze, Eis usw.), einen Fußgänger 410 oder ein anderes Fahrzeug 412 beinhalten. Das Modellieren der Oberflächenmerkmale 404 kann dem Host-Fahrzeug ermöglichen, sie zu vermeiden, einen Alarm an einen Fahrer zu initiieren oder sich anzupassen, um besser damit umgehen zu können (z. B. die Fahrzeugaufhängung anpassen, um das Schlagloch 404A zu durchfahren).
  • Das Verstehen und Modellieren des Fußgängers 410 oder des Fahrzeugs 412 können Fahrzeugsteueränderungen oder Alarme für den Fahrer aktivieren, um eine Kollision mit ihnen zu vermeiden, oder sogar unerwünschte Interaktionen mit ihnen zu vermeiden oder zu reduzieren, wie etwa Bespritzen des Fußgängers 410, wenn durch die Pfütze 408 gefahren wird, durch Verlangsamung, Anpassen des Fahrpfads, Anhalten oder die Kombinationen dieser Handlungen.
  • 5 ist ein Blockdiagramm eines Beispiels für ein System 508 zur Modellierung der Fahrzeugumgebung mit einer Bilderfassungsvorrichtung 502, gemäß einer Ausführungsform. Das System 508 ist an dem Fahrzeug 504 befestigt. Das System 508 kann eine Ausführungsform des wie in 1 - 3 beschriebenen Systems 100 sein oder in einer Ausführungsform mit diesem enthalten sein.
  • In einem Beispiel ist das System 508 in die Bilderfassungsvorrichtung 502 (z. B. Kamera oder anderer Bildgebungssensor, wie etwa LIDAR- oder IR-Sensor) integriert. In einem Beispiel ist das System 508 von der Bilderfassungsvorrichtung 502 getrennt (z. B. Teil eines Infotainment-Systems des Fahrzeugs 504). In dem in 5 veranschaulichten Beispiel ist die Bilderfassungsvorrichtung 502 beispielhaft als eine nach vorne zeigende Kamera gezeigt, die an oder in der Nähe der Windschutzscheibe montiert ist. Die hierin beschriebenen Techniken gelten jedoch gleichermaßen für nach hinten und zur Seite zeigende Bilderfassungsvorrichtungen, die innerhalb oder außerhalb des Fahrzeugs montiert sind. Ein solches Beispiel ist eine Kamera, die extern an der Ecke des Dachs montiert ist, mit einem Sichtfeld, das nach vorne und ein bisschen zu einer Seite zeigt.
  • Das System 508 beinhaltet eine Verarbeitungsschaltungsanordnung zum Durchführen einer Modellierung der Fahrzeugumgebung mittels Bildern, die von der Bilderfassungsvorrichtung 502 erhalten werden. Die Modellierung der Fahrzeugumgebung kann Modellieren der Straßenoberfläche 506, von Hindernissen, Behinderungen und beweglichen Körpern (z. B. andere Fahrzeuge, Fußgänger, Tiere usw.) beinhalten. Diese Modelle können durch das System 508 direkt oder über ein anderes Managementsystem verwendet werden, um Betriebsparameter des Fahrzeugs 504 anzupassen. Um die Modellierung durchzuführen, ist das System 508 dazu eingerichtet, eine Sequenz von Bildern zu erhalten, die die Straßenoberfläche 506 repräsentieren. Die Sequenz von Bildern kann zeitlich geordnet sein. Beispielsweise können die Bilder mit einer regelmäßigen Rate (z. B. 30 Hz, 60 Hz usw.) erfasst und mit Metadaten getaggt werden, um einen Zeitstempel, eine Sequenznummer, eine Indexnummer oder andere Indizien der Reihenfolge zu speichern. Eines der Sequenz von Bildern ist ein aktuelles Bild (z. B. das jüngste oder letzte Bild, das durch die Bilderfassungsvorrichtung 502 erfasst wurde).
  • Das System 508 ist dazu eingerichtet, einen Datensatz an ein künstliches neuronales Netzwerk (ANN) bereitzustellen, um ein Gamma-Bild zu erzeugen. In einem Gamma-Bild (auch als eine Gamma-Karte bezeichnet) ist jede Bildkoordinate ein Gamma-Wert. Daher ist jedes „Pixel“ in einem Gamma-Bild ein Gamma-Wert für die Koordinate. Wie an anderer Stelle angemerkt, ist der Gamma-Wert ein Verhältnis einer Höhe eines Punktes über einer Bodenebene und eines Abstands von einem Sensor, der das Bild erfasste. Die Bodenebene repräsentiert die Straßenoberfläche 506.
  • Obwohl unten „Gamma-Bild“ verwendet wird, können andere Datenformate verwendet werden, um Gamma in einer Szene zu repräsentieren. Somit liegt das Gamma möglicherweise nicht in einem Rasterformat vor, sondern kann in einer beliebigen Form vorliegen (z. B. einer Gamma-Karte von Werten zu Punkten), die ermöglicht, dass der Gamma-Wert über die Sensordaten mit einer Oberfläche korreliert wird.
  • In einem Beispiel beinhaltet der Datensatz einen Teil der Sequenz von Bildern. Der Datensatz kann eine Bewegung des Sensors 502 (z. B. Sensorbewegungsinformationen) und einen Epipol (z. B. Epipolinformationen) beinhalten. In einer Implementierung beinhaltet der Teil der Sequenz von Bildern ein erstes Bild. Das erste Bild kann das aktuelle Bild sein. In anderen Implementierungen ist das erste Bild ein willkürliches Bild aus erfassten Bildern.
  • In einem Beispiel beinhaltet der Teil der Sequenz von Bildern Bilder unmittelbar vor dem ersten Bild, was als ein vorheriges Bild und ein vorvorheriges Bild bezeichnet werden kann. Das erste (z. B. aktuelle), vorherige und vorvorherige Bild können aufeinanderfolgende Bilder in de Sequenz von Bildern sein oder können nur in dem Sinne in Beziehung stehen, dass das vorherige Bild zu einer Zeit vor dem ersten Bild erfasst wurde, und das vorvorherige Bild zu einer Zeit vor dem vorherigen Bild erfasst wurde. Beispielsweise kann das erste Bild das drittjüngste erfasste Bild sein, und dann kann die Sequenz von Bildern das dritt-, fünft- und siebtjüngste Bild beinhalten.
  • In einem Beispiel beinhaltet der Teil der Sequenz von Bildern insgesamt drei Bilder. In einem Beispiel kann die Sequenz eine beliebige Anzahl n von Bildern beinhalten, wobei n eine ganze Zahl größer als eins ist (d. h. { n I | n > 1 } ) .
    Figure DE112021004501T5_0005
     
    Figure DE112021004501T5_0006
    In einem Beispiel können Bilder in einer Sequenz nacheinander erfasste Bilder sein. In einem Beispiel können einige Frames aus einer ursprünglichen Sequenz von Frames bei dem Prozess des Erzeugens der Sequenz von Bildern, die im Datensatz verwendet wird, weggelassen werden.
  • In einem Beispiel wird der Epipol als ein Gradientenbild mit der gleichen Dimensionalität (jedoch mit einer möglicherweise größeren oder kleineren Auflösung) wie das erste Bild bereitgestellt. Hier repräsentieren Werte von Pixeln im Gradientenbild einen Abstand vom Epipol von Pixeln im ersten Bild. In einem Beispiel repräsentiert das Gradientenbild nur horizontale (z. B. x-Achse) Abstände vom Epipol und ein zweites Gradientenbild wird dem ANN bereitgestellt, um vertikale (z. B. y-Achse) Abstände vom Epipol zu repräsentieren.
  • In einem Beispiel wird die Bewegung des Sensors 506 als ein Bild mit konstantem Wert mit einer gleichen Dimensionalität (jedoch mit einer möglicherweise größeren oder kleineren Auflösung) wie das aktuelle Bild bereitgestellt. In einem Beispiel ist der konstante Wert ein Verhältnis einer Vorwärtsbewegung des Sensors 506 (z. B. z-Achse) zu einer Höhe des Sensors 502 von der Ebene 506.
  • In einem Beispiel ist das ANN ein faltendes neuronales Netzwerk (CNN). In einem Beispiel werden die Bewegung des Sensors 506 und der Epipol dem CNN an einer Bottleneck-Schicht bereitgestellt (siehe z. B. die Besprechung unten mit Bezug auf 6).
  • In einem Beispiel wird das ANN mit einer unüberwachten Trainingstechnik trainiert, bei der ein Fehler durch Messen einer Differenz zwischen einem Modell eines zukünftigen Bildes und dem tatsächlichen zukünftigen Bild bestimmt wird. Hier wird das Modell des zukünftigen Bildes mittels eines Gamma-Warping eines Bildes vor dem zukünftigen Bild erzeugt. Somit wird in diesem Beispiel der inferierte Gamma-Wert verwendet, um vorherzusagen, wie das zukünftige Bild aussehen wird. Bei einem Vergleich mit dem zukünftigen Bild werden Abweichungen von dem Modell verwendet, um das ANN zu korrigieren. Das Training des ANN wird in 7 - 10 ausführlicher beschrieben.
  • In einem Beispiel wird das ANN mit einer unüberwachten Trainingstechnik trainiert, bei der ein Fehler durch Messen einer Differenz einem vorhergesagten Gamma für einen Ort und der Bewegung des Sensors 502 an dem Ort bestimmt wird. Somit wird Gamma vorhergesagt und die Ego-Bewegung des Sensors 502 oder des Fahrzeugs 504 wird verwendet, um zu bestimmen, ob die Gamma-Inferenz korrekt war (oder wie falsch die Inferenz war). In diesem Beispiel, falls das ANN eine Senke in der Straßenoberfläche 506 vorhersagt, und später keine solche Senke durch das Fahrzeug detektiert wird, dann korrigiert das Training die Inferenz, die die Senke vorhersagte. In einem Beispiel kann die Sensorbewegung eines oder mehrere von Nicken, Gieren, Rollen oder Translation senkrecht zu der Ebene beinhalten.
  • In einem Beispiel wird das ANN mit einer unüberwachten Trainingstechnik trainiert, bei der ein Fehler durch eine Differenz in Gamma von überlappenden Segmenten zwischen zwei Bildern zu zwei unterschiedlichen Zeiten bestimmt wird, wobei die Inferenz an dem ersten Bild durchgeführt wird, und wobei das überlappende Segment im zweiten Bild näher am Sensor 502 liegt. Somit ist beim Training ein Bild mit einer Sicht der Oberfläche 506, die später durch das Fahrzeug 504 befahren wird, das vorherige Bild. Der Gamma-Wert des überlappenden Segments wird durch das ANN inferiert und durch Berechnen des Gamma-Werts des gleichen Segments im zukünftigen Bild geprüft. Wenn sich der Sensor 502 näher an einem Merkmal (z. B. dem überlappenden Segment in der Zukunft) befindet, dann ist die Schätzung des Gamma durch das System wahrscheinlich besser, und kann in der Verlustfunktion zum Trainieren des ANN verwendet werden. Somit wird die Gamma-Karte, die aus einem aktuellen Triple von Bildern inferiert wird, mit der Gamma-Karte verglichen, die aus einem zukünftigen Triple von Bildern inferiert wird, die in Richtung der aktuellen Gamma-Karte gewarpt sind. Der Vergleichswert zwischen den beiden Gamma-Karten, wie etwa die Differenz oder der Abstand zu dem nächstliegenden Oberflächenpunkt, wird als Teil des Verlusts verwendet, wenn das ANN trainiert wird.
  • Das System 508 ist dazu eingerichtet, die Straßenoberfläche 506 unter Verwendung des Gamma-Bildes zu modellieren. In einem Beispiel beinhaltet das Modellieren der Straßenoberfläche 506 Berechnen einer vertikalen Abweichung von der Ebene eines Straßenoberflächenmerkmals. In einem Beispiel beinhaltet das Modellieren der Straßenoberfläche 506 Berechnen einer Residual-Bewegung von Merkmalen in der Sequenz von Bildern. Hier ist die Residual-Bewegung eines Merkmals ein Produkt des Gamma-Werts, der Bewegung des Sensors 502 und des Epipols.
  • In einem Beispiel beinhaltet das Modellieren der Straßenoberfläche Warpen eines vorherigen Bildes zu dem aktuellen Bild unter Verwendung des Gamma-Werts. Das Gamma-basierte Warping ist besonders genau, da das Gamma ermöglicht, dass ein Merkmal zwischen Bildern basierend auf seinem Abstand vom Sensor 502 und seiner Höhe über der Straßenoberfläche 506 abgeglichen wird, anstatt zu versuchen, manchmal ephemere oder komplexe Farbvariationen von Pixeln dieser Merkmale in den Bildern abzugleichen.
  • 6 veranschaulicht ein Beispiel für ein neuronales Netzwerk 612 zum Erzeugen einer Gamma-Karte 614 einer Straßenoberfläche, gemäß einer Ausführungsform. Als ein Überblick besteht die Residual-Bewegung für jedes Pixel jedoch aus drei Teilen: Gamma, Sensor(z. B. Fahrzeug)-Bewegung und Epipolinformationen, wie folgt: μ = H Z T Z d π ' ( e p w )
    Figure DE112021004501T5_0007
  • Epipolinformationen hängen von der Bildkoordinate nach der Homographie p w
    Figure DE112021004501T5_0008
    und dem Epipol e
    Figure DE112021004501T5_0009
    ab. Dies kann für jedes Pixel in Anbetracht der Ego-Bewegung (EM) des Sensors berechnet werden. Sensorbewegungsinformationen hängen von der Vorwärtsbewegung TZ und der Sensorhöhe von der Ebene d π '
    Figure DE112021004501T5_0010
    ab. Dies ist für das gesamte Bild festgelegt.
  • Gamma beschreibt die Struktur einer Szene an jedem Pixel mittels der Höhe H eines Punktes über der Ebene und eines Abstands Z zu dem Punkt vom Sensor. In Anbetracht der Sensorbewegungsinformationen und der Epipolinformationen bestimmt das neuronale Netzwerk 612 somit die Gamma-Karte 614, und die Residual-Bewegung für jeden Punkt kann berechnet werden, um zu ermöglichen, dass ein Bild zu einem anderen gewarpt wird.
  • In Anbetracht einer genauen Gamma-Karte 614 ist Bild-Warping sehr genau und verhält sich häufig so, als wären die Bilder von einer statischen Szene, aufgrund des Abstands und der Höhe jedes Pixels. Klassische Techniken berechnen zuerst den Residual-Fluss, und dann wurde das Gamma durch Entfernen der Epipolinformationen und der Sensorbewegungsinformationen berechnet. Aus dem Gamma wurden die Höhe und der Abstand eines Punktes entlang einer oder mehreren Spuren (z. B. Reifenpfade) berechnet. Wie jedoch oben angemerkt, führte der variierende Grad an Rauschen in Bildern der Straßenoberfläche dazu, dass die direkte Detektion der Residual-Bewegung manchmal problematisch war.
  • Das Training des neuronalen Netzwerks 612 zum Berechnen des Gamma direkt aus den Bildern liefert eine robuste Gegenmaßnahme zu dem Rauschen, das in den Bildern vorgefunden wird. In Anbetracht eines ersten Bildes 602, das das aktuelle Bild sein kann, eines oder mehrerer vorheriger Bilder 604, die unter Verwendung einer Homographie gewarpt sind, und der Ego-Bewegung 610 und Epipol(z. B. Ebenen)-Parameter (Bilder 606 und 608) als Eingabe, erzeugt das neuronale Netzwerk 612 ein Bild von Gamma-Werten 614 als Ausgabe. Wie veranschaulicht, ist der Gamma-Wert umso geringer, je heller die Schattierung in der Gamma-Karte 614 ist. Außerdem wird das Fahrzeug aus der Verlustberechnung zum Trainieren des neuronalen Netzwerks 612 weggelassen. Dies geschieht, um zu verhindern, dass die Bewegung des Fahrzeugs naheliegende Gamma-Werte während des Trainings beeinflusst. Das Fahrzeug wird im Allgemeinen während der Inferenz nicht maskiert. In einem Beispiel werden das Fahrzeug oder andere bewegliche Objekte nicht von der Verlustfunktion des neuronalen Netzwerks 612 während des Trainings maskiert.
  • Wie veranschaulicht, werden die Epipolinformationen und die Sensorbewegungsinformationen als Bilder (z. B. ein Raster von Werten) bereitgestellt. Das Sensorbewegungsinformationsbild 610 ist ein Bild mit konstantem Bild (z. B. jedes Pixel weist den gleichen Wert auf). Die Epipolinformationen, die durch zwei Bilder repräsentiert werden, weisen jeweils Pixelwerte eines Abstands zum Epipol in horizontaler (z. B. x) 606 und vertikaler (z. B. y) 608 Richtung auf. Das Bereitstellen der Epipolinformationen als Gradientenbilder, anstatt zwei Werten, ist bei der Verwendung eines faltenden neuronalen Netzwerks (CNN) hilfreich. In einem CNN wird dieselbe Filterbank über das gesamte Bild 602 geführt, und jedem Bildgebiet muss mitgeteilt werden, dass es sich in Beziehung mit dem Epipol befindet. Durch die Verwendung der Gradientenbilder 606 und 606 weist das Filter die Epipolinformationen für jede Faltung auf.
  • 7 ist ein Diagramm, das ein beispielhaftes DNN 700 einer ML-basierten Kontur-Engine veranschaulicht. In einem Beispiel. Wie dargestellt, beinhaltet das DNN 700 einen faltenden Netzwerkteil 702 mit verschiedenen operativen Schichten, die Faltungs-, Aktivierungs-, Normierungs- und Pooling-Schichten beinhalten können. Andere operative Schichten können zusätzlich enthalten sein, wie etwa Skalarproduktschichten. In einem Beispiel beinhaltet das DNN 700 zusätzlich einen Entfaltungsteil 704, einschließlich Entfaltungs- (z. B. transponierte Faltungs-), Aktivierungs-, Normierungs- und Unpooling-Schichten.
  • In einem Beispiel wird der Satz von Bildern 730 als Eingabe 506 in den faltenden Netzwerkteil 702 bereitgestellt. Jede Schicht erzeugt eine Merkmalskarte, die im Gegenzug an die nachfolgende Schicht zur weiteren Verarbeitung entlang eines Vorwärtspropagationspfads 708 weitergeleitet wird. Wie dargestellt, arbeiten die Operationen des faltenden Netzwerkteils 702, um die Auflösung der Merkmalskarten schrittweise zu reduzieren, während die Anzahl von Kanälen (Dimensionalität) der Merkmalskarten entlang eines faltenden Vorwärtspropagationspfads 708A erhöht wird. Die Operationen des entfaltenden Netzwerkteils 704 arbeiten, um die Auflösung der Merkmalskarten schrittweise zu erhöhen, während ihre Dimensionalität entlang eines entfaltenden Vorwärtspropagationspfads 708B verringert wird.
  • In einem Beispiel können, zusätzlich zu dem Vorwärtspropagationspfad 708, ein oder mehrere Bypass-Pfade 710 bereitgestellt sein, um die Weiterleitung von Merkmalskarten von einer vorherigen Schicht zu einer späteren Schicht zu ermöglichen, während eine oder mehrere Zwischenschichten übersprungen werden, die sich zwischen diesen vorherigen und späteren Schichten befinden. Als ein Beispiel können die Bypass-Pfade 710 Merkmalskarten zwischen einer Schicht des faltenden Netzwerkteils 702 und einer ähnlich dimensionierten Schicht des entfaltenden Netzwerkteils 704 weiterleiten.
  • Ein „Bottleneck“-Netzwerkteil 712 befindet sich zwischen dem faltenden Netzwerkteil 702 und dem entfaltenden Netzwerkteil 704. In einem Beispiel weist der Bottleneck-Netzwerkteil 712 eine oder mehrere Schichten mit relativ niedriger Auflösung und höherer Dimensionalität im Vergleich zu anderen Schichten auf. In einem Beispiel beinhaltet der Bottleneck-Teil 712 Eingaben 714, die dazu ausgelegt sind, bildformatierte Bewegungsindizien 726 und bildformatierte Epipolortsdaten 728 anzunehmen.
  • In einem Beispiel wird das DNN 700 trainiert, um eine Straßenstruktur 732 als eine pixelweise Abbildung von Gamma-Werten entsprechend dem aktuellen (d. h. jüngsten) Bild von vorverarbeiteten Bildern 730 zu erzeugen. Die Straßenstruktur 732 als die Ausgabe des DNN 700 kann die gleiche oder eine andere Auflösung wie die Bilder 730 aufweisen. Beispielsweise kann die Auflösung der Straßenstruktur 732 um einen Faktor von 0,25, 0,5, 1, 1,5, 2 oder einen anderen Skalierungsfaktor skaliert werden, der ein ganzzahliger oder nicht ganzzahliger Wert sein kann.
  • In einem anderen Beispiel kann die Straßenstruktur 732 einem Teil des aktuellen Bildes der vorverarbeiteten Bilder 730 entsprechen. Beispielsweise kann die Straßenstruktur 732 einem zugeschnittenen Bild des Sichtfeldes 400 (4) entsprechen, das einige Teile davon auslässt, die nicht die Straßenoberfläche repräsentieren.
  • Insbesondere sind Gamma-Werte in den Pixeln der Straßenstruktur 732 dimensionslose Werte. In einem Beispiel erzeugt das DNN 700 als seine Ausgabe eine Abbildung anderer dimensionsloser Werte wie etwa Z δ Z
    Figure DE112021004501T5_0011
    für Punkte über dem Horizont. Wenn der Wert von Gamma bekannt ist, können der Abstand Z und die Höhe der Straßenoberfläche H unter Verwendung der Beziehung Z = KamH γ N ' ( x ƒ ' y ƒ ' 1 )
    Figure DE112021004501T5_0012
    wiederhergestellt werden, wobei N' N transponiert ist, (x,y) die Bildkoordinaten sind und f die Brennweite ist.
  • 8 veranschaulicht ein Beispiel für eine DNN-Trainings-Engine 800, gemäß einer Ausführungsform. Die DNN-Trainings-Engine 800 ist dazu ausgelegt, das DNN 700 zu trainieren, um eine genaue Bestimmung der Straßenstruktur 732 basierend auf einem Satz von Trainingsdaten zu erzeugen. Wie dargestellt, beinhaltet das DNN-Trainingssystem 800 ein DNN 802 mit der gleichen oder einer ähnlichen Architektur wie das DNN 700, und eine Verlustfunktion-Anwendungs-Engine 850.
  • Hier ist die Verlustfunktion-Anwendungs-Engine 850 dazu ausgelegt, Trainingsdaten 830 als Eingabe in das DNN 802 zu liefern. Die Trainingsdaten 830 können verschiedene Sequenzen von Bildframes beinhalten, die durch eine oder mehrere fahrzeugmontierte Kameras erfasst werden. Die Bildframes können Videoaufnahmen beinhalten, die zum Beispiel auf verschiedenen Straßen, an verschiedenen geographischen Orten, unter verschiedenen Beleuchtungs- und Wetterbedingungen erfasst werden.
  • Die Trainingsdaten 830 können von bildformatierten Bewegungsindizien 826 und bildformatierten Epipolindizien 828 begleitet werden, die jeweiligen Teilen der Trainingsdaten 830 entsprechen. Die bildformatierten Bewegungsindizien 826 und die bildformatierten Epipolindizien 828 können in eine Eingabeschicht eingespeist werden, die sich von der Eingabeschicht für die Bildframes der Trainingsdaten 830 unterscheidet, um der strukturellen und operativen Anordnung des DNN 802 zu entsprechen. Die Eingaben werden durch das DNN 802 entlang eines Vorwärtspropagationspfads 808 befördert, um eine Stra-ßenstruktur 832 als die Ausgabe des DNN 802 zu erzeugen.
  • Das DNN 802 kann anfänglich mit randomisierten Werten von Berechnungsparametern (z. B. Gewichtungen, Biases usw.) konfiguriert werden. Der Trainingsprozess funktioniert, um die Werte der Berechnungsparameter so anzupassen, dass die Ausgabe des DNN 802, die Straßenstruktur 832, optimiert wird. Die Verlustfunktion-Anwendungs-Engine 850 ist dazu ausgelegt, die Parameteroptimierung durchzuführen. In einem Beispiel wird mehr als eine Verlustfunktion verwendet, um die Genauigkeit der Ausgabe des DNN 802 zu bestimmen. Die Verlustfunktion-Anwendungs-Engine 850 erzeugt Berechnungsparameteranpassungen 820 für die verschiedenen Schichten des DNN 802, die unter Verwendung von Rückpropagation entlang eines Rückpropagationspfads 810 eingesetzt werden.
  • In einem Beispiel werden die Berechnungsparameteranpassungen 820 für die verschiedenen Schichten des DNN 802 gesammelt und in einer Berechnungsparameter-Datenstruktur 825 gespeichert, die das Trainingsergebnis des DNN 802 definiert. In einem Beispiel wird die Berechnungsparameter-Datenstruktur 825 (z. B. als Teil der Ausgabe des DNN-Trainingssystems) zu einer Vertikalkontur-Detektions-Engine weitergeleitet, in der sie als ein Berechnungsparameter zum Konfigurieren einer ML-basierten Kontur-Engine gespeichert wird. In einem Beispiel wird ein Inferenz-Engine-Training sowohl an dem aktuellen Triplet als auch dem zukünftigen Triplet ausgeführt, um Ausgabe_aktuell bzw. Ausgabe_zukünftig zu erzeugen. Der geometrische Verlust kann mit anderen Verlusten aus dem Ausgabe aktuell kombiniert und rückpropagiert werden, um die Gewichtungen des Netzwerks anzupassen, und die Verluste aus Ausgabe_zukünftig ohne den geometrischen Verlust werden auch propagiert, um die Gewichtungen anzupassen. In einem Beispiel können die geometrischen Verluste von Ausgabe_zukünftig ignoriert werden, wobei nur das Ausgabe_aktuell zum Training verwendet wird.
  • In einer Implementierung beinhalten die Trainingsdaten 830 nicht rektifizierte (d. h. verzerrte) Bilder. Dies unterscheidet sich von anderen vorherigen Implementierungen, die die Eingabebilder rektifizierten. In der vorliegenden Implementierung wird das DNN 802 unter Verwendung nicht rektifizierter Bilder trainiert, sodass bei der Inferenz Bilder nicht vorverarbeitet (rektifiziert) werden müssen, bevor sie im neuronalen Netzwerk verwendet werden, was Verarbeitungszeit und Energie spart.
  • Wie oben besprochen, ist die Verlustfunktion-Anwendungs-Engine 850 während des Trainings dazu ausgelegt, die Parameteroptimierung durchzuführen. Dafür wird eine Verlustfunktion unter Verwendung der Gamma-Werte in der Gamma-Karte berechnet, die vom DNN 802 ausgegeben wird.
  • Drei Gamma-Karten (z. B. aktuelle, vorherige, vorvorherige) können verglichen werden, um den Verlust zu berechnen. Da die Gamma-Karten jedoch von verzerrten Bildern (nicht rektifizierten Bildern) sind, gibt es keine Bodenebene, und daher gibt es keine Homographie zum Abgleichen der Gamma-Karten. Stattdessen wird eine Homographiefunktion unter Verwendung einer linearen Regressionsanalyse berechnet. Diese Homographiefunktion kann als eine „Best-Fit-Homographie“ bezeichnet werden, da sie, obwohl sie keine perfekte Homographie ist, gut genug ist, um eine Verlustanalyse durchzuführen.
  • Der Prozess zum Finden der Homographiefunktion ist wie folgt. Koordinatenpaare werden zwischen einer Baseline-Gamma-Karte und einer aktuellen Gamma-Karte gewählt. Die Baseline kann die Gamma-Karte von drei Eingabebildern sein (z. B. dem vorherigen Bild, dem vorvorherigen und dem vor-vorvorherigen Bild) und die aktuelle Gamma-Karte kann die Gamma-Karte von drei Eingabebildern sein, angefangen mit dem aktuellen (zuletzt erhaltenen) Bild (z. B. das aktuelle, vorherige und vorvorherige Bild).
  • Die Baseline-Koordinate in der Baseline-Gamma-Karte wird unter Verwendung von Rektifizierungsparametern rektifiziert. Die Rektifizierungsparameter können jenen ähneln oder gleich sein, die zum Rektifizieren von Bildern verwendet werden. Anstatt jedoch ein Bild zu rektifizieren, um ein Pinhole-Modell-Bild zu erzeugen, werden Koordinaten in einer Gamma-Karte rektifiziert, um Koordinaten einer rektifizierten Gamma-Karte zu erzeugen. Dann wird das gleiche Pixel in der aktuellen Gamma-Karte gefunden. Eine willkürliche Anzahl von Koordinatenpunkten werden von der Baseline-Gamma-Karte auf die aktuelle Gamma-Karte abgebildet. Diese Koordinatenpunkte werden dann in einer linearen Regressionsanalyse verwendet, um die Best-Fit-Homographie zu berechnen, die diese Beziehungen beschreibt.
  • Die Verlustfunktion basiert dann auf einem Modell, das aus der vorherigen Gamma-Karte und der Best-Fit-Homographie, im Vergleich zu der aktuellen Gamma-Karte, erzeugt wird. Dies ist eine Implementierung einer photogrammetrischen Verlustfunktion. In einigen Implementierungen wird mehr als eine photogrammetrische Verlustfunktion verwendet.
  • Die Komponenten der Verlustfunktion, zu denen eine oder mehrere der Verlustfunktionen beitragen, werden kombiniert und bei einer Rückpropagation verwendet, die zum Trainieren des DNN verwendet wird, beispielsweise unter Verwendung einer Gradientenabstiegstechnik zum Erzeugen von Berechnungsparameteranpassungen.
  • Das Training kann in individuellen Kameras durchgeführt werden, da eine Verzerrung für eine Kamera oder einen Kameratyp einzigartig sein kann. Kameraparameter können als Eingabe in das DNN 802 verwendet werden, ähnlich wie Ego-Bewegung verwendet wird.
  • Im Inferenzmodus verwendet das DNN eine Sequenz von Bildern als Eingabe und erzeugt eine Gamma-Karte als Ausgabe. Die Eingabebilder sind nicht rektifiziert (verzerrt). Eine Anzahl von Pixeln in dem vorherigen oder vorvorherigen Bild wird abgetastet. Die Anzahl kann durch einen Kunden basierend darauf festgelegt legen, welche Teile des Bildes modelliert werden sollen. Beispielsweise kann die Anzahl 100 Pixel/Punkte betragen, die auf einem Pfad des Fahrzeugs zentriert sind. Die Anzahl kann beispielsweise als eine geeignete Anzahl zum Detektieren einer Vertiefung (Schlagloch) oder Erhebung (Verkehrsschwelle) im Pfad des Fahrzeugs ausgewählt werden. Mehr oder weniger Pixel/Punkte können in Abhängigkeit von dem Design des Modellierungssystems abgetastet werden.
  • Die Pixelabtastung wird unter Verwendung von Rektifizierungsparametern rektifiziert. Diese Parameter können auf dem Kameradesign, Linsenattributen oder anderen Charakteristiken der Bilderfassungsvorrichtung oder Bildverarbeitungspipeline basieren.
  • Gamma-Werte der rektifizierten Pixel werden mit regulären geometrischen Pinhole-Gleichungen verwendet, um die Straßenoberfläche zu modellieren und eine Höhe über der Bodenebene und eine Tiefe von der Bilderfassungsvorrichtung (Gamma) zu erhalten. Die Verarbeitungseffizienz wird durch das Rektifizieren von nur einem Teilsatz der Pixel in einem Bild und Verwenden von nicht rektifizierten Bildern als Eingabe in das ANN erhalten.
  • 9 ist ein Flussdiagramm, das ein Beispiel für ein Verfahren 900 zum Modellieren einer Umgebung im Umfeld eines Fahrzeugs veranschaulicht, gemäß einer Ausführungsform. Die Operationen des Verfahrens 900 werden durch Rechenhardware (z. B. Verarbeitungsschaltungsanordnung) durchgeführt, wie etwa die, die oben oder unten beschrieben ist.
  • Bei 902 wird eine Sequenz nicht rektifizierter Bilder erhalten, die eine Straßenumgebung repräsentieren. Die Sequenz nicht rektifizierter Bilder kann ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhalten. In einer Ausführungsform ist die Sequenz nicht rektifizierter Bilder zeitlich geordnet.
  • In einer Ausführungsform beinhaltet die Straßenumgebung eine Stra-ßenoberfläche. In einer Ausführungsform beinhaltet die Straßenumgebung eine Spurmarkierung, einen Fußweg oder ein Straßenregelungsobjekt. Eine Spurmarkierung beinhaltet angestrichene Spurmarkierungen, taktile Spurmarkierungen, Bordsteinkanten, temporäre Baustellenbarrieren oder dergleichen. Ein Straßenregelungsobjekt beinhaltet verschiedene Objekte, einschließlich einer Ampel, eines Stoppschildes, eines Geschwindigkeitsbegrenzungsschildes, einer Straßenbarriere, eines Verkehrskegels oder dergleichen.
  • Bei 904 werden das erste nicht rektifizierte Bild, das vorherige nicht rektifizierte Bild und das vorvorherige nicht rektifizierte Bild einem künstlichen neuronalen Netzwerk (ANN) bereitgestellt, um eine dreidimensionale Struktur einer Szene zu erzeugen.
  • Bei 906 wird eine ausgewählte Homographie bestimmt. In einer Ausführungsform ist die ausgewählte Homographie eine Best-Fit-Homographie.
  • In einer Ausführungsform beinhaltet die Operation des Bestimmens der ausgewählten Homographie die Operationen des Auswählens eines ersten Satzes von Bildkoordinaten in dem vorherigen nicht rektifizierten Bild, Rektifizierens des ersten Satzes von Bildkoordinaten, um einen ersten Satz rektifizierter Bildkoordinaten zu erhalten, Anwendens einer Pinhole-Homographie an dem ersten Satz rektifizierter Bildkoordinaten, um entsprechende Bildkoordinaten in dem ersten nicht rektifizierten Bild zu identifizieren, Verzerrens der entsprechenden Bildkoordinaten in dem ersten nicht rektifizierten Bild, um geschätzte Positionen verzerrter Bildkoordinaten zu erhalten, und Verwendens einer linearen Regressionstechnik, um die ausgewählte Homographie zwischen dem ersten Satz von Bildkoordinaten und den geschätzten Positionen verzerrter Bildkoordinaten zu bestimmen.
  • In einer Ausführungsform handelt es sich bei dem ersten Satz von Bildkoordinaten um Pixel. In einer Ausführungsform beinhalten die Operationen zum Rektifizieren des ersten Satzes von Bildkoordinaten Operationen zum Verwenden von Rektifizierungsparametern für eine Linse, die zum Erfassen des vorherigen nicht rektifizierten Bildes verwendet wird. In einer Ausführungsform beinhaltet der erste Satz von Bildkoordinaten 50 - 200 Bildkoordinaten. In einer Ausführungsform beinhaltet die Operation des Verzerrens der entsprechenden Bildkoordinaten die Operation des Verwendens eines Linsenverzerrungsmodells für eine Linse, die zum Erfassen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes verwendet wird.
  • Bei 908 wird die ausgewählte Homographie an der dreidimensionalen Struktur der Szene angewendet, um ein Modell der Straßenumgebung zu erzeugen. In einer Ausführungsform beinhaltet das Modell der Straßenumgebung eine Höhe über einer Bodenebene und eine Tiefe von einer Bilderfassungsvorrichtung, die zum Erfassen der Sequenz von nicht rektifizierten Bildern verwendet wird.
  • In einer Ausführungsform wird das ANN mit einer unüberwachten Trainingstechnik trainiert, die Operationen beinhaltet zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an das künstliche neuronale Netzwerk (ANN), um ein Gamma-Bild zu erzeugen; Rektifizieren des Gamma-Bildes, um ein rektifiziertes Gamma-Bild zu erzeugen; und Berechnen einer Verlustfunktion unter Verwendung des rektifizierten Gamma-Bildes. In einer weiteren Ausführungsform beinhalten die Operationen zum Rektifizieren der Gamma-Karte Operationen zum Verwenden eines Linsenverzerrungsmodells. In einer weiteren Ausführungsform beinhaltet das Berechnen der Verlustfunktion Berechnen eines Fehlers zwischen einem Modell eines zukünftigen Bildes und einem zukünftigen Bild, wobei das Modell des zukünftigen Bildes, das unter Verwendung der ausgewählten Homographie erzeugt wird, bei dem ersten nicht rektifizierten Bild angewendet wird.
  • 10 veranschaulicht ein kamerabasiertes, fahrzeugmontiertes System zur Profilerstellung einer Straße zur Verwendung mit einem Steuersystem eines autonomen Fahrzeugs, gemäß einer Ausführungsform. Wie veranschaulicht, besteht das System aus einer Anzahl von Untersystemen, Komponenten, Schaltungen, Modulen oder Engines, die zur Kürze und Konsistenz halber als Engines bezeichnet werden, obwohl es sich versteht, dass diese Begriffe austauschbar verwendet werden können. Engines werden in Hardware, oder in Hardware, die durch Software oder Firmware gesteuert wird, realisiert. Demnach sind Engines greifbare Entitäten, die speziell zum Durchführen spezifizierter Operationen bestimmt sind, und sind auf eine gewisse Art und Weise strukturiert.
  • In einem Beispiel kann eine Schaltungsanordnung auf eine spezifizierte Art und Weise als eine Engine (z. B. intern oder bezüglich externer Entitäten, wie etwa anderen Schaltungen) angeordnet sein. In einem Beispiel kann die Gesamtheit oder ein Teil eines oder mehrerer Hardwareprozessoren durch Firmware oder Software (z. B. Anweisungen, ein Anwendungsteil oder eine Anwendung) als eine Engine konfiguriert werden, die zum Durchführen spezifizierter Operationen arbeitet. In einem Beispiel kann sich die Software auf einem greifbaren maschinenlesbaren Speicherungsmedium befinden. In einem Beispiel bewirkt die Software, wenn sie durch die zugrundeliegende Hardware der Engine ausgeführt wird, dass die Hardware die spezifizierten Operationen durchführt. Dementsprechend ist eine Engine physisch konstruiert, oder spezifisch konfiguriert (z. B. festverdrahtet), oder temporär konfiguriert (z. B. programmiert), um auf eine spezifizierte Art und Weise zu arbeiten oder einen Teil oder die Gesamtheit einer beliebigen hierin beschriebenen Operation durchzuführen.
  • In Anbetracht von Beispielen, in denen Engines temporär konfiguriert sind, muss jede der Engines nicht zu irgendeinem Zeitpunkt instanziiert werden. Beispielsweise wenn die Engines einen Allzweck-Hardwareprozessorkern umfassen, der unter Verwendung von Software konfiguriert wird, kann der Allzweck-Hardwareprozessorkern zu unterschiedlichen Zeiten als jeweilige unterschiedliche Engines konfiguriert werden. Software kann dementsprechend einen Hardwareprozessorkern konfigurieren, um zum Beispiel eine bestimmte Engine zu einer Zeitinstanz zu bilden und eine andere Engine zu einer anderen Zeitinstanz zu bilden.
  • Wie dargestellt, beinhaltet das System eine Kamera oder einen Bildsensor 1012, die/der in oder an einem Fahrzeug montiert ist. Jeder Bildsensor 1012 erfasst bildlich ein Sichtfeld, um Bildframes 1015 bereitzustellen, die durch den Bildprozessor 1030 gelesen werden. In einem Beispiel kann mehr als eine Kamera 1012 im Fahrzeug montiert sein. Beispielsweise kann das System mehrere Kameras 1012 aufweisen, die in unterschiedliche Richtungen zeigen. Ein System kann auch mehrere Kameras 1012 aufweisen, die in die gleiche oder ähnliche Richtungen bezüglich des Fahrzeugs zeigen, aber an unterschiedlichen Orten montiert sind. In einem Beispiel kann ein System mehrere Kameras aufweisen, die teilweise oder vollständig überlappende Sichtfelder aufweisen (z. B. wie unten mit Bezug auf 11 und 12 beschrieben). In einem Beispiel können zwei nebeneinander liegende Kameras in Stereo arbeiten. Obwohl Systeme mit einer einzelnen Kamera hierin besprochen sind, können auch Systeme mit mehreren Kameras verwendet werden, bei denen einige oder alle der relevanten Bilder und Frames durch unterschiedliche Kameras erfasst werden oder aus einer Zusammenstellung von Bildern erzeugt werden können, die von mehreren Kameras erfasst werden. Eine Echtzeitoperation arbeitet im vorliegenden Kontext mit einer nicht wahrnehmbaren oder nominellen Verarbeitungsverzögerung, sodass Objekte überall in einem Sichtfeld mit einer Rate detektiert werden, die mit der Rate konsistent ist, mit der das Sichtfeld gescannt oder erfasst wird.
  • Ein Bildprozessor 1030 kann verwendet werden, um Bildframes 1015 gleichzeitig oder parallel zu verarbeiten, um einer Anzahl von Fahrerassistenzsystemen oder -anwendungen zu dienen. Der Bildprozessor 1030 kann verwendet werden, um die Bildframes 1015 zu verarbeiten, um ein Bild oder Teile des Bildes in dem Vorwärtssichtfeld der Kamera 1012 zu detektieren und zu erkennen. Die Fahrerassistenzsysteme können unter Verwendung einer spezifischen Hardwareschaltungsanordnung (nicht gezeigt) mit fahrzeuginterner Software und/oder Softwaresteueralgorithmen in einer Speicherung 1013 implementiert werden. Der Bildsensor 1012 kann monochrom, graustufen- oder farbempfindlich sein. Beispielhaft werden die Bildframes 1015 verwendet, um einer Merkmalsdetektions-Engine 1020, einer Verkehrsschilderkennungs(TSR)-Engine 1021, einer Front-Kollisionswamungs(FCW)-Engine 1022 und einer Vertikalkontur-Detektions-Engine 1023 zu dienen. In einem Beispiel werden die Bildframes 1015 zwischen unterschiedlichen Fahrerassistenzanwendungen aufgeteilt, und in anderen Fällen können die Bildframes 1015 zwischen den unterschiedlichen Fahrerassistenzanwendungen gemeinsam genutzt werden.
  • In einem Beispiel wird das System verwendet, um das planare (oder biquadratische) Modell der Straßenoberfläche genau zu schätzen und kleine Abweichungen von dem planaren (oder biquadratischen) Straßenoberflächenmodell zu berechnen, um verschiedene Oberflächenmerkmale zu detektieren oder zu quantifizieren. Der Begriff „Straßenoberflächenmodell“ im vorliegenden Kontext bezieht sich auf ein planares oder biquadratisches Modell der Straßenoberfläche. Der Begriff „vertikale Kontur“ oder „vertikale Abweichung“ bezieht sich auf die Abweichungen von dem Straßenoberflächenmodell entlang einer Achse senkrecht zu der Straßenoberfläche.
  • In einem Beispiel wird das System verwendet, um eine Straßenoberflächenform, wie etwa eine vertikale Kontur, unter Verwendung der Kamera 1012, die in einem Host-Fahrzeug montiert ist, genau zu modellieren. Unter Verwendung von hierin bereitgestellten Systemen und Verfahren können Oberflächenmerkmale, wie etwa Hügel oder Löcher, Verkehrsschwellen, Bordsteinkanten oder Schachtabdeckungen, als vertikale Abweichungen von der Straßenoberfläche (z. B. Ebene) mit Subpixel-Genauigkeit (z. B. in der Ordnung von 1 - 2 Zentimetern) gemessen oder modelliert werden. Diese Techniken können gleichermaßen auf vorwärts, seitwärts oder rückwärts gerichtete Kameras 1012 angewendet werden.
  • Die Gamma-Karte kann zum Bestimmen befahrbarer Bereiche vor, an den Seiten von und hinter dem Fahrzeug nützlich sein. Die Gamma-Karte kann alleine verwendet werden, um Stellen zu finden, an denen die Oberflächenneigung zu steil zum Befahren ist, oder sie kann mit einem Graustufen- oder Farbbild-basierten semantischen Freiraum kombiniert werden, wie in der US-Patentveröffentlichung Nr. 2018/0101177 beschrieben, die hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird. Die Gamma-Karte, oder Höhenkarte, der Straßenebene kann verwendet werden, um zwischen scharf vertikalen Bordsteinen, sanft abfallenden Bordsteinen oder unbefestigten Randstreifen (z. B. wo eine Straße abfällt) zu unterscheiden. Das Host-Fahrzeug kann dann gesteuert werden, um einen größeren Abstand von einem scharfen Bordstein oder Randabfall beizubehalten als von einem sanft abfallenden Bordstein.
  • In einem Beispiel kann das System ferner einen Fahrzeugsteuerungsprozessor 1040 beinhalten, der eine oder mehrere Fahrzeugsteuerungs-Engines zum Erzeugen von Drossel-, Brems-, Lenk- oder Getriebeauswahlbefehlen an die elektromechanischen Aktorsysteme des Fahrzeugs implementiert, um autonome oder semi-autonome Fahroperationen zu bewirken. Der Fahrzeugsteuerungsprozessor 1040 kann verschiedene Ausgaben empfangen, die durch den Bildprozessor 1030 geliefert werden und die verschiedenen Maschinenvisionsbeurteilungen betreffen, die durch die Engines 1020 - 1023 erzeugt werden.
  • 11 veranschaulicht ein Mehrkameraarray an einem Fahrzeug, gemäß einer Ausführungsform. Wie dargestellt, sind Kameras 1112A - 1112F rund um ein Fahrzeug positioniert, um Sichtfelder 1100A - 1100F bereitzustellen (z. B. wie etwa jene, die unten beschrieben sind).
  • 12 veranschaulicht Beispiele für Sichtfelder, die durch ein Mehrkameraarray erfasst werden können, gemäß einer Ausführungsform. Es sind mehrere überlappende Sichtfelder 1200A - 1200C veranschaulicht. Hier ist die Straßenoberfläche den Ansichten gemein.
  • Ausführungsformen können in einer oder einer Kombination von Hardware, Firmware und Software implementiert werden. Ausführungsformen können auch als Anweisungen implementiert werden, die auf einer maschinenlesbaren Speicherungsvorrichtung gespeichert sind, die durch mindestens einen Prozessor gelesen und ausgeführt werden können, um die hierin beschriebenen Operationen durchzuführen. Eine maschinenlesbare Speicherungsvorrichtung kann einen beliebigen nichtflüchtigen Mechanismus zum Speichern von Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form beinhalten. Beispielsweise kann eine maschinenlesbare Speicherungsvorrichtung Nurlesespeicher (ROM), Direktzugriffsspeicher (RAM), magnetische Plattenspeicherungsmedien, optische Speicherungsmedien, Flash-Speichervorrichtungen und andere Speicherungsvorrichtungen und -medien beinhalten.
  • Ein Prozessoruntersystem kann verwendet werden, um die Anweisung auf dem maschinenlesbaren Medium auszuführen. Das Prozessoruntersystem kann einen oder mehrere Prozessoren, jeweils mit einem oder mehreren Kernen, beinhalten. Zusätzlich kann das Prozessoruntersystem auf einer oder mehreren physischen Vorrichtungen angeordnet sein. Das Prozessoruntersystem kann einen oder mehrere spezialisierte Prozessoren beinhalten, wie etwa eine Grafikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), ein feldprogrammierbares Gate-Array (FPGA) oder einen Festfunktionsprozessor.
  • Beispiele, wie hierin beschrieben, können Logik oder eine Anzahl von Komponenten, Modulen oder Mechanismen beinhalten oder auf diesen arbeiten. Module können Hardware, Software oder Firmware sein, die kommunikativ mit einem oder mehreren Prozessoren gekoppelt ist, um die hierin beschriebenen Operationen auszuführen. Module können Hardwaremodule sein, und demnach können Module als greifbare Entitäten angesehen werden, die in der Lage sind, spezifizierte Operationen durchzuführen, und können auf eine gewisse Art und Weise konfiguriert oder angeordnet sein. In einem Beispiel können Schaltungen auf eine spezifizierte Art und Weise als ein Modul (z. B. intern oder bezüglich externer Entitäten, wie etwa anderen Schaltungen) angeordnet sein. In einem Beispiel kann die Gesamtheit oder ein Teil eines oder mehrerer Computersysteme (z. B. ein Standalone-, Client- oder Server-Computersystem) oder eines oder mehrerer Hardwareprozessoren durch Firmware oder Software (z. B. Anweisungen, ein Anwendungsteil oder eine Anwendung) als ein Modul konfiguriert werden, das spezifizierte Operationen durchführt. In einem Beispiel kann sich die Software auf einem maschinenlesbaren Medium befinden. In einem Beispiel bewirkt die Software, wenn sie durch die zugrundeliegende Hardware des Moduls ausgeführt wird, dass die Hardware die spezifizierten Operationen durchführt. Dementsprechend soll der Begriff Hardwaremodul so verstanden werden, dass er eine greifbare Entität einschließt, ungeachtet dessen, ob dies eine Entität ist, die physisch konstruiert, spezifisch konfiguriert (z. B. festverdrahtet), oder temporär (z. B. flüchtig) konfiguriert (z. B. programmiert) ist, um auf eine spezifizierte Art und Weise zu arbeiten oder einen Teil oder die Gesamtheit einer beliebigen hierin beschriebenen Operation durchzuführen. In Anbetracht von Beispielen, in denen Module temporär konfiguriert sind, muss jedes der Module nicht zu irgendeinem Zeitpunkt instanziiert werden. Beispielsweise wenn die Module einen Allzweck-Hardwareprozessor umfassen, der unter Verwendung von Software konfiguriert wird, kann der Allzweck-Hardwareprozessor zu unterschiedlichen Zeiten als jeweilige unterschiedliche Module konfiguriert werden. Software kann dementsprechend einen Hardwareprozessor konfigurieren, um zum Beispiel ein bestimmtes Modul zu einer Zeitinstanz zu bilden und ein anderes Modul zu einer anderen Zeitinstanz zu bilden. Module können auch Software- oder Firmwaremodule sein, die funktionieren, um die hierin beschriebenen Methoden durchzuführen.
  • Schaltungsanordnungen oder Schaltungen, wie in diesem Dokument verwendet, können zum Beispiel einzeln oder in einer beliebigen Kombination festverdrahtete Schaltungsanordnungen, programmierbare Schaltungsanordnungen wie etwa Computerprozessoren, die einen oder mehrere individuelle Anweisungsverarbeitungskerne umfassen, Zustandsmaschinenschaltungsanordnungen und/oder Firmware, die Anweisungen speichert, die durch programmierbare Schaltungsanordnungen ausgeführt werden, umfassen. Diese Schaltungen, Schaltungsanordnungen oder Module können, kollektiv oder individuell, als Schaltungsanordnungen umgesetzt sein, die einen Teil eines größeren Systems bilden, zum Beispiel eine integrierte Schaltung (IC), ein System-on-Chip (SoC), Desktop-Computer, Laptop-Computer, Tablet-Computer, Server, Smartphones usw.
  • Wie in einer beliebigen Ausführungsform hierin verwendet, kann sich der Begriff „Logik“ auf Firmware und/oder Schaltungsanordnungen beziehen, die dazu ausgelegt sind, beliebige der vorgenannten Operationen durchzuführen. Firmware kann als Code, Anweisungen oder Anweisungssätze und/oder Daten umgesetzt sein, die in Speichervorrichtungen und/oder -schaltungsanordnungen fest codiert (z. B. nichtflüchtig) sind.
  • „Schaltungsanordnung", wie in einer beliebigen Ausführungsform hierin verwendet, kann zum Beispiel einzeln oder in einer beliebigen Kombination eine festverdrahtete Schaltungsanordnung, eine programmierbare Schaltungsanordnung, eine Zustandsmaschinenschaltungsanordnung, Logik und/oder Firmware, die Anweisungen speichert, die durch eine programmierbare Schaltungsanordnung ausgeführt werden, umfassen. Die Schaltungsanordnung kann als eine integrierte Schaltung umgesetzt sein, wie etwa ein integrierter Schaltungschip. In einigen Ausführungsformen kann die Schaltungsanordnung zumindest teilweise durch die Prozessorschaltungsanordnung gebildet werden, die Code und/oder Anweisungssätze (z. B. Software, Firmware usw.) entsprechend der hierin beschriebenen Funktionalität ausführt, wodurch ein Allzweckprozessor in eine Spezial-Verarbeitungsumgebung transformiert wird, um eine oder mehrere der hierin beschriebenen Operationen durchzuführen. In einigen Ausführungsformen kann die Prozessorschaltungsanordnung als eine unabhängige integrierte Schaltung umgesetzt sein oder kann als eine mehrerer Komponenten auf einer integrierten Schaltung eingebunden sein. In einigen Ausführungsformen können die verschiedenen Komponenten und Schaltungsanordnungen des Knotens oder anderer Systeme in eine System-on-Chip(SoC)-Architektur kombiniert werden.
  • 13 ist ein Blockdiagramm, das eine Maschine in der beispielhaften Form eines Computersystems 1300 veranschaulicht, in dem ein Satz oder eine Sequenz von Anweisungen ausgeführt werden kann, um zu bewirken, dass die Maschine eine beliebige der hierin besprochenen Methoden durchführt, gemäß einer Ausführungsform. In alternativen Ausführungsformen arbeitet die Maschine als eine unabhängige Vorrichtung oder kann mit anderen Maschinen verbunden (z. B. vernetzt) sein. Bei einem vernetzten Einsatz kann die Maschine in der Kapazität von entweder einem Server oder einer Client-Maschine in Server-Client-Netzwerkumgebungen arbeiten, oder sie kann als eine Peer-Maschine in Peer-zu-Peer- (oder verteilten) Netzwerkumgebungen agieren. Die Maschine kann ein am Kopf angebrachtes Display, eine Wearable-Vorrichtung, ein Personal Computer (PC), ein Tablet-PC, ein hybrides Tablet, ein Personal Digital Assistant (PDA), ein Mobiltelefon oder eine beliebige Maschine sein, die in der Lage ist, Anweisungen (sequenziell oder anderweitig) auszuführen, die Handlungen spezifizieren, die von dieser Maschine durchgeführt werden sollen. Während nur eine einzelne Maschine veranschaulicht ist, soll der Begriff „Maschine“ ferner auch so aufgefasst werden, dass er eine beliebige Ansammlung von Maschinen beinhaltet, die individuell oder gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um eine oder mehrere beliebige der hierin besprochenen Methoden durchzuführen. Gleichermaßen soll der Begriff „prozessorbasiertes System“ so aufgefasst werden, dass er einen beliebigen Satz von einer oder mehreren Maschinen beinhaltet, die durch einen Prozessor (z. B. einen Computer) gesteuert oder betrieben werden, um einzeln oder gemeinsam Anweisungen zum Durchführen einer oder mehrerer beliebiger der hierin besprochenen Methoden auszuführen.
  • Das beispielhafte Computersystem 1300 beinhaltet mindestens einen Prozessor 1302 (z. B. eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU) oder beide, Prozessorkerne, Rechenknoten usw.), einen Hauptspeicher 1304 und einen statischen Speicher 1306, die über einen Link 1308 (z. B. Bus) miteinander kommunizieren. Das Computersystem 1300 kann ferner eine Videoanzeigeeinheit 1310, eine alphanumerische Eingabevorrichtung 1312 (z. B. eine Tastatur) und eine Benutzerschnittstellen(UI)-Navigationsvorrichtung 1314 (z. B. eine Maus) beinhalten. In einer Ausführungsform sind die Videoanzeigeeinheit 1310, die Eingabevorrichtung 1312 und die UI-Navigationsvorrichtung 1314 in eine Touchscreen-Anzeige integriert. Das Computersystem 1300 kann zusätzlich eine Speicherungsvorrichtung 1316 (z. B. eine Laufwerkseinheit), eine Signalerzeugungsvorrichtung 1318 (z. B. einen Lautsprecher), eine Netzwerkschnittstellenvorrichtung 1320 und einen oder mehrere Sensoren (nicht gezeigt), wie etwa einen Sensor des globalen Positionierungssystems (GPS), einen Kompass, einen Beschleunigungsmesser, ein Gyrometer, ein Magnetometer oder einen anderen Sensor, beinhalten.
  • Die Speicherungsvorrichtung 1316 beinhaltet ein maschinenlesbares Medium 1322, auf dem ein oder mehrere Sätze von Datenstrukturen und Anweisungen 1324 (z. B. Software) gespeichert sind, die eine oder mehrere der hierin beschriebenen Methoden oder Funktionen umsetzen oder durch diese genutzt werden. Die Anweisungen 1324 können sich auch, vollständig oder zumindest teilweise, während ihrer Ausführung durch das Computersystem 1300 in dem Hauptspeicher 1304, dem statischen Speicher 1306 und/oder innerhalb des Prozessors 1302 befinden, wobei der Hauptspeicher 1304, der statische Speicher 1306 und der Prozessor 1302 auch maschinenlesbare Medien bilden.
  • Während das maschinenlesbare Medium 1322 in einer beispielhaften Ausführungsform als ein einzelnes Medium veranschaulicht ist, kann der Begriff „maschinenlesbares Medium“ ein einzelnes Medium oder mehrere Medien beinhalten (z. B. eine zentralisierte oder verteilte Datenbank und/oder assoziierte Caches und Server), die die eine oder die mehreren Anweisungen 1324 speichern. Der Begriff „maschinenlesbares Medium“ soll auch so aufgefasst werden, dass es ein beliebiges greifbares Medium beinhaltet, das in der Lage ist, Anweisungen zur Ausführung durch die Maschine zu speichern, zu codieren oder zu führen, und die bewirken, dass die Maschine eine oder mehrere beliebige der Methoden der vorliegenden Offenbarung durchführt, oder das in der Lage ist, Datenstrukturen zu speichern, zu codieren oder zu führen, die durch solche Anweisungen genutzt werden oder damit assoziiert sind. Der Begriff „maschinenlesbares Medium“ soll dementsprechend so aufgefasst werden, dass es unter anderem Solid-State-Speicher und optische und magnetische Medien beinhaltet. Spezifische Beispiele für maschinenlesbare Medien beinhalten nichtflüchtigen Speicher, einschließlich unter anderem, beispielsweise, Halbleiterspeichervorrichtungen (z. B. elektrisch programmierbaren Nurlesespeicher (EPROM), elektrisch löschbaren programmierbaren Nurlesespeicher (EEPROM)) und Flash-Speichervorrichtungen; Magnetplatten wie etwa interne Festplatten und entfernbare Platten; magnetooptische Platten; und CD-ROM- und DVD-ROM-Disks.
  • Die Anweisungen 1324 können ferner über ein Kommunikationsnetzwerk 1326 unter Verwendung eines Übertragungsmediums über die Netzwerkschnittstellenvorrichtung 1320 übertragen oder empfangen werden, die ein beliebiges einer Anzahl wohlbekannter Transferprotokolle (z. B. HTTP) nutzt. Beispiele für Kommunikationsnetzwerke beinhalten ein Lokalnetzwerk (LAN), ein Weitverkehrsnetzwerk (WAN), das Internet, Mobiltelefonnetze, POTS(Plain Old Telephone)-Netzwerke und drahtlose Datennetzwerke (z. B. Bluetooth, WiFi, 3G und 4G-LTE/LTE-A, 5G, DSRC oder WiMAX-Netzwerke). Der Begriff „Übertragungsmedium“ soll so aufgefasst werden, dass er ein beliebiges nicht greifbares Medium beinhaltet, das in der Lage ist, Anweisungen zur Ausführung durch die Maschine zu speichern, zu codieren oder zu führen, und beinhaltet digitale oder analoge Kommunikationssignale oder ein anderes nicht greifbares Medium zum Ermöglichen einer Kommunikation solcher Software.
  • Zusätzliche Anmerkungen & Beispiele
  • Beispiel 1 ist eine Vorrichtung zum Modellieren einer Umgebung, wobei die Vorrichtung Folgendes umfasst: eine Hardwaresensorschnittstelle zum Erhalten einer Sequenz von nicht rektifizierten Bildern, die eine Straßenumgebung repräsentieren, wobei die Sequenz von nicht rektifizierten Bildern ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhaltet; und eine Verarbeitungsschaltungsanordnung zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an ein künstliches neuronales Netzwerk (ANN), um eine dreidimensionale Struktur einer Szene zu erzeugen; Bestimmen einer ausgewählten Homographie; und Anwenden der ausgewählten Homographie an der dreidimensionalen Struktur der Szene, um ein Modell der Straßenumgebung zu erzeugen.
  • In Beispiel 2 beinhaltet der Gegenstand des Beispiels 1, wobei die Sequenz von nicht rektifizierten Bildern zeitlich geordnet ist.
  • In Beispiel 3 beinhaltet der Gegenstand der Beispiele 1 - 2, wobei die ausgewählte Homographie eine Best-Fit-Homographie ist.
  • In Beispiel 4 beinhaltet der Gegenstand der Beispiele 1 - 3, wobei die Straßenumgebung eine Straßenoberfläche beinhaltet.
  • In Beispiel 5 beinhaltet der Gegenstand der Beispiele 1 - 4, wobei die Straßenumgebung eine Spurmarkierung, einen Fußweg oder ein Straßenregelungsobjekt beinhaltet.
  • In Beispiel 6 beinhaltet der Gegenstand der Beispiele 1 - 5, wobei zum Bestimmen der ausgewählten Homographie die Verarbeitungsschaltungsanordnung ausgelegt ist zum: Auswählen eines ersten Satzes von Bildkoordinaten in dem vorherigen nicht rektifizierten Bild; Rektifizieren des ersten Satzes von Bildkoordinaten, um einen ersten Satz rektifizierter Bildkoordinaten zu erhalten; Anwenden einer Pinhole-Homographie an dem ersten Satz rektifizierter Bildkoordinaten, um entsprechende Bildkoordinaten in dem ersten nicht rektifizierten Bild zu identifizieren; Verzerren der entsprechenden Bildkoordinaten in dem ersten nicht rektifizierten Bild, um geschätzte Positionen verzerrter Bildkoordinaten zu erhalten; und Verwenden einer linearen Regressionstechnik, um die ausgewählte Homographie zwischen dem ersten Satz von Bildkoordinaten und den geschätzten Positionen verzerrter Bildkoordinaten zu bestimmen.
  • In Beispiel 7 beinhaltet der Gegenstand des Beispiels 6, wobei es sich bei dem ersten Satz von Bildkoordinaten um Pixel handelt.
  • In Beispiel 8 beinhaltet der Gegenstand der Beispiele 6 - 7, wobei das Rektifizieren des ersten Satzes von Bildkoordinaten Verwenden von Rektifizierungsparametern für eine Linse, die zum Erfassen des vorherigen nicht rektifizierten Bildes verwendet wird, beinhaltet.
  • In Beispiel 9 beinhaltet der Gegenstand der Beispiele 6 - 8 Bildkoordinaten.
  • In Beispiel 10 beinhaltet der Gegenstand der Beispiele 6 - 9, wobei zum Verzerren der entsprechenden Bildkoordinaten die Verarbeitungsschaltungsanordnung ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells für eine Linse, die zum Erfassen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes verwendet wird.
  • In Beispiel 11 beinhaltet der Gegenstand der Beispiele 1 - 10, wobei das Modell der Straßenumgebung eine Höhe über einer Bodenebene und eine Tiefe von einer Bilderfassungsvorrichtung, die zum Erfassen der Sequenz von nicht rektifizierten Bildern verwendet wird, beinhaltet.
  • In Beispiel 12 beinhaltet der Gegenstand der Beispiele 1 - 11, wobei das ANN mit einer unüberwachten Trainingstechnik trainiert wird, die Operationen beinhaltet zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an das künstliche neuronale Netzwerk (ANN), um ein Gamma-Bild zu erzeugen; Rektifizieren des Gamma-Bildes, um ein rektifiziertes Gamma-Bild zu erzeugen; und Berechnen einer Verlustfunktion unter Verwendung des rektifizierten Gamma-Bildes.
  • In Beispiel 13 beinhaltet der Gegenstand des Beispiels 12, wobei zum Rektifizieren der Gamma-Karte die Verarbeitungsschaltungsanordnung ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells.
  • In Beispiel 14 beinhaltet der Gegenstand der Beispiele 12 - 13, wobei zum Berechnen der Verlustfunktion die Verarbeitungsschaltungsanordnung ausgelegt ist zum Berechnen eines Fehlers zwischen einem Modell eines zukünftigen Bildes und einem zukünftigen Bild, wobei das Modell des zukünftigen Bildes, das unter Verwendung der ausgewählten Homographie erzeugt wird, bei dem ersten nicht rektifizierten Bild angewendet wird.
  • Beispiel 15 ist ein Verfahren zum Modellieren einer Umgebung, das Folgendes umfasst: Erhalten einer Sequenz von nicht rektifizierten Bildern, die eine Straßenumgebung repräsentieren, wobei die Sequenz von nicht rektifizierten Bildern ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhaltet; Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an ein künstliches neuronales Netzwerk (ANN), um eine dreidimensionale Struktur einer Szene zu erzeugen; Bestimmen einer ausgewählten Homographie; und Anwenden der ausgewählten Homographie an der dreidimensionalen Struktur der Szene, um ein Modell der Straßenumgebung zu erzeugen.
  • In Beispiel 16 beinhaltet der Gegenstand des Beispiels 15, wobei die Sequenz von nicht rektifizierten Bildern zeitlich geordnet ist.
  • In Beispiel 17 beinhaltet der Gegenstand der Beispiele 15 - 16, wobei die ausgewählte Homographie eine Best-Fit-Homographie ist.
  • In Beispiel 18 beinhaltet der Gegenstand der Beispiele 15 - 17, wobei die Straßenumgebung eine Straßenoberfläche beinhaltet.
  • In Beispiel 19 beinhaltet der Gegenstand der Beispiele 15 - 18, wobei die Straßenumgebung eine Spurmarkierung, einen Fußweg oder ein Straßenregelungsobjekt beinhaltet.
  • In Beispiel 20 beinhaltet der Gegenstand der Beispiele 15 - 19, wobei das Bestimmen der ausgewählten Homographie umfasst: Auswählen eines ersten Satzes von Bildkoordinaten in dem vorherigen nicht rektifizierten Bild; Rektifizieren des ersten Satzes von Bildkoordinaten, um einen ersten Satz rektifizierter Bildkoordinaten zu erhalten; Anwenden einer Pinhole-Homographie an dem ersten Satz rektifizierter Bildkoordinaten, um entsprechende Bildkoordinaten in dem ersten nicht rektifizierten Bild zu identifizieren; Verzerren der entsprechenden Bildkoordinaten in dem ersten nicht rektifizierten Bild, um geschätzte Positionen verzerrter Bildkoordinaten zu erhalten; und Verwenden einer linearen Regressionstechnik, um die ausgewählte Homographie zwischen dem ersten Satz von Bildkoordinaten und den geschätzten Positionen verzerrter Bildkoordinaten zu bestimmen.
  • In Beispiel 21 beinhaltet der Gegenstand des Beispiels 20, wobei es sich bei dem ersten Satz von Bildkoordinaten um Pixel handelt.
  • In Beispiel 22 beinhaltet der Gegenstand der Beispiele 20 - 21, wobei das Rektifizieren des ersten Satzes von Bildkoordinaten Verwenden von Rektifizierungsparametern für eine Linse, die zum Erfassen des vorherigen nicht rektifizierten Bildes verwendet wird, beinhaltet.
  • In Beispiel 23 beinhaltet der Gegenstand der Beispiele 20 - 22 Bildkoordinaten.
  • In Beispiel 24 beinhaltet der Gegenstand der Beispiele 20 - 23, wobei das Verzerren der entsprechenden Bildkoordinaten Verwenden eines Linsenverzerrungsmodells für eine Linse, die zum Erfassen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes verwendet wird, umfasst.
  • In Beispiel 25 beinhaltet der Gegenstand der Beispiele 15 - 24, wobei das Modell der Straßenumgebung eine Höhe über einer Bodenebene und eine Tiefe von einer Bilderfassungsvorrichtung, die zum Erfassen der Sequenz von nicht rektifizierten Bildern verwendet wird, beinhaltet.
  • In Beispiel 26 beinhaltet der Gegenstand der Beispiele 15 - 25, wobei das ANN mit einer unüberwachten Trainingstechnik trainiert wird, die Operationen beinhaltet zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an das künstliche neuronale Netzwerk (ANN), um ein Gamma-Bild zu erzeugen; Rektifizieren des Gamma-Bildes, um ein rektifiziertes Gamma-Bild zu erzeugen; und Berechnen einer Verlustfunktion unter Verwendung des rektifizierten Gamma-Bildes.
  • In Beispiel 27 beinhaltet der Gegenstand des Beispiels 26, wobei zum Rektifizieren der Gamma-Karte die unüberwachte Trainingstechnik ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells.
  • In Beispiel 28 beinhaltet der Gegenstand der Beispiele 26 - 27, wobei das Berechnen der Verlustfunktion Berechnen eines Fehlers zwischen einem Modell eines zukünftigen Bildes und einem zukünftigen Bild umfasst, wobei das Modell des zukünftigen Bildes, das unter Verwendung der ausgewählten Homographie erzeugt wird, bei dem ersten nicht rektifizierten Bild angewendet wird.
  • Beispiel 29 ist mindestens ein maschinenlesbares Medium, das Anweisungen zum Modellieren einer Umgebung beinhaltet, wobei die Anweisungen, wenn sie durch eine Verarbeitungsschaltungsanordnung ausgeführt werden, bewirken, dass die Verarbeitungsschaltungsanordnung Operationen durchführt, die Folgendes umfassen: Erhalten einer Sequenz von nicht rektifizierten Bildern, die eine Straßenumgebung repräsentieren, wobei die Sequenz von nicht rektifizierten Bildern ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhaltet; Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an ein künstliches neuronales Netzwerk (ANN), um eine dreidimensionale Struktur einer Szene zu erzeugen; Bestimmen einer ausgewählten Homographie; und Anwenden der ausgewählten Homographie an der dreidimensionalen Struktur der Szene, um ein Modell der Straßenumgebung zu erzeugen.
  • In Beispiel 30 beinhaltet der Gegenstand des Beispiels 29, wobei die Sequenz von nicht rektifizierten Bildern zeitlich geordnet ist.
  • In Beispiel 31 beinhaltet der Gegenstand der Beispiele 29 - 30, wobei die ausgewählte Homographie eine Best-Fit-Homographie ist.
  • In Beispiel 32 beinhaltet der Gegenstand der Beispiele 29 - 31, wobei die Straßenumgebung eine Straßenoberfläche beinhaltet.
  • In Beispiel 33 beinhaltet der Gegenstand der Beispiele 29 - 32, wobei die Straßenumgebung eine Spurmarkierung, einen Fußweg oder ein Straßenregelungsobjekt beinhaltet.
  • In Beispiel 34 beinhaltet der Gegenstand der Beispiele 29 - 33, wobei die Operationen zum Bestimmen der ausgewählten Homographie Operationen umfassen zum: Auswählen eines ersten Satzes von Bildkoordinaten in dem vorherigen nicht rektifizierten Bild; Rektifizieren des ersten Satzes von Bildkoordinaten, um einen ersten Satz rektifizierter Bildkoordinaten zu erhalten; Anwenden einer Pinhole-Homographie an dem ersten Satz rektifizierter Bildkoordinaten, um entsprechende Bildkoordinaten in dem ersten nicht rektifizierten Bild zu identifizieren; Verzerren der entsprechenden Bildkoordinaten in dem ersten nicht rektifizierten Bild, um geschätzte Positionen verzerrter Bildkoordinaten zu erhalten; und Verwenden einer linearen Regressionstechnik, um die ausgewählte Homographie zwischen dem ersten Satz von Bildkoordinaten und den geschätzten Positionen verzerrter Bildkoordinaten zu bestimmen.
  • In Beispiel 35 beinhaltet der Gegenstand des Beispiels 34, wobei es sich bei dem ersten Satz von Bildkoordinaten um Pixel handelt.
  • In Beispiel 36 beinhaltet der Gegenstand der Beispiele 34 - 35, wobei das Rektifizieren des ersten Satzes von Bildkoordinaten Verwenden von Rektifizierungsparametern für eine Linse, die zum Erfassen des vorherigen nicht rektifizierten Bildes verwendet wird, beinhaltet.
  • In Beispiel 37 beinhaltet der Gegenstand der Beispiele 34 - 36 Bildkoordinaten.
  • In Beispiel 38 beinhaltet der Gegenstand der Beispiele 34 - 37, wobei die Operationen zum Verzerren der entsprechenden Bildkoordinaten Operationen umfassen zum Verwenden eines Linsenverzerrungsmodells für eine Linse, die zum Erfassen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes verwendet wird.
  • In Beispiel 39 beinhaltet der Gegenstand der Beispiele 29 - 38, wobei das Modell der Straßenumgebung eine Höhe über einer Bodenebene und eine Tiefe von einer Bilderfassungsvorrichtung, die zum Erfassen der Sequenz von nicht rektifizierten Bildern verwendet wird, beinhaltet.
  • In Beispiel 40 beinhaltet der Gegenstand der Beispiele 29 - 39, wobei das ANN mit einer unüberwachten Trainingstechnik trainiert wird, die Operationen beinhaltet zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an das künstliche neuronale Netzwerk (ANN), um ein Gamma-Bild zu erzeugen; Rektifizieren des Gamma-Bildes, um ein rektifiziertes Gamma-Bild zu erzeugen; und Berechnen einer Verlustfunktion unter Verwendung des rektifizierten Gamma-Bildes.
  • In Beispiel 41 beinhaltet der Gegenstand des Beispiels 40, wobei zum Rektifizieren der Gamma-Karte die Verarbeitungsschaltungsanordnung ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells.
  • In Beispiel 42 beinhaltet der Gegenstand der Beispiele 40 - 41, wobei die Operationen zum Berechnen der Verlustfunktion Operationen umfassen zum Berechnen eines Fehlers zwischen einem Modell eines zukünftigen Bildes und einem zukünftigen Bild, wobei das Modell des zukünftigen Bildes, das unter Verwendung der ausgewählten Homographie erzeugt wird, bei dem ersten nicht rektifizierten Bild angewendet wird.
  • Beispiel 43 ist mindestens ein maschinenlesbares Medium, das Anweisungen beinhaltet, die, wenn sie durch eine Verarbeitungsschaltungsanordnung ausgeführt werden, bewirken, dass die Verarbeitungsschaltungsanordnung Operationen zum Implementieren beliebiger der Beispiele 1 - 42 durchführt.
  • Beispiel 44 ist eine Einrichtung, die Mittel zum Implementieren beliebiger der Beispiele 1 - 42 umfasst.
  • Beispiel 45 ist ein System zum Implementieren beliebiger der Beispiele 1 - 42.
  • Beispiel 46 ist ein Verfahren zum Implementieren beliebiger der Beispiele 1 - 42.
  • Die obige ausführliche Beschreibung beinhaltet Bezüge auf die begleitenden Zeichnungen, die einen Teil der ausführlichen Beschreibung bilden. Die Zeichnungen zeigen veranschaulichend spezifische Ausführungsformen, die praktisch umgesetzt werden können. Diese Ausführungsformen sind hierin auch als „Beispiele“ bezeichnet. Solche Beispiele können zusätzliche Elemente zu jenen beinhalten, die gezeigt oder beschrieben sind. Die vorliegenden Erfinder ziehen jedoch auch Beispiele in Betracht, in denen nur jene gezeigten oder beschriebenen Elemente bereitgestellt sind. Darüber hinaus ziehen die vorliegenden Erfinder auch Beispiele in Betracht, die eine beliebige Kombination oder Permutation jener gezeigten oder beschriebenen Elemente (oder einen oder mehrere Aspekte davon) verwenden, entweder mit Bezug auf ein bestimmtes Beispiel (oder einen oder mehrere Aspekte davon) oder mit Bezug auf andere Beispiele (oder einen oder mehrere Aspekte davon), die hierin gezeigt oder beschrieben sind.
  • Alle Veröffentlichungen, Patente und Patentdokumente, auf die in diesem Dokument Bezug genommen wird, werden hiermit in ihrer Gesamtheit aufgenommen, als ob sie individuell durch Bezugnahme aufgenommen werden. Im Fall von widersprüchlichem Gebrauch zwischen diesem Dokument und den so durch Bezugnahme aufgenommenen Dokumenten sollte der Gebrauch in dem einen oder den mehreren aufgenommenen Bezügen als ergänzend zu dem dieses Dokuments angesehen werden; für unvereinbare Widersprüche gilt der Gebrauch in diesem Dokument.
  • In diesem Dokument werden die Begriffe „ein“ oder „eine“ so verwendet, wie es in Patentdokumenten gewöhnlich ist, um eins oder mehr als eins einzuschließen, unabhängig von jeglichen anderen Instanzen oder Verwendungen von „mindestens eine(r)“ oder „eine(r) oder mehrere“. In diesem Dokument wird der Begriff „oder“ verwendet, um sich auf ein nicht exklusives Oder zu beziehen, sodass „A oder B“ „A, aber nicht B“, „B, aber nicht A“ und „A und B“ beinhaltet, insofern nichts anderes angegeben ist. In den angehängten Ansprüchen werden die Begriffe „einschließlich“ und „in der/dem“ als die einfachen deutschen Äquivalente der jeweiligen Begriffe „umfassend“ und „wobei“ verwendet. In den folgenden Ansprüchen sind die Begriffe „einschließlich“ und „umfassend“ außerdem offen, das heißt, ein System, eine Vorrichtung, ein Artikel oder ein Prozess, der/die/das Elemente zu denen beinhaltet, die nach einem solchen Begriff in einem Anspruch aufgelistet sind, soll weiterhin in den Schutzumfang dieses Anspruchs fallen. Darüber hinaus werden in den folgenden Ansprüchen die Begriffe „erster“, „zweiter“ und „dritter“ usw. lediglich als Bezeichnungen verwendet und sind nicht dazu bestimmt, numerische Anforderungen an ihre Objekte zu stellen.
  • Die obige Beschreibung soll veranschaulichend und nicht beschränkend sein. Beispielsweise können die oben beschriebenen Beispiele (oder ein oder mehrere Aspekte davon) in Kombination mit anderen verwendet werden. Andere Ausführungsformen können verwendet werden, wie etwa durch einen Durchschnittsfachmann auf dem Gebiet nach dem Durchlesen der obigen Beschreibung. Die Zusammenfassung soll dem Leser ermöglichen, die Art der technischen Offenbarung schnell zu ermitteln. Sie wird mit dem Verständnis eingereicht, dass sie nicht zum Interpretieren oder Beschränken des Schutzumfangs oder der Bedeutung der Ansprüche verwendet wird. In der obigen ausführlichen Beschreibung können auch verschiedene Merkmale zusammengruppiert werden, um die Offenbarung zu straffen. Die Ansprüche legen jedoch möglicherweise nicht jedes hierin offenbarte Merkmal dar, da Ausführungsformen einen Teilsatz der Merkmale aufweisen können. Ferner können Ausführungsformen weniger Merkmale beinhalten als jene, die in einem bestimmten Beispiel offenbart sind. Somit werden die folgenden Ansprüche hiermit in die ausführliche Beschreibung aufgenommen, wobei ein Anspruch für sich alleine als eine separate Ausführungsform steht. Der Schutzumfang der hierin offenbarten Ausführungsformen soll mit einem Bezug auf die angehängten Ansprüche bestimmt werden, zusammen mit dem vollen Schutzumfang von Äquivalenten, die solchen Ansprüchen zustehen.

Claims (42)

  1. Vorrichtung zum Modellieren einer Umgebung, wobei die Vorrichtung Folgendes umfasst: eine Hardwaresensorschnittstelle zum Erhalten einer Sequenz von nicht rektifizierten Bildern, die eine Straßenumgebung repräsentieren, wobei die Sequenz von nicht rektifizierten Bildern ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhaltet; und eine Verarbeitungsschaltungsanordnung zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an ein künstliches neuronales Netzwerk (ANN), um eine dreidimensionale Struktur einer Szene zu erzeugen; Bestimmen einer ausgewählten Homographie; und Anwenden der ausgewählten Homographie an der dreidimensionalen Struktur der Szene, um ein Modell der Straßenumgebung zu erzeugen.
  2. Vorrichtung nach Anspruch 1, wobei die Sequenz von nicht rektifizierten Bildern zeitlich geordnet ist.
  3. Vorrichtung nach Anspruch 1, wobei die ausgewählte Homographie eine Best-Fit-Homographie ist.
  4. Vorrichtung nach Anspruch 1, wobei die Straßenumgebung eine Straßenoberfläche beinhaltet.
  5. Vorrichtung nach Anspruch 1, wobei die Straßenumgebung eine Spurmarkierung, einen Fußweg oder ein Straßenregelungsobjekt beinhaltet.
  6. Vorrichtung nach Anspruch 1, wobei zum Bestimmen der ausgewählten Homographie die Verarbeitungsschaltungsanordnung ausgelegt ist zum: Auswählen eines ersten Satzes von Bildkoordinaten in dem vorherigen nicht rektifizierten Bild; Rektifizieren des ersten Satzes von Bildkoordinaten, um einen ersten Satz rektifizierter Bildkoordinaten zu erhalten; Anwenden einer Pinhole-Homographie an dem ersten Satz rektifizierter Bildkoordinaten, um entsprechende Bildkoordinaten in dem ersten nicht rektifizierten Bild zu identifizieren; Verzerren der entsprechenden Bildkoordinaten in dem ersten nicht rektifizierten Bild, um geschätzte Positionen verzerrter Bildkoordinaten zu erhalten; und Verwenden einer linearen Regressionstechnik, um die ausgewählte Homographie zwischen dem ersten Satz von Bildkoordinaten und den geschätzten Positionen verzerrter Bildkoordinaten zu bestimmen.
  7. Vorrichtung nach Anspruch 6, wobei es sich bei dem ersten Satz von Bildkoordinaten um Pixel handelt.
  8. Vorrichtung nach Anspruch 6, wobei das Rektifizieren des ersten Satzes von Bildkoordinaten Verwenden von Rektifizierungsparametern für eine Linse, die zum Erfassen des vorherigen nicht rektifizierten Bildes verwendet wird, beinhaltet.
  9. Vorrichtung nach Anspruch 6, wobei der erste Satz von Bildkoordinaten 50 - 200 Bildkoordinaten beinhaltet.
  10. Vorrichtung nach Anspruch 6, wobei zum Verzerren der entsprechenden Bildkoordinaten die Verarbeitungsschaltungsanordnung ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells für eine Linse, die zum Erfassen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes verwendet wird.
  11. Vorrichtung nach Anspruch 1, wobei das Modell der Straßenumgebung eine Höhe über einer Bodenebene und eine Tiefe von einer Bilderfassungsvorrichtung, die zum Erfassen der Sequenz von nicht rektifizierten Bildern verwendet wird, beinhaltet.
  12. Vorrichtung nach Anspruch 1, wobei das ANN mit einer unüberwachten Trainingstechnik trainiert wird, die Operationen beinhaltet zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an das künstliche neuronale Netzwerk (ANN), um ein Gamma-Bild zu erzeugen; Rektifizieren des Gamma-Bildes, um ein rektifiziertes Gamma-Bild zu erzeugen; und Berechnen einer Verlustfunktion unter Verwendung des rektifizierten Gamma-Bildes.
  13. Vorrichtung nach Anspruch 12, wobei zum Rektifizieren der Gamma-Karte die Verarbeitungsschaltungsanordnung ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells.
  14. Vorrichtung nach Anspruch 12, wobei zum Berechnen der Verlustfunktion die Verarbeitungsschaltungsanordnung ausgelegt ist zum Berechnen eines Fehlers zwischen einem Modell eines zukünftigen Bildes und einem zukünftigen Bild, wobei das Modell des zukünftigen Bildes, das unter Verwendung der ausgewählten Homographie erzeugt wird, bei dem ersten nicht rektifizierten Bild angewendet wird.
  15. Verfahren zum Modellieren einer Umgebung, das Folgendes umfasst: Erhalten einer Sequenz von nicht rektifizierten Bildern, die eine Stra-ßenumgebung repräsentieren, wobei die Sequenz von nicht rektifizierten Bildern ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhaltet; Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an ein künstliches neuronales Netzwerk (ANN), um eine dreidimensionale Struktur einer Szene zu erzeugen; Bestimmen einer ausgewählten Homographie; und Anwenden der ausgewählten Homographie an der dreidimensionalen Struktur der Szene, um ein Modell der Straßenumgebung zu erzeugen.
  16. Verfahren nach Anspruch 15, wobei die Sequenz von nicht rektifizierten Bildern zeitlich geordnet ist.
  17. Verfahren nach Anspruch 15, wobei die ausgewählte Homographie eine Best-Fit-Homographie ist.
  18. Verfahren nach Anspruch 15, wobei die Straßenumgebung eine Straßenoberfläche beinhaltet.
  19. Verfahren nach Anspruch 15, wobei die Straßenumgebung eine Spurmarkierung, einen Fußweg oder ein Straßenregelungsobjekt beinhaltet.
  20. Verfahren nach Anspruch 15, wobei das Bestimmen der ausgewählten Homographie Folgendes umfasst: Auswählen eines ersten Satzes von Bildkoordinaten in dem vorherigen nicht rektifizierten Bild; Rektifizieren des ersten Satzes von Bildkoordinaten, um einen ersten Satz rektifizierter Bildkoordinaten zu erhalten; Anwenden einer Pinhole-Homographie an dem ersten Satz rektifizierter Bildkoordinaten, um entsprechende Bildkoordinaten in dem ersten nicht rektifizierten Bild zu identifizieren; Verzerren der entsprechenden Bildkoordinaten in dem ersten nicht rektifizierten Bild, um geschätzte Positionen verzerrter Bildkoordinaten zu erhalten; und Verwenden einer linearen Regressionstechnik, um die ausgewählte Homographie zwischen dem ersten Satz von Bildkoordinaten und den geschätzten Positionen verzerrter Bildkoordinaten zu bestimmen.
  21. Verfahren nach Anspruch 20, wobei es sich bei dem ersten Satz von Bildkoordinaten um Pixel handelt.
  22. Verfahren nach Anspruch 20, wobei das Rektifizieren des ersten Satzes von Bildkoordinaten Verwenden von Rektifizierungsparametern für eine Linse, die zum Erfassen des vorherigen nicht rektifizierten Bildes verwendet wird, beinhaltet.
  23. Verfahren nach Anspruch 20, wobei der erste Satz von Bildkoordinaten 50 - 200 Bildkoordinaten beinhaltet.
  24. Verfahren nach Anspruch 20, wobei das Verzerren der entsprechenden Bildkoordinaten Verwenden eines Linsenverzerrungsmodells für eine Linse, die zum Erfassen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes verwendet wird, umfasst.
  25. Verfahren nach Anspruch 15, wobei das Modell der Straßenumgebung eine Höhe über einer Bodenebene und eine Tiefe von einer Bilderfassungsvorrichtung, die zum Erfassen der Sequenz von nicht rektifizierten Bildern verwendet wird, beinhaltet.
  26. Verfahren nach Anspruch 15, wobei das ANN mit einer unüberwachten Trainingstechnik trainiert wird, die Operationen beinhaltet zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an das künstliche neuronale Netzwerk (ANN), um ein Gamma-Bild zu erzeugen; Rektifizieren des Gamma-Bildes, um ein rektifiziertes Gamma-Bild zu erzeugen; und Berechnen einer Verlustfunktion unter Verwendung des rektifizierten Gamma-Bildes.
  27. Verfahren nach Anspruch 26, wobei zum Rektifizieren der Gamma-Karte die unüberwachte Trainingstechnik ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells.
  28. Verfahren nach Anspruch 26, wobei das Berechnen der Verlustfunktion Berechnen eines Fehlers zwischen einem Modell eines zukünftigen Bildes und einem zukünftigen Bild umfasst, wobei das Modell des zukünftigen Bildes, das unter Verwendung der ausgewählten Homographie erzeugt wird, bei dem ersten nicht rektifizierten Bild angewendet wird.
  29. Maschinenlesbares Medium bzw. maschinenlesbare Medien, die Anweisungen zum Modellieren einer Umgebung beinhalten, wobei die Anweisungen, wenn sie durch eine Verarbeitungsschaltungsanordnung ausgeführt werden, bewirken, dass die Verarbeitungsschaltungsanordnung Operationen durchführt, die Folgendes umfassen: Erhalten einer Sequenz von nicht rektifizierten Bildern, die eine Stra-ßenumgebung repräsentieren, wobei die Sequenz von nicht rektifizierten Bildern ein erstes nicht rektifiziertes Bild, ein vorheriges nicht rektifiziertes Bild und ein vorvorheriges nicht rektifiziertes Bild beinhaltet; Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an ein künstliches neuronales Netzwerk (ANN), um eine dreidimensionale Struktur einer Szene zu erzeugen; Bestimmen einer ausgewählten Homographie; und Anwenden der ausgewählten Homographie an der dreidimensionalen Struktur der Szene, um ein Modell der Straßenumgebung zu erzeugen.
  30. Maschinenlesbares Medium nach Anspruch 29, wobei die Sequenz von nicht rektifizierten Bildern zeitlich geordnet ist.
  31. Maschinenlesbares Medium nach Anspruch 29, wobei die ausgewählte Homographie eine Best-Fit-Homographie ist.
  32. Maschinenlesbares Medium nach Anspruch 29, wobei die Straßenumgebung eine Straßenoberfläche beinhaltet.
  33. Maschinenlesbares Medium nach Anspruch 29, wobei die Straßenumgebung eine Spurmarkierung, einen Fußweg oder ein Straßenregelungsobjekt beinhaltet.
  34. Maschinenlesbares Medium nach Anspruch 29, wobei die Operationen zum Bestimmen der ausgewählten Homographie Operationen umfassen zum: Auswählen eines ersten Satzes von Bildkoordinaten in dem vorherigen nicht rektifizierten Bild; Rektifizieren des ersten Satzes von Bildkoordinaten, um einen ersten Satz rektifizierter Bildkoordinaten zu erhalten; Anwenden einer Pinhole-Homographie an dem ersten Satz rektifizierter Bildkoordinaten, um entsprechende Bildkoordinaten in dem ersten nicht rektifizierten Bild zu identifizieren; Verzerren der entsprechenden Bildkoordinaten in dem ersten nicht rektifizierten Bild, um geschätzte Positionen verzerrter Bildkoordinaten zu erhalten; und Verwenden einer linearen Regressionstechnik, um die ausgewählte Homographie zwischen dem ersten Satz von Bildkoordinaten und den geschätzten Positionen verzerrter Bildkoordinaten zu bestimmen.
  35. Maschinenlesbares Medium nach Anspruch 34, wobei es sich bei dem ersten Satz von Bildkoordinaten um Pixel handelt.
  36. Maschinenlesbares Medium nach Anspruch 34, wobei das Rektifizieren des ersten Satzes von Bildkoordinaten Verwenden von Rektifizierungsparametern für eine Linse, die zum Erfassen des vorherigen nicht rektifizierten Bildes verwendet wird, beinhaltet.
  37. Maschinenlesbares Medium nach Anspruch 34, wobei der erste Satz von Bildkoordinaten 50 - 200 Bildkoordinaten beinhaltet.
  38. Maschinenlesbares Medium nach Anspruch 34, wobei die Operationen zum Verzerren der entsprechenden Bildkoordinaten Operationen umfassen zum Verwenden eines Linsenverzerrungsmodells für eine Linse, die zum Erfassen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes verwendet wird.
  39. Maschinenlesbares Medium nach Anspruch 29, wobei das Modell der Straßenumgebung eine Höhe über einer Bodenebene und eine Tiefe von einer Bilderfassungsvorrichtung, die zum Erfassen der Sequenz von nicht rektifizierten Bildern verwendet wird, beinhaltet.
  40. Maschinenlesbares Medium nach Anspruch 29, wobei das ANN mit einer unüberwachten Trainingstechnik trainiert wird, die Operationen beinhaltet zum: Bereitstellen des ersten nicht rektifizierten Bildes, des vorherigen nicht rektifizierten Bildes und des vorvorherigen nicht rektifizierten Bildes an das künstliche neuronale Netzwerk (ANN), um ein Gamma-Bild zu erzeugen; Rektifizieren des Gamma-Bildes, um ein rektifiziertes Gamma-Bild zu erzeugen; und Berechnen einer Verlustfunktion unter Verwendung des rektifizierten Gamma-Bildes.
  41. Maschinenlesbares Medium nach Anspruch 40, wobei zum Rektifizieren der Gamma-Karte die Verarbeitungsschaltungsanordnung ausgelegt ist zum Verwenden eines Linsenverzerrungsmodells.
  42. Maschinenlesbares Medium nach Anspruch 40, wobei die Operationen zum Berechnen der Verlustfunktion Operationen umfassen zum Berechnen eines Fehlers zwischen einem Modell eines zukünftigen Bildes und einem zukünftigen Bild, wobei das Modell des zukünftigen Bildes, das unter Verwendung der ausgewählten Homographie erzeugt wird, bei dem ersten nicht rektifizierten Bild angewendet wird.
DE112021004501.6T 2021-03-01 2021-03-01 Modellierung der fahrzeugumgebung mit einer kamera Pending DE112021004501T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/020272 WO2022186814A1 (en) 2021-03-01 2021-03-01 Vehicle environment modeling with a camera

Publications (1)

Publication Number Publication Date
DE112021004501T5 true DE112021004501T5 (de) 2023-09-07

Family

ID=75111911

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021004501.6T Pending DE112021004501T5 (de) 2021-03-01 2021-03-01 Modellierung der fahrzeugumgebung mit einer kamera

Country Status (4)

Country Link
US (3) US20240177417A1 (de)
CN (1) CN116057578A (de)
DE (1) DE112021004501T5 (de)
WO (1) WO2022186814A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240177417A1 (en) 2021-03-01 2024-05-30 Mobileye Vision Technologies Ltd. Vehicle environment modeling with a camera

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256791B2 (en) * 2012-12-04 2016-02-09 Mobileye Vision Technologies Ltd. Road vertical contour detection
CN109804223A (zh) 2016-10-11 2019-05-24 御眼视觉技术有限公司 基于检测到的障碍物导航车辆
US10872433B2 (en) * 2018-04-18 2020-12-22 Mobileye Vision Technologies Ltd. Vehicle environment modeling with a camera
US11341614B1 (en) * 2019-09-24 2022-05-24 Ambarella International Lp Emirror adaptable stitching
US11494927B2 (en) * 2020-09-15 2022-11-08 Toyota Research Institute, Inc. Systems and methods for self-supervised depth estimation
US20240177417A1 (en) 2021-03-01 2024-05-30 Mobileye Vision Technologies Ltd. Vehicle environment modeling with a camera

Also Published As

Publication number Publication date
US11568653B2 (en) 2023-01-31
US20230162513A1 (en) 2023-05-25
US11869253B2 (en) 2024-01-09
WO2022186814A1 (en) 2022-09-09
CN116057578A (zh) 2023-05-02
US20240177417A1 (en) 2024-05-30
US20220366706A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
DE112020002697T5 (de) Modellerstellung einer fahrzeugumgebung mit kameras
DE112019000122T5 (de) Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge
DE112019000049T5 (de) Für autonomes fahren geeignete objekterfassung und erfassungssicherheit
DE102018105417A1 (de) Fahrzeugortung unter verwendung von kameras
DE112019006468T5 (de) Erkennung des abstands zu hindernissen bei anwendungen mit autonomen maschinen
DE112020002602T5 (de) Multi-objektverfolgung mit hilfe von korrelationsfiltern in videoanalyseanwendungen
DE112020000413T5 (de) Detektion von orientierungspunkten unter verwendung von kurvenanpassung für anwendungen für autonomes fahren
DE112020004139T5 (de) Erstellung von karten und lokalisierung für anwendungen im bereich des autonomen fahrens
DE102020113779A1 (de) Umgebungs-kamerasystem mit nahtlosem zusammenfügen für die auswahl beliebiger blickwinkel
DE112020006410T5 (de) Dreidimensionale kreuzungsstrukturvorhersage für anwendungen zum autonomen fahren
DE112021000135T5 (de) Sensorfusion für anwendungen autonomer maschinen durch maschinelles lernen
DE102021126254A1 (de) Überwachen der Aufmerksamkeit und der kognitiven Belastung der Insassen für autonome und halbautonome Fahranwendungen
DE102020117792A1 (de) Wirksames einsetzen von hindernis- und spurerkennungen, um spurzuweisungen für objekte in einer umgebung zu bestimmen
DE102020111271A1 (de) Schätzung von Objektposen
DE112020001897T5 (de) Trainieren neuronaler Netze unter Verwendung von Grundwahrheitsdaten, die mit Karteninformationen ergänzt wurden, für autonome Maschinenanwendungen
DE112019000048T5 (de) Bestimmung eines befahrbaren freiraums für autonome fahrzeuge
DE112019000279T5 (de) Steuern autonomer fahrzeuge anhand sicherer ankunftszeiten
DE112019000070T5 (de) Führen von fahrzeugen durch fahrzeugmanöver unter verwendung von modellen für maschinelles lernen
DE102017120112A1 (de) Tiefenkartenschätzung mit stereobildern
DE102017123180A1 (de) Rückwertige Hinderniserkennung und Abstandsschätzung
DE102020107029A1 (de) Beschleunigung der datenverarbeitung zur objektdetektion
DE102019118999A1 (de) Lidar-basierte objektdetektion und -klassifikation
DE112018007287T5 (de) Fahrzeugsystem und -verfahren zum erfassen von objekten und einer objektentfernung
DE102021100065A1 (de) Verwendung neuronaler netze zur fehlererkennung bei anwendungen für autonomes fahren
DE102021125234A1 (de) Datenerweiterung einschliesslich hintergrundmodifikation für robuste vorhersage mit neuronalen netzwerken

Legal Events

Date Code Title Description
R012 Request for examination validly filed