DE102019107103A1 - METHOD AND SYSTEM FOR OBJECT SEGMENTATION IN A MIXED REALITY ENVIRONMENT - Google Patents

METHOD AND SYSTEM FOR OBJECT SEGMENTATION IN A MIXED REALITY ENVIRONMENT Download PDF

Info

Publication number
DE102019107103A1
DE102019107103A1 DE102019107103.8A DE102019107103A DE102019107103A1 DE 102019107103 A1 DE102019107103 A1 DE 102019107103A1 DE 102019107103 A DE102019107103 A DE 102019107103A DE 102019107103 A1 DE102019107103 A1 DE 102019107103A1
Authority
DE
Germany
Prior art keywords
image
user
input device
limb
peripheral input
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.)
Granted
Application number
DE102019107103.8A
Other languages
German (de)
Other versions
DE102019107103B4 (en
Inventor
Mario Gutierrez
Thomas Rouvinez
Sidney Bovet
Helmut Grabner
Mathieu Meisser
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.)
Logitech Europe SA
Original Assignee
Logitech Europe SA
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/267,197 external-priority patent/US11182962B2/en
Application filed by Logitech Europe SA filed Critical Logitech Europe SA
Publication of DE102019107103A1 publication Critical patent/DE102019107103A1/en
Application granted granted Critical
Publication of DE102019107103B4 publication Critical patent/DE102019107103B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1686Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0308Detection arrangements using opto-electronic means comprising a plurality of distinctive and separately oriented light emitters or reflectors associated to the pointing device, e.g. remote cursor controller with distinct and separately oriented LEDs at the tip whose radiations are captured by a photo-detector associated to the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Es werden Verfahren und Systeme zum Ermöglichen einer Mixed-Reality (MR) -Interaktion angegeben. Bei einem Beispiel umfasst das Verfahren: Aufnehmen eines ersten Bildes von der Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung, wobei die Gliedmaße des Benutzers die reale Peripherieeingabevorrichtung zumindest teilweise verdeckt; Segmentieren des ersten Bildes in einen der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht; Erstellen eines zusammengesetzten Bildes aus dem ersten Bild auf Basis dessen, dass anstelle des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung darstellen, sodass die virtuelle Peripherieeingabevorrichtung im zusammengesetzten Bild räumlich an derselben Stelle wie die reale Peripherieeingabevorrichtung erscheint und von der Gliedmaße des Benutzers zumindest teilweise verdeckt ist; und Anzeigen des zusammengesetzten Bildes für den Benutzer.Methods and systems for facilitating mixed reality (MR) interaction are provided. In one example, the method includes: capturing a first image of a user's limb and a real peripheral input device, wherein the limb of the user at least partially obscures the real peripheral input device; Segmenting the first image into a first pixel region corresponding to the limb of the user, wherein a second pixel region corresponds to the real peripheral input device; Creating a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region such that the virtual peripheral input device spatially appears in the composite image at the same location as the real peripheral input device and at least the user's limb partially obscured; and displaying the composite image to the user.

Description

VERWEISE AUF IN BEZUG GENOMMENE ANMELDUNGENREFERENCE TO RELATED APPLICATIONS

Diese nichtprovisorische Anmeldung nimmt die Rechte aus der am 20. März 2018 eingereichten provisorischen US-Anmeldung Nr. 62/645,760 mit dem Titel „ACCURATE HAND TRACKING ON A PERIPHERAL DEVICE IN A MIXED REALITY ENVIRONMENT“ sowie deren Priorität in Anspruch, wobei die Anmeldung hiermit in ihrer Gesamtheit für alle Zwecke durch Bezugnahme aufgenommen ist.This non-provisional application takes the rights from the provisional filed on March 20, 2018 U.S. Application No. 62 / 645,760 entitled "ACCURATE HAND TRACKING ON A PERIPHERAL DEVICE IN A MIXED REALITY ENVIRONMENT" and the priority thereof, the application of which is hereby incorporated by reference in its entirety for all purposes.

Die folgende reguläre US-Patentanmeldung (einschließlich dieser) wurde gleichzeitig eingereicht, wobei die gesamte Offenbarung der anderen Anmeldung in diese Anmeldung für alle Zwecke durch Bezugnahme aufgenommen ist:

  • • Anmeldung Nr. 16/267,200 mit dem Titel „METHOD AND SYSTEM FOR MIXED REALITY INTERACTION WITH PERIPHERAL DEVICE“, eingereicht am 4. Februar 2019.
The following regular US patent application (including this) has been filed concurrently, the entire disclosure of the other application being incorporated herein by reference for all purposes:
  • • Application No. 16 / 267,200 entitled "METHOD AND SYSTEM FOR MIXED REALITY INTERACTION WITH PERIPHERAL DEVICE" filed on 4 February 2019.

HINTERGRUNDBACKGROUND

Peripheriegeräte können als Schnittstelle zwischen Mensch und Computer verwendet werden. Tastaturen, Computermäuse, Bildscanner, Lautsprecher, Mikrofone, Webkameras, ein Head-Mounted Display (HMD), Taststifte, Stifte, Zeigergeräte und dergleichen mehr stellen einige der gängigen Peripheriegeräte dar. Einige dieser Peripheriegeräte können zur Verbesserung der Benutzerfreundlichkeit zusammenwirken. So kann beispielsweise ein HMD mit anderen Peripheriegeräten (z. B. einer Maus, einer Tastatur usw.) betrieben werden, um ein Mixed-Reality-Erlebnis (MR-Erlebnis) oder ein Erweiterte-Realität-Erlebnis (AR-Erlebnis) zu ermöglichen. So kann ein von einem Benutzer aufgesetztes HMD beispielsweise Kameras aufweisen, um Echtzeitbilder einer Interaktion des Benutzers mit einer sich vor dem Benutzer befindenden anderen Peripheriegeräten (z. B. einer Tastatur) aufzunehmen. Durch Kombinieren eines realen Elements (z. B. einer realen Hand oder anderer Körperteile, einer realen Tastatur usw.) aus den Bildern mit einem virtuellen Element (z. B. einer virtuellen Tastatur, einer virtuellen Hand, usw.) kann ein zusammengesetztes Bild erzeugt werden. Ein zusammengesetztes Bild kann für jedes der Echtzeitbilder erzeugt werden, wobei dem Benutzer an dem HMD anstelle der Echtzeitbilder die zusammengesetzten Bilder angezeigt werden können.Peripherals can be used as an interface between humans and computers. Keyboards, computer mice, image scanners, speakers, microphones, web cameras, a head-mounted display (HMD), styli, pens, pointing devices and the like are some of the common peripherals. Some of these peripherals may interact to enhance usability. For example, an HMD may be operated with other peripherals (eg, a mouse, a keyboard, etc.) to facilitate a mixed reality (MR) experience or an augmented reality (AR) experience , For example, an HMD set up by a user may include cameras to capture real-time images of an interaction of the user with other peripheral devices (eg, a keyboard) in front of the user. By combining a real element (eg, a real hand or other body parts, a real keyboard, etc.) from the images with a virtual element (eg, a virtual keyboard, a virtual hand, etc.), a composite image may be created be generated. A composite image may be generated for each of the real-time images, where the composite image may be displayed to the user at the HMD instead of the real-time images.

Wenn sich das HMD aufgrund einer Bewegung des Benutzers bewegt, kann das in dem HMD angezeigte zusammengesetzte Bild aktualisiert werden, um die Änderung des Betrachtungswinkels des Benutzers relativ zur Peripheriegerät nachzuvollziehen. Zur Optimierung der Konsistenz und zur Minimierung von Übelkeitsanfällen sollten das Rendern des virtuellen Elements und der realen Elemente im zusammengesetzten Bild mit der Bewegung des HMD synchronisiert sein.As the HMD moves due to movement of the user, the composite image displayed in the HMD may be updated to track the change in the viewing angle of the user relative to the peripheral device. To optimize consistency and minimize nausea, the rendering of the virtual element and the real elements in the composite image should be synchronized with the movement of the HMD.

KURZBESCHREIBUNGSUMMARY

Bestimmte Ausführungsformen geben ein Verfahren zum Bereitstellen von Mixed-Reality-Interaktion (MR-Interaktion) an. Das Verfahren umfasst ein Aufnehmen eines ersten Bildes einer realen Interaktion eines Benutzers mit einem realen Objekt zu einem ersten Zeitpunkt und unter Verwendung einer Kamera eines Head-Mounted Displays (HMD) eines Benutzers, ein Messen einer Bewegung des HMD relativ zu dem realen Objekt zwischen dem ersten und einem zweiten Zeitpunkt, ein Verarbeiten des ersten Bildes auf Basis der Messung der Bewegung des HMD zum Erzeugen eines zweiten Bildes, ein Erzeugen eines zusammengesetzten Bildes einer virtuellen Interaktion, die den Benutzer miteinbezieht, auf Basis des zweiten Bildes und ein Anzeigen der virtuellen Interaktion anstelle der realen Interaktion für den Benutzer an dem HMD auf Basis des zusammengesetzten Bildes zum zweiten Zeitpunkt.Certain embodiments provide a method for providing mixed-reality interaction (MR interaction). The method includes capturing a first image of a user's real interaction with a real object at a first time and using a head-mounted display (HMD) camera of a user, measuring movement of the HMD relative to the real object between the user first and second timings, processing the first image based on measuring the movement of the HMD to generate a second image, generating a composite image of a virtual interaction involving the user based on the second image, and displaying the virtual interaction instead of real interaction for the user at the HMD based on the composite image at the second time.

Bei einigen Ausgestaltungen wird das erste Bild zu einem ersten Zeitpunkt aufgenommen. Das Verfahren umfasst ferner ein Messen der Bewegung des HMD relativ zum realen Objekt zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt, um ein oder mehrere Messergebnisse zu erhalten, und ein Verarbeiten des ersten Bildes auf Basis des einen oder der mehreren Messergebnisse, um das zweite Bild zu erzeugen.In some embodiments, the first image is taken at a first time. The method further comprises measuring the movement of the HMD relative to the real object between the first time and the second time to obtain one or more measurement results, and processing the first image based on the one or more measurement results to obtain the second image to create.

Bei einigen Ausgestaltungen umfasst die Verarbeitung des ersten Bildes auf Basis des einen oder der mehreren Messergebnisse, um das zweite Bild zu erzeugen, ein Speichern des ersten Bildes in einem Bildpufferspeicher, ein Verschieben eines Bestandteils des ersten Bildes in dem Bildpufferspeicher auf Basis des einen oder der mehreren Messergebnisse und ein Erzeugen des zweiten Bildes auf Basis des verschobenen Bestandteils des ersten Bildes.In some embodiments, processing the first image based on the one or more measurement results to produce the second image comprises storing the first image in a frame buffer, shifting a constituent of the first image in the frame buffer based on the one or more a plurality of measurement results and generating the second image based on the shifted component of the first image.

Bei einigen Ausgestaltungen umfasst der Bildpufferspeicher einen ersten Pufferspeicherbereich und einen zweiten Pufferspeicherbereich. Die Daten des ersten Bildes werden zwischen dem ersten Pufferspeicherbereich und dem zweiten Pufferspeicherbereich aufgeteilt. Das zweite Bild wird auf Basis eines im ersten Pufferspeicherbereich gespeicherten Teils der Daten des ersten Bildes erzeugt. Das Verschieben des Bestandteils des ersten Bildes im Bildpufferspeicher umfasst ein Ändern eines Speicherorts des ersten Pufferspeicherbereichs innerhalb des Bildpufferspeichers. In some embodiments, the frame buffer includes a first buffer area and a second buffer area. The data of the first image is divided between the first buffer memory area and the second buffer memory area. The second image is generated based on a portion of the data of the first image stored in the first buffer memory area. Moving the component of the first image in the frame buffer includes changing a location of the first buffer area within the frame buffer.

Bei einigen Ausgestaltungen umfasst der Bildpufferspeicher einen ersten Pufferspeicherbereich und einen zweiten Pufferspeicherbereich. Die Daten des ersten Bildes können zwischen dem ersten Pufferspeicherbereich und dem zweiten Pufferspeicherbereich aufgeteilt werden. Das zweite Bild kann auf Basis eines im ersten Pufferspeicherbereich gespeicherten Teils der Daten des ersten Bildes erzeugt werden. Das Verschieben des Bestandteils des ersten Bildes im Bildpufferspeicher kann ein Ändern von Speicherorten der Daten des ersten Bildes relativ zu einem Speicherort des ersten Pufferspeicherbereichs innerhalb des Bildpuffers umfassen.In some embodiments, the frame buffer includes a first buffer area and a second buffer area. The data of the first image may be divided between the first buffer memory area and the second buffer memory area. The second image may be generated based on a portion of the data of the first image stored in the first buffer memory area. The shifting of the constituent of the first image in the frame buffer may include changing locations of the data of the first image relative to a location of the first buffer area within the frame buffer.

Bei einigen Ausgestaltungen umfassen die einen oder die mehreren Messergebnisse eine Winkelgeschwindigkeit des HMD und eine Drehrichtung des HMD.In some embodiments, the one or more measurements include an angular velocity of the HMD and a direction of rotation of the HMD.

Bei einigen Ausgestaltungen umfasst ein Verschieben eines Bestandteils des ersten Bildes im Bildpufferspeicher auf Basis des einen oder der mehreren Messergebnisse ein Bestimmen eines Drehwinkels auf Basis der Winkelgeschwindigkeit, der Drehrichtung und einer Zeitdifferenz zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt, ein Bestimmen einer Verschiebestrecke und einer Verschieberichtung auf Basis des Drehwinkels, einer ersten Position des HMD und einer zweiten Position des realen Objekts sowie ein Verschieben des Bestandteils des ersten Bildes im Bildpufferspeicher auf Basis der Verschiebestrecke und der Verschieberichtung.In some embodiments, shifting a component of the first image in the frame buffer based on the one or more measurement results includes determining a rotation angle based on the angular velocity, the direction of rotation, and a time difference between the first time and the second time, determining a displacement distance, and Displacement direction based on the angle of rotation, a first position of the HMD and a second position of the real object and a shifting of the component of the first image in the image buffer memory on the basis of the displacement distance and the displacement direction.

Bei einigen Ausgestaltungen umfasst das Verfahren ferner ein Bestimmen der Zeitdifferenz auf Basis einer Schätzung eines Zeitverzugs zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt.In some embodiments, the method further comprises determining the time difference based on an estimate of a time delay between the first time and the second time.

Bei einigen Ausgestaltungen umfasst das erste Bild ein Bild einer Anzeigevorrichtung, die ein sich mit der Zeit änderndes Muster anzeigt. Das Verfahren umfasst ferner ein Identifizieren des Musters in dem ersten Bild und ein Bestimmen des ersten Zeitpunkts auf Basis des identifizierten Musters.In some embodiments, the first image includes an image of a display device that displays a time-varying pattern. The method further comprises identifying the pattern in the first image and determining the first time based on the identified pattern.

Bei einigen Ausgestaltungen umfasst das erste Bild ein von dem realen Objekt emittiertes sich mit der Zeit änderndes Lichtmuster. Das Verfahren umfasst ferner ein Identifizieren des Lichtmusters in dem ersten Bild und ein Bestimmen des ersten Zeitpunkts auf Basis des identifizierten Lichtmusters.In some embodiments, the first image includes a time varying light pattern emitted by the real object. The method further comprises identifying the light pattern in the first image and determining the first time based on the identified light pattern.

Bei einigen Ausgestaltungen wird der erste Zeitpunkt auf Basis einer Bestimmung der Zeit bestimmt, zu der sich ein Verschluss der Kamera des HMD öffnet.In some embodiments, the first time is determined based on a determination of the time at which a shutter of the camera of the HMD opens.

Bei einigen Ausgestaltungen wird der zweite Zeitpunkt auf Basis einer Bestimmung der Zeit bestimmt, zu der das erste Bild im Bildpufferspeicher gespeichert wird.In some embodiments, the second time is determined based on a determination of the time at which the first image is stored in the frame buffer.

Bei einigen Ausgestaltungen wird die zweite Position des realen Objekts auf Basis von Informationen bestimmt, die von einem an dem realen Objekt angebrachten optischen Sensor empfangen werden.In some embodiments, the second position of the real object is determined based on information received from an optical sensor attached to the real object.

Bei einigen Ausgestaltungen wird die zweite Position des realen Objekts auf Basis von Informationen bestimmt, die von einem optischen Sensor empfangen werden, der Licht von einem an dem realen Objekt angebrachten Lichtsender empfängt.In some embodiments, the second position of the real object is determined based on information received from an optical sensor that receives light from a light emitter attached to the real object.

Bei einigen Ausgestaltungen wird die erste Position des HMD auf Basis eines Erfassens von gerichteten Lichtstrahlen mehrerer Lichtemitter und vorgegebener Positionen der mehreren Lichtemitter bestimmt.In some embodiments, the first position of the HMD is determined based on detecting directional light rays of multiple light emitters and predetermined positions of the plurality of light emitters.

Bei einigen Ausgestaltungen basiert das Erzeugen des zusammengesetzten Bildes auf einem Bestimmen einer Bildposition des realen Objekts im zweiten Bild auf Basis einer Position des HMD, einer Position des realen Objekts und des einen oder der mehreren Messergebnisse, und auf einem Ersetzen von Pixeln, die dem realen Objekt an der Bildposition im zweiten Bild entsprechen, durch Pixel eines virtuellen Objekts, um das zusammengesetzte Bild zu erzeugen.In some embodiments, generating the composite image is based on determining an image position of the real object in the second image based on a position of the HMD, a position of the real object and the one or more measurement results, and a replacement of pixels corresponding to the real one Object at the image position in the second image correspond, through pixels of a virtual object, to produce the composite image.

Bei einigen Ausgestaltungen basiert das Erzeugen des zusammengesetzten Bildes auf einem Bestimmen einer ersten Bildposition des realen Objekts im zweiten Bild auf Basis einer Position des HMD, einer Position des realen Objekts und dem einen oder den mehreren Messergebnissen, einem Bestimmen einer zweiten Bildposition eines Körperteils des Benutzers, der an der realen Interaktion mit dem realen Objekt beteiligt ist, auf Basis der ersten Bildposition und in dem zweiten Bild, ein Extrahieren von Pixeln des Körperteils des Benutzers an einer zweiten Bildposition im zweiten Bild und Einfügen der Pixel des Körperteils des Benutzers in das zusammengesetzte Bild.In some embodiments, generating the composite image is based on determining a first image position of the real object in the second image based on a position of the HMD, a position of the real object, and the one or more measurement results, determining a second image position of a body part of the user based on the first image position and the second image, extracting pixels of the body part of the user at a second image position in the second image, and inserting the pixels of the body part of the user into the composite object involved in real interaction with the real object Image.

Bei einigen Ausgestaltungen umfasst der Körperteil des Benutzers zumindest einen Teil einer Hand des Benutzers.In some embodiments, the body part of the user includes at least a portion of a user's hand.

Bestimmte Ausführungsformen geben eine Vorrichtung an. Die Vorrichtung umfasst eine Anzeigevorrichtung, eine Kamera, die zum Aufnehmen eines ersten Bildes einer realen Interaktion eines Benutzers mit einem realen Objekt zu einem ersten Zeitpunkt ausgebildet ist, und einen mit der Kamera und der Anzeigevorrichtung gekoppelten Bildprozessor, der zum Messen einer Bewegung der Vorrichtung relativ zu dem realen Objekt zwischen dem ersten Zeitpunkt und einem zweiten Zeitpunkt, zum Verarbeiten des ersten Bildes auf Basis der Messung der Bewegung der Vorrichtung zum Erzeugen eines zweites Bildes, zum Erzeugen eines zusammengesetzten Bildes einer virtuellen Interaktion, die den Benutzer miteinbezieht, auf Basis des zweiten Bildes und zum Ausgeben des zusammengesetzten Bildes an die Anzeigevorrichtung ausgebildet ist, um dem Benutzer zum zweiten Zeitpunkt anstelle der realen Interaktion die virtuelle Interaktion anzuzeigen.Certain embodiments specify a device. The apparatus includes a display device, a camera configured to capture a first image of a real user interaction with a real object at a first time, and an image processor coupled to the camera and the display device that is relatively capable of measuring movement of the device to the real object between the first time and a second time, for Processing the first image based on the measurement of the movement of the second image forming device, generating a composite image of a virtual interaction involving the user based on the second image and outputting the composite image to the display device to show the user the virtual interaction instead of the real interaction at the second time.

Bestimmte Ausführungsformen geben ein nicht nichtflüchtiges, computerlesbares Medium an. Das nichtflüchtige, computerlesbare Medium speichert Anweisungen, die bei Ausführung durch einen Hardwareprozessor den Hardwareprozessor veranlassen, von einer Kamera eines Head-Mounted Displays (HMD) ein erstes Bild einer realen Interaktion eines Benutzers mit einem realen Objekt zu empfangen, wobei das erste Bild von der Kamera zu einem ersten Zeitpunkt aufgenommen wurde, eine Bewegung des HMD relativ zu dem realen Objekt zwischen dem ersten Zeitpunkt und einem zweiten Zeitpunkt zu messen, das erste Bild auf Basis der Messung der Bewegung des HMD zu verarbeiten, um ein zweites Bild zu erzeugen, ein zusammengesetztes Bild einer virtuellen Interaktion, die den Benutzer miteinbezieht, auf Basis des zweiten Bildes zu erzeugen und das zusammengesetzte Bild einer Anzeigevorrichtung zur Verfügung zu stellen, um dem Benutzer zum zweiten Zeitpunkt anstelle der realen Interaktion die virtuelle Interaktion anzuzeigen.Certain embodiments specify a non-transient, computer-readable medium. The non-transitory computer-readable medium stores instructions that, when executed by a hardware processor, cause the hardware processor to receive from a camera of a head-mounted display (HMD) a first image of a real user interaction with a real object, the first image being from the user Camera was taken at a first time to measure a movement of the HMD relative to the real object between the first time and a second time to process the first image based on the measurement of the movement of the HMD to produce a second image a composite image of a virtual interaction involving the user based on the second image and providing the composite image to a display device to display the virtual interaction to the user at the second time instead of the real interaction.

Bestimmte Ausführungsformen geben ein Verfahren zum Bereitstellen einer Mixed-Reality-Interaktion (MR-Interaktion) an. Das Verfahren umfasst ein Aufnehmen eines ersten Bildes von einer Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung, wobei die Gliedmaße des Benutzers zumindest einen Teil der realen Peripherieeingabevorrichtung verdeckt, ein Segmentieren des ersten Bildes in einen ersten Pixelbereich, der der Gliedmaße des Benutzers entspricht, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht, ein Erzeugen eines zusammengesetzten Bildes aus dem ersten Bild auf Basis dessen, dass anstelle des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung darstellen, sodass die virtuelle Peripherieeingabevorrichtung im zusammengesetzten Bild räumlich an derselben Stelle wie die reale Peripherieeingabevorrichtung erscheint und von der Gliedmaße des Benutzers zumindest teilweise verdeckt ist, und ein Anzeigen des zusammengesetzten Bildes für den Benutzer.Certain embodiments provide a method for providing mixed reality (MR) interaction. The method includes capturing a first image of a limb of a user and a real peripheral input device, wherein the limb of the user obscures at least a portion of the real peripheral input device, segmenting the first image into a first pixel region corresponding to the limb of the user second pixel region of the physical peripheral input device corresponds to generating a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region so that the virtual peripheral input device in the composite image spatially occupies the same location as the real peripheral input device appears and is at least partially obscured by the limb of the user, and displaying the composite image to the user.

Bei einigen Ausgestaltungen wird das zusammengesetzte Bild dem Benutzer praktisch zur derselben Zeit angezeigt, zu der die Gliedmaße des Benutzers zumindest einen Teil der realen Peripherieeingabevorrichtung verdeckt.In some embodiments, the composite image is displayed to the user at virtually the same time that the limb of the user obscures at least a portion of the physical peripheral input device.

Bei einigen Ausgestaltungen erfolgt das Segmentieren des ersten Bildes auf Basis einer Verteilung von Aktivitäten auf mehrere Stellen der realen Peripherieeingabevorrichtung.In some embodiments, segmentation of the first image is based on a distribution of activities to multiple locations of the physical peripheral input device.

Bei einigen Ausgestaltungen umfasst das Segmentieren des ersten Bildes ein Bestimmen einer historischen Verteilung der Aktivitäten auf die mehreren Stellen der realen Peripherieeingabevorrichtung, wobei die historische Verteilung der Aktivitäten auf vorherigen Interaktionen zwischen dem Benutzer oder einer Gruppe von Benutzern mit der realen Peripherieeingabevorrichtung basiert, ein Bestimmen von einem oder mehreren Schwellwerten auf Basis der historischen Verteilung der Aktivitäten, ein Vergleichen der Pixel des ersten Bildes mit dem einen bzw. den mehreren Schwellwerten und ein Bestimmen des der Gliedmaße des Benutzers entsprechenden ersten Pixelbereichs und des der realen Peripherieeingabevorrichtung entsprechenden zweiten Pixelbereichs auf Basis der Vergleichsergebnisse.In some embodiments, segmenting the first image includes determining an historical distribution of the activities to the multiple locations of the physical peripheral input device, wherein the historical distribution of the activities is based on previous interactions between the user or a group of users with the physical peripheral input device one or more thresholds based on the historical distribution of the activities, comparing the pixels of the first image with the one or more thresholds, and determining the first pixel region corresponding to the limb of the user and the second pixel region corresponding to the physical peripheral input device based on the comparison results ,

Bei einigen Ausgestaltungen umfasst das Segmentieren des ersten Bildes ein Bestimmen einer Verteilung der Wahrscheinlichkeiten, dass die Gliedmaße des Benutzers sich an einer jeweiligen Stelle der mehreren Stellen der realen Peripherieeingabevorrichtung befindet, auf Basis einer statistischen Analyse der historischen Verteilung der Aktivitäten, ein Identifizieren von Pixeln, die wahrscheinlich Teil der Gliedmaße des Benutzers sind, auf Basis der Verteilung der Wahrscheinlichkeiten und ein Bestimmen des einen oder der mehreren Schwellwerte auf Basis von einem oder mehreren Attributen der identifizierten Pixel.In some embodiments, segmenting the first image includes determining a distribution of the probabilities that the user's limb is located at a respective one of the plurality of locations of the physical peripheral input device based on a statistical analysis of the historical distribution of the activities, identifying pixels, which are likely to be part of the user's limb, based on the distribution of the probabilities and determining the one or more thresholds based on one or more attributes of the identified pixels.

Bei einigen Ausgestaltungen umfasst das Verfahren ferner ein Bestimmen eines einem ersten Bereich der Gliedmaße des Benutzers entsprechenden ersten Schwellwerts des einen oder der mehreren Schwellwerte, Bestimmen eines einem zweiten Bereich der Gliedmaße des Benutzers entsprechenden zweiten Schwellwerts des einen oder der mehreren Schwellwerte, und Vergleichen der Pixel des ersten Bildes mit dem ersten Schwellwert und dem zweiten Schwellwert, um den ersten Pixelbereich zu bestimmen, der der Gliedmaße des Benutzers entspricht.In some embodiments, the method further comprises determining a first threshold of the one or more thresholds corresponding to a first portion of the limb of the user, determining a second threshold of the one or more thresholds corresponding to a second portion of the limb of the user, and comparing the pixels of the first image having the first threshold and the second threshold to determine the first pixel region corresponding to the limb of the user.

Bei einigen Ausgestaltungen umfasst das Verfahren ferner ein Bestimmen des ersten und/oder des zweiten Schwellwerts auf Basis von einer Umgebungshelligkeit und/oder einer Benutzeridentität.In some embodiments, the method further comprises determining the first and / or second threshold based on ambient brightness and / or user identity.

Bei einigen Ausgestaltungen umfasst die Verteilung der Aktivitäten eine aktuelle Verteilung der Aktivitäten auf die mehreren Stellen der realen Peripherieeingabevorrichtung.In some embodiments, the distribution of activities includes a current distribution of the activities to the multiple locations of the real peripheral input device.

Bei einigen Ausgestaltungen umfasst das Verfahren ferner ein Empfangen einer Meldung über eine wahrgenommene Aktivität von einem sich an einer ersten Stelle der realen Peripherieeingabevorrichtung befindenden Sensor, ein Aufnehmen eines dritten Bildes von der realen Peripherieeingabevorrichtung auf Basis der Meldung, ein Auswählen eines der ersten Stelle entsprechenden dritten Pixelbereichs und eines die erste Stelle umgebenden vierten Pixelbereichs, ein Bestimmen eines ersten Farbkomponenten-Histogramms für den dritten Pixelbereich, ein Bestimmen eines zweiten Farbkomponenten-Histogramms für den vierten Pixelbereich, ein Bestimmen von einem oder von mehreren Schwellwerten auf Basis des ersten Histogramms und des zweiten Histogramms und ein Vergleichen von Pixeln des ersten Bildes mit dem einen oder den mehreren Schwellwerten, um den ersten Pixelbereich des ersten Bildes zu bestimmen, der der Gliedmaße des Benutzers entspricht. In some embodiments, the method further comprises receiving a sensed activity message from a sensor located at a first location of the physical peripheral input device, capturing a third image from the physical peripheral input device based on the message, selecting a third corresponding to the first location A pixel region and a fourth pixel region surrounding the first location, determining a first color component histogram for the third pixel region, determining a second color component histogram for the fourth pixel region, determining one or more thresholds based on the first histogram and the second Histogram and comparing pixels of the first image with the one or more thresholds to determine the first pixel region of the first image that corresponds to the limb of the user.

Bei einigen Ausgestaltungen umfasst das Verfahren ferner ein Identifizieren einer zweiten Stelle der realen Peripherieeingabevorrichtung, an der weniger als eine vorgegebene Anzahl vorangegangener Aktivitäten stattfand, auf Basis einer historischen Aktivitätsverteilung, ein Identifizieren eines der zweiten Stelle entsprechenden fünften Pixelbereichs in dem dritten Bild, ein Bestimmen eines dritten Farbkomponenten-Histogramms für den fünften Pixelbereich, ein Bestimmen eines zweiten Schwellwerts des einen oder der mehreren Schwellwerte auf Basis des dritten Histogramms und ein Vergleichen der Pixel des ersten Bildes mit dem zweiten Schwellwert, um den zweiten Pixelbereich des ersten Bildes zu bestimmen, der der realen Tastatur entspricht.In some embodiments, the method further comprises identifying a second location of the real peripheral input device on which less than a predetermined number of previous activities occurred based on a historical activity distribution, identifying a fifth pixel area corresponding to the second location in the third image, determining a third color component histogram for the fifth pixel region, determining a second threshold value of the one or more threshold values based on the third histogram, and comparing the pixels of the first image with the second threshold value to determine the second pixel region of the first image that is the second pixel real keyboard corresponds.

Bei einigen Ausgestaltungen umfasst das Verfahren ferner ein Bestimmen einer Änderung der Verteilung der Aktivitäten über der Zeit, ein Bestimmen eines Bereichs von Interesse auf Basis der Änderung, ein Identifizieren von Pixeln in dem interessierenden Bereich des ersten Bildes und ein Bestimmen des der Gliedmaße des Benutzers entsprechenden ersten Pixelbereichs aus den identifizierten Pixeln.In some embodiments, the method further comprises determining a change in the distribution of the activities over time, determining a region of interest based on the change, identifying pixels in the region of interest of the first image, and determining the limb of the user first pixel area from the identified pixels.

Bei einigen Ausgestaltungen umfasst das Verfahren ferner ein Erfassen eines zweiten Bildes der nicht von einer Gliedmaße des Benutzers verdeckten realen Peripherieeingabevorrichtung, ein Bestimmen einer oder mehrerer Schwellwerte auf Basis des zweiten Bildes, ein Übermitteln einer Meldung an den Benutzer, damit die Gliedmaße des Benutzers auf vorgegebene Stellen der realen Peripherieeingabevorrichtung gelegt wird, ein Aufnehmen eines dritten Bildes der Gliedmaße des Benutzers an den vorgegebenen Stellen der realen Peripherieeingabevorrichtung, ein Anpassen des einen oder der mehreren Schwellwerte auf Basis von Pixeln des dritten Bildes, die den vorgegebenen Stellen der realen Tastatur entsprechen, und ein Vergleichen der Pixel des ersten Bildes mit dem angepassten einen oder den angepassten mehreren Schwellwerten, um den der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich zu bestimmen.In some embodiments, the method further comprises capturing a second image of the real peripheral input device not obscured by a limb of the user, determining one or more thresholds based on the second image, transmitting a message to the user to set the limb of the user to a predetermined one Places the real peripheral input device, capturing a third image of the limb of the user at the predetermined locations of the real peripheral input device, adjusting the one or more thresholds based on pixels of the third image corresponding to the predetermined locations of the real keyboard, and comparing the pixels of the first image with the adjusted one or more thresholds to determine the first pixel region corresponding to the limb of the user.

