DE102019207888A1 - Methods and systems for exploiting motion conflicts per pixel for extracting primary and secondary movements in augmented reality systems - Google Patents

Methods and systems for exploiting motion conflicts per pixel for extracting primary and secondary movements in augmented reality systems Download PDF

Info

Publication number
DE102019207888A1
DE102019207888A1 DE102019207888.5A DE102019207888A DE102019207888A1 DE 102019207888 A1 DE102019207888 A1 DE 102019207888A1 DE 102019207888 A DE102019207888 A DE 102019207888A DE 102019207888 A1 DE102019207888 A1 DE 102019207888A1
Authority
DE
Germany
Prior art keywords
coordinate frame
image data
frame
processor
inertial
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
DE102019207888.5A
Other languages
German (de)
Inventor
Benzun Pious Wisely Babu
Zhixin Yan
Mao Ye
Liu Ren
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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
Priority claimed from US16/158,878 external-priority patent/US10636190B2/en
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of DE102019207888A1 publication Critical patent/DE102019207888A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

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

Abstract

Ein Verfahren für die Bewegungsschätzung in einem Augmented-Reality- (AR) System enthält den Empfang von Trägheitssensordaten und Bilddaten während der Bewegung des AR-Systems zur Erzeugung einer Wahrscheinlichkeitskarte basierend auf den Trägheitssensordaten und den Bilddaten, wobei die Wahrscheinlichkeitskarte einem Rahmen in den Bilddaten entspricht und Wahrscheinlichkeitswerte enthält, die anzeigen, dass jeder Pixel in dem einen Rahmen sich in einem Trägheitskoordinatenrahmen oder einem örtlichen Koordinatenrahmen mit einem Encoder/Decoder für ein Convolutional Neural Network befindet, Identifizierung visueller Beobachtungen von mindestens einer Landmarke in dem örtlichen Koordinatenrahmen basierend auf den Bilddaten und der Wahrscheinlichkeitskarte, und Erzeugung einer Schätzung sekundärer Bewegung in dem örtlichen Koordinatenrahmen basierend auf einem ersten vorherigen Zustand in einem Hidden-Markov-Modell (HMM), das dem örtlichen Koordinatenrahmen und den visuellen Beobachtungen der mindestens einen Landmarke in dem örtlichen Koordinatenrahmen entspricht.A method for motion estimation in an Augmented Reality (AR) system includes receiving inertial sensor data and image data during movement of the AR system to generate a probability map based on the inertial sensor data and the image data, wherein the probability map corresponds to a frame in the image data and containing probability values indicating that each pixel in the one frame is located in an inertial coordinate frame or local coordinate frame with a convolutional neural network encoder / decoder, identifying visual observations of at least one landmark in the local coordinate frame based on the image data and of the probability map, and generating an estimate of secondary motion in the local coordinate frame based on a first previous state in a Hidden Markov Model (HMM) corresponding to the local coordinate frame and the visual n observations of the at least one landmark in the local coordinate frame corresponds.

Description

PRIORITÄTSANSPRUCHCLAIM OF PRIORITY

Diese Anmeldung beansprucht Priorität vor der provisorischen U.S. Anmeldung Nr. 62/678,383 , mit dem Titel „On Exploiting Per-Pixel Motion Conflicts to Extract Secondary Motions“ und eingereicht am 31. Mai 2018, dessen gesamte Inhalte hiermit hierin durch Verweis eingeschlossen sind.This application claims priority over the provisional one US Application No. 62 / 678,383 entitled "On Exploiting Per-Pixel Motion Conflicts to Extract Secondary Motions" filed May 31, 2018, the entire contents of which are hereby incorporated herein by reference.

GEBIET DER ERFINDUNGFIELD OF THE INVENTION

Diese Offenbarung bezieht sich allgemein auf das Feld der Augmented-Reality-Systeme für Mensch-Computer-Interaktion und genauer auf Systeme und Verfahren für die Erkennung von primärer und sekundärer Bewegung in Augmented-Reality-Systemen.This disclosure relates generally to the field of augmented reality systems for human-computer interaction, and more particularly to systems and methods for detecting primary and secondary motion in augmented reality systems.

ALLGEMEINER STAND DER TECHNIKGENERAL PRIOR ART

Wenn nicht hierin anders angegeben, sind die in diesem Abschnitt beschriebenen Materialien nicht der Stand der Technik für die Ansprüche aus dieser Anmeldung und werden nicht durch Einschluss in diesen Abschnitt Teil des Stands der Technik.Unless otherwise stated herein, the materials described in this section are not prior art to the claims of this application and will not become part of the prior art by inclusion in this section.

Augmented-Reality- (AR) Systeme verwenden computerisierte Vorrichtungen, um eine Mensch-Maschine-Schnittstelle bereitzustellen, die einem Menschen ermöglicht, eine physische Umgebung aus der echten Welt zu betrachten, während sie eine Anzeige von virtuellen Grafiken bereitstellen, die Merkmale der physischen Umgebung „augmentieren“. Ein häufiger Typ von AR-Vorrichtungen enthält eine transparente Brille mit einem oder mehreren Sensoren und einer Videoprojektionsvorrichtung, die ein menschlicher Bediener trägt. Die transparente Brille ermöglicht es dem Menschen, die physische Umgebung der echten Welt zu sehen und die AR-Vorrichtung projiziert grafische Daten auf die Brille oder direkt in die Augen des Benutzers an Stellen, die Objekten, Orten oder anderen Merkmalen in der physischen Umgebung entsprechen. In einigen Fällen zeigen die Grafiken Informationen an oder fügen anderweitig grafische Elemente hinzu, um ein physisches Objekt in der physischen Umgebung zu „augmentieren“, während die Grafiken in anderen Fällen eine zweidimensionale oder dreidimensional Darstellung von Informationen oder einem virtuellen Objekt bereitstellen, in der physischen Umgebung nicht wirklich existiert. Während Augmented-Reality-Systeme sich einige Merkmale mit „Virtual Reality“- (VR) Systemen teilen, ist eine Unterscheidung zwischen AR- und VR-Systemen, dass AR-Systeme eine optische Darstellung und grafische Interaktion mit einer physische Umgebung der echten Welt bereitstellen, die nicht durch einen Computer erzeugt wird und nicht unter der Kontrolle eines Computers steht, während VR-Systeme grafische Anzeigen von vollständig computererzeugten Umgebungen bereitstellen. So verlangen viele Operationen in AR-Systemen eine weitere Verarbeitung, um das AR-System in die Lage zu versetzen, Parameter der physischen Umgebung um das AR-System herum zu messen, um genaue augmentierte Grafiken bereitzustellen.Augmented reality (AR) systems use computerized devices to provide a man-machine interface that allows a human to view a real-world physical environment while providing an indication of virtual graphics that are features of the physical environment "augment". One common type of AR device includes a transparent pair of glasses with one or more sensors and a video projection device carried by a human operator. The transparent glasses allow people to see the physical environment of the real world, and the AR device projects graphical data onto the glasses or directly into the user's eyes at locations corresponding to objects, locations or other features in the physical environment. In some cases, the graphics display information or otherwise add graphic elements to "augment" a physical object in the physical environment, while in other cases the graphics provide a two-dimensional or three-dimensional representation of information or a virtual object in the physical Environment does not really exist. While augmented reality systems share some features with "virtual reality" (VR) systems, a distinction between AR and VR systems is that AR systems provide visual representation and graphical interaction with a physical environment of the real world that is not generated by a computer and is not under the control of a computer while VR systems provide graphical displays of fully computer generated environments. Thus, many operations in AR systems require further processing to enable the AR system to measure parameters of the physical environment around the AR system to provide accurate augmented graphics.

Eine Funktion eines AR-Systems führt eine „Lokalisierung“ durch, um die Orte der Sensoren in dem AR-System bezüglich der Umwelt um das System herum zu identifizieren. Insbesondere verwenden viele AR-Systeme ein Kamerasystem und Trägheitssensoren, wie etwa MEMs-Beschleunigungsmesser und Gyroskope, um die Lokalisierung auszuführen. Die Systeme auf dem Stand der Technik kombinieren die Ausgaben der Kamera und des Trägheitssensors miteinander, um die Lokalisierung durchzuführen. Da die Sensoren allgemein in eine Vorrichtung integriert sind, die durch einen Benutzer getragen wird, stellt die Lokalisierung der Sensororte auch die Lokalisierung des Benutzers in der Umgebung bereit. Die meisten AR-Systeme auf dem Stand der Technik nehmen eine statische Umgebung an und handhaben nur primäre Bewegung, die dem Trägheitskoordinatenrahmen entspricht. Das bedeutet, dass diese Systeme eine Lokalisierung in einer statischen, sich nicht bewegenden Umgebung („Trägheitskoordinatenrahmen“) ausführen können und dann den Eingang der AR-Sensoren verwenden, um die Bewegung des AR-Systems und des Benutzers bezüglich des statischen Trägheitskoordinatenrahmens zu bestimmen („primäre Bewegung“). Ein einfaches Beispiel dafür ist die Messung der Bewegung eines Benutzers, der ein AR-System trägt, in einem stationären Raum, der den Trägheitskoordinatenrahmen bereitstellt.A function of an AR system performs a "localization" to identify the locations of the sensors in the AR system with respect to the environment around the system. In particular, many AR systems use a camera system and inertial sensors, such as MEMs accelerometers and gyroscopes, to perform the localization. The prior art systems combine the outputs of the camera and the inertial sensor to perform the localization. Because the sensors are generally integrated into a device carried by a user, locating the sensor locations also provides for localization of the user in the environment. Most prior art AR systems assume a static environment and handle only primary motion that corresponds to the inertial coordinate frame. That is, these systems can perform localization in a static, non-moving environment ("inertial coordinate frame") and then use the input of the AR sensors to determine the motion of the AR system and the user with respect to the static inertial coordinate frame ( "Primary movement"). A simple example of this is to measure the movement of a user wearing an AR system in a stationary space that provides the inertial coordinate frame.

Bestehende AR-Systeme sind wesentlich weniger effektiv in der Handhabung dynamischer Umgebungen, in denen mehrere Arten von Bewegung und mehrere Koordinatenrahmen vorliegen, die inkonsistente oder „in Konflikt stehende“ Sensordateneingänge erzeugen. Um ein häufiges, nicht einschränkendes Beispiel zu nennen: Wenn ein Benutzer eine AR-Vorrichtung in einem sich bewegenden Kraftfahrzeug trägt, scheint sich der echte Trägheitsreferenzkoordinatenrahmen, wie etwa die sich nicht bewegende Straße, in dem optischen Eingang der Kamerasystemsensoren zu bewegen, während die Trägheitssensoren in der AR-Vorrichtung überhaupt keine Bewegung registrieren müssen, wenn der Träger der Vorrichtung stillsitzt und sich relativ zu dem Fahrzeuginneren nicht bewegt, während sich das Fahrzeug mit einheitlicher Geschwindigkeit bewegt (was keine Beschleunigung erzeugt). Das Fahrzeuginnere wird als „örtlicher Koordinatenrahmen“ bezeichnet, weil die örtliche Bewegung des Benutzers und des AR-Systems relativ zum Fahrzeuginneren erfolgt,, auch, wenn sich das gesamte Fahrzeug und das AR-System auch relativ zu dem Trägheitskoordinatenrahmen der Straße bewegen. Weiter erzeugt jede Bewegung des Benutzers und des AR-Systems innerhalb des Fahrzeugs Trägheitsbewegungsdaten, die nicht zu der wahrgenommenen Bewegung von dem Kamerasystem passen, weil sich die Bewegung des Fahrzeugs relativ zu dem Trägheitskoordinatenrahmen der Straße wesentlich von der Bewegung eines Benutzers relativ zu dem örtlichen Koordinatenrahmen des Fahrzeugs unterscheidet. Selbst die Eingangsdaten von dem Kamerasystem sind üblicherweise inkonsistent, da ein Abschnitt jedes erzeugten Bilds der Videodaten den örtlichen Koordinatenrahmen des Fahrzeuginneren enthält, der relativ zum Benutzer statisch ist, solange sich der Benutzer nicht bewegt, während ein anderer Abschnitt des Bilds den Trägheitskoordinatenrahmen der äußeren Umgebung umfasst, die sich relativ zu dem örtlichen Koordinatenrahmen des Fahrzeugs zu bewegen scheint.Existing AR systems are much less effective at handling dynamic environments where there are multiple types of motion and multiple coordinate frames that produce inconsistent or "conflicting" sensor data inputs. As a frequent, non-limiting example, when a user wears an AR device in a moving motor vehicle, the real inertial reference coordinate frame, such as the non-moving road, appears to be in the move the optical input of the camera system sensors, while the inertial sensors in the AR device need not register any movement at all, when the wearer of the device sits still and does not move relative to the vehicle interior while the vehicle is moving at a uniform speed (which does not generate acceleration). , The vehicle interior is referred to as a "local coordinate frame" because the local movement of the user and the AR system is relative to the vehicle interior, even if the entire vehicle and the AR system also move relative to the inertial coordinate frame of the road. Further, any movement of the user and the AR system within the vehicle generates inertial motion data that does not match the perceived motion of the camera system because the movement of the vehicle relative to the inertial coordinate frame of the road substantially depends on the movement of a user relative to the local coordinate frame of the vehicle is different. Even the input data from the camera system is usually inconsistent since a portion of each generated image of the video data contains the local coordinate frame of the vehicle interior, which is static relative to the user, as long as the user is not moving, while another portion of the image is the external environment's inertial coordinate frame which seems to move relative to the local coordinate frame of the vehicle.

Die obigen Probleme mit bestehenden AR-Systemen verringern die Genauigkeit der primären Bewegung der AR-Sensoren in dem AR-System und stellen weitere Herausforderungen an die genaue Verfolgung „sekundärer Bewegungen“ bereit, die sich auf Bewegungen der Sensoren in dem AR-System relativ zu einem örtlichen Koordinatenrahmen beziehen. Bei Verwendung des obigen Beispiels eines sich bewegenden Fahrzeugs treten sekundäre Bewegungen in dem örtlichen Koordinatenrahmen des Fahrzeuginneren auf, wie etwa die Bewegung des AR-Systems selbst, oder von einem anderen Objekt innerhalb des Fahrzeuginneren. Eine genaue Verfolgung der sekundären Bewegung verlangt eine genaue Verfolgung der primären Bewegung, was in einem örtlichen Koordinatenrahmen aufgrund der oben beschriebenen Sensorkonflikte schwer ist. Beispielsweise sind auf dem Stand der Technik Techniken bekannt, um Bewegung von sich bewegenden Objekten in Videodaten in einem Trägheitskoordinatenrahmen zu verfolgen, aber wenn sich die Kamera auf unbekannte Weise bewegt, weil es zu einer ungenauen primären Bewegungsverfolgung aufgrund von in Konflikt stehenden Sensordaten kommt, wird eine genaue Bewegungsverfolgung der Kamera relativ zu einem externen Objekt in einem örtlichen Koordinatenrahmen mit den Videodaten wesentlich schwerer oder nicht praktikabel. Weiterhin sind zwar auf dem Stand der Technik einige Techniken bekannt, um die Genauigkeit der primären Bewegungsverfolgung in Situationen zu verbessern, die mehrere Koordinatenrahmen umfassen, aber die Techniken verlassen sich auf die Identifizierung und Ablehnung potenziell in Konflikt stehender Sensordaten, die die Genauigkeit der primären Bewegungserkennung basierend auf den Trägheitskoordinatenrahmen verbessert, aber genaue Erkennung sekundärer Bewegung für den örtlichen Koordinatenrahmen verhindert. Weiter existieren zwar natürlich Systeme und Verfahren zur Verfolgung relativer Bewegung unter Verwendung aktiver Sensoren wie RADAR und LIDAR, aber diese aktiven Sensoren sind für die Verwendung in vielen AR-Systemen nicht praktisch.The above problems with existing AR systems reduce the accuracy of the primary motion of the AR sensors in the AR system and provide further challenges to the accurate tracking of "secondary motions" related to movements of the sensors in the AR system refer to a local coordinate frame. Using the above example of a moving vehicle, secondary movements occur in the local coordinate frame of the vehicle interior, such as the movement of the AR system itself, or from another object within the vehicle interior. Accurate tracking of the secondary motion requires close tracking of the primary motion, which is difficult in a local coordinate frame due to the sensor conflicts described above. For example, techniques are known in the art to track motion of moving objects in video data in an inertial coordinate frame, but when the camera moves in an unknown manner because of inaccurate primary motion tracking due to conflicting sensor data Accurate motion tracking of the camera relative to an external object in a local coordinate frame with the video data is significantly more difficult or impractical. Further, although some techniques are known in the art to improve the accuracy of primary motion tracking in situations involving multiple coordinate frames, the techniques rely on the identification and rejection of potentially conflicting sensor data representing the accuracy of primary motion detection improved based on the inertial coordinate frame, but prevents accurate detection of secondary motion for the local coordinate frame. Of course, while there are systems and methods for tracking relative motion using active sensors such as RADAR and LIDAR, these active sensors are not practical for use in many AR systems.

Wie oben beschrieben, weisen AR-Systeme auf dem Stand der Technik Probleme bei der Ausführung von Lokalisierung und Verfolgung primäre und sekundäre Bewegung in Situationen auf, in denen Video- und Trägheitssensordaten Konflikte durch die relative Bewegung erleiden, die durch eine Trägheitskoordinate und einen örtlichen Koordinatenrahmen in den Sensordaten erzeugt werden. Infolgedessen wären Verbesserungen an AR-Systemen und Verfahren zu deren Betrieb zur Verbesserung der Genauigkeit primäre und sekundäre Bewegungserkennung vorteilhaft.As described above, prior art AR systems have problems in performing localization and tracking of primary and secondary motion in situations where video and inertial sensor data experiences conflicts of relative motion due to an inertial coordinate and a local coordinate frame generated in the sensor data. As a result, improvements to AR systems and methods of operating them to improve primary and secondary motion detection accuracy would be advantageous.

KURZDARSTELLUNG DER ERFINDUNGBRIEF SUMMARY OF THE INVENTION

Die hierin beschriebenen Ausführungsformen stellen Systeme und Verfahren zur Bewegungsschätzung in AR-Systemen bereit, die eine Bewegungskonflikt erkennenden visuelle Trägheitsodometrie (MC-VIO) bereitstellen, die es einem AR-System ermöglicht, die Lokalisierung für einen Trägheitskoordinatenrahmen und einen örtlichen Koordinatenrahmen auszuführen, um verbesserte primäre Bewegungserkennung und sekundäre Bewegungserkennung auszuführen.The embodiments described herein provide motion estimation systems and methods in AR systems that provide motion-conflict-detecting visual inertial (-VIO) tomography that allows an AR system to perform localization for an inertial coordinate frame and a local coordinate frame to improve perform primary motion detection and secondary motion detection.

In einer Ausführungsform wurde ein Verfahren für die Bewegungsschätzung in einem Augmented-Reality- (AR) System entwickelt. Das Verfahren enthält den Empfang von Trägheitssensordaten mit einem Trägheitssensorsystem während der Bewegung des AR-Systems; Empfang mehrerer Rahmen von Bilddaten während der Bewegung des AR-Systems mit einem Kamerasystem; die Erzeugung eine Wahrscheinlichkeitskarte basierend auf den Trägheitssensordaten und mehreren Rahmen der Bilddaten mit einem Prozessor, der einen Encoder/Decoder für ein Convolutional Neural Network umfasst, wobei die Wahrscheinlichkeitskarte einem Rahmen der mehreren Rahmen mit Bilddaten entspricht, und enthaltend mehrere Wahrscheinlichkeitswerte, die mehreren Pixeln in dem einen Rahmen entsprechen, von denen jeder Wahrscheinlichkeitswert in den mehreren Wahrscheinlichkeitswerten eine Wahrscheinlichkeit angibt, dass das entsprechende Pixel sich in einem Trägheitskoordinatenrahmen oder einem örtlichen Koordinatenrahmen befindet; die Identifizierung von visuellen Beobachtungen von mindestens einer Landmarke mit dem Prozessor in dem örtlichen Koordinatenrahmen basierend auf den mehreren Rahmen der Bilddaten und der Wahrscheinlichkeitskarte; und die Erzeugung einer Schätzung sekundärer Bewegung für das AR-System mit dem Prozessor mit Verweis auf den örtlichen Koordinatenrahmen basierend auf einem ersten vorherigen Zustand in einem versteckten Markov-Modell (HMM), das dem örtlichen Koordinatenrahmen entspricht, und den visuellen Beobachtungen der mindestens einen Landmarke in dem örtlichen Koordinatenrahmen.In one embodiment, a motion estimation method has been developed in an Augmented Reality (AR) system. The method includes receiving inertial sensor data with an inertial sensor system during movement of the AR system; Receiving multiple frames of image data during movement of the AR system with a camera system; generating a probability map based on the inertial sensor data and a plurality of frames of the image data with a processor comprising a convolutional neural network encoder / decoder, wherein the probability map corresponds to a frame of the plurality of image data frames and including a plurality Probability values corresponding to a plurality of pixels in the one frame, each probability value in the plurality of probability values indicating a probability that the corresponding pixel is in an inertia coordinate frame or a local coordinate frame; identifying visual observations of at least one landmark with the processor in the local coordinate frame based on the plurality of frames of the image data and the probability map; and generating an estimate of secondary motion for the AR system with the processor with reference to the local coordinate frame based on a first previous state in a hidden Markov model (HMM) corresponding to the local coordinate frame and the visual observations of the at least one Landmark in the local coordinate frame.

