DE102017120709A1 - Gegenstandsabstandsschätzung unter verwendung von daten von einer einzigen kamera - Google Patents

Gegenstandsabstandsschätzung unter verwendung von daten von einer einzigen kamera Download PDF

Info

Publication number
DE102017120709A1
DE102017120709A1 DE102017120709.0A DE102017120709A DE102017120709A1 DE 102017120709 A1 DE102017120709 A1 DE 102017120709A1 DE 102017120709 A DE102017120709 A DE 102017120709A DE 102017120709 A1 DE102017120709 A1 DE 102017120709A1
Authority
DE
Germany
Prior art keywords
motion model
model
planar motion
image
feature
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
DE102017120709.0A
Other languages
English (en)
Inventor
Yi Zhang
Vidya Nariyambut murali
Madeline J. Goh
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.)
Ford Global Technologies LLC
Original Assignee
Ford Global Technologies LLC
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 Ford Global Technologies LLC filed Critical Ford Global Technologies LLC
Publication of DE102017120709A1 publication Critical patent/DE102017120709A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/14Measuring arrangements characterised by the use of optical techniques for measuring distance or clearance between spaced objects or spaced apertures
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0253Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30261Obstacle

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

Die Offenbarung betrifft Systeme und Verfahren zum Schätzen oder Bestimmen der Bewegung eines Fahrzeugs und/oder des Abstands zu Objekten innerhalb des Blickfelds einer Kamera. Ein System zum Bestimmen der Bewegung eines Fahrzeugs beinhaltet eine monokulare Kamera, die auf einem Fahrzeug montiert ist, eine Bildkomponente, eine Modellparameterkomponente, eine Modellauswahlkomponente und eine Bewegungskomponente. Die Bildkomponente erhält eine Reihe von Bildrahmen, die durch die monokulare Kamera aufgenommen wurden. Die Merkmalskomponente identifiziert entsprechende Bildmerkmale in benachbarten Bildrahmen innerhalb einer Reihe von Bildrahmen. Die Modellparameterkomponente bestimmt Parameter für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell basierend auf den Bildmerkmalen. Die Modellauswahlkomponente wählt das ebene Bewegungsmodell oder das nicht-ebene Bewegungsmodell als ein ausgewähltes Bewegungsmodell aus. Die Bewegungskomponente bestimmt eine Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft die Fahrzeuggeschwindigkeitsschätzung und Objektabstandsschätzung und betrifft insbesondere die Objektabstandsschätzung mit Eigenbewegungsausgleich unter Verwendung einer monokularen Kamera mit Fahrzeugerkennung.
  • ALLGEMEINER STAND DER TECHNIK
  • Automobile stellen einen erheblichen Teil des Transports für gewerbliche, behördliche und private Einrichtungen bereit. Autonome Fahrzeuge und Fahrerassistenzsysteme werden gegenwärtig entwickelt und eingesetzt, um Sicherheitsmerkmale bereitzustellen, eine Menge an erforderlicher Benutzereingabe zu verringern oder eine Benutzerbeteiligung sogar gänzlich zu eliminieren. Zum Beispiel können einige Fahrerassistenzsystem, wie beispielsweise Unfallvermeidungssysteme, die Fahrt, Positionen und eine Geschwindigkeit des Fahrzeugs und anderer Objekte überwachen, während ein Mensch fährt. Wenn das System erkennt, dass ein Unfall oder Zusammenstoß unmittelbar bevorsteht, kann das Unfallvermeidungssystem eingreifen und eine Bremse betätigen, das Fahrzeug lenken oder andere Ausweich- oder Sicherheitsmanöver durchführen. Als ein anderes Beispiel können autonome Fahrzeuge ein Fahrzeug mit wenig oder keiner Benutzereingabe fahren und navigieren. Aufgrund der beim Fahren beteiligten Gefahren und der Fahrzeugkosten ist es äußerst wichtig, dass autonome Fahrzeuge und Fahrassistenzsysteme sicher arbeiten und in der Lage sind, genau auf den Straßen in einer Reihe von unterschiedlichen Fahrumgebungen zu navigieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Nicht einschränkende und nicht erschöpfende Umsetzungen der vorliegenden Offenbarung werden in Bezug auf die folgenden Figuren beschrieben, wobei sich in den verschiedenen Ansichten gleiche Bezugszeichen auf gleiche Teile beziehen, sofern nicht anderweitig angegeben. Vorteile der vorliegenden Offenbarung können unter Bezugnahme auf die folgende Beschreibung und beigefügten Zeichnungen besser nachvollzogen werden, wobei:
  • 1 ein schematisches Blockdiagramm ist, das eine Umsetzung eines Fahrzeugsteuersystems veranschaulicht, das ein automatisiertes Fahr-/Assistenzsystem gemäß einer Ausführungsform beinhaltet;
  • 2 eine perspektivische Ansicht einer beispielhaften Straßenumgebung veranschaulicht;
  • 3 eine perspektivische Ansicht einer anderen beispielhaften Straßenumgebung veranschaulicht;
  • 4 ein schematisches Diagramm ist, das eine projektive Transformation (Homographie) gemäß einer Ausführungsform veranschaulicht;
  • 5 ein schematisches Diagramm ist, das ein epipolares Geometriemodell veranschaulicht, um eine grundlegende Matrix gemäß einer Ausführungsform zu bestimmen;
  • 6 ein schematisches Diagramm ist, das eine Zeit-Ort-Bündelanpassung gemäß einer Ausführungsform veranschaulicht;
  • 7 ein Diagramm ist, das eine Abstandsschätzung gemäß einer Ausführungsform veranschaulicht;
  • 8 ein schematisches Blockdiagramm ist, das einen Datenstrom für ein Verfahren zum Bestimmen des Abstands zu einem Objekt gemäß einer Ausführungsform veranschaulicht;
  • 9 ein schematisches Blockdiagramm ist, das beispielhafte Komponenten einer Objektabstandskomponente gemäß einer Umsetzung veranschaulicht;
  • 10 ein schematisches Blockdiagramm ist, das ein Verfahren zum Bestimmen einer Kamerabewegung gemäß einer Umsetzung veranschaulicht; und
  • 11 ein schematisches Blockdiagramm ist, das ein Rechensystem gemäß einer Umsetzung veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Ein automatisiertes Fahrsystem oder Fahrassistenzsystem kann Daten aus einer Vielzahl von Quellen während der Entscheidungsfindung, der Navigation oder des Fahrens verwenden, um optimale Wege oder Manöver zu bestimmen. Ein automatisiertes Fahr-/Assistenzsystem kann zum Beispiel Sensoren zum Erfassen einer Fahrumgebung in Echtzeit beinhalten und/oder kann auf lokale oder ferne Datenspeicher zugreifen, um spezifische Details über eine aktuelle Position oder über Positionen entlang eines geplanten Fahrweges zu erhalten. Zum Beispiel können Fahrzeuge zahlreichen Objekten, sowohl statischen als auch dynamischen, begegnen. Zusätzlich zum Erkennen und Klassifizieren derartiger Objekte kann der Abstand zum Gegenstand eine wichtige Information für autonomes Fahren sein. Ein intelligentes Fahrzeug muss in der Lage sein, gemäß dem Abstand zu den Objekten schnell zu reagieren. Die Schätzung der Fahrzeugeigenbewegung (Bewegung des Fahrzeugs) und genaue Merkmalsverfolgung unter Verwendung einer monokularen Kamera kann eine herausfordernde Aufgabe bei Anwendungen, wie beispielsweise einer adaptiven Abstands- und Geschwindigkeitssteuerung und Hindernisvermeidung, darstellen.
  • In der vorliegenden Patentanmeldung, offenbaren die Anmelder Systeme, Verfahren und Vorrichtungen zum Schätzen oder anderweitigen Bestimmen der Bewegung eines Fahrzeugs und/oder des Abstands von Objekten innerhalb des Sichtfeldes einer Kamera. Gemäß einer Ausführungsform beinhaltet ein System zum Bestimmen der Bewegung eines Fahrzeugs eine monokulare Kamera, die auf einem Fahrzeug montiert ist, eine Bildkomponente, eine Modellparameterkomponente, eine Modellauswahlkomponente und eine Bewegungskomponente. Die Bildkomponente ist konfiguriert, eine Reihe von Bildrahmen zu erhalten, die durch die monokulare Kamera aufgenommen wurden. Die Merkmalskomponente ist konfiguriert, entsprechende Bildmerkmale in benachbarten Bildrahmen innerhalb einer Reihe von Bildrahmen zu identifizieren. Die Modellparameterkomponente ist konfiguriert, Parameter für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell basierend auf den Bildmerkmalen zu bestimmen. Die Modellauswahlkomponente ist konfiguriert, eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als ein ausgewähltes Bewegungsmodell auszuwählen. Die Bewegungskomponente ist konfiguriert, eine Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell zu bestimmen.
  • In einer Ausführungsform können Bilder von einer am Fahrzeug angebrachten Monochrom- oder Farbkamera gesammelt werden. Zum Beispiel können die Bilder von einer Position vor einem Fahrzeug gesammelt werden, sodass Entscheidungen über das Fahren und die Navigation getroffen werden können. In einer Ausführungsform kann das System Kamerakalibrierungsdaten beinhalten. Die Kamerakalibrierung kann zum Beispiel vorberechnet werden, um die Raum- oder Farbgenauigkeit von Bildern, die unter Verwendung einer Kamera erhalten werden, zu verbessern. Das System kann ein tiefes neuronales Netz zur Erkennung und Lokalisierung von Objekten verwenden. Das tiefe neuronale Netz kann zum Beispiel Objekte bei der 2D-Bildebenenverwendung lokalisieren, identifizieren und/oder Klassifizieren.
  • In einer Ausführungsform berechnet das System die Fahrzeugeigenbewegung basierend auf Bilderschätzung und Kamerabewegungsschätzung. Das System kann zum Beispiel eine Merkmalsextraktion und ein Abgleichen mit benachbarten Bildrahmen (z. B. einem ersten und einem zweiten Rahmen, die zeitlich benachbart aufgenommen wurden) durchführen. Somit können die Merkmale in jedem Bild einander zugeordnet werden und können einen Bewegungsbetrag durch das Fahrzeug anzeigen. In einer Ausführungsform kann das System eine Fahrzeugbewegung basierend auf der dynamischen Auswahl von Bewegungsmodellen bestimmen. In einer Ausführungsform schätzt das System Parameter für eine Vielzahl von unterschiedlichen Bewegungsmodellen. Zum Beispiel kann das System Parameter für eine Homographiematrix, die für ein ebenes Bewegungsmodell verwendet wird, und für eine grundlegende Matrix, die für ein nicht-ebenes Bewegungsmodell verwendet wird, schätzen. Sobald die Parameter geschätzt sind, kann das System ein optimales Bewegungsmodell bestimmen, indem das eine ausgewählt wird, das eine Kostenfunktion minimiert. Unter Verwendung des ausgewählten Bewegungsmodells schätzt das System die Kamera-/Fahrzeugbewegung, indem die Parameter zerlegt werden. In einer Ausführungsform rekonstruiert das System spärliche Merkmalspunkte für den 3D-Raum. In einer Ausführungsform führt das Programm perspektivische Bildtransformationen durch. In einer Ausführungsform kann das System eine Bündelanpassung anwenden, um das Bewegungsschätzungssystem weiter zu optimieren, indem Zeitinformationen von Bildern, wie beispielsweise Video, genutzt werden.
  • Basierend auf der Eigenbewegung kann das System einen Objektabstand für einen Gegenstand schätzen/berechnen, der durch ein neuronales Netz erkannt/lokalisiert wurde. In einer Ausführungsform kann das System den Objektabstand unter Verwendung eines Lochkameramodells schätzen.
  • Die hierin offenbarten Ausführungsformen können alle Merkmale, die präsentierte Bildrahmen sind, für genauere und vollständigere Eigenbewegungs-, Objektabstandsschätzungen und/oder Gegenstandsverfolgung enthalten. Alle Merkmale in den Bildern können zum Beispiel für Schätzungen und/oder Berechnungen verwendet werden, nicht nur Merkmale, die dem Erdboden oder einer Fahrfläche entsprechen. Ausführungsformen verwenden zum Beispiel eine hochentwickelte Merkmalserkennung und -beschreibung, was genauere Merkmalsentsprechungen liefert.
  • Weitere Ausführungsformen und Beispiele werden in Bezug auf die nachstehenden Figuren erörtert.
  • Unter jetziger Bezugnahme auf die Figuren veranschaulicht 1 ein beispielhaftes Fahrzeugsteuersystem 100. Das Fahrzeugsteuersystem 100 beinhaltet ein automatisiertes Fahr-/Assistenzsystem 102. Das automatisierte Fahr-/Assistenzsystem 102 kann verwendet werden, um den Betrieb eines Fahrzeugs zu automatisieren oder zu steuern oder einen menschlichen Fahrer zu unterstützen. Das automatisierte Fahr-/Assistenzsystem 102 kann zum Beispiel eines oder mehrere von Bremsung, Lenkung, Beschleunigung, Licht, Alarme, Fahrerbenachrichtigungen, Radio oder beliebigen weiteren Antriebs- oder Hilfssystemen des Fahrzeugs steuern. In einem weiteren Beispiel ist das automatisierte Fahr-/Assistenzsystem 102 unter Umständen nicht in der Lage, jegliche Steuerung des Fahrens (z. B. der Lenkung, Beschleunigung oder Bremsung) bereitzustellen, kann jedoch Benachrichtigungen und Alarme bereitstellen, um einen menschlichen Fahrer darin zu unterstützen, sicher zu fahren. Das automatisierte Fahr-/Assistenzsystem 102 kann zum Beispiel eine oder mehrere Steuerungen (wie beispielsweise die hierin erörterten) beinhalten, die Daten über einen Steuerungsbus bereitstellen oder empfangen und die Daten verwenden, um durchzuführende Aktionen zu bestimmen und/oder Anweisungen oder Signale bereitzustellen, um diese Aktionen zu initiieren. Das automatisierte Fahr-/Assistenzsystem 102 kann eine Objektabstandskomponente 104 beinhalten, die konfiguriert ist, einen Abstand zu einem Objekt basierend auf Kameradaten zu erkennen und/oder zu bestimmen.
  • Das Fahrzeugsteuersystem 100 beinhaltet ebenfalls eine oder mehrere Sensorsysteme/-vorrichtungen zum Erkennen eines Vorhandenseins nahe gelegener Objekte, Fahrbahnmarkierungen und/oder zur Bestimmung eines Orts eines Stammfahrzeugs (z. B. eines Fahrzeugs, welches das Fahrzeugsteuersystem 100 beinhaltet). Das Fahrzeugsteuersystem 100 kann zum Beispiel Radarsysteme 106, ein oder mehrere LIDAR-Systeme 108, ein oder mehrere Kamerasysteme 110, ein globales Positionsbestimmungssystem (GPS) 112 und/oder Ultraschallsysteme 114 beinhalten. Das Fahrzeugsteuersystem 100 kann einen Datenspeicher 116 zum Speichern relevanter oder nützlicher Daten zur Navigation und Sicherheit beinhalten, wie beispielsweise Kartendaten, Fahrverlauf (d. h. Fahrtenaufzeichnung) oder weitere Daten. Das Fahrzeugsteuersystem 100 kann ebenfalls einen Sendeempfänger 118 zur drahtlosen Kommunikation mit einem mobilen oder drahtlosen Netz, anderen Fahrzeugen, Infrastruktur, Cloud- oder Remote-Computing- oder Speicherressourcen oder einem beliebigen anderen Kommunikationssystem beinhalten.
  • Das Fahrzeugsteuersystem 100 kann Fahrzeugsteueraktuatoren 120 beinhalten, um verschiedene Aspekte des Fahrens des Fahrzeugs zu steuern, wie beispielsweise Elektromotoren, Schalter oder andere Aktuatoren, um die Bremsung, Beschleunigung, Lenkung oder dergleichen zu steuern. Das Fahrzeugsteuersystem 100 kann einen oder mehrere Anzeigen 122, Lautsprecher 124 oder andere Vorrichtungen beinhalten, sodass einem menschlichen Fahrer oder Fahrgast Benachrichtigungen bereitgestellt werden können. Eine Anzeige 122 kann eine Frontanzeige, eine Anzeige oder eine Angabe am Armaturenbrett, einen Bildschirm oder eine beliebige andere visuelle Angabe beinhalten, die von einem Fahrer oder Fahrgast eines Fahrzeugs gesehen werden kann. Die Lautsprecher 124 können einen oder mehrere Lautsprecher eines Soundsystems eines Fahrzeugs beinhalten oder können einen für die Fahrerbenachrichtigung vorgesehenen Lautsprecher beinhalten. Die Fahrzeugsteueraktuatoren 120, Anzeigen 122, Lautsprecher 124 oder andere Teile des Fahrzeugsteuersystems 100 können von einer oder mehreren der Steuerungen des automatisierten Fahr-/Assistenzsystems 102 gesteuert werden.
  • In einer Ausführungsform ist das automatisierte Fahr-/Assistenzsystem 102 konfiguriert, das Fahren oder Navigieren eines Stammfahrzeugs zu steuern. Das automatisierte Fahr-/Assistenzsystem 102 kann zum Beispiel die Fahrzeugsteueraktuatoren 120 steuern, um einen Weg innerhalb von Fahrspuren auf einer Straße, einem Parkplatz, einer Einfahrt oder an einem anderen Ort entlangzufahren. Das automatisierte Fahr-/Assistenzsystem 102 kann zum Beispiel einen Weg basierend auf durch eine beliebige der Komponenten 106118 bereitgestellten Informationen oder Wahrnehmungsdaten bestimmen. Die Sensorsysteme/-vorrichtungen 106110 und 114 können verwendet werden, um Echtzeit-Sensordaten zu erhalten, sodass das automatisierte Fahr-/Assistenzsystem 102 in Echtzeit einen Fahrer unterstützen oder ein Fahrzeug fahren kann. In einer Ausführungsform verwendet das automatisierte Fahr-/Assistenzsystem 102 ebenfalls Informationen, die in einem Fahrverlauf (lokal oder entfernt) gespeichert sind, zum Bestimmen von Bedingungen in einer aktuellen Umgebung. Das automatisierte Fahr-/Assistenzsystem 102 kann einen oder mehrere Algorithmen, Anwendungen, Programme oder Funktionalitäten umsetzen, die das Fahrzeug fahren oder beim Fahren helfen.
  • In einer Ausführungsform beinhalten die Kamerasysteme 110 eine nach vorn gerichtete Kamera, die auf einen Bereich vor dem Fahrzeug gerichtet ist. Die Kamerasysteme 110 können zum Beispiel Kameras beinhalten, die in unterschiedliche Richtungen gerichtet sind, um unterschiedliche Ansichten und unterschiedliche Sichtfelder für Bereiche nahe dem Fahrzeug oder um dieses herum bereitzustellen. Einige Kameras können zum Beispiel nach vorn, zur Seite, nach hinten, unter Winkeln oder in eine beliebige andere Richtung gerichtet sein.
  • Es versteht sich, dass die Ausführungsform aus 1 lediglich als Beispiel dient. Andere Ausführungsformen können weniger oder zusätzliche Komponenten beinhalten, ohne vom Umfang der Offenbarung abzuweichen. Des Weiteren können dargestellte Komponenten ohne Beschränkung kombiniert oder in andere Komponenten enthalten sein.
  • 2 veranschaulicht ein Bild 200, das eine perspektivische Ansicht einer Straße in einem Wohngebiet gemäß einer Ausführungsform bereitstellt. Die Ansicht veranschaulicht das, was in einem Bild von einer Kamera des Fahrzeugs, das durch ein Wohngebiet fährt, aufgenommen sein kann. 3 veranschaulicht ein Bild 300, das eine perspektivische Ansicht einer Straße bereitstellt. Die Ansicht veranschaulicht das, was in einem Bild von einer Kamera des Fahrzeugs, das auf eine T-Kreuzung fährt, aufgenommen sein kann. Das Bild 200 stellt eine Ansicht dar, bei der ein nicht-ebenes Bewegungsmodell genauere Ergebnisse als ein ebenes Bewegungsmodell bereitstellen kann. Zum Beispiel variieren die sichtbaren Objekte oder Bildmerkmale stark in ihrem Abstand/Tiefe von der Kamera. Ein ebenes Bewegungsmodell kann somit nicht in der Lage sein, die Bewegung der Kamera (oder des Fahrzeugs) oder von Objekten innerhalb des Bildes 200 genau zu bestimmen.
  • Andererseits stellt das Bild 300 eine Ansicht dar, bei der ein ebenes Bewegungsmodell genauere Ergebnisse als ein nicht-ebenes Bewegungsmodell bereitstellen kann. Zum Beispiel variieren die sichtbaren Objekte oder Bildmerkmale nicht wesentlich in ihrem Abstand/Tiefe von der Kamera. Ein ebenes Bewegungsmodell kann somit in der Lage sein, die Bewegung der Kamera (oder des Fahrzeugs) oder von Objekten innerhalb des Bildes 200 genauer zu bestimmen.
  • 2 beinhaltet gepunktete Linien 202, die eine Bewegung der erkannten Merkmale zwischen dem Bild 200 und einem vorangehenden Bild darstellen. In ähnlicher Weise, beinhaltet 3 gepunktete Linien 302, die eine Bewegung der erkannten Merkmale zwischen dem Bild 300 und einem vorangehenden Bild darstellen. In einer Ausführungsform kann die Objektabstandskomponente 104 den Oriented-FAST-and-Rotated-BRIEF-(ORB-)Algorithmus zum Erkennen und Korrelieren von Merkmalen innerhalb von Bildern. In einer Ausführungsform führt die Objektabstandskomponente 104 eine Bildmerkmalsextraktion für einen aktuellen Rahmen (z. B. 200 oder 300) und einem Bild durch, das dem aktuellen Rahmen vorangeht. Die Objektabstandskomponente 104 kann die Merkmale identifizieren und korreliert die Merkmale in verschiedenen Bildern miteinander. Die gepunkteten Linien 202 zum Beispiel erstrecken sich zwischen einem Punkt, der eine aktuelle Position des Merkmals (z. B. im Bild 200) und einer Position für das Merkmal in einem vorangehenden Bild anzeigt.
  • In einer Ausführungsform können die Anfangs- und Endpunkte für jede gepunktete Linie 202, 302, sowie der Abstand zwischen den Punkten einem Abstand entsprechen, der von einem Objekt oder einem Merkmal zwischen den Bildern zurückgelegt wurde. In einer Ausführungsform können die Positionen und/oder der von den Punkten zurückgelegte Abstand verwendet werden, um ein oder mehrere Bewegungsmodelle auszufüllen. Wenn zum Beispiel eine Vielzahl von alternativen Bewegungsmodellen verfügbar ist, kann die Objektabstandskomponente 104 eine Matrix oder Felder für jedes Bewegungsmodell basierend auf den Positionen und/oder den zurückgelegten Abständen ausfüllen. Basierend auf dieser Information kann die Objektabstandskomponente 104 ein Bewegungsmodell auswählen, das am besten zu den Daten passt. Eine Kostenfunktion kann zum Beispiel den Fehler oder die Kosten für jedes Bewegungsmodell basierend auf den ausgefüllten Werten berechnen. Das Bewegungsmodell mit den geringsten Kosten oder dem geringsten Fehler kann dann als ein optimales Bewegungsmodell zum Bestimmen einer Bewegung und/oder eines Abstands für die spezifischen Bilder ausgewählt werden.
  • Wie der Fachmann verstehen wird, dienen 2 und 3 der Veranschaulichung. Des Weiteren dienen die gepunkteten Linien 202 lediglich als Beispiel und stellen nicht notwendigerweise die Merkmale und/oder die Korrelationen dar, die identifiziert werden können. Zum Beispiel kann eine größere Anzahl von Merkmalen, zusätzlichen Merkmalen oder unterschiedlichen Merkmalen erkannt und in der Praxis korreliert werden.
  • 4 ist ein Diagramm, das den Betrieb und/oder die Berechnung eines ebenen Bewegungsmodells veranschaulicht. Ebene Bewegungsmodelle werden verwendet, um Bewegungen annähernd darzustellen, wenn sich Merkmalspunkte auf der gleichen oder der annähernd gleichen Ebene befinden. Zum Beispiel können in Bildern, in denen es nur wenig Variation bei Tiefe oder Abstand von der Kamera gibt, ebene Bewegungsmodelle am genauesten eine Bewegung der Eigenkamera oder des Eigenfahrzeugs schätzen. Nachstehende Gleichung 1 veranschaulicht eine Homographietransformation, die für ein ebenes Bewegungsmodell verwendet werden kann. Es versteht sich, dass Λ (Lambda) eine Homographiematrix darstellt, die unter Verwendung des 4-Punkte-Verfahrens aufgelöst werden kann. x' = (KΛK–1)x Gleichung 1
  • 5 ist ein Diagramm, das den Betrieb und/oder die Berechnung eines nicht-ebenen Bewegungsmodells veranschaulicht. Nicht-ebene Bewegungsmodelle werden verwendet, um Bewegungen annähernd darzustellen, wenn sich Merkmalspunkte im dreidimensionalen Raum und nicht in oder auf der annähernd gleichen Ebene befinden. Zum Beispiel können in Bildern, in denen es eine große Menge an Variation bei Tiefe oder Abstand von der Kamera gibt, nicht-ebene Bewegungsmodelle am genauesten eine Bewegung der Eigenkamera oder des Eigenfahrzeugs schätzen. Nachstehende Gleichung 2 veranschaulicht eine Transformation für eine grundlegende Matrix unter Verwendung epipolarer Geometrie, die für ein nicht-ebenes Bewegungsmodell verwendet werden kann. Es versteht sich, dass F eine grundlegende Matrix darstellt und unter Verwendung des linearen 8-Punkte-Verfahrens oder des nicht-linearen 8-Punkte-Verfahrens aufgelöst werden kann. x T / 2Fx1 = 0 Gleichung 2
  • In einer Ausführungsform kann die Zeit-Ort-Bündelanpassung verwendet werden, um die Genauigkeit der Merkmalskorrelation und/oder der Parameterdaten für eine grundlegende Matrix und/oder eine Homographiematrix zu verbessern. Zum Beispiel können das Rauschen aus einem Kamerabild, Fehler beim Merkmalsabgleich und/oder Fehler bei der Bewegungsschätzung zu Ungenauigkeiten bei den Parameterdaten, der Bewegungsschätzung und/oder Abstandsschätzungen für ein Objekt führen. Da das System eine Vielzahl von Rahmen aufweist, z. B. als Teil eines Videos oder Reihen von Bildern, die von einer Kamera aufgenommen wurden, kann das System eine Bündelanpassung durchführen, indem Zeitinformationen aus anderen Bildrahmen aufgenommen werden. Anstatt zum Beispiel aus zwei aufeinanderfolgenden Rahmen eine Bewegung nur zu schätzen, kann das System Informationen für ein Merkmal oder ein Objekt aus einer Menge von Rahmen innerhalb einer Zeitspanne (z. B. 1 oder 2 Sekunden) aufnehmen, um durchschnittliche oder gefilterte Positions- oder Bewegungsdaten zu erzeugen, um Informationen mit verringertem Rauschen zu erhalten oder den Fehler zu senken. 6 und nachstehende Gleichung 3 veranschaulichen eine Ausführungsform für eine Zeit-Ort-Bündelanpassung. Zum Beispiel kann der gefilterte Abstand zu einem Punkt oder einem Merkmal in einem Bild berechnet werden, indem nach D aufgelöst wird. E(P,X) = Σ m / i=1Σ m / j=1D(xij,PiXj) Gleichung 3
  • 7 ein Diagramm ist, das Parameter für eine Abstandsschätzung gemäß einer Ausführungsform veranschaulicht. Ein erstes Fahrzeug 702 (das Eigenfahrzeug) ist hinter einem zweiten Fahrzeug 704 dargestellt. Ein Bildsensor 706 einer Kamera ist durch eine Ebene dargestellt, auf der ein Bild erzeugt wird. Gemäß einer Ausführungsform kann ein Abstand zwischen dem zweiten Fahrzeug 704 und der Kamera oder dem Bildsensor unter Verwendung nachstehender Gleichung 4 berechnet werden. D = (H + Δh)tan[ π / 2 – α – θ – tan–1 h / f] – Δd Gleichung 4
  • Die Terme der Gleichung 4 und von 7 sind wie folgt: α stellt die anfängliche Kameraneigung in Bezug auf das Eigenfahrzeug (z. B. wie montiert) dar; f ist die Brennweite für die Kamera; H ist die anfängliche Kamerahöhe (z. B. wie montiert); Δd ist der Kamera-Kopf-Abstand (z. B. der Abstand zwischen dem Brennpunkt und dem Bodenkontakt für das zweite Fahrzeug 704); θ und Δh werden unter Verwendung der Bewegungsschätzung aus einem Bewegungsmodell, wie beispielsweise einem ebenen oder nicht-ebenen Bewegungsmodell erhalten (θ stellt die Neigung des Fahrzeugs dar und Δh stellt die Höhenänderung für das Objekt auf dem Sensor dar); h ist der Kontaktpunkt-Mittelabstand (z. B. der Abstand zwischen einem spezifischen Pixel und dem vertikalen Sensor einer Sensoranordnung); und D ist der Abstand zum Objekt (z. B. der Abstand zum Erdbodenkontakt des Objekts).
  • 8 ist ein schematisches Blockdiagramm, das einen Datenstrom für ein Verfahren 800 zum Bestimmen des Abstands zu einem Objekt basierend auf einer Reihe von Kamerabildern bestimmt. Bilder 802, wie beispielsweise Bilder von einer Videoübertragung, sind für die Objekterkennung 804 bereitgestellt. In einer Ausführungsform erkennt die Objekterkennung 804 Objekte innerhalb eines Bildes. Die Objekterkennung 804 kann zum Beispiel eine Anzeige einer Art oder Klasse eines Objekts und dessen zweidimensionale Position innerhalb jedes Bildes erzeugen. In einer Ausführungsform wird die Objekterkennung 804 unter Verwendung eines tiefen neuronalen Netz durchgeführt, in das ein Bild eingespeist wird. Die Objekterkennung 804 kann zu einer Objekt-2D-Position 806 für ein oder mehrere Objekte führen.
  • Die Bilder 802 werden ebenfalls für eine Eigenbewegungsschätzung 808 bereitgestellt. Die Eigenbewegungsschätzung kann Merkmalsextraktion und -korrelation, Bewegungsmodellauswahl, geschätzte Fahrzeugbewegung, spärliche Merkmalspunktrekonstruktion und Zeit-Bündelanpassung wie hierin erörtert beinhalten. In einer Ausführungsform kann die Eigenbewegungsschätzung 808 zu Informationen über die Fahrzeugbewegung 810 führen. Die Informationen über die Fahrzeugbewegung 810 können Informationen wie beispielsweise einen zwischen Rahmen zurückgelegten Abstand oder andere Geschwindigkeitsanzeigen beinhalten. Die Informationen über die Fahrzeugbewegung 810 können Informationen wie beispielsweise einen Versatzwinkel für die Kamera beinhalten, wie beispielsweise eine Neigung des Fahrzeugs in Bezug auf die Straße basierend auf der Fahrbahnneigung and er Position des Eigenfahrzeugs oder eines Referenzobjekts.
  • Die Abstandsschätzung 812 wird basierend auf der Fahrzeugbewegung und der Objekt-2D-Position 806 durchgeführt. Zum Beispiel kann die Abstandsschätzung 812 den Abstand zwischen einer Eigenkamera oder des Eigenfahrzeugs und einem Bildmerkmal oder -objekt berechnen. In einer Ausführungsform kann die Abstandsschätzung durchgeführt werden, indem eine Pixelposition eines Objekts, wie sie mittels der Objekterkennen 804 bestimmt wurde, mit einem Abstand korreliert wird, der wie in 7 dargestellt und beschrieben berechnet wurde. Die Abstandsschätzung 812 kann zu einem Objektabstand 814 für ein während der Objekterkennung 804 erkanntes spezifisches Objekt führen. Basierend auf dem Objektabstand, kann ein Steuersystem eines Fahrzeugs, wie beispielsweise das automatisierte Fahr-/Assistenzsystem 102 aus 1, Entscheidungen zum Fahren, zur Navigation und/oder zur Kollisionsvermeidung treffen.
  • Mit Blick auf 9 ist ein schematisches Blockdiagramm dargestellt, das Komponenten einer Objektabstandskomponente 104 gemäß einer Ausführungsform veranschaulicht. Die Objektabstandkomponente 104 beinhaltet eine Bildkomponente 902, eine Objekterkennungskomponente 904, einen Merkmalskomponente 906, eine Modellparameterkomponente 908, eine Modellkostenkomponente 910, eine Modellauswahlkomponente 912, eine Rekonstruktionskomponente 914, eine Bewegungskomponente 916 und eine Abstandskomponente 918. Die Komponenten 902918 dienen lediglich zur Veranschaulichung und es kann sein, dass nicht alle in allen Ausführungsformen enthalten sind. Tatsächlich können einige Ausführungsformen lediglich eine oder eine beliebige Kombination aus zwei oder mehreren der Komponenten 902918 beinhalten. Ferner können sich zum Beispiel einige der Komponenten 902918 außerhalb der Objektabstandskomponente 104, wie beispielsweise innerhalb des automatisierten Fahr-/Assistenzsystems 102, oder andernorts befinden.
  • Die Bildkomponente 902 ist konfiguriert, Bilder von einer Kamera eines Fahrzeugs zu erhalten und/oder zu speichern. Die Bilder können zum Beispiel Videobilder beinhalten, die von einer monokularen Kamera eines Fahrzeugs aufgenommen wurden. Die Bilder können Bilder von einer nach vorn gerichteten Kamera eines Fahrzeugs beinhalten. Die Bilder können als eine Reihe von Bildern, die eine Umgebung vor oder nahe dem Fahrzeug in Echtzeit oder beinahe in Echtzeit abbilden, gespeichert und/oder empfangen werden.
  • Die Objekterkennungskomponente 904 ist konfiguriert, Objekte innerhalb von Bildern zu erkennen, die von der Bildkomponente 902 erhalten oder gespeichert wurden. Die Objekterkennungskomponente 904 kann zum Beispiel jedes Bild verarbeiten, um Objekte, wie beispielsweise Fahrzeuge, Fußgänger, Tiere, Radfahrer, Straßenschmutz, Verkehrszeichen, Barrieren oder dergleichen zu erkennen. Die Objekte können stationäre oder sich bewegende Objekte beinhalten. In einer Ausführungsform kann die Objekterkennungskomponente 904 ebenfalls ein Objekt als eine bestimmte Art von Objekt klassifizieren. Beispielhafte Objektarten können ein stationäres oder ein mobiles Objekt beinhalten. Andere beispielhafte Objektarten können Fahrzeugart, Tier, Straßen- oder Fahrbarriere, Fußgänger, Radfahrer oder eine beliebige andere Klassifikation oder Anzeige der Objektart beinhalten. In einer Ausführungsform bestimmt die Objekterkennungskomponente 904 ebenfalls eine Position für das Objekt, wie beispielsweise eine zweidimensionale Position innerhalb eines Bildrahmens oder eine Anzeige, deren Pixel dem Objekt entsprechen.
  • Die Merkmalskomponente 906 ist konfiguriert, Bildmerkmale innerhalb der Bilder zu erkennen. Die Bildmerkmale können Pixel beinhalten, die sich an Rändern mit hohem Kontrast, an Positionen mit Hochfrequenzinhalten oder dergleichen befinden. Zum Beispiel können die Ränder eines Objekts oftmals einen hohen Kontrast in Bezug auf eine unmittelbare Umgebung aufweisen. In ähnlicher Weise können mehrfarbige Objekte Ränder mit hohem Kontrast innerhalb des gleichen Objekts beinhalten. Ecken von Objekten oder Muster auf Objekten können als Bildmerkmale identifiziert werden. Siehe zum Beispiel die gepunkteten Linien 202, 302 aus 2 und 3. In einer Ausführungsform erkennt die Merkmalskomponente 906 alle Merkmale innerhalb eines Bildes, einschließlich denen oberhalb einer Erdbodenfläche. Fahrflächen zum Beispiel weisen oftmals eine geringere Anzahl von Merkmalen als benachbarte Strukturen, Gebüsch oder andere Objekte oder Strukturen nahe einer Straße oder anderweitig im Blickfeld einer Fahrzeugkamera auf.
  • In einer Ausführungsform korreliert die Merkmalskomponente 906 Merkmale in einem Bild oder Bildrahmen mit Merkmalen in einem benachbarten Bild oder Bildrahmen in einer Reihe von Bildern. Während der Bewegung eines Fahrzeugs zum Beispiel kann sich ein Merkmal, das einer Ecke eines Gebäudes, einem Fahrzeug oder einem anderen Objekt entspricht, in benachbarten Rahmen an unterschiedlichen Positionen befinden. Die Merkmalskomponente 906 kann ein Merkmal, das der sich an einer ersten Position innerhalb eines ersten Bildes befindlichen Ecke entspricht, mit einem Merkmal korreliert, das der gleichen Ecke entspricht, die sich an einer zweiten Position innerhalb eines zweiten Bildes befindet. Somit kann das gleiche Merkmal an unterschiedlichen Positionen informativ für das Berechnen des Abstands des Fahrzeugs sein, der zwischen den zwei Rahmen zurückgelegt wird. In einer Ausführungsform kann die Merkmalskomponente 906 Merkmale unter Verwendung eines Oriented-FAST-and-Rotated-BRIEF-(ORB-)Algorithmus identifizieren und korrelieren. In einigen Ausführungsformen stellt der ORB-Algorithmus eine genaue Merkmalserkennung und -korrelation mit verringerter Verzögerung bereit. Zum Beispiel kann der Speeded-Up-robust Features-(SURF-)Algorithmus eine hohe Genauigkeit bereitstellen, ist jedoch langsam. Andererseits ist der optische Flussalgorithmus schnell, neigt jedoch zu großen Bewegungsfehlern. Die Antragsteller fanden heraus, dass der ORB-Algorithmus einen geringen Genauigkeitskompromiss für große Geschwindigkeitserhöhungen beim Durchführen von Merkmalsauswahl und -abgleich bereitstellt.
  • Wenn die Merkmalsidentifkation und der Merkmalsabgleich durchgeführt wurden, kann in einer Ausführungsform ein Rauschen oder ein Fehler verringert werden, indem eine Ort- Bündelanpassung an die Bildmerkmale durchgeführt wird. Zum Beispiel können Zeitinformationen von einer Vielzahl von Bildrahmen (z. B. alle Bildrahmen innerhalb einer Sekunde oder einer anderen Zeitspanne) verwendet werden, um eine Position für ein Merkmal in einem Bildrahmen zu berechnen, die ein verringertes Rauschen, eine glattere Bewegung und/oder einen verringerten Fehler vorsieht.
  • Die Modellparameterkomponente 908 ist konfiguriert, Parameter für eine Vielzahl von Bewegungsmodellen zu bestimmen. Die Modellparameterkomponente 908 kann zum Beispiel Parameter für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell basierend auf den Bildmerkmalen bestimmen. Die Modellparameterkomponente 908 kann eine Parametermatrix für die verfügbaren Bewegungsmodelle ausfüllen. Die Modellparameterkomponente 908 kann zum Beispiel eine Homographiematrix für ein ebenes Bewegungsmodell und eine grundlegende Matrix für ein nicht-ebenes Bewegungsmodell ausfüllen. Die Werte für die Parameter können basierend auf den Positionen von Merkmalen und Abständen zwischen entsprechenden Merkmalen zwischen benachbarten Bildern berechnet werden.
  • Die Modellkostenkomponente 910 ist konfiguriert, einen Preis für jedes der Bewegungsmodelle zu berechnen. Basierend auf den Parametern für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell, wie sie durch die Modellparameterkomponente bestimmt wurden, kann die Modellkostenkomponente 910 zum Beispiel Kosten oder einen Fehler für jedes Bewegungsmodell bestimmen. Die Modellkostenkomponente 910 kann eine Kostenfunktion zum Berechnen eines Fehlers oder anderer Kosten für jedes Bewegungsmodell verwenden.
  • Die Modellauswahlkomponente 912 ist konfiguriert, ein Bewegungsmodell als ein optimales Bewegungsmodell auszuwählen. Die Modellauswahlkomponente 912 kann ein Bewegungsmodell für jeden Satz benachbarter Bilder oder Rahmen auswählen. Die Modellauswahlkomponente 912 kann zum Beispiel entweder ein ebenes Bewegungsmodell eines nicht-ebenen Bewegungsmodells als ein ausgewähltes oder optimales Bewegungsmodell für einen spezifischen Satz benachbarter Bilder auswählen.
  • In einer Ausführungsform wählt die Modellauswahlkomponente 912 ein Bewegungsmodell als ein optimales Bewegungsmodell basierend auf dem Bewegungsmodell mit den niedrigsten kosten oder dem niedrigsten Fehler aus. Die Modellauswahlkomponente 912 kann zum Beispiel ein Bewegungsmodell auswählen, das die niedrigsten Kosten, wie sie durch die Modellkostenkomponente 910 bestimmt wurden, aufweist. In einer Ausführungsform kann die Modellauswahlkomponente 912 ein Bewegungsmodell basierend auf der Menge an Tiefenvariationen innerhalb der benachbarten Bilder auswählen. Im Allgemeinen werden sich Merkmale, die Objekten oder Positionen entsprechen, die weiter von einem Fahrzeug entfernt sind, zwischen aufeinanderfolgenden Bildern weniger bewegen als Merkmale, die Objekten oder Positionen entsprechen, die sich näher am Fahrzeug befinden. In einer Ausführungsform können die durch eine Kostenfunktion berechneten Kosten die Menge an Variationen bei den Abständen anzeigen, die durch korrelierte Merkmale zurückgelegt wurden. Die Kostenfunktion kann zum Beispiel anzeigen, wie gut ein Bewegungsmodell auf die Anzahl an Tiefenvariationen in einer Szene angeglichen ist, die durch die benachbarten Bildrahmen aufgenommen wurde. Wenn die Menge an Tiefenvariationen in einer Szene, die durch die benachbarten Bildrahmen aufgenommen wurde, niedrig ist, kann zum Beispiel ein ebenes Bewegungsmodell optimal sein. Wenn die Menge an Tiefenvariationen in einer Szene, die durch die benachbarten Bildrahmen aufgenommen wurde, hoch ist, kann andererseits das nicht-ebene Bewegungsmodell optimal sein.
  • Die Rekonstruktionskomponente 914 ist konfiguriert, eine dreidimensionale Szene basierend auf dem ausgewählten Bewegungsmodell zu rekonstruieren. In einer Ausführungsform ist die Rekonstruktionskomponente 914 konfiguriert, dreidimensionale spärliche Merkmalspunkte basierend auf dem ausgewählten Bewegungsmodell zu rekonstruieren. Die rekonstruierte Szene kann Punkte beinhalten, die Merkmalen entsprechen, die durch die Merkmalskomponente 906 erkannt wurden. In einer Ausführungsform kann dann die rekonstruierte Szene zur Abstandsschätzung, Hindernisvermeidung oder anderen Verarbeitungen oder Entscheidungsfindungen, die durch ein Fahrzeugsteuersystem, wie beispielsweise ein automatisiertes Fahr-/Assistenzsystem 102, durchzuführen sind, verwendet werden.
  • Die Bewegungskomponente 916 ist konfiguriert, eine Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell zu bestimmen. Die Bewegungskomponente 916 kann zum Beispiel einen Abstand berechnen, der durch die Kamera (und das entsprechende Fahrzeug) zwischen den Zeitpunkten zurückgelegt wurde, zu denen zwei aufeinanderfolgende Bilder aufgenommen wurden. In einer Ausführungsform berechnet die Bewegungskomponente 916 θ, Δh und/oder Δd, wie in Bezug auf 7 und Gleichung 4 dargestellt und beschrieben ist. In einer Ausführungsform bestimmt die Bewegungskomponente 916 eine Bewegung des Fahrzeugs allein basierend auf Bilddaten von einer einzigen monokularen Kamera. In einer Ausführungsform können die Bewegungsinformationen zur Abstandsschätzung, Hindernisvermeidung oder anderen Verarbeitungen oder Entscheidungsfindungen, die durch ein Fahrzeugsteuersystem, wie beispielsweise ein automatisiertes Fahr-/Assistenzsystem 102, durchzuführen sind, verwendet werden.
  • Die Abstandskomponente 918 ist konfiguriert, einen Abstand zwischen einer Kamera oder einem Eigenfahrzeug und einem Objekt zu bestimmen. Die Abstandskomponente 918 kann zum Beispiel den Abstand D aus Gleichung 4 basierend auf dem ausgewählten Bewegungsmodell und entsprechenden Parametern und Bewegungsinformationen berechnen. Die Abstandsinformationen können zur Hindernisvermeidung, Fahrwegplanung oder anderen Verarbeitungen oder Entscheidungsfindungen, die durch ein Fahrzeugsteuersystem, wie beispielsweise ein automatisiertes Fahr-/Assistenzsystem 102, durchzuführen sind, verwendet werden.
  • 10 ist ein schematisches Flussdiagramm, das ein Verfahren 1000 zum Bestimmen der Bewegung eines Fahrzeugs veranschaulicht. Das Verfahren 1000 kann durch eine Objektabstandskomponente, wie beispielsweise die Objektabstandskomponente 104 aus 1 oder 9, durchgeführt werden.
  • Das Verfahren 1000 beginnt und eine Merkmalskomponente 906 identifiziert bei 1002 Bildmerkmale in einem ersten Rahmen, die einem zweiten Merkmal in einem zweiten Rahmen entsprechen. Der erste Rahmen und der zweite Rahmen beinhalten durch eine Kamera aufgenommene benachbarte Bildrahmen. Eine Modellparameterkomponente 908 bestimmt bei 1004 Parameter für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell. Eine Modellauswahlkomponente 912 wählt bei 1006 das ebene Bewegungsmodell oder das nicht-ebene Bewegungsmodell als ein ausgewähltes Bewegungsmodell aus. Eine Bewegungskomponente 916 bestimmt bei 1008 eine Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell. In einer Ausführungsform führt die Merkmalskomponente 906 bei 1010 eine Ort-Bündelanpassung an Bildmerkmalen durch. Die Bündelanpassung kann zum Beispiel durchgeführt werden, indem Informationen aus mehreren Rahmenpaaren aufgenommen werden, um die Kameraeigenbewegung zu verfeinern.
  • Nun wird unter Bezugnahme auf 11 ein Blockdiagramm einer beispielhaften Rechenvorrichtung 1100 veranschaulicht. Die Rechenvorrichtung 1100 kann verwendet werden, um verschiedene Verfahren, wie beispielsweise die hierin erläuterten, durchzuführen. Die Rechenvorrichtung 1100 kann als eine Objektabstandskomponente 104, ein automatisiertes Fahr-/Assistenzsystem 102, ein Server oder eine beliebige andere Recheneinheit dienen. Die Rechenvorrichtung 1100 kann verschiedene Überwachungsfunktionen wie hierin beschrieben durchführen und kann eine oder mehrere Anwendungsprogramme, wie beispielsweise die hierin beschriebenen Anwendungsprogramme oder Funktionalitäten, ausführen. Die Rechenvorrichtung 1100 kann eine beliebige aus einer Reihe von Rechenvorrichtungen, wie beispielsweise ein Desktop-Computer, ein eingebauter Computer, ein Fahrzeugsteuersystem, ein Notebook-Computer, ein Server-Computer, ein tragbarer Computer, Tablet-Computer und dergleichen, sein.
  • Die Rechenvorrichtung 1100 beinhaltet einen oder mehrere Prozessor(en) 1102, eine oder mehrere Speichervorrichtung(en) 1104, eine oder mehrere Schnittstelle(n) 1106, eine oder mehrere Massenspeichervorrichtung(en) 1108, einen oder mehrere Ein-/Ausgabe-(I/O-)Vorrichtung(en) 1110 und eine Anzeigevorrichtung 1130, von denen alle an einen Bus 1112 gekoppelt sind. Der/Die Prozessor(en) 1102 beinhaltet/beinhalten einen oder mehrere Prozessoren oder Steuereinrichtungen, die in der/den Speichervorrichtung(en) 1104 und/oder der/den Massenspeichervorrichtung(en) 1108 gespeicherte Anweisungen ausführen. Der/Die Prozessor(en) 1102 kann/können ebenso verschiedene Arten von computerlesbaren Medien beinhalten, wie beispielsweise einen Cache-Speicher.
  • Die Speichervorrichtung(en) 1104 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie beispielsweise flüchtige Speicher (z. B. Direktzugriffsspeicher (RAM) 1114) und/oder nichtflüchtige Speicher (z. B. Festwertspeicher (ROM) 1116). Die Speichervorrichtung(en) 1104 kann/können ebenso einen wiederbeschreibbaren ROM beinhalten, wie beispielsweise einen Flash-Speicher.
  • Die Massenspeichervorrichtung(en) 1108 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie beispielsweise Magnetbänder, Magnetplatten, optische Platten, Festkörperspeicher (z. B. Flash-Speicher) und so weiter. Wie in 11 dargestellt, ist eine besondere Massenspeichervorrichtung ein Festplattenlaufwerk 1124. Verschiedene Laufwerke können ebenso in der/den Massenspeichervorrichtung(en) 1108 beinhaltet sein, um ein Auslesen aus und/oder Schreiben an die verschiedenen computerlesbaren Medien zu ermöglichen. Die Massenspeichervorrichtung(en) 1108 beinhaltet/beinhalten entfernbare Medien 1126 und/oder nichtentfernbare Medien.
  • Die I/O-Vorrichtung(en) 1110 beinhaltet/beinhalten verschiedene Vorrichtungen, die es ermöglichen, dass Daten und/oder andere Informationen in die Rechenvorrichtung 1100 eingegeben oder daraus abgerufen werden. (Eine) Beispielhafte I/O-Vorrichtung(en) 1110 beinhaltet/beinhalten Cursorsteuervorrichtungen, Tastaturen, Tastenfelder, Mikrofone, Monitore oder andere Anzeigevorrichtungen, Lautsprecher, Drucker, Netzschnittstellenkarten, Modems und dergleichen.
  • Die Anzeigevorrichtung 1130 beinhaltet jede Art von Vorrichtung, die fähig ist, Informationen für einen oder mehrere Benutzer der Rechenvorrichtung 1100 anzuzeigen. Beispiele einer Anzeigevorrichtung 1130 beinhalten einen Monitor, ein Anzeigeendgerät, eine Videoprojektionsvorrichtung und dergleichen.
  • Die Schnittstelle(n) 1106 beinhaltet/beinhalten verschiedene Schnittstellen, die der Rechenvorrichtung 1100 ermöglichen, mit anderen Systemen, Vorrichtungen oder Rechenumgebungen zu interagieren. (Eine) Beispielhafte Schnittstelle(n) 1106 kann/können eine beliebige Anzahl von unterschiedlichen Netzschnittstellen 1120, wie beispielsweise Schnittstellen zu lokalen Netzen (LANs), Großraumnetzen (WANs), drahtlosen Netzen und dem Internet, beinhalten. (Eine) Andere Schnittstelle(n) beinhaltet/beinhalten eine Benutzerschnittstelle 1118 und eine Peripherievorrichtungsschnittstelle 1122. Die Schnittstelle(n) 1106 kann/können ebenfalls eine oder mehrere Benutzerschnittstellenelemente 1118 beinhalten. Die Schnittstelle(n) 1106 können ebenfalls eine oder mehrere periphere Schnittstellen, wie beispielsweise Schnittstellen für Drucker, Zeigevorrichtungen (Mäuse, Touchpad oder eine beliebige geeignete Benutzerschnittstelle, die dem Durchschnittsfachmann auf dem Gebiet jetzt bekannt ist oder später entdeckt wird), Tastaturen und dergleichen, beinhalten.
  • Der Bus 1112 ermöglicht dem (den) Prozessor(en) 1102, der (den) Speichervorrichtung(en) 1104, der (den) Schnittstelle(n) 1106, der (den) Massenspeichervorrichtung(en) 1108 und der (den) I/O-Vorrichtung(en) 1110, miteinander sowie mit anderen Vorrichtungen oder Komponenten, die mit dem Bus 1112 gekoppelt sind, zu kommunizieren. Der Bus 1112 stellt eine oder mehrere von verschiedenen Arten von Busstrukturen dar, wie beispielsweise einen Systembus, PCI-Bus, IEEE-Bus, USB-Bus und so weiter.
  • Im Sinne der Veranschaulichung sind Programme und andere ausführbare Programmkomponenten hierin als diskrete Blöcke dargestellt, auch wenn es sich versteht, dass sich derartige Programme und Komponenten zu verschiedenen Zeiten in unterschiedlichen Speicherkomponenten der Rechenvorrichtung 1100 befinden und durch den/die Prozessor(en) 1102 ausgeführt werden können. Alternativ können die hierin beschriebenen Systeme und Verfahren in einer Hardware oder einer Kombination von Hardware, Software und/oder Firmware eingerichtet sein. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (ASICs) können zum Beispiel programmiert sein, um eines oder mehrere der hierin beschriebenen Systeme und Verfahren auszuführen.
  • Beispiele
  • Die folgenden Beispiele betreffen weitere Ausführungsformen.
  • Beispiel 1 ist ein Verfahren, das das Identifizieren von Bildmerkmalen in einem ersten Rahmen, die einem zweiten Merkmal in einem zweiten Rahmen entsprechen, beinhaltet. Der erste Rahmen und der zweite Rahmen beinhalten durch eine Kamera aufgenommene benachbarte Bildrahmen. Das Verfahren beinhaltet das Bestimmen von Parametern für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell. Das Verfahren beinhaltet das Auswählen des ebenen Bewegungsmodells oder des nicht-ebenen Bewegungsmodells als ein ausgewähltes Bewegungsmodell. Das Verfahren beinhaltet ebenfalls das Bestimmen einer Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell.
  • In Beispiel 2 beinhalten das Verfahren wie in Beispiel 1 ferner das Berechnen eines Abstands zu einem Objekt oder einem Merkmal in den Bildrahmen basierend auf der Kamerabewegung.
  • In Beispiel 3 beinhaltet das Verfahren wie in Beispiel 2 ferner das Erkennen und Lokalisieren eines oder mehrerer Objekte auf einer zweidimensionalen Bildebene unter Verwendung eines tiefen neuronalen Netzes.
  • In Beispiel 4 beinhaltet das Berechnen des Abstands zu dem Objekt oder dem Merkmal wie in Beispiel 3 das Berechnen eines Abstands zu einem Objekt des einen oder der mehreren Objekte.
  • In Beispiel 5 beinhaltet das Verfahren wie in einem der Beispiele 1–4 ferner das Berechnen von Kosten für jedes des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells, wobei das Auswählen eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell das Auswählen des einen Modells umfasst, das geringste Kosten umfasst.
  • In Beispiel 6 beinhaltet das Auswählen des einen des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell wie in einem der Beispiele 1–5 das Auswählten basierend auf der Menge von Tiefenvariationen in einer Szene, die durch die benachbarten Bildrahmen aufgenommen wurde.
  • In Beispiel 7 beinhaltet das Verfahren wie in einem der Beispiele 1–8 ferner das Rekonstruieren dreidimensionaler spärlicher Merkmalspunkte basierend auf dem ausgewählten Bewegungsmodell.
  • In Beispiel 8 beinhaltet das Verfahren wie in einem der Beispiele 1–7 ferner das Durchführen von Ort-Bündelanpassung an Bildrahmen.
  • In Beispiel 9 beinhaltet das Identifizieren entsprechender Bildrahmen in einem der Beispiele 1–8 das Durchführen von Bildmerkmalsextraktion und -abgleich unter Verwendung eines ORB-Algorithmus.
  • Beispiel 10 ist ein System, das eine monokulare Kamera beinhaltet, die auf einem Fahrzeug montiert ist. Das System beinhaltet ebenfalls eine Bildkomponente, eine Merkmalskomponente, eine Modellparameterkomponente, eine Modellauswahlkomponente und eine Bewegungskomponente. Die Bildkomponente ist konfiguriert, eine Reihe von Bildrahmen zu erhalten, die durch die monokulare Kamera aufgenommen wurden. Die Merkmalskomponente ist konfiguriert, entsprechende Bildmerkmale in benachbarten Bildrahmen innerhalb einer Reihe von Bildrahmen zu identifizieren. Die Modellparameterkomponente ist konfiguriert, Parameter für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell basierend auf den Bildmerkmalen zu bestimmen. Die Modellauswahlkomponente ist konfiguriert, eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als ein ausgewähltes Bewegungsmodell auszuwählen. Die Bewegungskomponente ist konfiguriert, eine Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell zu bestimmen.
  • In Beispiel 11 beinhaltet das System wie in Beispiel 10 ferner eine Abstandskomponente, die konfiguriert ist, einen Abstand zu einem Objekt oder einem Merkmal in den Bildrahmen basierend auf der Kamerabewegung zu berechnen.
  • In Beispiel 12 beinhaltet das System wie in einem der Beispiele 10–11 ferner eine Objekterkennungskomponente, die konfiguriert ist, ein oder mehrere Objekte innerhalb einer Reihe von Bildrahmen unter Verwendung eines tiefen neuronalen Netzwerks zu erkennen und zu lokalisieren.
  • In Beispiel 13 beinhaltet das System wie in einem der Beispiele 10–12 ferner eine Modellkostenkomponente, die konfiguriert ist, Kosten für jedes des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells zu berechnen. Die Modellauswahlkomponente ist konfiguriert, eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell auszuwählen, indem ein Modell ausgewählt wird, das geringste Kosten umfasst.
  • In Beispiel 14 beinhaltet das System wie in einem der Beispiele 10–13 ferner eine Rekonstruktionskomponente, die konfiguriert ist, dreidimensionale spärliche Merkmalspunkte basierend auf dem ausgewählten Bewegungsmodell zu rekonstruieren.
  • In Beispiel 15 beinhaltet das Identifizieren entsprechender Bildrahmen wie in einem der Beispiele 10–14 das Durchführen von Bildmerkmalsextraktion und -abgleich unter Verwendung eines ORB-Algorithmus.
  • Beispiel 16 ist ein computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, die Prozessoren veranlassen, entsprechende Bildmerkmale in einem ersten Bildrahmen zu identifizieren, die einem zweiten Merkmal in einem zweiten Rahmen entsprechen. Der erste Rahmen und der zweite Rahmen beinhalten durch eine Kamera aufgenommene benachbarte Bildrahmen. Die Anweisungen veranlassen ferner den einen Prozessor oder die mehreren Prozessoren, Parameter für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell zu bestimmen. Die Anweisungen veranlassen ferner den einen Prozessor oder die mehreren Prozessoren, eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als ein ausgewähltes Bewegungsmodell auszuwählen. Die Anweisungen veranlassen ferner den einen Prozessor oder die mehreren Prozessoren, eine Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell zu bestimmen.
  • In Beispiel 17 speichert das Medium wie in Beispiel 16 ferner Anweisungen, die den Prozessor veranlassen, einen Abstand zu einem Objekt oder einem Merkmal in den Bildrahmen basierend auf der Kamerabewegung zu berechnen.
  • In Beispiel 18 speichert das Medium wie in Beispiel 17 ferner Anweisungen, die die Prozessoren veranlassen, ein oder mehrere Objekte auf einer zweidimensionalen Bildebene unter Verwendung eines tiefen neuronalen Netzes zu erkennen und zu lokalisieren. Das Berechnen des Abstands zu dem Objekt oder dem Merkmal beinhaltet das Berechnen eines Abstands zu einem Objekt des einen oder der mehreren Objekte.
  • In Beispiel 19 speichert das Medium wie in einem der Beispiele 16–18 ferner Anweisungen, die die Prozessoren veranlassen, Kosten für jedes des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells zu berechnen, wobei das Auswählen eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell das Auswählen des einen Modells umfasst, das geringste Kosten umfasst.
  • In Beispiel 20 veranlassen die Anweisungen wie in einem der Beispiele 16–19 die Prozessoren, entsprechende Bildmerkmale zu identifizieren, indem Bildmerkmalsextraktion und -abgleich unter Verwendung eines ORB-Algorithmus durchgeführt werden.
  • Beispiel 21 ist ein System oder eine Vorrichtung, das bzw. die Mittel zum Umsetzen eines Verfahrens, eines Systems oder einer Vorrichtung nach einem der Beispiele 1–20 einschließt.
  • In der vorangehenden Offenbarung wurde auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen spezifische Implementierungen, in denen die Offenbarung durchgeführt werden kann, veranschaulichend gezeigt werden. Es versteht sich, dass andere Implementierungen verwendet werden können und strukturelle Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Bezugnahmen in der Beschreibung auf „eine Ausführungsform“, „ein Ausführungsbeispiel“ usw. geben an, dass die beschriebene Ausführungsform ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft beinhalten kann; doch es muss nicht notwendigerweise jede Ausführungsform diese(s) bestimmte Merkmal, Struktur oder Eigenschaft beinhalten. Darüber hinaus beziehen sich solche Formulierungen nicht notwendigerweise auf dieselbe Ausführungsform. Ferner sei darauf hingewiesen, dass, wenn ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, es im Bereich des Fachwissens des Fachmanns liegt, ein(e) derartige(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen umzusetzen, ob dies nun ausdrücklich beschrieben ist oder nicht.
  • Implementierungen der hierin offenbarten Systeme, Vorrichtungen und Verfahren können einen Spezial- oder Universalcomputer umfassen oder verwenden, der Computerhardware einschließt, wie etwa zum Beispiel einen oder mehrere Prozessoren und einen oder mehrere Systemspeicher, wie hierin erörtert. Implementierungen innerhalb des Umfangs der vorliegenden Offenbarung können außerdem physische und andere computerlesbare Medien zum Transportieren oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen einschließen. Bei solchen computerlesbaren Medien kann es sich um beliebige verfügbare Medien handeln, auf die durch ein Universal- oder Spezialcomputersystem zugegriffen werden kann. Bei computerlesbaren Medien, auf denen computerausführbare Anweisungen gespeichert werden, handelt es sich um Computerspeichermedien (Vorrichtungen). Bei computerlesbaren Medien, die computerausführbare Anweisungen transportieren, handelt es sich um Übertragungsmedien. Daher können Implementierungen der Offenbarung beispielsweise und nicht einschränkend mindestens zwei deutlich unterschiedliche Arten von computerlesbaren Medien umfassen: Computerspeichermedien (-vorrichtungen) und Übertragungsmedien.
  • Computerspeichermedien (-vorrichtungen) beinhalten RAM, ROM, EEPROM, CD-ROM, Solid-State-Drives („SSDs“) (z. B. auf Grundlage von RAM), Flash-Speicher, Phasenänderungsspeicher („PCM“), andere Speichertypen, andere optische Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, das verwendet werden kann, um die gewünschten Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen zu speichern, und auf das durch einen Universal- oder Spezialcomputer zugegriffen werden kann.
  • Eine Implementierung der hierin offenbarten Vorrichtungen, Systeme und Verfahren kann über ein Computernetzwerk kommunizieren. Ein „Netz“ ist als eine oder mehrere Datenverbindungen definiert, die den Transport elektronischer Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Vorrichtungen ermöglichen. Wenn Informationen über ein Netz oder eine andere (entweder festverdrahtete, drahtlose oder eine Kombination aus festverdrahteter oder drahtloser) Kommunikationsverbindung an einem Computer bereitgestellt oder auf diesen übertragen werden, sieht der Computer die Verbindung korrekt als ein Übertragungsmedium an. Übertragungsmedien können ein Netzwerk und/oder Datenverbindungen einschließen, die verwendet werden können, um die gewünschten Programmcodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen zu übertragen und auf die durch einen Universal- oder Spezialcomputer zugegriffen werden kann. Kombinationen aus den Vorstehenden sollten ebenfalls im Umfang computerlesbarer Medien eingeschlossen sein.
  • Computerausführbare Anweisungen umfassen zum Beispiel Anweisungen und Daten, die bei Ausführung an einem Prozessor einen Universalcomputer, Spezialcomputer oder eine Spezialverarbeitungsvorrichtung dazu veranlassen, eine bestimmte Funktion oder Gruppe von Funktionen auszuführen. Die computerausführbaren Anweisungen können zum Beispiel Binärdateien, Zwischenformatanweisungen, wie etwa Assemblersprache, oder auch Quellcode sein. Obwohl der Gegenstand in für Strukturmerkmale und/oder methodische Handlungen spezifischer Sprache beschrieben wurde, versteht es sich, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die vorangehend beschriebenen Merkmale oder Handlungen beschränkt ist. Die beschriebenen Merkmale und Handlungen werden vielmehr als beispielhafte Formen der Implementierung der Ansprüche offenbart.
  • Der Fachmann kann nachvollziehen, dass die Offenbarung in Network-Computing-Umgebungen mit vielen Arten von Computersystemkonfigurationen durchgeführt werden kann, einschließlich eines Armaturenbrett-Fahrzeugcomputers, PCs, Desktop-Computern, Laptops, Nachrichtenprozessoren, Handvorrichtungen, Multiprozessorsystemen, Unterhaltungselektronik auf Mikroprozessorbasis oder programmierbarer Unterhaltungselektronik, Netz-PCs, Minicomputern, Mainframe-Computern, Mobiltelefonen, PDAs, Tablets, Pagern, Routern, Switches, verschiedenen Speichervorrichtungen und dergleichen. Die Offenbarung kann außerdem in Umgebungen mit verteilten Systemen durchgeführt werden, in denen sowohl lokale Computersysteme als auch Remotecomputersysteme, die durch ein Netz (entweder durch festverdrahtete Datenverbindungen, drahtlose Datenverbindungen oder durch eine Kombination aus festverdrahteten und drahtlosen Datenverbindungen) verbunden sind, Aufgaben durchführen. In einer Umgebung mit verteilten Systemen können sich Programmmodule sowohl in lokalen Speichervorrichtungen als auch in Fernspeichervorrichtungen befinden.
  • Ferner können die hier beschriebenen Funktionen gegebenenfalls in einem oder mehreren des Folgenden ausgeführt werden: Hardware, Software, Firmware, digitalen Komponenten oder analogen Komponenten. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (ASICs) können zum Beispiel programmiert sein, um eines oder mehrere der hierin beschriebenen Systeme und Verfahren auszuführen. Bestimmte Ausdrücke werden in der Beschreibung und den Ansprüchen in Bezug auf bestimmte Systemkomponenten verwendet. Der Fachmann wird zu schätzen wissen, dass auf Komponenten durch verschiedene Bezeichnungen Bezug genommen werden kann. In diesem Dokument soll nicht zwischen Komponenten unterschieden werden, die sich dem Namen nach unterscheiden, nicht jedoch von der Funktion her.
  • Es ist anzumerken, dass die vorstehend erörterten Sensorausführungsformen Computerhardware, Software, Firmware oder eine beliebige Kombination davon umfassen können, um zumindest einen Teil ihrer Funktionen auszuführen. Ein Sensor kann zum Beispiel Computercode einschließen, der dazu konfiguriert ist, in einem oder mehreren Prozessoren ausgeführt zu werden, und kann eine Hardware-Logikschaltung/elektrische Schaltung einschließen, die durch den Computercode gesteuert wird. Diese Vorrichtungsbeispiele werden hier zum Zwecke der Veranschaulichung bereitgestellt und sollen nicht der Einschränkung dienen. Ausführungsformen der vorliegenden Offenbarung können in weiteren Arten von Vorrichtungen implementiert werden, wie es einem einschlägigen Fachmann bekannt ist.
  • Zumindest einige Ausführungsformen der Offenbarung wurden Computerprogrammprodukten zugeführt, die eine solche Logik (z. B. in Form von Software) umfassen, die auf einem beliebigen computernutzbaren Medium gespeichert ist. Solche Software veranlasst bei Ausführung in einer oder mehreren Datenverarbeitungsvorrichtungen eine Vorrichtung dazu, wie hier beschrieben zu arbeiten.
  • Während vorstehend verschiedene Ausführungsformen der vorliegenden Offenbarung beschrieben wurden, versteht es sich, dass diese lediglich als Beispiele dienen und nicht als Einschränkung. Für Personen, die in dem entsprechenden Fachbereich qualifiziert sind, wird ersichtlich, dass verschiedene Änderungen in Form und Detail daran vorgenommen werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen. Daher sollen die Breite und der Umfang der vorliegenden Offenbarung durch keines der vorstehend beschriebenen Ausführungsbeispiele eingeschränkt werden, sondern sollen lediglich in Übereinstimmung mit den folgenden Ansprüchen und ihren Äquivalenten definiert sein. Die vorstehende Beschreibung wurde zum Zwecke der Veranschaulichung und Beschreibung dargelegt. Sie ist nicht als umfassend anzusehen und soll die Offenbarung nicht auf die spezifische offenbarte Form beschränken. Viele Modifikationen und Variationen sind in Anbetracht der vorstehenden Lehren möglich. Ferner ist anzumerken, dass eine beliebige oder alle der vorangehend genannten alternativen Implementierungen in einer beliebigen gewünschten Kombination verwendet werden können, um zusätzliche Hybridimplementierungen der Offenbarung zu bilden.
  • Ferner soll die Offenbarung, auch wenn spezifische Umsetzungen der Offenbarung beschrieben und dargestellt wurden, nicht auf die somit beschriebenen und dargestellten spezifischen Formen oder Anordnungen der Teile beschränkt werden. Der Umfang der Offenbarung ist durch die hieran beigefügten Ansprüche, jegliche zukünftigen hier beantragten Ansprüche und in verschiedenen Anwendungen und deren Äquivalenten zu definieren.

Claims (15)

  1. Verfahren, umfassend: Identifizieren von Bildmerkmalen in einem ersten Rahmen, die einem zweiten Merkmal in einem zweiten Rahmen entsprechen, wobei der erste Rahmen und der zweite Rahmen benachbarte Bildrahmen umfassen, die durch eine Kamera aufgenommen wurden; Bestimmen von Parametern für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell; Auswählen des ebenen Bewegungsmodells oder des nicht-ebenen Bewegungsmodells als ein ausgewähltes Bewegungsmodell; und Bestimmen einer Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell.
  2. Verfahren nach Anspruch 1, das ferner das Berechnen eines Abstands zu einem Objekt oder einem Merkmal in den Bildrahmen basierend auf der Kamerabewegung umfasst.
  3. Verfahren nach Anspruch 2, das ferner das Erkennen und Lokalisieren eines oder mehrerer Objekte auf einer zweidimensionalen Bildebene unter Verwendung eines tiefen neuronalen Netzes umfasst.
  4. Verfahren nach Anspruch 3, wobei das Berechnen des Abstands zu dem Objekt oder dem Merkmal das Berechnen eines Abstands zu einem Objekt des einen oder der mehreren Objekte umfasst.
  5. Verfahren nach Anspruch 1, das ferner eines oder mehrere des Folgenden umfasst: Berechnen von Kosten für jedes des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells, wobei das Auswählen eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell das Auswählen eines Modells umfasst, das geringste Kosten umfasst; Rekonstruieren dreidimensionaler spärlicher Merkmalspunkte basierend auf dem ausgewählten Bewegungsmodell; oder Durchführen von Ort-Bündelanpassung an Bildmerkmale.
  6. Verfahren nach Anspruch 1, wobei das Auswählen des einen des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell das Auswählten basierend auf einer Menge von Tiefenvariationen in einer Szene, die durch die benachbarten Bildrahmen aufgenommen wurde, umfasst.
  7. Verfahren nach Anspruch 1, wobei das Identifizieren entsprechender Bildmerkmale das Durchführen von Bildmerkmalsextraktion und -abgleich unter Verwendung eines Oriented-FAST-and-Rotated-BRIEF-(ORB-)Algorithmus umfasst.
  8. System, umfassend: eine monokulare Kamera, die auf einem Fahrzeug montiert ist; eine Bildkomponente, um eine Reihe von Bildrahmen zu erhalten, die durch die monokulare Kamera aufgenommen wurden; eine Merkmalskomponente, die konfiguriert ist, entsprechende Bildmerkmale in benachbarten Bildrahmen innerhalb einer Reihe von Bildrahmen zu identifizieren; eine Modellparameterkomponente, die konfiguriert ist, Parameter für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell basierend auf den Bildmerkmalen zu bestimmen; eine Modellauswahlkomponente, die konfiguriert ist, eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als ein ausgewähltes Bewegungsmodell auszuwählen; und eine Bewegungskomponente, die konfiguriert ist, eine Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell zu bestimmen.
  9. System nach Anspruch 8, das ferner eines oder mehrere des Folgenden umfasst: eine Abstandskomponente, die konfiguriert ist, einen Abstand zu einem Objekt oder einem Merkmal in den Bildrahmen basierend auf der Kamerabewegung zu berechnen; eine Objekterkennungskomponente, die konfiguriert ist, ein oder mehrere Objekte innerhalb einer Reihe von Bildrahmen unter Verwendung eines tiefen neuronalen Netzes zu erkennen und zu lokalisieren; eine Modellkostenkomponente, die konfiguriert ist, Kosten für jedes des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells zu berechnen, wobei die Modellauswahlkomponente konfiguriert ist, eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell auszuwählen, indem ein Modell ausgewählt wird, das geringste Kosten umfasst; oder eine Rekonstruktionskomponente, die konfiguriert ist, dreidimensionale spärliche Merkmalspunkte basierend auf dem ausgewählten Bewegungsmodell zu rekonstruieren.
  10. System nach Anspruch 8, wobei das Identifizieren entsprechender Bildmerkmale das Durchführen von Bildmerkmalsextraktion und -abgleich unter Verwendung eines Oriented-FAST-and-Rotated-BRIEF-(ORB-)Algorithmus umfasst.
  11. Computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, die Prozessoren zu Folgendem veranlassen: Identifizieren entsprechender Bildmerkmale in einem ersten Rahmen, die einem zweiten Merkmal in einem zweiten Rahmen entsprechen, wobei der erste Rahmen und der zweite Rahmen benachbarte Bildrahmen umfassen, die durch eine Kamera aufgenommen wurden; Bestimmen von Parametern für ein ebenes Bewegungsmodell und ein nicht-ebenes Bewegungsmodell; Auswählen eines des ebenen Bewegungsmodells oder des nicht-ebenen Bewegungsmodells als ein ausgewähltes Bewegungsmodell; und Bestimmen einer Kamerabewegung basierend auf Parametern für das ausgewählte Bewegungsmodell.
  12. Computerlesbares Medium nach Anspruch 11, wobei das Medium ferner Anweisungen speichert, die den Prozessor veranlassen, einen Abstand zu einem Objekt oder einem Merkmal in den Bildrahmen basierend auf der Kamerabewegung zu berechnen.
  13. Computerlesbares Medium nach Anspruch 12, wobei das Medium ferner Anweisungen speichert, die die Prozessoren veranlassen, ein oder mehrere Objekte auf einer zweidimensionalen Bildebene unter Verwendung eines tiefen neuronalen Netzes zu erkennen und zu lokalisieren, wobei das Berechnen des Abstands zu dem Objekt oder dem Merkmal das Berechnen eines Abstands zu einem Objekt des einen oder der mehreren Objekte umfasst.
  14. Computerlesbares Medium nach Anspruch 11, wobei das Medium ferner Anweisungen speichert, die die Prozessoren veranlassen, Kosten für jedes des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells zu berechnen, wobei das Auswählen eines des ebenen Bewegungsmodells und des nicht-ebenen Bewegungsmodells als das ausgewählte Bewegungsmodell das Auswählen eines Modells umfasst, das geringste Kosten umfasst.
  15. Computerlesbares Medium nach Anspruch 11, wobei die Anweisungen die Prozessoren veranlassen, entsprechende Bildmerkmale zu identifizieren, indem Bildmerkmalsextraktion und -abgleich unter Verwendung eines Oriented-FAST-and-Rotated-BRIEF-(ORB-)Algorithmus durchgeführt werden.
DE102017120709.0A 2016-09-08 2017-09-07 Gegenstandsabstandsschätzung unter verwendung von daten von einer einzigen kamera Pending DE102017120709A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/259,724 US20180068459A1 (en) 2016-09-08 2016-09-08 Object Distance Estimation Using Data From A Single Camera
US15/259724 2016-09-08

Publications (1)

Publication Number Publication Date
DE102017120709A1 true DE102017120709A1 (de) 2018-03-08

Family

ID=60037153

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017120709.0A Pending DE102017120709A1 (de) 2016-09-08 2017-09-07 Gegenstandsabstandsschätzung unter verwendung von daten von einer einzigen kamera

Country Status (6)

Country Link
US (1) US20180068459A1 (de)
CN (1) CN107808390A (de)
DE (1) DE102017120709A1 (de)
GB (1) GB2555699A (de)
MX (1) MX2017011507A (de)
RU (1) RU2017130021A (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US10551838B2 (en) * 2017-08-08 2020-02-04 Nio Usa, Inc. Method and system for multiple sensor correlation diagnostic and sensor fusion/DNN monitor for autonomous driving application
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
DE102018204451A1 (de) 2018-03-22 2019-09-26 Conti Temic Microelectronic Gmbh Verfahren und Vorrichtung zur Autokalibrierung eines Fahrzeugkamerasystems
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
JP7240115B2 (ja) * 2018-08-31 2023-03-15 キヤノン株式会社 情報処理装置及びその方法及びコンピュータプログラム
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
TWI728469B (zh) * 2018-09-27 2021-05-21 台灣塔奇恩科技股份有限公司 移動載具之教導路徑模組
SG11202103493QA (en) 2018-10-11 2021-05-28 Tesla Inc Systems and methods for training machine models with augmented data
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11150664B2 (en) 2019-02-01 2021-10-19 Tesla, Inc. Predicting three-dimensional features for autonomous driving
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
JP7332403B2 (ja) * 2019-09-11 2023-08-23 株式会社東芝 位置推定装置、移動体制御システム、位置推定方法およびプログラム
KR20210061839A (ko) 2019-11-20 2021-05-28 삼성전자주식회사 전자 장치 및 그 제어 방법
US11680813B2 (en) * 2020-01-21 2023-06-20 Thinkware Corporation Method, apparatus, electronic device, computer program, and computer readable recording medium for measuring inter-vehicle distance based on vehicle image
CN113340313B (zh) * 2020-02-18 2024-04-16 北京四维图新科技股份有限公司 导航地图参数确定方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192145B1 (en) * 1996-02-12 2001-02-20 Sarnoff Corporation Method and apparatus for three-dimensional scene processing using parallax geometry of pairs of points
US9615064B2 (en) * 2010-12-30 2017-04-04 Pelco, Inc. Tracking moving objects using a camera network
US8831290B2 (en) * 2012-08-01 2014-09-09 Mitsubishi Electric Research Laboratories, Inc. Method and system for determining poses of vehicle-mounted cameras for in-road obstacle detection
WO2014047465A2 (en) * 2012-09-21 2014-03-27 The Schepens Eye Research Institute, Inc. Collision prediction
DE102013202166A1 (de) * 2013-02-11 2014-08-28 Rausch & Pausch Gmbh Linearaktuator
US9563951B2 (en) * 2013-05-21 2017-02-07 Magna Electronics Inc. Vehicle vision system with targetless camera calibration
EP2851870B1 (de) * 2013-09-20 2019-01-23 Application Solutions (Electronics and Vision) Limited Verfahren zur Kalkulation der Selbstbewegung eines Gegenstandes
US9495761B2 (en) * 2013-11-04 2016-11-15 The Regents Of The University Of California Environment mapping with automatic motion model selection
JP6201148B2 (ja) * 2013-12-20 2017-09-27 パナソニックIpマネジメント株式会社 キャリブレーション装置、キャリブレーション方法、キャリブレーション機能を備えた移動体搭載用カメラ及びプログラム
US20170005316A1 (en) * 2015-06-30 2017-01-05 Faraday&Future Inc. Current carrier for vehicle energy-storage systems

Also Published As

Publication number Publication date
GB2555699A (en) 2018-05-09
RU2017130021A (ru) 2019-02-25
US20180068459A1 (en) 2018-03-08
GB201713809D0 (en) 2017-10-11
CN107808390A (zh) 2018-03-16
MX2017011507A (es) 2018-09-21

Similar Documents

Publication Publication Date Title
DE102017120709A1 (de) Gegenstandsabstandsschätzung unter verwendung von daten von einer einzigen kamera
DE102017123180A1 (de) Rückwertige Hinderniserkennung und Abstandsschätzung
DE102020106176A1 (de) Lokalisierungssysteme und -verfahren
DE102018105417A1 (de) Fahrzeugortung unter verwendung von kameras
DE102018103817A1 (de) Freiraumdetektion unter verwendung einer monokularen kamera und von deep learning
DE102017113572A1 (de) Spurerkennungssysteme und -verfahren
DE102017100199A1 (de) FUßGÄNGERERKENNUNG MIT AUFFÄLLIGKEITSKARTEN
DE102017105661A1 (de) Fahrzeug-fahrspurgrenzposition
DE102016120507A1 (de) Prädizieren von fahrzeugbewegungen anhand von fahrerkörpersprache
DE102018101125A1 (de) Rekurrentes tiefes neuronales Faltungsnetzwerk zur Detektion von Objekten
DE102018107344A1 (de) Hinderniserfassungssysteme und -verfahren
EP3038011B1 (de) Verfahren zum Bestimmen des Abstands eines Objekts von einem Kraftfahrzeug mittels einer monokularen Bilderfassungseinrichtung
DE102016120508A1 (de) Autonomes Fahren an Kreuzungen basierend auf Wahrnehmungsdaten
DE102019110430A1 (de) Nebenbedingungen der simultanen positionsbestimmung und kartenerstellung in generative adversarial networks zur monokularen tiefenschätzung
DE102019120880A1 (de) End-to-end-deep-generative-modell für simultane lokalisierung und abbildung
DE102019112002A1 (de) Systeme und verfahren zur automatischen detektion von anhängereigenschaften
DE102017116213A1 (de) Fahrspurerkennung mit rückfahrkamera
DE102019111725A1 (de) Monokulare visuelle odometrie: fahrzeuggesschwindigkeit und -gierrate von rückfahrkamera
DE102018101318A1 (de) Objekterkennung unter verwendung eines rekurrenten neuronalen netzwerks und einer verketteten merkmalsabbildung
DE102019115455A1 (de) Fokus-basiertes markieren von sensordaten
DE102016123878A1 (de) Fahrzeugblinksignaldetektion
DE102017105903A1 (de) Fussgängerdetektion und Bewegungsvorhersage mit nach hinten gerichteter Kamera
DE102016123887A1 (de) Virtuelle sensordatenerzeugung zur radanschlagdetektion
DE102018101220A1 (de) Zeichenerkennung für autonome fahrzeuge
DE102019116569A1 (de) LOKALISIERUNG FÜR AUTONOME FAHRZEUGE UNTER VERWENDUNG VON GAUßSCHEN VERMISCHUNGSMODELLEN

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: BONSMANN - BONSMANN - FRANK PATENTANWAELTE, DE

R012 Request for examination validly filed