Bei einigen Ausgestaltungen wird die Verteilung der Aktivitäten aus mehreren Aktivitätsverteilungen auf Basis eines Modells der realen Peripherieeingabevorrichtung und/oder einer Anwendung bestimmt, für die der Benutzer mit der realen Peripherieeingabevorrichtung interagiert.In some embodiments, the distribution of the activities from multiple activity distributions is determined based on a model of the real peripheral input device and / or an application for which the user interacts with the real peripheral input device.

Bei einigen Ausgestaltungen wird das zusammengesetzte Bild auf Basis eines Ersetzens von Pixeln, die der realen Umgebung entsprechen, in der sich die reale Peripherieeingabevorrichtung befindet, durch Pixel erstellt, die eine virtuelle Umgebung repräsentieren, in der sich die virtuelle Peripherieeingabevorrichtung befindet.In some embodiments, the composite image is created based on replacement of pixels corresponding to the real environment in which the real peripheral input device is located by pixels representing a virtual environment in which the virtual peripheral input device resides.

Bei einigen Ausgestaltungen wird das zusammengesetzte Bild auf Basis einer Anpassung einer Luminanz des ersten Pixelbereichs auf Basis einer Luminanz der virtuellen Umgebung erstellt.In some embodiments, the composite image is created based on a luminance match of the first pixel region based on a luminance of the virtual environment.

Bei einigen Ausgestaltungen wird das zusammengesetzte Bild auf Basis eines Hinzufügens eines virtuellen Schattens, den die Gliedmaße des Benutzers in der virtuellen Umgebung wirft, erstellt.In some embodiments, the composite image is created based on adding a virtual shadow that the user's limb casts in the virtual environment.

Bei einigen Ausgestaltungen wird das erste Bild von einer Kamera eines Head-Mounted Displays (HMD) aufgenommen. Das zusammengesetzte Bild wird an dem HMD angezeigt.In some embodiments, the first image is captured by a camera of a head-mounted display (HMD). The composite image is displayed on the HMD.

Bei einigen Ausgestaltungen umfasst das Segmentieren des ersten Bildes in den der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich das Identifizieren von zwei oder mehr Schwellwerten für die Pixelwerte, die die Gliedmaße des Benutzers repräsentieren, wobei Pixel des ersten Bildes, die nicht innerhalb der zwei oder mehr Schwellwerte liegen, verworfen werden.In some embodiments, segmenting the first image into the first pixel region corresponding to the limb of the user comprises identifying two or more thresholds for the pixel values representing the limb of the user, where pixels of the first image are not within the two or more thresholds lie, be discarded.

Bestimmte Ausführungsformen geben eine Vorrichtung an. Die Vorrichtung kann eine Anzeigevorrichtung, eine zum Aufnehmen eines ersten Bildes von einer Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung ausgebildete Kamera, wobei die Gliedmaße des Benutzers zumindest einen Teil der realen Peripherieeingabevorrichtung verdeckt, und einen mit der Kamera und der Anzeigevorrichtung gekoppelten Bildprozessor aufweisen, der ausgebildet ist, zum Erhalt des ersten Bildes von der Kamera, zum Durchführen einer Segmentierung des ersten Bildes in einen der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht, zum Erstellen eines zusammengesetzten Bildes aus dem ersten Bild auf Basis dessen, dass statt des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung repräsentieren, sodass die virtuelle Peripherieeingabevorrichtung in dem zusammengesetzten Bild räumlich an derselben Position wie die reale Peripherieeingabevorrichtung erscheint und durch die Gliedmaße des Benutzers zumindest teilweise verdeckt ist, und zum Ausgeben des zusammengesetzten Bildes an der Anzeigevorrichtung zur Anzeige für den Benutzer.Certain embodiments specify a device. The apparatus may include a display device, a camera adapted to capture a first image of a limb of a user and a real peripheral input device, wherein the limb of the user obscures at least a portion of the real peripheral input device, and an image processor coupled to the camera and the display device is formed, for obtaining the first image from the camera, for performing a segmentation of the first image into a first pixel region corresponding to the limb of the user, wherein a second pixel region of the real A peripheral input device for generating a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region, so that the virtual peripheral input device spatially appears in the composite image at the same position as the real peripheral input device the limb of the user is at least partially hidden, and outputting the composite image on the display device for display to the user.

Einige Ausführungsformen geben ein nichtflüchtiges computerlesbares Medium an. Das nichtflüchtige computerlesbare Medium speichert Anweisungen, die bei Ausführung durch einen Hardwareprozessor den Hardwareprozessor veranlassen, von einer Kamera ein erstes Bild von einer Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung zu empfangen, wobei die Gliedmaße des Benutzers mindestens einen Teil der realen Peripherieeingabevorrichtung verdeckt, eine Segmentierung des ersten Bildes in einen der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich vorzunehmen, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht, ein zusammengesetztes Bild aus dem ersten Bild auf Basis dessen zu erstellen, dass statt des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung repräsentieren, sodass die virtuelle Peripherieeingabevorrichtung in dem zusammengesetzten Bild räumlich an derselben Position wie die reale Peripherieeingabevorrichtung erscheint und durch die Gliedmaße des Benutzers zumindest teilweise verdeckt ist, und das zusammengesetzte Bild einer Anzeigevorrichtung zum Anzeigen für den Benutzer zur Verfügung zu stellen.Some embodiments specify a non-transitory computer-readable medium. The non-transitory computer readable medium stores instructions that, when executed by a hardware processor, cause the hardware processor to receive from a camera a first image of a limb of a user and a real peripheral input device, the limb of the user obscuring at least a portion of the physical peripheral input device, a segmentation the first image into a first pixel region corresponding to the limb of the user, wherein a second pixel region corresponds to the real peripheral input device to create a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region so that the peripheral virtual input device in the composite image spatially appears at the same position as the real peripheral input device and through the limb of the user s is at least partially obscured, and to provide the composite image to a display device for display to the user.

Figurenlistelist of figures

Bei der ausführliche Beschreibung wird auf die beiliegenden Figuren Bezug genommen.

  • 1A und 1B zeigen eine typische Implementierung eines Systems, bei dem die offenbarten Techniken eingesetzt werden.
  • 2 zeigt ein System zum Betreiben eines Peripheriegerätes.
  • 3A - 3F veranschaulichen Beispiele für ein Erzeugen eines immersiven Mixed-Reality-Erlebnisses (MR-Erlebnisses) mit einem System nach 1A und 1B, gemäß einiger Ausführungsformen.
  • 4A - 4D veranschaulichen Beispiele für ein Bildverzögerungskompensationskonzept gemäß einiger Ausführungsformen.
  • 5A - 5F veranschaulichen Beispiele für Handsegmentierungskonzepte gemäß einiger Ausführungsformen.
  • 6 veranschaulicht ein Beispiel für eine Bildverarbeitungsengine gemäß einiger Ausführungsformen.
  • 7 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für ein Verfahren zum Bereitstellen eines Mixed-Reality-Erlebnisses (MR-Erlebnisses) gemäß einiger Ausführungsformen.
  • 8 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels eines Verfahrens zum Bereitstellen eines MR-Erlebnisses gemäß einiger Ausführungsformen.
In the detailed description, reference is made to the accompanying figures.
  • 1A and 1B show a typical implementation of a system employing the disclosed techniques.
  • 2 shows a system for operating a peripheral device.
  • 3A - 3F illustrate examples of creating an immersive mixed reality (MR) experience with a system 1A and 1B , according to some embodiments.
  • 4A - 4D illustrate examples of an image delay compensation concept according to some embodiments.
  • 5A - 5F illustrate examples of hand segmentation concepts according to some embodiments.
  • 6 illustrates an example of an image processing engine according to some embodiments.
  • 7 FIG. 12 is a flowchart illustrating an example of a method for providing a mixed-reality (MR) experience in accordance with some embodiments. FIG.
  • 8th FIG. 12 is a flowchart illustrating an example of a method of providing an MR experience according to some embodiments. FIG.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Aspekte der vorliegenden Offenbarung beziehen sich auf Peripheriegeräte im Allgemeinen, und im Besonderen auf Peripheriegeräte, die gemäß bestimmter Beispiele interaktive Mixed-Reality (MR) oder Erweiterte-Realität (AR) -Erlebnisse ermöglichen. In dieser Schrift wird unter Erweiterter Realität (AR; Augmented Reality) ein interaktives Erlebnis einer realen Umgebung verstanden. Die reale Umgebung kann vom Benutzer mit seinen/ihren Augen (z. B. mit Hilfe einer AR-Brille) direkt betrachtet oder mit Hilfe von Kameras dargestellt werden, die an der Blickrichtung des Benutzers ausgerichtet sind. Bei AR werden sich in der realen Welt befindende Objekte durch computergenerierte wahrnehmbare Informationen ergänzt, die manchmal mehrere, das Sehen, Hören, Tasten, Fühlen und Riechen einschließende Sinne ansprechen. Mixed Reality (MR), manchmal auch als hybride Realität bezeichnet, kann sich auf das Verschmelzen von realer und virtueller Welt beziehen. In einer hybriden Realität lässt sich eine komplett computergenerierte Umgebung darstellen, in die Bilder oder Darstellungen realer Objekte eingebunden werden können. Eine hybride Realität kann neue Umgebungen und Visualisierungen, in denen reale und digitale Objekte koexistieren und in Echtzeit interagieren, als auch neue Benutzerinteraktionen hervorbringen. Mixed Reality bietet eine Mischung aus Realität und virtueller Realität und kann vermittels einer immersiven Technologie eine erweiterte Realität mit einschließen.Aspects of the present disclosure relate to peripherals in general, and more particularly to peripherals that enable interactive mixed reality (MR) or augmented reality (AR) experiences according to particular examples. In this document, Augmented Reality (AR) is understood to mean an interactive experience of a real environment. The real environment can be viewed directly by the user with his / her eyes (eg with the aid of AR glasses) or displayed with the aid of cameras which are aligned in the direction of the user's gaze. In AR, real-world objects are augmented with computer-generated perceptual information that sometimes appeals to multiple senses that include seeing, hearing, touching, feeling, and smelling. Mixed reality (MR), sometimes referred to as hybrid reality, can refer to the merging of real and virtual worlds. In a hybrid reality, a completely computer-generated environment can be represented in which images or representations of real objects can be integrated. A hybrid reality can bring about new environments and visualizations in which real and digital objects coexist and interact in real time, as well as generate new user interactions. Mixed Reality offers a mix of reality and virtual reality, and can incorporate augmented reality through immersive technology.

In der nachfolgenden Beschreibung werden verschiedene Beispiele für Peripheriegeräte erläutert, die interaktive MR- und/oder AR-Erlebnisse ermöglichen. Die hier dargelegten speziellen Ausgestaltungen und Einzelheiten dienen einer Erläuterung, die ein gründliches Verständnis der Ausführungsformen ermöglicht. Ein Fachmann wird jedoch ohne Weiteres erkennen, dass bestimmte Ausführungsformen in die Praxis umgesetzt oder realisiert werden können auch ohne, dass jedes Detail offenbart ist. Ferner können allgemein bekannte Merkmale weggelassen oder vereinfacht werden, um die in dieser Schrift angegebenen neuen Merkmale klarer darzustellen.In the following description, various examples of peripheral devices that enable interactive MR and / or AR experiences will be discussed. The specific embodiments and details set forth herein are illustrative, which provides a thorough understanding of the embodiments. However, one of ordinary skill in the art will readily recognize that certain embodiments may be practiced or practiced without that every detail is disclosed. Furthermore, well-known features may be omitted or simplified to more clearly illustrate the novel features set forth in this specification.

Peripheriegeräte können als Schnittstelle zwischen Mensch und Computer verwendet werden. Einige der gängigen Peripheriegeräte umfassen Tastaturen, Computermäuse, Bildscanner, Lautsprecher, Mikrofone, Webkameras, ein Head-Mounted Display (HMD), Taststifte, Stifte, Zeigegeräte und dergleichen mehr. Einige dieser Peripheriegeräte können eine Bewegung als Benutzereingabe erkennen und die Bewegung in eine Computereingabe übersetzen. Zum Beispiel kann ein tragbares Peripheriegerät, wie beispielsweise eine Computermaus, ihre Bewegung relativ zu einer Oberfläche erfassen und die Bewegung relativ zur Oberfläche in eine entsprechende Bewegung eines Cursors übersetzen, der an einer grafischen Benutzerschnittstelle (GUI; graphical user interface) angezeigt wird. Ferner kann die Tastatur eine Bewegung einer Taste und/oder eine Tippbewegung eines Fingers an der Taste erkennen und ein Signal an einen Computer senden, damit eine durch die Taste repräsentierte bestimmte Information (z. B. ein Buchstabe, ein Symbol, eine Cursorbewegung, usw.) angezeigt wird.Peripherals can be used as an interface between humans and computers. Some of the popular peripherals include keyboards, computer mice, image scanners, speakers, microphones, web cameras, a head-mounted display (HMD), styli, pens, pointing devices, and the like. Some of these peripherals can detect motion as user input and translate the motion into a computer input. For example, a portable peripheral device, such as a computer mouse, may sense its motion relative to a surface and translate the motion relative to the surface into corresponding movement of a cursor displayed on a graphical user interface (GUI). Further, the keyboard may detect a movement of a key and / or a jogging movement of a finger on the key and send a signal to a computer for allowing certain information represented by the key (eg, a letter, a symbol, a cursor movement, etc .) is shown.

Einige dieser Peripheriegeräte können zur Optimierung des Benutzererlebnisses zusammenwirken. So kann beispielsweise ein HMD zusammen mit anderen Peripheriegeräten (z. B. einer Maus, einer Tastatur usw.) betrieben werden, um ein MixedReality- (MR-) oder Erweiterte-Realität- (AR-) -System auszubilden. So kann beispielsweise ein von einem Benutzer getragenes HMD Kameras zum Aufnehmen von Bildern in Echtzeit aufweisen, die eine reale Umgebung aus der Betrachtung eines Benutzers zeigen. Um ein immersives MR/AR-Erlebnis zu ermöglichen, können Echtzeitbilder einer Interaktion des Benutzers mit einem anderen Peripheriegerät (z. B. Tippen auf einer realen Tastatur) aufgenommen werden. Zum Erstellen eines zusammengesetzten Bildes kann ein in den Bildern dargestelltes erstes reales Element (z. B. eine reale Hand oder ein(e) andere(s) Körperteil/Gliedmaße eines Benutzers) mit einem virtuellen Element kombiniert werden, das ein zweites reales Element in der realen Umgebung (z. B. eine virtuelle Tastatur) repräsentiert. Die relativen Bildpositionen des ersten realen Elements und des virtuellen Elements im zusammengesetzten Bild können beispielsweise auf Basis der realen Positionen des ersten realen Elements und des zweiten realen Elements relativ zum HMD bestimmt werden.Some of these peripherals can work together to optimize the user experience. For example, an HMD may be operated in conjunction with other peripherals (eg, a mouse, a keyboard, etc.) to form a Mixed Reality (MR) or Augmented Reality (AR) system. For example, a user-worn HMD may have cameras for capturing real-time images that show a real environment from the perspective of a user. To enable an immersive MR / AR experience, real-time images of a user's interaction with another peripheral device (eg, typing on a real keyboard) can be captured. To create a composite image, a first real element (eg, a real hand or another body part / limb of a user) shown in the images may be combined with a virtual element that has a second real element in it represents the real environment (eg a virtual keyboard). For example, the relative image positions of the first real element and the virtual element in the composite image may be determined based on the real positions of the first real element and the second real element relative to the HMD.

Wenn sich das HMD aufgrund einer Bewegung des Benutzers bewegt (z. B. Drehen des Kopfes, Kopfnicken, Ganzkörperbewegung des Benutzers, usw.), kann das in dem HMD angezeigte zusammengesetzte Bild aktualisiert werden, um die Änderung der Sicht des Benutzers auf die reale Umgebung während der Bewegung des Benutzers zur Optimierung des immersiven interaktiven Erlebnisses nachzuahmen. Wenn ein zusammengesetztes Bild beispielsweise durch Einfügen einer virtuelle Tastatur (oder anderer virtueller Peripheriegeräte) in das die Hand aufweisende Bild erstellt wird, kann die Bildposition der virtuellen Tastatur relativ zum Bild verschoben werden, um einer neuen Position/Orientierung des HMD Rechnung zu tragen. Wenn ferner ein zusammengesetztes Bild erzeugt wird, indem aus dem Bild Handpixel entnommen und in ein virtuelles Bild, das die virtuelle Tastatur enthält, eingefügt werden, kann auch der Stelle von der die Handpixel entnommen werden, ebenfalls verschoben werden, um der neuen Position/Orientierung des HMD Rechnung zu tragen.When the HMD moves due to a user's movement (eg, turning the head, nodding, the user's full body movement, etc.), the composite image displayed in the HMD may be updated to reflect the change in the user's view of the real world Mimic environment as the user moves to optimize the immersive interactive experience. For example, if a composite image is created by inserting a virtual keyboard (or other virtual peripherals) into the hand-held image, the image position of the virtual keyboard relative to the image may be shifted to accommodate a new position / orientation of the HMD. Further, if a composite image is created by removing hand pixels from the image and pasting them into a virtual image containing the virtual keyboard, the location from which the hand pixels are extracted may also be shifted to the new position / orientation HMD.

Bei beiden Arten zum Erstellen eines zusammengesetzten Bildes kann das Verschiebung der Bildposition des virtuellen Elements bzw. das Verschiebung der Stelle für die Extraktion des realen Elements auf der Annahme basieren, dass das Bild die aktuelle Position/Orientierung des HMD widerspiegelt. Eine solche Annahme ist jedoch nicht unbedingt gültig. Beispielsweise kann, wenn zu Beginn einer Bewegung des HMD ein Bild aufgenommen wird, aufgrund diverser Faktoren wie Videokameralatenz, Bildaufbau- und Verarbeitungsverzögerung, Datenübertragungsverzögerung usw. eine beträchtliche Zeit (z. B. 0,1 Sekunde) bis zu dem Zeitpunkt vergangen sein, an dem das Bild zum Extrahieren des realen Elements oder für eine Kombination mit dem virtuellen Element zum Erstellen des zusammengesetzten Bildes verfügbar ist. Daher kann das Bild nur eine ältere Position/Orientierung des HMD wiedergeben. Die Latenz beim Aufbau des Bildes, das die letzte Position/Orientierung des HMD widerspiegelt, ist für den Benutzer erkennbar und kann das Benutzererlebnis beeinträchtigen. Beispielsweise kann ein Extrahieren von Pixeln aus dem Bild an einer Bildposition, die auf Basis der letzten Position/Orientierung des HMD aktualisiert wurde, nicht das erwartete reale Element (z. B. die Hand) hervorbringen. Außerdem kann ein Einfügen des virtuellen Elements in das Videobild an der aktualisierten Bildposition in dem zusammengesetzten Bild zu einer fehlerhaften Anordnung der realen und virtuellen Elemente relativ zueinander führen. Beispielsweise kann das HMD zu einem bestimmten Zeitpunkt eine Hand auf einer virtuellen Tastatur anzeigen und mit ihr interagieren. Wenn sich das HMD bewegt, kann das HMD die Hand aufgrund der zuvor erwähnten fehlerhaften Anordnung in einer relativ zur Tastatur nacheilenden Position anzeigen, sodass die Hand nur bei stationärem HMD mit der virtuellen Tastatur ausgerichtet ist, bei einem sich bewegenden HMD jedoch nicht. Dies kann zu einem inkonsistenten interaktiven Erlebnis oder sogar zu Übelkeit führen.In both ways of creating a composite image, the shift of the virtual element's image position or the displacement of the real element's extraction location may be based on the assumption that the image reflects the current position / orientation of the HMD. However, such an assumption is not necessarily valid. For example, if an image is captured at the beginning of a movement of the HMD, a significant amount of time (eg, 0.1 second) may have elapsed by that time due to various factors such as video camera latency, frame and processing delay, data transfer delay, and so forth where the image is available to extract the real element or for combination with the virtual element to create the composite image. Therefore, the image can only reflect an older position / orientation of the HMD. The latency in building the image, which reflects the final position / orientation of the HMD, is recognizable to the user and may affect the user experience. For example, extracting pixels from the image at an image position that has been updated based on the last position / orientation of the HMD may not yield the expected real element (eg, the hand). Additionally, inserting the virtual element into the video image at the updated image position in the composite image may result in misplacement of the real and virtual elements relative to each other. For example, at some point in time, the HMD may display and interact with a hand on a virtual keyboard. When the HMD moves, the HMD may display the hand in a position lagging relative to the keyboard due to the aforementioned erroneous location, so that the hand is aligned with the virtual keyboard only in stationary HMD, but not in a moving HMD. This can lead to an inconsistent interactive experience or even nausea.

Außerdem kann das zuvor erwähnte AR/MR-System ein zusammengesetztes Bild wie oben angegeben erzeugen, indem es aus dem Bild Handpixel entnimmt und die Handpixel in einem virtuellen Bild, das die virtuelle Tastatur (oder ein anderes virtuelles Peripheriegerät) enthält, anordnet. Um ein interaktives AR/MR-Erlebnisses zu schaffen, kann das zusammengesetzte Bild dem Benutzer an dem HMD angezeigt werden, wenn der Benutzer mit einer von der virtuellen Tastatur repräsentierten realen Tastatur interagiert. Die Qualität des interaktiven Erlebnisses kann von der genauen Segmentierung der Hand in einem Bild abhängen, das die Interaktion der Hand mit der realen Tastatur bildlich wiedergibt. Das Segmentieren einer Hand kann auf einem Vergleich der Bildpixel mit einem oder mehreren Schwellwerten und einem auf den Vergleichsergebnissen basierenden Klassifizieren der Pixel als zur Hand oder zum Peripheriegerät (bzw. anderen Hintergrundobjekten) gehörend basieren. Die Genauigkeit des Segmentierens der Hand kann durch verschiedene Faktoren wie z. B. Hauttönen, Ausleuchtungsänderungen, usw. beeinflusst werden. Ein Segmentierungskonzept, das beim Vergleich der Pixel eine oder mehrere feste Schwellwerte verwendet, kann nur bei einem kleinen Bereich von Hauttönen und einer kleinen Palette von Umgebungen gut funktionieren. Um den Einsatz des AR/MR-Systems bei einer größeren Palette von Umgebungen zu ermöglichen, wodurch der Nutzwert des Systems und das Benutzererlebnis verbessert werden können, bedarf es eines robusteren Konzepts, bei dem die Handpixel bei einem größeren Bereich von Hauttönen und einer größeren Palette von Umgebungen genauer von den Hintergrundpixeln unterschieden werden können. In addition, the aforementioned AR / MR system may generate a composite image as indicated above by extracting hand pixels from the image and placing the hand pixels in a virtual image containing the virtual keyboard (or other virtual peripheral device). To provide an interactive AR / MR experience, the composite image may be displayed to the user at the HMD when the user interacts with a real keyboard represented by the virtual keyboard. The quality of the interactive experience may depend on the precise segmentation of the hand in an image that depicts the interaction of the hand with the real keyboard. Segmentation of a hand may be based on comparing the image pixels with one or more thresholds and classifying the pixels based on the comparison results as belonging to the hand or peripheral device (s). The accuracy of the segmentation of the hand may be due to various factors such. As skin tones, illumination changes, etc. are affected. A segmentation concept that uses one or more fixed thresholds when comparing the pixels can only work well for a small range of skin tones and a small range of environments. To enable the use of the AR / MR system in a wider range of environments, which can improve the utility of the system and enhance the user experience, a more robust approach is needed where the handpixels cover a wider range of skin tones and a wider range environments can be more accurately distinguished from the background pixels.

Konzeptioneller Überblick über bestimmte AusführungsformenConceptual overview of certain embodiments

Beispiele der vorliegenden Offenbarung betreffen Verfahren und Systeme zur Bereitstellung immersiver AR/MR-Erlebnisse und können einige der oben beschriebenen Aufgaben lösen. Einige Ausführungsformen geben ein Verfahren zum Bereitstellen einer Mixed-Reality- (MR) -Interaktion an. Das Verfahren umfasst: Aufnehmen eines ersten Bildes von einer realen Interaktion eines Benutzers mit einem Peripheriegerät zu einem ersten Zeitpunkt unter Verwendung einer Kamera eines Head-Mounted Display (HMD) eines Benutzers, Messen einer Bewegung des HMD relativ zum Peripheriegerät zwischen dem ersten Zeitpunkt und einem zweiten Zeitpunkt, Verarbeiten des ersten Bildes auf Basis der Messung der Bewegung des HMD zum Erzeugen ein zweiten Bildes; Erstellen eines zusammengesetzten Bildes auf Basis des zweiten Bildes zur Darstellung einer virtuellen Interaktion, die den Benutzer mit einbezieht, und Anzeigen der virtuellen Interaktion anstelle der realen Interaktion an dem HMD und auf Basis des zusammengesetzten Bildes für den Benutzer zum zweiten Zeitpunkt. Die virtuelle Interaktion kann beispielsweise eine virtuelle Interaktion zwischen einem Körperteil des Benutzers und einem das Peripheriegerät repräsentierenden virtuellen Objekt (z. B. eine virtuelle Tastatur), eine virtuelle Interaktion zwischen einem den Körperteil des Benutzers repräsentierenden virtuellen Objekt (z. B. eine virtuelle Hand) und dem Peripheriegerät, usw. umfassen.Examples of the present disclosure relate to methods and systems for providing immersive AR / MR experiences, and can solve some of the objects described above. Some embodiments provide a method for providing mixed reality (MR) interaction. The method includes: capturing a first image of a user's real interaction with a peripheral device at a first time using a user's head-mounted display (HMD) camera, measuring movement of the HMD relative to the peripheral device between the first time and a second second timing, processing the first image based on measuring the movement of the HMD to produce a second image; Creating a composite image based on the second image to represent a virtual interaction involving the user and displaying the virtual interaction instead of the real interaction at the HMD and based on the composite image for the user at the second time. The virtual interaction may, for example, be a virtual interaction between a body part of the user and a virtual object representing the peripheral device (eg a virtual keyboard), a virtual interaction between a virtual object representing the body part of the user (eg a virtual hand ) and the peripheral device, etc.

Konkret, kann das erste Bild von der realen Interaktion des Benutzers (z. B. vermittels der Hände oder anderer Körperteile) mit dem Peripheriegerät zum ersten Zeitpunkt aufgenommen werden bevor die Bewegung des HMD beginnt, wobei aufgrund der Verarbeitungsverzögerung das erste Bild erst zum zweiten Zeitpunkt für die Erzeugung eines zusammengesetzten Bildes zur Verfügung steht, wenn das HMD bereits über eine bestimmte Strecke bewegt oder um einen bestimmten Winkel in eine bestimmte Richtung gedreht wurde. Daher spiegelt das erste Bild nicht die momentane Sicht des Benutzers auf die Interaktion mit dem Peripheriegerät zum zweiten Zeitpunkt wieder. Ein Kombinieren eines realen Elements der zum ersten Zeitpunkt aufgenommenen realen Interaktion mit einem virtuellen Element an einem Stelle der vom Benutzer zum zweiten Zeitpunkt betrachteten realen Interaktion kann zu einem Anordnungsfehler zwischen dem realen Element und dem virtuellen Element führen. Das HMD kann, um ein anschauliches Beispiel anzuführen, ein Bild einer realen Interaktion zwischen den Fingern eines Benutzers und einer Tastatur aufnehmen und ein zusammengesetztes Bild erstellen, das eine virtuelle Interaktion zwischen den Fingern des Benutzers und einer virtuellen Tastatur darstellt. Wenn sich das HMD bewegt, kann es vorkommen, dass das HMD aufgrund des oben genannten Anordnungsfehlers die Finger des Benutzers von der virtuellen Tastatur abgehoben oder versetzt zu dieser anzeigt, sodass die Finger nur bei stationärem HMD korrekt zur virtuellen Tastatur angeordnet sind. Dies kann zu einem inkonsistenten interaktiven Erlebnis (z. B. einer verminderten Effizienz beim Tippen auf einer virtuellen Tastatur) oder sogar zu Übelkeit führen.Specifically, the first image of the user's real interaction (eg, with the hands or other body parts) may be captured with the peripheral device at the first time before the movement of the HMD begins, due to the processing delay the first image is only at the second time is available for generating a composite image when the HMD has already moved a certain distance or has been rotated by a certain angle in a certain direction. Therefore, the first image does not reflect the user's current view of the interaction with the peripheral device at the second time. Combining a real element of the real-time, initially-recorded interaction with a virtual element at a location of the real interaction being considered by the user at the second time may result in a placement error between the real element and the virtual element. The HMD, to give an illustrative example, may capture an image of a real interaction between a user's fingers and a keyboard and create a composite image representing a virtual interaction between the user's fingers and a virtual keyboard. When the HMD is moving, it may happen that the HMD, due to the above-mentioned placement error, lifts or offsets the user's fingers from the virtual keyboard so that the fingers are correctly aligned with the virtual keyboard only at steady state HMD. This can lead to an inconsistent interactive experience (eg reduced efficiency when typing on a virtual keyboard) or even nausea.

Zur Verringerung einer Fehlanordnung kann das erste Bild auf Basis einer Messung der Bewegung des HMD zum Erzeugen eines zweiten Bildes weiterverarbeitet werden, wobei das zweite Bild zum Erstellen des zusammengesetzten Bildes verwendet werden kann. Das Verarbeiten zum Erzeugen des zweiten Bildes kann ein Verschieben eines Bestandteils des ersten Bildes umfassen. Das zweite Bild kann eine von der Kamera des HMD zum zweiten Zeitpunkt aufgenommen Ansicht der Interaktion repräsentieren. Bei einigen Beispielen kann die Verschiebung des Bestandteils des ersten Bildes an einem Bildpufferspeicher erfolgen, in dem das erste Bild gespeichert ist. Der Bildpufferspeicher kann in einen Anzeigebereich und einen Nichtanzeigebereich aufgeteilt sein. Im Anzeigebereich gespeicherte Bilddaten werden zum Erzeugen eines zusammengesetzten Bildes und/oder zur Anzeige vorgehalten, während im Nichtanzeigebereich gespeicherte Bilddaten nicht zur Erzeugung eines zusammengesetzten Bildes oder zur Anzeige vorgehalten werden. Die Speicherort des Anzeigebereichs im Bildpufferspeicher kann verschoben werden, um einen anderen anzuzeigenden Bestandteil der Bilddaten auszuwählen, wodurch ein Effekt erzielt werden kann, bei dem der Bestandteil der Bilddaten innerhalb des zusammengesetzten Bildes oder relativ zu diesem verschoben wird. Das zweite Bild kann von dem sich innerhalb des Anzeigebereichs befindenden Bestandteil der ersten Bilddaten gebildet sein. Bei einigen Beispielen können der Anzeigebereich und der Nichtanzeigebereich auch statisch sein, wobei die sich innerhalb des Bildpufferspeichers befindenden Bilddaten zum Erzeugen des Verschiebungseffekts relativ zum statischen Anzeigebereich und Nichtanzeigebereich verschoben werden können.To reduce misplacement, the first image may be further processed based on a measurement of the movement of the HMD to produce a second image, where the second image may be used to construct the composite image. Processing to generate the second image may include shifting a component of the first image. The second image may represent a view of the interaction taken by the camera of the HMD at the second time. In some examples, the shift of the component of the first image may occur on a frame buffer in which the first image is stored. The frame buffer may be in a display area and a Non-display area be split. Image data stored in the display area is maintained for generating a composite image and / or for display, while image data stored in the non-display area is not held for generation of a composite image or for display. The storage location of the display area in the frame buffer may be shifted to select a different portion of the image data to be displayed, whereby an effect can be achieved in which the component of the image data is shifted within or relative to the composite image. The second image may be formed by the component of the first image data located within the display area. In some examples, the display area and the non-display area may also be static, and the image data for generating the displacement effect within the image buffer memory may be shifted relative to the static display area and non-display area.

