-
VERWEISE AUF IN BEZUG GENOMMENE ANMELDUNGEN
-
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.
-
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.
-
HINTERGRUND
-
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.
-
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.
-
KURZBESCHREIBUNG
-
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.
-
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.
-
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.
-
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.
-
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.
-
Bei einigen Ausgestaltungen umfassen die einen oder die mehreren Messergebnisse eine Winkelgeschwindigkeit des HMD und eine Drehrichtung des 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.
-
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.
-
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.
-
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.
-
Bei einigen Ausgestaltungen wird der erste Zeitpunkt auf Basis einer Bestimmung der Zeit bestimmt, zu der sich ein Verschluss der Kamera des HMD öffnet.
-
Bei einigen Ausgestaltungen wird der zweite Zeitpunkt auf Basis einer Bestimmung der Zeit bestimmt, zu der das erste Bild im Bildpufferspeicher gespeichert wird.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Bei einigen Ausgestaltungen umfasst der Körperteil des Benutzers zumindest einen Teil einer Hand des Benutzers.
-
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.
-
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.
-
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.
-
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.
-
Bei einigen Ausgestaltungen erfolgt das Segmentieren des ersten Bildes auf Basis einer Verteilung von Aktivitäten auf mehrere Stellen der realen Peripherieeingabevorrichtung.
-
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.
-
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.
-
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.
-
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.
-
Bei einigen Ausgestaltungen umfasst die Verteilung der Aktivitäten eine aktuelle Verteilung der Aktivitäten auf die mehreren Stellen der realen Peripherieeingabevorrichtung.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Bei einigen Ausgestaltungen wird das zusammengesetzte Bild auf Basis einer Anpassung einer Luminanz des ersten Pixelbereichs auf Basis einer Luminanz der virtuellen Umgebung erstellt.
-
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.
-
Bei einigen Ausgestaltungen wird das erste Bild von einer Kamera eines Head-Mounted Displays (HMD) aufgenommen. Das zusammengesetzte Bild wird an dem HMD angezeigt.
-
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.
-
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.
-
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.
-
Figurenliste
-
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.
-
AUSFÜHRLICHE BESCHREIBUNG
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Konzeptioneller Überblick über bestimmte Ausführungsformen
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Typische Systemumgebung für bestimmte Beispiele
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Beispiele für ein Generieren immersiver Mixed-Realitv-Erlebnisse
-
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 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.
-
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.
-
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.
-
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:
-
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.
-
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.
-
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.
-
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.
-
Ausführungsformen für die Bildverzögerungskompensation
-
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.
-
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:
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Ausführungsformen für eine Handsegmentierung auf Basis der Aktivitätsverteilung
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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).
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
System
-
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.
-
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.
-
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.
-
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.
-
Verfahren
-
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.
-
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.
-
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 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 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 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.
-
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.
-
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.
-
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 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 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.
-
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.
-
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.
-
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.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
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.
-
Zitierte Patentliteratur
-