In einer anderen Ausführungsform wurde ein Augmented-Reality- (AR) System entwickelt. Das AR-System enthält ein Trägheitssensorsystem, ein Kamerasystem, eine Anzeigevorrichtung und einen Prozessor, der operativ mit dem Trägheitssensorsystem, dem Kamerasystem und der Anzeigevorrichtung verbunden ist. Der Prozessor ist konfiguriert zum Empfangen von Trägheitssensordaten, die durch das Trägheitssensorsystem während der Bewegung des AR-Systems erzeugt wurden; Empfangen mehrerer Rahmen Bilddaten, die durch das Kamerasystem während der Bewegung des AR-Systems erzeugt wurden; Erzeugen einer Wahrscheinlichkeitskarte basierend auf den Trägheitssensordaten und den mehreren Rahmen der Bilddaten unter Verwendung eines Encoders/Decoders für ein Convolutional Neural Network, wobei die Wahrscheinlichkeitskarte einem Rahmen der mehreren Rahmen mit Bilddaten entspricht, und enthaltend mehrere Wahrscheinlichkeitswerte, die mehreren Pixeln in dem einen Rahmen entsprechen, von denen jeder Wahrscheinlichkeitswert in den mehreren Wahrscheinlichkeitswerten eine Wahrscheinlichkeit angibt, dass das entsprechende Pixel sich in einem Trägheitskoordinatenrahmen oder einem örtlichen Koordinatenrahmen befindet; Identifizieren von visuellen Beobachtungen von mindestens einer Landmarke in dem örtlichen Koordinatenrahmen basierend auf den mehreren Rahmen der Bilddaten und der Wahrscheinlichkeitskarte; und Erzeugen einer Schätzung sekundärer Bewegung für das AR-System mit Verweis auf den örtlichen Koordinatenrahmen basierend auf einem ersten vorherigen Zustand in einem versteckten Markov-Modell (HMM), das dem örtlichen Koordinatenrahmen entspricht, und den visuellen Beobachtungen der mindestens einen Landmarke in dem örtlichen Koordinatenrahmen.In another embodiment, an Augmented Reality (AR) system has been developed. The AR system includes an inertial sensor system, a camera system, a display device, and a processor operatively connected to the inertial sensor system, the camera system, and the display device. The processor is configured to receive inertial sensor data generated by the inertial sensor system during movement of the AR system; Receiving a plurality of frames of image data generated by the camera system during movement of the AR system; Generating a probability map based on the inertial sensor data and the plurality of frames of the image data using a convolutional neural network encoder / decoder, wherein the probability map corresponds to a frame of the plurality of frames of image data, and containing a plurality of probability values corresponding to a plurality of pixels in the one frame each of which probability value in the plurality of probability values indicates a probability that the corresponding pixel is in an inertia coordinate frame or a local coordinate frame; Identifying visual observations of at least one landmark in the local coordinate frame based on the plurality of frames of the image data and the probability map; and generating an estimate of secondary motion for the AR system with reference to the local coordinate frame based on a first previous state in a hidden Markov model (HMM) corresponding to the local coordinate frame and the visual observations of the at least one landmark in the local one coordinate frame.

Figurenlistelist of figures

  • 1 ist ein schematisches Diagramm eines Augmented-Reality- (AR)-Systems, das konfiguriert ist, primäre und sekundäre Bewegung festzustellen. 1 Figure 12 is a schematic diagram of an Augmented Reality (AR) system configured to detect primary and secondary movement.
  • 2 ist ein Diagramm eines versteckten Markov-Modells (HMM), das das AR-System aus 1 verwendet, um primäre und sekundäre Bewegung zu verfolgen. 2 is a diagram of a hidden Markov model (HMM) that makes up the AR system 1 used to track primary and secondary movement.
  • 3 ist ein Diagramm eines Prozesses für den Betrieb des AR-Systems aus 1 zum Schätzen der primären und sekundären Bewegung unter Verwendung des HMM aus 2. 3 is a diagram of a process for operating the AR system 1 for estimating the primary and secondary motion using the HMM 2 ,
  • 4 ist ein Diagramm eines Encoders/Decoders eines Convolutional Neural Network (CNN), das eine epipolar eingeschränkte Lage enthält, die das AR-System aus 1 verwendet in dem Prozess aus 3. 4 Figure 12 is a diagram of a convolutional neural network (CNN) encoder / decoder that includes an epipolar constrained layer that exposes the AR system 1 used in the process 3 ,
  • 5 ist ein Diagramm, das die Operation der epipolar eingeschränkten Lage in dem Encoder/Decoder für ein Convolutional Neural Network enthält aus 4. 5 FIG. 13 is a diagram showing the operation of the epipolar restricted layer in the Encoder / Decoder for a Convolutional Neural Network 4 ,
  • 6 ist eine Empfängerbetriebseigenschaften- (ROC) Kurve, die die Verhältnisse der wahr-dispositiven Erkennung zu der falsch-positiven Erkennung für den CNN-Encoder/Decoder aus 4 im Vergleich mit einem CNN-Encoder/Decoder darstellt, der keine epipolar eingeschränkte Lage aufweist. 6 is a receiver operating characteristic (ROC) curve that expresses the ratios of true-disposable detection to false-positive detection for the CNN encoder / decoder 4 in comparison with a CNN encoder / decoder which does not have an epipolar restricted layer.
  • 7 ist ein Diagramm, das die Genauigkeit der Visuell-Trägheitsodometrie in einer Umgebung darstellt, die Trägheits- und örtliche Koordinatenrahmen enthält, unter Verwendung des AR-Systems aus 1. 7 FIG. 12 is a diagram illustrating the accuracy of the visual inertial odometry in an environment containing inertial and local coordinate frames using the AR system. FIG 1 ,
  • 8A ist ein Diagramm, das die Identifizierung eines Trägheitskoordinatenrahmens und eines globalen Koordinatenrahmens mit Landmarken und augmentierten Grafiken darstellt, die erzeugt wurden in dem AR-System aus 1. 8A Figure 12 is a diagram illustrating the identification of an inertial coordinate frame and a global coordinate frame with landmarks and augmented graphics generated in the AR system 1 ,
  • 8B ist weiteres ein Diagramm, das den Betrieb des AR-Systems aus 1 darstellt, um augmentierte Grafiken mit genauen Orten in einem Trägheitskoordinatenrahmen und einem örtlichen Koordinatenrahmen darstellt. 8B Another is a diagram showing the operation of the AR system 1 represents augmented graphics with exact locations in an inertial coordinate frame and a local coordinate frame.

AUSFÜHRLICHE BESCHREIBUNG DETAILED DESCRIPTION

Zum Zweck der Förderung eines Verständnisses der Grundsätze der hierin offenbarten Ausführungsformen wird nun auf die Zeichnungen und Beschreibungen in der folgenden schriftlichen Spezifikation verwiesen. Durch die Verweise soll der Umfang des Inhalts nicht eingeschränkt werden. Diese Offenbarung enthält außerdem alle Änderungen und Modifikationen der illustrierten Ausführungsformen und enthält weitere Anwendungen der Grundsätze der offenbarten Ausführungsformen, die einem Fachmann, an den diese Offenbarung gerichtet ist, normalerweise auffallen würden.For the purposes of promoting an understanding of the principles of the embodiments disclosed herein, reference is now made to the drawings and descriptions in the following written specification. The references are not intended to limit the scope of the content. This disclosure also includes all changes and modifications of the illustrated embodiments, and includes other applications of the principles of the disclosed embodiments that would normally be apparent to one of ordinary skill in the art to which this disclosure pertains.

Wie hierin verwendet, bezieht sich der Begriff „primäre Bewegung“ auf Bewegung einer Augmented-Reality- (AR) Vorrichtung, die ein Kamerasystem und ein Trägheitssensorsystem bezüglich eines Trägheitskoordinatenrahmens umfasst. Im Kontext einer AR-Vorrichtung ist der Trägheitskoordinatenrahmen ein festes Koordinatensystem, von dem angenommen wird, dass es statisch (unbeweglich) ist, während die AR-Vorrichtung selbst und potenziell andere Objekte sich relativ zu dem Trägheitskoordinatenrahmen bewegen. Nicht einschränkende praktische Beispiele von Trägheitskoordinatenrahmen, die in den folgenden Beispielen beschrieben sind, enthalten die Oberfläche der Erde, feststehende Objekte, die sich relativ zu der Oberfläche der Erde nicht bewegen, Wände, Böden, Decken und andere statische Strukturen in Gebäuden und dergleichen.As used herein, the term "primary motion" refers to movement of an augmented reality (AR) device that includes a camera system and an inertial sensor system with respect to an inertial coordinate frame. In the context of an AR device, the inertial coordinate frame is a fixed coordinate system that is assumed to be static (immobile) while the AR device itself and potentially other objects are moving relative to the inertial coordinate frame. Non-limiting practical examples of inertial coordinate frames described in the following examples include the surface of the earth, fixed objects that do not move relative to the surface of the earth, walls, floors, ceilings and other static structures in buildings and the like.

Wie hierin verwendet, bezieht sich der Begriff „sekundäre Bewegung“ auf Bewegung einer AR-Vorrichtung, die ein Kamerasystem und ein Trägheitssensorsystem bezüglich eines Trägheitskoordinatenrahmens umfasst. Ein nichteinschränkendes Beispiel eines örtlichen Koordinatenrahmens kann die Bewegung des AR-Systems relativ zu einem Inneren eines Fahrzeugs oder zu einem Objekt, das in der Hand des Benutzers des AR-Systems gehalten wird, wie etwa einem Buch, Clipboard. Notebookcomputer und dergleichen enthalten. Während das AR-System sowohl die Videodaten von einem Kamerasystem als auch die Trägheitsdaten von Trägheitssensoren für die Verfolgung primärer Bewegung verwendet, verwendet das AR-System nur Videodaten von dem Kamerasystem zur Verfolgung sekundärer Bewegung, da die Art der Beschleunigungsmesser und Gyroskope in Trägheitssensoren mit dem Trägheitskoordinatenrahmen verknüpft ist.As used herein, the term "secondary motion" refers to movement of an AR device that includes a camera system and an inertial sensor system with respect to an inertial coordinate frame. A non-limiting example of a local coordinate frame may include the movement of the AR system relative to an interior of a vehicle or to an object held in the hand of the user of the AR system, such as a book, clipboard. Notebook computers and the like included. While the AR system uses both the video data from a camera system and the inertial data from inertial sensors to track primary motion, the AR system uses only video data from the secondary motion tracking camera system, as the type of accelerometers and gyroscopes in inertial sensors use Inertia coordinate frame is linked.

Wie hierein verwendet, bezieht sich der Begriff „Konflikt“ auf eine Situation, in der Eingangsdaten von zwei verschiedenen Sensoren in einem Augmented-Reality-System nichtkonsistente („in Konflikt stehende“) Daten zu einem oder beiden aus primärer Bewegung und sekundärer Bewegung bereitstellen. Beispielsweise kann ein Kamerasystem Pixeldaten erzeugen, die primäre Bewegung in einer Richtung anzeigen, während ein Trägheitssensor primäre Bewegung in eine andere Richtung anzeigt, was zu einem Konflikt führt. Die hierin beschriebenen Ausführungsformen erkennen Konflikte der Bilddaten aus einem Kamerasystem auf Grundlage pro Pixel und verwenden die Konfliktinformationen zum Verbessern der Genauigkeit der primären und sekundären Bewegungserkennung.As used herein, the term "conflict" refers to a situation where input data from two different sensors in an augmented reality system provide non-consistent ("conflicting") data for one or both of primary motion and secondary motion. For example, a camera system may generate pixel data indicative of primary motion in one direction, while an inertial sensor indicates primary motion in a different direction, resulting in conflict. The embodiments described herein detect conflicts of image data from a camera system per pixel, and use the conflict information to improve the accuracy of the primary and secondary motion detection.

Wie hierein verwendet, bezieht sich der Begriff „Landmarke“ auf ein Objekt, das ein AR-System in Bildsensordaten erkennt, das sich im Lauf der Zeit relativ zu einem Koordinatenrahmen nicht bewegt, der entweder ein Trägheitskoordinatenrahmen oder ein örtlicher Koordinatenrahmen sein kann. Beispiele von Landmarken in einem Trägheitskoordinatenrahmen enthalten einen Baum, Lichtmasten, ein Schild oder ein anderes statisches Objekt, das sich relativ zum Boden in dem Trägheitskoordinatenrahmen nicht bewegt. Beispiele für Landmarken in einem örtlichen Koordinatenrahmen enthalten feststehende Element eines Armaturenbretts und andere feststehende Merkmale des Inneren eines Fahrzeugs in einer Situation, in der das Fahrzeuginnere den örtlichen Koordinatenrahmen bildet.As used herein, the term "landmark" refers to an object that detects an AR system in image sensor data that does not move over time relative to a coordinate frame, which may be either an inertial coordinate frame or a local coordinate frame. Examples of landmarks in an inertial coordinate frame include a tree, light poles, a shield, or other static object that does not move relative to the ground in the inertial coordinate frame. Examples of landmarks in a local coordinate frame include fixed elements of a dashboard and other fixed features of the interior of a vehicle in a situation where the vehicle interior forms the local coordinate frame.

Eine Landmarke wird basierend auf einer oder mehreren visuellen Beobachtungen identifiziert, die basierend auf einem Merkmalsextraktionsprozess erzeugt werden, der auf eine Reihe von Bildrahmen angewendet wird, die ein Kamerasystem in dem AR-System im Betrieb erzeugt. In der hierin beschriebenen Ausführungsformen werden visuelle Beobachtungen unter Verwendung der des „Features from Accelerated Segment Test“-(FAST) Algorithmus oder einem anderen Merkmalsextrahierungsalgorithmus erzeugt. Während er hierin nicht ausführlich beschrieben ist, erkennt der FAST-Algorithmus Merkmale, die den Ecken der Objekte in Bilddaten entsprechen, durch Erzeugung eines Kreises von Pixeln um ein Kandidatenpixel für eine Ecke, und Identifizierung basierend auf der Pixelintensitätsstufe des Kandidatenpixels und der Pixel, die den Kandidaten umgeben, dass der Kandidat tatsächlich ist eine Ecke ist. Maschinenlerntechniken, die Entscheidungsbäume, neurale Netzwerke und andere Bildverarbeitungstechniken enthalten, können eingesetzt werden, um Variationen des FAST-Algorithmus in effizienter Weise durchzuführen. Die hierin beschriebenen Ausführungsformen kombinieren FAST mit einer anderen Technik, die als Binary Robust Invariant Scalable Keypoints (BRISK) bekannt ist und Schlüsselpunkterkennung basierend auf den Merkmalen von FAST durchführt, um die visuellen Beobachtungen z als Schlüsselpunktdeskriptoren zu erzeugen. Während die visuellen Beobachtungen z über eine Reihe von Rahmen der Bilddaten erzeugt werden, ist jede visuelle Beobachtung z einer Gruppe Pixel in jedem Rahmen zugewiesen und wie nachfolgend genauer beschriebene erzeugt ein tiefer neuraler Netzwerkklassifizierer eine Klassifizierung für jedes Pixel als dem Trägheitskoordinatenrahmen oder dem örtlichen Koordinatenrahmen entsprechend.A landmark is identified based on one or more visual observations that are generated based on a feature extraction process that is applied to a series of image frames that a camera system in the AR system generates in use. In the embodiments described herein, visual observations are generated using the Features from Accelerated Segment Test (FAST) algorithm or another feature extraction algorithm. While not described in detail herein, the FAST algorithm recognizes features corresponding to the vertices of the objects in image data by generating a circle of pixels around a candidate pixel for a corner, and identifying based on the pixel intensity level of the candidate pixel and pixels Surround the candidate that the candidate is actually a corner. Machine learning techniques, including decision trees, neural networks, and other image processing techniques, can be used to efficiently perform variations of the FAST algorithm. The embodiments described herein combine FAST with another technique known as Binary Robust Invariant Scalable Keypoints (BRISK) that performs key-point recognition based on the characteristics of FAST to generate the visual observations z as key-point descriptors. While the visual observations z are generated over a series of frames of image data, each visual observation z is assigned to a group of pixels in each frame, and as described in greater detail below, a deep neural network classifier generates a classification for each pixel as the inertial coordinate frame or the local coordinate frame.

In einem praktischen AR-System sind die Landmarken nicht apriori bekannt und müssen aus den Bildsensoreingangsdaten gleichzeitig mit den Prozessen geschätzt werden, die die primäre und sekundäre Bewegung des AR-Systems als Teil eines Prozesses schätzen, der als simultane Lokalisierung und Zuordnung (SLAM) bezeichnet wird. Bei SLAM ist die Schätzung der primären und sekundären Bewegungen mit dem Lokalisierungsprozess verbunden, während die Schätzung der Landmarken mit dem Zuordnungsprozess verbunden ist. Wie nachfolgende genauer beschrieben, erzeugen die hierin beschriebenen AR-Systeme und Verfahren visuelle Beobachtungen von Landmarken, wobei die visuellen Beobachtungen basierend auf mehreren Videorahmen erzeugt werden, die im Lauf der Zeit aufgenommen werden, wenn sich das AR-System relativ zu dem Trägheits- und dem örtlichen Koordinatenrahmen bewegt. Da sich die Landmarken nicht bewegen, entspricht eine Änderung der Position einer Landmarke im Lauf der Zeit in den visuellen Beobachtungen tatsächlich einer Bewegung des AR-Systems, und das AR verwendet visuelle Beobachtungen der Landmarken zur Korrektur der Schätzungen der unter Verwendung eines Hidden-Markov-Modells und der Trägheitssensoreingänge erzeugten Bewegungen. Die Ausführungsformen des AR-Systems klassifizieren ferner die einzelnen Pixel in Rahmen von Bilddaten als zu dem Trägheits- oder örtlichen Koordinatenrahmen gehörend. Das AR-System identifiziert dann Landmarken in visuellen Beobachtungen mehrere Bilder und klassifiziert basierend auf den Klassifizierungen der Pixel aus jedem Bild, ob die Landmarken zu dem Trägheitskoordinatenrahmen oder dem örtlichen Koordinatenrahmen gehören. Dieser Klassifizierungsprozess ermöglicht die Schätzung sekundärer Bewegung und verbessert die Genauigkeit der Schätzung primärer Bewegung.In a practical AR system, the landmarks are not a priori known and must be estimated from the image sensor input data simultaneously with the processes that estimate the primary and secondary motion of the AR system as part of a process called simultaneous localization and allocation (SLAM) becomes. For SLAM, the estimation of the primary and secondary movements is associated with the localization process, while the landmark estimation is associated with the assignment process. As described in more detail below, the AR systems and methods described herein generate visual landmark observations, wherein the visual observations are generated based on multiple video frames acquired over time as the AR system moves relative to the inertial and spatial landmarks moved to the local coordinate frame. As the landmarks do not move, a change in the position of a landmark over time in the visual observations actually corresponds to a movement of the AR system, and the AR uses visual observations of the landmarks to correct the estimates using a hidden Markov mark. Model and the inertial sensor inputs generated movements. The embodiments of the AR system further classify the individual pixels in frames of image data than belonging to the inertial or local coordinate frame. The AR system then identifies landmarks in visual observations of multiple images and, based on the classifications of pixels from each image, classifies whether the landmarks belong to the inertial coordinate frame or the local coordinate frame. This classification process allows the estimation of secondary motion and improves the accuracy of primary motion estimation.

1 ist ein schematisches Diagramm eines AR-Systems 100. Das AR-System 100 enthält einen Satz aus einer AR-Brille 104, die konfiguriert ist, auf dem Kopf eines Benutzers getragen zu werden, und einer AR-Steuereinheit 140, die entweder vollständig in die AR-Brille 104 integriert ist oder als eine oder mehrere Rechnervorrichtungen verkörpert ist, die operativ mit den Komponenten in der AR-Brille 104 verbunden sind. 1 is a schematic diagram of an AR system 100 , The AR system 100 contains a set of AR glasses 104 configured to be worn on the head of a user and an AR control unit 140 that are either completely in the AR glasses 104 is integrated or embodied as one or more computing devices operative with the components in the AR goggles 104 are connected.

Die AR-Brille 104 enthält Gläser 108A und 108B, ein Kamerasystem 112, das in der Ausführungsform aus 1 stereoskopische Kameras 112A und 112B enthält, und einen oder mehr Trägheitssensoren 116. Die Gläser 108A und 108B sind transparent und ermöglichen einem Benutzer, die umgebende physische Umgebung in einer ähnlichen Weise zu sehen, wie eine gewöhnliche Brille oder Sonnenbrille. Die Gläser 108A und 108B stellen entweder eine transparente Anzeige bereit, die eine Grafik in einem AR-System erzeugt, um Merkmale in der physischen Umgebung zu augmentieren, ohne die Sicht auf die physische Umgebung zu verbergen, oder stellen Oberflächen für die Projektion von Grafiken aus einer integrierten Projektionsvorrichtung in der AR-Brille 104 bereit. In noch einer anderen Ausführungsform enthält die AR-Brille 104 eine Projektionsvorrichtung, die Grafiken direkt in die Augen des Benutzers abgeben kann, und diese Ausführungsformen lassen optional die Gläser 108A und 108B aus. Das Kamerasystem 112 erzeugt stereoskopische Rahmen mit Bilddaten in Videodaten, um die physische Umgebung um die AR-Brille 104 aufzuzeichnen. Das Kamerasystem 112 enthält zwei Kameras 112A und 112B, die beide Rahmen von Bilddaten in einem Videodatenstream mit einer physischen Trennung zwischen den beiden Kameras 112A und 112B erzeugen, die stereoskopische Rahmen von Bilddaten bereitstellen. Während das Kamerasystem 112 stereoskopische Bilddaten bereitstellt, können die primären und sekundären Bewegungsschätzungsprozesse, die hierin beschrieben sind, auch unter Verwendung monoskopischer Bilddaten ausgeführt werden, die unter Verwendung einer einzelnen Kamera erzeugt werden. Die Trägheitssensoren 116 enthalten beispielsweise einen Mehrfachachsenbeschleunigungsmesser oder mehrere Einzelachsenbeschleunigungsmesser, die die lineare Beschleunigung in drei Richtungen messen, ein oder mehr Gyroskope, die die Drehbeschleunigung messen, um Trägheitssensordaten bereitzustellen, um die linearen und Winkelbeschleunigungen zu messen, die die AR-Brille 104 im Betrieb erfährt. In einigen Ausführungsformen sind die Trägheitssensoren 116 als eine Trägheitsmesseinheit (IMU) verkörpert, die mikroelektromechanische System- (MEMs) Vorrichtungen verwendet, um die Beschleunigungsmesser und die Gyroskope umzusetzen.The AR glasses 104 contains glasses 108A and 108B , a camera system 112 that in the embodiment of 1 stereoscopic cameras 112A and 112B contains, and one or more inertial sensors 116 , The glasses 108A and 108B are transparent and allow a user to see the surrounding physical environment in a similar way to ordinary glasses or sunglasses. The glasses 108A and 108B either provide a transparent display that generates a graphic in an AR system to augment features in the physical environment without obscuring the view of the physical environment, or provide surfaces for projection of graphics from an integrated projection device in the AR glasses 104 ready. In yet another embodiment, the AR goggles are included 104 a projection device that can deliver graphics directly into the user's eyes, and these embodiments optionally leave the glasses 108A and 108B out. The camera system 112 creates stereoscopic frames with image data in video data to the physical environment around the AR glasses 104 record. The camera system 112 contains two cameras 112A and 112B Both frames of image data in a video stream with a physical separation between the two cameras 112A and 112B generate stereoscopic frames of image data. While the camera system 112 Providing stereoscopic image data, the primary and secondary motion estimation processes described herein can also be performed using monoscopic image data generated using a single camera. The inertial sensors 116 For example, a multiple axis accelerometer or multiple single axis accelerometers that measure linear acceleration in three directions include one or more gyroscopes that measure spin to provide inertial sensor data to measure the linear and angular accelerations that the AR goggles 104 learns during operation. In some embodiments, the inertial sensors are 116 as an inertial measurement unit (IMU) that uses microelectromechanical system (MEMs) devices to translate the accelerometers and gyroscopes.