Bei einigen Beispielen kann der Wert der Verschiebung des Bestandteils des ersten Bildes auf Basis einer Messung der Bewegung des HMD als auch der Positionen von HMD und Peripheriegerät zum zweiten Zeitpunkt bestimmt werden. Die Messung der Bewegung kann z. B. einen Drehwinkel des HMD umfassen. Zur Bestimmung des Drehwinkels können eine Winkelgeschwindigkeit und Drehrichtung sowie eine Zeitspanne zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt ermittelt werden. Die Winkelgeschwindigkeit und Drehrichtung können z. B. mit Hilfe einer Trägheitsmesseinheit (IMU; inertial measurement unit) des HMD ermittelt werden. Die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt verstrichene Zeitspanne kann ferner auf Basis einer Verzögerung durch die Weiterverarbeitung des ersten Bildes am HMD ermittelt werden. Es gibt verschiedene Möglichkeiten zur Bestimmung der Verzögerung durch die Weiterverarbeitung. Beispielsweise kann die Kamera des HMD im Rahmen eines Kalibrierungsprozesses zum Aufnehmen eines Bildes eines Objekts verwendet werden, das eine Zeitangabe bereitstellt. Das Objekt kann beispielsweise eine Uhr, eine Anzeigevorrichtung, die ein sich mit der Zeit änderndes Bild anzeigt (z. B. einen Strichcode), ein von einem Peripheriegerät emittiertes sich mit der Zeit änderndes Muster, usw. umfassen. Das Bild kann analysiert werden, um ein die Zeit angebendes Muster zu identifizieren (z. B. von der Uhr angezeigte Ziffern, Positionen von Uhrzeigern, die Strichcodemuster, usw.), und aus dem identifizierten Muster können Zeitinformationen abgeleitet werden. Das Peripheriegerät kann beispielsweise eine Tastatur, eine Maus, usw. aufweisen. Die von dem Objekt angezeigte Zeit kann mit der Zeitsteuerung des HMD synchronisiert und als Aufnahmezeit des Bildes verwendet werden. Die Anzeigezeit kann beim Anzeigen des Bildes an dem HMD aufgezeichnet werden. Die Differenz zwischen der Anzeigezeit und der Aufnahmezeit kann die Verarbeitungsverzögerung repräsentieren. Da die Verzögerung durch die Weiterverarbeitung in einem bekannten System in der Regel recht stabil ist, kann das zuvor genannte Kalibrierverfahren zur Bestimmung der Verarbeitungsverzögerung bei anderen nachfolgenden Bilder an dem HMD verwendet werden.In some examples, the value of the displacement of the component of the first image may be determined based on a measurement of the movement of the HMD as well as the positions of the HMD and peripheral device at the second time. The measurement of the movement can z. B. include a rotation angle of the HMD. To determine the angle of rotation, an angular velocity and direction of rotation and a time interval between the first time and the second time can be determined. The angular velocity and direction can z. B. be determined using an inertial measurement unit (IMU) of the HMD. The elapsed time between the first time and the second time may also be determined on the basis of a delay by the further processing of the first image on the HMD. There are various ways of determining the delay by further processing. For example, as part of a calibration process, the camera of the HMD may be used to capture an image of an object that provides a time indication. The object may include, for example, a clock, a display device displaying a time-varying image (eg, a bar code), a time-varying pattern emitted by a peripheral device, and so forth. The image may be analyzed to identify a time-indicating pattern (e.g., numbers indicated by the watch, positions of clock hands, bar code patterns, etc.) and time information may be derived from the identified pattern. The peripheral device may include, for example, a keyboard, a mouse, etc. The time indicated by the object can be synchronized with the timing of the HMD and used as the recording time of the image. The display time can be recorded on the HMD when the image is displayed. The difference between the display time and the recording time may represent the processing delay. Since the delay through further processing in a known system is generally quite stable, the aforementioned calibration method can be used to determine the processing delay on other subsequent images on the HMD.

Zudem können die Positionen des HMD und des Peripheriegeräts im realen Raum zum zweiten Zeitpunkt bestimmt werden. Zwischen einer Position des Peripheriegeräts und einer Position des HMD kann ein erster Ortsvektor festgelegt werden. Außerdem kann ein auf das HMD bezogener zweiter Ortsvektor des Peripheriegeräts durch Drehen des ersten Ortsvektors um den Drehwinkel festgelegt werden. Der zweite Ortsvektor kann zur Repräsentation einer nicht korrigierten Position des Bildes des Peripheriegeräts im ersten Bild verwendet werden. Der zweite Ortsvektor kann auch den Kehrwert der zur Durchführung der Korrektur erforderlichen Verschiebung repräsentieren. Der Betrag der Verschiebung kann ermittelt werden, indem ein Verschiebungsvektor zwischen der nicht korrigierten Position des Bildes des Peripheriegeräts und der Position des Peripheriegeräts ermittelt und der Verschiebungsvektor auf die Anzeigekoordinaten zurückskaliert wird. Das Skalieren kann beispielsweise auf Basis eines Matrixausdrucks erfolgen, der Weltkoordinaten auf Anzeigekoordinaten projiziert.In addition, the positions of the HMD and the peripheral device in real space can be determined at the second time. Between a position of the peripheral device and a position of the HMD, a first position vector can be set. In addition, a second location vector of the peripheral device related to the HMD can be set by rotating the first location vector by the rotation angle. The second location vector may be used to represent an uncorrected position of the image of the peripheral device in the first image. The second location vector may also represent the reciprocal of the shift required to effect the correction. The amount of displacement can be determined by determining a displacement vector between the uncorrected position of the peripheral device image and the peripheral device's position and scaling the displacement vector back to the display coordinates. For example, scaling may be based on a matrix expression that projects world coordinates onto display coordinates.

Es gibt verschiedene Möglichkeiten zur Bestimmung der Position des HMD und des Peripheriegeräts. Bei einem Beispiel können an dem Peripheriegerät eine oder mehrere Sensorkapseln angebracht sein, um gerichtete Lichtstrahlen von an verschiedenen vorgegebenen Positionen im Raum angeordneten Lichtemittern (z. B. Leuchttürmen) zu erfassen. Die Sensorkapseln können auch Entfernungsmessungen vornehmen, die beispielsweise auf der Laufzeit des gerichteten Lichts basieren. Anhand der Richtungs- und Laufzeitinformationen sowie der bekannten Positionen der Leuchttürme kann die Position des Peripheriegeräts bestimmt werden. Bei einem anderen Beispiel kann das Peripheriegerät Lichtemitter zum Emittieren gerichteter Lichtstrahlen aufweisen, die von mehreren an verschiedenen vorbestimmten Positionen im Raum abgeordneten Lichtsensoren erfasst werden können. Die Lichtsensoren können auch Entfernungsmessungen vornehmen. Auch auf Basis der Entfernungsmessungen und der Richtungen der von den Lichtsensoren erfassten Lichtstrahlen sowie den bekannten Positionen der Lichtsensoren lässt sich die Position des Peripheriegeräts bestimmen. Zur Bestimmung der Position des Peripheriegeräts können auch ähnliche Techniken verwendet werden.There are several ways to determine the position of the HMD and the peripheral device. In one example, one or more sensor capsules may be attached to the peripheral device to detect directional light rays from light emitters (eg, lighthouses) located at different predetermined positions in space. The sensor capsules can also take distance measurements based, for example, on the transit time of the directional light. Based on the direction and transit time information as well as the known positions of the lighthouses, the position of the peripheral device can be determined. In another example, the peripheral device may include light emitters for emitting directed light rays that may be detected by a plurality of light sensors at different predetermined positions in space. The light sensors can also make distance measurements. The position of the peripheral device can also be determined on the basis of the distance measurements and the directions of the light beams detected by the light sensors as well as the known positions of the light sensors. To determine the position of the peripheral device, similar techniques may be used.

Das durch die Verarbeitung des ersten Bildes auf Basis der Messung der Bewegung/Drehung des HMD erzeugte zweite Bild kann auf verschiedene Weise zum Erzeugen des zusammengesetzten Bildes verwendet werden. Bei einem Beispiel kann ein virtuelles Element (z. B. die virtuelle Tastatur) in das zweite Bild an der für den zweiten Zeitpunkt der Interaktion vorhergesagten Bildposition angeordnet werden. Bei einem anderen Beispiel kann aus dem zweiten Bild ein reales Element (z. B. die Hand/Finger des Benutzers oder ein anderes Körperteil des Benutzers) an der für den zweiten Zeitpunkt der Interaktion vorhergesagten Position extrahiert werden, wobei das reale Element in einem virtuellen Bild angeordnet werden kann, das an der für den zweiten Zeitpunkt der Interaktion vorhergesagten Position auch ein virtuelles Element (z. B. die virtuelle Tastatur) aufweist. In beiden Fällen kann im zusammengesetzten Bild eine Interaktion zwischen der Hand und der virtuellen Tastatur dargestellt werden. Das reale Element der Interaktion (z. B. die Hand des Benutzers) wird eher an dem virtuellen Element der Interaktion (z. B. der virtuellen Tastatur) ausgerichtet, wodurch Konsistenz und Qualität des interaktiven Erlebnisses verbessert (insbesondere bei Interaktionen, die eine Koordination zwischen visuellen und körperlichen Reizen erfordern, wie z. B. Tippen) und die Wahrscheinlichkeit eines Übelkeitsanfalls verringert werden. The second image generated by processing the first image based on the measurement of the motion / rotation of the HMD may be used in various ways to produce the composite image. In one example, a virtual element (eg, the virtual keyboard) may be placed in the second image at the image position predicted for the second time of interaction. In another example, from the second image, a real element (eg, the user's hand / finger or another body part of the user) may be extracted at the position predicted for the second time of interaction, where the real element is in a virtual Image that also has a virtual element (eg, the virtual keyboard) at the position predicted for the second time of interaction. In both cases, an interaction between the hand and the virtual keyboard can be presented in the composite image. The real element of the interaction (eg, the user's hand) is more aligned with the virtual element of the interaction (eg, the virtual keyboard), thereby improving the consistency and quality of the interactive experience (especially in interactions involving coordination between visual and physical stimuli, such as typing) and the likelihood of a nausea attack are reduced.

Zudem geben einige Ausführungsformen ein Verfahren zum Bereitstellen einer Interaktion mit einer Mixed-Reality (MR) an. Das Verfahren kann umfassen: Aufnehmen eines ersten Bildes einer realen Interaktion zwischen einem Körperteil eines Benutzers und einem realen Objekt mit Hilfe eine Kamera eines Head-Mounted Displays (HMD) eines Benutzers, Segmentieren des ersten Bildes mit Hilfe des HMD in einen dem Körperteil des Benutzers entsprechenden ersten Pixelbereich und einen dem realen Objekt entsprechenden zweiten Pixelbereich, wobei das Segmentieren auf einer Verteilung der realen Interaktionen auf mehrere Stellen des realen Objekts basiert, Erzeugen eines zusammengesetzten Bildes einer virtuellen Interaktion, die den Benutzer miteinbezieht, aus dem ersten Pixelbereich oder dem zweiten Pixelbereich und Anzeigen des zusammengesetzten Bildes der virtuellen Interaktion anstelle der realen Interaktion an dem HMD für den Benutzer.In addition, some embodiments provide a method for providing interaction with a mixed reality (MR). The method may include taking a first image of a real interaction between a body part of a user and a real object using a user's head-mounted display (HMD) camera, segmenting the first image into a body part of the user using the HMD corresponding first pixel area and a second pixel area corresponding to the real object, wherein the segmenting is based on a distribution of the real interactions on a plurality of locations of the real object, generating a composite image of a virtual interaction involving the user from the first pixel area or the second pixel area and displaying the composite image of the virtual interaction instead of the real interaction on the HMD to the user.

Konkret kann das erste Bild segmentiert werden, um in einem Bild einer realen Interaktion zwischen einem Benutzer und einem realen Objekt zwischen dem Körperteil des Benutzers (z. B. einem Teil einer Hand, den Fingern, usw.) und dem mit dem Körperteil betätigten realen Objekt (z. B. einem Peripheriegerät wie beispielsweise eine Tastatur, eine Maus, usw.) zu unterscheiden. Das Segmentierungsverfahren kann verwendet werden, um aus dem Bild Pixel zu extrahieren, von denen angenommen wird, dass sie Teil eines Körperteils sind. Auf Basis der Verteilung der Interaktionen können ein oder mehrere Schwellwerte so konfiguriert werden, dass sie verschiedene Pixelattribute umfassen (z. B. die Farben der Pixel, die Luminanz der Pixel, usw.). Auf Basis der Vergleichsergebnisse kann bestimmt werden, ob die Pixel wahrscheinlich zu einem Teil des Körpers des Benutzers oder zu einem Teil des realen Objekts gehören, und eine Teilmenge der Pixel kann auf Basis der Bestimmung extrahiert werden. Die extrahierten Pixel können beispielsweise zu einem Körperteil des Benutzers oder zu einem realen Objekt gehörende Pixel umfassen. Bei einigen Beispielen können die extrahierten Pixel in einem zusammengesetzten Bild angeordnet werden, das eine virtuelle Umgebung zur Repräsentation der virtuellen Interaktion wiedergibt. Bei einigen Beispielen kann das zusammengesetzte Bild aus dem ersten Bild durch Ersetzen der extrahierten Pixel mit Pixeln eines virtuellen Objekts (z. B. virtuelle Hand/Finger) abgeleitet werden. In beiden Fällen soll dem Benutzer, um ihm ein MR-Erlebnis zu ermöglichen, die virtuelle Interaktion anstelle der realen Interaktion angezeigt werden.Concretely, the first image may be segmented to be in an image of a real interaction between a user and a real object between the body part of the user (eg, a part of a hand, the fingers, etc.) and the real part operated with the body part Object (eg, a peripheral such as a keyboard, a mouse, etc.). The segmentation method can be used to extract pixels from the image that are assumed to be part of a body part. Based on the distribution of interactions, one or more thresholds may be configured to include different pixel attributes (eg, the colors of the pixels, the luminance of the pixels, etc.). Based on the comparison results, it can be determined whether the pixels are likely to belong to a part of the user's body or to a part of the real object, and a subset of the pixels can be extracted based on the determination. The extracted pixels may, for example, comprise a body part of the user or pixels belonging to a real object. In some examples, the extracted pixels may be arranged in a composite image that represents a virtual environment for representing the virtual interaction. In some examples, the composite image may be derived from the first image by replacing the extracted pixels with pixels of a virtual object (eg, virtual hand / finger). In both cases, to allow the user an MR experience, the virtual interaction should be displayed instead of the real interaction.

Wie oben ausgeführt kann das Segmentieren des ersten Bildes auf einer Verteilung der Interaktionen basieren. Die Verteilung kann auf Basis historischer Informationen und/oder momentaner Informationen ermittelt werden. Konkret können die historischen Informationen in Form einer Wärmekarte oder einer Wahrscheinlichkeitskarte vorliegen, die auf der Grundlage einer statistischen Analyse früherer Interaktionsaktivitäten erstellt wurde. Bei den früheren Interaktionsaktivitäten kann es sich um solche zwischen dem Benutzer und dem Peripheriegerät, zwischen anderen Benutzern und anderen Instanzen des Peripheriegeräts und/oder eines ähnlichen Peripheriegeräts usw. handeln. Die Wärmekarte kann eine Häufigkeitsverteilung der Interaktionsaktivitäten über mehrere Stellen des Peripheriegeräts angeben. Die statistische Analyse kann beispielsweise ein Bestimmen einer Wahrscheinlichkeit, dass an einer Stelle des Peripheriegeräts eine Interaktionsaktivität stattfindet, auf Basis einer Anzahl des Auftretens und des Zeitraums über den die Anzahl bestimmt wird, umfassen. Stellen des Peripheriegeräts in der Wärmekarte können auf Pixel eines Bildes von der Benutzersinteraktion mit dem Peripheriegerät abgebildet werden. Auf Basis der Wärmekarte oder der Wahrscheinlichkeitskarte kann eine Wahrscheinlichkeit ermittelt werden, mit der an einer jeweiligen der mehreren Stellen dem Körperteil des Benutzers (z. B. Hand, Finger, usw.) entsprechende Pixel zu finden sind. Die Wahrscheinlichkeitsinformationen aus der Wärmekarte können zum Festlegen von einem oder mehreren Schwellwerten verwendet werden, die sich auf bestimmte Attribute eines Pixels beziehen (z. B. Luminanz, Farbe usw.). Werte von Attributen (z. B. Luminanz, Farbe, usw.) von Pixeln in Bereichen mit einer hohen Wahrscheinlichkeit zum Auffinden von Handpixeln können beispielsweise als Schwellwerte für eine Bestimmung, ob es sich bei einem Pixel um ein Handpixel handelt, in anderen Bildern angepasst werden.As stated above, the segmentation of the first image may be based on a distribution of the interactions. The distribution can be determined based on historical information and / or current information. Concretely, the historical information may be in the form of a heat map or a probability map, based on a statistical analysis of past interaction activities. The prior interaction activities may be those between the user and the peripheral device, between other users and other instances of the peripheral device and / or a similar peripheral device, and so on. The heat map may specify a frequency distribution of interaction activities across multiple locations of the peripheral device. The statistical analysis may include, for example, determining a likelihood that an interaction activity will occur at a location of the peripheral device based on a number of occurrences and the amount of time over which the number is determined. Locations of the peripheral device in the thermal map may be mapped to pixels of an image from user interaction with the peripheral device. On the basis of the heat map or the probability map, a probability can be determined with which corresponding pixels can be found at a respective one of the multiple locations of the body part of the user (eg hand, fingers, etc.). The heat map probability information may be used to specify one or more thresholds related to particular attributes of a pixel (eg, luminance, color, etc.). For example, values of attributes (eg, luminance, color, etc.) of pixels in regions having a high probability of finding hand pixels may be thresholds for a determination of whether one pixel is a hand pixel, be adapted in other images.

Die Schwellwerte können auch an unterschiedliche Betriebsbedingungen angepasst werden. Bei einigen Beispielen können die Schwellwerte für den Vergleich von Pixeln für die Stellen erhöht werden, an denen die Wahrscheinlichkeit zum Auffinden von Hand-/Fingerpixeln gering ist, während die Schwellwerte für den Vergleich von Pixeln für die Stellen herabgesetzt werden können, an denen die Wahrscheinlichkeit zum Auffinden von Hand-/Fingerpixeln hoch ist. Die Schwellwerte können auch auf Basis des Umgebungslichts der Betriebsumgebung angepasst werden. So kann beispielsweise der Luminanzschwellwert für Hand-/Fingerpixel bei hoher Umgebungslichtstärke nach oben und der Luminanzschwellwert bei geringer Umgebungslichtstärke nach unten korrigiert werden. Bei einigen Beispielen können auch mehrere Schwellwerte angepasst werden, z. B. für verschiedene Benutzer, verschiedene Teile ihrer Hände, usw. Beispielsweise können verschiedene Schwellwerte angepasst werden, um Pixel von Fingernägeln, Fingersegmenten, der Handfläche, dem Handgelenk usw., die jeweils unterschiedliche Farben aufweisen können, zu extrahieren. Außerdem können die Schwellwerte auch an verschiedene Benutzer angepasst werden. Zum Beispiel können einige Benutzer lackierte Fingernägel haben, wobei die Schwellwerte zum Extrahieren von Pixeln der Fingernägel dieser Benutzer so angepasst werden können, dass die Farben der lackierten Fingernägel berücksichtigt werden. Bei einem weiteren Beispiel können einige Benutzer Tattoos und/oder Kleidungsstücke haben, die ihre Hände ganz oder teilweise bedecken, usw., wobei die Schwellwerte für das Extrahieren von Handpixeln für diese Benutzer angepasst werden können, um die bedeckten Teile ihrer Hände zu berücksichtigen. Für einen Benutzer kann ein Handmodell definiert werden, das eine Verteilung von Schwellwerten für verschiedene Bereiche einer Hand dieses Benutzers umfasst.The threshold values can also be adapted to different operating conditions. In some examples, the thresholds for comparing pixels may be increased for the locations where the likelihood of finding hand / finger pixels is low, while the thresholds for comparing pixels may be lowered for the locations where the likelihood is is high for finding hand / finger pixels. The thresholds may also be adjusted based on the ambient light of the operating environment. For example, the luminance threshold for hand / finger pixels may be corrected upward at high ambient light levels and the luminance threshold at low levels of ambient light intensity. In some examples, multiple thresholds may be adjusted, e.g. For example, different thresholds may be adjusted to extract pixels from fingernails, finger segments, palm, wrist, etc., each of which may have different colors. In addition, the thresholds can also be adapted to different users. For example, some users may have painted fingernails, and the thresholds for extracting pixels of the fingernails of these users may be adjusted to account for the colors of the painted fingernails. In another example, some users may have tattoos and / or garments that completely or partially cover their hands, etc., and the thresholds for extracting hand pixels for these users may be adjusted to accommodate the covered portions of their hands. For a user, a hand model may be defined that includes a distribution of thresholds for different areas of a hand of that user.

Bei einigen Beispielen können die historischen Informationen verwendet werden, um beispielsweise die zeitliche Veränderung desselben Pixels zu berechnen, die zur Verbesserung der Berechnungseffizienz bei einer Durchführung eines mehrstufigen Pixelvergleichsprozesses verwendet werden kann. So kann beispielsweise eine kontinuierlich vorgenommene Berechnung der Veränderung der Gesamtintensität (oder der Farbänderung) von einem Bild zum anderen eine visuelle Karte der sich im Bild ändernden Teile ermöglichen, die zum Identifizieren von einer oder mehreren Umgrenzungen der Pixel verwendet werden können, die die sich bewegenden Objekte wie beispielsweise eine Hand des Benutzers oder andere Körperteile, die mit der Peripheriegerät interagieren, repräsentieren. Die Umgrenzungen können beispielsweise Pixelbereiche definieren, die wahrscheinlich eine Hand des Benutzers oder andere Körperteile darstellen, wobei nur die zu diesen Bereichen gehörenden Pixel mit dem/den Schwellwert(en) verglichen werden, um festzustellen, ob die Pixel zu dem Körperteil des Benutzers gehören. Mit solchen Anordnungen kann die Gesamtzahl der Pixel, die bei der Segmentierungsprozedur mit dem/den Schwellwert(en) verglichen werden müssen, verringert werden, wodurch die Effizienz der Berechnung verbessern werden kann.In some examples, the historical information may be used to calculate, for example, the temporal variation of the same pixel that may be used to improve computational efficiency when performing a multi-level pixel comparison process. For example, a continuous calculation of the change in the overall intensity (or color change) from one image to another may allow for a visual map of the image changing parts that can be used to identify one or more boundaries of the pixels that are moving Objects such as a user's hand or other body parts that interact with the peripheral device represent. For example, the bounds may define pixel areas that are likely to represent a user's hand or other body parts, with only the pixels associated with those areas being compared to the threshold (s) to determine if the pixels belong to the body part of the user. With such arrangements, the total number of pixels to be compared in the segmentation procedure with the threshold (s) can be reduced, which can improve the efficiency of the calculation.

Bei einigen Beispielen kann die Aktionsverteilung der Interaktionen auch auf Basis aktueller Informationen bestimmt werden. So kann das Peripheriegerät beispielsweise mehrere Bewegungssensoren (z. B. Tasten einer Tastatur) an mehreren Stellen aufweisen. Eine Kamera (bei der es sich um einen Teil des HMD oder eine eigenständige Vorrichtung handeln kann) kann ein Bild von den mehreren Stellen des Peripheriegeräts aufnehmen. Eine Sensorkarte kann verschiedene Pixel des Bildes auf die mehreren Stellen abbilden, an denen sich die mehreren Bewegungssensoren befinden. Wenn die Bewegungssensoren die Interaktionsaktivitäten an einer oder an mehreren Stellen der mehreren Stellen erfassen (z. B. Tastenanschläge, Tastendruckaktionen, berührende/nichtberührende Gesten usw.), können die Bewegungssensoren die Kamera dazu veranlassen, ein Bild von den mehreren Stellen des Peripheriegeräts aufzunehmen, wobei das Bild auch Interaktionsaktivitäten enthält. Aus dem Bild und auf Basis der Sensorkarte können ein erster Bereich des Peripheriegeräts, der die die Interaktionsaktivitäten erfassenden Bewegungssensoren enthält, und ein den ersten Bereich umgebender zweiter Bereich bestimmt werden. Der erste Bereich kann einem Bereich eines Peripheriegeräts (z. B. Tastaturtasten, Tasten, Touchpads usw.) entsprechen, an denen die Interaktionsaktivitäten stattfinden, und kann Pixel der Hand/Finger (oder anderer Körperteile) des Benutzers enthalten, die an den Interaktionsaktivitäten beteiligt sind. Der zweite Bereich kann Pixel des Peripheriegeräts oder eines anderen Hintergrundobjekts enthalten. Für den ersten Bereich kann ein erstes Histogramm verschiedener Farbkomponenten (z. B. relative Intensitäten der jeweiligen Farbkomponenten) bestimmt werden. Für den zweiten Bereich kann ferner ein zweites Histogramm solcher Komponenten bestimmt werden. Die Schwellwerte für eine Bestimmung, ob ein Pixel zu den Händen/Fingern des Benutzers gehört, können auf Basis des ersten und zweiten Histogramm bestimmt werden. Beispielsweise kann zum Bestimmen, ob ein Pixel zur Hand eines Benutzers gehört, für jede Farbkomponente ein Schwellwert (z. B. eine Grenzwahrscheinlichkeit, dass das Pixel zur Hand gehört) bestimmt werden, wobei der Schwellwert auf Basis eines gewichteten Durchschnitts der Intensitäten dieser Farbkomponente im ersten und zweiten Histogramm bestimmt wird. Bei anderen Bildern kann zum Feststellen, ob das Pixel zur Hand des Benutzers gehört, jede Farbkomponente eines Pixels mit dem entsprechenden Schwellwert verglichen werden.In some examples, the action distribution of the interactions may also be determined based on current information. For example, the peripheral device may have multiple motion sensors (eg, keyboard keys) at multiple locations. A camera (which may be part of the HMD or a stand-alone device) may capture an image of the multiple locations of the peripheral device. A sensor card can map different pixels of the image to the multiple locations where the multiple motion sensors are located. When the motion sensors detect the interaction activities at one or more locations of the plurality of locations (eg, keystrokes, keystrokes, touching / non-touching gestures, etc.), the motion sensors may cause the camera to take a picture of the multiple locations of the peripheral device, where the image also contains interaction activities. From the image and on the basis of the sensor card, a first region of the peripheral device, which contains the motion sensors detecting the interaction activities, and a second region surrounding the first region can be determined. The first area may correspond to a portion of a peripheral device (eg, keyboard keys, buttons, touch pads, etc.) where the interaction activities take place, and may include pixels of the user's hand / fingers (or other body parts) participating in the interaction activities are. The second area may include pixels of the peripheral device or other background object. For the first region, a first histogram of different color components (eg relative intensities of the respective color components) can be determined. For the second region, a second histogram of such components may be further determined. The thresholds for determining whether a pixel belongs to the user's hands / fingers can be determined based on the first and second histograms. For example, to determine whether a pixel belongs to a user, a threshold value (eg, a borderline probability that the pixel belongs to the hand) may be determined for each color component, the threshold being based on a weighted average of the intensities of that color component in FIG first and second histogram is determined. For other pictures For example, to determine whether the pixel belongs to the user's hand, each color component of a pixel may be compared to the corresponding threshold.

Bei einigen Beispielen kann eine Kombination aus historischen und momentanen Informationen verwendet werden, um einen zweiten Schwellwert für die Hintergrunderfassung festzulegen. So können beispielsweise Bilder von Stellen des Peripheriegeräts, an denen nur sehr wenige oder gar keine Interaktionsaktivitäten stattfinden, periodisch aufgenommen und ein drittes Farbkomponenten-Histogramm für diese Stellen bestimmt werden. Auf Basis des dritten Histogramms kann ein zweiter Schwellwert für die Hintergrunderfassung bestimmt werden. Der zweite Schwellwert für die Hintergrunderfassung (z. B. eine Grenzwahrscheinlichkeit, dass ein Pixel zum Hintergrund gehört) kann mit dem ersten Schwellwert für die Hand-/Fingerdetektion (z. B. eine Grenzwahrscheinlichkeit, dass ein Pixel zur Hand/den Fingern gehört) auf verschiedene Weise kombiniert werden. Bei einem Beispiel kann der zweite Schwellwert für die Hintergrunderfassung beim ersten Schritt der Überprüfung verwendet werden. Wenn das Pixel sehr nahe am zweiten Schwellwert liegt und das Ergebnis nicht eindeutig ist, kann das Pixel mit dem ersten Schwellwert für die Hand-/Fingererfassung verglichen werden. Bei einem anderen Beispiel kann durch Mittelwertbildung aus dem ersten und zweiten Schwellwert ein kombinierter Schwellwert bestimmt werden, und die Pixel des Bildes können zum Identifizieren der Handpixel mit dem kombinierten Schwellwert verglichen werden.In some examples, a combination of historical and current information may be used to set a second background detection threshold. For example, images of peripheral device locations where there are very few or no interaction activities can be periodically captured and a third color component histogram determined for those locations. Based on the third histogram, a second threshold for the background detection can be determined. The second background detection threshold (eg, a borderline probability that a pixel belongs to the background) may be at the first threshold for hand / finger detection (eg, a borderline probability that a pixel belongs to the hand / fingers) be combined in different ways. In one example, the second background detection threshold may be used in the first step of the verification. If the pixel is very close to the second threshold and the result is ambiguous, the pixel may be compared to the first threshold for hand / finger detection. In another example, a combined threshold may be determined by averaging the first and second thresholds, and the pixels of the image may be compared to the combined threshold to identify the hand pixels.

Die Bestimmung der Schwellwerte kann Teil eines Kalibrierungsprozesses sein, der auf einer Bildsubstitution basiert. So kann beispielsweise ein Bild eines nicht von der Hand oder den Fingern des Benutzers verdeckten Peripheriegeräts (z. B. einer Tastatur) aufgenommen werden. Die Pixel des Bildes können bei der Bestimmung der Schwellwerte für die Unterscheidung zwischen den Hand-/Fingerpixeln und den Pixeln des Peripheriegerätes als Referenz/Ausgangspunkt verwendet werden. Im Rahmen des Kalibrierungsprozesses kann ein Benutzer seine/ihre Finger wie beschrieben auf das Peripheriegerät legen, woraufhin ein zweites Bild des von den Fingern abgedeckten Peripheriegerätes aufgenommen wird. Auf Basis der bekannten Pixelpositionen der Hand/Finger sowie der bekannten Pixelpositionen des Peripheriegeräts, die die Hand/Finger nicht aufweisen, können die Schwellwerte vom Ausgangspunkt aus angepasst werden, um beispielsweise die Wahrscheinlichkeit für eine korrekte Unterscheidung zwischen den Pixeln des Peripheriegeräts und den Pixeln der Hand/Finger des Benutzers zu maximieren. Die Aufnahme von Bildern des Peripheriegerät kann auch periodisch erfolgen, um für die Bestimmung der Referenzschwellwerte ein aktualisiertes Bild zu erhalten, womit einer Änderung der Betriebsbedingungen (z. B. Änderung der Umgebungshelligkeit, Inaktivität des Peripheriegerätes usw.) Rechnung getragen wird.The determination of the thresholds may be part of a calibration process based on image substitution. For example, an image of a peripheral device (eg, a keyboard) not covered by the user's hand or fingers can be captured. The pixels of the image may be used as a reference / starting point in determining the thresholds for the distinction between the hand / finger pixels and the pixels of the peripheral device. As part of the calibration process, a user may place his / her fingers on the peripheral device as described, whereupon a second image of the finger-covered peripheral device is captured. Based on the known pixel positions of the hand / fingers as well as the known pixel positions of the peripheral device that the hand / fingers do not have, the thresholds can be adjusted from the starting point to, for example, minimize the likelihood of correctly distinguishing between the pixels of the peripheral device and the pixels To maximize the user's hand / finger. The acquisition of images from the peripheral device may also be periodic to obtain an updated image for the determination of the reference thresholds, taking into account a change in operating conditions (eg, change in ambient brightness, inactivity of the peripheral device, etc.).

