DE102020128899A1 - Adaptive virtuelle kamera für indirect-sparse-simultaneous-localization- und mapping-systeme - Google Patents

Adaptive virtuelle kamera für indirect-sparse-simultaneous-localization- und mapping-systeme Download PDF

Info

Publication number
DE102020128899A1
DE102020128899A1 DE102020128899.9A DE102020128899A DE102020128899A1 DE 102020128899 A1 DE102020128899 A1 DE 102020128899A1 DE 102020128899 A DE102020128899 A DE 102020128899A DE 102020128899 A1 DE102020128899 A1 DE 102020128899A1
Authority
DE
Germany
Prior art keywords
estimated
feature point
location
error
landmark
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
DE102020128899.9A
Other languages
English (en)
Inventor
Anirud Thyagharajan
Om J. Omer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102020128899A1 publication Critical patent/DE102020128899A1/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/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • 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/10028Range image; Depth image; 3D point clouds
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Techniken in Zusammenhang mit gleichzeitiger indirekter dünnbesetzter Positionsbestimmung und Kartierung (Indirect Sparse Simultaneous Localization And Mapping (SLAM) sind erläutert. Solche Techniken beinhalten das adaptive Positionieren einer virtuellen Kamera in Bezug zu einer geschätzten Position einer physischen Kamera innerhalb einer Umgebung, die zu Kartieren ist, das Projizieren eines Tiefenfehlers auf eine Bildebene, die der Position der adaptiven Kamera entspricht, und das Verwenden des projizierten Tiefenfehlers zum Aktualisieren einer Kartierung der Umgebung.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Simultaneous Localization And Mapping (SLAM - gleichzeitige Positionsbestimmung und Kartierung) ist ein grundlegender Baustein für diverse autonome Anwendungen in der Robotertechnik und anderen Gebieten. SLAM wird zum Beispiel bei der Navigation, Roboterkartierung, Odometrie, virtuellen Realität, erweiterten Realität und andere Anwendungen verwendet. Unter SLAM-Techniken wurden indirekt-dünnbesetzte Verfahren weit verbreitet aufgrund besserer Performance und rechnerischer Effizienz und weil sie nicht mit inhärenten Verzerrungen aufgrund geometrischer Vorgänge behaftet sind, angenommen, und stellen ein breites Spektrum an fotometrischer und geometrischer Invarianz bereit. Im Allgemeinen ist das Schätzen einer präzisen Lage eine Hauptzielsetzung von SLAM-Systemen. Solche Lagen (zum Beispiel Ort oder Ausrichtung einer Kamera oder eines Systems innerhalb eines Koordinatensystems, definiert für eine Umgebung, sowie der Ort von Objekten innerhalb der Umgebung) müssen unter Sensorrauschen, Verarbeitungsungenauigkeiten (zum Beispiel Feature Detection & Tracking), dynamischen Szenarien (zum Beispiel sich bewegende Objekte, Okklusionen) und anderen Faktoren geschätzt werden. Es besteht folglich ein Bedarf für SLAM-Systeme, um rigorose Lageoptimierungsprozesse anzunehmen.
  • Die derzeitigen dünnbesetzten indirekten SLAM-Verfahren führen Lageschätzung durch Ableiten von 3D-Geometrie aus Sätzen von Schlüsselpunktabstimmungen aus. Für Verlustformulierungen bei dem Optimierungsprozess, ein geometrischer 3D-Fehler, der als eine Distanz zwischen einem 3D-Merkmal (das zum Beispiel durch Rückprojizieren eines erfassten 2D-Merkmals unter Verwenden von Tiefendaten erhalten wird) und einem Kartenpunkt (zum Beispiel eine aktuelle Schätzung eines SLAM-Systems für eine Landmarke, die dem Merkmal entspricht). Bei den meisten Tiefensensoren (zum Beispiel aktive oder passive Stereo, Structure from Motion und andere Modalitäten) ist die Präzision der Tiefenschätzung zu der Tiefe umgekehrt proportional. Das kann hohe geometrische Fehler für Objekte/Landmarken ergeben, die weiter von der Kamera entfernt sind (im Vergleich zu Objekten, die der Kamera näher sind), was sich schwerwiegend auf den Optimierungsprozess auswirken kann, der in Lageschätzung mit niedriger Treue resultiert. Um dem zu begegnen, projizieren aktuelle indirekt-dünnbesetzte SLAM-Verfahren geometrische 3D-Fehler zurück auf die Bildebene und verwenden diesen Rückprojektionsfehler bei dem Optimierungsprozess. Obwohl diese normierte Darstellung des geometrischen Fehlers in Bezug auf die Tiefe die Treue der Lageschätzung durch Entfernen von Verzerrungen zu weiteren Objekten/Landmarken verbessert, drückt der Rückprojektionsfehler die Tiefenkomponente eines geometrischen Fehlers, was negative Auswirkung auf die Lageschätzung verursacht.
  • Es besteht ein ständiger Bedarf an hochwertiger Lageschätzung in SLAM-Systemen. In Anbetracht dieser und anderer allgemeiner Betrachtungen wurden die vorliegenden Verbesserungen benötigt. Solche Verbesserungen können kritisch werden, während der Wunsch zur Umsetzung von SLAM in einer Vielfalt von Kontexten, wie Navigation, Robotertechnik, Odometrie, virtueller Realität, erweiterter Realität usw. immer umfassender wird.
  • Figurenliste
  • Das Material, das hierin beschrieben ist, ist in den begleitenden Figuren beispielhaft und nicht einschränkend veranschaulicht. Im Sinne der Einfachheit und Klarheit der Veranschaulichung, wurden Elemente, die in den Figuren veranschaulicht sind, nicht unbedingt maßstabgerecht gezeichnet. Die Maße einiger der Elemente können zum Beispiel im Vergleich zu anderen Elementen zur Klarheit übertrieben sein. Ferner wurden Bezugszeichen, wo immer es für angemessen gehalten wurde, in den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben. In den Figuren:
    • veranschaulicht 1 ein beispielhaftes System zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung;
    • veranschaulicht 2 eine beispielhafte 3D-Umgebung, die eine Landmarke und eine physische Kamera beinhaltet;
    • veranschaulicht 3 eine beispielhafte Lage einer virtuellen Kamera in Bezug auf eine beispielhafte geschätzte Lage einer physischen Kamera;
    • veranschaulicht 4 beispielhafte Landmarkenmerkmalpunkte in einem beispielhaften neuen Rahmen;
    • veranschaulicht 5 eine andere Geometrie einer beispielhaften geschätzten Lage einer physischen Kamera, einer geschätzten Landmarkenposition und einer geschätzten Merkmalpunktposition;
    • ist 6 ein Ablaufdiagramm, das einen beispielhaften Prozess zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung veranschaulicht;
    • ist 7 ein Ablaufdiagramm, das einen beispielhaften Prozess zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung einer Umgebung veranschaulicht;
    • ist 8 ein veranschaulichendes Diagramm eines beispielhaften Systems zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung einer Umgebung;
    • ist 9 ein veranschaulichendes Diagramm eines beispielhaften Systems; und
    • veranschaulicht 10 eine beispielhafte Vorrichtung mit kleinem Formfaktor, ganz in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen oder Umsetzungen werden nun unter Bezugnahme auf die beigefügten Figuren beschrieben. Während spezifische Konfigurationen und Anordnungen besprochen werden, sollte man verstehen, dass das lediglich veranschaulichenden Zwecken dient. Fachleute des relevanten Gebiets werden erkennen, dass andere Konfigurationen und Anordnungen eingesetzt werden können, ohne vom Geist und Schutzbereich der Beschreibung abzuweichen. Für den Fachmann des betreffenden Gebiets ist offensichtlich, dass Techniken und/oder Anordnungen, die hierin beschrieben sind, auch in einer Vielfalt anderer Systeme und Anwendungen, die anders sind als was hier beschrieben ist, eingesetzt werden können.
  • Während die folgende Beschreibung diverse Umsetzungen darlegt, die in Architekturen, wie einem System-on-a-Chip-Architekturen (SoC-Architekturen) Gestalt annehmen können, ist die Umsetzung der Techniken und/oder Anordnungen, die hierin beschrieben sind, nicht auf besondere Architekturen und/oder Computing-Systeme beschränkt und kann anhand einer Architektur und/oder eines Computing-Systems für ähnliche Zwecke umgesetzt werden. Diverse Architekturen, die zum Beispiel mehrere integrierte Schaltungschips (IC-Chips) und/oder Packages, und/oder diverse Computing-Vorrichtungen und/oder Verbraucherelektronikvorrichtungen (CE-Vorrichtungen), wie Multifunktionsvorrichtungen, Tablets, Smartphones usw. einsetzen, können die Techniken und/oder Anordnungen, die hierin beschrieben sind, umsetzen. Während ferner die folgende Beschreibung zahlreiche spezifische Einzelheiten darlegen kann, wie logische Umsetzungen, Typen und Wechselbeziehungen von Systembauelementen, logische Partitionierungs-/Integrationsauswahlen usw., kann der beanspruchte Gegenstand ohne solche spezifischen Einzelheiten umgesetzt werden. In anderen Fällen kann Material, wie zum Beispiel Steuerstrukturen und vollständige Softwareanweisungssequenzen, nicht ausführlich gezeigt sein, um das hierin offenbarte Material nicht unklar zu machen. Das hierin offenbarte Material kann in Hardware, Firmware, Software oder einer beliebigen Kombination davon umgesetzt werden. Das hierin offenbarte Material kann auch als Anweisungen umgesetzt werden, die auf einem maschinenlesbaren Medium, das von einem oder mehreren Prozessoren gelesen und ausgeführt werden kann, gespeichert sind. Ein maschinenlesbares Medium kann jedes beliebige Medium und/oder Mechanismen zum Speichern oder Übertragen von Informationen in einer Form, die von einer Maschine (zum Beispiel einer Computing-Vorrichtung) lesbar ist, beinhalten. Ein maschinenlesbares Medium kann zum Beispiel unter anderen Nurlesespeicher (ROM); Direktzugriffsspeicher (RAM); Magnetplatten-Speichermedien; optische Speichermedien; Flash-Speichervorrichtungen; oder elektrische, optische, akustische oder andere Form ausgebreiteter Signale (zum Beispiel Trägerwellen, Infrarotsignale, digitale Signale) und andere aufweisen.
  • Verweise in der Spezifikation auf „1 Umsetzung“, „eine Umsetzung“, „eine beispielhafte Umsetzung“ oder Beispiele oder Ausführungsformen usw., geben an, dass die beschriebene Umsetzung ein besonderes Merkmal, eine besondere Struktur oder Charakteristik beinhalten kann, aber jede Ausführungsform nicht unbedingt das besondere Merkmal, die besondere Struktur oder Charakteristik beinhaltet. Darüber hinaus verweisen solche Phrasen nicht unbedingt auf dieselbe Umsetzung. Wenn ferner ein besonderes Merkmal, eine besondere Struktur oder Charakteristik in Verbindung mit einer Ausführungsform beschrieben ist, wird davon ausgegangen, dass es im Kenntnisbereich eines Fachmanns liegt, ein solches Merkmal, eine solche Struktur oder Charakteristik in Verbindung mit anderen Umsetzungen auszuführen, ob sie nun explizit beschrieben sind oder nicht. Die Begriffe „im Wesentlichen“, „nahe“, „ungefähr“, „fast“ und „etwa“ verweisen im Allgemeinen auf innerhalb von ± 10 % eines Zielwerts liegend.
  • Verfahren, Vorrichtungen, Geräte, Computing-Plattformen und Artikel werden hierin in Zusammenhang mit adaptiven virtuellen Kameras für indirekt-dünnbesetzte SLAM-Techniken beschrieben, die adaptive Orte für virtuelle Kameras basierend auf der Geometrie einem physischen Kameraort, eines erfassten Merkmals und einem aktuell geschätzten Ort der Landmarke, die dem erfassten Merkmal entspricht, bereitstellen.
  • Wie oben beschrieben, ist es in einer Vielfalt von Kontexten wünschenswert, eine präzise Lage einer Kamera oder eines Kamerasystems innerhalb einer Umgebung zu schätzen, und Positionen von Landmarken innerhalb der Umgebung zu schätzen. Solche Informationen werden in einem weiten Spektrum von Anwendungen eingesetzt, wie zum Beispiel Navigation, robotertechnische Abbildung, Odometrie, virtuelle Realität, erweiterte Realität usw. Vor allem sind solche Techniken bestrebt, eine Karte einer unbekannten Umgebung aufzubauen und/oder zu aktualisieren, während sie gleichzeitig die Lage einer Kamera oder eines Systems innerhalb der unbekannten Umgebung verfolgen, während weder die Systemlage noch die Umgebungskarte bekannt sind.
  • Wie unten erläutert, wird bei einigen Ausführungsformen eine geschätzte Lage einer physischen Kamera für eine physische Kamera innerhalb einer Umgebung erlangt. Die geschätzte Lage der physischen Kamera kann zum Beispiel eine Lageschätzung einer physischen Kamera derart beinhalten, dass die Schätzung an einer vorhergehenden Iteration (oder bei einer Initialisierung) bestimmt wurde. Wie hierin verwendet, beinhaltet der Begriff Position innerhalb einer Umgebung mindestens eine räumliche Position des Elements (zum Beispiel x-, y- und z-Koordinaten des Elements innerhalb eines Koordinatensystems, das an die Umgebung angewandt wird). Der Begriff Lage beinhaltet mindestens die Position und kann auch eine Ausrichtung des Elements, wie ein Nicken, Gieren und Rollen des Elements oder ähnliche Ausrichtungsinformationen in Bezug auf das Koordinatensystem beinhalten. Wie hierin verwendet, gibt der Begriff Ausrichtung eines Elements das Nicken, Gieren und Rollen des Elements an. Solche Positions- und Ausrichtungsinformationen können gemeinsam als eine Lage des Elements beschrieben werden; wie erläutert kann der Begriff Lage bei einigen Kontexten jedoch lediglich Positionsinformationen beinhalten. Bei einigen Ausführungsformen kann es nützlich sein, vollständige Lagepositionen für einige Elemente in der Umgebung zu schätzen und, insbesondere der Kamera oder des Kamerasystems, die/das in der Umgebung eingesetzt wird, während nur Positionsinformationen für andere Objekte in der Umgebung benötigt werden. Der Begriff Umgebung beinhaltet jeden geeigneten physischen Raum, in dem SLAM eingesetzt wird, und die Umgebung kann beliebige Landmarken oder Hindernisse beinhalten. Vor allem können nach einer Iteration von SLAM-Verarbeitung die Lage des Kamerasystems und die Orte von Landmarken innerhalb der Umgebung aktualisiert werden, und solche Iterationen werden wiederholt, um die Schätzung der Lage des Kamerasystems und Position der Landmarke zu verbessern, während zusätzliche Informationen erlangt und analysiert werden. Wie hierin verwendet, gibt der Begriff Landmarke ein Objekt oder einen Abschnitt davon innerhalb der Umgebung an. Vor allem erzeugen die hierin erläuterten Techniken viele Informationen, die gemeinsam mit anderen Fehlerinformationen, die aus anderen Kameras innerhalb der Umgebung (falls eingesetzt) und/oder anderen Hinweisen gelernt werden, die über die Umgebung aus anderen Systemen und Sensoren gelernt werden, die auf dem Kamerasystem und/oder innerhalb der Umgebung (falls eingesetzt) eingesetzt werden. Die Fehlerinformationen, die wie hierin erläutert erzeugt werden, können in jeder Fehlerfunktion, jedem Optimierungsproblem, jedem Energieoptimierungsmodell, Zielfunktion usw., das/die danach bestrebt ist, die Kameralage und Landmarkeninformationen zu aktualisieren, eingesetzt werden.
  • Neben der geschätzten Lage der physischen Kamera werden auch eine geschätzte Landmarkenposition für eine Landmarke innerhalb der Umgebung und eine geschätzte Merkmalpunktposition innerhalb der Umgebung für die Landmarke empfangen. Die geschätzte Landmarkenposition ist eine Position der Landmarke aus einer vorhergehenden Iteration (oder einer Initialisierungsposition). Wie erläutert, beinhaltet die geschätzte Landmarkenposition eine Datenstruktur, um eine Position einer Landmarke innerhalb der Umgebung (zum Beispiel x-, y- und z-Koordinaten) darzustellen. Die geschätzte Merkmalpunktposition entspricht auch der Landmarke, beinhaltet aber eine Schätzung der Position der Landmarke für die aktuelle Iteration. Die geschätzte Merkmalpunktposition kann zum Beispiel auf der Erfassung einer Landmarke innerhalb eines aktuellen Bilds, das von dem Kamerasystem aufgenommen wird, und auf Rückprojektion der Merkmallandmarke zu dem Koordinatensystem der Umgebung von der Landmarke basieren. Die Tiefeninformationen, die verwendet werden, um das erfasste Merkmal zurückzuprojizieren, können beliebige zweckdienliche Tiefeninformationen sein, die unter Verwenden einer zweckdienlichen Technik oder zweckdienlicher Techniken, wie stereoskopische Abstimmungstechniken (zum Beispiel basierend auf dem Bild aus dem Kamerasystem und einem zweiten Kamerasystem), stereoskopische IR-Abstimmung zwischen einem IR-Sender und einer IR-Bildgebungsvorrichtung usw., sein.
  • Auf jeden Fall kann ein 3D-Fehler zwischen der geschätzten Landmarkenposition und der geschätzten Merkmalpunktposition bestehen. Solche 3D-Fehlerinformationen können beim Schätzen einer neuen geschätzten Landmarkenposition für die Landmarke bei der aktuellen Iteration verwendet werden. Vor allem wird die neue geschätzte Landmarkenposition nicht einfach auf die geschätzte Merkmalpunktposition geändert, da Schätzung der Kameralage, Landmarkenpositionen usw. innerhalb der Umgebung ein komplexes Problem mit Positionen, die andere Fehler in dem System beeinflussen, bereitstellt. Solche Fehlerglieder für viele Landmarken, Informationen oder Fehler aus anderen Hinweisen aus der Umgebung und so fort können verwendet werden, um ein Problem zu definieren, das unter Verwenden von Fehler-Energieminimierungstechniken, Bündelausgleichungstechniken und dergleichen geschätzt werden kann. Vor allem erfassen die hierin erläuterten Techniken eine Tiefenfehlerkomponente des 3D-Fehlers zwischen der geschätzten Landmarkenposition und der geschätzten Merkmalpunktposition basierend auf dem Lokalisieren einer virtuellen Kamera innerhalb der Umgebung und Projizieren eines Fehlers, der dem 3D-Fehler entspricht, auf eine Bildebene, die der Lage der virtuellen Kamera entspricht. Wie hierin verwendet, gibt der Begriff virtuelle Kamera einen Aussichtspunkt an, der zur Verwendung bei der Fehlerprojektion erzeugt wird, und, wie der Begriff virtuell angibt, wird an dem Ort keine tatsächliche Kamera bereitgestellt. Hierin werden die Begriffe Bildebene und Kameraebene gegenseitig austauschbar verwendet.
  • Unter Verwenden der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition wird eine Lage der virtuellen Kamera für die virtuelle Kamera innerhalb der Umgebung bestimmt. Vor allem wird die Lage der virtuellen Kamera sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera versetzt. Wie hierin verwendet, sind die Begriffe horizontale Richtung und vertikale Richtung orthogonal zu einer Kameralinie (zum Beispiel zu der Richtung, in die die Kamera zeigt) der geschätzten Lage der physischen Kamera definiert. Die Horizontale liegt folglich entlang einer x-Achse der Bildebene der physischen Kamera, und die Vertikale liegt entlang einer y-Achse der Bildebene der physischen Kamera, so dass der Begriff entlang in diesem Kontext angibt, dass die Richtungen planparallel sind. Die Lage der virtuellen Kamera und die Lage der geschätzten physischen Kamera können zum Beispiel koplanar und parallel zu der Bildebene der physischen Kamera sein, die auch die Bildebene der virtuellen Kamera ist.
  • Außerdem wird die Lage der virtuellen Kamera unter Verwenden der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition derart erzeugt, dass die Lage (einschließlich der Position) der virtuellen Kamera innerhalb der Umgebung adaptiv ist. Solche Techniken können Techniken gegenübergestellt werden, die die Lage einer virtuellen Kamera an feststehender Distanz und Entfernung von der geschätzten Lage der physischen Kamera lokalisieren.
  • Ein Fehler, der dem 3D-Fehler zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition entspricht, wird dann auf eine Bildebene projiziert, die der Lage der virtuellen Kamera entspricht, indem die Position der virtuellen Kamera verwendet wird, um eine Tiefenfehlerkomponente oder einen projizierten Tiefenfehler, die/der dem 3D-Fehler entspricht, bereitzustellen. Durch adaptives Lokalisieren der Lage der virtuellen Kamera unter Verwenden der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition, wird die projizierte Tiefenfehlerkomponente vorteilhafterweise in einer Geometrie zwischen der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition gehalten. Außerdem wird ein Fehler für die Landmarke erzeugt, der gemeinsam mit dem projizierten Tiefenfehler einen planaren Fehler zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition beinhaltet, der entlang der Bildebene der physischen Kamera liegt.
  • Dadurch stellt das Fehlerglied, das basierend auf der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition erzeugt wird, einen robusten Fehler in allen Dimensionen (x, y entlang der Bildebene und z basierend auf dem projizierten Tiefenfehler) bereit. Solche Fehlerglieder (einschließlich der Tiefenfehlerkomponenten) können für jede Anzahl von Landmarken innerhalb der Umgebung erzeugt werden (zum Beispiel diejenigen Landmarken, die innerhalb des aktuellen Bilds aus der physischen Kamera erfasst werden). Außerdem können die Landmarkenfehlerglieder und Fehlerglieder oder Informationen aus anderen Hinweisen innerhalb der Umgebung, implementierten Sensoren usw. gesammelt werden, und eine neue geschätzte Lage der physischen Kamera und/oder geschätzte Landmarkenpositionen (für Landmarken, die innerhalb des aktuellen Bilds erfasst werden und, optional, für andere Landmarken in der Kartierung) werden unter Verwenden der Fehlerinformationen bestimmt. Vor allem kann eine aktualisierte Karte der Umgebung bei jeder Iteration derart erzeugt werden, dass die Karte die Lage des Kamerasystems und die Orte von Landmarken innerhalb der Umgebung beinhaltet.
  • 1 veranschaulicht ein beispielhaftes System 100 zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung, das in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet ist. Wie in 1 gezeigt, beinhaltet das System 100 ein Lageinitiierungsmodul 101, ein Lageschätzungsmodul 102, ein Lagetreuemodul 103, ein Verfeinerungsabschlussmodul 104 (als „Verfeinerung abgeschlossen“ bezeichnet), ein Entsprechungsverfeinerungsmodul 105 (als „Entsprechungsverfeinerung mit zusätzlichen Hinweisen“ bezeichnet) und ein Sprungrahmenmodul 106. Hierin konzentriert sich die Erläuterung auf das Lageschätzungsmodul 102. Das Lageschätzungsmodul 102 empfängt oder führt vorhergehende Kartierungen einer Umgebung, einschließlich einer geschätzten Lage einer physischen Kamera, geschätzter Landmarkenpositionen und geschätzter Merkmalpunktpositionen, wie hierin weiter erläutert. Das Lageschätzungsmodul 102 kann auch Fehlerinformationen oder Daten empfangen, um solche Fehler aus dem Entsprechungsverfeinerungsmodul 105 zu erzeugen, das zusätzliche Hinweise in Zusammenhang mit der Umgebung und Entsprechungen zwischen Bildern aus anderen Kameras, Entsprechungen zwischen Landmarken usw. verwenden kann, um Informationen zur Fehlerminimierung und/oder Kartierungsoptimierung bereitzustellen.
  • Das Lageschätzungsmodul 102 gibt aktualisierte oder neue geschätzte physische Kameralagen und aktualisierte oder neue geschätzte Landmarkenpositionen basierend auf dem Lösen oder Schätzen einer Lösung eines Modells, das solche Fehlerglieder und Informationen enthält, aus. Das Lageschätzungsmodul 102 kann die Lösung für das Modell unter Verwenden einer beliebigen zweckdienlichen Technik oder beliebiger zweckdienlicher Techniken, die gemäß dem Stand der Technik bekannt sind, wie Energieminimierungstechniken, Bündelausgleichungstechniken usw., lösen oder schätzen. Vor allem wird ein Fehler zwischen einer geschätzten Landmarkenposition und einer geschätzten Merkmalpunktposition (beide für dieselbe Landmarke) basierend auf der Bereitstellung einer Lage für eine virtuelle Kamera und Projizieren eines 3D-Fehlers auf eine Bildebene, die der Lage der virtuellen Kamera entspricht, erzeugt, um einen Tiefenfehler zu bestimmen. Die aktualisierten oder neuen geschätzten Lagen der physischen Kamera und die aktualisierten oder neuen geschätzten Landmarkenpositionen werden wiederum basierend auf oder unter Verwenden der Tiefenfehlerkomponente (gemeinsam mit anderen Fehlern, die für die aktuelle Iteration gesammelt werden) erzeugt.
  • Wie gezeigt, empfängt das Lageinitiierungsmodul 101 (und das System 100 im Allgemeinen) einen aktuellen oder einen neuen Rahmen 111. Der neue Rahmen 111 wird aus einer physischen Kamera innerhalb der Umgebung empfangen. Der neue Rahmen 111 kann jeden geeigneten Videorahmen, jedes geeignete Videobild, Bild, Video oder Bilddaten oder dergleichen mit einer beliebigen Auflösung und in einem beliebigen Format beinhalten. Der neue Rahmen 111 kann ein Video Graphics Array (VGA), Hochauflösungs- (HD), Full-HD (zum Beispiel 1080p), 2K-Auflösung-Video, 4K-Auflösung-Video oder 8K-Auflösung-Video sein. Bei einigen Ausführungsformen wird der Rahmen 111 vor dem Verarbeiten herunterkonvertiert. Hierin erläuterte Techniken werden in Bezug auf Rahmen zur Klarheit der Präsentation erläutert. Solche Rahmen können jedoch als Abbildungen, Bilder, Bilddaten usw. charakterisiert werden. Bei einigen Ausführungsformen weist der neue Rahmen 111 drei Kanäle auf, wie RGB-Kanäle, obwohl andere Formate, wie YUV, YcbCR usw. verwendet werden können. Das Lageinitiierungsmodul 101 kann Landmarkenerfassung, Landmarkenrückprojektion und Lageinitiierung basierend auf dem neuen Rahmen 111 ausführen, um eine Datenstruktur zu erzeugen, die von dem Lageschätzungsmodul 102 verwendet wird.
  • Außerdem werden die aktualisierten oder neuen geschätzten Lagen der physischen Kamera und die aktualisierten oder neuen geschätzten Landmarkenpositionen zu dem Lagetreuemodul 103 bereitgestellt, das die geschätzte Lage der physischen Kamera oder Lage und aktualisierte geschätzte Landmarkenpositionen weiter verfeinern kann, und zu dem Verfeinerungsabschlussmodul 104, das bestimmen kann, ob die Lageschätzung und/oder die Verfeinerung in die Kartierung der Umgebung aufgenommen werden sollte, oder ob die Lageschätzung und/oder Verfeinerung vollständig oder teilweise verworfen werden soll, wie in Bezug auf das Sprungrahmenmodul 106, das die Kartierung unter Verwenden des neuen Rahmens überspringen oder aktualisieren kann, angegeben ist.
  • Dadurch aktualisiert das System 100 eine Kartierung einer 3D-Umgebung für eine beliebige Anzahl von Iterationen. Die Kartierung kann beliebige Datenstrukturen beinhalten, die die 3D-Umgebung angeben, wie eine geschätzte Lage der physischen Kamera, geschätzte Merkmalpunktpositionen usw. Außerdem kann die 3D-Umgebung eine beliebige Umgebung sein, und ein 3D-Koordinatensystem kann an die Umgebung derart angewandt werden, dass das 3D-Koordinatensystem einen Ursprung an einer Position darin aufweist, und ein x-, y- und z- System in eine beliebige Ausrichtung.
  • 2 veranschaulicht eine beispielhafte 3D-Umgebung 200, die eine Landmarke 223 und eine physische Kamera 201 beinhaltet, die in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet ist. Die physische Kamera 201 kann über ein beliebiges System, das innerhalb der Umgebung 200 mobil ist, umgesetzt werden. Die physische Kamera 201 erlangt Rahmen oder Bilder innerhalb der Umgebung 200 und des Systems, das die physische Kamera 201 einsetzt, oder ein System in Kommunikation mit der physischen Kamera 201 empfängt die Rahmen oder Bilder sowie andere Informationen, wie Positions- oder Bewegungsinformationen des Systems, andere Sensordaten usw. Das Verarbeitungssystem versucht dann, die Landmarken abzubilden und eine Lage der physischen Kamera 201 innerhalb der Umgebung 200 bereitzustellen.
  • Wie gezeigt, gibt bei einer vorhergehenden Iteration die Kartierung an, dass die Landmarke 223 (L) an einer geschätzten Landmarkenposition 222 (M) liegt. Die Landmarke 223 gibt daher eine aktuelle Landmarke innerhalb der 3D-Umgebung 200 an, die die Kartierung präzis zu lokalisieren versucht. Bei einer vorhergehenden Iteration wurde die Landmarke 223 als die geschätzte Landmarkenpositionen 222 aufweisend geschätzt. Die geschätzte Landmarkenposition 222 kann eine beliebige Datenstruktur beinhalten, die eine geschätzte Position der Landmarke 223, wie 3D-Koordinaten (zum Beispiel einen x-Wert, einen y-Wert und einen z-Wert) basierend auf dem Koordinatensystem 231, wie es auf der Umgebung 200 überlagert wird, angibt. Außerdem gibt die vorhergehende Iteration an, dass sich die physische Kamera 201 an einer geschätzten Lage der physischen Kamera 215 (C) befindet. Wie bei der geschätzten Landmarkenposition 222, kann die geschätzte Lage der physischen Kamera 215 eine beliebige zweckdienliche Datenstruktur beinhalten, die eine geschätzte Position innerhalb der 3D-Umgebung 200 angibt.
  • Bei der veranschaulichten Ausführungsform basiert das Koordinatensystem 231 auf der physischen Kamera 201 derart, dass der Ursprung an der Position der geschätzten Lage der physischen Kamera 215, wie angegeben (0, 0, 0) liegt, und das Koordinatensystem 231 ist basierend auf der Lage derart ausgerichtet, dass die z-Achse des Koordinatensystems 231 mit der Kameralinie 212 der physischen Kamera 201 ausgerichtet ist. Die Bildebene 211 ist folglich zu der x-y-Ebene des Koordinatensystems 231 parallel. Außerdem wird angemerkt, dass die Bildebene 211 und die virtuelle Bildebene 213, obwohl sie getrennt veranschaulicht sind, dieselbe Ebene sein können. Das Koordinatensystem 231, das auf einer geschätzten Lage der physischen Kamera 215 basiert, kann zur Einfachheit verwendet werden. Das Koordinatensystem kann jedoch einen Ursprung und eine vordefinierte Ausrichtung aufweisen.
  • Basierend auf einem aktuellen Rahmen (zum Beispiel dem neuen Rahmen 111), wie er von der physischen Kamera 201 aufgenommen wird, wird ein Merkmalpunkt 203 (xD) innerhalb des aktuellen Rahmens erfasst. Der Merkmalpunkt 203 kann unter Verwenden einer beliebigen zweckdienlichen Technik, wie Merkmalerfassung, Merkmalextraktion usw. erfasst werden. Vor allem wird der Merkmalpunkt 203 als für die Landmarke 223 repräsentativ erfasst, und solche Informationen können verwendet werden, um die Position der geschätzten Landmarkenposition 222 und/oder der geschätzten Lage der physischen Kamera 215 innerhalb der Kartierung der Umgebung 200 zu aktualisieren.
  • Der Merkmalpunkt 203, wie er auf der Bildebene 211 erlangt wird (zum Beispiel der Bildebene des aktuellen Rahmens), wird zu einer geschätzten Merkmalpunktposition 221 (D) derart zurückprojiziert, dass die geschätzte Merkmalpunktposition 221 jede beliebige Datenstruktur beinhalten kann, die eine geschätzte Position der Landmarke 223 angibt. Wie gezeigt, existiert ein 3D-Fehler 217 zwischen der geschätzten Merkmalpunktposition 221 und der geschätzten Landmarkenposition 222 derart, dass die vorhergehende Iterationsschätzung (geschätzte Landmarkenposition 222) und die aktuelle Iterationsschätzung (geschätzte Merkmalpunktposition 221) zwischeneinander einen 3D-Fehler aufweisen. Dieser 3D-Fehler wird dann verwendet, um die geschätzte Landmarkenposition 222 durch Bereitstellen einer neuen oder aktualisierten Position davon und/oder geschätzten Lage der physischen Kamera 215 durch Bereitstellen einer neuen oder aktualisierten Position und Ausrichtung davon zu verbessern.
  • Wie in 2 gezeigt, wird basierend auf der geschätzten Lage der physischen Kamera 201, der geschätzten Merkmalpunktposition 221 und der geschätzten Landmarkenposition 222 eine Lage der virtuellen Kamera 216 (tx, ty, 0) für eine virtuelle Kamera 202 erzeugt. Vor allem kann die Lage der virtuellen Kamera 216 in der horizontalen (tx) und der vertikalen (ty) Richtung in Bezug auf die geschätzte Lage der physischen Kamera 201 versetzt sein, während in der z-Achse kein Versatz bereitgestellt ist. Außerdem weisen die geschätzte Lage der physischen Kamera 201 und die Lage der virtuellen Kamera 260 dieselbe Ausrichtung (hinsichtlich des Nickens, Gierens und Rollens) derart auf, dass sie dieselben Bildebenen 211, 213 gemeinsam haben, oder derart, dass die Bildebenen 211, 213 parallel sind. Vor allem kann die virtuelle Kamera 202 mit denselben Merkmalen (zum Beispiel Brennweite) wie die physische Kamera 201 modelliert werden. Die Lage der virtuellen Kamera 216 ist folglich sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera 215 versetzt, während die Lage der virtuellen Kamera 216 keinen Versatz in eine Tiefenrichtung in Bezug auf die geschätzte Lage der physischen Kamera 215 aufweist, und die Lage der virtuellen Kamera 216 und die geschätzte Lage der physischen Kamera 215 dieselbe Ausrichtung aufweisen. Vor allem sind die geschätzte Lage der physischen Kamera 215 und die Lage der virtuellen Kamera 216 in der x-y-Ebene koplanar (das heißt in einer Ebene parallel zu der Bildebene 211).
  • Die Lage der virtuellen Kamera 216 kann unter Verwenden einer beliebigen zweckdienlichen Technik oder beliebiger zweckdienlicher Techniken, die eine adaptive Lage der virtuellen Kamera 216 basierend auf der geschätzten Lage der physischen Kamera 201, der geschätzten Merkmalpunktposition 221 und der geschätzten Landmarkenposition 222 bereitstellen, bestimmt werden. Bei einigen Ausführungsformen wird die Lage der virtuellen Kamera 216 unter Verwenden einer modifizierten geschätzten Merkmalpunktposition 224 (D') für die geschätzte Merkmalpunktposition 221 bestimmt. Die Lage der virtuellen Kamera 216 wird dann an einer Position von der geschätzten Lage der physischen Kamera 201 bereitgestellt, die mit einer Projektion eines Vektors 237 von der geschätzten Merkmalpunktposition 221 zu der modifizierten geschätzten Merkmalpunktposition 224 ausgerichtet ist, und die in einer vorbestimmten Distanz 232 (b) von der geschätzten Lage der physischen Kamera 201 liegt. Bei einigen Ausführungsformen ist die Projektion eine Projektion des Vektors 237 von der geschätzten Merkmalpunktposition 221 zu der modifizierten geschätzten Merkmalpunktposition 224 auf die x-y-Ebene (zum Beispiel eine Ebene parallel zu der Bildebene 211). Die Lage der virtuellen Kamera 216 kann daher in einer vorbestimmten Distanz 232 von der geschätzten Lage der physischen Kamera 201, die an einer Position liegt, die mit einer x-y-Ebenenprojektion des Vektors von der geschätzten Merkmalpunktposition 221 zu der modifizierten geschätzten Merkmalpunktposition 224 ausgerichtet ist, ohne Änderung der z-Achse bereitgestellt werden. Außerdem, wie erläutert, weist die Lage der virtuellen Kamera 216 keine Ausrichtungsänderung in Bezug auf die geschätzte Lage der physischen Kamera 215 auf.
  • Die modifizierte geschätzte Merkmalpunktposition 224 kann unter Verwenden einer beliebigen zweckdienlichen Technik oder beliebiger zweckdienlicher Techniken erzeugt werden, die die Tiefenkomponente des 3D-Fehlers 217 in Bezug auf eine virtuelle Bildebene 213, die der Lage der virtuellen Kamera 316 entspricht, beibehält. Bei einigen Ausführungsformen liegt die modifizierte geschätzte Merkmalpunktposition 224 entlang einer Tiefenachse 218, die sich von der geschätzten Lage der physischen Kamera 215 zu der geschätzten Landmarkenposition 222 und in einer Distanz 233 (d) entlang der Tiefenachse 218 gleich der Distanz 233 (d) von der geschätzten Lage der physischen Kamera 215 zu der geschätzten Merkmalpunktposition 221 erstreckt.
  • 3 veranschaulicht eine beispielhafte Lage der virtuellen Kamera 216 in Bezug auf eine beispielhafte geschätzte Lage der physischen Kamera 215, die in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet ist. Wie in 3 gezeigt, angesichts der geschätzten Lage der physischen Kamera 215, wird die Lage der virtuellen Kamera 216 derart bestimmt, dass die Lage der virtuellen Kamera 216 mit der x-y-Ebene des Koordinatensystems 231 koplanar ist, mit einer Ebene orthogonal zu einer Kameralinie 212 der physischen Kamera 201 orthogonal ist (siehe 2) und mit einer Ebene parallel zu der Bildebene 211 koplanar ist. Außerdem befindet sich die Lage der virtuellen Kamera 216 in einer Distanz 232 von der Lage der physischen Kamera 215. Die Distanz 232 kann jede beliebige zweckdienliche vorbestimmte Distanz sein. Bei einigen Ausführungsformen liegt die Distanz 232 in dem Bereich von 1,5 cm bis 15 cm. Bei einigen Ausführungsformen liegt die Distanz 232 in dem Bereich von 5 cm bis 10 cm. Bei einigen Ausführungsformen ist die Distanz 232 eine Distanz zwischen der physischen Kamera 201 und einer zweiten physischen Kamera (nicht gezeigt) derart, dass die geschätzte Merkmalpunktposition 221 (siehe 2) auf stereoskopischen Techniken unter Verwenden von Bildern, die unter Verwenden der physischen Kamera 201 und der zweiten physischen Kamera erlangt werden, basiert. Die Distanz 232 kann daher eine Distanz zwischen physischen Kameras sein, die verwendet wird, um Tiefe in der Umgebung 200 zu erfassen. Vor allem können die erläuterten Techniken robuste Fehlerglieder in Bezug auf Variationen der Distanz 232 bereitstellen, während der Tiefenfehler in allen Geometrien in Bezug auf die geschätzte Lage der physischen Kamera 215, die geschätzte Merkmalpunktposition 221 und die geschätzte Landmarkenposition 222 beibehalten wird. Bei einigen Ausführungsformen kann die Distanz 232 größer sein, wenn ein Tiefensensor präziser ist, oder kleiner sein, wenn ein Tiefensensor weniger präzis ist.
  • Außerdem ist die Lage der virtuellen Kamera 216 in Bezug auf die geschätzte Lage der physischen Kamera 215 in eine Richtung 301, die entlang einer Projektion des Vektors 237 von der geschätzten Merkmalpunktposition 221 zu der modifizierten geschätzten Merkmalpunktposition 224 liegt, auf die Bildebene 211 entlang der x-y-Ebene oder irgendeiner Ebene orthogonal zu der Kameralinie 212 versetzt. Dadurch wird die Lage der virtuellen Kamera 216 derart bereitgestellt, dass in Bezug auf die geschätzte Lage der physischen Kamera 215 die Lage der virtuellen Kamera 216 sowohl einen x-Versatz als auch einen y-Versatz (das heißt jeweils tx, ty, die horizontalen und vertikalen Versatz bereitstellen) in einer Ebene parallel zu den Bildebenen 211, 213 aufweisen können.
  • Unter erneuter Bezugnahme auf 2 definieren die Lage der virtuellen Kamera 216 und die Merkmale, die verwendet werden, um die virtuelle Kamera 202 zu modellieren, die Bildebene 213 orthogonal zu einer Kameralinie 214 der virtuellen Kamera 202. Außerdem, wie erläutert, wird die modifizierte geschätzte Merkmalpunktposition 224 unter Verwenden der geschätzten Lage der physischen Kamera 215, der geschätzten Merkmalpunktposition 221 und der geschätzten Landmarkenposition 222 erzeugt. Ein 3D-Fehler 234 (oder eine virtuelle Fehlerkomponente), der dem 3D-Fehler 217 entspricht, wird zwischen der modifizierten geschätzten Merkmalpunktposition 224 und der geschätzten Landmarkenposition 222 bereitgestellt. Der 3D-Fehler 234, der dem 3D-Fehler 217 entspricht, wird auf die virtuelle Bildebene 213 der virtuellen Kamera 202 projiziert. Wie gezeigt, wird die Tiefenfehlerprojektion 235 des 3D-Fehlers 234 durch Projizieren der modifizierten geschätzten Merkmalpunktposition 224 auf einen projizierten Punkt 205 (UD') auf der virtuellen Bildebene 213 und geschätzten Landmarkenposition 222 zu einem projizierten Punkt 206 (uM) und Differenzieren der projizierten Punkte 205, 206 erzeugt. Vor allem kann die Tiefenfehlerprojektion 235 eine horizontale Komponente und eine vertikale Komponente in Bezug auf die virtuelle Bildebene 213 beinhalten.
  • Außerdem wird die geschätzte Landmarkenposition 222 auf einen projizierten Punkt 204 (xM) auf der Bildebene 211 projiziert, um eine Fehlerprojektion 236 zwischen dem projizierten Punkt 204 und dem Merkmalpunkt 203 bereitzustellen. Wie bei der Tiefenfehlerprojektion 235, kann eine planare Fehlerprojektion 236 eine horizontale Komponente und eine vertikale Komponente in Bezug auf die Bildebene 211 beinhalten. Die Tiefenfehlerprojektion 235 und die planare Fehlerprojektion 236 werden dann als ein Fehler, der der Landmarke 223 entspricht, für die aktuelle Iteration bereitgestellt. Bei einer Ausführungsform wird die kombinierte Fehlerprojektion als ein Vektor von Fehlerkomponenten bereitgestellt. Zum Beispiel können die Fehlerkomponenten ein erstes Glied beinhalten, das eine horizontale Differenz beinhaltet, die der planaren Fehlerprojektion 236 entspricht (das heißt xM - xD), ein zweites Glied, das eine vertikale Differenz beinhaltet, die der planaren Fehlerprojektion 236 entspricht (das heißt yM - yD), ein drittes Glied, das eine horizontale Differenz beinhaltet, die der Tiefenfehlerprojektion 235 entspricht (das heißt UM,x - UD',x), und ein viertes Glied, das eine vertikale Differenz beinhaltet, die der Tiefenfehlerprojektion 235 (das heißt UM,y - UD',Y) entspricht. Solche Fehlerglieder werden unten weiter erläutert.
  • Der Fehler für die Landmarke 223 bei der aktuellen Iteration wird dann gemeinsam mit Fehlern für andere Landmarken, mit anderen Hinweisen und so fort verwendet, um neue Schätzungen für die geschätzte Landmarkenposition 222 und/oder die geschätzte Lage der physischen Kamera 215, wie unter Bezugnahme auf 1 erläutert, bereitzustellen. Bei einigen Ausführungsformen wird die geschätzte Lage der physischen Kamera 215 als der Ursprung beibehalten, und alle Anpassungen erfolgen in Bezug auf die geschätzten Landmarkenpositionen. Solche Techniken können eine geschätzte Lösung für eine komplexe Zielfunktion, ein Energieminimierungsmodell oder dergleichen unter Verwenden beliebiger zweckdienlicher Techniken, wie Bündelausgleichungstechniken bereitstellen, um eine neue Kartierung der Umgebung 200 zu erzeugen. Wie erläutert, kann für jeden neuen Rahmen 111 ein Fehler für jede einer beliebigen Anzahl von Landmarken beim Bestimmen der neuen Kartierung verwendet werden.
  • 4 veranschaulicht beispielhafte Landmarkenmerkmalpunkte 401 in einem beispielhaften neuen Rahmen 111, in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet. Wie in 4 gezeigt, kann der neue Rahmen 111 eine beliebige Anzahl von Merkmalpunkten 401, die den Merkmalpunkt 203 beinhalten, beinhalten. Vor allem kann die Verarbeitung, die in Zusammenhang mit dem Merkmalpunkt 203 und der Landmarke 223 erläutert wurde, für jeden der Merkmalpunkte 203 und ihre entsprechenden Landmarken, geschätzten Landmarkenpositionen und geschätzte Lage der physischen Kamera 215 wiederholt werden. Das Erzeugen von Fehlern für die erläuterte Kartierungsaktualisierung kann zum Beispiel das Bestimmen einer Anzahl von Lagen der virtuellen Kamera beinhalten, eine für jeden der Merkmalpunkt 401, so dass jede der Lagen der virtuellen Kamera einer der Landmarken entspricht, die von den Merkmalpunkten 401 innerhalb der Umgebung 200 dargestellt werden, und Erzeugen von Fehlern, je einer für die entsprechende Landmarke, unter Verwenden der hierin erläuterten Techniken. Das Verarbeiten, das in Zusammenhang mit der Landmarke 223 erläutert wird, wird daher für jede Landmarke, die eine neue Merkmalpunkterfassung bei der aktuellen Iteration aufweist, wiederholt, um den entsprechenden Fehler zu bestimmen. Die Fehler werden dann verwendet, um die Kartierung derart zu aktualisieren, dass die neuen geschätzten Landmarkenpositionen bestimmt werden, eine für jede der Landmarken, die den Landmarkenmerkmalpunkten 401 entsprechen.
  • Unter erneuter Bezugnahme auf 2 ist, wie erläutert, ein Energieminimierungsproblem, eine Zielfunktion oder dergleichen, die Fehlerglieder basierend auf geschätzten Landmarkenpositionsfehlern und geschätzter Lage der physischen Kamera und/oder Lagefehler aufweist, für das Aktualisieren von SLAM-Kartierung basierend auf der Bündelausgleichungsformulierung oder anderen Techniken kritisch. Vorteilhafterweise kann diese Formulierung derart ausgelegt werden, dass sie für rauscharme Beobachtungen repräsentativ ist, um bei dem Optimierungsprozess zu helfen, um präzisere Schätzungen der Kameralage und Landmarkenorte zu finden.
  • Wie erläutert, wird die Lage der virtuellen Kamera 216 adaptiv pro Landmarke 223 derart angepasst, dass die Lage der virtuellen Kamera 216 zu den Bildebenen 211, 213 (zum Beispiel sowohl in die x- als auch in die y-Richtung) in einer vorbestimmten Distanz 232 von der geschätzten Lage der physischen Kamera 215 parallel ist. Außerdem wird bei einigen Ausführungsformen nur die Fehlerkomponente entlang der Tiefenachse 218 auf die virtuelle Bildebene 213 projiziert. Da die virtuelle Kamera 202 irgendwo parallel zu der Bildebene 211 liegen kann, kann das Projektionsfehlerglied der Tiefenfehlerprojektion 235 zwei Elemente beinhalten, die den Projektionsfehler sowohl in der x- als auch in der y- Richtung entlang der Bildebene 211 erfassen.
  • Die modifizierte geschätzte Merkmalpunktposition 224 kann unter Verwenden der geschätzten Lage der physischen Kamera 215, der geschätzten Merkmalpunktposition 221 und der geschätzten Landmarkenposition 222 erzeugt werden. Bei einigen Ausführungsformen wird die modifizierte Merkmalpunktposition 224, wie in Gleichung (1) gezeigt, bestimmt: C D ' = [ X D '    Y D '    Z D ' ] T = C D C M ^
    Figure DE102020128899A1_0001
    wobei C D '
    Figure DE102020128899A1_0002
    die modifizierte geschätzte Merkmalpunktposition 224 in Bezug auf die geschätzte Lage der physischen Kamera 215 ist (die als der Ursprung bereitgestellt wird, und als ein Vektor von XD', YD', und ZD' dargestellt ist, und C M ^
    Figure DE102020128899A1_0003
    die Tiefenachse 218 ist. Wie in Gleichung (1) gezeigt, liegt die modifizierte geschätzte Merkmalpunktposition 224 entlang der Tiefenachse 218, die sich von der geschätzten Lage der physischen Kamera 215 (C) zu der geschätzten Landmarkenposition 222 (M) erstreckt, und in einer Distanz 218 gleich der Distanz ( C D )
    Figure DE102020128899A1_0004
    von der geschätzten Lage der physischen Kamera 215 (C) zu der geschätzten Merkmalpunktposition 221 (D). Bei einigen Ausführungsformen kann zur Berücksichtigung eines Fehlers beim Erzeugen der modifizierten geschätzten Merkmalpunktposition 224, die modifizierte geschätzte Merkmalpunktposition 224 innerhalb eines Raums liegen, der an der modifizierten geschätzten Merkmalpunktposition 224 zentriert ist, wie in Gleichung (1) bereitgestellt, so dass der Raum keine Oberfläche von mehr als 0,1 cm von der modifizierten geschätzten Merkmalpunktposition 224, aufweist. Obwohl in Bezug auf einen Raum mit einer Oberfläche von nicht mehr als 0,1 cm von der modifizierten geschätzten Merkmalpunktposition 224 erläutert wird, kann jede Größe oder Form von Volumen verwendet werden.
  • Nächstfolgend wird der 3D-Fehler 234, wie in Gleichung (2) gezeigt, identifiziert: D ' M = C M C D '
    Figure DE102020128899A1_0005
    wobei D ' M  der
    Figure DE102020128899A1_0006
    3D-Fehler 234 ist, CM die geschätzte Landmarkenposition 222 (M) ist und C D '
    Figure DE102020128899A1_0007
    die modifizierte geschätzte Merkmalpunktposition 224 ist, wie unter Bezugnahme auf Gleichung (1) erläutert.
  • Bei einigen Ausführungsformen wird zum Bestimmen der Lage der virtuellen Kamera 216 (tx, ty, 0) eine Projektion oder Komponente des Vektors 237 parallel zu der Bildebene 211, wie in Gleichung (3) gezeigt, bestimmt: D D ' p r o j , n c ^ = D D ' ( D D ' . n c ^ ) n c ^
    Figure DE102020128899A1_0008
    wobei D D ' p r o j , n c ^
    Figure DE102020128899A1_0009
    die Projektion des Vektors 237 parallel zu der Bildebene 211 ist, D D '
    Figure DE102020128899A1_0010
    der Vektor 237 ist, und n c ^
    Figure DE102020128899A1_0011
    die Bildebene 211 ist.
  • Der Ort der virtuellen Kamera 202 (zum Beispiel die Lage der virtuellen Kamera 216 mit derselben Ausrichtung wie die Lage der geschätzten physischen Kamera 215) kann dann als ein Ort bestimmt werden, der in Bezug auf die geschätzte Lage der physischen Kamera 215 derart versetzt ist, dass der Ort zu der Bildebene 211 (und zu der x-y-Ebene) in eine Richtung der Projektion oder Komponente des Vektors 237 parallel zu der Bildebene 211 und in der Distanz 232, wie in Gleichung (4) gezeigt, ist: C ' = [ t x    t y    0 ] T = b   D D ' p r o j , n c ^
    Figure DE102020128899A1_0012
    wobei C' die Lage der virtuellen Kamera 216 ist (zum Beispiel der Ort der Lage der virtuellen Kamera 216) b die Distanz 232 ist, und D D ' p r o j , n c ^
    Figure DE102020128899A1_0013
    die Projektion des Vektors 237 parallel zu der Bildebene 211, wie unter Bezugnahme auf Gleichung (3) erläutert, ist.
  • Der 3D-Fehler 234, D ' M ,
    Figure DE102020128899A1_0014
    zwischen der modifizierten geschätzten Merkmalpunktposition 224 und der geschätzten Merkmalpunktposition 221 (das heißt ein virtueller 3D-Fehler) wird dann, wie erläutert, auf die virtuelle Bildebene 213 projiziert. Wie erläutert, wird auch die geschätzte Landmarkenposition 222 auf die Bildebene 211 projiziert. Die Projektionen auf die virtuelle Bildebene 213 und die Bildebene 211 werden dann verwendet, um einen Fehler, eAVC, für die Landmarke 223 basierend auf der geschätzten Lage der physischen Kamera 215, der geschätzten Merkmalpunktposition 221 und der geschätzten Landmarkenposition 222, wie in Gleichung (5) gezeigt, bereitzustellen: e A V C = [ x M x D y M y D ( x M f x t x Z M ) ( x M f x t x Z D ' ) ( y M f y t y Z M ) ( y M f y t y Z D ' ) ] = [ x M x D y M y D ( f x t x Z D ' f x t x Z M ) ( f y t y Z D ' f y t y Z M ) ]
    Figure DE102020128899A1_0015
    wobei eAVC der Fehler ist, xM - xD ein planarer horizontaler Komponentenfehler ist, yM - yD ein planarer vertikaler Komponentenfehler ist, ( f x t x Z D ' f x t x Z M )
    Figure DE102020128899A1_0016
    vertikaler Tiefenkomponentenfehler ist und ( f y t y Z D ' f y t y Z M )
    Figure DE102020128899A1_0017
    ein vertikaler Tiefenkomponentenfehler ist. Vor allem sind der horizontale Tiefenkomponentenfehler und der vertikale Tiefenkomponentenfehler jeweils die horizontale und die vertikale Komponente von uM - uD. Außerdem verweist in Gleichung (5) (fx, fy) auf die Brennweiten der physischen Kamera 201, und ZM und ZD, sind jeweils Distanzen zu der geschätzten Landmarkenposition 222 und zu der modifizierten geschätzten Merkmalpunktposition 224, wie sie für Bildebenenprojektion gemäß dem Stand der Technik bekannt sind.
  • Der Fehler, eAVC, kann dann gemeinsam mit anderen Fehlergliedern und Hinweisen verwendet werden, um eine neue geschätzte Lage der physischen Kamera und Landmarkenpositionen innerhalb einer Kartierung der Umgebung 200 bereitzustellen. Zum Beispiel kann eine Formulierung der kleinsten Quadrate basierend auf solchen Fehlern für die Kameralage und die Landmarkenpositionen gelöst werden. Wie erläutert, kann der Fehler eAVC bei einigen Ausführungsformen ein Glied beinhalten, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht (zum Beispiel dem dritten Glied des Vektors), und einem Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht (zum Beispiel dem vierten Glied des Vektors). Bei einigen Ausführungsformen kann eine Normierung solcher Glieder derart bestimmt werden, dass ein einziges Glied, das eine Normierung des Glieds, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, und das Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, in dem Fehler eAVC verwendet wird. Bei solchen Ausführungsformen beinhaltet der Fehler eAVC dann einen Vektor aus drei Gliedern. Die Normierung kann eine beliebige zweckdienliche Normierung sein, wie eine Norm des Niveaus 1 (L1-Norm) oder eine in Norm des Niveaus zwei (L2-Norm), wobei die Implementierung einer L2-Norm besonders vorteilhaft ist.
  • Vor allem wird ein virtueller 3D-Fehler, D ' M ,
    Figure DE102020128899A1_0018
    auf eine virtuelle Bildebene 213 als Teil des Fehlers eAVC projiziert. Da der Vektor 237, D ' M ,
    Figure DE102020128899A1_0019
    zu der geschätzten Lage der physischen Kamera 215 und der geschätzten Landmarkenposition 222 kolinear ist, wäre der einzige Aussichtspunkt, von dem die Projektion des Vektors 237 null wäre, der auf der Linie läge, die die Lage der physischen Kamera 215 (C), der modifizierten geschätzten Merkmalpunktposition 224 (D') und der geschätzten Landmarkenposition 222 (M) verbindet. Da der Lokus der Lage der virtuellen Kamera 216 (C') auf einem Kreis mit Ausmaß b nicht gleich null (Distanz 232) von der geschätzten Lage der physischen Kamera 215 (C) liegt, stellt das eine Garantie bereit, dass, falls D M ' 0,
    Figure DE102020128899A1_0020
    # 0, die Projektion des Vektors 237 auf der virtuellen Bildebene 213 immer nicht null sein wird.
  • 5 veranschaulicht eine andere Geometrie einer beispielhaften geschätzten Lage der physischen Kamera 215, geschätzten Landmarkenposition 222 und geschätzten Merkmalpunktposition 221, in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet. Wie in 5 gezeigt, wenn die geschätzte Merkmalpunktposition 221 entlang einer Linie liegt, die sich von der geschätzten Landmarkenposition 222 zu der Lage der virtuellen Kamera 216 (in mindestens eine Dimension) befindet, stellt die Projektion des Vektors 237 auf die virtuelle Bildebene 213, wie hierin erläutert, die Tiefenfehlerprojektion 235, die dem 3D-Fehler 217 entspricht, bereit. Vor allem falls der 3D-Fehler 234 auf die virtuelle Bildebene 213 projiziert würde, würde in dem Fehler keine Tiefenkomponente erfasst.
  • 6 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 600 zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung, der in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet ist, veranschaulicht. Der Prozess 600 kann einen oder mehrere Vorgänge 601 bis 610, wie in 6 veranschaulicht, beinhalten. Der Prozess 600 kann mindestens einen Teil eines gleichzeitigen Positionsbestimmungs- und Kartierungsprozesses (SLAM-Prozesses) bilden. Anhand eines nicht einschränkenden Beispiels kann der Prozess 600 mindestens einen Teil eines SLAM-Prozesses durch das System 100, wie hierin erläutert, bilden.
  • Das Verarbeiten beginnt bei dem Startvorgang 601, bei dem die Lageschätzung initiiert wird. Vor dem Prozess kann zum Beispiel eventuell eine vorhergehende Iteration für eine Umgebung oder eine Initiierung der Umgebung ausgeführt worden sein. Der Prozess 600 kann folglich mit einer Karte oder Kartierung beginnen, die eine geschätzte Lage einer physischen Kamera (C) und eine beliebige Anzahl geschätzter Landmarkenpositionen (M) für Landmarken (L) innerhalb der Umgebung beinhaltet. Außerdem wird bei Vorgang 601 ein aktueller Rahmen der Umgebung erlangt (zum Beispiel durch die physische Kamera), und eine Merkmalextraktion wird auf dem Rahmen ausgeführt, um Merkmale (XD) innerhalb des Rahmens zu identifizieren und sie mit den Landmarken in der Kartierung zu verbinden. Dadurch werden bei Vorgang 601 eine geschätzte Lage der physischen Kamera (C), eine beliebige Anzahl geschätzter Landmarkenpositionen (M) und Merkmalorte oder Merkmalpunkte (XD) innerhalb eines aktuellen Rahmens für Merkmale, die den Landmarken (L) entsprechen, erlangt.
  • Das Verarbeiten setzt bei Vorgang 602 fort, wobei für jeden Merkmalpunkt in dem Rahmen (XD) Rückprojektion ausgeführt wird, um das Merkmal an einer 3D-Position innerhalb der Umgebung zu lokalisieren. Solche Rückprojektion kann unter Verwenden einer zweckdienlichen Technik oder zweckdienlicher Techniken ausgeführt werden. Zum Beispiel wird für jeden Merkmalpunkt (XD) eine geschätzte Merkmalpunktposition (D) innerhalb der Umgebung erlangt. Wie erläutert, kann die geschätzte Lage der physischen Kamera (C) bei einigen Ausführungsformen einen Ursprung (0, 0, 0) und eine Grundlinienausrichtung für ein Koordinatensystem innerhalb der Umgebung bereitstellen. Bei solchen Ausführungsformen kann jede geschätzte Merkmalpunktposition (D) auf die geschätzte Lage der physischen Kamera (C) bezogen sein.
  • Das Verarbeiten setzt bei Vorgang 603 fort, bei dem eine geschätzte Landmarkenposition (M) oder ein Kartenpunkt auf die Bildebene der physischen Kamera projiziert wird, um einen projizierten Punkt (xM), der der Landmarke entspricht, bereitzustellen. Eine solche Projektion kann unter Verwenden einer zweckdienlichen Technik oder zweckdienlicher Techniken ausgeführt werden. Vor allem entsprechen alle des projizierten Punkts (xM) aus der geschätzten Landmarkenposition (M), der geschätzten Landmarkenposition (M), dem Merkmalpunkt in dem Rahmen (XD) und der geschätzten Merkmalpunktposition (D) derselben Landmarke (L).
  • Das Verarbeiten setzt bei Vorgang 604 fort, bei dem der Merkmalpunkt in dem Rahmen (XD) unter Verwenden der Distanz (d) auf eine modifizierte geschätzte Merkmalpunktposition (D'), wie in Zusammenhang mit Gleichung (1) besprochen, zurück projiziert. Zum Beispiel kann die modifizierte geschätzte Merkmalpunktposition (D') auf einer Linie liegen, die sich von der geschätzten Lage der physischen Kamera (D) zu der geschätzten Landmarkenposition (M) und in einer Distanz (d) gleich der Distanz von der geschätzten Lage der physischen Kamera (T) zu der geschätzten Merkmalpunktposition (D) erstreckt.
  • Das Verarbeiten setzt bei Vorgang 605 fort, bei dem ein 3D-Fehler (D'M) zwischen der modifizierten geschätzten Merkmalpunktposition (D') und der geschätzten Landmarkenposition (M), wie unter Bezugnahme auf Gleichung (2) erläutert, bestimmt wird. Vor allem gibt der 3D-Fehler (D'M) einen Fehler in einem 3D-Raum entlang einer Tiefenachse (CM), die der Landmarke (L) entspricht, an. Im Anschluss an das Lokalisieren einer Lage der virtuellen Kamera (C') wird der 3D-Fehler (D'M) dann auf eine virtuelle Bildebene der virtuellen Kamera derart projiziert, dass der 3D-Fehler (D'M) in jeder Geometrie, die der geschätzten Lage der physischen Kamera (T), den geschätzten Landmarkenpositionen (M) und der geschätzten Merkmalpunktposition (D) entspricht, beibehalten wird.
  • Das Verarbeiten setzt bei Vorgang 606 fort, bei dem die Komponente eines Vektors (DD') aus der geschätzten Merkmalpunktposition (D) zu der modifizierten geschätzten Merkmalpunktposition (D'), die auf die Bildebene (nc) der physischen Kamera projiziert ist, wie unter Bezugnahme auf Gleichung (3) erläutert, bestimmt wird. Vor allem ist die Komponente, die bei Vorgang 606 bestimmt wird, die Richtung des Vektors (DD') entlang der Bildebene (nc) oder auf diese projiziert. Die Lage der virtuellen Kamera (C') kann dann an einem Ort in derselben Richtung wie die Komponente entlang der Bildebene (nc) oder auf diese projiziert aus der geschätzten Lage der physischen Kamera (C) bestimmt werden. Die Lage der virtuellen Kamera (C') befindet sich daher an einem Ort, der von der Lage der geschätzten physischen Kamera (C) parallel zu der Bildebene (nc) und in der Richtung des Vektors (DD') entlang der Bildebene (nc) oder darauf projiziert, bewegt wird.
  • Das Verarbeiten setzt bei Vorgang 607 fort, bei dem die Lage der virtuellen Kamera (C') unter Verwenden der Komponente des Vektors (nc) entlang der Bildebene (DD') oder auf diese projiziert und einer vorbestimmten Grundlinien-Kameratrenndistanz (b), wie unter Bezugnahme auf Gleichung (4) erläutert, bestimmt wird. Die vorbestimmte Grundlinien-Kameratrenndistanz (b) kann ein beliebiger zweckdienlicher Wert, wie ein Wert von etwa 1,5 cm bis 15 cm sein. Bei einigen Ausführungsformen ist die vorbestimmte Grundlinien-Kameratrenndistanz (b) die gleiche Distanz einer Distanz zwischen der physischen Kamera und einer zweiten physischen Kamera, die erzeugt wird, um Tiefendaten der Umgebung zu erzeugen, oder einer Distanz zwischen einem IR-Sender und einem IR-Sensor, die zum Erzeugen einer Tiefe der Umgebung verwendet werden. Der IR-Sensor kann eine dedizierte IR-Kamera, eine RGB-Kamera ohne ein Infrarotfilter oder die physische Kamera selbst in diversen Umsetzungen sein. Wie erläutert, befindet sich die Lage der virtuellen Kamera (C') an einem Ort von der geschätzten Lage der physischen Kamera (C) in eine Richtung der Vektorkomponente (DD') entlang der Bildebene (nc) oder auf sie projiziert, und in einer Distanz von der Lage der physischen Kamera (C) der vorbestimmten Grundlinien-Kameratrenndistanz (b).
  • Das Verarbeiten setzt bei Vorgang 608 fort, bei dem ein 3D-Fehler (D'M) zwischen der modifizierten geschätzten Merkmalpunktposition (D') und der geschätzten Landmarkenposition (M), wie unter Bezugnahme auf 605 erläutert, auf die Bildebene der virtuellen Kamera projiziert wird, und der virtuelle Fehler bestimmt wird. Wie erläutert wird bei einigen Ausführungsformen die virtuelle Kamera als dieselben Merkmale (zum Beispiel Brennweite, Bildgröße und Auflösung usw.) wie die physische Kamera aufweisend modelliert. Bei einigen Ausführungsformen können solche Merkmale modifiziert werden. Bei einigen Ausführungsformen ist die Bildebene der virtuellen Kamera dieselbe Ebene wie die der physischen Kamera, während bei anderen Ausführungsformen die Bildebenen unterschiedlich aber parallel sind.
  • Auf jeden Fall wird der 3D-Fehler (D'M) auf die Bildebene der virtuellen Kamera, wie unter Bezugnahme auf Gleichung (5) erläutert, projiziert, indem sowohl die modifizierte geschätzte Merkmalpunktposition (D') als auch die geschätzten Landmarkenpositionen (M) auf die Bildebene der virtuellen Kamera zu einem projizierten Punkt (UD') des modifizierten geschätzten Merkmalpunkts und einem projizierten Punkt (uM) der geschätzten Landmarkenposition projiziert werden. Zum Beispiel kann die horizontale oder x-Achsenposition des projizierten Punkts (UD') des modifizierten geschätzten Merkmalpunkts x-Achsen-Brennweite der Kameras (fx) multipliziert mit dem horizontalen- oder x-Achsenversatz der Lage der virtuellen Kamera (tx) geteilt durch die Tiefe der modifizierten geschätzten Merkmalpunktposition (ZD') derart sein, dass der projizierte Punkt des modifizierten geschätzten Merkmalpunkts f x t x Z D '
    Figure DE102020128899A1_0021
    ist. Die vertikale oder y-Achsenposition des projizierten Punkts (UD') des modifizierten geschätzten Merkmalpunkts, die horizontale oder x-Achsenposition des projizierten Punkts (uM) der geschätzten Landmarkenposition, und die vertikale oder y-Achsenposition des projizierten Punkts (uM) der geschätzten Landmarkenposition können unter Verwenden analoger Techniken, wie in Gleichung (5) bereitgestellt, bestimmt werden.
  • Der virtuelle Fehler oder eine projizierte 3D-Fehlerkomponente (uD, - uM) kann dann sowohl in die Horizontale oder x-Achse und in die Vertikale oder y-Achse, wie in Gleichung (5) bereitgestellt, bestimmt werden. Zum Beispiel wird die horizontale oder projizierte x-Achsen-3D-Fehlerkomponente als das dritte Glied in dem Fehlervektor bereitgestellt, und die vertikale oder projizierte y-Achsen-3D-Fehlerkomponente wird als das vierte Glied in dem Fehlervektor bereitgestellt. Außerdem beinhaltet der Fehler ein Glied (das erste Glied in Gleichung (5)), das einem horizontalen Fehler zwischen einer Projektion (XD) der geschätzten Merkmalpunktposition (D) auf eine die Bildebene der physischen Kamera und einer Projektion (xM) der geschätzten Landmarkenposition (M) auf der Bildebene der physischen Kamera, sowie Glied, das einem vertikalen Fehler zwischen der Projektion (yD) der geschätzten Merkmalpunktposition (D) auf der Kameraebene der physischen Kamera und der Projektion (yM) der geschätzten Landmarkenposition (M) auf der Kameraebene der physischen Kamera entspricht.
  • Bei einigen Ausführungsformen beinhaltet der Fehler, der verwendet wird, um die Kartierung der Umgebung zu aktualisieren, jedes der vier Glieder: den horizontalen und den vertikalen Fehler auf der Bildebene, die der Lage der physischen Kamera entsprechen, und den horizontalen und den vertikalen Fehler des projizierten virtuellen 3D-Fehlers auf der Bildebene, die der Lage der virtuellen Kamera entsprechen. Bei einigen Ausführungsformen beinhaltet der Fehler, der verwendet wird, um die Kartierung der Umgebung zu aktualisieren, jedes der drei Glieder: den horizontalen und den vertikalen Fehler auf der Bildebene, die der Lage der physischen Kamera entsprechen, und eine Normierung des horizontalen und des vertikalen Fehlers des projizierten virtuellen 3D-Fehlers auf der Bildebene, die der Lage der virtuellen Kamera entsprechen (zum Beispiel eine L2-Norm). Auf jeden Fall beinhaltet der Fehler die projizierte 3D-Fehlerkomponente.
  • Das Verarbeiten setzt bei dem Entscheidungsvorgang 609 fort, bei dem eine Bestimmung erfolgt, ob das Merkmal das in Bezug auf die Vorgänge 603 bis 608 verarbeitet wird, das letzte erfasste Merkmal ist. Ist dem nicht so, setzt die Verarbeitung bei den Vorgängen 603 bis 608, wie oben erläutert, fort, bis jedes Merkmal verarbeitet ist. Vor allem wird eine neue Lage der virtuellen Kamera (C') für jedes Merkmal (und folglich für jede Landmarke), das verarbeitet wird, bestimmt. Ist dem so, setzt die Verarbeitung bei Vorgang 610 fort, bei dem die erzeugten Fehler (je einer für jede Landmarke) in einem Bündelausgleichungsprozess (oder einem anderen Prozess) verwendet werden, um eine neue Kartierung für die Umgebung derart bereitzustellen, dass die neue Kartierung auf die Fehler reagiert und mindestens eine einer neuen geschätzten Lage der physischen Kamera (C), oder eine oder mehrere neue Landmarkenpositionen (M) bereitstellt. Der Prozess 600 kann für jeden oder einige neue Rahmen, die für die Umgebung empfangen werden, wie hierin erläutert, wiederholt werden. Außerdem kann die neue Kartierung weiter unter Verwenden von Techniken gemäß dem Stand der Technik verfeinert, analysiert oder sogar verworfen werden.
  • Die hierin erläuterten Techniken stellen ein verbessertes Fehlertiefenglied (wie zum Beispiel in Gleichung (5) bereitgestellt) bereit, das eine hohe Korrelation in Bezug auf die Tiefenfehlerkomponente des 3D-Fehler zwischen einer geschätzten Merkmalpunktposition (D) und einer geschätzten Landmarkenposition (M) in einem umfassenden Bereich von Geometrien aufweist, indem adaptiv eine Lage einer virtuellen Kamera (C') lokalisiert und ein virtueller 3D-Fehler (D'M) auf die Bildebene, die der Lage der virtuellen Kamera (C') entspricht, projiziert wird. Solche Techniken können dem Lokalisieren einer virtuellen Kamera an einem feststehenden Ort in Bezug auf eine geschätzte Lage einer physischen Kamera gegenübergestellt werden, die Versagensfälle aufweisen, die die Tiefenfehlerkomponente unter Umständen nicht beibehalten, bei welchen die geschätzte Merkmalpunktposition mit der geschätzten Landmarkenposition und der feststehenden Lage der virtuellen Kamera und ähnlichen Geometrien kolinear ist.
  • Die offenbarten Techniken koppeln den axialen Tiefenfehler von dem geometrischen 3D-Fehler durch Projizieren eines neuen Fehlervektors ab. Unter Bezugnahme auf die modifizierte geschätzte Merkmalpunktposition 224 (D') wird durch Rückwärtsprojizieren die Tiefe (d) der geschätzten Merkmalpunktposition 221 (D) entlang der Richtung des Vektors von der geschätzten Lage der physischen Kamera 215 (C) bestimmt (zum Beispiel eine ursprüngliche Kamera Position zu der geschätzten Landmarkenposition 222 (M) (zum Beispiel ein Kartenpunkt). Der virtuelle Fehler, 3D-Fehler 234 (D'), wird auf die virtuelle Bildebene 213 der virtuellen Kamera 202 projiziert. Dadurch wird die Fehlerkomponente entlang der Tiefenachse 218 projiziert. Ein adaptiver Ort der virtuellen Kamera 202 (Lage der virtuellen Kamera 216) wird dynamisch gemäß dem 3D-Fehler 234 angepasst. Dabei wird sichergestellt, dass die Lage der virtuellen Kamera 216 (zum Beispiel die Position der virtuellen Kamera 202) adaptiv per Landmarke 223 parallel zu der Bildebene 211 (zum Beispiel sowohl in die x- als auch in die y-Richtung) bei einer konstanten Grundliniendistanz 232 (b) von der geschätzten Lage der physischen Kamera 215 eingestellt wird. Die Lage der virtuellen Kamera 216 (zum Beispiel die Position der virtuellen Kamera 202) wird durch die Projektion des Vektors 237 (DD') auf die virtuelle Bildebene 213 (zum Beispiel eine Kameraebene) bestimmt, wodurch die Richtung bestimmt wird, in die die virtuelle Kamera 202 in der Distanz 232 von der geschätzten Lage der physischen Kamera 215 bewegt werden muss. Die adaptive virtuelle Kamera 202 schätzt virtuelle Fehlerkomponenten sowohl in die x- als auch die y-Richtung, da die virtuelle Kamera 202 x- als auch die y-Richtung parallel zu der Bildebene 211 (zum Beispiel einer Kameraebene) bewegt werden kann. Dadurch wird verbesserte gleichzeitige Positionsbestimmung und Kartierung bereitgestellt. Solche Verbesserungen können bereitgestellt werden, indem ein Fehler (zum Beispiel wie in Gleichung (5) bereitgestellt) bereitgestellt wird, der stark mit dem z-genormten Tiefenfehler korreliert ist und gegenseitig Projektionsfehler ausschließt, indem eine Garantie bereit gestellt wird, dass ein 3D-Tiefenfehler ungleich null in einer Fehlerprojektion ungleich null resultiert, indem Verzerrung des Fehlers der virtuellen Kamera zu einem besonderen Fehlervektor eliminiert und ein Optimierungsprozess bereitgestellt wird, der weitgehend zu dem Distanzversatz der virtuellen Kamera invariant ist.
  • 7 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 700 zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung einer Umgebung veranschaulicht, die in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet ist. Der Prozess 700 kann einen oder mehrere Vorgänge 701 bis 705, wie in 7 veranschaulicht, beinhalten. Der Prozess 700 kann mindestens einen Teil eines gleichzeitigen Positionsbestimmungs- und Kartierungsprozesses (SLAM (-Prozesses) bilden. Anhand eines nicht einschränkenden Beispiels kann der Prozess 700 mindestens einen Teil eines SLAM-Prozesses, der von dem System 100, wie hierin erläutert, ausgeführt wird, bilden. Außerdem wird der Prozess 700 hierin unter Bezugnahme auf das System 800 der 8 beschrieben.
  • 8 ist ein veranschaulichendes Ablaufdiagramm eines beispielhaften Systems 800 zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung einer Umgebung, die in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet ist. Wie in 800 gezeigt, kann das System 800 einen Zentralprozessor 801, einen Bildprozessor 802 und einen Speicher 803 beinhalten. Wie gezeigt, kann der Zentralprozessor 801 ein Lageinitiierungsmodul 101, ein Lageschätzungsmodul 102, ein Lagetreuemodul 103, ein Verfeinerungsabschlussmodul 104, ein Entsprechungsverfeinerungsmodul 105 und ein Sprungrahmenmodul 106 beinhalten. Solche Bauelemente oder Module können umgesetzt werden, um Vorgänge, wie hierin erläutert, auszuführen.
  • Der Speicher 803 kann Rahmen, Umgebungskartierungsdaten, physische Kameralageschätzungsdaten, virtuelle Kameralagedaten, Kameraparameter, Landmarkenpositions- und Projektionsdaten, Merkmalpositions- und Projektionsdaten, geänderte Merkmalpositions- und Projektionsdaten und beliebige andere Daten, die hierin erläutert sind, speichern. Wie gezeigt, werden bei einigen Beispielen das Lageinitiierungsmodul 101, das Lageschätzungsmodul 102, das Lagetreuemodul 103, das Verfeinerungsabschlussmodul 104, das Entsprechungsverfeinerungsmodul 105, das Sprungrahmenmodul 106 und das Bündelanpassungsmodul 610 (zum Umsetzen von Vorgang 610, wie oben erläutert) über den Zentralprozessor 801 umgesetzt. Bei anderen Beispielen werden ein oder mehrere Abschnitte des Lageinitiierungsmoduls 101, des Lageschätzungsmoduls 102, des Lagetreuemoduls 103, des Verfeinerungsabschlussmoduls 104, des Entsprechungsverfeinerungsmoduls 105, des Sprungrahmenmoduls 106, und des Bündelanpassungsmoduls 610 über den Bildprozessor 801, einen Videoprozessor, einen Grafikprozessor oder dergleichen umgesetzt. Bei noch anderen Beispielen werden ein oder mehrere Abschnitte des Lageinitiierungsmoduls 101, des Lageschätzungsmoduls 102, des Lagetreuemoduls 103, des Verfeinerungsabschlussmoduls 104, des Entsprechungsverfeinerungsmoduls 105, des Sprungrahmenmoduls 106, und des Bündelanpassungsmoduls 610 über einen Bild- oder Videoverarbeitungspipeline oder -einheit umgesetzt.
  • Der Bildprozessor 802 kann jede Anzahl und jeden Typ von Grafik-, Bild- oder Videoverarbeitungseinheiten, die die Vorgänge, wie sie hierin erläutert sind, bereitstellen können, beinhalten. Bei einigen Beispielen kann der Bildprozessor 802 ein Bildsignalprozessor sein. Solche Vorgänge können über Software oder Hardware oder eine Kombination davon umgesetzt werden. Der Bildprozessor 802 kann zum Beispiel Schaltungen beinhalten, die zum Manipulieren von Bilddaten oder Videodaten, die aus dem Speicher 803 erhalten werden, bestimmt sind. Der Zentralprozessor 801 kann jede Anzahl und jeden Typ von Verarbeitungseinheiten oder - modulen beinhalten, die Steuerung und andere Funktionen höheren Niveaus für das System 800 bereitstellen und/oder Vorgänge, wie hierin erläutert, bereitstellen. Der Speicher 803 kann jeder Typ von Speicher sein, wie flüchtiger Speicher (zum Beispiel Static Random Access Memory - SRAM), Dynamic Random Access Memory - DRAM) usw.) oder nichtflüchtige Speicher (zum Beispiel Flashspeicher usw.) sein und so fort. Bei einem nicht einschränkenden Beispiel kann der Speicher 803 durch Cache-Speicher umgesetzt werden.
  • Bei einer Ausführungsform werden ein oder mehrere Abschnitte des Lageinitiierungsmoduls 101, des Lageschätzungsmoduls 102, des Lagetreuemoduls 103, des Verfeinerungsabschlussmoduls 104, des Entsprechungsverfeinerungsmoduls 105, des Sprungrahmenmoduls 106 und des Bündelanpassungsmoduls 610 über eine Ausführungseinheit (Execution Unit - EU) des Bildprozessors 802 umgesetzt. Die EU kann zum Beispiel programmierbare Logik oder Schaltungen wie einen Logikkern oder Logikkerne beinhalten, der/die ein umfangreiches Spektrum an programmierbaren Logikfunktionen bereitstellen kann/können. Bei einer Ausführungsform werden ein oder mehrere Abschnitte des Lageinitiierungsmoduls 101, des Lageschätzungsmoduls 102, des Lagetreuemoduls 103, des Verfeinerungsabschlussmoduls 104, des Entsprechungsverfeinerungsmoduls 105, des Sprungrahmenmoduls 106 und des Bündelanpassungsmoduls 610 über dedizierte Hardware, wie Schaltungen mit feststehender Funktion oder dergleichen umgesetzt. Schaltungen mit feststehender Funktion können dedizierte Logik oder Schaltungen beinhalten und können einen Satz von Eingangspunkten mit feststehender Funktion bereitstellen, die zu der dedizierten Logik für einen feststehenden Zweck oder eine feststehende Funktion abbilden. Bei einigen Ausführungsformen werden ein oder mehrere Abschnitte des Lageinitiierungsmoduls 101, des Lageschätzungsmoduls 102, des Lagetreuemoduls 103, des Verfeinerungsabschlussmoduls 104, des Entsprechungsverfeinerungsmoduls 105, des Sprungrahmenmoduls 106 und des Bündelanpassungsmoduls 610 über eine anwendungsspezifische integrierte Schaltung (Application-Specific Integrated Circuit - ASIC)) umgesetzt. Die ASIC kann benutzerdefinierte integrierte Schaltungen beinhalten, um die hierin besprochenen Vorgänge umzusetzen.
  • Unter Rückkehr zu der Erläuterung der 7, beginnt der Prozess 700 bei Vorgang 701, bei dem eine geschätzte Lage einer physischen Kamera für eine physische Kamera innerhalb einer Umgebung, eine geschätzte Merkmalpunktposition innerhalb der Umgebung und eine geschätzte Landmarkenposition für eine Landmarke innerhalb der Umgebung empfangen oder derart erzeugt werden, dass die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition beide der Landmarke entsprechen. Die geschätzte Lage der physischen Kamera und die geschätzte Landmarkenposition können zum Beispiel aus einer vorhergehenden Iteration des Aktualisierens einer Kartierung der Umgebung stammen, und die geschätzte Merkmalpunktposition kann eine Rückwärtsausbreitung aus einem erfassten Merkmalpunkt sein. Bei einigen Ausführungsformen weisen die geschätzte Lage der physischen Kamera, die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition jeweils eine 3D-Position innerhalb eines 3D-Koordinatensystems, das innerhalb der Umgebung definiert ist, auf. Bei einigen Ausführungsformen ist die geschätzte Merkmalpunktposition eine Position, die von einem erfassten Merkmalpunkt innerhalb eines Bilds, das von der physischen Kamera aufgenommen wird, rückwärts projiziert wird.
  • Das Verarbeiten setzt bei Vorgang 702 fort, bei dem basierend auf der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition eine Lage einer virtuellen Kamera innerhalb der Umgebung derart bestimmt wird, dass die Lage der virtuellen Kamera sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera versetzt ist. Bei einigen Ausführungsformen beinhaltet das Bestimmen der Lage der virtuellen Kamera das Bestimmen einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition derart, dass die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt, und das Erzeugen der Lage der virtuellen Kamera an einer Position von der geschätzten Lage der physischen Kamera, die mit einer Projektion eines Vektors von der geschätzten Merkmalpunktposition zu der geänderten geschätzten Merkmalpunktposition zu der Bildebene und in einer vorbestimmten Distanz von der Lage der physischen Kamera ausgerichtet ist. Bei einigen Ausführungsformen ist die vorbestimmte Distanz eine Distanz zwischen der physischen Kamera und einer zweiten physischen Kamera derart, dass die geschätzte Merkmalpunktposition auf stereoskopischen Techniken unter Verwenden von Bildern basiert, die unter Verwenden der physischen Kamera und der zweiten physischen Kamera erlangt werden.
  • Bei einigen Ausführungsformen beinhaltet das Bestimmen der Lage der virtuellen Kamera das Bestimmen einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition derart, dass die modifizierte geschätzte Merkmalpunktposition innerhalb eines Raums liegt, der entlang einer Tiefenachse zentriert ist, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition erstreckt und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition derart zentriert ist, dass der Raum keine Oberfläche aufweist, die größer ist als 0,1 cm von der Mitte, und Erzeugen der Lage der virtuellen Kamera an einer Position von der Lage der physischen Kamera, die mit einer Projektion von der geschätzten Merkmalpunktposition zu der modifizierten geschätzten Merkmalpunkt zu der Bildebene und in einer vorbestimmten Distanz von der Lage der physischen Kamera ausgerichtet ist.
  • Das Verarbeiten setzt bei Vorgang 703 fort, bei dem ein projizierten Tiefenfehler, der einem 3D-Fehler zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition auf einer Bildebene entspricht, die der Lage der virtuellen Kamera entspricht, bestimmt wird. Der projizierten Tiefenfehler kann unter Verwenden jeder zweckdienlichen Technik oder Techniken projiziert werden. Bei einigen Ausführungsformen beinhaltet das Bestimmen des projizierten Tiefenfehlers das Projizieren einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition zu einem ersten projizierten Punkt auf der Bildebene, das Projizieren der geschätzten Landmarkenposition zu einem zweiten projizierten Punkt auf der Bildebene und das Differenzieren des ersten und des zweiten projizierten Punktes. Bei einigen Ausführungsformen liegt die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt.
  • Das Verarbeiten setzt bei Vorgang 704 fort, bei dem ein Fehler, der der Landmarke entspricht derart erzeugt wird, dass der Fehler den projizierten Tiefenfehler beinhaltet. Der Fehler kann jedes zweckdienliche Format aufweisen und kann den projizierten Tiefenfehler zum Beispiel als ein oder mehrere Glieder davon beinhalten. Bei einigen Ausführungsformen beinhaltet der Fehler ein erstes Glied, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, und ein zweites Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht. Bei einigen Ausführungsformen beinhaltet der Fehler ein drittes Glied, das einem horizontalen Fehler zwischen einer Projektion der geschätzten Merkmalpunktposition auf einer Bildebene der physischen Kamera und einer Projektion der geschätzten Landmarkenposition auf der Bildebene der physischen Kamera entspricht, und ein viertes Glied, das einem vertikalen Fehler zwischen der Projektion und der geschätzten Merkmalpunktposition auf der Kameraebene der physischen Kamera und der Projektion der geschätzten Landmarkenposition auf der Kameraebene der physischen Kamera entspricht. Bei einigen Ausführungsformen beinhaltet der Fehler eine Norm einer horizontalen projizierten Tiefenfehlerkomponente der projizierten Tiefenfehlerkomponente und einer vertikalen projizierten Tiefenfehlerkomponente der projizierten Tiefenfehlerkomponente.
  • Das Verarbeiten setzt bei Vorgang 705 fort, bei dem mindestens eine einer neuen geschätzten Lage der physischen Kamera und einer neuen geschätzten Landmarkenposition unter Verwenden des Fehlers, der der Landmarke entspricht. Die neue geschätzte Position der physischen Kamera oder die neue geschätzte Landmarkenposition kann unter Verwenden jeder zweckdienlichen Technik oder Techniken bestimmt werden. Bei einigen Ausführungsformen beinhaltet das Bestimmen der neuen geschätzten Lage der physischen Kamera oder der neuen geschätzten Landmarkenposition das Bestimmen der neuen Lage der geschätzten physischen Kamera oder der neuen geschätzten Landmarkenposition oder beides basierend auf einer Bündelanpassung unter Verwenden des Fehlers, der der Landmarke entspricht.
  • Diverse Bauelemente der Systeme, die hierin beschrieben sind, können in Software, Firmware und/oder Hardware und/oder einer beliebigen Kombination davon umgesetzt werden. Diverse Bauelemente der Vorrichtung oder Systeme, die hierin erläutert sind, können zum Beispiel zumindest teilweise durch Hardware eines Computing-System-on-a-Chip (SoC) bereitgestellt werden, wie man es in einer Multifunktionsvorrichtung oder einem Computing-System findet, wie zum Beispiel in einem Laptopcomputer einem Tablet-Computer oder einem Smartphone. Der Fachmann erkennt, dass Systeme, die hierin beschrieben sind, zusätzliche Bauelemente, die in den entsprechenden Figuren nicht abgebildet sind, beinhalten können. Die hierin erläuterten Systeme können zum Beispiel zusätzliche Bauelemente beinhalten, wie Bildvorverarbeitungsschaltungen, Speichersteuervorrichtungen oder dergleichen, die zur Klarheit nicht abgebildet wurden.
  • Während die Umsetzung der beispielhaften Prozesse, die hierin erläutert sind, das Durchführen aller gezeigten Vorgänge in der veranschaulichten Reihenfolge beinhalten kann, ist die vorliegende Offenbarung in dieser Hinsicht nicht beschränkt, und bei diversen Beispielen kann die Umsetzung der beispielhaften Prozesse hierin nur einen Teilsatz der gezeigten Vorgänge, Vorgänge die in einer unterschiedlichen Reihenfolge als der veranschaulichten ausgeführt werden oder zusätzliche Vorgänge beinhalten.
  • Zusätzlich kann jeder des einen oder der mehreren Vorgänge, die hierin erläutert sind, als Reaktion auf Anweisungen, die von einem oder mehreren Computerprogrammprodukten bereitgestellt werden, durchgeführt werden. Solche Programmprodukte können signaltragende Medien beinhalten, die Anweisungen bereitstellen, die, wenn sie zum Beispiel von einem Prozessor ausgeführt werden, die hierin beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in jeder Form eines oder mehrerer maschinenlesbarer Medien bereitgestellt werden. Ein Prozessor, der zum Beispiel eine oder mehrere Grafikverarbeitungseinheiten oder Prozessorkerne beinhaltet, kann daher einen oder mehrere der Blöcke der beispielhaften Prozesse hierin als Reaktion auf Programmcode und/oder Anweisungen oder Anweisungssätze, die von einem oder mehreren maschinenlesbaren Medien zu dem Prozessor vermittelt werden, durchführen. Im Allgemeinen kann ein maschinenlesbares Medium Software in der Form von Programmcode und/oder Anweisungen oder Anweisungssätze vermitteln, die beliebige der Vorrichtungen und/oder Systeme, die hierin beschrieben sind, veranlassen, jeden Vorgang, der hierin erläutert ist, oder jedes andere Modul oder Bauelement, wie hierin erläutert, umzusetzen.
  • Wie bei jeder Umsetzung, die hierin beschrieben ist, verwendet, verweist der Begriff „Modul“ auf jede Kombination aus Softwarelogik, Firmwarelogik, Hardwarelogik und/oder Schaltungen, die dazu konfiguriert sind, die hierin beschriebene Funktionalität bereitzustellen. Die Software kann als ein Software-Package, Code und/oder Anweisungssatz oder Anweisungen verkörpert sein, und „Hardware“, wie in einer beliebigen hierin beschriebenen Umsetzung kann zum Beispiel einzeln oder in einer Kombination verdrahtete Schaltungen, programmierbare Schaltungen, Zustandsmaschinenschaltungen, Schaltungen mit feststehender Funktion, Ausführungseinheitsschaltungen und/oder Firmware, die Anweisungen speichert, die von programmierbaren Schaltungen ausgeführt werden, beinhalten. Die Module können gemeinsam oder individuell als Schaltungen verkörpert werden, die Teil eines größeren Systems bilden, zum Beispiel einer integrierten Schaltung (IC), eines System-on-a-Chip (SoC) und so fort.
  • 9 ist ein veranschaulichendes Diagramm eines beispielhaften Systems 900, das in Übereinstimmung mit mindestens einigen Ausführungsformen der vorliegenden Offenbarung eingerichtet ist. Bei diversen Ausführungsformen kann das System 900 ein Computing-System sein, obwohl das System 900 nicht auf diesen Kontext beschränkt ist. Das System 900 kann zum Beispiel in einen Personal Computer (PC), Laptopcomputer, Ultra-Laptop-Computer, Tablet-Computer, Phablet, Touchpad, tragbaren Computer, handgehaltenen Computer, Taschencomputer, Personal Digital Assistant (PDA), ein Mobiltelefon, eine Kombination Mobiltelefon/PDA, ein Fernsehgerät, ein intelligentes Gerät (zum Beispiel Smartphone oder Smart Tablet oder Smart Television), ein mobiles Internetgerät (MID), Messaginggerät, Datenkommunikationsgerät, Peripheriegerät, eine Gaming-Konsole, anziehbaren Vorrichtung, Anzeigevorrichtung, Alles-in-Eins-Vorrichtung, Zwei-in-Eins-Vorrichtung und so fort eingebaut sein.
  • Bei Ausführungsformen weist das System 900 eine Plattform 902, die mit einem Display 920 verbunden ist, auf. Die Plattform 902 kann Inhalt von einem Inhaltsgerät, wie einem Inhaltsdienstgerät/Inhaltsdienstgeräten 930 oder Inhaltsliefergerät/Inhaltsliefergeräten 940 oder ähnlichen Inhaltsquellen, wie einer Kamera oder einem Kameramodul oder dergleichen empfangen. Ein Navigationscontroller 950, der ein oder mehrere Navigationsfeatures aufweist, kann verwendet werden, um zum Beispiel mit der Plattform 902 und/oder dem Display 920 zu interagieren. Jedes dieser Bauelemente ist unten ausführlicher beschrieben.
  • Bei diversen Umsetzungen kann die Plattform 902 eine beliebige Kombination aus einem Chipsatz 905, Prozessor 910, Speicher 912, einer Antenne 913, einer Speicherung 914, Grafiksubsystemen 915, Anwendungen 916 und/oder Funk-Sender-Empfänger 918 beinhalten. Der Chipsatz 905 kann Interkommunikation zwischen dem Prozessor 910, dem Speicher 912, der Speicherung 914, dem Grafiksubsystem 915, Anwendungen 916 und/oder Funk 918 bereitstellen. Der Chipsatz 905 kann zum Beispiel einen Speicheradapter (nicht abgebildet) beinhalten, der in der Lage ist, Kommunikationsaustausch mit dem Speicher 914 bereitzustellen.
  • Der Prozessor 910 kann als ein Complex Instruction Set Computer- (CISC-Prozessor) oder Reduced Instruction Set Computer-Prozessor (RISC-Prozessor), Prozessor kompatibel mit einem x86-Anweisungssatz, Multikern- oder jedem anderen Mikroprozessor oder jeder Zentraleinheit (CPU) umgesetzt werden. Bei diversen Umsetzungen kann der Prozessor 910 ein/mehrere Dual-Core-Prozessor(en), mobile(r) Dual-Core-Prozessor(en) und so fort sein.
  • Der Speicher 912 kann als eine flüchtige Speichervorrichtung umgesetzt werden wie, ohne darauf beschränkt zu sein, als ein Direktzugriffsspeicher (Random Access Memory - RAM), dynamischer Direktzugriffsspeicher (Dynamic Random Access Memory - DRAM) oder statischer Direktzugriffsspeicher (Static RAM - SRAM).
  • Die Speicherung 914 kann als eine nichtflüchtige Speichervorrichtung umgesetzt werden, wie zum Beispiel aber ohne Einschränkung darauf, ein magnetisches Festplattenlaufwerk, optisches Laufwerk, Bandlaufwerk, eine interne Speichervorrichtung, eine angeschlossene Speichervorrichtung, ein Flashspeicher, ein batteriegestützter SDRAM (synchroner DRAM) und/oder eine Speichervorrichtung mit Netzwerkzugriff. Bei diversen Umsetzungen kann die Speicherung 914 Technologie zur Steigerung der Speicherleistung, verbesserten Schutz für wertvolle digitale Medien aufweisen, wenn zum Beispiel mehrere Festplattenlaufwerke enthalten sind.
  • Das Grafiksubsystem 915 kann das Verarbeiten von Bildern, wie zum Beispiel Standbildern oder Video, zur Anzeige ausführen. Das Grafiksubsystem 915 kann eine Grafikverwaltungseinheit (Graphics Processing Unit - GPU) oder eine visuelle Verarbeitungseinheit (Visual Processing Unit - VPU) sein. Bei einigen Beispielen kann das Grafiksubsystem 915 das Rendering eines gescannten Bilds, wie hierin erläutert, ausführen. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafiksubsystem 915 und die Anzeige 920 zur Kommunikation zu verbinden. Die Schnittstelle kann zum Beispiel eine Hochdefinitions-Multimediaschnittstelle, ein DisplayPort, drahtlose HDMI- und/oder drahtlose HD-fähige Technik sein. Das Grafiksubsystem 915 kann in dem Prozessor 910 oder dem Chipsatz 905 integriert sein. Bei einigen Umsetzungen kann das Grafiksubsystem 950 eine eigenständige Vorrichtung sein, die kommunikationsfähig mit dem Chipsatz 905 gekoppelt ist.
  • Die Bildverarbeitungstechniken, die hierin beschrieben sind, können in diversen Hardwarearchitekturen umgesetzt werden. Bildverarbeitungsfunktionalität kann zum Beispiel innerhalb eines Chipsatzes integriert sein. Alternativ kann ein getrennter Grafik- und/oder Bildprozessor und/oder eine anwendungsspezifische integrierte Schaltung verwendet werden. Als noch eine andere Umsetzung kann die Bildverarbeitung durch einen Allzweckprozessor, einschließlich eines Multi-Core-Prozessors, bereitgestellt werden. Bei weiteren Ausführungsformen können die Funktionen in einer Verbraucherelektronikvorrichtung umgesetzt werden.
  • Der Funk-Sender-Empfänger 918 kann ein oder mehrere Funk-Sender-Empfänger beinhalten, die fähig sind, Signale unter Verwenden diverser zweckdienlicher drahtloser Kommunikationstechniken zu übertragen und zu empfangen. Solche Techniken können Kommunikationen über ein oder mehrere drahtlose Netzwerke involvieren. Beispielhafte drahtlose Netzwerke umfassen (ohne auf sie beschränkt zu sein) drahtlose lokale Netzwerke (WLANs), drahtlose persönliche Netzwerke (WPANs), drahtlose regionale Netzwerke (WMANs), zellulare Netzwerke und Satellitennetzwerke. Bei der Kommunikation über solche Netzwerke, kann der Funk-Sender-Empfänger 918 in Übereinstimmung mit einem oder mehreren geltenden Standards in einer beliebigen Version betrieben werden.
  • Bei diversen Umsetzungen kann die Anzeige 920 eine(n) Flachbildschirm oder -anzeige beinhalten. Die Anzeige 920 kann zum Beispiel einen Computerbildschirm, eine Touchscreen-Anzeige, einen Videomonitor, eine fernsehgerätähnliche Vorrichtung und/oder ein Fernsehgerät beinhalten. Die Anzeige 920 kann digital und/oder analog sein. Bei diversen Umsetzungen kann die Anzeige 920 eine holographische Anzeige sein. Die Anzeige 920 kann auch eine durchsichtige Oberfläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können diverse Formen von Informationen, Bildern und/oder Objekten vermitteln. Solche Projektionen können zum Beispiel Visuelle Überlagerung für eine Anwendung der mobilen erweiterten Realität (Mobile Augmented Reality - MAR) sein. Unter der Steuerung einer oder mehrerer Softwareanwendungen 916, kann die Plattform 902 eine Benutzeroberfläche 922 auf der Anzeige 920 anzeigen.
  • Bei Ausführungsformen kann ein/können Inhaltsdienstgerät(e) 930 von einem nationalen, internationalen und/oder unabhängigen Dienst gehostet werden und daher für die Plattform 902 zum Beispiel über das Internet zugänglich sein. Das/die Inhaltsdienstgeräte 930 können mit der Plattform 902 und/oder der Anzeige 920 gekoppelt sein. Die Plattform 902 und/oder das/die Inhaltsdienstgeräte 930 können mit einem Netzwerk 960 zur Kommunikation (zum Beispiel Senden und/oder Empfangen) von Medieninformationen zu und von dem Netzwerk 960 gekoppelt sein. Das/die Inhaltsliefergeräte 940 können auch mit der Plattform 902 und/oder der Anzeige 920 verbunden sein.
  • Bei Ausführungsformen können das/die Inhaltsdienstgerät(e) 930 eine Kabelfernsehbox, einen Personal Computer, ein Netzwerk, ein Telefon, internetfähige Vorrichtungen oder Geräte beinhalten, die fähig sind, digitale Informationen und/oder Inhalt zu liefern, und jede andere ähnliche Vorrichtung, die fähig ist, in eine oder zwei Richtungen Inhalt zwischen Inhaltsanbietern und der Plattform 902 und/oder dem Display 920 über das Netzwerk 960 oder direkt zu übermitteln. Es ist klar, dass der Inhalt in eine Richtung und/oder bidirektional zu und von einem der Bauelemente in dem System 900 und einem Inhaltsanbieter über das Netzwerk 960 kommuniziert werden kann. Beispiele für Inhalt können Medieninformationen umfassen, wie zum Beispiel Video, Musik, medizinische und Spielinformationen usw. beinhalten.
  • Das/die Inhaltsdienstgeräte 930 können Inhalt empfangen, wie zum Beispiel Kabelfernsehprogramm, einschließlich Medieninformationen, digitale Informationen und/oder anderen Inhalt. Beispiele für Inhaltsanbieter können irgendwelche Kabel- oder Satellitenfernseh- oder Rundfunk- oder Internetinhaltsanbieter beinhalten. Die bereitgestellten Beispiele sind nicht dazu bestimmt, Umsetzungen gemäß der vorliegenden Offenbarung auf irgendeine Art einzuschränken.
  • Bei diversen Ausführungsformen kann die Plattform 902 Steuersignale von der Navigationssteuervorrichtung 950, die ein oder mehrere Navigationsfeatures aufweist, empfangen. Die Navigationsfeatures der Navigationssteuervorrichtung 950 können verwendet werden, um zum Beispiel mit einer Benutzeroberfläche 922 zu interagieren. Bei diversen Ausführungsformen kann die Navigationssteuervorrichtung 950 ein Zeigegerät sein, das ein Computerhardwarebauteil (insbesondere eine Benutzerschnittstelle) sein kann, das es einem Benutzer erlaubt, räumliche (zum Beispiel kontinuierliche und multidimensionale) Daten in einen Computer einzugeben. Viele solche Systeme, wie grafische Benutzeroberflächen (GUI) und Fernsehgeräte und Monitore erlauben es dem Benutzer, Daten zu steuern und zu einem Computer oder einem Fernsehgerät unter Einsatz physischer Gesten bereitzustellen.
  • Bewegungen der Navigationsfeatures der Navigationssteuervorrichtung 950 können auf einer Anzeige (zum Beispiel der Anzeige 920) durch Bewegungen eines Pointers, Cursors, Fokusrings oder anderer visueller Anzeiger, die auf dem Display angezeigt werden, wiedergegeben werden. Unter der Kontrolle von Softwareanwendungen 916, können zum Beispiel die Navigationsfeatures, die sich auf Navigationssteuervorrichtung 950 befinden, zu virtuellen Navigationsfeatures, die auf der Benutzeroberfläche 922 angezeigt werden, abgebildet werden. Bei diversen Ausführungsformen kann die Navigationssteuervorrichtung 950 nicht ein getrenntes Bauteil sein, sondern in die Plattform 902 und/oder die Anzeige 920 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf solche Elemente oder auf den hier gezeigten oder beschriebenen Kontext beschränkt.
  • Bei diversen Ausführungsformen können Treiber (nicht gezeigt) Technologie beinhalten, um es Benutzern zu ermöglichen, die Plattform 902 zum Beispiel wie ein Fernsehgerät mit der Berührung eines Knopfs nach dem ursprünglichen Booten, falls es aktiviert ist, sofort ein- und auszuschalten. Programmlogik kann es der Plattform 902 erlauben, Inhalt zu Medienadaptern oder anderen Inhaltsdienstgerät(en) 930 oder Inhaltsliefergerät(en) 940 zu streamen, sogar wenn die Plattform „ausgeschaltet ist“. Zusätzlich kann der Chipsatz 905 zum Beispiel Hardware und/oder Softwareunterstützung für 5.1 Surroundsound-Audio und/oder Hochdefinition-9.1-Surroundsound-Audio beinhalten. Die Treiber können einen Grafiktreiber für integrierte Grafikplattformen beinhalten. Bei diversen Ausführungsformen kann der Grafiktreiber eine Express-Grafikkarte für einen Peripheriegeräteanschluss (Peripheral Component Interconnect - PCI) umfassen.
  • Bei diversen Ausführungsformen können ein oder mehrere der Bauteile, die in dem System 900 gezeigt sind, integriert werden. Die Plattform 902 und das/die Inhaltsdienstgeräte 930 können zum Beispiel integriert sein, oder die Plattform 902 und das/die Inhaltsliefergeräte 940 können zum Beispiel integriert sein, oder die Plattform 902, das/die Inhaltsdienstgeräte 930 Inhaltsliefergeräte 940 können integriert sein. Bei diversen Ausführungsformen können die Plattform 902 und die Anzeige 920 eine integrierte Einheit sein. Die Anzeige 920 und das/die Inhaltsdienstgeräte 930 können integriert sein, oder die Anzeige 920 und das/die Inhaltliefergeräte 940 können integriert sein. Diese Beispiele bezwecken nicht, die vorliegende Offenbarung einzuschränken.
  • Bei diversen Ausführungsformen kann das System 900 als ein drahtloses System, ein verdrahtetes System oder eine Kombination beider umgesetzt sein. Wenn das System 900 als ein drahtloses System umgesetzt wird, kann es Bauteile und Schnittstellen aufweisen, die zur Kommunikation über einen gemeinsamen drahtlosen Träger geeignet sein, wie zum Beispiel eine oder mehrere Antennen, Sender, Empfänger, Sender-Empfänger, Verstärker, Filter, Steuerlogik usw. Ein Beispiel für einen gemeinsamen drahtlosen Träger kann Teile eines drahtlosen Spektrums umfassen, wie zum Beispiel ein HF-Spektrum usw. Wenn das System 900 als ein verdrahtetes System umgesetzt ist, kann es Bauteile und Schnittstellen aufweisen, die zur Kommunikation über verdrahtete Kommunikationsmedien geeignet sind, wie zum Beispiel Eingangs-/Ausgangs-Adapter (E/A-Adapter), physische Steckverbinder zum Verbinden des E/A-Adapters mit einem entsprechenden verdrahteten Kommunikationsträger, eine Netzwerkschnittstellenkarte (NIC), ein Diskcontroller, ein Videocontroller, ein Audiocontroller und dergleichen. Beispiele verdrahteter Kommunikationsträger können einen Draht, Kabel, Metallleiter, eine Leiterplatte (PCB), eine Backplane, Switch Fabric, Halbleitermaterial, verdrillte Zweidrahtleitung, Koaxialkabel, Lichtleitfaser usw. umfassen.
  • Die Plattform 902 kann einen oder mehrere logische oder physische Kanäle zum Kommunizieren von Informationen aufbauen. Die Informationen können Medieninformationen und Steuerinformationen enthalten. Die Medieninformationen können irgendwelche Daten betreffen, die Inhalt, der für einen Benutzer bestimmt ist, darstellen. Beispiele für Inhalt können zum Beispiel Daten von einem Gespräch, einer Videokonferenz, Video-Streaming, elektronische Post („E-Mail“), Anrufbeantworternachricht, alphanumerische Symbole, Grafiken, Bild, Video, Text usw. beinhalten. Daten von einem Gespräch können zum Beispiel Sprachdaten, Pausen, Hintergrundrauschen, Hintergrundgeräusch, Töne usw. sein. Steuerinformationen können sich auf irgendwelche Daten, die Befehle, Anweisungen und Steuerwörter darstellen, die für ein automatisiertes System bestimmt sind, beziehen. Steuerinformationen können zum Beispiel verwendet werden, um Medieninformationen durch ein System zu routen oder einen Knoten anzuweisen, die Trägerinformationen auf eine vorbestimmte Art zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf solche Elemente beschränkt oder auf den hier gezeigten oder auf 9 beschriebenen Kontext beschränkt.
  • Wie oben beschrieben, kann das System 900 in verschiedentlich physischen Stilen oder Formfaktoren umgesetzt werden. 10 veranschaulicht eine beispielhafte Vorrichtung 1000 mit kleinem Formfaktor, ganz in Übereinstimmung mit mindestens einigen Umsetzungen der vorliegenden Offenbarung eingerichtet. Bei solchen Beispielen kann das System 900 über die Vorrichtung 1000 umgesetzt werden. Bei anderen Beispielen können andere Systeme, Bauteile oder Module, die hierin erläutert sind, oder Abschnitte davon, über die Vorrichtung 1000 umgesetzt werden. Bei diversen Ausführungsformen kann die Vorrichtung 1000 zum Beispiel als eine mobile Rechenvorrichtung, die Fähigkeiten zur drahtlosen Kommunikation aufweist, umgesetzt werden. Eine mobile Rechenvorrichtung kann eine Vorrichtung bezeichnen, die ein Verarbeitungssystem und eine mobile Leistungsquelle oder Leistungsversorgung aufweist, wie zum Beispiel eine oder mehrere Batterien.
  • Beispiele einer mobilen Rechenvorrichtung können einen Personal Computer (PC), Laptopcomputer, Ultra-Laptop-Computer, Tablet-Computer, Touchpad, tragbaren Computer, handgehaltenen Computer, Taschencomputer, Personal Digital Assistant (PDA), ein Mobiltelefon, eine Kombination Mobiltelefon/PDA, ein Fernsehgerät, ein intelligentes Gerät (zum Beispiel Smartphone, Smart Tablet oder Smart Mobile Television), ein mobiles Internetgerät (MID), Messaginggerät, Datenkommunikationsgerät, Kameras (zum Beispiel Pointand-Shoot-Kameras, Super-Zoom-Kameras, digitale Spiegelreflexkameras (Digital Single-Lens Reflex - DSLR-Kameras) und so fort beinhalten.
  • Beispiele für eine mobile Rechenvorrichtung können auch Computer beinhalten, die eingerichtet sind, um von einem Motorfahrzeug oder Roboter umgesetzt zu werden, oder um von einer Person getragen zu werden, wie zum Beispiel ein Handgelenkcomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelclipcomputer, Armbandcomputer, Schuhcomputer, Kleidungscomputer und andere anziehbare Computer. Bei diversen Ausführungsformen kann eine mobile Rechenvorrichtung zum Beispiel als ein Smartphone umgesetzt werden, das fähig ist, Computeranwendungen auszuführen, sowie als Sprachkommunikationen und/oder Datenkommunikationen. Obwohl solche Ausführungsformen beispielhaft mit einer mobilen Rechenvorrichtung beschrieben werden können, die als ein Smartphone umgesetzt ist, ist klar, dass andere Ausführungsformen unter Einsatz anderer drahtloser mobiler Rechenvorrichtungen ebenso umgesetzt werden können. Die Ausführungsformen sind in diesem Zusammenhang uneingeschränkt.
  • Wie in 10 gezeigt, kann die Vorrichtung 1000 ein Gehäuse mit einer Frontseite 1001 und einer Rückseite 1002 beinhalten. Die Vorrichtung 1000 beinhaltet eine Anzeige 1004, eine Eingangs-/Ausgangsvorrichtung (E/A-Vorrichtung) 1006, eine Farbkamera 1021, eine Farbkamera 1022 und eine integrierte Antenne 1008. Die Farbkamera 1021 und die Farbkamera 1022 können zum Beispiel Bilddaten (zum Beispiel linkes und rechtes Bild), wie hierin erläutert, eingeben. Die Vorrichtung 1000 kann auch Navigationsfeatures beinhalten 1012. Die E/A-Vorrichtung 1006 kann eine geeignete E/A-Vorrichtung zur Eingabe von Informationen in eine mobile Rechenvorrichtung aufweisen. Beispiele für die E/A-Vorrichtung 1006 können eine alphanumerische Tastatur, einen Zifferblock, ein Touchpad, Eingabetasten, Knöpfe, Schalter, Wippschalter, Mikrofone, Lautsprecher, Spracherkennungsvorrichtung und -software usw. umfassen. Die Informationen können in die Vorrichtung 1000 auch über ein Mikrofon (nicht gezeigt) eingegeben werden, oder können von einer Spracherkennungsvorrichtung digitalisiert werden. Wie gezeigt, kann die Vorrichtung 1000 Farbkameras 1021, 1022 und ein Blitzlicht 1010, das in die Rückseite 1002 (oder anderswo) der Vorrichtung 1010 integriert ist, beinhalten. Bei anderen Beispielen können die Farbkameras 1021, 1022 und das Blitzlicht 1010 in die Vorderseite 1001 der Vorrichtung 1000 integriert sein, oder es können sowohl ein Vorderseitenals auch ein Rückseitensatz von Kameras bereitgestellt werden. Die Farbkamera 1021, 1022 und ein Blitzlicht 1010 können Bauteile eines Kameramoduls sein, um Farbbilddaten zu ergeben, die in ein Bild oder Streaming-Video, das zu der Anzeige 1004 ausgegeben wird, und/oder fern von der Vorrichtung 1000 über die Antenne 1008 kommuniziert wird, zu verarbeiten.
  • Diverse Ausführungsformen können unter Einsatz von Hardwareelementen, Softwareelementen oder einer Kombination beider umgesetzt werden. Beispiele für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltelemente (zum Beispiel Transistoren, Widerstände, Kondensatoren, Induktoren und so fort), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare logische Geräte (PLD), digitale Signalprozessoren (DSP), feldprogrammierbare Gate-Array (FPGA), Logikgatter, Register, Halbleitervorrichtung, Chips, Mikrochips, Chipsätze usw. umfassen. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Hilfsprogramme, Unterprogramme, Funktionen, Verfahren, Vorgehensweisen, Softwareschnittstellen, Anwendungsprogrammeschnittstellen (API), Anweisungsätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination dieser umfassen. Das Bestimmen, ob eine Ausführungsform unter Einsatz von Hardwareelementen und/oder Softwareelementen umgesetzt wird, kann in Übereinstimmung mit irgendeiner Anzahl von Faktoren variieren, wie zum Beispiel eine gewünschte Rechengeschwindigkeit, Leistungsniveaus, Hitzetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Speicherressourcen, Datenbusgeschwindigkeiten oder andere Konzeptions- oder Leistungsauflagen.
  • Ein oder mehrere Aspekte mindestens einer Ausführungsform können durch repräsentative Anweisungen umgesetzt werden, die auf einem maschinenlesbaren Träger gespeichert sind, der diverse Logik innerhalb des Prozesses darstellt, die, wenn sie von einer Maschine gelesen wird, die Maschine veranlasst, Logik zu schaffen, um die hier beschriebenen Techniken umzusetzen. Solche Darstellungen, die als „IP Cores“ bekannt sind, können auf einem materiellen maschinenlesbaren Träger gespeichert und zu diversen Kunden oder Herstellungsanlagen geliefert werden, um in Fertigungsmaschinen geladen zu werden, die tatsächlich die Logik oder den Prozessor herstellen.
  • Während bestimmte Merkmale, die hierin dargelegt sind, unter Bezugnahme auf diverse Umsetzungen beschrieben wurden, bezweckt die Beschreibung nicht, in einem einschränkenden Sinn ausgelegt zu werden. Diverse Änderungen der Umsetzungen, die hierin beschrieben sind, sowie andere Umsetzungen, die für Fachleute offensichtlich sind, mit welchen die vorliegende Offenbarung zusammenhängt, gelten als innerhalb des Geistes und Schutzbereichs der vorliegenden Offenbarung liegend.
  • Bei einer oder mehreren ersten Ausführungsformen umfasst ein Verfahren zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung das Empfangen einer geschätzten Lage einer physischen Kamera für eine physische Kamera innerhalb einer Umgebung, eine geschätzte Merkmalpunktposition innerhalb der Umgebung, und eine geschätzte Landmarkenposition für eine Landmarke innerhalb der Umgebung, wobei die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition beide der Landmarke entsprechen, das Bestimmen basierend auf der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition, einer Lage einer virtuellen Kamera innerhalb der Umgebung, wobei die Lage der virtuellen Kamera sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera versetzt ist, das Bestimmen eines projizierten Tiefenfehlers, der einem 3D-Fehler entspricht, zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition auf einer Bildebene, die der Lage der virtuellen Kamera entspricht, das Erzeugen eines Fehlers, der der Landmarke entspricht, wobei der Fehler den projizierten Tiefenfehler umfasst, und das Bestimmen mindestens einer einer neuen geschätzten Lage der physischen Kamera oder einer geschätzten neuen Landmarkenposition unter Verwenden des Fehlers, der der Landmarke entspricht.
  • Bei einer oder mehreren zweiten Ausführungsformen umfasst das Bestimmen der Lage der virtuellen Kamera zusätzlich zu den ersten Ausführungsformen das Bestimmen einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt, und das Erzeugen der Lage der virtuellen Kamera an einer Position von der geschätzten Lage der physischen Kamera, die mit einer Projektion eines Vektors aus der gewünschten Merkmalpunktposition zu dem modifizierten geschätzten Merkmalpunkt zu der Bildebene und in einer vorbestimmten Entfernung von der Lage der physischen Kamera ausgerichtet ist.
  • Bei einer oder mehreren dritten Ausführungsformen umfasst die vorbestimmte Entfernung zusätzlich zu den ersten oder zweiten Ausführungsformen eine Distanz zwischen der physischen Kamera und einer zweiten physischen Kamera, wobei die geschätzte Merkmalpunktposition auf stereoskopischen Techniken und basiert, die Bilder verwenden, die unter Verwenden der physischen Kamera und der zweiten physischen Kamera erlangt werden.
  • Bei einer oder mehreren vierten Ausführungsformen umfasst das Verfahren zusätzlich zu einer der ersten bis dritten Ausführungsform das Bestimmen einer Vielzahl zweiter Lagen der virtuellen Kamera innerhalb der Umgebung, wobei jede der zweiten Lagen der virtuellen Kamera einer einer Vielzahl zweiter Landmarken innerhalb der Umgebung entspricht, das Erzeugen einer Vielzahl zweiter Fehler, die jeweils einer der zweiten Landmarken entsprechen und einen projizierten Tiefenfehler umfassen, der eine der zweiten Landmarken entspricht, und das Bestimmen neuer zweiter geschätzter Landmarkenpositionen für jede der zweiten Landmarken unter Verwenden des Fehlers und des zweiten Fehlers.
  • Bei einer oder mehreren fünften Ausführungsformen umfasst der projizierten Tiefenfehler zusätzlich zu einer der ersten bis vierten Ausführungsform das Projizieren einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition zu einem ersten projizierten Punkt auf der Bildebene, das Projizieren der ersten Landmarkenposition zu einem zweiten projizierten Punkt auf der Bildebene, und das Differenzieren des ersten und des zweiten projizierten Punktes.
  • Bei einer oder mehreren sechsten Ausführungsformen liegt zusätzlich zu einer der ersten bis fünften Ausführungsform die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt.
  • Bei einer oder mehreren siebten Ausführungsformen umfasst der Fehler zusätzlich zu einer der ersten bis sechsten Ausführungsform ein erstes Glied, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, und ein zweites Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente auf der Bildebene der virtuellen Kamera entspricht.
  • Bei einer oder mehreren achten Ausführungsformen umfasst der Fehler zusätzlich zu einer der ersten bis siebten Ausführungsform ein drittes Glied, das einem horizontalen Fehler zwischen einer Projektion der geschätzten Merkmalpunktposition auf einer Bildebene der physischen Kamera und einer Projektion der geschätzten Landmarkenposition auf der Bildebene der physischen Kamera entspricht, und ein viertes Glied, das einem vertikalen Fehler zwischen der Projektion der geschätzten Merkmalpunktposition auf der Kameraebene der physischen Kamera und der Projektion der geschätzten Landmarkenposition auf der Kameraebene der physischen Kamera entspricht.
  • Bei einer oder mehreren neunten Ausführungsformen umfasst der Fehler zusätzlich zu einer der ersten bis achten Ausführungsform eine Norm einer horizontalen projizierten Tiefenfehlerkomponente der projizierten Tiefenfehlerkomponente und einer vertikalen projizierten Tiefenfehlerkomponente der projizierten Tiefenfehlerkomponente.
  • Bei einer oder mehreren zehnten Ausführungsformen umfassen zusätzlich zu einer der ersten bis neunten Ausführungsform die geschätzte Lage der physischen Kamera, die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition jeweils eine 3D-Position innerhalb eines 3D-Koordinatensystems, das innerhalb der Umgebung definiert ist, und wobei die geschätzte Merkmalpunktposition eine Punktposition ist, die von einem erfassten Merkmalposition innerhalb eines Bilds, das von der physischen Kamera aufgenommen wird, rückwärts projiziert wird.
  • Bei einer oder mehreren elften Ausführungsformen beinhaltet eine Vorrichtung oder ein System einen Speicher und einen oder mehrere Prozessoren, um ein Verfahren nach einer der obigen Ausführungsformen auszuführen.
  • Bei einer oder mehreren zwölften Ausführungsformen beinhaltet mindestens ein nichtflüchtiges maschinenlesbares Medium eine Vielzahl von Anweisungen, die als Reaktion darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, die Computing-Vorrichtung veranlassen, ein Verfahren nach einer der obigen Ausführungsformen auszuführen.
  • Bei einer oder mehreren dreizehnten Ausführungsformen kann ein Gerät Mittel zum Ausführen eines Verfahrens nach einer der obigen Ausführungsformen beinhalten.
  • Man erkennt, dass die Ausführungsformen nicht auf die derart beschriebenen Ausführungsformen beschränkt sind, sondern mit Änderung und Abänderung ohne Abweichen von dem Schutzbereich der beigefügten Ansprüche umgesetzt werden können. Die obigen Ausführungsformen können zum Beispiel eine spezifische Kombination der Merkmale beinhalten. Die obigen Ausführungsformen sind in dieser Hinsicht jedoch nicht beschränkt, und bei diversen Umsetzungen können die obigen Ausführungsformen das Durchführen nur eines Teilsatzes solcher Merkmale, das Durchführen einer unterschiedlichen Reihenfolge solcher Merkmale, das Durchführen einer unterschiedlichen Kombination solcher Merkmale und/oder das Durchführen zusätzlicher Merkmale zu den explizit aufgelisteten Merkmalen beinhalten. Der Schutzbereich der Erfindung sollte folglich unter Bezugnahme auf die beigefügten Ansprüche gemeinsam mit dem vollen Geltungsbereich von Äquivalenten, auf die solche Ansprüche Anspruch haben, bestimmt werden.

Claims (25)

  1. System zur gleichzeitigen Positionsbestimmung und Kartierung, das umfasst: einen Speicher, der dazu konfiguriert ist, eine geschätzte Lage einer physischen Kamera für eine physische Kamera innerhalb einer Umgebung, eine geschätzte Merkmalpunktposition innerhalb der Umgebung und eine geschätzte Landmarkenposition für eine Landmarke innerhalb der Umgebung zu speichern, wobei die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition beide der Landmarke entsprechen; und einen Prozessor, der mit dem Speicher gekoppelt ist, wobei der Prozessor: basierend auf der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition eine Lage einer virtuellen Kamera innerhalb der Umgebung bestimmt, wobei die Lage der virtuellen Kamera sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera versetzt ist, einen projizierten Tiefenfehler, der einem 3D-Fehler zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition auf einer Bildebene entspricht, die der Lage der virtuellen Kamera entspricht, bestimmt; einen Fehler erzeugt, der der Landmarke entspricht, wobei der Fehler den projizierten Tiefenfehler umfasst; und mindestens eine einer neuen geschätzten Lage der physischen Kamera und einer neuen geschätzten Landmarkenposition unter Verwenden des Fehlers, der der Landmarke entspricht, bestimmt.
  2. System nach Anspruch 1, wobei der Prozessor zum Bestimmen der Lage der virtuellen Kamera umfasst, dass der Prozessor: eine modifizierte geschätzte Merkmalpunktposition für die geschätzte Merkmalpunktposition bestimmt, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt; und die Lage der virtuellen Kamera an einer Position von der geschätzten Lage der physischen Kamera erzeugt, die mit der Projektion eines Vektors von der geschätzten Merkmalpunktposition zu dem modifizierten geschätzten Merkmalpunkt zu der Bildebene und in einer vorbestimmten Distanz von der Lage der physischen Kamera ausgerichtet ist.
  3. System nach Anspruch 2, wobei die vorbestimmte Distanz eine Distanz zwischen der physischen Kamera und einer zweiten physischen Kamera umfasst, wobei die geschätzte Merkmalpunktposition auf stereoskopischen Techniken unter Verwenden von Bildern basiert, die unter Verwenden der physischen Kamera und der zweiten physischen Kamera erlangt werden.
  4. System nach einem der Ansprüche 1 bis 3, wobei der Prozessor ferner: eine Vielzahl zweiter Lagen der virtuellen Kamera innerhalb der Umgebung bestimmt, wobei jede der zweiten Lagen der virtuellen Kamera einer der Vielzahl zweiter Landmarken innerhalb der Umgebung entspricht; eine Vielzahl zweiter Fehler erzeugt, die jeweils einer der zweiten Landmarken entsprechen und einen projizierten Tiefenfehler umfassen, der einer der zweiten Landmarken entspricht; und neue geschätzte zweite Landmarkenpositionen für jede der zweiten Landmarken unter Verwenden des Fehlers und des zweiten Fehlers bestimmt.
  5. System nach einem der Ansprüche 1 bis 4, wobei der Prozessor zum Bestimmen des projizierten Tiefenfehlers umfasst, dass der Prozessor: eine modifizierte geschätzte Merkmalpunktposition für die geschätzte Merkmalpunktposition zu einem ersten projizierten Punkt auf der Bildebene der virtuellen Kamera projiziert; die geschätzte Landmarkenposition zu einem zweiten projizierten Punkt auf der Bildebene projiziert; und den ersten und den zweiten projizierten Punkt differenziert.
  6. System nach Anspruch 5, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt.
  7. System nach einem der Ansprüche 1 bis 6, wobei der Fehler ein erstes Glied umfasst, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, und ein zweites Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente auf der Bildebene der virtuellen Kamera entspricht.
  8. System nach Anspruch 7, wobei der Fehler ferner ein drittes Glied umfasst, das einem horizontalen Fehler zwischen einer Projektion der geschätzten Merkmalpunktposition auf einer Bildebene der physischen Kamera und einer Projektion der geschätzten Landmarkenposition auf der Bildebene der physischen Kamera umfasst, und ein viertes Glied, das einem vertikalen Fehler zwischen der Projektion der geschätzten Merkmalpunktposition auf der Kameraebene der physischen Kamera und der Projektion der geschätzten Landmarkenposition auf der Kameraebene der physischen Kamera entspricht.
  9. System nach einem der Ansprüche 1 bis 8, wobei der Fehler eine Norm einer horizontalen projizierten Tiefenfehlerkomponente der projizierten Tiefenfehlerkomponente und einer vertikalen projizierten Tiefenfehlerkomponente der projizierten Tiefenfehlerkomponente umfasst.
  10. System nach einem der Ansprüche 1 bis 9, wobei die geschätzte Lage der physischen Kamera, die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition jeweils eine 3D-Position innerhalb eines 3D-Koordinatensystems umfassen, das innerhalb der Umgebung definiert ist, und wobei die geschätzte Merkmalpunktposition eine Position ist, die von einem erfassten Merkmalpunkt innerhalb eines Bilds, das von der physischen Kamera aufgenommen wird, rückwärts projiziert wird.
  11. Verfahren zum Ausführen gleichzeitiger Positionsbestimmung und Kartierung, das umfasst: Empfangen einer geschätzten Lage einer physischen Kamera für eine physische Kamera innerhalb einer Umgebung, einer geschätzten Merkmalpunktposition innerhalb der Umgebung, und einer geschätzten Landmarkenposition für eine Landmarke innerhalb der Umgebung, wobei die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition beide der Landmarke entsprechen; Bestimmen basierend auf der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition, einer Lage einer virtuellen Kamera innerhalb der Umgebung, wobei die Lage der virtuellen Kamera sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera versetzt ist, Bestimmen eines projizierten Tiefenfehlers, der einem 3D-Fehler zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition auf einer Bildebene entspricht, die der Lage der virtuellen Kamera entspricht; Erzeugen eines Fehlers, der der Landmarke entspricht, wobei der Fehler den projizierten Tiefenfehler umfasst; und Bestimmen mindestens einer einer neuen geschätzten Lage der physischen Kamera und einer neuen geschätzten Landmarkenposition unter Verwenden des Fehlers, der der Landmarke entspricht.
  12. Verfahren nach Anspruch 11, wobei das Bestimmen der Lage der virtuellen Kamera umfasst: Bestimmen einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt; und Erzeugen der Lage der virtuellen Kamera an einer Position von der geschätzten Lage der physischen Kamera, die mit einer Projektion eines Vektors von der geschätzten Merkmalpunktposition zu dem modifizierten geschätzten Merkmalpunkt zu der Bildebene und in einer vorbestimmten Distanz von der Lage der physischen Kamera ausgerichtet ist.
  13. Verfahren nach Anspruch 11 oder 12, wobei das Bestimmen des projizierten Tiefenfehlers umfasst: Projizieren einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition zu einem ersten projizierten Punkt auf der Bildebene; Projizieren der geschätzten Landmarkenposition zu einem zweiten projizierten Punkt auf der Bildebene; und Differenzieren des ersten und des zweiten projizierten Punktes.
  14. Verfahren nach Anspruch 13, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt.
  15. Verfahren nach Anspruch 11 oder 12, wobei der Fehler ein erstes Glied umfasst, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, und ein zweites Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht.
  16. Mindestens ein maschinenlesbares Medium, das eine Vielzahl von Anweisungen umfasst, die als Reaktion darauf, dass sie auf einer Vorrichtung ausgeführt werden, die Vorrichtung veranlassen, gleichzeitige Positionsbestimmung und Kartierung auszuführen durch: Empfangen einer geschätzten Lage einer physischen Kamera für eine physische Kamera innerhalb einer Umgebung, einer geschätzten Merkmalpunktposition innerhalb der Umgebung, und einer geschätzten Landmarkenposition für eine Landmarke innerhalb der Umgebung, wobei die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition beide der Landmarke entsprechen; Bestimmen basierend auf der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition, einer Lage einer virtuellen Kamera innerhalb der Umgebung, wobei die Lage der virtuellen Kamera sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera versetzt ist, Bestimmen eines projizierten Tiefenfehlers, der einem 3D-Fehler zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition auf einer Bildebene entspricht, die der Lage der virtuellen Kamera entspricht; Erzeugen eines Fehlers, der der Landmarke entspricht, wobei der Fehler den projizierten Tiefenfehler umfasst; und Bestimmen mindestens einer einer neuen geschätzten Lage der physischen Kamera und einer neuen geschätzten Landmarkenposition unter Verwenden des Fehlers, der der Landmarke entspricht.
  17. Maschinenlesbares Medium nach Anspruch 16, wobei das Bestimmen der Lage der virtuellen Kamera umfasst: Bestimmen einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt; und Erzeugen der Lage der virtuellen Kamera an einer Position von der geschätzten Lage der physischen Kamera, die mit einer Projektion eines Vektors von der geschätzten Merkmalpunktposition zu dem modifizierten geschätzten Merkmalpunkt zu der Bildebene und in einer vorbestimmten Distanz von der Lage der physischen Kamera ausgerichtet ist.
  18. Maschinenlesbares Medium nach Anspruch 16 oder 17, wobei das Bestimmen des projizierten Tiefenfehlers umfasst: Projizieren einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition zu einem ersten projizierten Punkt auf der Bildebene; Projizieren der geschätzten Landmarkenposition zu einem zweiten projizierten Punkt auf der Bildebene; und Differenzieren des ersten und des zweiten projizierten Punktes.
  19. Maschinenlesbares Medium nach Anspruch 18, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt.
  20. Maschinenlesbares Medium nach einem der Ansprüche 16 bis 19, wobei der Fehler ein erstes Glied umfasst, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, und ein zweites Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht.
  21. System, das umfasst: Mittel zum Empfangen einer geschätzten Lage einer physischen Kamera für eine physische Kamera innerhalb einer Umgebung, einer geschätzten Merkmalpunktposition innerhalb der Umgebung, und einer geschätzten Landmarkenposition für eine Landmarke innerhalb der Umgebung, wobei die geschätzte Merkmalpunktposition und die geschätzte Landmarkenposition beide der Landmarke entsprechen; Mittel zum Bestimmen basierend auf der geschätzten Lage der physischen Kamera, der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition, einer Lage einer virtuellen Kamera innerhalb der Umgebung, wobei die Lage der virtuellen Kamera sowohl in eine horizontale Richtung als auch in eine vertikale Richtung in Bezug auf die geschätzte Lage der physischen Kamera versetzt ist, Mittel zum Bestimmen eines projizierten Tiefenfehlers, der einem 3D-Fehler zwischen der geschätzten Merkmalpunktposition und der geschätzten Landmarkenposition auf einer Bildebene entspricht, die der Lage der virtuellen Kamera entspricht; Mittel zum Erzeugen eines Fehlers, der der Landmarke entspricht, wobei der Fehler den projizierten Tiefenfehler umfasst; und Mittel zum Bestimmen mindestens einer einer neuen geschätzten Lage der physischen Kamera und einer neuen geschätzten Landmarkenposition unter Verwenden des Fehlers, der der Landmarke entspricht.
  22. System nach Anspruch 21, wobei das Mittel zum Bestimmen der Lage der virtuellen Kamera umfasst: Mittel zum Bestimmen einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt; und Mittel zum Erzeugen der Lage der virtuellen Kamera an einer Position von der geschätzten Lage der physischen Kamera, die mit der Projektion eines Vektors von der geschätzten Merkmalpunktposition zu dem modifizierten geschätzten Merkmalpunkt zu der Bildebene und in einer vorbestimmten Distanz von der Lage der physischen Kamera ausgerichtet ist.
  23. System nach Anspruch 21 oder 22, wobei das Mittel zum Bestimmen des projizierten Tiefenfehlers umfasst: Mittel zum Projizieren einer modifizierten geschätzten Merkmalpunktposition für die geschätzte Merkmalpunktposition zu einem ersten projizierten Punkt auf der Bildebene; Mittel zum Projizieren der geschätzten Landmarkenposition zu einem zweiten projizierten Punkt auf der Bildebene; und Mittel zum Differenzieren des ersten und des zweiten projizierten Punktes.
  24. System nach Anspruch 23, wobei die modifizierte geschätzte Merkmalpunktposition entlang einer Tiefenachse liegt, die sich von der geschätzten Lage der physischen Kamera zu der geschätzten Landmarkenposition und in einer Distanz entlang der Tiefenachse gleich einer Distanz von der geschätzten Lage der physischen Kamera zu der geschätzten Merkmalpunktposition erstreckt.
  25. System nach einem der Ansprüche 21 bis 24, wobei der Fehler ein erstes Glied umfasst, das einer horizontalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht, und ein zweites Glied, das einer vertikalen projizierten Fehlerkomponente der projizierten 3D-Fehlerkomponente entspricht.
DE102020128899.9A 2019-12-06 2020-11-03 Adaptive virtuelle kamera für indirect-sparse-simultaneous-localization- und mapping-systeme Pending DE102020128899A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/706,079 2019-12-06
US16/706,079 US11158087B2 (en) 2019-12-06 2019-12-06 Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems

Publications (1)

Publication Number Publication Date
DE102020128899A1 true DE102020128899A1 (de) 2021-06-10

Family

ID=70052230

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020128899.9A Pending DE102020128899A1 (de) 2019-12-06 2020-11-03 Adaptive virtuelle kamera für indirect-sparse-simultaneous-localization- und mapping-systeme

Country Status (2)

Country Link
US (2) US11158087B2 (de)
DE (1) DE102020128899A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147329A1 (ja) * 2017-02-10 2018-08-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 自由視点映像生成方法及び自由視点映像生成システム
KR20220101659A (ko) * 2019-11-15 2022-07-19 스냅 인코포레이티드 표면 기반 신경 합성을 사용한 이미지 생성
US11158087B2 (en) * 2019-12-06 2021-10-26 Intel Corporation Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems
CN112102411B (zh) * 2020-11-02 2021-02-12 中国人民解放军国防科技大学 一种基于语义误差图像的视觉定位方法及装置
CA3139428C (en) * 2020-11-18 2023-11-07 Northern Digital Inc. Error compensation for a three-dimensional tracking system
CN113870190A (zh) * 2021-09-03 2021-12-31 北京航空航天大学 竖直线条检测方法、装置、设备及存储介质
CN117079172A (zh) * 2022-05-09 2023-11-17 北京字跳网络技术有限公司 渲染图像的方法、装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3274986A4 (de) * 2015-03-21 2019-04-17 Mine One GmbH Virtuelle 3d-verfahren, -systeme und -software
US9652896B1 (en) * 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
CN111373442A (zh) * 2017-11-20 2020-07-03 松下电器(美国)知识产权公司 三维点群数据生成方法、位置推断方法、三维点群数据生成装置以及位置推断装置
US10560689B2 (en) * 2017-11-28 2020-02-11 Paul Lapstun Viewpoint-optimized light field display
US10984583B2 (en) * 2018-03-28 2021-04-20 Apple Inc. Reconstructing views of real world 3D scenes
US10650573B2 (en) * 2018-06-29 2020-05-12 Proprio, Inc. Synthesizing an image from a virtual perspective using pixels from a physical imager array weighted based on depth error sensitivity
JP7406875B2 (ja) * 2018-09-28 2023-12-28 キヤノン株式会社 情報処理装置およびプログラム
US11443452B2 (en) * 2019-06-07 2022-09-13 Pictometry International Corp. Using spatial filter to reduce bundle adjustment block size
US11158087B2 (en) * 2019-12-06 2021-10-26 Intel Corporation Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems
US11295473B2 (en) * 2019-12-18 2022-04-05 Intel Corporation Continuous local 3D reconstruction refinement in video
KR20220107596A (ko) * 2021-01-25 2022-08-02 주식회사 케이티 공간 구조를 조정하는 장치, 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
US11158087B2 (en) 2021-10-26
US20210398320A1 (en) 2021-12-23
US20200111233A1 (en) 2020-04-09
US11734856B2 (en) 2023-08-22

Similar Documents

Publication Publication Date Title
DE102020128899A1 (de) Adaptive virtuelle kamera für indirect-sparse-simultaneous-localization- und mapping-systeme
US10290111B2 (en) Systems and methods for compositing images
DE112016003118B4 (de) Punkt-zu-Punkt-Abstandsmessungen in 3D-Kamerabildern
DE102020123304A1 (de) Tiefes lernen für engmaschige semantische segmentierung in video mit automatisierter interaktivität und verbesserter zeitlicher kohärenz
EP3334156B1 (de) Elektronische vorrichtung zur erzeugung eines dreidimensionalen 360-grad-bildes und verfahren dafür
US20210019890A1 (en) Image segmentation method and apparatus, computer device, and storage medium
DE102020125612A1 (de) Kontinuierliche lokale 3d-rekonstruktionsverfeinerung in video
CN108604379A (zh) 用于确定图像中的区域的系统及方法
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
DE102020125197A1 (de) Feinkörnige objektsegmentierung in video mit tiefen merkmalen und graphischen mehrebenenmodellen
US9582881B2 (en) Machine vision image sensor calibration
US10404962B2 (en) Drift correction for camera tracking
US10417771B2 (en) Fast MRF energy optimization for solving scene labeling problems
WO2019179168A1 (zh) 投影畸变校正方法、装置、系统及存储介质
US20160284090A1 (en) Stereo image matching by shape preserving filtering of a cost volume in a phase domain
US20130243351A1 (en) Methods and Apparatus for Interfacing Panoramic Image Stitching with Post-Processors
US20190028688A1 (en) Dynamic calibration of multi-camera systems using multiple multi-view image frames
DE112009005074T5 (de) Techniken für schnelle stereo-rekonstruktion aus bildern
US10942567B2 (en) Gaze point compensation method and apparatus in display device, and display device
DE102019215387A1 (de) Zirkularfischaugenkameraarrayberichtigung
WO2022001648A1 (zh) 图像处理方法、装置、设备及介质
WO2023169283A1 (zh) 双目立体全景图像的生成方法、装置、设备、存储介质和产品
CN112657176A (zh) 一种结合人像行为信息的双目投影人机交互方法
US20200134389A1 (en) Rolling shutter rectification in images/videos using convolutional neural networks with applications to sfm/slam with rolling shutter images/videos
DE112013004920T5 (de) Polygonrasterisierung mit reduzierter Bitanzahl