Die AR-Steuereinheit 140 enthält einen Prozessor 150, der mit einem Speicher 160 verbunden ist. Der Prozessor 150 in der AR-Steuereinheit 150 ist operativ mit Eingangsvorrichtungen verbunden, die einen Benutzereingang für das AR-System 100 bereitstellen, mit grafischen Ausgabeanzeigevorrichtungen wie Projektoren oder Anzeigen, die die Gläser 108A und 108B verwenden oder Grafiken direkt in die Augen eines Benutzers projizieren, das Kamerasystem 112 und die Trägheitssensoren 116.The AR control unit 140 contains a processor 150 that with a memory 160 connected is. The processor 150 in the AR control unit 150 is operatively connected to input devices that provide user input to the AR system 100 provide, with graphical output display devices such as projectors or displays, the glasses 108A and 108B use or project graphics directly into the eyes of a user, the camera system 112 and the inertial sensors 116 ,

Der Prozessor 150 ist eine digitale Logikvorrichtung, die beispielsweise eines oder mehr aus einem Mikroprozessor, Mikrocontroller, im Feld programmierbaren Gatearray (FPGA), digitalen Signalprozessor (DSP), anwendungsspezifisch integrierten Schaltkreis (ASIC) und dergleichen verkörpert. In einer illustrativen Ausführungsform ist der Prozessor 150 als ein System auf einem Chip (SoC) umgesetzt, das eine zentrale Prozessoreinheit (CPU) mit einem oder mehr Kernen enthält, sowie eine grafische Prozessoreinheit (GPU), die Hardware umsetzt, um die Erzeugung von Grafiken für die Anzeige für den Benutzer zu beschleunigen. In einigen Ausführungsformen setzt die CPU, die GPU oder eine separate digitale Logikvorrichtung in dem Prozessor 150 auch Hardwarebeschleunigung von Schlussfolgerungen unter Verwendung eines Encoder/Decoders für ein tiefes Convolutional Neural Network um, den das AR-System 100 verwendet, um Konflikte in Pixeln von Bilddatenrahmen zu lösen, die durch das Kamerasystem 112 in Situationen erzeugt werden, in denen das AR-System 100 sich in einer Umgebung befindet, die einen Trägheitskoordinatenrahmen und einen örtlichen Koordinatenrahmen gleichermaßen enthält. The processor 150 is a digital logic device embodying, for example, one or more of a microprocessor, microcontroller, field programmable gate array (FPGA), digital signal processor (DSP), application specific integrated circuit (ASIC), and the like. In an illustrative embodiment, the processor is 150 implemented as a system on a chip (SoC) that includes a central processing unit (CPU) with one or more cores, and a graphical processing unit (GPU) that implements hardware to speed the generation of graphics for display to the user , In some embodiments, the CPU, the GPU, or a separate digital logic device resides in the processor 150 Also hardware acceleration of conclusions using an encoder / decoder for a deep convolutional neural network around which the AR system 100 used to resolve conflicts in pixels of image frames generated by the camera system 112 be generated in situations where the AR system 100 is in an environment that contains both an inertia coordinate frame and a local coordinate frame.

Der Speicher 160 enthält eine oder mehr nichtflüchtige Speichervorrichtungen wie eine Solid-State- oder magnetische Speichervorrichtung, und eine oder mehr flüchtige Speichervorrichtungen, wie etwa Direktzugriffsspeicher (RAM), zum Speichern von Daten in dem AR-System 100. In 1 speichert der Speicher 160 Programmanweisungen 164, die der Prozessor 150 ausführt, um die hierin beschriebenen Operationen durchzuführen. Der Speicher 160 speichert Bilddaten 168, die mehrere Rahmen von Bilddaten in einem Videostream enthalten, den das Kamerasystem 112 während des Betriebs des AR-Systems 100 erzeugt. Der Speicher 160 speichert Trägheitssensordaten 172, die die Trägheitssensoren 116 während des Betriebs des AR-Systems 100 erzeugen. Der Speicher 160 speichert die Bilddaten 168 und die Trägheitssensordaten 172 mit Zeitstempeln, um dem AR-System 100 das Synchronisieren von Rahmen der Bilddaten aus dem Kamerasystem 112 mit den Trägheitssensordaten 172 zu ermöglichen die im Betrieb des AR-Systems 100 gleichzeitig auftreten. Der Speicher 160 speichert auch einen Encoder/Decoder für ein tiefes Convolutional Neural Network (CNN) 180, das eine epipolar eingeschränkte Lage verwendet, um eine Wahrscheinlichkeitskarte 184 pro Pixel zu erzeugen, die die Wahrscheinlichkeit identifiziert, dass jedes Pixel in einem Rahmen von Bilddaten 168 in Situationen, in denen das AR-System in Konflikt stehende Sensordaten empfängt, entweder dem Trägheitskoordinatenrahmen oder dem örtlichen Koordinatenrahmen entspricht. Der Speicher 160 speichert außerdem ein Hidden Markov Model (HMM) 200, das das AR-System 100 für die primäre Bewegungsschätzung und sekundäre Bewegungsschätzung gleichermaßen verwendet, unter Verwendung eines Zustandsmodells basierend auf einem zuvor geschätzten Zustand für die primäre und sekundäre Bewegung sowie vorhandene Zeiteingaben aus den Bilddaten 168, die Trägheitssensordaten 172, und die Ausgabe der Wahrscheinlichkeitskarte 184 pro Pixel. Der Speicher 160 speichert auch AR-Grafikdaten 188. Die AR-Grafikdaten 188 enthalten beispielsweise zweidimensionale Bilder, dreidimensionale geometrische Modelle und Texturen für die dreidimensionalen geometrischen Modelle, Shaderprogramme für die Ausführung durch Shaderhardware in einer GPU des Prozessors 150, und andere Daten, die das AR-System 100 verwendet, um Grafiken zu erzeugen, um eine Augmented-Reality-Ausgabe für den Benutzer bereitzustellen. Wie nachfolgend ausführlicher erklärt, ermöglichen die Verbesserungen der primären Bewegungsschätzung und der sekundären Bewegungsschätzung in dem AR-System 100 dem Prozessor 150 das Erzeugen von Grafiken mit genauer Platzierung in dem Trägheitskoordinatenrahmen und dem örtlichen Koordinatenrahmen unter Verwendung der AR-Grafikdaten 188.The memory 160 includes one or more non-volatile memory devices, such as a solid-state or magnetic memory device, and one or more volatile memory devices, such as random access memory (RAM), for storing data in the AR system 100 , In 1 saves the memory 160 program instructions 164 that the processor 150 to perform the operations described herein. The memory 160 stores image data 168 that contain multiple frames of image data in a video stream, the camera system 112 during operation of the AR system 100 generated. The memory 160 stores inertial sensor data 172 containing the inertial sensors 116 during operation of the AR system 100 produce. The memory 160 saves the image data 168 and the inertial sensor data 172 with timestamps to the AR system 100 synchronizing frames of the image data from the camera system 112 with the inertial sensor data 172 to enable in the operation of the AR system 100 occur simultaneously. The memory 160 also stores an Encoder / Decoder for a Deep Convolutional Neural Network (CNN) 180 that uses an epipolar-restricted location to create a probability map 184 per pixel, which identifies the probability that each pixel in a frame of image data 168 in situations where the AR system receives conflicting sensor data, either the inertia coordinate frame or the local coordinate frame. The memory 160 also stores a Hidden Markov Model (HMM) 200 that the AR system 100 used equally for the primary motion estimation and secondary motion estimation, using a state model based on a previously estimated state for the primary and secondary motion and existing time inputs from the image data 168 , the inertial sensor data 172 , and the output of the probability map 184 per pixel. The memory 160 also stores AR graphics data 188 , The AR graphics data 188 For example, they include two-dimensional images, three-dimensional geometric models and textures for the three-dimensional geometric models, shader programs for execution by shader hardware in a GPU of the processor 150 , and other data, the AR system 100 used to generate graphics to provide an augmented reality output to the user. As explained in more detail below, the enhancements enable the primary motion estimation and the secondary motion estimation in the AR system 100 the processor 150 generating graphics with exact placement in the inertial coordinate frame and the local coordinate frame using the AR graphics data 188 ,

Während 1 eine einzelne AR-Steuereinheit 140 für illustrative Zwecke zeigt, können alternative Ausführungsformen mehrere Rechnervorrichtungen zeigen, die die Funktionen des AR-Systems 100 unter Verwendung einer örtlichen Rechnervorrichtung, die durch den Benutzer getragen wird, und einer oder mehr Rechnervorrichtungen, die mit der örtlichen Rechnervorrichtung über ein verkabeltes oder drahtloses Datennetz kommuniziert. Beispielsweise verwendet ein AR-System in einigen Ausführungsformen externe Serverrechnervorrichtungen zur Durchführung einiger der hierin beschriebenen Funktionen, während eine kleinere örtliche Verarbeitungsvorrichtung, die in die AR-Brille 104 integriert ist oder von dem Benutzer separat getragen wird, andere Funktionen durchführt, die hierin beschrieben werden. So sollten alle Verweise auf die AR-Steuereinheit 140 und die Operation des Prozessors 150 und Speichers 160 verstanden werden, als würden sie auf eine einzelne Rechnervorrichtung oder eine Kombination aus mehreren Rechnervorrichtungen gleichermaßen zutreffen, die konfiguriert sind, zusammenzuarbeiten, um die hierin beschriebenen Ausführungsformen umzusetzen.While 1 a single AR control unit 140 For illustrative purposes, alternative embodiments may show multiple computing devices that perform the functions of the AR system 100 using a local computing device carried by the user and one or more computing devices communicating with the local computing device via a wired or wireless data network. For example, an AR system, in some embodiments, uses external server computing devices to perform some of the functions described herein, while a smaller local processing device incorporated into the AR glasses 104 is integrated or carried separately by the user performing other functions described herein. So should all references to the AR control unit 140 and the operation of the processor 150 and memory 160 are understood as being equally applicable to a single computing device or a combination of multiple computing devices that are configured to work together to implement the embodiments described herein.

2 ist ein Diagramm eines Hidden Markov Model (HMM) 200, das das AR-System 100 zur Schätzung der Laufbahnen der primären Bewegung und der sekundären Bewegung verwendet. 2 zeigt das HMM 200, das eine einzelne Gruppe von Zuständen und Eingaben 204 enthält, die auftritt, wenn das AR-System 100 keinen Bewegungskonflikt in Gruppe 204 erfährt, und zwei separate Gruppen von Zuständen und Eingängen 240 und 280, die die Schätzung der primären Bewegung (Gruppe 240) und die Schätzung der sekundären Bewegung (Gruppe 280) durchführen, wenn das System einen Konflikt der Sensordaten erfährt, weil sowohl ein Trägheitskoordinatenrahmen als auch ein örtlicher Koordinatenrahmen in den Rahmen der Bilddaten von dem Kamerasystem vorliegen. Ausführlicher enthält die Gruppe 204 mehrere Zustände, die die Laufbahn in einem einzelnen Trägheitskoordinatenrahmen, beginnend in einem Ausgangszustand 210A (Xo) und einschließlich weiterer Zustände 210B (X1) und 210C (Xm-), wobei der Zustand 210C (Xm-) die Endzustandsschätzung darstellt, die vor der Einführung eines örtlichen Koordinatenrahmens und der Schätzung primärer und sekundärer Bewegung erzeugt wird. In der Gruppe 204 von 2 sind die vorhandenen Zeitträgheitsbeobachtungen, die auf Daten von den Trägheitssensoren basieren, durch Knoten 208A (u1) und 208B (um-) dargestellt. Im Betrieb bestimmt das System 100 den nächsten Zustand der Reihe 210B - 210C basierend auf dem vorherigen Zustand und dem vorhandenen Eingang von den Trägheitssensorbeobachtungen, die in 208A - 208B gezeigt sind. So wird der Zustand 210C basierend auf dem vorherigen Zustand 210B (und ältere Zustände ignorierend, die bevor dem Zustand 210B aufgetreten sind) und den Trägheitsbeobachtungen 208B, die den aktuellen Eingang für den Zustand 210C darstellen, vorhergesagt. Die Trägheitsbeobachtungen 208A (u1) und 208B (um-) stellen Eingänge bereit, um dem HMM 200 zu ermöglichen, von einem Zustand auf den nächsten Zustand zu schalten, um aktualisierte Schätzungen der primären Bewegung zu erzeugen. 2 is a diagram of a Hidden Markov Model (HMM) 200 that the AR system 100 used to estimate the tracks of the primary movement and the secondary movement. 2 shows the HMM 200 containing a single group of states and inputs 204 contains, which occurs when the AR system 100 no movement conflict in group 204 experiences, and two separate groups of states and inputs 240 and 280 that estimate the primary movement (group 240 ) and the estimate of secondary movement (group 280 ) when the system experiences a conflict of sensor data because both an inertial coordinate frame and a local coordinate frame are present in the frame of the image data from the camera system. More detailed contains the group 204 multiple states representing the track in a single inertial coordinate frame, starting in an initial state 210A (Xo) and including other states 210B (X 1 ) and 210C (X m- ), where the state 210C (X m- ) represents the final state estimate generated prior to the introduction of a local coordinate frame and the estimate of primary and secondary motion. In the group 204 from 2 The existing skew observations based on data from the inertial sensors are by nodes 208A (u 1 ) and 208B (u m- ) shown. In operation, the system determines 100 the next state of the series 210B - 210C based on the previous state and the existing input from the inertial sensor observations made in 208A-208B are shown. This is the state 210C based on the previous state 210B (Ignoring older states before the state 210B occurred) and the inertial observations 208B which is the current input for the state 210C represent, predicted. The inertial observations 208A (u 1 ) and 208B (u m- ) provide inputs to the HMM 200 to switch from one state to the next state to generate updated estimates of the primary motion.

Isoliert bilden die Kombination von Zuständen und die Trägheitsbeobachtungen eine Art von Trägheitsnavigationssystem, das genaue primäre Bewegungsvorhersage in einem unrealistischen Szenario bereitstellen kann, in dem die Trägheitsbeobachtungen 208A und 208B immer perfekte Informationen zur Bewegung des AR-Systems bereitstellen. In praktischen Systemen sammeln sich jedoch selbst kleine Fehler der Trägheitsbeobachtungen 208A und 208B im Lauf der Zeit an und die vorhergesagten Bewegungswerte in den Zuständen erzeugen Ergebnisse, die nicht ausreichend genau sind, um praktisch mit einem AR-System verwendet zu werden. Daher nutzt das HMM 200 auch visuelle Beobachtungen 212A (z1 ) und 212B (z2 ), die basierend auf mehreren Rahmen von Videodaten und Landmarken erzeugt werden, die in den mehreren Rahmen der Videodaten wie durch den Landmarkenknoten 214 (L1 ) dargestellt identifiziert werden. Anders, als die primären Bewegungszustände in Knoten 210A - 210C, ist der Landmarkenknoten 214 ein einzelner Knoten, weil sich die Position einer Landmarke im Lauf der Zeit nicht ändert. Der genaue Satz der beobachteten Landmarken kann sich jedoch im Lauf der Zeit durch Änderungen der visuellen Beobachtungen ändern, wie etwa wenn die Kameras in einem AR-System Bilder einer Schildlandmarke im Lauf der Zeit erfassen, gefolgt durch weitere visuelle Beobachtungen, die die Schildlandmarke nicht enthalten, wenn die Kameras in dem AR-System die Landmarke nicht mehr sehen. Die endgültige Schätzung der Bewegung basiert auf der Vorhersage aus dem HMM 200 basierend auf dem vorherigen Zustand und den vorhandenen Trägheitseingängen und einem nachfolgenden Fehlerminimierungsprozess, der die visuellen Beobachtungen z der Landmarken L verwendet, um genaue Bewegungsschätzungen zu erzeugen.In isolation, the combination of states and the inertial observations form a type of inertial navigation system that can provide accurate primary motion prediction in an unrealistic scenario in which the inertial observations 208A and 208B always provide perfect information about the movement of the AR system. In practical systems, however, even small errors of inertial observations accumulate 208A and 208B over time and the predicted motion values in the states produce results that are not sufficiently accurate to be used in practice with an AR system. Therefore, the HMM uses 200 also visual observations 212A ( z 1 ) and 212B ( z 2 ) generated based on a plurality of frames of video data and landmarks included in the multiple frames of the video data as by the landmark node 214 ( L 1 ) are identified. Unlike the primary states of motion in nodes 210A - 210C , is the landmark node 214 a single node because the position of a landmark does not change over time. However, the precise set of observed landmarks may change over time due to changes in visual observations, such as when the cameras in an AR system acquire images of a Schildland mark over time, followed by further visual observations that do not include the Schildland mark when the cameras in the AR system no longer see the landmark. The final estimate of the movement is based on the prediction from the HMM 200 based on the previous state and existing inertia inputs, and a subsequent error minimization process using the visual observations z of the landmarks L to produce accurate motion estimates.

Das AR-System 100 funktioniert unter Verwendung der HMM-Gruppe 204 in Situationen, in denen kein Konflikt zwischen Sensordaten der Trägheitssensoren und des Kamerasystems vorliegt. Die Markov-Annahme, dass ein Zustand Xk nur vom Eingang uk und dem vorherigen Zustand Xk-1 abhängt, gilt jedoch nicht, sobald ein Bewegungskonflikt auftritt. Wenn ein solcher Konflikt auftritt, empfängt das AR-System 100 einen Benutzereingang, der ein Objekt identifiziert, das einen örtlichen Koordinatenrahmen bereitstellt, um es dem AR-System 100 zu ermöglichen, Schätzungen für die primäre Bewegung und die sekundäre Bewegung gleichermaßen bereitzustellen. Wie genauer in 8A und 8B dargestellt, ist eine nicht einschränkende Ausführungsform eines Objekts, das die örtlichen Koordinatenrahmen bereitstellt, das Armaturenbrett des Inneren eines Kraftfahrzeugs. Das AR-System 100 verwendet dann die beiden Zustandsgruppen in dem HMM 200 zum Schätzen primärer Bewegung (Gruppe 240) und sekundärer Bewegung (Gruppe 280). Die primäre Bewegungsgruppe 240 illustriert einschließlich die Zustände 242A (XW 1 ) und 242B (XW 2 ), und weitere Zustände werden im Lauf der Zeit während es Prozesses der primären Bewegungsschätzung erzeugt. Die primäre Bewegungsgruppe 240 enthält auch die Trägheitssensor Eingänge 244A (u3 ) und 244B (u4 ), die die primären Bewegungszustände X im Lauf der Zeit fortschreibt. Die visuellen Beobachtungen 248A (zW 1 ) und 248B (zW 2 ), die Landmarken aus dem Landmarkenschätzungsknoten 250 (LW 1 ) entsprechen, wo die Landmarken 250 Landmarken in dem Trägheitskoordinatenrahmen enthalten, die primärer Bewegung entsprechen, und Landmarken in dem örtlichen Koordinatenrahmen, die sekundärer Bewegung entsprechen. Die visuellen Beobachtungen 248A und 248B entsprechen Landmarken in den Bilddaten, die in einem separaten Prozess bestimmt werden, der nachfolgend beschrieben ist, aber jede Landmarke ist auch einem oder mehr Pixeln in den Originalbilddaten zugewiesen. Insbesondere verwenden die hierin beschriebenen Ausführungsformen einen Erkennungsprozess für „seltene“ Merkmale, der einen vergleichsweise kleine Anzahl von Landmarken in den Trägheits- und örtlichen Koordinatenrahmen erkennt, und jede Landmarke wird wieder einem Untersatz der Pixel in den Originalbildern zugewiesen.The AR system 100 works by using the HMM group 204 in situations where there is no conflict between sensor data from the inertial sensors and the camera system. The Markov assumption that a state X k only from the entrance u k and the previous state X k-1 depends, however, does not apply as soon as a motion conflict occurs. When such a conflict occurs, the AR system receives 100 a user input that identifies an object that provides a local coordinate frame to the AR system 100 to provide estimates for the primary movement and the secondary movement alike. How closer in 8A and 8B As illustrated, a non-limiting embodiment of an object that provides the local coordinate frames is the dashboard of the interior of a motor vehicle. The AR system 100 then uses the two state groups in the HMM 200 to appreciate primary movement (group 240 ) and secondary movement (group 280 ). The primary movement group 240 Illustrated including the states 242A (X W 1 ) and 242B ( X W 2 ), and further states are generated over time during the process of primary motion estimation. The primary movement group 240 Also includes the inertial sensor inputs 244A ( u 3 ) and 244B ( u 4 ), which are the primary states of motion X continues over time. The visual observations 248A ( z W 1 ) and 248B ( z W 2 ), the landmarks from the landmark estimation node 250 ( L W 1 ) correspond to where the landmarks 250 Contain landmarks in the inertial coordinate frame that correspond to primary motion and landmarks in the local coordinate frame that correspond to secondary motion. The visual observations 248A and 248B correspond to landmarks in the image data determined in a separate process described below, but each landmark is also assigned to one or more pixels in the original image data. In particular, the embodiments described herein use a "rare" feature recognition process that recognizes a comparatively small number of landmarks in the inertial and local coordinate frames, and each landmark is reassigned to a subset of the pixels in the original images.

In dem HMM 200 enthält die Gruppe 280 Zustände 282A (XSn 1 ) und 282B (XSn 2 ), die einer sekundären Bewegung entsprechen. Anders, als die primäre Bewegung aktualisiert die Gruppe 280 die geschätzten Zustände für die sekundäre Bewegung nur basierend auf visuellen Beobachtungen von Landmarken, die sich in dem örtlichen Koordinatenrahmen befinden.In the HMM 200 contains the group 280 conditions 282A ( X Sn 1 ) and 282B ( X Sn 2 ), which correspond to a secondary movement. Unlike when the primary movement updates the group 280 the esteemed Secondary motion states based only on visual observations of landmarks located in the local coordinate frame.