Nachdem die dem Körperteil des Benutzers zugehörigen Pixel (z. B. Hand, Finger, usw.) identifiziert wurden, kann anhand der Identifizierung der Pixel ein zusammengesetztes Bild erstellt werden. Beispielsweise können die extrahierten Pixel (z. B. einer Hand, Finger, usw.) in eine vom zusammengesetzten Bild wiedergegebene virtuelle Umgebung eingefügt werden, um die virtuelle Interaktion bildlich darzustellen. Die extrahierten Pixel und/oder die virtuelle Umgebung können auch so modifiziert werden, dass sie aufeinander abgestimmt sind. Beispielsweise kann die Luminanz der extrahierten Pixel an die Lichtverhältnisse der virtuellen Umgebung angepasst werden. Bei einem anderen Beispiel können dem zusammengesetzten Bild auch virtuelle Schatten hinzugefügt werden, die von der Hand (durch die extrahierten Pixel repräsentiert) auf ein virtuelles Peripheriegerät geworfen werden. Bei einigen Beispielen können zusätzliche Pixel der virtuellen Umgebung auch durch Hand-/Fingerpixel ersetzt werden, um Lücken bei der Extraktion der Hand-/Fingerpixel zu schließen.After identifying the pixels (eg, hand, fingers, etc.) associated with the body part of the user, a composite image can be created based on the identification of the pixels. For example, the extracted pixels (eg, a hand, finger, etc.) may be inserted into a virtual environment rendered by the composite image to depict the virtual interaction. The extracted pixels and / or the virtual environment may also be modified to be matched. For example, the luminance of the extracted pixels can be adapted to the lighting conditions of the virtual environment. In another example, virtual shadows may also be added to the composite image that are thrown by hand (represented by the extracted pixels) onto a virtual peripheral device. In some examples, additional pixels of the virtual environment may also be replaced by hand / finger pixels to close gaps in the extraction of the hand / finger pixels.

Durch die Adaption der Hand-/Hintergrund-Erkennung auf Basis einer Verteilung der Aktionen an dem Peripheriegerät kann das Handsegmentierungsschema weniger empfindlich gegenüber anderen Faktoren sein, die die Genauigkeit der Handdetektion beeinträchtigen können, wie beispielsweise Hauttönung, Lichtintensität, usw. Es wird beispielsweise angenommen, dass ein Benutzer eine dunklere Hauttönung aufweist und/oder eine Tastatur in einer relativ dunklen Umgebung benutzt, und dass von der Benutzung der Tastatur durch den Benutzer ein Bild aufgenommen wird. Aufgrund der dunkleren Hauttönung des Benutzers und/oder des geringen Umgebungslichts des Umfeldes können die Handpixel und die Tastaturpixel im Bild geringere Unterschiede aufweisen als bei einem Benutzer mit einer helleren Hauttönung, der eine dunkle Tastatur bei hellem Umgebungslicht benutzt, wodurch die Genauigkeit der Handsegmentierung schlechter sein kann. Außerdem kann bei schwachem Umgebungslicht auch die Handsegmentierung gestört sein. Durch die Anpassung der Detektionsschwellen auf Basis einer historischen oder einer momentanen Verteilung von Aktionen an der Tastatur kann die Handdetektion auf einem zusätzlichen Informationssatz basieren, wodurch die Auswirkungen der Hauttönung und der Lichtintensität gemindert werden können. Dadurch kann ein robusteres Segmentierungsschema erreicht werden, das Handpixel für eine größere Bandbreite an Hauttönen und in einer größeren Palette von Umgebungen genau identifizieren kann.By adapting hand / background detection based on a distribution of actions on the peripheral, the hand segmentation scheme may be less sensitive to other factors that may affect the accuracy of hand detection, such as skin tone, light intensity, etc. For example, suppose a user has a darker skin tone and / or uses a keyboard in a relatively dark environment, and an image is taken of the use of the keyboard by the user. Due to the darker skin tone of the user and / or the low ambient light of the environment, the hand pixels and the keyboard pixels in the image may have less differences than a user with a lighter skin tone using a dark keyboard in bright ambient light, thereby degrading the accuracy of hand segmentation can. In addition, the hand segmentation may be disturbed in low ambient light. By adapting the detection thresholds based on a historical or instantaneous distribution of actions on the keyboard, the hand detection can be based on an additional set of information, which can mitigate the effects of skin tone and light intensity. This can provide a more robust segmentation scheme that can accurately identify hand pixels for a wider range of skin tones and in a wider range of environments.

Typische Systemumgebung für bestimmte Beispiele Typical system environment for specific examples

1A und 1B zeigen eine typische Implementierung eines Systems 100, bei dem die offenbarten Techniken genutzt werden können. Das System 100 kann den Computer 110, die Anzeige 120 und mehrere Peripheriegeräte aufweisen, die beispielsweise das Peripheriegerät 130 (z. B. „Computermaus 130“), das Peripheriegerät 140 (z. B. „Tastatur 140“), das Peripheriegerät 150 (z. B. „Mikrofon 150“) und das Peripheriegerät 160 (z. B. „Head-Mounted Display (HMD) 160“) umfassen. Wie für einen Durchschnittsfachmann ersichtlich können die Computermaus 130, die Tastatur 140 und das Mikrofon 150 des Systems 100 zum Steuern von Aspekten des Computers 110, des Displays 120 und des HMD 160 ausgebildet sein. Computer 110 kann als „Host-Computer“ oder als „Host-Computervorrichtung“ bezeichnet werden. Jedes der Peripheriegeräte 130-160 kann einen oder mehrere Sensoren aufweisen, um eine Eingabeaktion (oder Eingabesignale, wie beispielsweise Audiosignale) eines Benutzers zu erfassen und entsprechende Sensordaten (z. B. Sensordaten, die eine Verfahrstrecke der Computermaus 130 repräsentieren, Sensordaten, die das Drücken einer Taste der Tastatur 140 anzeigen, Audiodaten, die an einem Mikrofon 150 erfasst werden, usw.) zu erzeugen. Die Peripheriegeräte 130-150 können die Sensordaten zum Computer 110 leiten, um einen oder mehrere Vorgänge am Computer 110 zu steuern. Beispielsweise kann der Computer 110 auf Basis einer von der Computermaus 130 erfassten Bewegung eine vom Benutzer an einer an der Anzeige 120 dargestellten grafischen Benutzerschnittstelle vorgenommene Auswahl einer Audiodatei erkennen und die ausgewählte Audiodatei abspielen. Außerdem kann das HMD 160 wie in 1B dargestellt Bilder (z. B. das Kamerabild 170) einer Interaktion des Benutzers mit einer Maus 130 und/oder einer Tastatur 140 erfassen und die Bilder der Interaktion des Benutzers für den Benutzer anzeigen. Wie im Folgenden näher beschrieben kann das HMD 160 reale Elemente aus dem Kamerabild 170 (z. B. die Hand 180 des Benutzers, die Tastatur 140, die Maus 130, usw.) mit virtuellen Elementen kombinieren, um ein immersives Erweiterte-Realität (AR)/Mixed-Reality (MR) -Erlebnis zu ermöglichen. 1A and 1B show a typical implementation of a system 100 in which the disclosed techniques can be used. The system 100 can the computer 110 , the ad 120 and a plurality of peripheral devices, such as the peripheral device 130 (eg "Computer mouse 130 "), The peripheral device 140 (eg "keyboard 140 "), The peripheral device 150 (eg "Microphone 150 ") And the peripheral device 160 (eg "Head-Mounted Display (HMD) 160 "). As one of ordinary skill in the art can see, the computer mouse 130 , the keyboard 140 and the microphone 150 of the system 100 to control aspects of the computer 110 , the display 120 and the HMD 160 be educated. computer 110 may be referred to as a "host computer" or as a "host computing device". Each of the peripherals 130 - 160 may include one or more sensors for detecting an input action (or input signals, such as audio signals) of a user and corresponding sensor data (eg, sensor data representing a travel distance of the computer mouse 130 represent, sensor data, pressing a key on the keyboard 140 show audio data to a microphone 150 to be detected, etc.). The peripherals 130 - 150 can transfer the sensor data to the computer 110 direct one or more operations on the computer 110 to control. For example, the computer 110 based on one of the computer mouse 130 captured motion from the user to one at the display 120 recognize selected audio file selection and play the selected audio file. In addition, the HMD 160 as in 1B displayed images (eg the camera image 170 ) an interaction of the user with a mouse 130 and / or a keyboard 140 capture and display the images of the user's interaction with the user. As described in more detail below, the HMD 160 real elements from the camera image 170 (eg the hand 180 the user, the keyboard 140 , the mouse 130 , etc.) combine with virtual elements to enable an immersive augmented reality (AR) / mixed reality (MR) experience.

Sowohl der Computer 110 als auch das HMD 160 können ein maschinenlesbares Medium (nicht dargestellt) aufweisen, das zum Speichern von Computercode wie z. B. Tastaturtreibersoftware und dergleichen ausgebildet ist, wobei der Computercode von einem Prozessor des Computers 110 ausgeführt werden kann, um mit Hilfe der Peripheriegeräte 130, 140 und/oder 150 auf die Steuerung des Computers 110 einzuwirken. Die diversen hier beschriebenen Beispiele beziehen sich im Allgemeinen auf ein Peripheriegerät 120 in Form einer Anzeige, ein Peripheriegerät 130 in Form einer Computermaus, ein Peripheriegerät 140 in Form einer Tastatur und ein Peripheriegerät 150 in Form eines Mikrofons; es sollte jedoch klar sein, dass die Peripheriegeräte 130-150 in Form einer beliebigen Ein-/Ausgabevorrichtung (I/O), Benutzerschnittstellenvorrichtung, Steuerungsvorrichtung, Eingabeeinheit oder dergleichen vorliegen können. Bei den Peripheriegeräten 130-150 kann es sich beispielsweise auch um eine Fernsteuerungsvorrichtung, eine tragbare Vorrichtung (z. B. Smartwatch, Armband, Brille), ein Smartphone oder dergleichen handeln, wobei diese eine Ein- und Ausgabe über eine an dem Peripheriegerät 120 angezeigte grafische Benutzerschnittstelle ermöglichen.Both the computer 110 as well as the HMD 160 may comprise a machine-readable medium (not shown) for storing computer code such. B. keyboard driver software and the like is formed, wherein the computer code from a processor of the computer 110 can be run to using the peripherals 130 . 140 and or 150 on the control of the computer 110 act. The various examples described herein generally refer to a peripheral device 120 in the form of a display, a peripheral device 130 in the form of a computer mouse, a peripheral device 140 in the form of a keyboard and a peripheral device 150 in the form of a microphone; However, it should be clear that the peripherals 130 - 150 may be in the form of any input / output device (I / O), user interface device, control device, input device, or the like. At the peripherals 130 - 150 It may also be, for example, a remote control device, a wearable device (eg, smartwatch, wristband, glasses), a smartphone, or the like, which inputs and outputs via a peripheral device 120 enable the displayed graphical user interface.

Bei dem Computer 110 handelt es sich üblicherweise um ein Desktop- oder Laptop-Computergerät. Es ist jedoch selbstverständlich, dass jede geeignete Computervorrichtung, die ferner einen Tablet-Computer ein Smartphones usw. umfasst, die Host-Computervorrichtung bilden kann. Der Computer 110 kann auch Teil des HMD 160 sein. Das HMD 160 kann eine virtuelle oder Erweiterte-Realität-Schnittstelle (z. B. mit 2D- oder 3D-Displays), eine holographische Schnittstelle oder dergleichen aufweisen. Einem Durchschnittsfachmann werden sich viele Variationen, Abwandlungen und alternative Ausführungsformen hiervon erschließen.At the computer 110 it is usually a desktop or laptop computer device. However, it should be understood that any suitable computing device that further includes a tablet computer, a smartphone, etc. may constitute the host computing device. The computer 110 can also be part of the HMD 160 be. The HMD 160 may include a virtual or augmented reality interface (eg, with 2D or 3D displays), a holographic interface, or the like. One of ordinary skill in the art will recognize many variations, modifications and alternative embodiments thereof.

2 zeigt ein System für den Betrieb eines Peripheriegeräts (z. B. eines oder mehrerer der Peripheriegeräte 130-160) gemäß bestimmter Ausführungsformen. Das System 200 weist (einen) Prozessor(en) 210, eine Speicheranordnung 220, ein Energiemanagementsystem 230, ein Kommunikationssystem 240 und ein Eingabeerfassungsmodul 250 auf. Jeder der Systemblöcke 220-250 kann mit dem/den Prozessor(en) 210 elektrisch verbunden sein (z. B. über ein Bussystem). Das System 200 kann zudem weitere Systeme aufweisen, die im Hinblick auf eine klare Darstellung der hier beschriebenen neuen Merkmale in dieser Schrift nicht dargestellt oder erläutert werden. Die Systemblöcke 220-250 können in Form separater Module implementiert sein, alternativ können auch mehr als ein Systemblock innerhalb einer einzigen Vorrichtung implementiert sein. Bei einigen Beispielen können die Systemblöcke 220-250 bei einem Peripheriegerät implementiert sein. Bei einigen Beispielen können die Systemblöcke 220-250 als Mehrgerätesystem implementiert sein, das ein Peripheriegerät und einen Dongle umfasst. Die Systemblöcke 220-250 können zur Implementierung der nachstehend zu beschreibenden Technik zur Versetzungsabschätzung ausgebildet sein. 2 shows a system for operating a peripheral device (eg, one or more of the peripheral devices 130 - 160 ) according to certain embodiments. The system 200 has (a) processor (s) 210 , a storage arrangement 220 , an energy management system 230 , a communication system 240 and an input acquisition module 250 on. Each of the system blocks 220 - 250 can work with the processor (s) 210 be electrically connected (eg via a bus system). The system 200 may also include other systems that are not shown or explained in terms of a clear presentation of the novel features described herein in this document. The system blocks 220 - 250 may be implemented in the form of separate modules, alternatively, more than one system block may be implemented within a single device. In some examples, the system blocks may be 220 - 250 be implemented at a peripheral device. In some examples, the system blocks may be 220 - 250 implemented as a multi-device system comprising a peripheral device and a dongle. The system blocks 220 - 250 may be configured to implement the offset estimation technique to be described below.

Bei einigen Beispielen weist/weisen der/die Prozessor(en) 210 einen oder mehrere Mikroprozessoren (µCs) auf und kann/können zum Steuern des Betriebs des Systems 200 ausgebildet sein. Alternativ können der/die Prozessor(en) 210 wie für eine Durchschnittsfachmann ersichtlich einen oder mehrere Mikrocontroller (MCUs), digitale Signalprozessoren (DSPs) oder dergleichen mit unterstützender Hardware und/oder Firmware (z. B. Speicher, programmierbare I/Os usw.) aufweisen. Der/die Prozessor(en) 210 können einige oder alle Aspekte eines Betriebs der Peripheriegeräte 130-160 steuern (z. B. Systemblock 220-250). Alternativ oder zusätzlich können einige der Systemblöcke 220-250 einen zusätzlichen spezialisierten Prozessor aufweisen, der mit dem Prozessor 210 zusammenarbeiten kann. Einem Durchschnittsfachmann erschließen sich viele Variationen, Modifikationen und alternative Ausführungsformen.In some examples, the processor (s) is / are pointing 210 One or more microprocessors (μCs) and may be used to control the operation of the system 200 be educated. Alternatively, the processor (s) may 210 as for one One of ordinary skill in the art will recognize one or more microcontrollers (MCUs), digital signal processors (DSPs), or the like having supporting hardware and / or firmware (eg, memory, programmable I / Os, etc.). The processor (s) 210 may have some or all aspects of operating the peripherals 130 - 160 control (eg system block 220 - 250 ). Alternatively or additionally, some of the system blocks may be 220 - 250 an additional specialized processor associated with the processor 210 can work together. One of ordinary skill in the art will recognize many variations, modifications and alternative embodiments.

Die Speicheranordnung 220 kann zum Speichern von Informationen ausgebildet sein, die eine oder mehrere Konfigurationen für einen Betrieb der Peripheriegeräte 130-150 betreffen. Wie nachstehend näher erläutert können eine oder mehrere der Konfigurationen für einen Betrieb der Peripheriegeräte 130-150 ein Einstellen von Leistungsmerkmalen der Peripheriegeräte 130-150 umfassen, die eine Computermaus-Scrollgeschwindigkeit, eine Empfindlichkeit des Computermaus-Bewegungssensors, eine Tastenkombinationszuordnung bei Tastaturen, eine Mikrofonempfindlichkeit und dergleichen umfassen ohne darauf beschränkt zu sein. Die Speicheranordnung 220 kann wie im Folgenden näher erläutert auch andere Konfigurationsinformationen speichern, die für eine Kommunikation mit den Peripheriegeräten 130-150 verwendet werden.The memory arrangement 220 may be configured to store information representing one or more configurations for operation of the peripherals 130 - 150 affect. As further explained below, one or more of the configurations for operation of the peripherals 130 - 150 adjusting features of the peripherals 130 - 150 include, but are not limited to, a computer mouse scrolling speed, a computer mouse motion sensor sensitivity, keyboard key-mapping assignment, microphone sensitivity, and the like. The memory arrangement 220 As described in more detail below, it may also store other configuration information necessary for communication with the peripherals 130 - 150 be used.

Außerdem kann die Speicheranordnung 220 ein oder mehrere Softwareprogramme zur Ausführung durch Prozessoren speichern (z. B. dem/den Prozessor(en) 210). Es wird darauf hingewiesen, dass sich „Software“ auf Anweisungsabfolgen beziehen kann, die das System 200 bei einer Ausführung an Verarbeitungseinheit(en) (z. B. Prozessoren, Verarbeitungsgeräte usw.) veranlassen, bestimmte Funktion von Softwareprogrammen auszuführen. Die Anweisungen können als Firmware gespeichert werden, die sich in einem Festwertspeicher (ROM) befindet, und/oder als in einem Medienspeicher gespeicherte Anwendungen, die zur Verarbeitung durch Verarbeitungsgeräte in einen Speicher eingelesen werden können. Software kann als einzelnes Programm oder als Bündel einzelner Programme implementiert sein und kann in einem nichtflüchtigen Speicher gespeichert sein und während einer Programmausführung ganz oder teilweise in einen flüchtigen Arbeitsspeicher kopiert werden.In addition, the memory arrangement 220 store one or more software programs for execution by processors (eg, the processor (s)) 210 ). It should be noted that "software" may refer to instruction sequences that the system 200 when executed, cause the processing unit (s) (eg, processors, processing devices, etc.) to perform certain function of software programs. The instructions may be stored as firmware residing in a read-only memory (ROM) and / or as applications stored in a media memory which may be read into memory for processing by processing devices. Software may be implemented as a single program or as a bundle of individual programs, and may be stored in nonvolatile memory and, during program execution, copied in whole or in part into volatile memory.

Das Energiemanagementsystem 230 kann zur Handhabung von Energieverteilung, Aufladen, Energieeffizienz und dergleichen für die Peripheriegeräte 130-150 ausgebildet sein. Bei einigen Ausführungsformen kann das Energiemanagementsystem 230 eine Batterie (nicht dargestellt), ein USB-basierendes Ladesystem für die Batterie (nicht dargestellt) und Energiemanagementvorrichtungen (z. B. Low-Dropout-Voltage-Regler - nicht dargestellt) aufweisen. Bei bestimmten Ausführungsformen können die durch das Energiemanagementsystem 230 verfügbaren Funktionen in den/die Prozessor(en) 210 integriert sein. Bei der Energiequelle kann es sich um eine austauschbare Batterie, eine wiederaufladbare Energiespeichervorrichtung (z. B. einen Superkondensator, einen Lithium-Polymer-Akkumulator, NiMH, NiCd) oder ein kabelgebundenes Netzteil handeln. Das Ladesystem kann ein zusätzliches Kabel sein (speziell zum Aufladen) oder einen USB-Anschluss zum Aufzuladen des Akkumulators verwenden.The energy management system 230 can handle power distribution, charging, energy efficiency and the like for the peripherals 130 - 150 be educated. In some embodiments, the energy management system 230 a battery (not shown), a USB based charging system for the battery (not shown), and energy management devices (eg, low dropout voltage regulator - not shown). In certain embodiments, those may be performed by the energy management system 230 Available Features in the Processor (s) 210 be integrated. The energy source may be a replaceable battery, a rechargeable energy storage device (eg, a supercapacitor, a lithium polymer accumulator, NiMH, NiCd), or a wired power supply. The charging system can be an extra cable (especially for charging) or use a USB port to charge the battery.

Das Kommunikationssystem 240 kann zum Ermöglichen einer drahtlosen oder drahtgebundenen Kommunikation, zwischen beispielsweise den Prozessoren 210 und einem oder mehreren der Peripheriegeräte 130-150 ausgebildet sein. Das Kommunikationssystem 240 kann für Hochfrequenz (RF), Bluetooth®, BLE, WiFi, Infrarot (IR), ZigBee®, Logitech Unifying® oder eine andere geeignete Kommunikationstechnologie zur Kommunikation mit anderen Computergeräten und/oder Peripheriegeräten ausgebildet sein. Das Kommunikationssystem 240 kann auch eine fest verdrahtete Verbindung mit den Prozessoren 210 zur Verfügung stellen. Bei der fest verdrahteten Verbindung kann es sich um eine serielle Verbindung wie z. B. Universal Serial Bus (USB), FireWire®, DisplayPort®, High-Definition Multimedia Interface (HDMI), usw. handeln.The communication system 240 may be to allow for wireless or wired communication between, for example, the processors 210 and one or more of the peripherals 130 - 150 be educated. The communication system 240 may be Radio Frequency (RF), Bluetooth®, BLE, WiFi, Infrared (IR), ZigBee®, Logitech Unifying®, or any other suitable communications technology for communicating with other computing devices and / or peripherals. The communication system 240 can also have a hardwired connection with the processors 210 provide. The hardwired connection can be a serial connection, such as a serial connection. Universal Serial Bus (USB), FireWire®, DisplayPort®, High-Definition Multimedia Interface (HDMI), etc.

Das Eingabeerfassungsmodul 250 kann die Erfassung einer Interaktion eines Benutzers mit sich an den Peripheriegeräten 130-150 befindenden Eingabeelementen steuern. Das Eingabeerfassungsmodul 250 kann Benutzereingaben beispielsweise auf Basis von Sensordaten von der Computermaus 130 erfassen. Bei einigen Ausführungsformen kann das Eingabeerfassungsmodul 250 mit der Speicheranordnung 220 zusammenarbeiten, um Eingabedaten für die Prozessoren 210 auf Basis der von dem Kommunikationssystem 240 empfangenen Sensordaten zu erzeugen. Das Eingabeerfassungsmodul 250 kann beispielsweise eine von einem Mauszeiger an der Anzeige 120 zurückgelegte Strecke auf Basis von in der Speicheranordnung 220 gespeicherten Scrollgeschwindigkeitsinformationen sowie Sensordaten der Computermaus 130 berechnen und die Streckeninformationen an die Prozessoren 210 (oder einen Renderer) zum Wiedergeben der Mausbewegung an der Anzeige 120 übergeben.The input capture module 250 may involve capturing an interaction of a user with the peripherals 130 - 150 control input elements. The input capture module 250 For example, user input may be based on sensor data from the computer mouse 130 to capture. In some embodiments, the input acquisition module 250 with the memory arrangement 220 work together to input data for the processors 210 based on the of the communication system 240 to generate received sensor data. The input capture module 250 for example, one of a mouse pointer on the display 120 distance covered on the basis of in the memory arrangement 220 stored scrolling speed information and sensor data of the computer mouse 130 calculate and route information to the processors 210 (or a renderer) to play mouse movement on the display 120 to hand over.

Obwohl bestimmte Systeme nicht eigens erläutert werden können, sollten sie wie für einen Durchschnittsfachmann ersichtlich als Teil des Systems 200 angesehen werden. Das System 200 kann beispielsweise ein Bussystem zum Übertragen von Energie und/oder Daten von und zu dessen verschiedenen Systemen aufweisen.Although certain systems can not be specifically explained, they should be apparent to one of ordinary skill in the art as part of the system 200 be considered. The system 200 For example, a bus system for transmitting Have energy and / or data from and to its various systems.

Es wird darauf hingewiesen, dass das System 200 der Erläuterung dient, wobei Variationen und Modifikationen möglich sind. Das System 200 kann hier nicht ausdrücklich beschriebene andere Funktionen aufweisen. Außerdem wird darauf hingewiesen, dass auch wenn das System 200 unter Bezugnahme auf bestimmte Blöcke beschrieben wird, diese Blöcke der einfacheren Darstellung wegen definiert und nicht dazu bestimmt sind, eine bestimmte physikalische Anordnung von Bestandteilen zu unterstellen. Außerdem müssen die Blöcke keinen speziellen materiellen Komponenten entsprechen. Die Blöcke können zur Ausführung diverser Funktionen ausgebildet sein, z. B. durch Programmieren eines Prozessors oder Bereitstellen einer geeigneten Steuerschaltung, wobei diverse Blöcke abhängig davon, wie sie ursprünglich ausgebildet waren, rekonfiguriert werden können oder nicht.It should be noted that the system 200 the explanation serves, whereby variations and modifications are possible. The system 200 can not have other functions explicitly described here. It is also noted that even if the system 200 With reference to particular blocks, these blocks are defined for ease of illustration and are not intended to imply a particular physical arrangement of components. In addition, the blocks need not correspond to any specific material components. The blocks may be configured to perform various functions, e.g. By programming a processor or providing a suitable control circuit, wherein various blocks may or may not be reconfigured depending on how they were originally formed.

Beispiele für die offenbarten Techniken lassen sich bei diversen Vorrichtungen realisieren, wobei unter Verwendung einer beliebigen Kombination aus Schaltungstechnik und Software implementierte elektronische Vorrichtungen eingeschlossen sind. Außerdem können Aspekte und/oder Teile des Systems 200 je nach Konstruktionserfordernis mit anderen Teilsystemen kombiniert oder mit deren Hilfe betrieben werden. So können beispielsweise das Eingabeerfassungsmodul 250 und/oder die Speicheranordnung 220 innerhalb des/der Prozessor(en) 210 ausgeführt werden, anstatt als separate Einheit zu fungieren. Außerdem können die in dieser Schrift beschriebenen erfindungsgemäßen Konzepte bei verschiedenen Peripheriegeräten angewandt werden und sind nicht auf Computermäuse, Tastaturen oder Mikrofone beschränkt. Das System 200 lässt sich bei jeder der in den Ausführungsformen explizit, über einen Verweis, oder implizit beschriebenen Peripheriegeräte anwenden (z. B. wenn für einen Durchschnittsfachmann bei einem bestimmten Peripheriegerät ersichtlich anwendbar). Die vorgenannten Ausführungsformen sind nicht als einschränkend zu verstehen, wobei einem Durchschnittsfachmann anhand dieser Offenbarung unzählige Anwendungen und Möglichkeiten ersichtlich sind.Examples of the disclosed techniques may be implemented in various devices including electronic devices implemented using any combination of circuitry and software. Also, aspects and / or parts of the system 200 Depending on the design requirement, combined with other subsystems or operated with their help. For example, the input capture module 250 and / or the memory arrangement 220 within the processor (s) 210 instead of acting as a separate entity. In addition, the inventive concepts described in this document may be applied to various peripheral devices and are not limited to computer mice, keyboards, or microphones. The system 200 can be used with any of the embodiments explicitly, cognitively, or implicitly described in the embodiments (eg, as will be apparent to one of ordinary skill in the art for a particular peripheral device). The foregoing embodiments are not intended to be limiting, and numerous applications and possibilities will be apparent to one of ordinary skill in the art in light of this disclosure.

Beispiele für ein Generieren immersiver Mixed-Realitv-ErlebnisseExamples of Generating Immersive Mixed Reality Experiences

3A - 3F veranschaulichen Beispiele für immersive Mixed-Reality-Erlebnisse (MR-Erlebnisse), die mit Hilfe des Systems 100 von 1A und 1B generiert wurden. Wie aus 3A und 1B ersichtlich kann das HMD 160 ein Kamerabild 170 von der Interaktion eines Benutzers mit beispielsweise einer Tastatur 140 aufnehmen. Anstatt dem Benutzer das Kamerabild 170 zu zeigen, kann das HMD 160 zum Erstellen eines zusammengesetzten Bildes einige der realen Elemente (z. B. die Hand des Benutzers 180) des Kamerabildes 170 mit einem virtuellen Element 302, wie beispielsweise einer virtuellen Tastatur, kombinieren und dem Benutzer das zusammengesetzte Bild zeigen. Um ein immersives Erlebnis zu ermöglichen, kann ein zusammengesetztes Bild auch die gleiche Interaktion wie im Kamerabild 170 darstellen, die Interaktion erfolgt jedoch zwischen der Hand 180 des Benutzers und der virtuellen Tastatur 302. Während am Kamerabild 170 beispielsweise eine mit mehreren Fingern der Hand 180 ausgeführte Tippaktion dargestellt sein kann, kann im zusammengesetzten Bild die gleiche von denselben Fingern der Hand 180 ausgeführte Tippaktion dargestellt sein, wobei die Tippaktion jedoch anstatt auf der Tastatur 140 auf der virtuellen Tastatur 302 ausgeführt wird. Auch wenn in dieser Offenbarung diverse Beispiele für Interaktionen zwischen einer Hand eines Benutzers und einer Tastatur beschrieben sind, sind diese Beispiele nicht einschränkend auszulegen und die offenbarten Techniken lassen sich auf Interaktionen eines Benutzers, bei denen andere Körperteilen (z. B. Finger, Arme, Beine, Füße usw.) und anderen nicht auf Peripheriegeräte beschränkte Arten realer Objekte involviert sind, einsetzen. 3A - 3F illustrate examples of mixed-reality immersive experiences (MR experiences) using the system 100 from 1A and 1B were generated. How out 3A and 1B Obviously, the HMD 160 a camera picture 170 from the interaction of a user with, for example, a keyboard 140 take up. Instead of the user the camera image 170 to show the HMD 160 to create a composite image, some of the real elements (for example, the user's hand 180 ) of the camera image 170 with a virtual element 302 , such as a virtual keyboard, combine and show the composite image to the user. To create an immersive experience, a composite image can also have the same interaction as in the camera image 170 However, the interaction takes place between the hands 180 the user and the virtual keyboard 302 , While on the camera picture 170 for example one with several fingers of the hand 180 In the composite image, the same typing action may be the same in the composite image 180 but the typing action is instead of typing on the keyboard 140 on the virtual keyboard 302 is performed. While various examples of interactions between a user's hand and a keyboard are described in this disclosure, these examples are not intended to be limiting, and the techniques disclosed may be based on interactions of a user involving other body parts (eg, fingers, arms, etc.). Legs, feet, etc.) and other non-peripheral types of real objects involved.

3A zeigt auch verschiedene Möglichkeiten zum Erzeugen des zusammengesetzten Bildes für die Generierung eines immersive MR-Erlebnisses. Wie aus 3A ersichtlich kann ein zusammengesetztes Bild 310 erzeugt werden, indem in das Kamerabild 170 an die Stelle der Tastatur 140 eine virtuelle Tastatur 312 eingesetzt wird, sodass die Hand 180 des Benutzers als auf die virtuelle Tastatur 312 anstatt auf die Tastatur 140 tippend dargestellt wird. Im zusammengesetzten Bild 310 sind alle anderen realen Elemente, darunter z. B. das Display 120, die Maus 130, die Benutzerhand 180, usw., weiterhin enthalten. Außerdem kann ein zusammengesetztes Bild 320 auch erzeugt werden, indem Bilder der Benutzerhand 180 aus dem Kamerabild 170 extrahiert und in ein virtuelles Bild eingefügt werden, das eine Reihe von virtuellen Elementen darstellt, darunter beispielsweise eine virtuelle Blume 322 und virtuelle Klaviertasten 324. Die Benutzerhand 180 kann an einer Bildposition des zusammengesetzten Bildes 320 platziert werden, die der Bildposition der Tastatur 140 im Kamerabild 170 entspricht. 3A also shows various ways of generating the composite image for generating an immersive MR experience. How out 3A You can see a composite picture 310 be generated by the camera image 170 in place of the keyboard 140 a virtual keyboard 312 is used, so the hand 180 the user as on the virtual keyboard 312 instead of the keyboard 140 is shown typing. In the composite picture 310 are all other real elements, including z. B. the display 120 , the mouse 130 , the user hand 180 , etc., continue to be included. In addition, a composite picture 320 also be generated by taking pictures of the user's hand 180 from the camera image 170 extracted and inserted into a virtual image representing a series of virtual elements, including, for example, a virtual flower 322 and virtual piano keys 324 , The user hand 180 may be at an image position of the composite image 320 be placed, the image position of the keyboard 140 in the camera picture 170 equivalent.