2 zeigt außerdem eine Wahrscheinlichkeitskarte 184 (M) pro Pixel, die auf die Bilddateneingänge für die Zustände in den HMM-Gruppen 240 und 280 angewendet werden. In der Ausführungsform aus 2 werden die visuellen Beobachtungen 248A und 248B basierend auf Landmarken in allen Bilddaten erzeugt, die den Trägheits- und den örtlichen Koordinatenrahmen enthalten können. Um Konflikte in den Sensordaten zu lösen, in denen die Pixel einiger Landmarken dem Trägheitskoordinatenrahmen entsprechen, während die Pixel anderer Landmarken dem örtlichen Koordinatenrahmen entsprechen, stellt die Wahrscheinlichkeitskarte pro Pixel einen Gewichtungswert für jedes Pixel bereit, der die Wahrscheinlichkeit anzeigt, dass das Pixel entweder dem Trägheitskoordinatenrahmen oder dem örtlichen Koordinatenrahmen entspricht. Da jede der visuellen Beobachtungen 248A und 248B einem Satz Pixel in jedem Rahmen der Bilddaten zugeordnet werden kann, ermöglicht die Wahrscheinlichkeitskarte 184 pro Pixel einem AR-System das Klassifizieren der visuellen Beobachtungen der Landmarken als in den Trägheitskoordinatenrahmen für die primäre Bewegungsschätzung in der Gruppe 240 oder in den örtlichen Koordinatenrahmen für die sekundäre Bewegungsschätzung in der Gruppe 280 fallend. Beispielsweise enthält die Wahrscheinlichkeitskarte 184 pro Pixel in einer Konfiguration einen numerischen Wert in einem Bereich von [0,0, 1,0] für jedes Pixel, wobei ein Wert von 0,0 vollständige Sicherheit anzeigt, dass ein Pixel im Trägheitskoordinatenrahmen liegt, während ein Wert von 1,0 vollständig Sicherheit anzeigt, dass ein Pixel im örtlichen Koordinatenrahmen liegt. Zwischenwahrscheinlichkeitswerte für jedes Pixel können unterschiedliche Grade der Sicherheit anzeigen, dass ein Pixel in dem Koordinatenrahmen enthalten ist (z. B. zeigt ein Wert von 0,5 an, dass es gleich wahrscheinlich ist, dass sich das Pixel in jedem Koordinatenrahmen befindet). 2 also shows a probability map 184 (M) per pixel corresponding to the image data inputs for the states in the HMM groups 240 and 280 be applied. In the embodiment of 2 become the visual observations 248A and 248B generated based on landmarks in all image data that may contain the inertial and the local coordinate frames. To resolve conflicts in the sensor data where the pixels of some landmarks correspond to the inertial coordinate frame while the pixels of other landmarks correspond to the local coordinate frame, the probability map provides a weighting value per pixel for each pixel indicating the likelihood that the pixel will either be the one Inertial coordinate frame or the local coordinate frame. Because each of the visual observations 248A and 248B a set of pixels in each frame of image data can be assigned to the probability map 184 per pixel, to an AR system, classifying the visual observations of the landmarks as into the inertial coordinate frame for the primary motion estimation in the group 240 or in the local coordinate frame for the secondary motion estimation in the group 280 falling. For example, the probability map contains 184 per pixel in a configuration, a numerical value in a range of [0,0, 1,0] for each pixel, where a value of 0,0 indicates complete security that one pixel is in the inertial coordinate frame, while a value of 1,0 full security indicates that a pixel is in the local coordinate frame. Interval values for each pixel may indicate different degrees of confidence that a pixel is included in the coordinate frame (eg, a value of 0.5 indicates that it is equally likely that the pixel will be in each coordinate frame).

Die Wahrscheinlichkeitsgewichtungskarte 184 pro Pixel verbessert die Genauigkeit der primären und sekundären Bewegungsschätzung in dem HMM 200, indem sie sicherstellt, dass das HMM 200 die größte Gewichtung Pixeln der visuellen Beobachtungen 248A und 248B mit der höchsten Wahrscheinlichkeit zuweist, dem Trägheitskoordinatenrahmen für die primären Bewegungsschätzungszustände 242A und 242B zu gehören, während die Pixel mit der höchsten Wahrscheinlichkeit, visuellen Beobachtungen in dem örtlichen Koordinatenrahmen zu entsprechen, für die zweiten Bewegungsschätzungszustände 282A und 282B verwendet werden. Wie nachfolgend genauer beschrieben, verwendet das AR-System 100 Encoder/Decoderrahmenwerk für ein tiefes Convolutional Neural Network mit einer epipolar eingeschränkten Lage zum Erzeugen der Wahrscheinlichkeitskarte 184 pro Pixel.The probability weighting card 184 per pixel improves the accuracy of the primary and secondary motion estimation in the HMM 200 By making sure that the HMM 200 the largest weighting pixels of visual observations 248A and 248B assigns with the highest probability, the inertial coordinate frame for the primary motion estimation states 242A and 242B while the pixels most likely to correspond to visual observations in the local coordinate frame belong to the second motion estimation states 282A and 282B be used. As described in more detail below, the AR system uses 100 Encoder / decoder framework for a deep convolutional neural network with an epipolar restricted location for generating the probability map 184 per pixel.

Das AR-System 100 verwendet eine „Maximum à Posteriori“ (MAP) Kriterienoptimierung zum Schätzen des Zustands des Systems in dem HMM 200. Der Optimierungsprozess minimiert Reste (Fehler) û in messungsbasierten Schätzungen, die durch die Trägheitssensoren 116 erzeugt wurden, und den Restwerten ẑk in Schätzungen, die auf visuellen Beobachtungen in den Bilddaten basieren, die durch das Kamerasystem 112 erzeugt wurden. Die Wahrscheinlichkeitskarte 184 pro Pixel (M) wird mit dem MAP-Optimierungsprozess verwendet, um die korrekte Assoziation von Resten entweder zu dem Trägheitskoordinatenrahmen (W) oder dem örtlichen Koordinatenrahmen (Sn ) zu bestimmen. Der MAP-Optimierungsprozess will die Restwerte minimieren und die korrekte Zuordnung von Pixeln und deren entsprechenden visuellen Merkmale z zu dem Trägheits- oder dem örtlichen Koordinatenrahmen ermöglicht es dem AR-System 100, die Restwerte zu einem größeren Grad zu verringern, als praktikabel ist, wenn unter der falschen Annahme verfahren wird, dass alle Sensordaten dem Trägheitskoordinatenrahmen entsprechen. Der MAP-Prozess wird nachfolgend mathematisch zur Verringerung der Reste X̂W in dem Trägheitskoordinatenrahmen für primäre Bewegungsschätzung und X ^ k S n

Figure DE102019207888A1_0001
im örtlichen Koordinatenrahmen für sekundäre Bewegungsschätzung beschrieben: X ^ W = a r g m a x X k w P ( X m ) P ( X k 1 W | X m ) P ( X k W | X k 1 W , u k , z k , M )   X ^ k S n = a r g m a x X k S n P ( X m ) P ( X k 1 S n | X m ) P ( X k S n | X k 1 S n , z k , M )
Figure DE102019207888A1_0002
The AR system 100 uses a Maximum à Posteriori (MAP) criteria optimization to estimate the state of the system in the HMM 200 , The optimization process minimizes residuals (errors) û in measurement-based estimates made by the inertial sensors 116 were generated, and the residual values k Z in estimates that are based on visual observations in the image data obtained by the camera system 112 were generated. The probability map 184 per pixel (M) is used with the MAP optimization process to determine the correct association of residues to either the inertial coordinate frame (W) or the local coordinate frame (FIG. S n ). The MAP optimization process wants to minimize the residuals, and the correct mapping of pixels and their corresponding visual features z to the inertial or local coordinate frame allows the AR system 100 to reduce the residual values to a greater degree than is practicable if it is mistakenly assumed that all the sensor data correspond to the inertial coordinate frame. The MAP process will be described mathematically below to reduce the residuals X W in the inertial coordinate frame for primary motion estimation and X ^ k S n
Figure DE102019207888A1_0001
described in the local coordinate frame for secondary motion estimation: X ^ W = a r G m a x X k w P ( X m - ) P ( X k - 1 W | X m - ) P ( X k W | X k - 1 W . u k . z k . M ) X ^ k S n = a r G m a x X k S n P ( X m - ) P ( X k - 1 S n | X m - ) P ( X k S n | X k - 1 S n . z k . M )
Figure DE102019207888A1_0002

Im HMM 200 und den obigen Gleichungen entspricht der Endzustand Xm- in der Gruppe 204 einer endgültigen geschätzten Bewegungslaufbahn, die vor dem Auftreten des Bewegungskonflikts mit zwei verschiedenen Koordinatenrahmen erzeugt wird. Der Endzustand Xm- in der Gruppe 204 des HMM wird zum Anfangszustand für die primäre Bewegungsschätzung in Gruppe 240 und die sekundäre Bewegungsschätzung in Gruppe 280, die voneinander durch die Unterschiede der primären und sekundären Bewegung abweichen. Die Formeln P ( X m ) P ( X k 1 W | X m )  und  P ( X m ) P ( X k 1 S n | X m )

Figure DE102019207888A1_0003
stellen die Übergangswahrscheinlichkeit vom kombinierten Zustandsschätzer in Gruppe 204 auf den primären Bewegungszustandsschätzer in Gruppe 240 bzw. den sekundären Bewegungszustandsschätzer in Gruppe 280 dar. In einer Umgebung, in der Landmarken nicht stationäre sind, können die visuellen Beobachtungen nicht ausschließlich basierend auf dem aktuellen Zustand Xk des Systems mit dem passenden Zustandsschätzer assoziiert werden. Neben dem aktuellen Zustand wurde auch die Bewegung, die mit der Landmarke assoziiert ist, bestimmt. Das AR-System 100 schätzt die Assoziation unter Verwendung der Wahrscheinlichkeitskarte pro Pixel M zum Klassifizieren der Wahrscheinlichkeit, dass jedes Pixel, und die Landmarken in den visuellen Beobachtungen, die Pixeln entsprechen, sich in dem Trägheitskoordinatenrahmen oder dem örtlichen Koordinatenrahmen befinden.In the HMM 200 and the above equations corresponds to the final state X m- in the group 204 a final estimated motion trajectory created prior to the occurrence of the motion conflict with two different coordinate frames. The final state X m- in the group 204 of the HMM becomes the initial state for the primary motion estimation in group 240 and the secondary motion estimation in group 280 which differ from each other by the differences of the primary and secondary movements. The formulas P ( X m - ) P ( X k - 1 W | X m - ) and P ( X m - ) P ( X k - 1 S n | X m - )
Figure DE102019207888A1_0003
put the Transition probability of the combined state estimator in group 204 on the primary motion state estimator in group 240 or the secondary motion state estimator in group 280 In an environment where landmarks are not stationary, the visual observations can not be based solely on the current state X k of the system associated with the appropriate state estimator. In addition to the current state, the movement associated with the landmark was also determined. The AR system 100 estimates the association using the probability map per pixel M for classifying the probability that each pixel, and the landmarks in the visual observations corresponding to pixels are in the inertial coordinate frame or the local coordinate frame.

3 zeigt einen Prozess 300, den das AR-System 100 aus 1 umsetzt, um primäre Bewegungsschätzung und sekundäre Bewegungsschätzung unter Verwendung des HMM 200 von 2 in Situationen auszuführen, in denen ein Bewegungskonflikt durch das Vorhandensein eines Trägheitskoordinatenrahmens und eines örtlichen Koordinatenrahmens in den Sensordaten auftritt. In der folgenden Diskussion bezieht sich ein Verweis auf den Prozess 300, der eine Funktion oder Aktion ausführt, auf die Operation eines Prozessors, wie etwa des Prozessors 150, um gespeicherte Programmanweisungen auszuführen, um die Funktion oder Aktion in Zusammenhang mit anderen Komponenten eines AR-Systems umzusetzen. Wie nachfolgend ausführlicher beschrieben, enthält der Prozess 300 die Erzeugung einer Konfliktwahrscheinlichkeitskarte pro Pixel und die Schätzung der Laufbahnen der primären Bewegung und der sekundären Bewegung unter Verwendung der Konfliktwahrscheinlichkeitskarte pro Pixel zum Identifizieren von Landmarken in Rahmen der Eingangsbilddaten, die dem Trägheitskoordinatenrahmen und dem örtlichen Koordinatenrahmen entsprechen. Das AR-System 100 erzeugt außerdem Grafiken zum augmentieren der physischen Umgebung um das AR-System 100 basierend auf den Schätzungen der Laufbahnen der primären Bewegung und sekundären Bewegung. Der Prozess 300 wird auch als Mehrfachbewegungs-„Motion-Conflict Visual-Inertial Odometry“-(MC-VIO) Prozess bezeichnet, weil der Prozess 300 Bewegungskonflikt in Trägheits- und örtlichen Koordinatenrahmen der Bilddaten identifiziert und den Bewegungskonflikt verwendet, um verbesserte Schätzungen der primären Bewegung und der sekundären Bewegung in einem visuellen Trägheitsodometrieprozess bereitzustellen. 3 shows a process 300 the AR system 100 out 1 translates to primary motion estimation and secondary motion estimation using the HMM 200 from 2 in situations where a motion conflict occurs due to the presence of an inertial coordinate frame and a local coordinate frame in the sensor data. In the following discussion, a reference to the process refers 300 performing a function or action on the operation of a processor such as the processor 150 to execute stored program statements to implement the function or action associated with other components of an AR system. As described in more detail below, the process includes 300 generating a conflict probability map per pixel and estimating the primary motion and secondary motion tracks using the conflict probability map per pixel to identify landmarks in frames of the input image data corresponding to the inertial coordinate frame and the local coordinate frame. The AR system 100 also generates graphics to augment the physical environment around the AR system 100 based on the estimates of the tracks of the primary movement and secondary movement. The process 300 is also referred to as a multi-motion "Motion-Conflict Visual-Inertial Odometry" (MC-VIO) process because of the process 300 Motion conflict in inertial and local coordinate frames of the image data identified and the motion conflict used to provide improved estimates of the primary movement and the secondary movement in a visual inertial odometry process.

Erzeugung der Konfliktwahrscheinlichkeitskarte pro PixelGeneration of the conflict probability map per pixel

Während des Prozess 300 empfängt der Prozessor 150 die Bildrahmendaten 168 und die Trägheitssensordaten 172 von dem Kamerasystem 112 bzw. den Trägheitssensoren 116 in der AR-Brille 104. Der Prozessor 150 verwendet die Bildrahmendaten 168 und die Trägheitssensordaten 172 als Eingänge für den Encoder/Decoder des tiefen neuralen Netzwerks 180 zum Erzeugen der Wahrscheinlichkeitskarte 184 pro Pixel (Block 304).During the process 300 the processor receives 150 the picture frame data 168 and the inertial sensor data 172 from the camera system 112 or the inertial sensors 116 in the AR glasses 104 , The processor 150 uses the image frame data 168 and the inertial sensor data 172 as inputs to the deep neural network encoder / decoder 180 to generate the probability map 184 per pixel (block 304 ).

4 zeigt den CNN-Encoder/Decoder 180 mit der epipolar eingeschränkten Lage ausführlicher. Der CNN-Encoder/Decoder 180 enthält einen CNN-Encoder 408, eine epipolar eingeschränkte Lage 416 und einen CNN-Decoder 432, der die Ausgangswahrscheinlichkeitskarte 184 pro Pixel erzeugt. Der CNN-Encoder 408 erzeugt Ausgänge 412A und 412B basierend auf den Eingängen von zwei Eingangsbildrahmen 404A und 404B, die zwei Bilder sind, die zu zwei verschiedenen Zeitpunkten aufgenommen wurden, einschließlich eines Bildrahmens 404A eines vorherigen Zeitpunkts (Zeit t) und eines aktuellen Bildrahmens 404B (Zeit t+1). In einigen Ausführungsformen sind die Eingangsbildrahmen zwei konsekutive Rahmen in einer Videodatensequenz, die durch das Kamerasystem 112 erzeugt wird, wenn auch in anderen Ausführungsformen die Zeitdifferenz zwischen den beiden Bildrahmen größer sein kann als die Zeitspanne zwischen konsekutiven Bildrahmen in den Videodaten. 4 shows the CNN encoder / decoder 180 with epipolar limited position in more detail. The CNN encoder / decoder 180 contains a CNN encoder 408 , an epipolar restricted location 416 and a CNN decoder 432 , which is the initial probability map 184 generated per pixel. The CNN encoder 408 generates outputs 412A and 412B based on the inputs of two input picture frames 404A and 404B , which are two images taken at two different times, including a picture box 404A a previous time (time t) and a current picture frame 404B (Time t + 1). In some embodiments, the input image frames are two consecutive frames in a video data sequence generated by the camera system 112 is generated, although in other embodiments, the time difference between the two picture frames may be greater than the time period between consecutive picture frames in the video data.

Der CNN-Encoder 408 extrahiert Dimensionsmerkmale aus den Bildrahmen 404A und 404B unter Verwendung eines „Siamesischen“ Codierungsprozesses, was bedeutet, dass die Bildrahmen 404A und 404B beide dem CNN-Encoder 408 separat bereitgestellt werden, um die codierten Ausgänge 412A und 412B zu erzeugen, die den Eingangsbildrahmen 404A bzw. 404B entsprechen. Insbesondere wird der CNN-Encoder 408 einmal unter Verwendung eines Schulungsprozesses geschult, und dieselbe CNN-Encoderstruktur mit den geschulten gewichteten Werten in den gefalteten Lagen wird verwendet, um die codierten Ausgänge 412A und 412B für die Eingangsbildrahmen 404A und 404B zu erzeugen. In einigen Ausführungsformen verwendet der Prozessor 150 getrennte Instanzen des Codierungsblocks 408 zur parallelen Durchführung des Codierungsprozesses.The CNN encoder 408 Extracts dimension features from the image frames 404A and 404B using a "Thai" encoding process, which means that the image frames 404A and 404B both the CNN encoder 408 be provided separately to the coded outputs 412A and 412B to generate the input picture frame 404A respectively. 404B correspond. In particular, the CNN encoder 408 Once trained using a training process, the same CNN encoder structure with the trained weighted values in the folded layers is used to encode the encoded outputs 412A and 412B for the input picture frame 404A and 404B to create. In some embodiments, the processor uses 150 separate instances of the coding block 408 for the parallel execution of the coding process.

Der Encoder/Decoder für ein Convolutional Neural Network 180, der auch als Encoder/Decoder für ein „tiefes“ neuralen Netzwerk bezeichnet wird, weil der CNN-Encoder 408 und der CNN-Decoder 432 beide mehrere Lagen, die eine gefaltete Lage bereitstellen, eine Aktivierungsfunktion (die gerichtete lineare Einheit, ReLu, die in der Ausführungsform aus 4 verwendet wird), und eine Downsampling- (im Encoder 408) oder Upsampling-Funktion (im Decoder 412) in jeder Lage enthalten. In dem Beispiel von 4 enthält der CNN-Encoder 408 fünf gefaltete Lagen. Jede Lage wird durch eine Batchnormalisierungslage und deine ReLU-Aktivierung gefolgt, mit Ausnahme der letzten Lage. Der CNN-Encoder 408 entfernt die ReLU-Aktivierungsfunktion von der letzten gefalteten Lage, um die negativen Werte vor den produktinternen Operationen in dem Merkmal zu halten. Maximal vier Poolinglagen wurden zwischen den gefalteten Lagen angewendet, die nacheinander die Zwischenausgaben der gefalteten Lagen downsamplen, um die Ausgänge 412A und 412B zu erzeugen. Die beiden codierten Ausgänge 412A und 412B enthalten codierte Funktionen von den beiden ursprünglichen Eingangsbildrahmen 404A und 404B. Der Begriff „Empfangsfeld“ bezieht sich auf einen Vektor von Elementen in den codierten Ausgängen 412A und 412B, die einer Gruppe Pixeln in den ursprünglichen Bildrahmendaten entsprechen. Der Endwahrscheinlichkeitskartenausgang 184 klassifiziert Pixel basierend auf einer Kombination aus den codierten Ausgängen 412A und 412B, die unter Verwendung der epipolar eingeschränkten Lage 416 erzeugt werden, die die codierten Ausgänge 412A und 412B als Eingänge empfängt.The Encoder / Decoder for a Convolutional Neural Network 180 which is also referred to as a "deep" neural network encoder / decoder because of the CNN encoder 408 and the CNN decoder 432 both multiple layers providing a folded layer, an activation function (the directed linear unit, ReLu, in the embodiment of 4 used), and a downsampling (in the encoder 408 ) or Upsampling function (in the decoder 412 ) in every situation. In the example of 4 contains the CNN encoder 408 five folded layers. Each layer is followed by a batchnormalization layer and your ReLU activation, with the exception of the last layer. The CNN encoder 408 removes the ReLU activation function from the last folded layer to hold the negative values before the in-product operations in the feature. A maximum of four pooling positions were applied between the folded layers, which successively downsampled the intermediate outputs of the folded layers to the outputs 412A and 412B to create. The two coded outputs 412A and 412B contain coded functions from the two original input picture frames 404A and 404B , The term "reception field" refers to a vector of elements in the coded outputs 412A and 412B which correspond to a group of pixels in the original frame data. The final probability card output 184 classifies pixels based on a combination of the coded outputs 412A and 412B using the epipolar restricted location 416 which are the coded outputs 412A and 412B as inputs receives.

In den hierin beschriebenen Ausführungsformen stellt die epipolar eingeschränkte Lage 416 Einschränkungen zwischen den codierten Ausgänge 412A und 412B von zwei Sätzen Bildrahmendaten dar, die im Lauf der Zeit erzeugt werden (Zeiten t und t+1), mit einem Beispiel eines Videosystems, das Bildrahmen mit einer Rate von 30 Rahmen pro Sekunde erzeugt, die sukzessive Rahmen von Bilddaten mit einer Rate von etwa einem Rahmen pro 33,3 Millisekunden erzeugt. Durch die Bewegung des AR-Systems 100 im Lauf der Zeit zeigen die beiden Rahmen der Bilddaten auch eine räumliche Transformation, die der Bewegung des AR-Systems zwischen den Zeiten t und t+1 entspricht. Eine epipolare Linie bezieht sich auf ein Element, das ein einzelnes Element (Empfangsfeld) in einem von zwei codierten Ausgängen zu sein scheint, während es aufgrund der Bewegung der Element im Lauf der Zeit zwischen den beiden Bildrahmen aus Perspektive des Kamerasystems 112 eine Linie in dem codierten Ausgang zu sein scheint.In the embodiments described herein, the epipolar confined posture 416 Restrictions between the coded outputs 412A and 412B of two sets of image frame data generated over time (times t and t + 1) with an example of a video system that generates image frames at a rate of 30 frames per second, the successive frames of image data at a rate of about one frame per 33.3 milliseconds. By the movement of the AR system 100 Over time, the two frames of image data also show a spatial transformation that corresponds to the motion of the AR system between times t and t + 1. An epipolar line refers to an element that appears to be a single element (receiving field) in one of two encoded outputs, while due to the movement of the element over time between the two image frames from the perspective of the camera system 112 seems to be a line in the coded output.