Zur Verbesserung des immersiven interaktiven Erlebnisses kann das Erzeugen der zusammengesetzten Bilder 310 und 320 auch an eine Position und Orientierung des HMD 160 angepasst werden, wodurch ein Effekt erzeugt wird, bei dem die realen Elemente und die virtuellen Elemente von einer anderen Position aus und/oder unter einem anderen Winkel betrachtet werden. Wenn der Benutzer beispielsweise seinen Kopf nach rechts dreht/bewegt (kenntlich gemacht mit dem Zeichen „A“), kann sich der Inhalt der Anzeige im HMD 160 nach links verschieben (kenntlich gemacht mit dem Zeichen „B“). Bei dem in 3A dargestellten zusammengesetzten Bild 310 verschieben sich sowohl die realen Elemente (z.B. Anzeige 120, Maus 130, Benutzerhand 180, usw.) als auch die virtuellen Elemente (z. B. virtuelle Tastatur 312) wie durch die Bezeichnung „B“ angezeigt nach links. Außerdem verschieben sich im zusammengesetzten Bild 320 sowohl die realen Elemente (z. B. Benutzerhand 180) als auch die virtuellen Elemente (z. B. virtuelle Klaviertasten 312 und virtuelle Blume 322) wie durch die Bezeichnung „B“ angezeigt nach links.To enhance the immersive interactive experience, generating the composite images 310 and 320 also to a position and orientation of the HMD 160 whereby an effect is generated in which the real elements and the virtual elements are viewed from another position and / or at a different angle. For example, if the user rotates his head to the right (indicated by the character "A"), the user may Content of the ad in the HMD 160 move to the left (indicated by the sign "B"). At the in 3A illustrated composite image 310 Both the real elements (eg display 120 , Mouse 130 , User hand 180 , etc.) as well as the virtual elements (eg virtual keyboard 312 ) as indicated by the label "B" to the left. In addition, moving in the composite image 320 both the real elements (eg user hand 180 ) as well as the virtual elements (eg virtual piano keys 312 and virtual flower 322 ) as indicated by the label "B" to the left.

Das HMD 160 kann die Verschiebung des Inhalts der Anzeige in den zusammengesetzten Bildern 310 und 320 auf Basis einer Nachverfolgung einer Position eines Referenzobjekts relativ zum HMD 160 vornehmen. Bei dem Referenzobjekt kann es sich um ein Peripheriegerät wie beispielsweise die Tastatur 140 handeln. 3C zeigt Beispiele für den Nachverfolgungsprozess. Wie im linken Teil von 3C dargestellt ist die Visierlinie einer Kamera des HMD 160 (dargestellt durch Pfeil 330) auf ein Referenzobjekt 340 ausgerichtet wobei sich eine Nachverfolgungsposition 345 des Referenzobjekts 340 in der Mitte des Kamerabildes 170 befindet. Wie unten beschrieben, kann die Nachverfolgungsposition 345 für die Bestimmung verwendet werden, wo in einem zusammengesetzten Bild ein virtuelles Element (z.B. die virtuelle Tastatur 312) bzw. ein reales Element (z.B. die Benutzerhand 180) angeordnet werden sollen. Durch die Nachverfolgungsposition kann das System das Referenzobjekt 340 relativ zum HMD 160 verfolgen. Außerdem entsteht an der Bildposition 350 im Kamerabild 170 auch ein Abbild des Referenzobjekts 340, wobei die Bildposition 350 und die Nachverfolgungsposition 345 identisch sind. Bei einigen Beispielen kann die Bildposition 350 beispielsweise auf Basis eines Segmentierungsprozesses zum Identifizieren und Extrahieren von Pixeln des Referenzobjekts 340 aus dem Kamerabild 170 bestimmt werden.The HMD 160 may be the shift of the content of the ad in the composite images 310 and 320 based on tracking a position of a reference object relative to the HMD 160 make. The reference object may be a peripheral such as the keyboard 140 act. 3C shows examples of the tracking process. As in the left part of 3C shown is the sight line of a camera of the HMD 160 (represented by arrow 330 ) to a reference object 340 Aligned with a tracking position 345 of the reference object 340 in the middle of the camera image 170 located. As described below, the tracking position 345 be used for determining where in a composite image a virtual element (eg the virtual keyboard 312 ) or a real element (eg the user hand 180 ) are to be arranged. The tracking position allows the system to reference the object 340 relative to the HMD 160 follow. In addition, arises at the image position 350 in the camera picture 170 also an image of the reference object 340 , where the picture position 350 and the tracking position 345 are identical. In some examples, the image position 350 for example, based on a segmentation process for identifying and extracting pixels of the reference object 340 from the camera image 170 be determined.

Wie nachfolgend beschrieben können die Positionskoordinaten des HMD 160 und des Referenzobjekts 340 im realen Raum 360 (bezogen auf das x-y-z-Koordinatensystem) als auch die Orientierung des HMD 160 im realen Raum 360 mit Hilfe diverser Positions- und Orientierungssensortechniken bestimmt werden. Wie im rechten Teil von 3C dargestellt, ist die Visierlinie der Kamera des HMD 160 bei einer Drehung des HMD 160 im Uhrzeigersinn nach rechts unter einem Winkel α zum Referenzobjekt 340 angeordnet. Bei einem als klein angenommenen Winkel α kann das HMD 160 den Abstand zwischen dem HMD 160 und dem Objekt 340 (mit „d“ bezeichnet) auf Basis der Positionskoordinaten des HMD 160 und des Referenzobjekts 340 bestimmen und eine vermutliche Verschiebung (mit „s“ bezeichnet) der Nachverfolgungsposition 345 auf Basis der folgenden Gleichung berechnen: Verschiebung der Nachverfolgungsposition 345 = d × sin ( α )

Figure DE102019107103A1_0001
As described below, the position coordinates of the HMD 160 and the reference object 340 in real space 360 (relative to the xyz coordinate system) as well as the orientation of the HMD 160 in real space 360 determined using various position and orientation sensing techniques. As in the right part of 3C is the line of sight of the camera of the HMD 160 with a rotation of the HMD 160 clockwise to the right at an angle α to the reference object 340 arranged. At an angle α assumed to be small, the HMD 160 the distance between the HMD 160 and the object 340 (denoted by "d") based on the position coordinates of the HMD 160 and the reference object 340 and a probable shift (labeled "s") of the tracking position 345 calculate on the basis of the following equation: Postpurchase position shift 345 = d × sin ( α )
Figure DE102019107103A1_0001

Außerdem kann die Kamera des HMD 160 auch ein aktualisiertes Kamerabild 170 aufnehmen, wenn sich das HMD 160 in der neuen Orientierung befindet, wobei die Bildposition 350 des Referenzobjekts 340 den gleichen Verschiebungsgrad aufweisen kann wie die Nachverfolgungsposition 345, sodass die Nachverfolgungsposition 345 und die Bildposition 350 zueinander ausgerichtet bleiben.In addition, the camera of the HMD 160 also an updated camera picture 170 record when the HMD 160 located in the new orientation, taking the picture position 350 of the reference object 340 may have the same degree of shift as the tracking position 345 so the tracking position 345 and the picture position 350 stay aligned with each other.

Wie oben beschrieben, kann die Nachverfolgungsposition 345 für eine Bestimmung verwendet werden, wo ein virtuelles Element (z. B. eine virtuelle Tastatur 312) oder ein reales Element (z.B. eine Benutzerhand 180) in einem zusammengesetzten Bild angeordnet werden sollen. In 3D sind Beispiele für eine Anordnung virtueller und realer Elementen beim Erstellen zusammengesetzter Bilder veranschaulicht. Wie im linken Teil von 3D dargestellt, kann die Nachverfolgungsposition 345 der Tastatur 140 im Kamerabild 170 identifiziert werden, wobei das zusammengesetzte Bild 310 durch Ersetzen der Pixel der sich an der Nachverfolgungsposition 345 befindenden Tastatur 140 mit Pixeln der virtuellen Tastatur 312 erstellt werden kann. Während die Nachverfolgungsposition 345 infolge der Drehung des HMD 160 nach links verschoben wurde (angegeben durch „B“), können im Kamerabild 170 auch alle anderen realen Elemente (z.B. Anzeige 120, Maus 130, Tastatur 140, Benutzerhand 180, usw.) nach links verschoben sein, wenn das Kamerabild 170 aufgenommen wird, wenn sich das HMD 160 nach der Drehung in der neuen Orientierung relativ zur Tastatur 140 befindet. Außerdem kann die Benutzerhand 180, wie im rechten Teil von 3D dargestellt ist, an der Nachverfolgungsposition 345 des Kamerabildes 170 auf Basis der Annahme extrahiert werden, dass sich die Benutzerhand 180 an derselben Stelle wie die Tastatur 140 befindet. Zum Erstellen eines zusammengesetzten Bildes 320 kann das extrahierte Bild der Hand in ein virtuelles Bild eingesetzt werden, bei dem die virtuellen Elemente (z. B. virtuelle Klaviertasten 324, virtuelle Blume 322, usw.) der Verschiebung der Nachverfolgungsposition 345 entsprechend nach links verschoben sind. In beiden Fällen wird durch das Verschieben ein virtuelles Element einer Interaktion (z. B. virtuelle Tastatur 312, virtuelle Klaviertasten 324, usw.) an einem realen Element der Interaktion (z. B. Benutzerhand 180) ausgerichtet, wodurch eine präzise Wiedergabe der Interaktion ermöglicht und das immersive interaktive Erlebnis verbessert wird.As described above, the tracking position 345 be used for a determination where a virtual element (eg a virtual keyboard 312 ) or a real element (eg a user hand 180 ) in a composite image. In 3D Here are some examples of virtual and real element layout when creating composite images. As in the left part of 3D shown, the tracking position 345 the keyboard 140 in the camera picture 170 be identified, the composite image 310 by replacing the pixels located at the tracking position 345 keyboard 140 with pixels of the virtual keyboard 312 can be created. While the tracking position 345 due to the rotation of the HMD 160 moved to the left (indicated by "B"), can be viewed in the camera image 170 also all other real elements (eg display 120 , Mouse 130 , Keyboard 140 , User hand 180 , etc.) are shifted to the left when the camera image 170 is recorded when the HMD 160 after the rotation in the new orientation relative to the keyboard 140 located. In addition, the user's hand 180 as in the right part of 3D is shown at the tracking position 345 of the camera image 170 be extracted based on the assumption that the user's hand 180 in the same place as the keyboard 140 located. To create a composite image 320 For example, the extracted image of the hand can be inserted into a virtual image in which the virtual elements (e.g., virtual piano keys 324 , virtual flower 322 , etc.) of the shift of the tracking position 345 are shifted to the left accordingly. In both cases, moving is a virtual element of an interaction (such as a virtual keyboard 312 , virtual piano keys 324 , etc.) on a real element of the interaction (eg user hand 180 ), allowing for accurate interaction and enhancing the immersive interactive experience.

Wie oben beschrieben hängt, damit sich die Bewegung des HMD 160 widerspiegelt, in einem zusammengesetzten Bild die Ausrichtung des virtuellen Elements der Interaktion am realen Element der Interaktion während einer Bewegung des HMD 160 davon ab, dass sich auch der Inhalt des Kamerabildes 170 (aus dem das reale Element extrahiert wird oder in das das virtuelle Element eingesetzt wird) verschiebt. Dies ist jedoch nicht unbedingt der Fall. Aufgrund von Verarbeitungsverzögerungen (z. B. Kamerabildaufbauverzögerung, Systemverarbeitungsverzögerung, usw.) kann es vorkommen, dass das für die Erzeugung von zusammengesetzten Bildern verwendete Kamerabild 170 nicht die aktuelle Orientierung/Position des HMD 160 relativ zum Referenzobjekt 340 widerspiegelt. 3E und 3F veranschaulichen den Effekt der auftritt, wenn beim Erstellen eines zusammengesetzten Bildes ein veraltetes Kamerabild 170 verwendet wird. Wie in 3E dargestellt, kann das HMD 160 nach einer Drehung um den Winkel α die Nachverfolgungsposition 345 des Referenzobjekts 340 wie oben beschrieben auf Basis der Positionskoordinaten des HMD 160 und des Referenzobjekts 340 sowie des erfassten Drehwinkels α verschieben. Aufgrund der Verarbeitungsverzögerung bleibt die tatsächliche Bildposition 350 des Referenzobjekts 340 (z. B. Tastatur 140) im Kamerabild 170 jedoch dieselbe wie vor der Drehung. Dadurch ist die Nachverfolgungsposition 345 nicht mehr an der Bildposition 345 ausgerichtet.As described above, in order for the movement of the HMD to hang 160 reflects, in one composite image the alignment of the virtual element of interaction at the real element of interaction during a movement of the HMD 160 from that also the contents of the camera picture 170 (from which the real element is extracted or into which the virtual element is inserted). However, this is not necessarily the case. Due to processing delays (e.g., camera image buildup delay, system processing delay, etc.), it may happen that the camera image used to create composite images 170 not the current orientation / position of the HMD 160 relative to the reference object 340 reflects. 3E and 3F illustrate the effect that occurs when creating a composite image is an obsolete camera image 170 is used. As in 3E shown, the HMD 160 after being rotated by the angle α, the tracking position 345 of the reference object 340 as described above, based on the position coordinates of the HMD 160 and the reference object 340 and the detected rotational angle α move. Due to the processing delay, the actual image position remains 350 of the reference object 340 (eg keyboard 140 ) in the camera image 170 but the same as before the turn. This is the tracking position 345 no longer at the picture position 345 aligned.

3F veranschaulicht den Effekt eines Versatzes zwischen Nachverfolgungsposition 345 und Bildposition 345 beim Erstellen der zusammengesetzten Bilder 310 und 320. Wie im linken Teil von 3F dargestellt, wurde zwar die Nachverfolgungsposition 345 des Referenzobjekts 340 nach links verschoben, das Kamerabild 170 jedoch nicht aktualisiert, sodass die realen Elemente des Kamerabildes 170 nicht nach links verschoben sind. Wenn die virtuelle Tastatur 312 an der verschobenen Nachverfolgungsposition 345 eingefügt wird, ist die virtuelle Tastatur 312 zur Benutzerhand 180 versetzt. Außerdem kann im Kamerabild 170 ein Teil des Bildes der Tastatur 140 stehen bleiben und nicht durch die virtuelle Tastatur 312 ersetzt werden. Die Darstellung der Tastatur im zusammengesetzten Bild 310 als auch die relative Position der Hand 180 des Benutzers relativ zur Tastatur im zusammengesetzten Bild kann für den Benutzer sehr verwirrend sein und das immersive interaktive Erlebnis stark beeinträchtigen. Außerdem werden, wie im rechten Teil von 3F dargestellt ist, Pixel aus dem Kamerabild 170 an der versetzten Nachverfolgungsposition 345 in Erwartung dessen extrahiert, dass die extrahierten Pixel die Hände 180 des Benutzers darstellen. Die virtuellen Elemente im virtuellen Bild (z. B. virtuelle Blume 322, virtuelle Klaviertasten 324, usw.) werden auf Basis der Nachverfolgungsposition 345 ebenfalls nach links verschoben. Da das Kamerabild 170 jedoch nicht aktualisiert wird, können die extrahierten Pixel die Hand 180 des Benutzers nur teilweise (oder gar nicht) sowie einige andere Artefakte enthalten. Das Einfügen der extrahierten Pixel in das zusammengesetzte Bild 320 erzeugt für den Benutzer ferner verwirrende Darstellungseffekte und beeinträchtigt das immersive interaktive Erlebnis erheblich. 3F illustrates the effect of an offset between tracking position 345 and picture position 345 when creating the composite images 310 and 320 , As in the left part of 3F Although this was the tracking position 345 of the reference object 340 moved to the left, the camera image 170 but not updated, so the real elements of the camera image 170 not moved to the left. If the virtual keyboard 312 at the postponed tracking position 345 is inserted, is the virtual keyboard 312 to the user hand 180 added. In addition, in the camera image 170 a part of the image of the keyboard 140 stand still and not through the virtual keyboard 312 be replaced. The representation of the keyboard in the composite image 310 as well as the relative position of the hand 180 the user's relative to the keyboard in the composite image can be very confusing to the user and severely affect the immersive interactive experience. Besides, as in the right part of 3F is shown, pixels from the camera image 170 at the offset tracking position 345 in anticipation of that extracts the extracted pixels hands 180 represent the user. The virtual elements in the virtual image (eg virtual flower 322 , virtual piano keys 324 , etc.) are based on the tracking position 345 also moved to the left. Because the camera image 170 however, if not updated, the extracted pixels may be the hand 180 of the user only partially (or not at all) as well as some other artifacts. Inserting the extracted pixels into the composite image 320 It also creates confusing display effects for the user and significantly degrades the immersive interactive experience.

Ausführungsformen für die BildverzögerungskompensationEmbodiments for image delay compensation

4A - 4D veranschaulichen Beispiele eines Bildverzögerungskompensationsschemas zum Minimieren des durch die Verarbeitungsverzögerung des Kamerabilds 170 bedingten Versatzes zwischen der Nachverfolgungsposition 345 und der Bildposition 350. Wie im linken Teil von 4A dargestellt kann der Inhalt des Kamerabildes 170, der ein Bild des Referenzobjekts 340 an der Bildposition 350 einschließt, relativ zur Nachverfolgungsposition 345 verschoben werden, sodass die Bildposition 350 und die Nachverfolgungsposition 345 ausgerichtet sein können. Durch das Verschieben des Inhalts des Kamerabildes 170 wird ein ähnlicher Effekt erzielt wie beim Aufnehmen eines aktualisierten Kamerabildes 170 durch das HMD 160 an der neuen Orientierung relativ zum Referenzobjekt 340 nach einer Drehbewegung. 4A - 4D illustrate examples of an image delay compensation scheme for minimizing the delay caused by the processing delay of the camera image 170 conditional offset between the tracking position 345 and the picture position 350 , As in the left part of 4A the content of the camera image can be displayed 170 , which is a picture of the reference object 340 at the picture position 350 includes, relative to the tracking position 345 be moved so that the picture position 350 and the tracking position 345 can be aligned. By moving the contents of the camera image 170 the effect is similar to taking an updated camera image 170 through the HMD 160 at the new orientation relative to the reference object 340 after a rotation.

Die Verschiebungsstrecke des Kamerabildes 170 kann auf Basis der Positionskoordinaten von Referenzobjekt 340 und HMD 160 im realen Raum 360 sowie dem Drehwinkel α bestimmt werden. Auf Basis der Positionskoordinaten des Referenzobjekts 340 und des HMD 160 kann ein erster Ortsvektor V1 vom HMD 160 zum Referenzobjekt 340 ermittelt werden. Zudem kann ein vom HMD 160 ausgehender zweiter Ortsvektor V2, der der nicht korrigierten Bildposition 350 des Referenzobjekts 340 entspricht, durch Drehen von V1 um den Drehwinkel α ermittelt werden. Die nicht korrigierte Bildposition 350 kann auf Basis von V2 und der Positionskoordinaten des HMD 160 bestimmt werden. Wenn die Nachverfolgungsposition 345 mit „P2“ und die nicht korrigierte Bildposition 350 mit „P3“ bezeichnet wird, kann ein Verschiebungsvektor Vs für das Kamerabild 170 auf Basis der folgenden Gleichung bestimmt werden: V S = V e k t o r ( P 3, P 2 )

Figure DE102019107103A1_0002
The shift distance of the camera image 170 can based on the position coordinates of reference object 340 and HMD 160 in real space 360 and the rotation angle α are determined. Based on the position coordinates of the reference object 340 and the HMD 160 can be a first location vector V1 from the HMD 160 to the reference object 340 be determined. In addition, one from the HMD 160 outgoing second location vector V2 , that of the uncorrected image position 350 of the reference object 340 corresponds, by turning of V1 be determined by the rotation angle α. The uncorrected image position 350 can based on V2 and the position coordinates of the HMD 160 be determined. If the tracking position 345 With " P2 "And the uncorrected image position 350 with "P3", a shift vector Vs for the camera image 170 be determined on the basis of the following equation: V S = V e k t O r ( P 3, P 2 )
Figure DE102019107103A1_0002

In Gleichung 2 kann der Verschiebungsvektor Vs als Vektor von der nicht korrigierten Bildposition 350 zur Nachverfolgungsposition 345 bestimmt werden. Die Richtung des Verschiebungsvektors Vs kann die Richtung der Verschiebung angeben. Es wird darauf hingewiesen, dass, auch wenn in 4A eine senkrecht zur z-Achse erfolgende Verschiebung dargestellt ist (die einem Drehen des Kopfes des Benutzers des HMD 160 entsprechen kann), die Verschiebung auch senkrecht zur x-Achse oder zur y-Achse erfolgen kann, die beispielsweise einer Nickbewegung des Benutzers des HMD 160 entspricht. Außerdem kann die Größe des Verschiebungsvektors Vs die Verschiebestrecke angeben. Die Strecke kann auf das Koordinatensystem des realen Raums 360 bezogen berechnet und auf Pixelabstände reduziert werden. Die Skalierung kann beispielsweise auf einem Matrixausdruck basieren, der Weltkoordinaten auf Anzeigekoordinaten projiziert.In Equation 2, the displacement vector Vs may be a vector of the uncorrected image position 350 to the tracking position 345 be determined. The direction of the shift vector Vs may indicate the direction of the shift. It should be noted that, even if in 4A a displacement perpendicular to the z-axis is shown (which is a turning of the head of the user of the HMD 160 can correspond), the displacement can also be perpendicular to the x-axis or the y-axis, for example, a pitching motion of the user of the HMD 160 equivalent. In addition, the size of the shift vector Vs may indicate the shift distance. The route can be to the coordinate system of real space 360 calculated and reduced to pixel distances. For example, scaling may be based on a matrix expression that projects world coordinates onto display coordinates.

Es gibt verschiedene Möglichkeiten zur Bestimmung der Positionen des HMD 160 und des Referenzobjekts 340 (z. B. Tastatur 140). Beispielsweise können am Referenzobjekt 340 ein oder mehrere Sensorkapseln angebracht sein, um gerichtete Lichtstrahlen von Lichtsendern (z. B. Leuchttürmen) zu erfassen, die an verschiedenen vorgegebenen Positionen im realen Raum 360 angeordnet sind. Die Sensorkapseln können Entfernungsmessungen durchführen, die beispielsweise auf der Laufzeit des gerichteten Lichts basieren. Die Sensorkapseln können die Ergebnisse der Entfernungsmessungen an das HMD 160 übertragen. Das HMD 160 kann die Position des Referenzobjekts 340 auf Basis der Messergebnisse sowie der bekannten Positionen der Leuchttürme und der bekannten Richtung der von den Leuchttürmen ausgesandten Lichtstrahlen bestimmen. Bei einem anderen Beispiel kann das Referenzobjekt 340 gerichtete Lichtstrahlen aussendende Lichtemitter aufweisen, die von mehreren an verschiedenen vorgegebenen Positionen im realen Raum 360 angeordneten Lichtsensoren erfasst werden können. Die Lichtsensoren können auch Entfernungsmessungen durchführen und die Ergebnisse der Entfernungsmessungen an das HMD 160 übertragen. Das HMD 160 kann die Position des Referenzobjekts 340 auf Basis der Entfernungsmessungen sowie der bekannten Richtungen der Lichtstrahlen und Positionen der Lichtsensoren bestimmen. Ähnliche oder andere Techniken (z. B. simultane Positionsbestimmung und Kartenerstellung, Wi-Fi-basierte Positionierung, usw.) können ebenfalls zur Bestimmung der Position des HMD 160 im realen Raum 360 verwendet werden.There are several ways to determine the positions of the HMD 160 and the reference object 340 (eg keyboard 140 ). For example, at the reference object 340 one or more sensor capsules may be mounted to detect directional light rays from light emitters (eg, lighthouses) placed at various predetermined positions in real space 360 are arranged. The sensor capsules can perform distance measurements based, for example, on the transit time of the directional light. The sensor capsules can read the results of the distance measurements to the HMD 160 transfer. The HMD 160 can change the position of the reference object 340 determine on the basis of the measurement results as well as the known positions of the lighthouses and the known direction of the light beams emitted by the lighthouses. In another example, the reference object 340 Directed light rays have emitting light emitter, of several at different predetermined positions in real space 360 arranged light sensors can be detected. The light sensors can also perform range measurements and the results of range measurements to the HMD 160 transfer. The HMD 160 can change the position of the reference object 340 based on the distance measurements and the known directions of the light rays and determine positions of the light sensors. Similar or other techniques (eg, simultaneous positioning and mapping, Wi-Fi based positioning, etc.) may also be used to determine the position of the HMD 160 in real space 360 be used.

Außer auf die Positionen von HMD 160 und Referenzobjekt 340 stützt sich die Bestimmung des Verschiebungsvektors Vs auch auf den Drehwinkel α. Der Drehwinkel α kann dem Winkel entsprechen, um den das HMD 160 zwischen einem ersten Zeitpunkt, an dem das Kamerabild 170 aufgenommen wird, und einem zweiten Zeitpunkt, an dem ein dem Benutzer zu zeigendes zusammengesetztes Bild erstellt werden soll, gedreht wird. Die Zeitspanne zwischen dem ersten und dem zweiten Zeitpunkt kann der oben genannten Verarbeitungsverzögerung entsprechen. Der Drehwinkel α kann als Produkt zwischen einer Winkelgeschwindigkeit von HMD 160 und der Zeitdauer vom ersten zum zweiten Zeitpunkt bestimmt werden. Die Winkelgeschwindigkeit kann z. B. mit einer Trägheitsmesseinheit (IMU) des HMD 160 gemessen werden.Except for the positions of HMD 160 and reference object 340 The determination of the displacement vector Vs is also based on the rotation angle α. The angle of rotation α can correspond to the angle by which the HMD 160 between a first time at which the camera image 170 and a second time point at which a composite image to be displayed to the user is to be rotated. The time period between the first and the second time may correspond to the above-mentioned processing delay. The rotation angle α can be a product between an angular velocity of HMD 160 and the time from the first to the second time. The angular velocity can z. B. with an inertial measurement unit (IMU) of the HMD 160 be measured.

Außerdem kann die Zeitspanne zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt auf verschiedene Weise bestimmt werden. Wie beispielsweise aus 4B ersichtlich kann als Teil eines Kalibrierungsprozesses die Kamera des HMD zum Aufnehmen eines Bildes eines Objekts, das auf den ersten Zeitpunkt (in 4 als T0 bezeichnet) schließen lässt, verwendet werden. Das Objekt kann beispielsweise eine Uhr, die den ersten Zeitpunkt anzeigt, eine Anzeigevorrichtung, die ein sich mit der Zeit änderndes Bild (z. B. einen Strichcode) anzeigt, das auf den ersten Zeitpunkt schließen lässt, ein sich mit der Zeit änderndes Muster, das von einem Peripheriegerät (z. B. einer Tastatur, einer Maus usw.) ausgegeben wird und auf den ersten Zeitpunkt schließen lässt, usw. aufweisen. Die Zeitangaben der Uhr, der Anzeigevorrichtung, des Peripheriegeräts und des HMD können alle mit einer globalen Uhr synchronisiert werden. Wenn das Bild an einem zweiten Zeitpunkt an einer Anzeigevorrichtung angezeigt wird (in 4C als T1 bezeichnet), wird der zweite Zeitpunkt aufgezeichnet. Es kann eine die Verarbeitungsverzögerung repräsentierende Differenz zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt bestimmt werden. Das HMD 160 kann die Verarbeitungsverzögerungsinformationen intern speichern und die Verarbeitungsverzögerungsinformationen zur Berechnung des Drehwinkels α für die Berechnung des Verschiebungsvektors Vs verwenden, wenn nach dem Aufnehmen eines Kamerabilds 170 eine Drehbewegung des HMD 160 festgestellt wird. Wenn nach der Aufnahme des Kamerabildes 170 keine Drehbewegung festgestellt wird, kann das HMD 160 bestimmen, dass beim Erstellen eines zusammengesetzten Bildes keine Verschiebung des Kamerabildes 170 erforderlich ist.In addition, the time period between the first time and the second time can be determined in various ways. Like, for example 4B As can be seen, as part of a calibration process, the camera of the HMD is capable of capturing an image of an object that is at the first time (in 4 when T0 denotes) can be used. The object may include, for example, a clock indicating the first time, a display device displaying a time-varying image (eg, a bar code) indicative of the first time, a time-varying pattern, which is output from a peripheral device (eg, a keyboard, a mouse, etc.) and has the first time closed, etc.). The clock, display, peripheral and HMD timers can all be synchronized with a global clock. When the image is displayed on a display device at a second time (in FIG 4C when T1 denotes), the second time is recorded. A difference representing the processing delay between the first time and the second time can be determined. The HMD 160 may internally store the processing delay information and use the processing delay information for calculating the rotation angle α for the calculation of the displacement vector Vs when taking a camera image after recording 170 a rotational movement of the HMD 160 is detected. If after taking the camera picture 170 no rotational movement is detected, the HMD 160 determine that when composing a composite image, there is no displacement of the camera image 170 is required.

Bei einigen Beispielen kann die Verschiebung des Kamerabildes 170 an einem Bildpufferspeicher erfolgen, in dem das Kamerabild 170 gespeichert ist. 4C und 4D veranschaulichen Beispiele für Verschiebevorgänge an einem Bildpufferspeicher 402. Wie in 4C dargestellt, kann der Bildpufferspeicher 402 Bilddaten des Kamerabildes 170 speichern. Der Bildpufferspeicher 402 kann in einen Anzeigebereich 404 und einen Nichtanzeigebereich 406 unterteilt sein. Ein im Anzeigebereich 404 gespeicherter erster Bestandteil des Kamerabildes 170 kann als zweites Bild 410 für die Erstellung eines zusammengesetzten Bildes und/oder für eine Anzeige verfügbar gehalten werden, während ein im Nichtanzeigebereich 406 gespeicherter zweiter Abschnitt des Kamerabildes 170 nicht zum Erstellen eines zusammengesetzten Bildes oder zur Anzeige verfügbar ist. Der Anzeigebereich 404 und der Nichtanzeigebereich 406 können sich auf verschiedene Adressgruppen oder Pufferspeicherplätze im Bildpufferspeicher 402 beziehen.In some examples, the shift of the camera image 170 take place on a frame buffer in which the camera image 170 is stored. 4C and 4D illustrate examples of moves to a frame buffer 402 , As in 4C shown, the image buffer memory 402 Image data of the camera image 170 to save. The image buffer 402 can in a display area 404 and a non-display area 406 be divided. On in the display area 404 stored first part of the camera image 170 can as second picture 410 be kept available for the creation of a composite image and / or for an advertisement, while one in the non-display area 406 stored second section of the camera image 170 not available for creating a composite image or for display. The display area 404 and the non-display area 406 can affect different address groups or buffer locations in the frame buffer 402 Respectively.

Bei einigen Beispielen können der Anzeigebereich und der Nichtanzeigebereich des Bildpufferspeichers 402 verschoben werden, um den Effekt einer Verschiebung des Inhalts des Kamerabildes 170 innerhalb des zweiten Bildes 410 zu erzeugen. Wie beispielsweise aus 4D ersichtlich, kann, um den Effekt einer Verschiebung von Anzeige 120, Maus 130, Tastatur 140 und Benutzerhand 180 im zweiten Bild 410 nach links (mit der Bezeichnung „B“ gekennzeichnet) zu erzeugen, der Anzeigebereich 404 im Bildpufferspeicher 402 zum Extrahieren des zweiten Bildes 410 nach rechts (mit der Bezeichnung „A“ gekennzeichnet) verschoben werden. Das zweite Bild 410 kann dann für die Erstellung von zusammengesetzten Bildern zur Verfügung gestellt werden. Im Beispiel von 4D richtet sich die verschobene Nachverfolgungsposition 345 (auf Basis der Bewegung des HMD 160) an der korrigierten Bildposition 350 der Tastatur 140 aus. Das HMD 160 kann dann zum Erzeugen eines zusammengesetzten Bildes 310 die Pixel der Tastatur 140 des zweiten Bildes 410 an der verschobenen Nachverfolgungsposition 345 durch die Pixel der virtuellen Tastatur 312 ersetzen. In gleicher Weise können zum Erzeugen eines zusammengesetzten Bildes 320 Pixel der Benutzerhand 180 auch an der verschobenen Nachverfolgungsposition 345 des zweiten Bildes 410 extrahiert und in ein virtuelles Bild (das auch entsprechend der Bewegung des HMD 160 verschoben wird) eingefügt werden. Bei einigen Beispielen können die Positionen von Anzeigebereich 404 und Nichtanzeigebereich 406 auch statisch sein, wobei das Kamerabild 170 zum Erzeugen des Verschiebungseffekts innerhalb des Bildpufferspeichers 402 relativ zum statischen Anzeigebereich und zum Nichtanzeigebereich verschoben werden kann. In some examples, the display area and the non-display area of the frame buffer may 402 be moved to the effect of shifting the content of the camera image 170 within the second picture 410 to create. Like, for example 4D can be seen, to the effect of a shift of display 120 , Mouse 130 , Keyboard 140 and user hand 180 In the second picture 410 to the left (labeled " B "Marked), the display area 404 in the frame buffer 402 to extract the second image 410 to the right (labeled " A "Marked). The second picture 410 can then be made available for creating composite images. In the example of 4D depends on the postponed tracking position 345 (based on the movement of the HMD 160 ) at the corrected image position 350 the keyboard 140 out. The HMD 160 can then generate a composite image 310 the pixels of the keyboard 140 of the second picture 410 at the postponed tracking position 345 through the pixels of the virtual keyboard 312 replace. Likewise, to create a composite image 320 Pixel of the user hand 180 also at the postponed tracking position 345 of the second picture 410 extracted and into a virtual image (which also corresponds to the movement of the HMD 160 is moved). In some examples, the positions of display area 404 and non-display area 406 also be static, with the camera image 170 for generating the displacement effect within the frame buffer 402 relative to the static display area and the non-display area.

Ausführungsformen für eine Handsegmentierung auf Basis der AktivitätsverteilungEmbodiments for hand segmentation based on activity distribution

Wie oben beschrieben, kann das Erstellen eines zusammengesetzten Bildes für das Schaffen eines immersiven AR/MR-Erlebnisses darin bestehen, Hautpixel eines Benutzers von den Pixeln eines Hintergrundobjekts (z. B. einer Tastatur, einer Maus oder anderer Peripheriegeräte) zu unterscheiden. Die Hautpixel können Teil der Hand des Benutzers, Teil der Hand oder anderer Körperteile sein, die mit dem Hintergrundobjekt interagieren. Wie aus einem Rückblick auf 3D, 3F und 4D ersichtlich werden beim Erzeugen eines zusammengesetzten Bildes 310 Pixel der Tastatur 140 identifiziert und durch Pixel der virtuellen Tastatur 312 ersetzt. Außerdem können auch Pixel der Hand 180 extrahiert und in das zusammengesetzte Bild 310 eingefügt werden.As described above, creating a composite image for creating an immersive AR / MR experience may be to distinguish skin pixels of a user from the pixels of a background object (eg, a keyboard, mouse, or other peripheral device). The skin pixels may be part of the user's hand, part of the hand, or other body parts that interact with the background object. As if looking back 3D . 3F and 4D become apparent when creating a composite image 310 Pixel of the keyboard 140 identified and by pixels of the virtual keyboard 312 replaced. Besides, pixels can also be hand-held 180 extracted and into the composite image 310 be inserted.

Die Identifizierung von Pixeln der Tastatur 140 und der Hand 180 kann beispielsweise ein Herausfiltern von Pixeln umfassen, die wahrscheinlich zu einem Teil der Hand 180 des Benutzers gehören. Außerdem werden beim Erzeugen eines zusammengesetzten Bildes 320 Pixel der Benutzerhand 180 extrahiert und auf den virtuellen Klaviertasten 324 angeordnet. In beiden Fällen kann ein Bildsegmentierungsschema zum Unterscheiden der Pixel eines Körperteils eines Benutzers (z. B. Hände, Finger, usw.) von den Pixeln eines Hintergrundobjekts verwendet werden. Das Bildsegmentierungsschema kann beispielsweise auf einem Vergleich der Pixel eines Bildes mit einem oder mehreren Schwellwerten basieren, die beispielsweise eine Hauttönung/-farbe, eine Farbe des Hintergrundobjekts usw. repräsentieren. Eine Bestimmung, ob ein Pixel zur Hand eines Benutzers gehört, kann auf dem Vergleichsergebnis basieren.The identification of pixels of the keyboard 140 and the hand 180 For example, it may include filtering out pixels that are likely to become part of the hand 180 belong to the user. In addition, when creating a composite image 320 Pixel of the user hand 180 extracted and on the virtual piano keys 324 arranged. In either case, an image segmentation scheme may be used to distinguish the pixels of a body part of a user (eg, hands, fingers, etc.) from the pixels of a background object. For example, the image segmentation scheme may be based on a comparison of the pixels of an image with one or more thresholds representing, for example, a skin tone, a color of the background object, and so on. A determination of whether a pixel belongs to a user's hand may be based on the comparison result.

Die Genauigkeit eines Bildsegmentierungsschemas kann von diversen Faktoren beeinflusst werden. Einen Faktor kann die Hauttönung/-farbe des Benutzers bilden. Wenn die Hauttönung/-farbe des Benutzers der Farbe des Hintergrundobjekts scheinbar ähnelt (z. B. ein vom Benutzer bedientes Peripheriegerät), entweder aufgrund der eigentlichen Hautfarbe oder aufgrund des Umgebungslichts, können sich die Pixelfarbe der Haut des Benutzers und die Pixelfarbe des Peripheriegeräts, wie sie von der Kamera aufgenommen wurden, sehr ähnlich werden, was zu Fehlern bei der Bildsegmentierung führen kann. Die Genauigkeit des Bildsegmentierungsprozesses kann weiter abnehmen, wenn zum Vergleichen der Pixel ein fester Schwellwert verwendet wird und der feste Schwellwert Faktoren nicht berücksichtigt, beispielsweise, dass die Haut bei unterschiedlichen Benutzern eine unterschiedliche Farbe/Tönung haben kann, die Umgebungslichtbedingungen sich je nach Betriebszustand ändern können, usw.The accuracy of an image segmentation scheme can be influenced by a variety of factors. One factor can be the skin tone / color of the user. If the user's skin tone / color is apparently similar to the color of the background object (eg, a user-operated peripheral device), either due to the actual skin color or due to ambient light, the pixel color of the user's skin and the pixel color of the peripheral device, as they were taken by the camera are very similar, which can lead to errors in the image segmentation. The accuracy of the image segmentation process may further decrease if a fixed threshold is used to compare the pixels and the fixed threshold does not take into account factors such as the skin may have a different color / tint with different users, the ambient light conditions may change depending on the operating condition , etc.

Bei einigen Ausführungsformen können die Schwellwerte für den Pixelvergleich zur Verbesserung der Genauigkeit eines Bildsegmentierungsprozesses auf Basis einer räumlichen Verteilung der Aktionen an dem Peripheriegerät angepasst werden. Genauer gesagt, kann die räumliche Verteilung der Aktionen angeben, an welcher (welchen) Stelle(n) des Peripheriegeräts (z. B. welche Taste oder welcher Bereich einer Tastatur) bestimmte Benutzeraktionen (z. B. Tippen) stattgefunden hat (haben) und an welcher (welchen) Stelle(n) des Peripheriegeräts keine Benutzeraktion stattgefunden hat (haben). Die Informationen über die räumliche Verteilung können zum Anpassen der Schwellwerte verwendet werden. Konkret kann ein Bild mit einer Aufnahme des mit dem Peripheriegerät interagierenden Körperteils des Benutzers (z. B. Hand, Finger, usw.) erhalten werden, wobei sich in dem Bild Pixel von verschiedenen Stellen des Peripheriegeräts identifizieren lassen. Auf Basis der räumlichen Verteilung der Aktionen können Pixel identifiziert werden, die wahrscheinlich einer Aufnahme des Körperteils des Benutzers entsprechen. Verschiedene Attribute der identifizierten Pixel (z. B. Luminanz, Farben, usw.) können verwendet werden, um einen Schwellwert für den Vergleich anderer Pixel bei einer Bestimmung festzulegen, ob diese Pixel zum Körperteil gehören. Die Informationen über die räumliche Verteilung können als Sekundärprüfung verwendet werden. So können beispielsweise die Pixel mit einem anderen Schwellwert verglichen werden, der nicht anhand der Informationen zur räumlichen Verteilung bestimmt wird. Wenn das Pixelvergleichsergebnis nicht eindeutig ist oder ein niedriges Konfidenzniveau aufweist, können die Informationen über die räumliche Verteilung verwendet werden, um das Vergleichsergebnis zu bestätigen oder zu verwerfen. Beispielsweise kann, wenn das Vergleichsergebnis bei einem Pixels nicht eindeutig ist und das Pixel zu einer Stelle des Peripheriegeräts gehört, an der, wie durch die Informationen über die räumliche Verteilung angezeigt, wenige oder keine Benutzeraktionen stattfinden, bestimmt werden, dass das Pixel nicht zum Körperteil des Benutzers gehört.In some embodiments, the pixel comparison thresholds may be adjusted to improve the accuracy of an image segmentation process based on a spatial distribution of the actions on the peripheral device. More specifically, the spatial distribution of the actions may indicate at which (which) location (s) of the peripheral device (eg, which key or area of a keyboard) certain user actions (e.g., typing) have taken place and at which (which) location (s) of the peripheral device no user action took place. The spatial distribution information can be used to adjust the thresholds. Specifically, an image may be obtained with a capture of the user's body part (e.g., hand, finger, etc.) interacting with the peripheral device, where pixels from different parts of the peripheral device may be identified in the image. Based on the spatial distribution of actions, pixels can be identified that are likely to be a capture of the body part of the user correspond. Various attributes of the identified pixels (eg, luminance, colors, etc.) may be used to set a threshold for comparing other pixels in determining whether those pixels belong to the body part. The information about the spatial distribution can be used as a secondary test. For example, the pixels may be compared to a different threshold that is not determined by the spatial distribution information. If the pixel comparison result is not unique or has a low confidence level, the spatial distribution information may be used to confirm or discard the comparison result. For example, if the comparison result for a pixel is ambiguous and the pixel belongs to a location of the peripheral device where, as indicated by the spatial distribution information, there are few or no user actions, it can be determined that the pixel is not part of the body owned by the user.

Die Aktionsverteilung der Interaktion kann auf Basis historischer Informationen oder aktueller Informationen bestimmt werden. Insbesondere können die historischen Informationen in Form einer Wärmekarte oder einer Wahrscheinlichkeitskarte vorliegen, die auf Grundlage einer statistischen Analyse früherer Interaktionsaktivitäten erstellt wurde. 6A veranschaulicht ein Beispiel für eine Wärmekarte 502 der Tastatur 140. Die Wärmekarte 502 kann den statistischen Interaktionsgrad an einer beliebigen Stelle der Tastatur 140 darstellen. In 6A können die Bereiche 504, 506, 508 und 510 die am häufigsten benutzten Bereiche (z. B. Tasten) der Tastatur 140 darstellen, während der Rest des Bereichs der Tastatur 140 weniger häufig benutzte Bereiche darstellen kann. Jeder dunkle Bereich kann auch eine Nutzungsverteilung innerhalb des Bereichs beinhalten. Die Wärmekarte 502 kann als Graustufenmaske für jedes Pixel der Tastatur 140 in einem Bild kodiert sein. Beispielsweise stellt die Graustufenmaske 520 ein Beispiel für eine Graustufenmaske dar, die aus einem Teil der Wärmekarte 502 abgeleitet wurde und auf ein Bild der Tastatur 140 abgebildet werden kann. In der Graustufenmaske 520 kann ein schwarzes Pixel einer Wahrscheinlichkeit von 100% für das Auffinden eines Pixels eines Körperteils eines Benutzers (z. B. Hand, Finger, usw.) entsprechen, während ein weißes Pixel einer Wahrscheinlichkeit von 0% entsprechen kann.The action distribution of the interaction can be determined based on historical information or current information. In particular, the historical information may be in the form of a heat map or a probability map created based on a statistical analysis of previous interaction activities. 6A illustrates an example of a heat map 502 the keyboard 140 , The heat card 502 can control the statistical level of interaction anywhere on the keyboard 140 represent. In 6A can the areas 504 . 506 . 508 and 510 the most frequently used areas (eg keys) of the keyboard 140 represent while the rest of the range of the keyboard 140 less frequently used areas. Each dark area may also include a usage distribution within the area. The heat card 502 Can be used as a grayscale mask for every pixel of the keyboard 140 be encoded in a picture. For example, the grayscale mask represents 520 an example of a grayscale mask that is part of the heat map 502 was derived and on a picture of the keyboard 140 can be displayed. In the grayscale mask 520 For example, a black pixel may correspond to a 100% probability of finding a pixel of a body part of a user (eg, hand, finger, etc.) while a white pixel may correspond to a probability of 0%.

Die Wahrscheinlichkeitsinformationen können zum Konfigurieren eines Bildsegmentierungsschemas verwendet werden, beispielsweise bei einer Sekundärprüfung, um eine Entscheidung aus einem Vergleichsergebnis zu bestätigen oder zu verwerfen und/oder um die Vergleichsschwellwerte anzupassen. Wenn beispielsweise angenommen wird, dass sich ein Pixel nur schwer als zur Haut oder als nicht zur Haut gehörig klassifizieren lässt (z. B. weil der Pixelwert sehr nahe am Schwellwert liegt), können die Wahrscheinlichkeitsinformationen dazu verwendet werden, eine Entscheidung aus einem Vergleichsergebnis zu bestätigen oder zu verwerfen. Um ein anschauliches Beispiel anzugeben, kann, wenn ein Vergleich zeigt, dass ein Pixel zu einer Haut gehört, die Differenz zwischen dem Pixel und dem Schwellwert aber unterhalb eines Konfidenzniveaus liegt, und wenn die Graustufenmaske 520 für dieses Pixel dunkel ist, bestimmt werden, dass das Pixel zu der Haut gehört. Wenn die Graustufenmaske 520 für dieses Pixel jedoch weiß ist, kann bestimmt werden, dass das Pixel nicht zur Haut gehört.The likelihood information may be used to configure an image segmentation scheme, such as a secondary check, to confirm or discard a decision from a comparison result and / or to adjust the comparison thresholds. For example, assuming that a pixel is difficult to classify as belonging to the skin or not to the skin (eg, because the pixel value is very close to the threshold), the likelihood information may be used to decide on a comparison result confirm or reject. To give an illustrative example, if a comparison shows that a pixel belongs to a skin, then the difference between the pixel and the threshold is below a confidence level, and if the grayscale mask 520 for this pixel is dark, it can be determined that the pixel belongs to the skin. If the grayscale mask 520 however, for this pixel, it can be determined that the pixel does not belong to the skin.

Bei einigen Ausführungsformen können die Schwellwerte für den Vergleich eines Pixels auf Basis der Graustufenmaske 520 konfiguriert werden. Anhand eines Bildes der Tastatur 140 können beispielsweise Pixel, die wahrscheinlich zu dem/der Körperteil/Haut des Benutzers gehören, anhand der Graustufenmaske 520 identifiziert werden. Die Attribute dieser Pixel (z. B. Farbe, Luminanz, usw.) können zum Festlegen eines Vergleichsschwellwerts für den Vergleich mit anderen Pixeln für die Feststellung verwendet werden, ob diese Pixel zum/zur Körperteil/Haut des Benutzers gehören. Die Vergleichsprozedur kann auch auf Basis der Graustufenmaske 520 angepasst werden. Beispielsweise kann bei Pixeln eines Bildes, deren Werte in der Graustufenmaske 520 hoch sind, die Anforderung zur Qualifizierung als Hautpixel lockerer sein als bei Pixeln, deren Werte in der Graustufenmaske 520 niedrig sind. Bei einem anschaulichen Beispiel können sich Pixel, deren Werte in der Graustufenmaske 520 hoch sind, selbst wenn diese Pixel unter dem Vergleichsschwellwert liegen als Hautpixel qualifizieren, sofern die Differenz innerhalb eines Differenzschwellwerts liegt, während Pixel, deren Werte in der Graustufenmaske 520 niedrig sind, über dem Vergleichsschwellwert liegen müssen, um sich als Hautpixel zu qualifizieren.In some embodiments, the thresholds for the comparison of a pixel may be based on the grayscale mask 520 be configured. Based on a picture of the keyboard 140 For example, pixels that are likely to belong to the user's body part / skin may be identified by the grayscale mask 520 be identified. The attributes of these pixels (eg, color, luminance, etc.) may be used to determine whether these pixels belong to the body part / skin of the user for establishing a comparison threshold for comparison with other pixels. The comparison procedure can also be based on the grayscale mask 520 be adjusted. For example, for pixels of an image, their values in the grayscale mask 520 are high, the requirement for qualifying as skin pixels will be looser than for pixels whose values are in the grayscale mask 520 are low. In one illustrative example, pixels whose values are in the grayscale mask may 520 even if those pixels are below the comparison threshold, they qualify as skin pixels if the difference is within a difference threshold, while pixels whose values are in the gray scale mask 520 are low, must be above the comparison threshold to qualify as skin pixels.

Bei einigen Beispielen können die historischen Informationen beispielsweise zur Berechnung der zeitlichen Unterschiede desselben Pixels verwendet werden, womit ein mehrstufiger Pixelvergleichsprozess zur Verbesserung der Berechnungseffizienz durchgeführt werden kann. Wie aus 5B ersichtlich können beispielsweise mehrere Graustufenmasken 520 (z. B. Graustufenmasken 520a, 520b, 520c, usw.) aus verschiedenen Einzelbildern erzeugt werden. Eine Abweichung in der Gesamtintensität (oder Farbänderung) von einem Bild zum anderen kann eine bildliche Kartierung der sich im Bild ändernden Teile ermöglichen, die zum Identifizieren von einer oder mehreren Rändern 530 (z. B. Ränder 530a, 530b, usw.) der Pixel verwendet werden kann, die die beweglichen Objekte darstellen, wie z. B. die Hand des Benutzers oder andere Körperteile, die mit dem Peripheriegerät interagieren. Die Ränder können beispielsweise Pixelbereiche 532 (z. B. Bereiche 532a, 532b, usw.) festlegen, die wahrscheinlich zur Hand des Benutzers oder zu anderen Körperteilen gehören, wobei nur aus diesen Bereichen stammende Pixel bei einer Bestimmung, ob die Pixel zum Körperteil des Benutzers gehören, mit dem (den) Schwellwert(en) verglichen werden. Mit einer solchen Festlegung lässt sich die Gesamtzahl der beim Segmentierungsprozess mit dem (den) Schwellwert(en) zu vergleichenden Pixel verringern, wodurch die Effizienz der Berechnung verbessert werden kann.For example, in some examples, the historical information may be used to calculate the temporal differences of the same pixel, whereby a multi-level pixel comparison process for improving the computational efficiency may be performed. How out 5B For example, several gray scale masks can be seen 520 (eg grayscale masks 520a . 520b . 520c , etc.) are generated from different frames. A variation in the overall intensity (or color change) from one image to another may allow for pictorial mapping of the image changing parts used to identify one or more edges 530 (eg margins 530a . 530b , etc.) of the pixels that represent the moving objects, such. For example, the user's hand or other body parts that interact with the peripheral device. The edges For example, pixel areas 532 (eg areas 532a . 532b , etc.) that are likely to belong to the user or to other parts of the body, and only pixels originating from those areas are compared to the threshold (s) in determining whether the pixels belong to the body part of the user. With such a determination, the total number of pixels to be compared with the threshold value (s) in the segmentation process can be reduced, whereby the efficiency of the calculation can be improved.

Bei einigen Ausführungsformen können die Schwellwerte auch an unterschiedliche Betriebsbedingungen und Benutzer angepasst sein. So können beispielsweise die Schwellwerte auch abhängig vom Umgebungslicht der Betriebsumgebung angepasst werden. Insbesondere kann der Luminanzschwellwert für Hand-/Fingerpixel bei hoher Umgebungslichtstärke nach oben und der bei geringer Umgebungslichtstärke nach unten korrigiert sein. Außerdem lassen sich auch mehrere Schwellwerte, z. B. an verschiedene Benutzer, verschiedene Teile ihrer Hände, usw. anpassen. So können beispielsweise verschiedene Schwellwerte an die Extraktion von Pixeln angepasst sein, die zu Fingernägeln, Fingersegmenten, der Handfläche, dem Handgelenk usw. gehören, die jeweils unterschiedliche Farben aufweisen können. Außerdem können die Schwellwerte auch an verschiedene Benutzer angepasst sein. Zum Beispiel können einige Benutzer lackierte Fingernägel haben, wobei die Schwellwerte für das Extrahieren von Pixeln der Fingernägel dieser Benutzer unter Berücksichtigung der Farben der lackierten Fingernägel angepasst werden können. Bei einem anderen Beispiel können einige Benutzer Tattoos und/oder Kleidungsstücke haben, die ihre Hände ganz oder teilweise bedecken, usw., wobei die Schwellwerte für das Extrahieren von Handpixeln bei diesen Benutzern unter Berücksichtigung der bedeckten Teile ihrer Hände angepasst werden können. Wie aus 5C ersichtlich kann eine Handmodelldatenbank 550 für mehrere Benutzer definiert werden, um eine Verteilung von Schwellwerten aufzunehmen (z. B. Schwellwerte 552-558 für verschiedene Bereiche einer Hand bei verschiedenen Benutzern und/oder für unterschiedliche Umgebungshelligkeiten).In some embodiments, the thresholds may also be adapted to different operating conditions and users. For example, the thresholds can also be adjusted depending on the ambient light of the operating environment. In particular, the luminance threshold for hand / finger pixels can be corrected upward with high ambient light intensity and downward with low ambient light intensity. In addition, several thresholds, z. B. adapt to different users, different parts of their hands, etc. For example, different thresholds may be adapted for the extraction of pixels associated with fingernails, finger segments, palm, wrist, etc., each of which may have different colors. In addition, the thresholds can also be adapted to different users. For example, some users may have lacquered fingernails, and the thresholds for extracting pixels of the fingernails of these users may be adjusted taking into account the colors of the lacquered fingernails. In another example, some users may have tattoos and / or garments that completely or partially cover their hands, etc., and the thresholds for extracting hand pixels may be adjusted for these users, considering the covered portions of their hands. How out 5C can be seen a hand model database 550 are defined for multiple users to accommodate a distribution of thresholds (e.g., thresholds 552 - 558 for different areas of one hand with different users and / or for different ambient brightnesses).

Es gibt viele verschiedene Möglichkeiten zum Erzeugen der Wärmekarte 602. Wärmekarten können beispielsweise offline aus Analysedaten oder Datensätzen von Peripheriegerätnutzungen durch andere Benutzer für andere Exemplare einer Tastatur 140 erstellt werden. Peripheriegeräte können auch in Kategorien eingeteilt werden, die auf der Art und Verteilung von Bewegungssensoren basieren (die ein Nutzungsverteilungsmuster bestimmen können), wobei für jede Kategorie eine Wärmekarte erstellt werden kann, die ein statistisches Nutzungsmuster für alle Peripheriegeräte der Kategorie darstellt. Statistische Analysen können auch vorgenommen werden, um die Wahrscheinlichkeit, dass an einer Stelle des Peripheriegeräts eine Interaktionsaktivität stattfindet, auf Basis einer Anzahl von an der Stelle stattgefundenen interaktiven Aktivitäten und des Zeitraums in dem die Anzahl bestimmt wurde zu bestimmen, wobei die statistische Analyse an verschiedenen Stellen des Peripheriegeräts wiederholt werden kann. Bei einigen Beispielen kann die Wärmekarte auch spontan für einen bestimmten Benutzer erstellt werden, um das Nutzungsmuster der Tastatur 140 durch den Benutzer aufzunehmen. Außerdem können mehrere Wärmekarten/Wahrscheinlichkeitskarten für verschiedene Anwendungen erstellt werden. So zeigt beispielsweise die Wärmekarte/Wahrscheinlichkeitskarte für Spielanwendungen eine hohe Wahrscheinlichkeit, dass Finger auf bestimmten Tasten zu finden sind (z. B. die Tasten „w“, „a“, „s“, „d“ sowie die umliegenden Tasten), während bei Codier- und Textverarbeitungsanwendungen die Wahrscheinlichkeit zum Finden von Fingern gleichmäßiger über die Tasten der Tastatur verteilt sein kann. Durch ein anwendungsspezifisches Ausbilden der Wärmekarten kann die Genauigkeit der Wärmekarten für eine genaue Vorhersage der Fingerposition zur Extraktion von Hautpixeln verbessert werden.There are many different ways to create the heat map 602 , For example, heat maps may be off-line from analysis data or other user's peripheral device usage records for other instances of a keyboard 140 to be created. Peripheral devices may also be categorized based on the type and distribution of motion sensors (which may determine a usage distribution pattern), for each category a heat map may be created representing a statistical usage pattern for all peripherals of the category. Statistical analyzes can also be made to determine the likelihood that interaction activity will take place at one site of the peripheral device based on a number of interactive activities taking place at the site and the time the number was determined, with statistical analysis at different levels Positions of the peripheral device can be repeated. In some examples, the thermal map may also be spontaneously created for a particular user to the usage pattern of the keyboard 140 by the user. In addition, several heat maps / probability maps can be created for different applications. For example, the gaming map / probability map shows a high probability that fingers will be found on certain buttons (eg, the "w", "a", "s", "d" buttons and surrounding buttons) while in coding and word processing applications, the probability of finding fingers may be more evenly distributed across the keys of the keyboard. By customizing the heat maps, the accuracy of the heat maps can be improved for accurate prediction of finger position for skin pixel extraction.

Bei einigen Beispielen kann die Aktionsverteilung der Interaktionen auch auf Basis aktueller Informationen bestimmt werden. 5D und 5E veranschaulichen ein Beispiel für die Erfassung einer aktuellen Verteilung von Aktionen zur Handsegmentierung. Wie aus 5D ersichtlich können Bilder der Tastatur 140 von einer Kamera 560 aufgenommen werden, die von einer Kamerasteuerung 562 gesteuert wird. Bei der Kamera 560 (sowie der Kamerasteuerung 562) kann es sich beispielsweise um eine Kamera des HMD 160 oder andere Kameras mit einer freien Sicht auf die Tastatur 140 handeln. Die Aufnahme von Bildern der Tastatur 140 kann durch die Kamerasteuerung 562 auf Basis eines Erfassens einer Tastenanschlagaktion an einer oder mehreren Tasten mithilfe der Bewegungssensoren der Tastatur 140 ausgelöst werden. Zum Abbilden verschiedener Pixelbereiche (z. B. Pixelbereiche 572, 574, usw.) des Bildes auf die Tasten der Tastatur 140 kann eine Sensorkarte 570 erstellt werden. Auch wenn in 5D eine Tastatur dargestellt ist, können selbstverständlich auch andere Peripheriegeräte und Bewegungssensoren (z. B. Tasten, Touchpads, usw.) zum Erfassen aktueller Interaktionsinformationen verwendet werden.In some examples, the action distribution of the interactions may also be determined based on current information. 5D and 5E illustrate an example of capturing a current distribution of hand segmentation actions. How out 5D You can see pictures of the keyboard 140 from a camera 560 to be taken by a camera control 562 is controlled. At the camera 560 (as well as the camera control 562 ) may be, for example, a camera of the HMD 160 or other cameras with a clear view of the keyboard 140 act. The recording of images of the keyboard 140 can through the camera control 562 based on detecting a keystroke action on one or more keys using the keyboard motion sensors 140 to be triggered. For mapping various pixel areas (eg, pixel areas 572 . 574 , etc.) of the image on the keys of the keyboard 140 can be a sensor card 570 to be created. Even if in 5D While a keyboard is shown, other peripherals and motion sensors (eg, buttons, touch pads, etc.) may of course be used to capture up-to-date interaction information.

5E zeigt ein von der Kamera 560 aufgenommenes Bild 580 der Tastatur 140. Auf Basis der Sensorkarte 570 und dem Erfassen der Tastenanschläge kann die Kamerasteuerung 562 einen ersten Pixelbereich 582 identifizieren, der der einen oder den mehreren Tasten entspricht, an denen eine Tastenanschlagsaktion stattgefunden hat. Der Bildprozessor kann auch einen zweiten Pixelbereich 584 identifizieren, der an den ersten Bereich 582 angrenzt oder diesen umgibt und an dem keine Tastenanschlagsaktion stattfand. Der erste Pixelbereich 582 kann Pixel der Hand des Benutzers enthalten, die an der Tastenanschlagsaktion beteiligt sind, während der zweite Pixelbereich 584 Pixel der Tastatur 140 enthalten kann. Für den ersten Pixelbereich 582 kann ein erstes Histogramm 592 eines Satzes von Farbkomponenten (z. B. relative Intensitäten für jede Farbkomponente) bestimmt werden. Auch für den zweiten Pixelbereich 584 kann ein zweites Histogramm 594 für den gleichen Farbkomponentensatz bestimmt werden. 5E shows one from the camera 560 taken picture 580 the keyboard 140 , Based on the sensor card 570 and capturing the keystrokes can be camera control 562 a first pixel area 582 identifying the one or more keys on which a keystroke action has taken place. Of the Image processor can also have a second pixel area 584 identify who at the first area 582 borders or surrounds it and no keystroke action took place. The first pixel area 582 may include pixels of the user's hand involved in the keystroke action while the second pixel area 584 Pixel of the keyboard 140 may contain. For the first pixel range 582 can be a first histogram 592 a set of color components (eg, relative intensities for each color component). Also for the second pixel range 584 can be a second histogram 594 be determined for the same color component set.

Das erste Histogramm 592 und das zweite Histogramm 594 können zur Anpassung der Schwellwerte für den Pixelvergleich bei der Bildsegmentierung verwendet werden (z. B. um festzustellen, ob die Pixel zu den Händen/Fingern eines Benutzers gehören). Beispielsweise kann für jede Farbkomponente ein Schwellwert berechnet werden, wobei jeder Schwellwert beispielsweise auf Basis einer Mittelung (oder Vornahme einer gewichteten Mittelung) der Intensitäten der Farbkomponente zwischen dem ersten Histogramm 592 und dem zweiten Histogramm 594 berechnet werden kann. Für einen Farbkomponentensatz kann ein Satz von Schwellwerten festgelegt werden. Um zu bestimmen, ob ein Pixel zu einer Hand oder einem Hintergrundobjekt gehört, kann ein Satz von Intensitäten der Farbkomponenten des Pixels berechnet werden. Der Intensitätensatz kann mit dem Schwellwertsatz verglichen werden, und aus den Vergleichsergebnissen kann bestimmt werden, ob das Pixel zu einer Hand/Fingern gehört. Bei einigen Beispielen können die Histogrammdaten auch dazu verwendet werden, einen Basiswert der Hauttönung eines Benutzers neu zu definieren. Die Basiswertinformationen können zum Trainieren eines maschinellen Lernmodells für die Vornahme einer Handsegmentierung an unter unterschiedlichen Lichtverhältnissen aufgenommenen Bildpixeln verwendet werden.The first histogram 592 and the second histogram 594 can be used to adjust thresholds for pixel comparison in image segmentation (eg, to determine if the pixels belong to the hands / fingers of a user). For example, a threshold value may be calculated for each color component, each threshold based on, for example, averaging (or weighted averaging) the intensities of the color component between the first histogram 592 and the second histogram 594 can be calculated. For a color component set, a set of thresholds can be set. To determine whether a pixel belongs to a hand or a background object, a set of intensities of the color components of the pixel can be calculated. The intensity set can be compared to the threshold set and from the comparison results it can be determined if the pixel belongs to a hand / fingers. In some examples, the histogram data may also be used to redefine a user's base skin tone. The base value information may be used to train a machine learning model to perform hand segmentation on image pixels captured under different lighting conditions.