Als vereinfachtes Beispiel einer epipolaren Linie enthält ein erstes Bild und ein entsprechend codierter Ausgang von dem CNN-Encoder 408 das Ende einer Dübelstange, die mit dem Ende zuerst zu sehen ist, einen ein einzelnes Empfangsfeld der erste codierte Ausgang ist, der alle Informationen enthält, die zu der Dübelstange verfügbar sind, die sich von der Kamera weg in einer Tiefendimension erstreckt. Ein zweites Bild, das erzeugt wird, nachdem die Kamera sich weiterbewegt, zeigt dieselbe Dübelstange aus einem anderen Winkel, wobei der Codierte Ausgang von dem CNN-Encoder 408 die Dübelstange als eine Linie von Elementen darstellt, da das zweite Bild weitere Informationen zu der Dübelstange zeigt, und die Linie, die sich durch die Dübelstange erstreckt, alle Informationen in einem dreidimensionalen Raum darstellt, den das zweite Bild nach dem einzelnen Element codiert, das aus dem ersten Bild genommen wird. So entspricht das eine Empfangsfeld, das der Dübelstange in dem ersten codierten Ausgang entspricht, nun jedem Empfangsfeld in dem zweiten codierten Ausgang entlang der Linie und ein einzelnes nulldimensionales Element weist nun auf eine eindimensionale Anordnung von Elementen. In dem AR-System 100 stellen die Trägheitssensordaten von den Trägheitssensoren 116 Informationen bereit, die es dem Prozessor 150 ermöglichen, die Änderungen am Winkel zwischen den ersten und zweiten Bildern der Dübelstange in diesem Beispiel zu identifizieren und allgemeiner jeden Satz von zwei Bildern von dem Kamerasystem 112 einzustellen. Ähnliche epipolare Linien sind auch in anderen Sätzen von zwei Bildeingängen verfügbar, basierend auf der Bewegung des AR-Systems 100 zwischen der Erzeugung der zwei Bilder, und das AR-System 100 verwendet die geometrische Beziehung zwischen der Bewegung der Kamera und den codierten Ausgängen der beiden Bilder zum Identifizieren der epipolaren Linien.As a simplified example of an epipolar line includes a first image and a corresponding coded output from the CNN encoder 408 the end of a dowel rod, which is seen end-to-end, is a single receive field, the first encoded output, containing all information available to the dowel bar extending away from the camera in a depth dimension. A second image, which is generated after the camera advances, shows the same dowel rod from a different angle, with the encoded output from the CNN encoder 408 represents the dowel rod as a line of elements, since the second image shows more information about the dowel rod, and the line that extends through the dowel rod represents all the information in a three-dimensional space that the second image encodes for the single element taken from the first picture. Thus, a receive field corresponding to the dowel rod in the first encoded output now corresponds to each receive field in the second encoded output along the line and a single zero-dimensional element now points to a one-dimensional array of elements. In the AR system 100 set the inertial sensor data from the inertial sensors 116 Information ready to the processor 150 allow to identify the changes in the angle between the first and second images of the dowel rod in this example, and more generally each set of two images from the camera system 112 adjust. Similar epipolar lines are also available in other sets of two image inputs, based on the motion of the AR system 100 between the generation of the two images, and the AR system 100 uses the geometric relationship between the movement of the camera and the coded outputs of the two images to identify the epipolar lines.

In 4 stellt die Entsprechung zwischen den jeweiligen Felderblocks 420 eine Verarbeitungsoperation dar, die unter Verwendung des Prozessors 150 eine Korrespondenz zwischen relativen Empfangsfeldelementen in den codierten Ausgängen 412A und 412B basierend auf der Bewegung des AR-Systems 100 zu identifizieren, das in den Sensordaten identifiziert ist, die von den Trägheitssensoren 116 während des Zeitraums von t bis t+1 empfangen wurden, der der Bewegung des AR-Systems 100 zwischen den Zeiten, zu dem das Kamerasystem 112 die Rahmen der Bilddaten erzeugt, entspricht. Über einen kurzen Zeitraum zwischen den beiden Rahmen stellen die Trägheitssensordaten eine ausreichend genaue Messung der Bewegung des Kamerasystems 112 in der AR-Vorrichtung 100 bereit, um den Prozessor 150 in die Lage zu versetzen, die epipolaren Linien in den jeweiligen Feldern des codierten Ausgangs 412B zu identifizieren, die einzelnen Empfangsfeldern in dem ersten codierten Ausgang 412A entsprechen. So verwendet das AR-System 100 sowohl Videorahmen von dem Kamerasystem 112 als Eingänge für den CNN-Konfliktmelder 180 und verwendet Trägheitsdaten von den Trägheitssensoren 116 zum Identifizieren der Zuordnung zwischen jeweiligen Feldern und den epipolaren Linien in der epipolar eingeschränkten Lage 416. Die epipolar eingeschränkte Lage 416 „beschränkt“ jedes Empfangsfeld von dem ersten codierten Ausgang 412A, sodass es nur mit einer einzigen Zeile von Empfangsfeldern in dem zweiten codierten Ausgang 412B übereinstimmt, statt potentiell jedes Empfangsfeldelement in dem ersten codierten Ausgang 412A einem der Empfangsfeldelemente in dem zweiten codierten Ausgang 412B entsprechend aufzuweisen, was die Genauigkeit des nachfolgenden CNN-Decoders 432 verbessert.In 4 represents the correspondence between the respective field blocks 420 a processing operation using the processor 150 a correspondence between relative receive field elements in the coded outputs 412A and 412B based on the movement of the AR system 100 identified in the sensor data identified by the inertial sensors 116 received during the period from t to t + 1, that of the movement of the AR system 100 between the times when the camera system 112 generates the frames of the image data corresponds. Over a short period of time between the two frames, the inertial sensor data provides a sufficiently accurate measurement of camera system motion 112 in the AR device 100 ready to the processor 150 to enable the epipolar lines in the respective fields of the coded output 412B identify the individual receive fields in the first coded output 412A correspond. So uses the AR system 100 both video frames from the camera system 112 as inputs to the CNN conflict detector 180 and uses inertial data from the inertial sensors 116 for identifying the association between respective fields and the epipolar lines in the epipolar restricted location 416 , The epipolar limited location 416 "Constrains" each receive field from the first encoded output 412A so that it only has a single line of receive fields in the second encoded output 412B instead of potentially each receive field element in the first coded output 412A one of the receive field elements in the second coded output 412B correspondingly demonstrate what the accuracy of the subsequent CNN decoder 432 improved.

5 zeigt die Struktur und die Operation der epipolaren Lage 416 genauer. Die epipolar eingeschränkte Lage 416 verwendet die Trägheitsinformationen zum Zweck der Erkennung eines Bewegungskonflikts. Wie oben beschrieben, verringern die epipolaren Linien die Suchdimension potenzieller Übereinstimmungen von zwei Dimensionen auf eine Dimension. In 5 entspricht ein einfaches Empfangsfeld 520 in dem ersten codierten Ausgang 412A von der vorherigen Zeit t einer ganzen epipolaren Zeile 524 von Empfangsfeldern in dem zweiten codierten Ausgang 412B von der aktuellen Zeit t+1. Wie in 4 und 5 gezeigt ist, sind die codierten Ausgänge 412A und 412B dreidimensionale Strukturen, die eine Reihe von codierten Darstellungen eines entsprechenden Eingangsbilds mit verringerter Auflösung zeigen, wobei jede Darstellung mit verringerter Auflösung codierte Merkmale enthält, die durch den CNN-Encoder 408 erzeugt werden. 5 zeigt einen Vektor 520 ( R t i , j )

Figure DE102019207888A1_0004
eines einzelnen Empfangsfelds an den Koordinaten i,j in dem codierten Ausgang 412A (Rt), das ein Empfangsfeld ist, das eine, zweidimensionalen Array von Pixeln 504 aus dem ersten Eingangsbildrahmen 404A entspricht. Die Tiefenabmessung des Empfangsfeldvektors 520 R t i , j
Figure DE102019207888A1_0005
stellt eine Reihe von codierten Merkmalen dar, die der CNN-Encoder 408 erzeugt, wobei sich jedes codierte Merkmal in dem Empfangsfeldvektor 520 auf den Array der Pixel 504 in dem ersten Bildrahmen bezieht. So entspricht jedes Empfangsfeld räumlich einer zweidimensionalen Region des ursprünglichen Eingangsbilds, aber die codierten Ausgänge 412A und 412B sind dreidimensional, weil jedes Empfangsfeld mehrere codierte Merkmale für dieselbe räumliche Region bereitstellt. In der illustrativen Ausführungsform aus 4 erzeugt der CNN-Encoder 408 insgesamt 256 Merkmale für jedes Empfangsfeldelement in den Ausgängen 412A und 412B. 5 zeigt eine epipolare Zeile 524 ( R t + 1 u , v ) ,
Figure DE102019207888A1_0006
die der Prozessor 150 in dem codierten Ausgang 412B des zweiten Eingangsbildrahmens 404B identifiziert. Die epipolare Zeile 524 enthält eine lineare Anordnung von Empfangsfeldern, die eine zweidimensionale Matrix codierter Merkmale bildet. Die epipolare Zeile 524 wird mathematisch dargestellt als L = {u, v | au + bv + c = 0} in a u, v Koordinatenraum, wo die Terme a, b, und c Koeffizienten der epipolaren Zeile sind, die der Prozessor 150 unter Verwendung von Trägheitssensordaten identifiziert, um die geometrische Beziehung zwischen den codierten Ausgängen 412A und 412B basierend auf der Bewegung des AR-Systems zwischen der Erzeugung der beiden Eingangsbilder 404A und 404B zu identifizieren. Die lineare Anordnung von Empfangsfeldern in der epipolaren Zeile 524 entspricht einer Bahn von Pixeln 512 in dem zweiten Bilddatenrahmen 404B. 5 shows the structure and operation of the epipolar layer 416 more accurate. The epipolar limited location 416 uses the inertial information for the purpose of detecting a motion conflict. As described above, the epipolar lines reduce the search dimension of potential matches from two dimensions to one dimension. In 5 corresponds to a simple reception field 520 in the first coded output 412A from the previous time t of a whole epipolar line 524 of receive fields in the second encoded output 412B from the current time t + 1. As in 4 and 5 shown are the coded outputs 412A and 412B 3-dimensional structures showing a series of coded representations of a corresponding reduced resolution input image, each reduced resolution representation containing encoded features provided by the CNN encoder 408 be generated. 5 shows a vector 520 ( R t i . j )
Figure DE102019207888A1_0004
a single receive field at the coordinates i, j in the coded output 412A ( Rt ), which is a reception field, which is a, two-dimensional array of pixels 504 from the first input picture frame 404A equivalent. The depth dimension of the receive field vector 520 R t i . j
Figure DE102019207888A1_0005
represents a set of coded features that the CNN encoder 408 wherein each coded feature is in the receive field vector 520 on the array of pixels 504 in the first picture frame. Thus, each receive field spatially corresponds to a two-dimensional region of the original input image, but the coded outputs 412A and 412B are three-dimensional because each receive field provides multiple encoded features for the same spatial region. In the illustrative embodiment 4 generates the CNN encoder 408 a total of 256 features for each receive field element in the outputs 412A and 412B , 5 shows an epipolar line 524 ( R t + 1 u . v ) .
Figure DE102019207888A1_0006
the processor 150 in the coded output 412B of the second input picture frame 404B identified. The epipolar line 524 contains a linear array of receive fields that forms a two-dimensional array of coded features. The epipolar line 524 is represented mathematically as L = {u, v | au + bv + c = 0} in au, v coordinate space, where the terms a, b, and c are coefficients of the epipolar line that the processor 150 using inertial sensor data to identify the geometric relationship between the coded outputs 412A and 412B based on the movement of the AR system between the generation of the two input images 404A and 404B to identify. The linear arrangement of reception fields in the epipolar line 524 corresponds to a path of pixels 512 in the second image data frame 404B ,

Während des Prozesses 300 erzeugt der Prozessor 150 ein inneres Produkt (Punktprodukt) des Empfangsfelds 520 aus dem ersten codierten Ausgang 412A und die epipolare Zeile von Empfangsfeldern 524 aus dem zweiten codierten Ausgang zum Erzeugen des kombinierten Ausgangselements 528, das ein anderer Vektor ist, der dem inneren Produkt des Empfangsfelds 520 und dem Array von Empfangsfeldern 524 entspricht. Jeder Ausgangsvektor (EC) der epipolar eingeschränkten Lage wird mathematisch dargestellt, als: E C i , j = { R t i , j R t + 1 u , v | a u + b v + c = 0 } .

Figure DE102019207888A1_0007
Der Prozessor 150 führt dieselbe Operation für jedes der jeweiligen Felder in dem ersten codierten Ausgang 412A mit epipolaren Linien von Empfangsfeldern aus dem zweiten codierten Ausgang 412B durch, um den endgültigen Ausgang 532 der epipolar eingeschränkten Lage 416 zu erzeugen, die die ursprünglich codierten Ausgänge 412A und 412B kombiniert, um den Eingang für den CNN-Decoder 432 zu bilden. Der letzte Ausgang der epipolaren Lage 532 bildet den Eingang für das den Encoder des neuralen Netzwerks in dem Encoder/Decoder des neuralen Netzwerks als Block Hrf × Wrf × max(Wrf, Hrf) der Elemente,ECi,j wobei Hrf die Höhe der codierten Eingänge 412A/412B und Wrf die Breite der codierten Eingänge 412A/412B ist.During the process 300 the processor generates 150 an inner product (dot product) of the receiving field 520 from the first coded output 412A and the epipolar row of receive fields 524 from the second coded output to produce the combined output element 528 , which is another vector, the inner product of the receiving field 520 and the array of receive fields 524 equivalent. Each output vector (EC) of the epipolar restricted layer is represented mathematically as: e C i . j = { R t i . j R t + 1 u . v | a u + b v + c = 0 } ,
Figure DE102019207888A1_0007
The processor 150 performs the same operation for each of the respective fields in the first encoded output 412A with epipolar lines of receive fields from the second encoded output 412B through to the final exit 532 the epipolar restricted situation 416 to generate the originally encoded outputs 412A and 412B combined to the input for the CNN decoder 432 to build. The last exit of the epipolar situation 532 forms the input for the neural network encoder in the neural network encoder / decoder as block H rf × W rf × max (W rf , H rf ) of the elements, EC i, j in which H rf the height of the coded inputs 412A / 412B and W rf the width of the coded inputs 412A / 412B is.

Im CNN-Encoder/Decoder 180 empfängt der CNN-Decoder 432 den kombinierten Ausgang der epipolar eingeschränkten Lage 416. Der CNN-Decoder 432 enthält fünf der gefalteten Lagen, die sukzessive den Eingang von der epipolar eingeschränkten Lage 416 entfalten und vier Upsampling Lagen, um einen Ausgang zu erzeugen, der eine entsprechende Auflösung aufweist, wie das ursprüngliche Eingangsbild 404B. Der CNN-Decoder 432 wendet eine 3 × 3 × 1 gefaltete Lage mit einer sigmoidalen Aktivierungsfunktion an, um die endgültige Wahrscheinlichkeitskarte 184 pro Pixel zu erzeugen. Der CNN-Decoder 432 erzeugt die Wahrscheinlichkeitskarte 184 pro Pixel mit einem Wahrscheinlichkeitswert, der die Wahrscheinlichkeit anzeigt, dass jeder Pixel in dem zweiten Bild 404B entweder im Trägheitskoordinatenrahmen oder im örtlichen Koordinatenrahmen liegt. Wie oben beschrieben, enthält jedes Element in der Wahrscheinlichkeitskarte 184 pro Pixel einen numerischen Wert im Bereich [0,0, 1,0], um die Wahrscheinlichkeit anzuzeigen, dass das jeweilige Pixel in den Bildrahmen 404B gehört, der dem Trägheitskoordinatenrahmen oder dem örtlichen Koordinatenrahmen entspricht.In CNN encoder / decoder 180 receives the CNN decoder 432 the combined output of the epipolar restricted position 416 , The CNN decoder 432 contains five of the folded layers, which successively the entrance of the epipolar restricted location 416 unfold and four upsampling layers to produce an output having a corresponding resolution, such as the original input image 404B , The CNN decoder 432 applies a 3 × 3 × 1 folded layer with a sigmoidal activation function to the final probability map 184 per pixel. The CNN decoder 432 generates the probability map 184 per pixel with a probability value indicating the probability that each pixel in the second image 404B either in the inertia coordinate frame or in the local coordinate frame. As described above, each item contains in the probability map 184 Per pixel, a numeric value in the range [0,0, 1,0] to indicate the probability that the respective pixel in the picture frame 404B which corresponds to the inertia coordinate frame or the local coordinate frame.

6 ist eine Empfängerbetriebskennzeichen- (ROC) Kurve 600 die die Verhältnisse zwischen echt positiver Erkennung (vertikale Achse) und falsch positiver Erkennung (horizontale Achse) in den Wahrscheinlichkeitskarten pro Pixel darstellen, die der CNN-Encoder/Decoder 180 unter Verwendung der epipolar eingeschränkten Lage erzeugt (Plot 608), im Vergleich mit einem anderen CNN-Encoder/Decoder, der die epipolar eingeschränkte Lage nicht verwendet (Plot 604). Wie In der Kurve 600 dargestellt, übersteigt die echt positive Rate für den Plot 608 80% (0,8), bevor die falsch positive Rate 20% (0.2) erreicht, was eine höhere Genauigkeit für den CNN-Encoder/Decoder 180, der die epipolar eingeschränkte Lage verwendet, anzeigt. Der Plot 604 hingegen zeigt eine geringere Rate von echt positiver Erkennung, während er einen höheren Anteil an falsch positiver Erkennung erzeugt, die auftritt, weil die Ausführungsform des CNN-Encoder/Decoders, der den Plot 604 erzeugt, nicht die epipolar eingeschränkte Lage enthält. 6 is a receiver operating characteristic (ROC) curve 600 which represent the ratios between true positive detection (vertical axis) and false positive detection (horizontal axis) in the probability maps per pixel, the CNN encoder / decoder 180 produced using the epipolar restricted layer (Plot 608 ), compared to another CNN encoder / decoder that does not use the epipolar restricted layer (Plot 604 ). Like in the curve 600 shown exceeds the true positive rate for the plot 608 80% (0.8) before the false positive rate reaches 20% (0.2), giving greater accuracy to the CNN encoder / decoder 180 indicating the epipolar-restricted location indicates. The plot 604 however, it shows a lower rate of true positive detection, while producing a higher proportion of false positive detection that occurs because the CNN encoder / decoder embodiment used the plot 604 does not contain the epipolar restricted location.

Die Bewegungskonfliktwahrscheinlichkeitskarte 184 pro Pixel verbessert die geschätzte primäre Bewegung und die sekundäre Bewegung auf wenigstens zwei Arten. Erstens ermöglicht sie besseres Verwerfen von Ausreißern in der primären Bewegungsschätzung. Zweitens hilft es, die visuellen Messungen zu bestimmen, die für die sekundäre Bewegungsschätzung verwendet werden können. Eine der größten Herausforderungen in Mehrfachbewegungs-MC-VIO ist es, die Berechnungskomplexität des Algorithmus gering zu halten, während eine robuste sekundäre Bewegungsschätzung mit eingeschränkten Messungen ausgeführt wird.The motion conflict probability card 184 per pixel improves the estimated primary movement and the secondary movement in at least two ways. First, it allows better discarding of outliers in the primary motion estimation. Second, it helps to determine the visual measurements that can be used for secondary motion estimation. One of the biggest challenges in multi-motion MC-VIO is to keep the computational complexity of the algorithm low while performing a robust secondary motion estimation with limited measurements.

Der Prozess 300 verwendet den CNN-Encoder/Decoder 180 zum Erzeugen der Wahrscheinlichkeitskarte pro Pixel 180 nach Schulung des CNN-Encoder/Decoders 180, was vor dem Prozess 300 erfolgt. In einer Ausführungsform verwendet der Schulungsprozess eine Variante eines stochastischen Verlaufsabstiegsschulungsprozesses, der automatisch die Lernrate pro Dimension anpasst. Der Schulungsprozess minimiert einen pixelweisen binären Kreuzentropieverlust basierend auf folgendem Minimierungsverfahren: min ∑ij -ŷi.j log(yi,j) + (1 - ŷi.j)log(1-yi,j). Während einer Prüfphase sagt der CNN-Encoder/Decoder 180 die Wahrscheinlichkeitskarte 184 pro Pixel für jeden Rahmen einer Testvideosequenz voraus und stellt die Wahrscheinlichkeitskarte 184 pro Pixel für das VIO-System bereit, um die Genauigkeit der primären und sekundären Bewegungsschätzung unter Verwendung vorgegebener Prüfdaten zu prüfen.The process 300 uses the CNN encoder / decoder 180 for generating the probability map per pixel 180 after training the CNN encoder / decoder 180 what's ahead of the process 300 he follows. In one embodiment, the training process uses a variant of a stochastic progression descent training process that automatically adjusts the learning rate per dimension. The training process minimizes pixel-wise binary cross entropy loss based on the following minimization method: min Σ i Σ jij log ( yi , j) + (1-ŷ ij ) log (1-y i , j). During a test phase, the CNN encoder / decoder says 180 the probability map 184 per pixel for each frame of a test video sequence and represents the probability map 184 per pixel for the VIO system to check the accuracy of the primary and secondary motion estimation using given test data.

HauptbewegungsschätzungMajor motion estimation

Während des Prozesses 300 verwendet der primäre Bewegungsschätzungsprozess (Block 310) die Bildrahmendaten 168 und die Trägheitssensordaten 172 als Eingänge zum Durchführen primärer Bewegungsschätzung des AR-Systems 100 relativ zu dem Trägheitskoordinatenrahmen. Die primären Bewegungszustände XW 1 , XW 2 in der Gruppe 240 stellen eine vereinfachte Ansicht der primären Bewegungszustände bereit. In der hierin beschriebenen Benennung bezieht sich der Term W auf den Trägheitskoordinatenrahmen („Welt“ Rahmen). Der Eingang für den primären Zustandsschätzer enthält die visuellen Beobachtungen z und die Trägheitssensormessungen u = [ω̃, ã]. Genauer gesagt, sind die primären Bewegungslaufbahnzustände als WX0:N dargestellt, wobei jeder Zustand X k W

Figure DE102019207888A1_0008
ist: X k W : = [ W p W S T , q W S T , S v W S T , b g T , b a T , W l 0 T , , W l n T ] k T 3 × S 3 × 9 × 4 n .
Figure DE102019207888A1_0009
Der Term WpWS bezieht sich auf die Pose des AR-Systems, der Term qWS bezieht sich auf die Orientierung des AR-Systems, svWS bezieht sich auf die Geschwindigkeit und die Terme b g T , b a T
Figure DE102019207888A1_0010
stellen die lineare Beschleunigung und Drehbeschleunigungstendenzen in den Trägheitssensordaten dar. Die Terme WpWS , qWS , SvWS verwenden die W-Benennung um anzuzeigen, dass diese Elemente relativ zu dem Trägheitskoordinatenrahmen sind. Die Wl0 ..., Wln stellen visuelle Landmarken dar, die in dem HMM 200 in Knoten 250 geschätzt sind. Die Benennung „ T “, die in diesem Ausdruck und in anderen Ausdrücken verwendet wird, gibt eine Matrixtransposition an.During the process 300 uses the primary motion estimation process (block 310 ) the picture frame data 168 and the inertial sensor data 172 as inputs to perform primary motion estimation of the AR system 100 relative to the inertial coordinate frame. The primary states of motion X W 1 . X W 2 in the group 240 Provide a simplified view of the primary states of motion. In the term described herein, the term W refers to the inertial coordinate frame ("world" frame). The input to the primary state estimator contains the visual observations z and the inertial sensor measurements u = [ω, ã]. More specifically, the primary motion trajectory conditions are as W X 0: N shown, each state X k W
Figure DE102019207888A1_0008
is: X k W : = [ W p W S T . q W S T . S v W S T . b G T . b a T . W l 0 T . ... . W l n T ] k T 3 × S 3 × 9 × 4 n ,
Figure DE102019207888A1_0009
The term W p WS refers to the pose of the AR system, the term q WS refers to the orientation of the AR system, s v WS refers to the speed and the terms b G T . b a T
Figure DE102019207888A1_0010
represent the linear acceleration and spin tendencies in the inertial sensor data. The terms W p WS . q WS . S v WS use the W designation to indicate that these elements are relative to the inertial coordinate frame. The W l 0 ..., W l n represent visual landmarks that are in the HMM 200 in knots 250 are appreciated. The designation " T "Used in this term and in other terms indicates a matrix transposition.

Wie in 3 gezeigt, enthält der primäre Bewegungsschätzungsprozess von Block 310 eine Merkmalsextraktion (Block 316), geführten Abgleich (Block 320), einen Minimal Solver (Block 324) und den primären Bewegungsoptimierungsprozess (Block 328). Der primäre Bewegungsschätzungsprozess erzeugt den Ausgang 332, der die geschätzte Pose (Wp) und die geschätzte Ausrichtung (Wq) für die primäre Bewegung enthält.As in 3 shown contains the primary motion estimation process of Block 310 a feature extraction (block 316 ), guided reconciliation (block 320 ), a minimal solver (block 324 ) and the primary motion optimization process (Block 328 ). The primary motion estimation process generates the output 332 containing the estimated pose ( W p) and the estimated orientation ( W q) for the primary motion.

In der Merkmalsextrahierung von Block 316 extrahiert der Prozessor 150 visuelle Messungen z von den Rahmen der Bilddaten 168. In einer Ausführungsform verwendet der Prozessor 150 die FAST- und BRISK-Techniken wie oben beschrieben in dem Merkmalsextraktionsprozess zum Identifizieren der visuellen Beobachtungen.In the feature extraction of block 316 the processor extracts 150 visual measurements z from the frames of image data 168 , In one embodiment, the processor uses 150 the FAST and BRISK Techniques as described above in the feature extraction process for identifying the visual observations.

Der Prozess 300 fährt mit geführtem Abgleich fort, der einen Satz Landmarken unter Verwendung der Merkmale erzeugt, die von mehreren Bildern neben den Trägheitssensordaten und Informationen, die in den Zuständen des HMM 200 gespeichert sind, erzeugt (Block 320). Der Begriff „geführt“ in geführtem Abgleich bezieht sich auf die Verwendung eines vorherigen Zustands WXk-1 in dem HMM 200, der als Grundlage für einen „Fortführungs-“ Schätzungsprozess dienen soll, der einen anderen „a priori“ Zustand WXk in dem HMM 200 erzeugt. Der Zustand apriori WXk ist oft nicht der korrekte Zustand für die Schätzung der primären Bewegung, sondern stellt allgemein ausreichend Informationen bereit, die in einem Abgleichsprozess verendet werden können, der Landmarken in den Bilddaten identifiziert, die das AR-System 100 später in Verbindung mit der Wahrscheinlichkeitskarte pro Pixel verwendet, um den Endzustand in dem HMM 200 zu identifizieren, der die geschätzte primäre Bewegung enthält.The process 300 continues with Guided Matching, which generates a set of landmarks using the features of several images in addition to the inertial sensor data and information contained in the states of the HMM 200 stored (block 320 ). The term "guided" in guided alignment refers to the use of a previous state W X k-1 in the HMM 200 which is to serve as the basis for a "continuation" estimation process that has a different "a priori" state W X k in the HMM 200 generated. The condition apriori W X k is often not the correct state for estimating the primary motion, but generally provides sufficient information that can be used in a matching process that identifies landmarks in the image data that make up the AR system 100 used later in conjunction with the probability map per pixel to determine the final state in the HMM 200 to identify who contains the estimated primary movement.

Der Prozessor 150 setzt die vorherige primäre Bewegungszustandsschätzung WXk-1 fort, um den neuen Zustand apriori zu schätzen WXk . Der Prozessor 150 verwendet die folgenden Gleichungen mit den Trägheitssensordatenelementen Bω̃WB und SãWS zur Durchführung der Fortsetzung: w p ˙ = ( C W B ) ( B v )

Figure DE102019207888A1_0011
q ˙ W B = 1 2 Ω ( B ω ˜ W B b g ) q W B
Figure DE102019207888A1_0012
s ' v W S = ( s a ˜ W S b a ) + W g ;
Figure DE102019207888A1_0013
b ˙ g = n b g ;
Figure DE102019207888A1_0014
b ˙ a = 1 τ b a + n b a .
Figure DE102019207888A1_0015
The processor 150 sets the previous primary motion state estimation W X k-1 continue to estimate the new condition a priori W X k , The processor 150 uses the following equations with the inertial sensor data elements B ω WB and s Forward to carry out the continuation: w p ˙ = ( C W B ) ( B v )
Figure DE102019207888A1_0011
q ˙ W B = 1 2 Ω ( B ω ~ W B - b G ) q W B
Figure DE102019207888A1_0012
s ' v W S = ( s a ~ W S - b a ) + W G ;
Figure DE102019207888A1_0013
b ˙ G = n b G ;
Figure DE102019207888A1_0014
b ˙ a = 1 τ b a + n b a ,
Figure DE102019207888A1_0015

Die Fortsetzungsgleichung hat als Eingang die Trägheitsmessungen (ω̃, ã) genommen, die im Körperrahmen B erfasst wurden. Der Prozessor 150 verwendet den Zustand a priori zum Führen des Abgleichers, was visuelle Übereinstimmungen zwischen Bildern zu zwei verschiedenen Zeitstempeln (Zeitübereinstimmungen), und in Ausführungsformen, die ein stereoskopisches Kamerasystem 112 verwenden, zwischen zwei Bildern am selben Zeitstempel (statische Übereinstimmungen) erzeugt. Der Prozessor 150 verwendet dann die Übereinstimmungen als visuelle Messungen z. Wenn ausreichend viele visuelle Messungen einer Landmarke zur Verfügung stehen, führt der Prozessor 150 eine Triangulationsinitialisierung der Landmarke in dem Zustandsschätzer durch. Der Triangulationsprozess identifiziert Landmarken basierend auf Änderungen der relativen Positionen des Abgleichs visueller Beobachtungen über eine Reihe von Bildrahmen. Erneut bewegt sich zwar eine Landmarke nicht, aber die Bewegung des Kamerasystems 112 in dem AR-System 100 erzeugt Änderungen der wahrgenommenen Orte der visuellen Beobachtungen der Landmarken im Lauf der Zeit, und der Prozessor 150 führt den Triangulationsprozess aus, um Landmarken in dem HMM 200 zu identifizieren.The continuation equation has taken as input the inertial measurements (ω, ã) that are in the body frame B were recorded. The processor 150 uses the state a priori to guide the matcher, making visual matches between pictures at two different time stamps (time matches), and in embodiments using a stereoscopic camera system 112 use between two images created at the same time stamp (static matches). The processor 150 then uses the matches as visual measurements z. If enough visual measurements of a landmark are available, the processor performs 150 a triangulation initialization of the landmark in the state estimator. The triangulation process identifies landmarks based on changes in the relative positions of the match of visual observations across a series of image frames. Once again, a landmark does not move, but the movement of the camera system 112 in the AR system 100 generates changes in the perceived locations of the visual observations of the landmarks over time, and the processor 150 Performs the triangulation process to landmarks in the HMM 200 to identify.

Der Prozess 300 fährt mit einem Minimal-Solver-Prozess (Block 324) fort, den der Prozessor 150 verwendet, um Reste (Fehler) zwischen Voraussagen und Beobachtungen zu identifizieren. In dem Prozess 300 identifiziert der Prozessor 150 Reste (Fehler) basierend auf beobachteten Trägheitsmessungen als:
e s k ( X k , X k + 1 , z k , u k 1 : k ) = [ W p ^ k W p k 2 ( q ^ k q k 1 ) s v ^ k b g k b ^ g k b g k b ^ a k b a k ]

Figure DE102019207888A1_0016
The process 300 drives with a minimal solver process (block 324 ) the processor 150 used to identify remnants (errors) between predictions and observations. In the process 300 identifies the processor 150 Remains (errors) based on observed inertial measurements as:
e s k ( X k . X k + 1 . z k . u k - 1 : k ) = [ W p ^ k - W p k 2 ( q ^ k q k - 1 ) s v ^ k - b G k b ^ G k - b G k b ^ a k - b a k ]
Figure DE102019207888A1_0016

Der Prozessor 150 identifiziert außerdem, dass Reste der beobachteten visuellen Messungen dargestellt sind als: e r i , j , k : = z i , j , k π i ( T C B T ^ B W W l j ) .

Figure DE102019207888A1_0017
The processor 150 also identifies that remnants of the observed visual measurements are represented as: e r i . j . k : = z i . j . k - π i ( T C B T ^ B W W l j ) ,
Figure DE102019207888A1_0017

Der Prozessor 150 verwendet die Reste zum Durchführen eines Fensterbatchoptimierungsprozesses (Block 328) zum Minimieren der folgenden Energie: ( X k W ) : = k = 1 K i j J ( k , i ) e r i , k , j T w r e r i , k , j + k = 2 K e s k T w s e s k .

Figure DE102019207888A1_0018
In der vorstehenden Gleichung stellt der Term k = 1 K i j J ( k , i ) e r i , k , j T w r e r i , k , j
Figure DE102019207888A1_0019
einen Reprojektionsfehler dar, und der Term k = 2 K e s k T w s e s k
Figure DE102019207888A1_0020
stellt einen Vorhersagefehler da. Der Reprojektionsfehler stellt einen Fehler dar, der aufgrund der Differenz zwischen der tatsächlichen dreidimensionalen Position einer Landmarke im Vergleich mit der geschätzten Position auftritt, die das AR-System 100 aus der Triangulation erzeugt, da die Schätzung unter Verwendung einer Reihe von zweidimensionalen Bildern erfolgt, die als Projektionen des dreidimensionalen physischen Raums um das AR-System 100 wirken. Der Vorhersagefehler stellt den Fehler zwischen der anfänglichen Vorhersage von dem HMM 200 basierend auf dem vorherigen Zustand und den aktuellen Trägheitssensoreingängen sowie der tatsächlichen primären Bewegung dar. Der Term „Energie“ entspricht nicht einer physischen Energiemenge, sondern bezieht sich stattdessen auf eine Messung der Gesamtfehlerstufe als Energiemenge, wobei der Fensterbatchoptimierungsprozess Zustände in dem HMM 200 durchsucht, die Verbindung mit dem vorherigen Zustand X k 1 W
Figure DE102019207888A1_0021
aufweisen, um den nächsten Zustand X k W
Figure DE102019207888A1_0022
zu finden, der den kleinsten Energie- (Fehler-) Wert erzeugt. Das AR-System 100 wählt dann den nächsten Zustand X k W
Figure DE102019207888A1_0023
in dem HMM 200 und verwendet die eingebetteten Werte WpWS , qWS in dem gewählten Zustand X k W ,
Figure DE102019207888A1_0024
die der Pose bzw. Ausrichtung entsprechen, als die geschätzten Ausgangslaufbahndaten 332.The processor 150 uses the remainders to perform a windowbatch optimization process (block 328 ) to minimize the following energy: ( X k W ) : = Σ k = 1 K Σ i Σ j J ( k . i ) e r i . k . j T w r e r i . k . j + Σ k = 2 K e s k T w s e s k ,
Figure DE102019207888A1_0018
In the above equation, the term Σ k = 1 K Σ i Σ j J ( k . i ) e r i . k . j T w r e r i . k . j
Figure DE102019207888A1_0019
a reprojection error, and the term Σ k = 2 K e s k T w s e s k
Figure DE102019207888A1_0020
represents a prediction error. The reprojection error represents an error that occurs due to the difference between the actual three-dimensional position of a landmark compared to the estimated position that the AR system 100 generated from the triangulation, since the estimation is done using a series of two-dimensional images that are projections of the three-dimensional physical space around the AR system 100 Act. The prediction error represents the error between the initial prediction from the HMM 200 The term "energy" does not correspond to a physical amount of energy, but instead refers to a measurement of the total error level as an amount of energy, wherein the windowbatch optimization process states in the HMM 200 searches the connection with the previous state X k - 1 W
Figure DE102019207888A1_0021
exhibit to the next state X k W
Figure DE102019207888A1_0022
finding the smallest energy (error) value. The AR system 100 then choose the next state X k W
Figure DE102019207888A1_0023
in the HMM 200 and uses the embedded values W p WS . q WS in the selected state X k W .
Figure DE102019207888A1_0024
that correspond to the pose, as the estimated exit raceway data 332 ,

NebenbewegungsschätzungIn addition to motion estimation

Wie in 3 dargestellt ist, enthält der sekundäre Bewegungsschätzungsprozess (Block 350) die Initialisierung (Block 354), den sekundären Bewegungsabgleich (Block 358), einen sekundären Minimal Solver (Block 362) und den Optimierungsprozess der sekundären Bewegung (Block 366). Der sekundäre Bewegungsschätzungsprozess 350 enthält auch einen Landmarkenrahmenschätzungsprozessor 340, der Schätzungen der Landmarken in dem Trägheitskoordinatenrahmen an den geführten Abgleicher 320 bereitstellt, und Schätzungen der Landmarken in dem örtlichen Koordinatenrahmen an den sekundären Bewegungsabgleicher 358. Der sekundäre Bewegungsschätzungsprozess von Block 350 erzeugt einen sekundären Bewegungsschätzungsausgang 370, der eine Schätzung der Pose ( VpVB ) und eine Schätzung der Ausrichtung (qVB ) enthält.As in 3 2, the secondary motion estimation process (block 350 ) the initialization (block 354 ), the secondary motion adjustment (block 358 ), a secondary minimal solver (block 362 ) and the secondary motion optimization process (block 366 ). The secondary motion estimation process 350 Also includes a landmark estimation processor 340 , the estimates of the landmarks in the inertia coordinate frame to the led matcher 320 and estimates of the landmarks in the local coordinate frame to the secondary motion matcher 358 , The secondary motion estimation process of Block 350 generates a secondary motion estimation output 370 who made an estimate of the pose ( V p VB ) and an estimate of the orientation ( q VB ) contains.

Die sekundäre Bewegung schätzt den Zustand X k S n ,

Figure DE102019207888A1_0025
wobei der sekundäre Zustand definiert ist als: X k S n : = [ V p V B T , q V B T , V l 0 T , , V l n T ] k T 3 × S 3 × 4 n .
Figure DE102019207888A1_0026
In der hierin beschriebenen Benennung bezieht sich der Term V auf den örtlichen Koordinatenrahmen Wobei VpVB and qVB die geschätzte Pose bzw. Ausrichtung bezüglich des örtlichen Koordinatenrahmens darstellt und Vl0, ..., Vln Landmarken darstellen, die als in den örtlichen Koordinatenrahmen fallend gelten, wofür eine Wahrscheinlichkeitskarte pro Pixel verwendet wird. Wie oben beschrieben, enthalten die sekundären Zustände in dem HMM 200 keine Parameter, die auf den Trägheitssensordaten 172 basierend, weil die sekundäre Bewegung in dem örtlichen Koordinatenrahmen nur basierend auf Abschnitten der Bildrahmendaten 168 geschätzt wird, die dem örtlichen Koordinatenrahmen wie unter Verwendung der Wahrscheinlichkeitskarte 184 pro Pixel identifiziert entsprechen.The secondary movement appreciates the condition X k S n .
Figure DE102019207888A1_0025
where the secondary state is defined as: X k S n : = [ V p V B T . q V B T . V l 0 T . ... . V l n T ] k T 3 × S 3 × 4 n ,
Figure DE102019207888A1_0026
In the term described herein, the term V refers to the local coordinate frame V p VB and q VB represents the estimated pose with respect to the local coordinate frame and represent V l 0 , ..., V l n landmarks that are considered to fall within the local coordinate frame, using one probability map per pixel. As described above, the secondary states in the HMM include 200 no parameters based on the inertial sensor data 172 because the secondary motion in the local coordinate frame is based only on portions of the frame data 168 It is estimated that the local coordinate frame as using the probability map 184 correspond to each pixel identified.

In dem Prozess 300 initialisiert der Prozessor 150 den sekundäre Bewegungsschätzer für den Zustand Xm- (Zustand 210C in dem HMM 200 aus 2), der den Endzustand vor Beginn der sekundären Bewegungsverfolgung (Block 354) darstellt. In the process 300 initializes the processor 150 the secondary motion estimator for the state X m- (State 210C in the HMM 200 out 2 ), which determines the final state before the start of secondary motion tracking (Block 354 ).

Der Prozess 300 wird fortgesetzt, wenn der Prozessor 150 einen sekundären Bewegungsabgleichsprozess (Block 358) ausführt. Der sekundäre Bewegungsabgleichsprozess 358 ist ähnlich wie der geführte Abgleichsprozess aus Block 320 in dem primären Bewegungsschätzungsprozess, aber im sekundären Bewegungsabgleichsprozess verwendet der Prozessor 150 die Wahrscheinlichkeitskarte 184 pro Pixel (M) zum Identifizieren von Landmarken, die eine hohe Wahrscheinlichkeit aufweisen, den örtlichen Koordinatenrahmen zu entsprechen, um den sekundären Bewegungsabgleichsprozess auszuführen. Dies erhöht die Genauigkeit der sekundären Bewegungsschätzung durch Verringerung oder Eliminierung des Einflusses von Landmarken aus dem Trägheitskoordinatenrahmen in der sekundären Bewegungsschätzung.The process 300 will continue if the processor 150 a secondary motion matching process (block 358 ). The secondary motion matching process 358 is similar to the guided matching process from block 320 in the primary motion estimation process, but in the secondary motion match process, the processor uses 150 the probability map 184 per pixel (M) for identifying landmarks having a high probability of matching the local coordinate frame to perform the secondary motion matching process. This increases the accuracy of the secondary motion estimation by reducing or eliminating the influence of landmarks from the inertial coordinate frame in the secondary motion estimation.

Während des Prozess 300 führt der Prozessor 150 die Landmarkenrahmenschätzung durch, um festzustellen, ob eine Landmarke zu dem Trägheitskoordinatenrahmen für den primären Bewegungsschätzungsprozess von Block 310 oder den örtlichen Koordinatenrahmen für den sekundären Bewegungsschätzungsprozess von Block 350 (Block 340) gehört. Wenn der Prozessor 150 eine marginale Wahrscheinlichkeit dafür findet, dass eine Landmarke zu dem örtlichen Koordinatenrahmen gehört, die größer ist, als eine vorgegebene Wahrscheinlichkeitsgrenze, wie etwa größer als eine Wahrscheinlichkeit von 50%, dann weist der Prozessor 150 die Landmarke der sekundären Karte zu und bewegt alle assoziierten Reste, e r i , j , k

Figure DE102019207888A1_0027
auf den sekundären Bewegungsschätzer. Die marginale Wahrscheinlichkeit, dass eine Landmarke sich basierend auf allen visuellen Beobachtungen zj der Landmarke Li in dem örtlichen Koordinatenrahmen befindet, wird angegeben durch: P ( V l i | S n , M ) = j N P ( z j | l i , M ) P ( z j ) .
Figure DE102019207888A1_0028
Dieser Prozess entfernt implizit die Landmarken von dem primären Bewegungsschätzungsprozess von Block 310 oben. So nutzt zwar der primäre Bewegungsschätzungsprozess die Wahrscheinlichkeitskarte 184 pro Pixel nicht direkt, aber der Prozessor 150 nutzt die Wahrscheinlichkeitskarte 184 pro Pixel zum Aufteilen der Landmarken zwischen den primären und sekundären Bewegungsschätzungsprozessen, die die Genauigkeit beider Prozesse verbessern. Der Prozessor 150 führt einen Zeitabgleich der Landmarken in der sekundären Karte mit dem aktuellen Rahmen durch, um weitere visuelle Messungen zu erzeugen.During the process 300 leads the processor 150 the landmark frame estimate to determine if a landmark is related to the inertial coordinate frame for the primary motion estimation process of Block 310 or the local coordinate frame for the secondary motion estimation process of Block 350 (Block 340 ) belongs. If the processor 150 finds a marginal likelihood of having a landmark belonging to the local coordinate frame greater than a given probability bound, such as greater than a 50% probability, then the processor points 150 the map of the secondary map and moves all associated residues, e r i . j . k
Figure DE102019207888A1_0027
on the secondary motion estimator. The marginal probability of a landmark being based on all visual observations z j the landmark Li located in the local coordinate frame is indicated by: P ( V l i | S n . M ) = Σ j N P ( z j | l i . M ) P ( z j ) ,
Figure DE102019207888A1_0028
This process implicitly removes the landmarks from the block's primary motion estimation process 310 above. For example, the primary motion estimation process uses the probability map 184 not directly per pixel, but the processor 150 uses the probability map 184 per pixel for splitting the landmarks between the primary and secondary motion estimation processes that improve the accuracy of both processes. The processor 150 Time-align the landmarks in the secondary map with the current border to produce more visual measurements.

Eine generalisierte P3P wurde mit RANSAC kombiniert, um die Pose zu schätzen, die mit der sekundären Karte assoziiert ist. Der Prozess 300 führt der Prozessor 150 einen sekundäre Bewegungs-Minimal-Solver-Prozess (Block 362) aus, um den Rest zu identifizieren: : e r i , j , k : = z i , j , k π i ( T C B T ^ B S S l j ) .

Figure DE102019207888A1_0029
Dies ist ein Prozess, der ähnlich wie der primäre Bewegungs-Minimal-Solver von Block 324 oben ist, wobei jedoch der Prozessor 150 im sekundären Bewegungsschätzungsprozess von Block 350 nur den Rest e r i , j , k
Figure DE102019207888A1_0030
identifiziert, der Fehlern zwischen den visuellen Beobachtungen zi,j,k und den geschätzten Landmarken entspricht, da das AR-System 100 keine Trägheitsdaten verwendet, um den sekundären Bewegungsschätzungsprozess auszuführen.A generalized P3P was combined with RANSAC to estimate the pose associated with the secondary map. The process 300 leads the processor 150 a secondary motion-minimal solver process (block 362 ) to identify the rest: e r i . j . k : = z i . j . k - π i ( T C B T ^ B S S l j ) ,
Figure DE102019207888A1_0029
This is a process similar to the primary motion-minimal solver of Block 324 above, but with the processor 150 in the secondary motion estimation process of Block 350 only the rest e r i . j . k
Figure DE102019207888A1_0030
Identifies the errors between the visual observations z i, j, k and the estimated landmarks, since the AR system 100 no inertial data is used to perform the secondary motion estimation process.