Bei einigen Beispielen kann eine Kombination aus historischen und aktuellen Informationen zum Festlegen eines zweiten Schwellwerts für die Hintergrunderfassung verwendet werden. So können beispielsweise Bilder von Stellen des Peripheriegeräts, an denen nur sehr wenige oder gar keine Interaktionsaktivitäten stattgefunden haben, periodisch aufgenommen und es kann ein drittes Histogramm der Farbkomponenten dieser Stellen ermittelt werden. Auf Basis des dritten Histogramms kann ein zweiter Schwellwert für die Hintergrunderfassung bestimmt werden. Der zweite Schwellwert für die Hintergrunderfassung (z. B. eine Schwellenwahrscheinlichkeit, dass ein Pixel zum Hintergrund gehört) kann mit dem ersten Schwellwert für die Hand-/Fingerdetektion (z. B. eine Schwellenwahrscheinlichkeit, dass ein Pixel zur Hand/zu den Fingern gehört) auf verschiedene Weise kombiniert werden. Bei einem Beispiel kann der zweite Schwellwert für die Hintergrunderfassung als erster Schritt der Überprüfung eingesetzt werden. Wenn das Pixel sehr nahe am zweiten Schwellwert liegt und das Ergebnis nicht eindeutig ist, kann das Pixel mit dem ersten Schwellwert für die Hand-/Fingererkennung verglichen werden. Bei einem anderen Beispiel kann ein kombinierter Schwellwert durch Mitteln des ersten und zweiten Schwellwerts bestimmt werden, wobei die Pixel des Bildes zum Identifizieren der Handpixel mit dem kombinierten Schwellwert verglichen werden können.In some examples, a combination of historical and current information may be used to set a second background detection threshold. For example, images of peripheral device locations where very little or no interaction activity has occurred may be periodically captured and a third histogram of the color components of those locations may be determined. Based on the third histogram, a second threshold for the background detection can be determined. The second threshold for background detection (eg, a threshold probability that a pixel belongs to the background) may be at the first threshold for hand / finger detection (eg, a threshold probability that a pixel belongs to the hand / fingers ) can be combined in different ways. In one example, the second background detection threshold may be used as the first step in the verification. If the pixel is very close to the second threshold and the result is ambiguous, the pixel may be compared to the first threshold for hand / finger recognition. In another example, a combined threshold may be determined by averaging the first and second thresholds, wherein the pixels of the image for identifying the hand pixels may be compared to the combined threshold.

Die Bestimmung der Schwellwerte kann Teil eines auf einem Bildaustausch basierenden Kalibrierungsprozesses sein. Wie aus einem Rückblick auf 5D ersichtlich kann ein nicht von der Hand bzw. den Fingern eines Benutzers verdecktes Bild der Tastatur 140 aufgenommen werden. Die Pixel des Bildes können als Referenz/Ausgangspunkt zum Bestimmen der Schwellwerte für die Unterscheidung zwischen Hand-/Fingerpixeln und Pixeln des Peripheriegerätes verwendet werden. Im Rahmen des Kalibrierungsprozesses kann ein Benutzer seine Finger in einer vorgeschriebenen Weise auf die Tastatur 140 legen, wobei ein zweites Bild der von den Fingern bedeckten Tastatur 140 aufgenommen werden kann. Auf Basis der bekannten Pixelpositionen der Hand/Finger (z. B. auf Basis von Erkennungstastenanschlägen sowie der Sensorenkarte 570) sowie den bekannten Pixelpositionen der Tastatur 140, die keine Hand/Finger enthalten, können die Schwellwerte von der Referenz ausgehend angepasst werden, um beispielsweise die Wahrscheinlichkeit einer korrekten Unterscheidung zwischen den Pixeln der Tastatur 140 und den Pixeln der Hand/Finger des Benutzers zu maximieren. Das Aufnehmen von Bildern der Tastatur 140 kann auch wiederholt erfolgen, um ein aktualisiertes Bild für ein Bestimmen der Referenzschwellwerte unter Berücksichtigung einer Änderung der Betriebsbedingungen (z. B. Änderung der Umgebungshelligkeit, Inaktivität des Peripheriegeräts usw.) zu erhalten.The determination of the thresholds may be part of an image exchange based calibration process. As if looking back 5D it can be seen a hidden from the hand or the fingers of a user image of the keyboard 140 be recorded. The pixels of the image may be used as a reference / starting point for determining the thresholds for distinction between hand / finger pixels and pixels of the peripheral device. As part of the calibration process, a user can place their fingers on the keyboard in a prescribed manner 140 place a second image of the keyboard covered by the fingers 140 can be included. Based on the known pixel positions of the hand / fingers (eg based on recognition key strokes and the sensor card 570 ) as well as the known pixel positions of the keyboard 140 which do not contain hand / fingers, the thresholds can be adjusted from the reference, for example, the probability of a correct distinction between the pixels of the keyboard 140 and to maximize the user's hand / finger pixels. Taking pictures of the keyboard 140 may also be repeated to obtain an updated image for determining the reference thresholds in consideration of a change in operating conditions (eg, change in ambient brightness, inactivity of the peripheral device, etc.).

Nachdem die Pixel des Körperteils des Benutzers (z. B. Hand, Finger, usw.) identifiziert wurden, kann durch die Identifizierung der Pixel ein zusammengesetztes Bild erzeugt werden. Beispielsweise können die extrahierten Pixel (z. B. einer Hand, der Finger usw.) zur Darstellung der virtuellen Interaktion wie in 4D dargestellt in eine im zusammengesetzten Bild dargestellte virtuelle Umgebung eingefügt werden. Die extrahierten Pixel und/oder die virtuelle Umgebung können auch so modifiziert werden, dass sie aufeinander abgestimmt sind. Wie aus einem Rückblick auf 4D ersichtlich kann die Luminanz der extrahierten Pixel der Hand 180 beispielsweise so angepasst werden, dass sie zu den Lichtverhältnissen in der virtuellen Umgebung des zusammengesetzten Bildes 310 passt. Bei einem weiteren Beispiel können auch von der Hand 180 (dargestellt durch die extrahierten Pixel) auf die virtuelle Tastatur 312 geworfene virtuelle Schatten in das zusammengesetzte Bild 310 eingefügt werden. Bei einigen Beispielen können zusätzliche Pixel der virtuellen Umgebung auch durch Hand-/Fingerpixel ersetzt werden, um die Lücken der Extraktion der Hand-/Fingerpixel zu schließen.After identifying the pixels of the body part of the user (eg, hand, finger, etc.), identifying the pixels can create a composite image. For example, the extracted pixels (eg, a hand, the finger, etc.) may be used to represent the virtual interaction, as in FIG 4D are inserted into a virtual environment represented in the composite image. The extracted pixels and / or the virtual environment may also be modified to be matched. As if looking back 4D You can see the luminance of the extracted pixels of the hand 180 For example, they may be adapted to match the lighting conditions in the virtual environment of the composite picture 310 fits. In another example may also be by hand 180 (represented by the extracted pixels) on the virtual keyboard 312 thrown virtual shadows into the composite image 310 be inserted. In some examples, additional pixels of the virtual environment may also be replaced by hand / finger pixels to fill in the gaps in the extraction of the hand / finger pixels.

Bei einigen Beispielen kann eine wie in 5F dargestellte Datenbank 596 zum Speichern von mehreren Wärmekarten/Wahrscheinlichkeitskarten 597 (z. B. Wärmekarten 597a, 597b, usw.) vorhanden sein. Jede Wärmekarte/Wahrscheinlichkeitskarte kann mit verschiedenen Attributen verknüpft sein, die die Interaktion eines Benutzers mit einem Peripheriegerät beeinflussen, z. B. einer Anwendung, für die die Interaktion stattgefunden hat, einem Typ und einem Modell des Peripheriegeräts, usw. Beispielsweise kann sich bei einer Spielanwendung wie oben beschrieben ein anderes Muster von Benutzerinteraktionen an einer Tastatur ergeben als bei einer Textverarbeitungsanwendung. Bei einem anderen Beispiel weisen eine Tastatur und ein Joystick aufgrund der unterschiedlichen Betriebsweisen unterschiedliche Benutzerinteraktionmuster auf. Außerdem können verschiedene Modelle desselben Peripheriegeräts (z. B. eine Tastatur) ebenfalls unterschiedliche Benutzerinteraktionmuster aufweisen, z. B. aufgrund unterschiedlicher Tastenanordnungen. In der Datenbank 596 können die Wärmekarten/Wahrscheinlichkeitskarten auf Basis unterschiedlicher Anwendungsidentifikatoren 598 (z. B. Anwendungsidentifikatoren 598a, 598b, usw.), die verschiedene Anwendungen identifizieren können, sowie auf Basis verschiedener Peripheriegeräteidentifikatoren 599 (z. B. Peripheriegeräteidentifikatoren 599a, 599b, usw.), die verschiedene Typen und Modelle von Peripheriegeräten identifizieren können, organisiert sein. Beim Durchführen einer Segmentierung kann eine Wärmekarte/Wahrscheinlichkeitskarte auf Basis der Anwendung, für die der Benutzer mit dem Peripheriegerät interagiert, und/oder auf Basis des Typs und Modells des Peripheriegeräts aus der Datenbank 596 abgerufen werden. Bei solchen Ausgestaltung kann die für die Vornahme der Handsegmentierung (oder des Segmentierens anderer Körperteile) richtige Wärmekarte/Wahrscheinlichkeitskarte verwendet werden, wodurch die Genauigkeit der Segmentierung verbessert werden kann.In some examples, a like in 5F represented database 596 for storing several heat maps / probability maps 597 (eg heat maps 597a . 597b , etc.). Each heat map / probabilistic map may be associated with various attributes that affect a user's interaction with a peripheral device, e.g. For example, in a game application as described above, a different pattern of user interactions may occur on a keyboard than in a word processing application. In another example, a keyboard and a joystick have different user interaction patterns due to the different modes of operation. In addition, different models of the same peripheral device (eg, a keyboard) may also have different user interaction patterns, e.g. B. due to different key arrangements. In the database 596 The heat cards / probability cards can be based on different application identifiers 598 (eg application identifiers 598a . 598b , etc.), which can identify various applications, as well as various peripheral device identifiers 599 (eg, peripheral device identifiers 599a . 599b , etc.), which can identify various types and models of peripherals, be organized. When performing segmentation, a thermal map / probabilistic map may be based on the application for which the user is interacting with the peripheral device and / or database based on the type and model of the peripheral device 596 be retrieved. In such an embodiment, the proper heat map / probability map for making hand segmentation (or segmenting other body parts) may be used, thereby improving the accuracy of the segmentation.

Durch das Anpassen der Handsegmentierung auf Basis einer Verteilung der Aktionen an dem Peripheriegerät kann das Handsegmentierungsschema weniger anfällig gegenüber anderen Faktoren sein, die die Genauigkeit der Handdetektion beeinträchtigen können, wie beispielsweise Hauttönung, Lichtintensität usw. Dadurch kann ein robusteres Segmentierungsschema erzielt werden, das Handpixel für eine größere Bandbreite an Hauttönen und in einer größeren Palette von Umgebungen richtig identifizieren kann.By adjusting hand segmentation based on a distribution of actions on the peripheral device, the hand segmentation scheme may be less prone to other factors that may affect the accuracy of hand detection, such as skin tone, light intensity, etc. Thus, a more robust segmentation scheme can be achieved, the hand pixel for can correctly identify a wider range of skin tones and in a wider range of environments.

Systemsystem

6 veranschaulicht ein Beispiel für eine Prozessengine 600, die Teil des HMD 160 sein kann und zum Erzeugen zusammengesetzter Bilder für ein Ermöglichen eines immersiven interaktiven AR/MR-Erlebnisses konfiguriert werden kann. Bei einigen Beispielen kann die Prozessengine 600 aus Softwareanweisungen bestehen, die auf einem Hardwareprozessor des HMD 160 ausführbar sind. Bei einigen Beispielen kann die Prozessengine 500 auch Logikschaltungen umfassen, die in einer anwendungsspezifischen integrierten Schaltung (ASIC), einem Field-Programmable-Gate-Array (FPGA) usw. implementiert sind. Wie in 6 dargestellt, kann die Prozessengine 600 ein Bewegungserfassungsmodul 602, ein Latenzbestimmungsmodul 606, ein Kompensationsbestimmungsmodul 608, ein Modul 610 zum Erzeugen zusammengesetzter Bilder mit einem Bildsegmentierungsmodul 612 und einen Bildpufferspeicher 402 aus 4 aufweisen. Obwohl die Prozessengine 600 in 6 als ein einzige Einheit dargestellt ist, können die Komponenten der Prozessengine 600 selbstverständlich auf verschiedene Einheiten verteilt sein. So kann sich das Modul 610 zum Erzeugen zusammengesetzter Bilder beispielsweise an einem externen Computer befinden und von einem HMD Bilddaten und Sensordaten erhalten, das zusammengesetzte Bild erzeugen und das zusammengesetzte Bild zur Anzeige zurück zum HMD übertragen. 6 illustrates an example of a process engine 600 that part of the HMD 160 and configured to generate composite images for enabling an immersive interactive AR / MR experience. In some examples, the process engine 600 consist of software instructions written on a hardware processor of the HMD 160 are executable. In some examples, the process engine 500 Also include logic circuits implemented in an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. As in 6 represented, the process engine 600 a motion detection module 602 , a latency determination module 606 , a compensation determination module 608 , a module 610 for generating composite images with an image segmentation module 612 and a frame buffer 402 out 4 exhibit. Although the process engine 600 in 6 is represented as a single entity, the components of the processes engine 600 of course be distributed to different units. So the module can 610 For example, to generate composite images on an external computer, and obtain image data and sensor data from an HMD, generate the composite image and transmit the composite image back to the HMD for display.

Das Bewegungserfassungsmodul 602 kann eine Meldung einer Bewegung des HMD 160 sowie Messungen von Geschwindigkeit und Richtung (z. B. Winkelgeschwindigkeit, Drehrichtung, usw.) des HMD 160 von der IMU 620 des HMD 160 erhalten. Außerdem kann das Latenzbestimmungsmodul 506 eine Verarbeitungsverzögerung beim Aufnehmen und Verarbeiten des Kamerabildes 170 von der Kamera 601 des HMD 160 auf Basis der oben beschriebenen Techniken bestimmen. Beispielsweise kann das Latenzbestimmungsmodul 606 die Zeit, zu der die Kamera 601 das Kamerabild 170 aufnimmt auf Basis des Inhalts des Kamerabildes 170 (z.B. weist das Kamerabild 170 ein Bild einer Uhr, ein von einem Objekt emittiertes sich mit der Zeit änderndes Muster, usw. auf) als einen ersten Zeitpunkt erhalten, einen zweiten Zeitpunkt aufnehmen, zu dem das Kamerabild 170 im Bildpufferspeicher 402 gespeichert wird und für die Erzeugung von zusammengesetzten Bildern verfügbar ist, und die Verarbeitungsverzögerung auf Basis einer Differenz zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt bestimmen.The motion detection module 602 can be a message of a movement of the HMD 160 and measurements of speed and direction (eg angular velocity, direction of rotation, etc.) of the HMD 160 from the IMU 620 of the HMD 160 receive. In addition, the latency determination module 506 a processing delay when recording and processing the camera image 170 from the camera 601 of the HMD 160 based on the techniques described above. For example, the latency determination module 606 the time to which the camera 601 the camera picture 170 based on the content of the camera image 170 (eg, the camera image has 170 an image of a clock, a time-varying pattern emitted by an object, etc.) received as a first time, take a second time to which the camera image 170 in the frame buffer 402 is stored and available for the generation of composite images, and determine the processing delay based on a difference between the first time and the second time.

Beispielsweise kann das Kompensationsbestimmungsmodul 608 den Verschiebungsvektor Vs auf Basis der Winkelgeschwindigkeitsinformationen und der Verarbeitungsverzögerungsinformationen bestimmen, aus denen der Drehwinkel α beispielsweise durch Multiplikation der Winkelgeschwindigkeit mit der Verarbeitungsverzögerung berechnet werden kann. Der Verschiebungsvektor kann auch auf Basis der Positionskoordinateninformationen 602 des HMD 160 und des Referenzobjekts 340 bestimmt werden. Die Positionskoordinateninformationen 603 können wie oben beschrieben beispielsweise aus Messungen gewonnen werden oder auf Messungen basieren, die mit Hilfe einer am Referenzobjekt 340 angebrachten Sensorkapsel, mit Hilfe von Lichtsensoren, die das vom Referenzobjekt 340 emittierte Licht erfassen, usw. zur Verfügung gestellt werden. Die Bestimmung des Verschiebungsvektors VS kann durch eine Mitteilung des Bewegungserfassungsmoduls 602 über eine Bewegung des HMD 160 ausgelöst werden. Wenn die Bewegung nach der Aufnahme des Bildes 170 wahrgenommen wird, kann das Kompensationsbestimmungsmodul 608 die Informationen zum Verschiebungsvektor Vs dazu verwenden, um eine Verschiebungsrichtung und eine Verschiebungsstrecke zu bestimmen, und die Richtungs-/Streckeninformationen dazu verwenden, um den Speicherort des Anzeigebereichs 404 im Bildpufferspeicher 402 zu ändern oder das Bild 170 direkt im Bildspeicher 402 zu verschieben, um ein zweites Bild 410 zu erstellen und das zweite Bild 410 dem Modul 610 zum Erzeugen zusammengesetzter Bilder zur Verfügung zu stellen. For example, the compensation determination module 608 determine the displacement vector Vs based on the angular velocity information and the processing delay information that make up the rotation angle α for example, by multiplying the angular velocity by the processing delay. The displacement vector may also be based on the position coordinate information 602 of the HMD 160 and the reference object 340 be determined. The position coordinate information 603 As described above, for example, they can be obtained from measurements or based on measurements made with the aid of a reference object 340 attached sensor capsule, with the help of light sensors, that of the reference object 340 detecting emitted light, etc. are made available. The determination of the displacement vector V S can by a message of the motion detection module 602 about a movement of the HMD 160 to be triggered. When the movement after taking the picture 170 is the compensation determination module 608 use the information on the displacement vector Vs to determine a displacement direction and a displacement distance, and use the direction / route information to determine the storage location of the display area 404 in the frame buffer 402 to change or the picture 170 directly in the image memory 402 to move to a second picture 410 to create and the second picture 410 the module 610 to provide composite images.

Das Modul 610 zum Erzeugen zusammengesetzter Bilder umfasst das Bildsegmentierungsmodul 612, das ein Segmentieren des zweiten Bildes 410 auf Basis der oben genannten Techniken vornehmen kann. Beispielsweise kann das Segmentieren durchgeführt werden, um Pixel der Hand/Finger (oder anderer Körperteile) eines Benutzers von den Pixeln eines vom Benutzer betätigten Peripheriegeräts zu unterscheiden. Das Segmentieren kann auf einem Vergleich der Pixel des zweiten Bildes 410 mit einem oder mehreren Schwellwerten basieren, die beispielsweise auf Grundlage einer Verteilung der Interaktionen mit dem Peripheriegerät bestimmt werden. Ferner können der eine oder die mehreren Schwellwerte an den Benutzer (z. B. auf Basis der Hautfarbe/-tönung des Benutzers, von Merkmalen der Fingernägel des Benutzers, von Fingersegmenten, usw.) sowie der Betriebsbedingung (z. B. eine Umgebungshelligkeit) angepasst werden. Auf Basis des Segmentierungsergebnisses lassen sich Pixel des Peripheriegerätes oder Pixel des Körperteils des Benutzers extrahieren. Bei einigen Beispielen kann das Modul 610 zum Erzeugen zusammengesetzter Bilder die extrahierten Pixel zur Wiedergabe einer virtuellen Interaktion in ein zusammengesetztes Bild einfügen, das eine virtuelle Umgebung bildlich darstellt. Das Modul 610 zum Erzeugen zusammengesetzter Bilder kann das zusammengesetzte Bild auch aus dem ersten Bild auf Basis eines Ersetzens der extrahierten Pixel durch Pixel eines virtuellen Objekts (z. B. virtuelle Hand/Finger) erstellen. Ferner können die extrahierten Pixel und/oder die virtuelle Umgebung so modifiziert werden, dass sie aufeinander abgestimmt sind. Beispielsweise kann die Luminanz der extrahierten Pixel des Körperteils des Benutzers so angepasst werden, dass sie zu den Lichtverhältnissen der virtuellen Umgebung passt. Bei einem weiteren Beispiel können in das zusammengesetzte Bild auch von der Hand (dargestellt durch die extrahierten Pixel) auf ein virtuelles Peripheriegerät geworfene virtuelle Schatten eingefügt werden. Bei einigen Beispielen können auch zusätzliche Pixel der virtuellen Umgebung durch Hand-/Fingerpixel ersetzt werden, um Lücken bei der Extraktion der Hand-/Fingerpixel zu schließen. Das zusammengesetzte Bild kann dann der Anzeige 530 des HMD 160 zur Verfügung gestellt werden, um dem Benutzer präsentiert zu werden.The module 610 For generating composite images, the image segmentation module comprises 612 that is a segmentation of the second image 410 based on the above techniques. For example, segmentation may be performed to distinguish pixels of a user's hand / fingers (or other body parts) from the pixels of a user-operated peripheral device. The segmentation may be based on a comparison of the pixels of the second image 410 are based on one or more thresholds determined, for example, based on a distribution of interactions with the peripheral device. Further, the one or more thresholds may be to the user (eg, based on the skin color / tint of the user, features of the user's fingernails, finger segments, etc.) as well as the operating condition (eg, ambient brightness). be adjusted. Based on the segmentation result, pixels of the peripheral device or pixels of the body part of the user can be extracted. In some examples, the module may 610 to create composite images, insert the extracted pixels to render a virtual interaction in a composite image that depicts a virtual environment. The module 610 For generating composite images, the composite image may also be created from the first image based on replacing the extracted pixels with pixels of a virtual object (eg, virtual hand / finger). Further, the extracted pixels and / or the virtual environment may be modified to be matched. For example, the luminance of the extracted pixels of the body part of the user may be adjusted to match the lighting conditions of the virtual environment. In another example, virtual shadows cast by the hand (represented by the extracted pixels) on a virtual peripheral may also be inserted into the composite image. In some examples, additional pixels of the virtual environment may also be replaced by hand / finger pixels to close gaps in the extraction of the hand / finger pixels. The composite image can then be displayed 530 of the HMD 160 be made available to the user to be presented.

Verfahrenmethod

7 zeigt ein vereinfachtes Flussdiagramm für ein Verfahren 700 zur Bereitstellung einer Mixed-Reality (MR)-Interaktion. Das Verfahren 700 kann beispielsweise von einem HMD in Verbindung mit der Prozessengine 600 von 6 auf Basis der oben beschriebenen Techniken ausgeführt werden. 7 shows a simplified flowchart for a method 700 to provide mixed reality (MR) interaction. The procedure 700 can be, for example, an HMD in conjunction with the process engine 600 from 6 based on the techniques described above.

Das Verfahren 700 beginnt mit Schritt 702, bei dem die Kamera 601 eines HMD des Benutzers ein erstes Bild einer Interaktion des Benutzers mit einem realen Objekt aufnehmen kann. Das reale Objekt kann beispielsweise eine reale Tastatur aufweisen und die Interaktion kann zum Beispiel ein Tippen der Finger des Benutzers auf das reale Tastenfeld umfassen.The procedure 700 starts with step 702 in which the camera 601 an HMD of the user can capture a first image of an interaction of the user with a real object. For example, the real object may include a real keyboard, and the interaction may include, for example, tapping the user's finger on the real keypad.

In Schritt 704 kann die Prozessengine 600 eine Bewegung des HMD relativ zum realen Objekt zwischen dem ersten Zeitpunkt und einem zweiten Zeitpunkt messen. Beispielsweise kann das Bewegungserfassungsmodul 602 wie oben beschrieben von der IMU 620 des HMD 160 eine Meldung über eine Bewegung des HMD 160 sowie Messungen von Geschwindigkeit und Richtung (z. B. Winkelgeschwindigkeit, Drehrichtung usw.) des HMD 160 empfangen. Außerdem kann das Latenzbestimmungsmodul 506 eine Verarbeitungsverzögerung bei einem Aufnehmen und Verarbeiten des Kamerabildes 170 von der Kamera 601 des HMD 160 auf Basis der oben beschriebenen Techniken bestimmen. Bei einem Beispiel kann das Latenzbestimmungsmodul 606 die Zeit, zu der die Kamera 601 das erste Bild aufnimmt, auf Basis des Inhalts des Kamerabildes 170 (das erste Bild weist z. B. ein Bild einer Uhr, ein von einem Objekt ausgesandtes sich mit der Zeit änderndes Muster, usw. auf) als ersten Zeitpunkt erhalten, einen zweiten Zeitpunkt aufzeichnen, wenn das erste Bild im Bildpufferspeicher 402 gespeichert und zum Erstellen eines zusammengesetzten Bildes verfügbar ist, und die Verarbeitungsverzögerung auf Basis einer Differenz zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt bestimmen. Außerdem kann das Kompensationsbestimmungsmodul 608 den Verschiebungsvektor VS beispielsweise auf Basis der Winkelgeschwindigkeitsinformationen und der Verarbeitungsverzögerungsinformationen bestimmen, die zur Berechnung des Drehwinkels α beispielsweise auf Basis einer Multiplikation der Winkelgeschwindigkeit mit der Verarbeitungsverzögerung verwendet werden können. Der Verschiebungsvektor kann auch auf Basis der Positionskoordinateninformationen 602 des HMD 160 und des Referenzobjekts 340 ermittelt werden. Die Positionskoordinateninformationen 603 können wie oben beschrieben beispielsweise aus Messungen gewonnen werden oder auf Messungen basieren, die mit Hilfe einer am Referenzobjekt 340 angebrachten Sensorkapsel, mit Hilfe von Lichtsensoren, die das vom Referenzobjekt 340 emittierte Licht erfassen, usw. zur Verfügung gestellt werden. Die Bestimmung des Verschiebungsvektors Vs kann durch eine Meldung des Bewegungserfassungsmoduls 602 über eine Bewegung des HMD 160 ausgelöst werden.In step 704 can the process engine 600 measure a movement of the HMD relative to the real object between the first time and a second time. For example, the motion detection module 602 as described above by the IMU 620 of the HMD 160 a message about a movement of the HMD 160 as well as measurements of speed and direction (eg angular velocity, direction of rotation, etc.) of the HMD 160 receive. In addition, the latency determination module 506 a processing delay in recording and processing the camera image 170 from the camera 601 of the HMD 160 based on the techniques described above. In one example, the latency determination module may be 606 the time to which the camera 601 takes the first picture based on the content of the camera image 170 (the first image has, for example, an image of a clock, a time-varying pattern emitted by an object, etc.) as the first one Received time to record a second time when the first frame in the frame buffer 402 stored and available to create a composite image, and determine the processing delay based on a difference between the first time and the second time. In addition, the compensation determination module 608 the displacement vector V S for example, based on the angular velocity information and the processing delay information that can be used to calculate the rotation angle α, for example, based on multiplying the angular velocity by the processing delay. The displacement vector may also be based on the position coordinate information 602 of the HMD 160 and the reference object 340 be determined. The position coordinate information 603 As described above, for example, they can be obtained from measurements or based on measurements made with the aid of a reference object 340 attached sensor capsule, with the help of light sensors, that of the reference object 340 detecting emitted light, etc. are made available. The determination of the displacement vector Vs can be achieved by a message from the motion detection module 602 about a movement of the HMD 160 to be triggered.

In Schritt 706 kann die Prozessengine 600 das erste Bild zum Erstellen des zweites Bildes auf Basis der Messung der Bewegung des HMD verarbeiten. Wenn die Bewegung beispielsweise nach der Aufnahme des ersten Bildes festgestellt wird, kann das Kompensationsbestimmungsmodul 608 zum Erstellen des zweiten Bildes die Informationen über den Verschiebungsvektor VS zur Bestimmung einer Verschiebungsrichtung und einer Verschiebungsstrecke verwenden und die Richtungs-/Streckeninformationen zum Ändern des Speicherorts des Anzeigebereichs 404 im Bildpufferspeicher 402 oder zur direkten Verschiebung des Bildes 170 im Bildpufferspeicher 402 verwenden.In step 706 can the process engine 600 process the first image to create the second image based on the measurement of movement of the HMD. For example, if motion is detected after the first image has been captured, the compensation determination module may 608 to create the second image, the information about the displacement vector V S for determining a shift direction and a shift distance, and the direction / route information for changing the storage location of the display area 404 in the frame buffer 402 or for direct displacement of the image 170 in the frame buffer 402 use.

In Schritt 708 kann die Prozessengine 600 auf Basis des zweiten Bildes ein zusammengesetztes Bild einer den Benutzer einbeziehenden virtuellen Interaktion erstellen. Beispielsweise kann das Modul 610 zum Erzeugen zusammengesetzter Bilder Pixel des Peripheriegerätes oder Pixel des Körperteils des Benutzers (z. B. Hand, Finger, usw.) extrahieren. Zur Wiedergabe einer virtuellen Interaktion kann das Modul 610 zum Erzeugen zusammengesetzter Bilder bei einigen Beispielen die extrahierten Pixel in ein zusammengesetztes Bild einfügen, das eine virtuelle Umgebung bildlich darstellt. Das Modul 610 zum Erzeugen zusammengesetzter Bilder kann das zusammengesetzte Bild auf Basis eines Ersetzens der extrahierten Pixel durch Pixel eines virtuellen Objekts (z. B. virtuelle Hand/Finger) auch aus dem ersten Bild erzeugen. Die extrahierten Pixel und/oder die virtuelle Umgebung können ferner so modifiziert werden, dass sie aufeinander abgestimmt sind. Beispielsweise kann die Luminanz der extrahierten Pixel des Körperteils des Benutzers an die Lichtverhältnisse der virtuellen Umgebung angepasst werden. Bei einem weiteren Beispiel können dem zusammengesetzten Bild auch von der Hand (repräsentiert durch die extrahierten Pixel) auf ein virtuelles Peripheriegerät geworfene virtuelle Schatten hinzugefügt werden. Ferner können bei einigen Beispielen zusätzliche Pixel der virtuellen Umgebung durch Hand-/Fingerpixel ersetzt werden, um Lücken bei der Extraktion der Hand-/Fingerpixel zu schließen.In step 708 can the process engine 600 based on the second image, create a composite image of a user-involving virtual interaction. For example, the module 610 for generating composite images, extract pixels of the peripheral device or pixels of the body part of the user (eg, hand, finger, etc.). To play a virtual interaction, the module 610 For example, to create composite images, in some examples, insert the extracted pixels into a composite image that depicts a virtual environment. The module 610 For generating composite images, the composite image may also be generated from the first image based on replacing the extracted pixels by pixels of a virtual object (e.g., virtual hand / finger). The extracted pixels and / or the virtual environment may be further modified to be matched. For example, the luminance of the extracted pixels of the body part of the user can be adapted to the lighting conditions of the virtual environment. In another example, virtual shadows cast by the hand (represented by the extracted pixels) on a virtual peripheral may also be added to the composite image. Further, in some examples, additional pixels of the virtual environment may be replaced by hand / finger pixels to close gaps in the extraction of the hand / finger pixels.

In Schritt 710 kann dann das zusammengesetzte Bild der Anzeige 530 des HMD 160 zur Verfügung gestellt werden, um es dem Benutzer anstelle der realen Interaktion zu präsentieren. Die Darstellung kann, um ein Mixed-Reality-Erlebnis zu ermöglichen, im Wesentlichen zeitgleich mit der realen Interaktion erfolgen.In step 710 then can the composite image of the ad 530 of the HMD 160 be made available to the user instead of the real interaction. The presentation may be done substantially simultaneously with the real interaction to facilitate a mixed reality experience.

8 zeigt ein vereinfachtes Flussdiagramm eines Verfahrens 800 zur Bereitstellung einer Mixed-Reality (MR) -Interaktion. Das Verfahren 800 kann beispielsweise an einem HMD in Verbindung mit der Prozessengine 600 von 6 auf Basis der oben beschriebenen Techniken ausgeführt werden. 8th shows a simplified flowchart of a method 800 to provide mixed reality (MR) interaction. The procedure 800 For example, on an HMD in conjunction with the process engine 600 from 6 based on the techniques described above.