Der Prozessor 150 verwendet den Rest zum Durchführen eines Fensterbatchoptimierungsprozesses für die Schätzung der sekundären Bewegung (Block 366) zum Minimieren der folgenden Energie:The processor 150 uses the remainder to perform a window batch optimization process for secondary motion estimation (Block 366 ) to minimize the following energy:

( X k S n ) : = k = 1 K i j J ( k , i ) e r i , k , j T w r e r i , k , j .

Figure DE102019207888A1_0031
In dieser Gleichung ist der einzige Fehler der Reprojektionsfehler und es gibt keinen Vorhersagefehlerterm aus den Trägheitssensormessungen. Das AR-System 100 wählt dann den nächsten Zustand X k S n
Figure DE102019207888A1_0032
in den sekundären Zustanden des HMM 200 und verwendet die eingebetteten Werte VpWS , qWS in dem gewählten Zustand X k S n ,
Figure DE102019207888A1_0033
die der Pose bzw. Ausrichtung entsprechen, als die geschätzten Ausgangslaufbahndaten 370. ( X k S n ) : = Σ k = 1 K Σ i Σ j J ( k . i ) e r i . k . j T w r e r i . k . j ,
Figure DE102019207888A1_0031
In this equation, the only error is the re-projection error and there is no prediction error term from the inertial sensor measurements. The AR system 100 then choose the next state X k S n
Figure DE102019207888A1_0032
in the secondary states of the HMM 200 and uses the embedded values V p WS . q WS in the selected state X k S n .
Figure DE102019207888A1_0033
that correspond to the pose, as the estimated exit raceway data 370 ,

Verbesserungen der Operation des AR-SystemsImprovements in the operation of the AR system

Wie oben beschrieben, verwendet das AR-System 100 den Prozess 300 zum Erzeugen der Schätzungen der primären Bewegungslaufbahn und der sekundären Bewegungslaufbahn. Die genaue Schätzung dieser Laufbahnen ermöglicht es dem AR-System 100, visuelle Trägheitsodometrie mit größerer Genauigkeit auszuführen und augmentierte Grafiken für die Anzeige für einen Benutzer mit größerer Genauigkeit in Umgebungen zu erzeugen, die Trägheits- und örtliche Koordinatenrahmen enthalten.As described above, the AR system uses 100 the process 300 for generating the estimates of the primary motion track and the secondary motion track. The accurate estimation of these tracks makes it possible for the AR system 100 , visual inertial odometry with greater accuracy to generate augmented graphics for display to a user with greater accuracy in environments containing inertial and local coordinate frames.

7 zeigt Verbesserungen an der visuellen Trägheitsodometrie (VIO) in mehr Details. In einer VIO-Operation verfolgt das AR-System 100 seinen Ort in einer Umgebung unter Verwendung der geschätzten Laufbahnen des Trägheitskoordinatenrahmens. In zwei praktischen Beispielen aus 7 verfolgt der VIO-Prozess die Bewegung des AR-Systems 100, während ein Benutzer in einem Kreis in einem Büro herumgeht, während er eine andere Person betrachtet, die sich ebenfalls bewegt. In einem anderen Beispiel fährt ein Benutzer in einem Kraftfahrzeug im Kreis um einen Parkplatz, beginnend an einem Parkplatz, und kehrt wieder an denselben Parkplatz zurück. In beiden Beispielen erhält das AR-System 100 Sensordaten von dem Trägheitskoordinatenrahmen des Büros oder Parkplatzes und dem örtlichen Koordinatenrahmen von entweder der anderen Person im Blick des Kamerasystems 112 oder dem Inneren des Kraftfahrzeugs. 7 zeigt Fehler in der VIO-Operation als Abweichungen von dem Pfad des Benutzers, wenn der Benutzer in einem Büro herumgeht oder des Benutzers in dem Fahrzeug, wenn das Fahrzeug um einen Parkplatz fährt. 7 shows improvements in visual inertial (VIO) in more detail. In a VIO operation, the AR system keeps track 100 its location in an environment using the estimated tracks of the inertial coordinate frame. In two practical examples 7 The VIO process tracks the movement of the AR system 100 while a user is walking in a circle in an office while looking at another person who is also moving. In another example, a user in a motor vehicle drives in a circle around a parking lot, starting at a parking lot, and returns to the same parking lot. In both examples, the AR system gets 100 Sensor data from the inertial coordinate frame of the office or parking lot and the local coordinate frame from either the other person in view of the camera system 112 or the interior of the motor vehicle. 7 shows errors in the VIO operation as deviations from the user's path when the user walks around an office or the user in the vehicle when the vehicle is driving around a parking lot.

Genauer gesagt, zeigt 7 Karten 704 und 708 der VIO-Daten, die unter Verwendung von zwei VIO-Systemen auf dem Stand der Technik erzeugt werden, einschließlich OKVIS- (704) und Wiley-Babu- (708) VIO-Systemen. Dieses VIO-System erzeugt Verfolgungsfehler durch das Vorhandensein einer sich bewegenden Person im Sichtfeld der eines Kamerasensors mit repräsentativen Bildern, die auf dem Stand der Technik aus dem Foto 720 für die Karte 704 und dem Foto 724 für die Karte 708 Fehler verursachen. 7 zeigt große Verfolgungsfehler 706 und 710 in den Karten 704 bzw. 708, die die Effektivität von VIO-Systemen auf dem Stand der Technik verringern. Im Gegensatz dazu zeigt die Karte 712 VIO, die unter Verwendung des AR-Systems 100 aus 1 unter Verwendung des Mehrfachbewegungs-MC-VIO-Prozesses 300 ausgeführt wird, um primäre und sekundäre Bewegungsschätzung mit größerer Genauigkeit auszuführen, wenn dieselben Sätze von Trägheits- und Bildeingangsdaten vorliegen, einschließen die beiden Bilder 720 und 724, die Fehler in VIO-Systemen auf dem vorherigen Stand der Technik verursacht haben.More precisely, shows 7 cards 704 and 708 VIO data generated using two state-of-the-art VIO systems, including OKVIS ( 704 ) and Wiley-Babu ( 708 ) VIO systems. This VIO system generates tracking errors due to the presence of a moving person in the field of view of a camera sensor with representative images, which in the prior art from the photo 720 for the card 704 and the photo 724 for the card 708 Cause errors. 7 shows big tracking errors 706 and 710 in the cards 704 respectively. 708 that reduce the effectiveness of state-of-the-art VIO systems. In contrast, the map shows 712 VIO using the AR system 100 out 1 using the multi-motion MC-VIO process 300 to perform primary and secondary motion estimation with greater accuracy when the same sets of inertial and image input data are present, include the two images 720 and 724 that have caused errors in previous state-of-the-art VIO systems.

Neben den Ergebnissen aus 7 zeigt die folgende Tabelle den absoluten Verfolgungsfehler (ATE) in Metern und den relativen Posenfehler (RPE) in Metern pro Sekunde für die hierin beschriebenen Ausführungsformen im Vergleich mit OKVIS und Wiley-Babu-MV-VIO-AR-Systemen dem Stand der Technik unter Verwendung von drei Bewegungssequenzen, die Trägheits- und örtliche Koordinatenrahmen in den Eingangssensordaten enthalten. Wie nachfolgend dargestellt, zeigt die Ausführungsform von System 100, die den Prozess 300 ausführt, herausragende Leistung auf annähernd allen Metriken und passt zu der Wiley-Babu-Umsetzung in der RPE-Standardabweichung. Datensatz ATE [m] RPE [m/s] OKVIS Wiley Babu System 100 OKVIS Wiley Babu System 100 Seq1 4,979 4,681 0,568 0,052 0,047 0,018 Seq2 4,873 6,391 0,142 0,052 0,051 0,010 Seq3 27,22 2,740 1,932 0,252 0,065 0,029 Mittel 12,35 4,604 0,881 0,119 0,054 0,019 Standardab weichung 10,51 1,492 0,763 0,094 0,008 0,008 In addition to the results 7 For example, the following table shows the absolute tracking error (ATE) in meters and the relative maze error (RPE) in meters per second for the embodiments described herein as compared to OKVIS and prior art Wiley-Babu MV-VIO-AR systems of three motion sequences containing inertial and local coordinate frames in the input sensor data. As shown below, the embodiment of System 100 that the process 300 performs excellently on nearly all metrics and fits the Wiley-Babu implementation in the RPE standard deviation. record Breath] RPE [m / s] OKVIS Wiley Babu System 100 OKVIS Wiley Babu System 100 Seq 1 4,979 4,681 0,568 0,052 0.047 0,018 Seq 2 4,873 6,391 0,142 0,052 0,051 0,010 Seq 3 27.22 2,740 1,932 0.252 0,065 0,029 medium 12.35 4,604 0.881 0,119 0.054 0.019 Standard deviation 10.51 1.492 0.763 0.094 0,008 0,008

Die Verbesserungen an der Genauigkeit der VIO, die oben beschrieben sind, ermöglichen es dem AR-System 100 auch, augmentierte Grafiken für die Anzeige für einen Benutzer mit genauer Platzierung der augmentierten Grafiken in Abschnitten der physischen Umgebung zu erzeugen, die sowohl dem Trägheitskoordinatenrahmen als auch dem örtlichen Koordinatenrahmen entsprechen. 8A und 8B zeigen die Operation des AR-Systems 100, um augmentierte Grafiken zu erzeugen, in mehr Einzelheiten an. 8A zeigt die Ansicht einer physischen Umgebung, die eine Straße und andere feststehende Merkmale enthält (Trägheitskoordinatenrahmen), sowie das Innere eines Fahrzeugs (örtlicher Koordinatenrahmen). Die Bilder können unter Verwendung des Kamerasystems 112 in dem AR-System 100 erzeugt werden. Das Foto 802 enthält ein Overlay mit einer grafischen Darstellung der Wahrscheinlichkeitskarte 184 pro Pixel, die eine Region 184 enthält, die dem Trägheitskoordinatenrahmen der Straße entspricht, und eine andere Region 804, die dem örtlichen Koordinatenrahmen des Fahrzeuginneren entspricht. Während das AR-System 100 allgemein keine grafische Darstellung der Wahrscheinlichkeitskarte 184 pro Pixel erzeugt, stellt das Foto 802 eine illustrative Ausführungsform der Wahrscheinlichkeitskarte 184 pro Pixel bereit. Weiterhin enthält das Foto 820 grafische Anzeigen für Landmarken, die das System 100 basierend auf den Rahmen der Bilddaten von dem Kamerasystem 112 und den Trägheitssensordaten von den Trägheitssensoren 116 erkennt, mit einem Beispiel einer Landmarke 820, die nur für die primäre Bewegungsschätzung im Trägheitskoordinatenrahmen verwendet wird, und der Landmarke 824, die nur für die sekundäre Bewegungsschätzung im örtlichen Koordinatenrahmen verwendet wird.The improvements to the accuracy of the VIO described above enable the AR system 100 also to generate augmented graphics for display to a user with accurate placement of the augmented graphics in portions of the physical environment corresponding to both the inertial coordinate frame and the local coordinate frame. 8A and 8B show the operation of the AR system 100 to create augmented graphics in more detail. 8A shows the view of a physical environment containing a road and other fixed features (inertial coordinate frame) as well as the interior of a vehicle (local coordinate frame). The pictures can be taken using the camera system 112 in the AR system 100 be generated. The photo 802 contains an overlay with a graphical representation of the probability map 184 per pixel representing a region 184 which corresponds to the inertial coordinate frame of the road, and another region 804 that corresponds to the local coordinate frame of the vehicle interior. While the AR system 100 generally no graphical representation of the probability map 184 generated per pixel, presents the photo 802 an illustrative embodiment of the probability map 184 ready per pixel. Furthermore, the photo contains 820 graphic displays for landmarks representing the system 100 based on the frames of the image data from the camera system 112 and the inertial sensor data from the inertial sensors 116 recognizes, with an example of a landmark 820 , which is used only for the primary motion estimation in the inertial coordinate frame, and the landmark 824 , which is used only for the secondary motion estimation in the local coordinate frame.

8A zeigt außerdem grafische Elemente, die das AR-System 100 in Ausrichtung an entweder dem Trägheitskoordinatenrahmen oder dem örtlichen Koordinatenrahmen erzeugt, um die Ansicht der physischen Umgebung zu augmentieren. In den Fotos 850A und 850B erzeugt das AR-System 100 eine grafische 3D-Ansicht eines virtuellen Fahrzeugs 832, das am Straßenrand geparkt ist, im Trägheitskoordinatenrahmen. In dem AR-System 100 verwendet der Prozessor 150 die AR-Grafikdaten 188 zum Erzeugen der grafischen Darstellung des Fahrzeugs 832 unter Verwendung der primären Bewegungsschätzung von dem Prozess 300, um das virtuelle Fahrzeug 832 an einem Ort auf der Straße zu platzieren, der selbst an einer konsistenten Stelle aus Sicht des Benutzers an dem Trägheitskoordinatenrahmen ausgerichtet bleibt, wenn der Benutzer sich in einem sich bewegenden Fahrzeug befindet. Der Benutzer betrachtet das virtuelle Fahrzeug 832 durch die Gläser 108A/108B zusammen mit der physischen Umgebung, die dargestellt ist in 8A. Das AR-System 100 kann auch virtuelle Grafiken erzeugen, die an dem Koordinatenrahmen ausgerichtet sind. Wie in den Fotos 854A und 854B dargestellt, erzeugt der Prozessor 150 eine virtuelle Kugel 836, die im örtlichen Koordinatenrahmen an einem festen Ort relativ zum Armaturenbrett des Fahrzeuginneren bleibt. Erneut verwendet der Prozessor 150 die Grafikdaten 188, um die virtuelle Kugel 836 zu erzeugen, und verwendet die sekundäre geschätzte Bewegung zur Anzeige der virtuellen Kugel 836 an einem konsistenten Ort innerhalb des örtlichen Koordinatenrahmens, wenn sich der Benutzer relativ zu dem örtlichen Koordinatenrahmen und dem Trägheitskoordinatenrahmen bewegt. 8B enthält die weiteren Fotos 860A bis 860E, die Landmarken, das virtuelle Fahrzeug 832 und das virtuelle Fahrzeug 836 im Betrieb des AR-Systems 100 zeigen. Während dies in 8A und 8B nicht ausdrücklich dargestellt ist, kann das AR-System 100 die Grafik des virtuellen Fahrzeug 832 im Trägheitskoordinatenrahmen und der virtuellen Kugel 836 im örtlichen Koordinatenrahmen aufgrund der Verbesserungen an der primären Bewegungsschätzung und der sekundären Bewegungsschätzung, die durch die hierin beschriebenen Ausführungsformen bereitgestellt wurde, gleichzeitig anzeigen. 8A also shows graphic elements that the AR system 100 generated in alignment with either the inertial coordinate frame or the local coordinate frame to augment the view of the physical environment. In the photos 850A and 850B creates the AR system 100 a graphical 3D view of a virtual vehicle 832 parked at the roadside, in the inertia coordinate frame. In the AR system 100 the processor uses 150 the AR graphics data 188 for generating the graphical representation of the vehicle 832 using the primary motion estimation from the process 300 to the virtual vehicle 832 to place at a location on the road which, even at a consistent location from the user's point of view, remains aligned with the inertial coordinate frame when the user is in a moving vehicle. The user views the virtual vehicle 832 through the glasses 108A / 108B along with the physical environment that is depicted in 8A , The AR system 100 can also generate virtual graphics aligned with the coordinate frame. As in the photos 854A and 854B represented, the processor generates 150 a virtual sphere 836 which remains in the local coordinate frame at a fixed location relative to the dashboard of the vehicle interior. The processor uses again 150 the graphics data 188 to the virtual sphere 836 and uses the secondary estimated motion to display the virtual sphere 836 at a consistent location within the local coordinate frame as the user moves relative to the local coordinate frame and the inertial coordinate frame. 8B contains the other photos 860A to 860E , the landmarks, the virtual vehicle 832 and the virtual vehicle 836 during operation of the AR system 100 demonstrate. While this is in 8A and 8B not explicitly shown, the AR system 100 the graphic of the virtual vehicle 832 in the inertia coordinate frame and the virtual sphere 836 in the local coordinate frame due to the improvements to the primary motion estimation and the secondary motion estimation provided by the embodiments described herein simultaneously.

Es ist zu verstehen, dass Varianten der oben offenbarten und anderen Merkmale und Funktionen oder Alternativen davon wie gewünscht in vielen anderen verschiedenen Systemen, Anwendungen oder Verfahren kombiniert werden können. Verschiedene aktuell nicht vorhergesehene oder unerwartete Alternativen, Modifikationen, Variationen oder Verbesserungen können nachfolgen durch Fachleute vorgenommen werden, die auch von den folgenden Ansprüchen umfasst sein sollen.It is to be understood that variations of the above-disclosed and other features and functions or alternatives thereof may be combined as desired in many other various systems, applications or methods. Various currently unforeseen or unexpected alternatives, modifications, variations, or improvements may be made hereinafter by those skilled in the art who should also be encompassed by the following claims.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 62/678383 [0001]US 62/678383 [0001]

Claims (18)

Verfahren für die Bewegungsschätzung in einem Augmented-Reality- (AR) System, umfassend: Empfang von Trägheitssensordaten mit einem Trägheitssensorsystem während der Bewegung des AR-Systems; Empfang mehrerer Rahmen von Bilddaten mit einem Kamerasystem während der Bewegung des AR-Systems; Erzeugung einer Wahrscheinlichkeitskarte, basierend auf den Trägheitssensordaten und den mehreren Rahmen der Bilddaten mit einem Prozessor, der einen Encoder/Decoder eines Convolutional Neural Network umsetzt, wobei die Wahrscheinlichkeitskarte einem Rahmen aus den mehreren Rahmen der Bilddaten entspricht und mehrere Wahrscheinlichkeitswerte enthält, die mehreren Pixeln in dem einen Rahmen entsprechen, wobei jeder Wahrscheinlichkeitswert aus den mehreren Wahrscheinlichkeitswerten eine Wahrscheinlichkeit anzeigt, dass das entsprechende Pixel ein Trägheitskoordinatenrahmen oder ein örtlicher Koordinatenrahmen ist; Identifizierung visueller Beobachtungen von mindestens einer Landmarke in dem örtlichen Koordinatenrahmen mit dem Prozessor, basierend auf den mehreren Rahmen der Bilddaten und der Wahrscheinlichkeitskarte; und Erzeugung einer Schätzung der sekundären Bewegung für das AR-System mit dem Prozessor mit Verweis auf den örtlichen Koordinatenrahmen, basierend auf einem ersten vorherigen Zustand in einem Hidden-Markov-Modell (HMM), das dem örtlichen Koordinatenrahmen und den visuellen Beobachtungen der mindestens einen Landmarke in dem örtlichen Koordinatenrahmen entspricht.A motion estimation method in an Augmented Reality (AR) system, comprising: Receiving inertial sensor data with an inertial sensor system during movement of the AR system; Receiving multiple frames of image data with a camera system during movement of the AR system; Generating a probability map based on the inertial sensor data and the plurality of frames of the image data with a processor implementing a convolutional neural network encoder / decoder, the probability map corresponding to a frame of the plurality of frames of the image data and including a plurality of probability values including a plurality of pixels in corresponding to one frame, each probability value from the plurality of probability values indicating a probability that the corresponding pixel is an inertial coordinate frame or a local coordinate frame; Identifying visual observations of at least one landmark in the local coordinate frame with the processor based on the plurality of frames of the image data and the probability map; and Generating an estimate of the secondary motion for the AR system with the processor with reference to the local coordinate frame based on a first previous state in a Hidden Markov Model (HMM) that matches the local coordinate frame and the visual observations of the at least one landmark in the local coordinate frame corresponds. Verfahren nach Anspruch 1, ferner umfassend: Erzeugung eines grafischen Elements, das an dem örtlichen Koordinatenrahmen basierend auf der Schätzung der sekundären Bewegung für das AR-System ausgerichtet ist, mit einer Anzeigevorrichtung in dem AR-System.Method according to Claim 1 , further comprising: generating a graphical element aligned with the local coordinate frame based on the estimate of the secondary motion for the AR system with a display device in the AR system. Verfahren nach Anspruch 1, ferner umfassend: Identifizierung visueller Beobachtungen von mindestens einer Landmarke in dem Trägheitskoordinatenrahmen mit dem Prozessor, basierend auf den mehreren Rahmen der Bilddaten und der Wahrscheinlichkeitskarte, wobei sich die mindestens eine Landmarke in dem Trägheitskoordinatenrahmen von der mindestens einen Landmarke in dem örtlichen Koordinatenrahmen unterscheidet; und Erzeugung einer Schätzung der primären Bewegung für das AR-System mit dem Prozessor mit Verweis auf den Trägheitskoordinatenrahmen, basierend auf einem zweiten vorherigen Zustand in dem HMM, das dem Trägheitskoordinatenrahmen, den Trägheitssensordaten und den visuellen Beobachtungen der mindestens einen Landmarke in dem Trägheitskoordinatenrahmen entspricht.Method according to Claim 1 , further comprising: identifying visual observations of at least one landmark in the inertial coordinate frame with the processor based on the plurality of image data and the probability map, wherein the at least one landmark in the inertial coordinate frame is different than the at least one landmark in the local coordinate frame; and generating an estimate of the primary motion for the AR system with the processor with reference to the inertial coordinate frame based on a second previous state in the HMM corresponding to the inertial coordinate frame, the inertial sensor data, and the visual observations of the at least one landmark in the inertial coordinate frame. Verfahren nach Anspruch 3, ferner umfassend: Erzeugung eines grafischen Elements, das basierend auf der Schätzung der primären Bewegung für das AR-System an dem Trägheitskoordinatenrahmen ausgerichtet ist, mit einer Anzeigevorrichtung in dem AR-System.Method according to Claim 3 , further comprising: generating a graphical element aligned with the inertial coordinate frame based on the estimate of the primary motion for the AR system with a display device in the AR system. Verfahren nach Anspruch 3, ferner umfassend: Erzeugung eines ersten grafischen Elements, das basierend auf der Schätzung der sekundären Bewegung für das AR-System an dem örtlichen Koordinatenrahmen ausgerichtet ist, mit einer Anzeigevorrichtung in dem AR-System; und Erzeugung eines zweiten grafischen Elements, das basierend auf der Schätzung der primären Bewegung für das AR-System an dem Trägheitskoordinatenrahmen ausgerichtet ist, mit der Anzeigevorrichtung in dem AR-System.Method according to Claim 3 , further comprising: generating a first graphical element aligned with the local coordinate frame based on the secondary motion estimation estimate for the AR system with a display device in the AR system; and generating a second graphical element aligned with the inertial coordinate frame based on the estimate of the primary motion for the AR system with the display device in the AR system. Verfahren nach Anspruch 1, ferner umfassend: Empfang der mehreren Rahmen der Bilddaten, die einen ersten Rahmen der Bilddaten und einen zweiten Rahmen der Bilddaten enthalten, mit dem Kamerasystem, wobei der zweite Rahmen der Bilddaten nach dem ersten Rahmen der Bilddaten auftritt, Erzeugung eines ersten codierten Ausgangs, unter Verwendung des ersten Rahmens der Bilddaten als Eingang für einen Encoder des Convolutional Neural Network und eines zweiten codierten Ausgangs unter Verwendung des zweiten Rahmens der Bilddaten als Eingang für den Encoder des Convolutional Neural Network mit dem Prozessor, der einen Encoder eines Convolutional Neural Network in dem Encoder/Decoder eines Convolutional Neural Network umsetzt; Erzeugung eines Eingangs für einen Decoder eines Convolutional Neural Network in dem Encoder/Decoder des neuralen Netzwerks unter Verwendung einer epipolar eingeschränkten Lage, basierend auf ersten mehreren Empfangsfeldern in dem ersten codierten Ausgang, zweiten mehreren Empfangsfeldern in dem zweiten codierten Ausgang, und mehreren epipolaren Linien, die durch die mehreren Empfangsfelder in dem zweiten codierten Ausgang erzeugt wurden, mit dem Prozessor; und Erzeugung der Wahrscheinlichkeitskarte, die dem zweiten Rahmen der Bilddaten entspricht, mit dem Prozessor, der den Decoder des neuralen Netzwerks in dem Encoder/Decoder eines Convolutional Neural Network umsetzt.Method according to Claim 1 , further comprising: receiving, with the camera system, the plurality of frames of the image data including a first frame of the image data and a second frame of the image data, the second frame of the image data occurring after the first frame of the image data, generating a first encoded output Using the first frame of the image data as an input to a convolutional neural network encoder and a second encoded output using the second frame of image data as the input to the Convolutional Neural Network encoder to the processor encoding an encoder of a Convolutional Neural Network in the encoder / Decoder of a Convolutional Neural Network; Generating an input to a convolutional neural network decoder in the neural network encoder / decoder using an epipolar constrained layer based on first multiple receive fields in the first encoded output, second multiple receive fields in the second encoded output, and multiple epipolar lines; generated by the plurality of receive fields in the second encoded output, with the processor; and Generation of the probability map, which corresponds to the second frame of the image data, with the processor, which converts the decoder of the neural network in the Encoder / Decoder of a Convolutional Neural Network. Verfahren nach Anspruch 6, wobei die Erzeugung des Eingangs für den Decoder des Convolutional Neural Network in dem Encoder/Decoder eines Convolutional Neural Network ferner umfasst: Erzeugung des Eingangs für den Decoder des Convolutional Neural Network in dem Encoder/Decoder des neuralen Netzwerks mit dem Prozessor aus der epipolar eingeschränkten Lage mit der epipolaren Linie in einer zweidimensionalen Matrix von Koordinaten u,v als: au + bv + c = 0 wobei jedes Element ECi,j bei den Koordinaten i, j der epipolar eingeschränkten Lage ist: E C i , j = { R t i , j R t + 1 u , v | a u + b v + c = 0 }
Figure DE102019207888A1_0034
wobei R t i , j
Figure DE102019207888A1_0035
ein eindimensionaler Vektor eines Empfangsfelds aus den ersten mehreren Empfangsfeldern in dem ersten codierten Ausgang und R t + 1 u , v
Figure DE102019207888A1_0036
die zweidimensionale Matrix u, v aus mehreren Empfangsfeldern ist, die einer epipolaren Linie aus den mehreren epipolaren Linien in dem zweiten codierten Ausgang entspricht, und a, b, und c Koeffizienten der einen epipolaren Linie darstellen; und Erzeugung des Eingangs für den Encoder des Convolutional Neural Network in dem Encoder/Decoder des neuralen Netzwerks als einen Block Hrf × Wrf × max(Wrf, Hrf) der Elemente ECi,j mit dem Prozessor, wobei Hrf eine Höhe eines codierten Merkmals ist und Wrf die Breite des codierten Merkmals ist,
Method according to Claim 6 wherein the generation of the input to the Convolutional Neural Network decoder in the Convolutional Neural Network Encoder / Decoder further comprises: generating the input to the convolutional neural network decoder in the neural network encoder / decoder with the epipolar restricted processor Position with the epipolar line in a two-dimensional matrix of coordinates u, v as: au + bv + c = 0 where each element EC i, j at the coordinates i, j of the epipolar constrained layer: e C i . j = { R t i . j R t + 1 u . v | a u + b v + c = 0 }
Figure DE102019207888A1_0034
in which R t i . j
Figure DE102019207888A1_0035
a one-dimensional vector of a reception field from the first plurality of reception fields in the first coded output and R t + 1 u . v
Figure DE102019207888A1_0036
the two-dimensional matrix u, v is of a plurality of reception fields corresponding to one epipolar line of the plurality of epipolar lines in the second encoded output, and a, b, and c are coefficients of one epipolar line; and generating the input to the convolutional neural network encoder in the neural network encoder / decoder as a block H rf × W rf × max (W rf , H rf ) of the elements EC i, j with the processor, where H rf is a Height of an encoded feature and W rf is the width of the encoded feature,
Verfahren nach Anspruch 6, ferner umfassend: Identifizierung jeder epipolaren Linie aus den mehreren epipolaren Linien mit dem Prozessor, basierend auf Trägheitssensordaten, die von dem Trägheitssensorsystem empfangen wurden und eine Bewegung des AR-Systems während einer Zeit zwischen der Erzeugung des ersten Rahmens der Bilddaten und der Erzeugung des zweiten Rahmens der Bilddaten anzeigen.Method according to Claim 6 , further comprising: identifying, with the processor, each epipolar line of the plurality of epipolar lines based on inertial sensor data received from the inertial sensor system and a movement of the AR system during a time between the generation of the first frame of the image data and the generation of the second Show frame of image data. Verfahren nach Anspruch 1 wobei die Erzeugung der Schätzung der sekundären Bewegung für das AR-System ferner umfasst: Erzeugung einer Schätzung einer Pose des AR-Systems mit dem Prozessor und einer Ausrichtung des AR-Systems mit Verweis auf den örtlichen Koordinatenrahmen.Method according to Claim 1 wherein the generation of the secondary motion estimation for the AR system further comprises generating an estimate of a pose of the AR system with the processor and an alignment of the AR system with reference to the local coordinate frame. Augmented-Reality- (AR) System, umfassend: ein Trägheitssensorsystem; ein Kamerasystem; eine Anzeigevorrichtung; und einen Prozessor, der operativ mit dem Trägheitssensorsystem, dem Kamerasystem und der Anzeigevorrichtung gekoppelt ist, wobei der Prozessor konfiguriert ist, um: Trägheitssensordaten zu empfangen, die von dem Trägheitssensorsystem während der Bewegung des AR-Systems erzeugt wurden; mehrere Rahmen von Bilddaten zu empfangen, die durch das Kamerasystem während der Bewegung des AR-Systems erzeugt wurden; einer Wahrscheinlichkeitskarte basierend auf den Trägheitssensordaten und den mehreren Rahmen der Bilddaten unter Verwendung eines Encoders/Decoders des Convolutional Neural Network zu erzeugen, wobei die Wahrscheinlichkeitskarte dem einen Rahmen aus den mehreren Rahmen der Bilddaten entspricht und mehrere Wahrscheinlichkeitswerte enthält, die mehreren Pixeln in dem einen Rahmen entsprechen, wobei jeder Wahrscheinlichkeitswert aus den mehreren Wahrscheinlichkeitswerten eine Wahrscheinlichkeit anzeigt, dass sich das entsprechende Pixel in einem Trägheitskoordinatenrahmen oder einem örtlichen Koordinatenrahmen befindet, Identifizierung visueller Beobachtungen von mindestens einer Landmarke in dem örtlichen Koordinatenrahmen, basierend auf den mehreren Rahmen der Bilddaten und der Wahrscheinlichkeitskarte; und Erzeugung einer Schätzung der sekundären Bewegung für das AR-System mit Verweis auf den örtlichen Koordinatenrahmen, basierend auf einem ersten vorherigen Zustand in einem Hidden-Markov-Modell (HMM), das dem örtlichen Koordinatenrahmen und den visuellen Beobachtungen der mindestens einen Landmarke in dem örtlichen Koordinatenrahmen entspricht.Augmented reality (AR) system comprising: an inertial sensor system; a camera system; a display device; and a processor operably coupled to the inertial sensor system, the camera system, and the display device, the processor configured to: Receiving inertial sensor data generated by the inertial sensor system during movement of the AR system; receive multiple frames of image data generated by the camera system during movement of the AR system; a probability map based on the inertial sensor data and the plurality of frames of the image data using a Convolutional Neural Network encoder / decoder, the probability map corresponding to the one frame of the plurality of frames of the image data and including a plurality of probability values comprising a plurality of pixels in the one frame each probability value from the plurality of probability values indicates a probability that the corresponding pixel is located in an inertial coordinate frame or a local coordinate frame, Identifying visual observations of at least one landmark in the local coordinate frame based on the plurality of frames of the image data and the probability map; and Generating an estimate of the secondary motion for the AR system with reference to the local coordinate frame based on a first previous state in a Hidden Markov Model (HMM) that matches the local coordinate frame and the visual observations of the at least one landmark in the local coordinate frame Coordinate frame corresponds. System nach Anspruch 10, wobei der Prozessor ferner konfiguriert ist zum: Erzeugen eines grafischen Elements mit der Anzeigevorrichtung, wobei das grafische Element auf Grundlage der Schätzung der sekundären Bewegung für das AR-System an dem örtlichen Koordinatenrahmen ausgerichtet ist. System after Claim 10 wherein the processor is further configured to: generate a graphical element with the display device, wherein the graphical element is aligned with the local coordinate frame based on the estimate of the secondary motion for the AR system. System nach Anspruch 10, wobei der Prozessor ferner konfiguriert ist zum: Identifizieren visueller Beobachtungen von mindestens einer Landmarke in dem Trägheitskoordinatenrahmen, basierend auf den mehreren Rahmen der Bilddaten und der Wahrscheinlichkeitskarte, wobei sich die mindestens eine Landmarke in dem Trägheitskoordinatenrahmen von der mindestens einen Landmarke in dem örtlichen Koordinatenrahmen unterscheidet; und Erzeugung einer Schätzung der primären Bewegung für das AR-System mit dem Prozessor mit Verweis auf den Trägheitskoordinatenrahmen, basierend auf einem zweiten vorherigen Zustand in dem HMM, das dem Trägheitskoordinatenrahmen, den Trägheitssensordaten und den visuellen Beobachtungen der mindestens einen Landmarke in dem Trägheitskoordinatenrahmen entspricht.System after Claim 10 wherein the processor is further configured to: identify visual observations of at least one landmark in the inertial coordinate frame based on the plurality of frames of the image data and the probability map, wherein the at least one landmark in the inertial coordinate frame is different than the at least one landmark in the local coordinate frame ; and generating an estimate of the primary motion for the AR system with the processor with reference to the inertial coordinate frame based on a second previous state in the HMM corresponding to the inertial coordinate frame, the inertial sensor data, and the visual observations of the at least one landmark in the inertial coordinate frame. System nach Anspruch 12, wobei der Prozessor ferner konfiguriert ist zum: Erzeugen eines grafischen Elements mit der Anzeigevorrichtung, wobei das grafische Element basierend auf der Schätzung der primären Bewegung für das AR-System an dem Trägheitskoordinatenrahmen ausgerichtet ist.System after Claim 12 wherein the processor is further configured to: generate a graphical element with the display device, wherein the graphical element is aligned with the inertial coordinate frame based on the estimate of the primary motion for the AR system. System nach Anspruch 12, wobei der Prozessor ferner konfiguriert ist zum: Erzeugen eines ersten grafischen Elements mit der Anzeigevorrichtung, wobei das erste grafische Element auf Grundlage der Schätzung der sekundären Bewegung für das AR-System an dem örtlichen Koordinatenrahmen ausgerichtet ist; und Erzeugen eines zweiten grafischen Elements mit der Anzeigevorrichtung, wobei das zweite grafische Element auf Grundlage der Schätzung der primären Bewegung für das AR-System an dem Trägheitskoordinatenrahmen ausgerichtet ist.System after Claim 12 wherein the processor is further configured to: generate a first graphical element with the display device, wherein the first graphical element is aligned with the local coordinate frame based on the estimate of the secondary motion for the AR system; and generating a second graphical element with the display device, wherein the second graphical element is aligned with the inertial coordinate frame based on the estimate of the primary motion for the AR system. System nach Anspruch 10, wobei der Prozessor ferner konfiguriert ist zum: Empfangen der mehreren Rahmen der Bilddaten mit dem Kamerasystem, wobei die mehreren Rahmen der Bilddaten einen ersten Rahmen der Bilddaten und einen zweiten Rahmen der Bilddaten enthalten, wobei der zweite Rahmen der Bilddaten nach dem ersten Rahmen der Bilddaten auftritt; Erzeugen eines ersten codierten Ausgangs unter Verwendung des ersten Rahmens der Bilddaten als Eingang für einen Encoder eines Convolutional Neural Network in dem Encoder/Decoder eines Convolutional Neural Network und eines zweiten codierten Ausgangs unter Verwendung des zweiten Rahmens der Bilddaten als Eingang für den Encoder eines Convolutional Neural Network; Erzeugen eines Eingangs für einen Decoder eines Convolutional Neural Network in dem Encoder/Decoder des neuralen Netzwerks unter Verwendung einer epipolar eingeschränkten Lage, basierend auf ersten mehreren Empfangsfeldern in dem ersten codierten Ausgang, zweiten mehreren Empfangsfeldern in dem zweiten codierten Ausgang, und mehreren epipolaren Linien, die durch die mehreren Empfangsfelder in dem zweiten codierten Ausgang erzeugt wurden; und Erzeugen der Wahrscheinlichkeitskarte, die dem zweiten Rahmen der Bilddaten unter Verwendung des Decoders für das neurale Netzwerk in dem Encoder/Decoder eines Convolutional Neural Network entspricht.System after Claim 10 wherein the processor is further configured to: receive the plurality of frames of the image data with the camera system, the plurality of frames of the image data including a first frame of the image data and a second frame of the image data, the second frame of the image data subsequent to the first frame of the image data occurs; Generating a first encoded output using the first frame of the image data as input to a convolutional neural network encoder in the convolutional neural network encoder / decoder and a second encoded output using the second frame of the image data as input to the convolutional neural encoder Network; Generating an input to a convolutional neural network decoder in the neural network encoder / decoder using an epipolar restricted layer based on first multiple receive fields in the first encoded output, second multiple receive fields in the second encoded output, and multiple epipolar lines; generated by the plurality of receive fields in the second encoded output; and generating the probability map corresponding to the second frame of the image data using the neural network decoder in the convolutional neural network encoder / decoder. System nach Anspruch 15, wobei der Prozessor ferner konfiguriert ist zum: Erzeugen des Eingangs für den Decoder des Convolutional Neural Network in dem Encoder/Decoder des neuralen Netzwerks aus der epipolar eingeschränkten Lage mit der epipolaren Linie in einer zweidimensionalen Matrix von Koordinaten u,v als: au + bv + c = 0 wobei jedes Element ECi,j bei den Koordinaten i, j der epipolar eingeschränkten Lage ist: E C i , j = { R t i , j R t + 1 u , v | a u + b v + c = 0 }
Figure DE102019207888A1_0037
wobei R t i , j
Figure DE102019207888A1_0038
ein eindimensionaler Vektor eines Empfangsfelds aus den ersten mehreren Empfangsfeldern in dem ersten codierten Ausgang und R t + 1 u , v
Figure DE102019207888A1_0039
die zweidimensionale Matrix u, v aus mehreren Empfangsfeldern ist, die einer epipolaren Linie aus den mehreren epipolaren Linien in dem zweiten codierten Ausgang entspricht, und a, b, und c Koeffizienten der einen epipolaren Linie darstellen; und Erzeugen des Eingangs für den Encoder des Convolutional Neural Network in dem Encoder/Decoder des neuralen Netzwerks als einen Block Hrf × Wrf × max(Wrf, Hrf) der Elemente ECi,j, wobei Hrf eine Höhe eines codierten Merkmals ist und Wrf die Breite des codierten Merkmals ist,
System after Claim 15 wherein the processor is further configured to: generate the input to the convolutional neural network decoder in the neural network encoder / decoder from the epipolar constrained layer with the epipolar line in a two-dimensional array of coordinates u, v as: au + bv + c = 0 where each element EC i, j at the coordinates i, j of the epipolar constrained layer: e C i . j = { R t i . j R t + 1 u . v | a u + b v + c = 0 }
Figure DE102019207888A1_0037
in which R t i . j
Figure DE102019207888A1_0038
a one-dimensional vector of a reception field from the first plurality of reception fields in the first coded output and R t + 1 u . v
Figure DE102019207888A1_0039
the two-dimensional matrix u, v is of a plurality of reception fields corresponding to one epipolar line of the plurality of epipolar lines in the second encoded output, and a, b, and c are coefficients of one epipolar line; and generating the input to the convolutional neural network encoder in the neural network encoder / decoder as a block H rf × W rf × max (W rf , H rf ) of the elements EC i, j , where H rf is a height of an encoded one Feature is and W rf is the width of the encoded feature,
System nach Anspruch 15, wobei der Prozessor ferner konfiguriert ist zum: Identifizieren jeder epipolaren Linie aus den mehreren epipolaren Linien basierend auf Trägheitssensordaten, die von dem Trägheitssensorsystem empfangen wurden und eine Bewegung des AR-Systems während einer Zeit zwischen der Erzeugung des ersten Rahmens der Bilddaten und der Erzeugung des zweiten Rahmens der Bilddaten anzeigen.System after Claim 15 wherein the processor is further configured to: identify each epipolar line from the plurality of epipolar lines based on inertial sensor data received from the inertial sensor system and a movement of the AR system during a time between the generation of the first frame of the image data and the generation of the second frame of the image data. System nach Anspruch 10, wobei der Prozessor ferner konfiguriert ist zum: Erzeugen der Schätzung der sekundären Bewegung für das AR-System mit dem Prozessor, enthaltend eine Schätzung einer Pose des AR-Systems mit dem Prozessor und einer Ausrichtung des AR-Systems mit Verweis auf den örtlichen Koordinatenrahmen. System after Claim 10 wherein the processor is further configured to: generate the estimate of the secondary motion for the AR system with the processor including an estimate of a pose of the AR system with the processor and an alignment of the AR system with reference to the local coordinate frame.
DE102019207888.5A 2018-05-31 2019-05-29 Methods and systems for exploiting motion conflicts per pixel for extracting primary and secondary movements in augmented reality systems Pending DE102019207888A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862678383P 2018-05-31 2018-05-31
US62/678,383 2018-05-31
US16/158,878 2018-10-12
US16/158,878 US10636190B2 (en) 2018-05-31 2018-10-12 Methods and systems for exploiting per-pixel motion conflicts to extract primary and secondary motions in augmented reality systems

Publications (1)

Publication Number Publication Date
DE102019207888A1 true DE102019207888A1 (en) 2019-12-05

Family

ID=68576541

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019207888.5A Pending DE102019207888A1 (en) 2018-05-31 2019-05-29 Methods and systems for exploiting motion conflicts per pixel for extracting primary and secondary movements in augmented reality systems

Country Status (1)

Country Link
DE (1) DE102019207888A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114543797A (en) * 2022-02-18 2022-05-27 北京市商汤科技开发有限公司 Pose prediction method and apparatus, device, and medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114543797A (en) * 2022-02-18 2022-05-27 北京市商汤科技开发有限公司 Pose prediction method and apparatus, device, and medium

Similar Documents

Publication Publication Date Title
DE112017002799B4 (en) METHOD AND SYSTEM FOR GENERATION OF MULTIMODAL DIGITAL IMAGES
EP2430614B1 (en) Method for the real-time-capable, computer-assisted analysis of an image sequence containing a variable pose
DE112018000332T5 (en) SEAL VISUAL SLAM WITH PROBABILISTIC SURFEL MAP
DE112019005750T5 (en) Learning to generate synthetic data sets for training neural networks
DE112016004731T5 (en) Extend multiview image data with synthetic objects using IMU and image data
DE102016209625A1 (en) Method for evaluating image data of a vehicle camera
DE102019005423A1 (en) Space-time storage or storage network for localizing a target object in video content
DE112018004527T5 (en) SELF-PORTRAITS IN ADVANCED REALITY
DE112018001050T5 (en) SYSTEM AND METHOD FOR VIRTUALLY ENHANCED VISUAL SIMULTANEOUS LOCALIZATION AND CARTOGRAPHY
DE102019130889A1 (en) ESTIMATE THE DEPTH OF A VIDEO DATA STREAM TAKEN BY A MONOCULAR RGB CAMERA
DE112019005671T5 (en) DETERMINING ASSOCIATIONS BETWEEN OBJECTS AND PERSONS USING MACHINE LEARNING MODELS
US10636190B2 (en) Methods and systems for exploiting per-pixel motion conflicts to extract primary and secondary motions in augmented reality systems
DE102016116818A1 (en) Method and device for detecting a vehicle contour by means of point cloud data
CN106709568A (en) RGB-D image object detection and semantic segmentation method based on deep convolution network
DE102016005407A1 (en) Joint depth estimation and semantic labeling of a single image
DE102015214338A1 (en) Determining an arrangement information for a vehicle
DE102019102866A1 (en) Identification of a manufacturing part using computer vision and machine learning
DE102017100622A1 (en) Apparatus and methods for correcting registration information from one or more inertial sensors
DE112016002995T5 (en) Method for determining a movement between a first coordinate system and a second coordinate system
DE112016006213T5 (en) System and method for fusing outputs from sensors having different resolutions
DE112016001829T5 (en) Automatically associate images using visual property references to related applications
DE112017008101T5 (en) AUTONOMOUS ROBOTS AND METHOD FOR OPERATING THE SAME
EP3347878B1 (en) Method and apparatus for superimposing a virtual image onto an image of a real scene, and mobile device
DE112020000590T5 (en) MAP AND PROCEDURE FOR CREATING A MAP
DE102018108314A1 (en) Perform autonomous path navigation using deep neural networks

Legal Events

Date Code Title Description
R012 Request for examination validly filed