Das Verfahren 800 beginnt mit Schritt 802, in dem ein erstes Bild einer Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung aufgenommen wird. Das erste Bild kann z. B. von der Kamera 601 eines HMD aufgenommen werden. Die Gliedmaße des Benutzers kann die reale Peripherieeingabevorrichtung zumindest teilweise verdecken. Das erste Bild kann eine reale Interaktion zwischen der Gliedmaße des Benutzers und der realen Peripherieeingabevorrichtung darstellen. Bei der Gliedmaße kann es sich z. B. um eine Hand, um Finger, usw. handeln. Bei der realen Peripherieeingabevorrichtung kann es sich beispielsweise um eine Tastatur, eine Maus, usw. handeln.The procedure 800 starts with step 802 in which a first image of a limb of a user and a real peripheral input device is captured. The first picture can be z. B. from the camera 601 an HMD. The limb of the user may at least partially obscure the real peripheral input device. The first image may represent a real interaction between the limb of the user and the real peripheral input device. The limb may be z. As a hand, fingers, etc. act. The physical peripheral input device may be, for example, a keyboard, a mouse, etc.

In Schritt 804 kann die Prozessengine 600 eine Segmentierung des ersten Bildes in einem zur Gliedmaße des Benutzers gehörenden ersten Pixelbereich vornehmen, wobei ein zweiter Pixelbereich zur realen Peripherieeingabevorrichtung gehört. Bei einigen Ausführungsformen kann das Segmentieren auf einem Vergleich der Pixel des ersten Bildes mit einem oder mehreren Schwellwerten basieren, die beispielsweise aufgrund einer Verteilung der Interaktionen mit der realen Peripherieeingabevorrichtung bestimmt werden. Die Verteilung der Interaktionen kann eine historische Verteilung der Interaktionen (des Benutzers oder einer Gruppe von Benutzern), eine aktuelle Verteilung der Interaktionen des Benutzers, oder eine Kombination von beidem umfassen. Der eine oder die mehreren Schwellwerte können auf Basis der oben beschriebenen Techniken auch an den Benutzer (z. B. auf Basis der Hautfarbe/-tönung des Benutzers, der Eigenschaften der Fingernägel des Benutzers, von Fingersegmenten, usw.) sowie der Betriebsbedingung (z. B. eine Umgebungshelligkeit) angepasst werden. Auf Basis des Segmentierungsergebnisses können Pixel des Peripheriegerätes oder Pixel des Körperteils des Benutzers extrahiert werden.In step 804 can the process engine 600 perform segmentation of the first image in a first pixel region associated with the limb of the user, wherein a second pixel region belongs to the real peripheral input device. In some embodiments, the segmentation may be based on a comparison of the pixels of the first image with one or more thresholds determined, for example, based on a distribution of the interactions with the physical peripheral input device. The distribution of the interactions may include a historical distribution of the interactions (of the user or a group of users), an actual distribution of the user's interactions, or a combination of both. The one or more thresholds may be based on of the techniques described above are also adapted to the user (eg, based on the skin color / tint of the user, the characteristics of the user's fingernails, finger segments, etc.) as well as the operating condition (eg, ambient brightness). Based on the segmentation result, pixels of the peripheral device or pixels of the body part of the user can be extracted.

In Schritt 806 kann die Prozessengine 600 aus dem ersten Bild ein zusammengesetztes Bild auf Basis dessen erstellen, dass anstelle des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung darstellen, sodass die virtuelle Peripherieeingabevorrichtung in dem zusammengesetzten Bild an der gleichen räumlichen Stelle wie die reale Peripherieeingabevorrichtung erscheint und zumindest teilweise durch die Gliedmaße des Benutzers verdeckt ist. Beispielsweise kann sich eine virtuelle Tastatur, wenn die Aufnahme des ersten Bildes den Benutzer beim Tippen auf einer realen Tastatur zeigt, im zusammengesetzten Bild räumlich am gleichen Ort befinden wie die reale Tastatur, wodurch der Benutzer den Eindruck gewinnt, dass er anstatt auf der realen Tastatur auf der virtuellen Tastatur tippt.In step 806 can the process engine 600 making a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region such that the virtual peripheral input device appears in the composite spatial image at the same spatial location as the real peripheral input device and at least partially through the peripheral image input device Limb of the user is covered. For example, if the capture of the first image shows the user typing on a real keyboard, a virtual keyboard may be spatially at the same location in the composite image as the real keyboard, thereby giving the user the impression that he is instead using the real keyboard typing on the virtual keyboard.

In Schritt 808 kann das zusammengesetzte Bild dem Benutzer z. B. über die Anzeige 630 präsentiert werden. Um dem Benutzer ein Mixed-Reality-Erlebnis zu vermitteln, kann das zusammengesetzte Bild im Wesentlichen zeitgleich mit der realen Interaktion angezeigt werden.In step 808 For example, the composite image may be useful to the user e.g. B. on the display 630 to get presented. To give the user a mixed reality experience, the composite image may be displayed substantially simultaneously with the real interaction.

Kurz zusammengefasst werden Verfahren und Systeme zum Ermöglichen einer Mixed-Reality (MR) -Interaktion angegeben. Bei einem Beispiel umfasst das Verfahren: Aufnehmen eines ersten Bildes einer Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung, wobei die Gliedmaße des Benutzers die reale Peripherieeingabevorrichtung zumindest teilweise verdeckt; Segmentieren des ersten Bildes in einen der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht; Erstellen eines zusammengesetzten Bildes aus dem ersten Bild auf Basis dessen, dass anstelle des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung darstellen, sodass die virtuelle Peripherieeingabevorrichtung im zusammengesetzten Bild räumlich an derselben Stelle wie die reale Peripherieeingabevorrichtung erscheint und von der Gliedmaße des Benutzers zumindest teilweise verdeckt ist; und Anzeigen des zusammengesetzten Bildes für den Benutzer. Briefly stated are methods and systems for facilitating mixed reality (MR) interaction. In one example, the method includes: capturing a first image of a limb of a user and a real peripheral input device, wherein the limb of the user at least partially obscures the real peripheral input device; Segmenting the first image into a first pixel region corresponding to the limb of the user, wherein a second pixel region corresponds to the real peripheral input device; Creating a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region such that the virtual peripheral input device spatially appears in the composite image at the same location as the real peripheral input device and at least the user's limb partially obscured; and displaying the composite image to the user.

Der Gegenstand der vorliegenden Offenbarung umfasst weitere Variationen. Demzufolge sind, auch wenn die offenbarten Techniken diversen Modifikationen und alternativen Konstruktionen gegenüber offen sind, in den Figuren bestimmte Ausführungsformen der oben ausführlich erläuterten Techniken dargestellt. Es wird jedoch darauf hingewiesen, dass eine Beschränkung der Offenbarung auf die offenbarte konkrete Form bzw. die offenbarten konkreten Formen nicht beabsichtigt ist, sondern vielmehr alle Modifikationen, alternativen Konstruktionen und Äquivalente abdecken soll, die vom Gegenstand und Umfang der Offenbarung, wie er in den beiliegenden Ansprüchen definiert ist, umfasst sind. Beispielsweise können jede der Ausführungsformen, alternative Ausführungsformen, usw. sowie deren Konzepte bei jeder der beschriebenen und/oder sich innerhalb des Gegenstands und Umfangs der Offenbarung befindenden Ausführungsform Anwendung finden.The subject matter of the present disclosure includes other variations. Accordingly, while the disclosed techniques are susceptible to various modifications and alternative constructions, certain embodiments of the techniques detailed above are illustrated in the figures. It is to be understood, however, that a limitation of the disclosure to the disclosed specific form (s) is not intended, but is intended to cover all modifications, alternative constructions, and equivalents, that are included in the spirit and scope of the disclosure as set forth in the is defined in the appended claims. For example, any of the embodiments, alternative embodiments, etc., and their concepts may be applied to any of the described and / or within the scope and spirit of the disclosure.

Die Verwendung der Begriffe „ein“ und „der“, „die“, „das“ und ähnlicher Referenzen im Zusammenhang einer Beschreibung offenbarter Ausführungsformen (insbesondere im Zusammenhang mit den nachfolgenden Ansprüchen) ist so auszulegen, dass sie sowohl den Singular als auch den Plural umfassen, sofern in dieser Schrift nichts anderes angegeben ist oder sich aus dem Kontext ein klarer Widerspruch ergibt. Die Begriffe „aufweisen“, „haben“, „umfassen“ und „enthalten“ sind, sofern nicht anders angegeben ist, als Begriffe für eine nicht abschließende Aufzählung zu verstehen (d .h. sie bedeuten „enthalten, ohne darauf beschränkt zu sein“). Der Begriff „verbunden“ ist als teilweise oder gänzlich in etwas enthalten, an etwas angebracht, oder mit etwas verbunden aufzufassen, auch dann, wenn sich etwas dazwischen befindet. Der Ausdruck „auf Basis“ sollte als erweiterbar und in keiner Weise einschränkend verstanden werden und soll, wo geeignet als „zumindest teilweise auf Basis“ interpretiert bzw. gelesen werden. Ein Anführen von Wertebereichen soll hier, sofern in dieser Schrift nichts anderes angegeben ist, lediglich als Kurzformel für ein Verfahren dienen, das auf jeden einzelnen der in den Bereich fallenden Werte individuell Bezug nimmt, wobei in dieser Schrift jeder einzelne Wert so mitaufgenommen ist, als wäre er darin direkt angeführt. Alle in dieser Schrift beschriebenen Verfahren können, sofern hier nichts anderes angegeben ist oder sich aus dem Kontext ein Widerspruch ergibt, in jeder geeigneten Reihenfolge ausgeführt werden. Alle Beispiele oder Beispiele einleitenden Formulierungen (z. B. „wie“), die in dieser Schrift verwendet wurden, dienen lediglich einer besseren Veranschaulichung der Ausführungsformen der Offenbarung und stellen, sofern nichts anders beansprucht ist, keine Beschränkung des Umfangs der Offenbarung dar. Keine der in der Spezifikation verwendeten Ausdrucksweisen sollte so ausgelegt werden, dass sie ein nicht beanspruchtes Element als wesentlich für die Ausführung der Offenbarung bezeichnet.The use of the terms "a" and "the", "the", "the" and similar references in the context of a description of disclosed embodiments (particularly in the context of the following claims), should be construed as including both the singular and the plural unless otherwise stated in this document or clear contradiction arises from the context. The terms "comprise," "have," "include," and "contain," unless otherwise specified, are to be understood as non-exhaustive enumeration terms (that is, they include, but are not limited to). ). The term "connected" is contained as part or wholly in something, appropriate to something, or to be associated with something, even if there is something in between. The term "based on" should be understood to be extensible and in no way limiting, and should, where appropriate, be interpreted or read as "at least partially based." Unless specified otherwise in this document, a range of value ranges is intended to serve only as a shorthand for a process which refers individually to each of the values falling within the range, in which case each individual value is included as he would be directly mentioned in it. All methods described in this specification may be carried out in any suitable order unless stated otherwise or contradicted in context. All examples or examples of preliminary formulations (eg, "as") used in this specification are merely illustrative of the embodiments of the disclosure and, unless otherwise claimed, do not limit the scope of the disclosure The expressions used in the specification should be construed to designate an unclaimed element as essential to the practice of the disclosure.

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 62645760 [0001]US 62645760 [0001]

Claims (22)

Verfahren zum Ermöglichen einer Mixed-Reality (MR) -Interaktion, das umfasst: Aufnehmen eines ersten Bildes von einer Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung, wobei die Gliedmaße des Benutzers die reale Peripherieeingabevorrichtung zumindest teilweise verdeckt, Segmentieren des ersten Bildes in einen der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht, Erstellen eines zusammengesetzten Bildes aus dem ersten Bild auf Basis dessen, dass anstelle des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung darstellen, sodass die virtuelle Peripherieeingabevorrichtung im zusammengesetzten Bild räumlich an derselben Stelle wie die reale Peripherieeingabevorrichtung erscheint und von der Gliedmaße des Benutzers zumindest teilweise verdeckt ist, und Anzeigen des zusammengesetzten Bildes für den Benutzer.A method of facilitating mixed reality (MR) interaction, comprising: Capturing a first image of a limb of a user and a real peripheral input device, wherein the limb of the user at least partially obscures the real peripheral input device; Segmenting the first image into a first pixel region corresponding to the limb of the user, a second pixel region corresponding to the real peripheral input device, Creating a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region such that the virtual peripheral input device spatially appears in the composite image at the same location as the real peripheral input device and at least the user's limb partially obscured, and Displaying the composite image to the user. Verfahren nach Anspruch 1, wobei das zusammengesetzte Bild dem Benutzer im Wesentlichen zu dem gleichen Zeitpunkt präsentiert wird, an dem die Gliedmaße des Benutzers die reale Peripherieeingabevorrichtung zumindest teilweise verdeckt.Method according to Claim 1 wherein the composite image is presented to the user at substantially the same time that the limb of the user at least partially obscures the real peripheral input device. Verfahren nach Anspruch 1 oder 2, wobei das Segmentieren des ersten Bildes auf Basis einer Verteilung von Aktivitäten an mehreren Stellen der realen Peripherieeingabevorrichtung erfolgt.Method according to Claim 1 or 2 wherein the segmenting of the first image is based on a distribution of activities at multiple locations of the physical peripheral input device. Verfahren nach Anspruch 3, wobei das Segmentieren des ersten Bildes umfasst: Bestimmen einer historischen Verteilung der Aktivitäten an den mehreren Stellen der realen Peripherieeingabevorrichtung, wobei die historische Verteilung der Aktivitäten auf vorherigen Interaktionen zwischen dem Benutzer oder einer Gruppe von Benutzern mit der realen Peripherieeingabevorrichtung basiert, Bestimmen von einem oder mehreren Schwellwerten auf Basis der historischen Verteilung der Aktivitäten, Vergleichen der Pixel des ersten Bildes mit dem einen oder den mehreren Schwellwerten, und Bestimmen des der Gliedmaße des Benutzers entsprechenden ersten Pixelbereichs und des der realen Peripherieeingabevorrichtung entsprechenden zweiten Pixelbereichs auf Basis der Vergleichsergebnisse.Method according to Claim 3 wherein segmenting the first image comprises determining an historical distribution of the activities at the plurality of locations of the physical peripheral input device, wherein the historical distribution of the activities is based on previous interactions between the user or a group of users with the physical peripheral input device, determining one or a plurality of thresholds based on the historical distribution of the activities, comparing the pixels of the first image with the one or more thresholds, and determining the first pixel region corresponding to the limb of the user and the second pixel region corresponding to the physical peripheral input device based on the comparison results. Verfahren nach Anspruch 4, wobei das Segmentieren des ersten Bildes umfasst: Bestimmen einer Verteilung der Wahrscheinlichkeiten, dass sich die Gliedmaße des Benutzers an einer jeweiligen Stelle der mehreren Stellen der realen Peripherieeingabevorrichtung befindet, auf Basis einer statistischen Analyse der historischen Verteilung der Aktivitäten, Identifizieren von Pixeln, die wahrscheinlich einem Teil der Gliedmaße des Benutzers entsprechen, auf Basis der Verteilung der Wahrscheinlichkeiten, und Bestimmen des einen oder der mehreren Schwellwerte auf Basis von einem oder mehreren Attributen der identifizierten Pixel.Method according to Claim 4 wherein segmenting the first image comprises determining a distribution of the probabilities that the user's limb is located at a respective one of the plurality of locations of the physical peripheral input device based on a statistical analysis of the historical distribution of the activities, identifying pixels likely to be corresponding to a portion of the limb of the user, based on the distribution of the probabilities, and determining the one or more thresholds based on one or more attributes of the identified pixels. Verfahren nach Anspruch 5, das ferner umfasst: Bestimmen eines ersten Schwellwerts des einen oder der mehreren zu einem ersten Bereich der Gliedmaße des Benutzers gehörenden Schwellwerte, Bestimmen eines zweiten Schwellwerts des einen oder der mehreren zu einem zweiten Bereich der Gliedmaße des Benutzers gehörenden Schwellwerte, und Vergleichen der Pixel des ersten Bildes mit dem ersten Schwellwert und dem zweiten Schwellwert, um den der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich zu bestimmen.Method according to Claim 5 method, further comprising: determining a first threshold of the one or more thresholds associated with a first portion of the limb of the user, determining a second threshold of the one or more thresholds associated with a second portion of the limb of the user, and comparing the pixels of the user first image having the first threshold and the second threshold to determine the first pixel region corresponding to the limb of the user. Verfahren nach Anspruch 6, das ferner umfasst: Bestimmen des ersten Schwellwerts und/oder des zweiten Schwellwerts auf Basis einer Umgebungshelligkeit und/oder einer Identität des Benutzers.Method according to Claim 6 method further comprising: determining the first threshold and / or the second threshold based on an ambient brightness and / or an identity of the user. Verfahren nach einem der Ansprüche 3 bis 7, wobei die Verteilung der Aktivitäten eine aktuelle Verteilung der Aktivitäten an den mehreren Stellen der realen Peripherieeingabevorrichtung umfasst.Method according to one of Claims 3 to 7 wherein the distribution of the activities comprises a current distribution of the activities at the plurality of locations of the real peripheral input device. Verfahren nach Anspruch 8, das ferner umfasst: Erhalten einer Meldung über ein Stattfinden einer Aktivität von einem sich an einer ersten Stelle der realen Peripherieeingabevorrichtung befindenden Sensor, Aufnehmen eines dritten Bildes der realen Peripherieeingabevorrichtung auf Basis der Meldung, Auswählen eines der ersten Stelle entsprechenden dritten Pixelbereichs und eines die erste Stelle umgebenden vierten Pixelbereichs, Bestimmen eines ersten Farbkomponenten-Histogramms für den dritten Pixelbereich, Bestimmen eines zweiten Farbkomponenten-Histogramms für den vierten Pixelbereich, Bestimmen von einem oder mehreren Schwellwerten auf Basis des ersten Histogramms und des zweiten Histogramms und Vergleichen von Pixeln des ersten Bildes mit dem einen oder den mehreren Schwellwerten, um den der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich des ersten Bildes zu bestimmen.Method according to Claim 8 further comprising: receiving an indication of an activity from a sensor located at a first location of the physical peripheral input device, capturing a third image of the physical peripheral input device based on the message, selecting a third pixel region corresponding to the first location, and one of the first Location, determining a first color component histogram for the third pixel region, determining a second color component histogram for the fourth pixel region, determining one or more thresholds based on the first histogram and the second histogram, and comparing pixels of the first image with the one or more thresholds to determine the first pixel region of the first image corresponding to the limb of the user. Verfahren nach Anspruch 9, das ferner umfasst: Identifizieren einer zweiten Stelle der realen Peripherieeingabevorrichtung, an der weniger als eine vorgegebene Anzahl früherer Aktivitäten stattgefunden hat, auf Basis einer historischen Verteilung der Aktivitäten, Identifizieren eines der zweiten Stelle entsprechenden fünften Pixelbereichs aus dem dritten Bild, Bestimmen eines dritten Farbkomponenten-Histogramms für den fünften Pixelbereich, Bestimmen eines zweiten Schwellwerts des einen oder der mehreren Schwellwerte auf Basis des dritten Histogramms und Vergleichen der Pixel des ersten Bildes mit dem zweiten Schwellwert, um den der realen Tastatur entsprechenden zweiten Pixelbereich des ersten Bildes zu bestimmen.Method according to Claim 9 method further comprising: identifying a second location of the physical peripheral input device that has less than a predetermined number of previous activities based on a historical distribution of the activities, Identifying a fifth pixel area corresponding to the second location from the third image, determining a third color component histogram for the fifth pixel area, determining a second threshold of the one or more thresholds based on the third histogram, and comparing the pixels of the first image to the second threshold to determine the second pixel area of the first image corresponding to the real keyboard. Verfahren nach einem der Ansprüche 3 bis 10, das ferner umfasst: Bestimmen einer zeitlichen Änderung der Verteilung der Aktivitäten, Bestimmen eines Bereichs von Interesse auf Basis der Änderung, Identifizieren von Pixeln in dem Bereich von Interesse des ersten Bildes und Bestimmen des der Gliedmaße des Benutzers entsprechenden ersten Pixelbereichs aus den identifizierten Pixeln.Method according to one of Claims 3 to 10 method further comprising: determining a temporal change of the distribution of the activities, determining a region of interest based on the change, identifying pixels in the region of interest of the first image, and determining the first pixel region corresponding to the limb of the user from the identified pixels. Verfahren nach einem der Ansprüche 3 bis 11, wobei die Verteilung der Aktivitäten aus mehreren Aktivitätsverteilungen auf Basis eines Modells der realen Peripherieeingabevorrichtung und/oder einer Anwendung bestimmt wird, für die der Benutzer mit der realen Peripherieeingabevorrichtung interagiert.Method according to one of Claims 3 to 11 wherein the distribution of the activities from a plurality of activity distributions is determined based on a model of the real peripheral input device and / or an application for which the user interacts with the physical peripheral input device. Verfahren nach einem der Ansprüche 1 bis 12, das ferner umfasst: Aufnehmen eines zweiten Bildes der realen Peripherieeingabevorrichtung, die nicht durch eine Gliedmaße des Benutzers verdeckt ist, Bestimmen von einem oder mehreren Schwellwerten auf Basis des zweiten Bildes, Senden eines Hinweises an den Benutzer zum Legen der Gliedmaße des Benutzers an vorgegebene Stellen der realen Peripherieeingabevorrichtung, Aufnehmen eines dritten Bildes der Gliedmaße des Benutzers an den vorgegebenen Stellen der realen Peripherieeingabevorrichtung, Einstellen des einen oder der mehreren Schwellwerte auf Basis der vorgegebenen Stellen der realen Tastatur entsprechenden Pixeln des dritten Bildes und Vergleichen der Pixel des ersten Bildes mit dem angepassten einen oder den angepassten mehreren Schwellwerten, um den der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich zu bestimmen.Method according to one of Claims 1 to 12 further comprising: capturing a second image of the real peripheral input device that is not obscured by a limb of the user, determining one or more thresholds based on the second image, sending an indication to the user to place the limb of the user at predetermined locations the real peripheral input device, capturing a third image of the limb of the user at the predetermined locations of the real peripheral input device, adjusting the one or more thresholds based on the predetermined locations of the real keyboard corresponding pixels of the third image, and comparing the pixels of the first image with the adjusted one one or more matched thresholds to determine the first pixel region corresponding to the limb of the user. Verfahren nach einem der Ansprüche 1 bis 13, wobei das zusammengesetzte Bild auf Basis eines Ersetzen von Pixeln, die einer realen Umgebung entsprechen, in der sich die reale Peripherieeingabevorrichtung befindet, durch Pixel erstellt wird, die eine virtuelle Umgebung wiedergeben, in der sich die virtuelle Peripherieeingabevorrichtung befindet.Method according to one of Claims 1 to 13 wherein the composite image is created by pixels representing a virtual environment in which the virtual peripheral input device is located based on a replacement of pixels corresponding to a real environment in which the real peripheral input device is located. Verfahren nach Anspruch 14, wobei das zusammengesetzte Bild auf Basis eines Einstellens einer Luminanz des ersten Pixelbereichs auf Basis einer Luminanz der virtuellen Umgebung erzeugt wird.Method according to Claim 14 wherein the composite image is generated based on adjusting a luminance of the first pixel region based on a luminance of the virtual environment. Verfahren nach Anspruch 14 oder 15, wobei das zusammengesetzte Bild auf Basis eines Hinzufügens eines virtuellen Schattenwurfs der Gliedmaße des Benutzers in die virtuelle Umgebung erstellt wird.Method according to Claim 14 or 15 wherein the composite image is created based on adding a virtual shadow cast of the user's limb into the virtual environment. Verfahren nach einem der Ansprüche 1 bis 16, wobei das erste Bild von einer Kamera eines Head-Mounted Display (HMD) aufgenommen wird und wobei das zusammengesetzte Bild an dem HMD angezeigt wird.Method according to one of Claims 1 to 16 wherein the first image is taken by a camera of a head-mounted display (HMD) and wherein the composite image is displayed on the HMD. Verfahren nach einem der Ansprüche 1 bis 17, wobei das Segmentieren des ersten Bildes in den der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich, ein Identifizieren von zwei oder mehr Schwellwerten für die Gliedmaße des Benutzers wiedergebende Pixelwerte umfasst, wobei Pixel des ersten Bildes, die nicht innerhalb der zwei oder mehr Schwellwerte liegen, verworfen werden.Method according to one of Claims 1 to 17 wherein segmenting the first image into the first pixel region corresponding to the limb of the user, identifying two or more threshold values for the user's limb comprises rendering pixel values wherein pixels of the first image that are not within the two or more thresholds are discarded become. Vorrichtung, die aufweist: eine Anzeigevorrichtung, eine Kamera, die zum Aufnehmen eines ersten Bildes einer Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung ausgebildet ist, wobei die Gliedmaße des Benutzers die reale Peripherieeingabevorrichtung zumindest teilweise verdeckt, und einen Bildprozessor, der mit der Kamera und mit der Anzeigevorrichtung gekoppelt und ausgebildet ist: das erste Bild von der Kamera erhalten, das erste Bild in einen der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich zu segmentieren, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht, ein zusammengesetztes Bild aus dem ersten Bild auf Basis dessen zu erstellen, dass anstelle des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung darstellen, sodass die virtuelle Peripherieeingabevorrichtung im zusammengesetzten Bild räumlich an derselben Stelle wie die reale Peripherieeingabevorrichtung erscheint und von der Gliedmaße des Benutzers zumindest teilweise verdeckt ist, und das zusammengesetzt Bild der Anzeigevorrichtung zur Präsentation für den Benutzer bereitzustellen.Apparatus comprising: a display device, a camera adapted to capture a first image of a limb of a user and a real peripheral input device, wherein the limb of the user at least partially obscures the real peripheral input device, and an image processor coupled to and configured with the camera and the display device: get the first picture from the camera, segment the first image into a first pixel region corresponding to the limb of the user, a second pixel region corresponding to the real peripheral input device, to construct a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region such that the virtual peripheral input device spatially appears in the composite image at the same location as the real peripheral input device and the limb of the user at least partially obscured, and to provide the composite image of the display device for presentation to the user. Vorrichtung nach Anspruch 19, wobei die Vorrichtung zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 18 ausgebildet ist.Device after Claim 19 wherein the apparatus for carrying out a method according to one of Claims 1 to 18 is trained. Nichtflüchtiges computerlesbares Medium, in dem Anweisungen gespeichert sind, die bei Ausführung durch einen Hardwareprozessor den Hardwareprozessor veranlassen: von einer Kamera ein erstes Bild von der Gliedmaße eines Benutzers und einer realen Peripherieeingabevorrichtung zu empfangen, wobei die Gliedmaße des Benutzers die reale Peripherieeingabevorrichtung zumindest teilweise verdeckt, das erste Bild in einen der Gliedmaße des Benutzers entsprechenden ersten Pixelbereich zu segmentieren, wobei ein zweiter Pixelbereich der realen Peripherieeingabevorrichtung entspricht, ein zusammengesetztes Bild aus dem ersten Bild auf Basis dessen zu erstellen, dass anstelle des zweiten Pixelbereichs Pixel gerendert werden, die eine virtuelle Peripherieeingabevorrichtung darstellen, sodass die virtuelle Peripherieeingabevorrichtung im zusammengesetzten Bild räumlich an derselben Stelle wie die reale Peripherieeingabevorrichtung erscheint und von der Gliedmaße des Benutzers zumindest teilweise verdeckt ist, und das zusammengesetzt Bild der Anzeigevorrichtung zur Präsentation für den Benutzer bereitzustellen.Non-transitory computer readable medium storing instructions that, when executed by a hardware processor, cause the hardware processor: receive from a camera a first image of the limb of a user and a real peripheral input device, wherein the limb of the user at least partially obscures the real peripheral input device to segment the first image into a first pixel region corresponding to the limb of the user, wherein a second pixel region is the one real peripheral input device corresponds to creating a composite image from the first image based on rendering pixels representing a virtual peripheral input device instead of the second pixel region so that the virtual peripheral input device spatially appears in the composite image at the same location as the real peripheral input device the limb of the user is at least partially obscured, and to provide the composite image of the display device for presentation to the user. Nichtflüchtiges, computerlesbares Medium nach Anspruch 21, wobei die Anweisungen den Hardwareprozessor zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 18 veranlassen.Non-volatile, computer-readable medium after Claim 21 wherein the instructions are the hardware processor for performing a method according to any one of Claims 1 to 18 cause.
DE102019107103.8A 2018-03-20 2019-03-20 METHOD AND SYSTEM FOR OBJECT SEGMENTATION IN A MIXED REALITY ENVIRONMENT Active DE102019107103B4 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862645760P 2018-03-20 2018-03-20
US62/645,760 2018-03-20
US16/267,197 US11182962B2 (en) 2018-03-20 2019-02-04 Method and system for object segmentation in a mixed reality environment
US16/267,197 2019-02-04

Publications (2)

Publication Number Publication Date
DE102019107103A1 true DE102019107103A1 (en) 2019-09-26
DE102019107103B4 DE102019107103B4 (en) 2023-08-17

Family

ID=67848488

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019107103.8A Active DE102019107103B4 (en) 2018-03-20 2019-03-20 METHOD AND SYSTEM FOR OBJECT SEGMENTATION IN A MIXED REALITY ENVIRONMENT

Country Status (1)

Country Link
DE (1) DE102019107103B4 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112668596A (en) * 2019-10-15 2021-04-16 北京地平线机器人技术研发有限公司 Three-dimensional object recognition method and device and recognition model training method and device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI420401B (en) 2008-06-11 2013-12-21 Vatics Inc Algorithm for feedback type object detection
US8140970B2 (en) 2009-02-23 2012-03-20 International Business Machines Corporation System and method for semi-transparent display of hands over a keyboard in real-time

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112668596A (en) * 2019-10-15 2021-04-16 北京地平线机器人技术研发有限公司 Three-dimensional object recognition method and device and recognition model training method and device
CN112668596B (en) * 2019-10-15 2024-04-16 北京地平线机器人技术研发有限公司 Three-dimensional object recognition method and device, recognition model training method and device

Also Published As

Publication number Publication date
DE102019107103B4 (en) 2023-08-17

Similar Documents

Publication Publication Date Title
US10943402B2 (en) Method and system for mixed reality interaction with peripheral device
Blascheck et al. State-of-the-art of visualization for eye tracking data.
CN102866819B (en) The interactive whiteboard of the writing medium that use can disappear
DE212019000172U1 (en) Handed determination system for virtual controllers
DE102009023875A1 (en) Gesture recognition interface system with vertical display area
DE102014204320A1 (en) Information query by pointing
US20210012540A1 (en) Calligraphy-painting device, calligraphy-painting apparatus, and auxiliary method for calligraphy-painting
CN108932053A (en) Drawing practice, device, storage medium and computer equipment based on gesture
US20150235391A1 (en) Information input display device and information input display method
CN109035370A (en) A kind of picture mask method and system
CN113672099A (en) Electronic equipment and interaction method thereof
US20220366717A1 (en) Sensor-based Bare Hand Data Labeling Method and System
CN110379251A (en) Intelligence based on touch-control clipboard assists system of practising handwriting
Cheng et al. Smooth gaze: a framework for recovering tasks across devices using eye tracking
CN115393872A (en) Method, device and equipment for training text classification model and storage medium
US20210279928A1 (en) Method and apparatus for image processing
WO2022237117A1 (en) Touch control method and system for interactive electronic whiteboard, and readable medium
CN109858402B (en) Image detection method, device, terminal and storage medium
CN110472600A (en) The identification of eyeground figure and its training method, device, equipment and storage medium
DE102019107103B4 (en) METHOD AND SYSTEM FOR OBJECT SEGMENTATION IN A MIXED REALITY ENVIRONMENT
CN113110733A (en) Virtual field interaction method and system based on remote duplex
DE102019107145B4 (en) METHOD, DEVICE AND NON-VOLATILE COMPUTER READABLE MEDIUM FOR MIXED REALITY INTERACTION WITH A PERIPHERAL DEVICE
Zhang Educational psychology analysis method for extracting students’ facial information based on image big data
DE112018002518T5 (en) INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING PROCESS AND PROGRAM
CN109358799A (en) The method of the hand annotation information of user's input is added on handwriting equipment

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division