-
STAND DER TECHNIK
-
Einige Vorrichtungen sind in der Lage, Umgebungen der erweiterten Realität (Extended Reality, XR) zu generieren und zu präsentieren. Eine XR-Umgebung kann eine ganz oder teilweise simulierte Umgebung einschließen, die Menschen über ein elektronisches System wahrnehmen und/oder mit der sie interagieren. In XR wird ein Teilsatz der physischen Bewegungen einer Person oder deren Repräsentationen verfolgt, und als Reaktion darauf werden eine oder mehrere Charakteristiken eines oder mehrerer virtueller Objekte, die in der XR-Umgebung simuliert werden, so angepasst, dass sie sich realistischen Eigenschaften entsprechend verhalten. Einige XR-Umgebungen ermöglichen es, dass mehrere Benutzer innerhalb der XR-Umgebung mit virtuellen Objekten oder miteinander interagieren. Zum Beispiel können Benutzer Gesten verwenden, um mit Komponenten der XR-Umgebung zu interagieren.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
- 1A-1B zeigen Diagramme eines Benutzers, der mit einer Vorrichtung interagiert, gemäß einigen Ausführungsformen.
- 2 zeigt ein Flussdiagramm einer Technik zum Abbilden einer Eingabebewegung auf ein sphärisches Koordinatensystem gemäß einigen Ausführungsformen.
- 3 zeigt ein Flussdiagramm einer Technik zum Bestimmen eines Ursprungs für ein sphärisches Koordinatensystem gemäß einigen Ausführungsformen.
- 4 zeigt ein Diagramm zur benutzerzentrierten Bewegungsabbildung gemäß einigen Ausführungsformen.
- 5 zeigt ein Diagramm eines Benutzers, der mit einer Vorrichtung interagiert, gemäß einigen Ausführungsformen.
- 6 zeigt ein Flussdiagramm einer Technik zum Abbilden einer Handgelenkbewegung gemäß einer oder mehreren Ausführungsformen.
- 7 zeigt ein Diagramm zur Erfassung einer verlorenen Bewegung gemäß einer oder mehreren Ausführungsformen.
- 8A-8D zeigen Diagramme einer Technik zum Identifizieren von Charakteristiken einer Benutzereingabebewegung gemäß einer oder mehreren Ausführungsformen.
- 9 zeigt ein Flussdiagramm einer Technik zum Bestimmen von Charakteristiken einer Benutzereingabebewegung gemäß einer oder mehreren Ausführungsformen.
- 10 zeigt in Blockdiagrammform beispielhafte Systeme zum Verwalten von UI-Einsatz gemäß einigen Ausführungsformen.
- 11 zeigt ein beispielhaftes System zur Verwendung bei der Bewegungsabbildung gemäß einer oder mehreren Ausführungsformen.
-
DETAILLIERTE BESCHREIBUNG
-
Diese Offenbarung betrifft Systeme, Verfahren und computerlesbare Medien, um eine benutzerzentrierte Bewegungsabbildung bereitzustellen. Insbesondere beschreibt diese Offenbarung Techniken zum Abbilden einer Benutzerbewegung, die mit einer Gesteneingabe assoziiert ist, von einem sphärischen Koordinatensystem in ein planares oder 2D-Koordinatensystem. Ferner beziehen sich hierin beschriebene Techniken auf das Bestimmen eines geeigneten Ursprungs für ein solches sphärisches Koordinatensystem in verschiedenen Kontexten.
-
Gemäß einigen Ausführungsformen kann eine Eingabebewegung eines Benutzers detektiert werden. Ein Ursprung für die Eingabebewegung kann zum Beispiel in Bezug auf einen Bogen der Bewegung bestimmt werden. Der Ursprung der Eingabebewegung kann in Verbindung mit einem Ort am Benutzer bestimmt werden. Zum Beispiel kann der Ursprung basierend auf einem Ort eines Gelenks des Benutzers, wie einer Schulter, eines Ellenbogens, eines Handgelenks oder dergleichen, bestimmt werden. Ferner kann sich in einigen Ausführungsformen der Ursprung entlang eines Vektors befinden oder von einem der Gelenke ausgehen, wie einem Schwerkraftvektor von einem der Gelenke, einem Vektor, der mit den Gelenken verbunden ist, oder dergleichen. Die Bogenlänge kann zum Beispiel basierend auf einem bestimmten Ort einer Hand oder eines Gestenschwerpunkts, wie einer bestimmten Mitte des Kneifens oder dergleichen, bestimmt werden. Dann kann die Bogenlänge in eine 2D-Benutzereingabekomponente, wie eine Benutzerschnittstellenebene, übersetzt werden.
-
Hierin beschriebene Ausführungsformen stellen eine verbesserte Technik zum Bereitstellen einer gestenbasierten Eingabe basierend auf einem detektierten Benutzerverhalten bereit. Benutzer neigen dazu, sich unter Verwendung von Bogenbewegungen basierend auf Einschränkungen der menschlichen Anatomie zu bewegen. Zum Beispiel bewegen sich Menschen, die ihre Arme im Raum bewegen, in einem Bogen basierend auf der Einschränkung des Schultergelenks, des Ellenbogengelenks, des Handgelenks oder dergleichen. Beim Anwenden dieser Bogenbewegungen als Eingabe in die Benutzerschnittstelle können Artefakte auftreten, wie versehentliche Eingaben, unbeabsichtigte Richtungsbewegung, Zitterbewegungen oder dergleichen. Hierin beschriebene Ausführungsformen sprechen diese Probleme an, indem sie eine handbewegungsbasierte Eingabe in einem sphärischen Koordinatensystem verfolgen und die Handbewegung von dem sphärischen Koordinatensystem in ein 2D-Koordinatensystem einer Benutzerschnittstellenebene übersetzen. Somit stellen Techniken eine Verbesserung bei der Abbildung der Benutzerbewegung auf eine Benutzerschnittstelle bereit, wodurch eine Fähigkeit der Vorrichtung verbessert wird, Benutzereingaben zu analysieren und Verbesserungen an der Benutzerschnittstelle selbst bereitzustellen.
-
Hierin beschriebene Ausführungsformen beschreiben zusätzlich eine Technik zum Bestimmen einer benutzerzentrierten Bewegung basierend auf einer Bewegung eines Arms/einer Hand eines Benutzers durch Zerlegen der biomechanischen Kette der Armbewegung um verschiedene Gelenke des Arms. Das heißt, eine Bewegung eines Gestenschwerpunkts kann bestimmt werden, indem ein Bewegungsbetrag des Gestenschwerpunkts, der auf eine Drehung um eine Schulter zurückzuführen ist, ein Bewegungsbetrag des Gestenschwerpunkts, der auf eine Drehung um einen Ellenbogen zurückzuführen ist, und ein Bewegungsbetrag des Gestenschwerpunkts, der auf eine Drehung um ein Handgelenk zurückzuführen ist, bestimmt werden. Jede dieser Bewegungsberechnungen kann in Form eines Vektors bestimmt werden, die, wenn sie addiert werden, die volle Bewegung des Gestenschwerpunkts bereitstellen.
-
Gemäß einer oder mehreren Ausführungsformen stellt das Zerlegen der biomechanischen Kette auf eine derartige Art und Weise, dass eine Benutzereingabebewegung bestimmt wird, zahlreiche technische Verbesserungen bereit. Zum Beispiel stellen viele Handverfolgungs- und Körperverfolgungssysteme Gelenkorte auf eine genauere oder häufigere Weise bereit. Diese Gelenkorte können zum Beispiel Orte einer Schulter, eines Ellenbogens, eines Handgelenks und/oder einer Fingerspitze oder eines anderen Gelenks oder anderer Gelenke einschließen, von denen ein Gestenschwerpunkt abgeleitet werden kann. Dementsprechend kann durch das Bestimmen der Richtung und/oder der Abstände einer Bewegung eines Gestenschwerpunkts, die auf Drehungen um die verschiedenen Gelenke zurückzuführen sind, die Benutzereingabebewegung genauer die Benutzerabsicht widerspiegeln, als wenn die Bewegung des Gestenschwerpunkts ohne Kontextinformationen verfolgt wurde, die aus der Bewegung der verschiedenen Gelenke entstehen.
-
Eine physische Umgebung bezieht sich auf eine physische Welt, die Menschen ohne die Hilfe von elektronischen Systemen wahrnehmen und/oder darin interagieren können. Die physische Umgebung kann physische Merkmale, wie etwa eine physische Oberfläche oder ein physisches Objekt, einschließen. Zum Beispiel entspricht die physische Umgebung einem physischen Park, der physische Bäume, physische Gebäude und physische Personen einschließt. Menschen können die physische Umgebung direkt wahrnehmen und/oder mit ihr interagieren, wie durch Sehen, Berühren, Hören, Schmecken und Riechen. Im Gegensatz dazu bezieht sich eine XR-Umgebung auf eine ganz oder teilweise simulierte Umgebung, die Menschen über eine elektronische Vorrichtung wahrnehmen und/oder mit der sie interagieren. Zum Beispiel kann die XR-Umgebung Inhalte erweiterter Realität (Augmented Reality, AR), vermischter Realität (MR), virtueller Realität und/oder dergleichen einschließen. Mit einem XR-System wird ein Teilsatz der physischen Bewegungen einer Person oder deren Repräsentationen verfolgt, und als Reaktion darauf werden eine oder mehrere Charakteristiken eines oder mehrerer virtueller Objekte, die in der XR-Umgebung simuliert werden, so angepasst, dass sie mit mindestens einem physikalischen Gesetz übereinstimmen. Zum Beispiel kann ein XR-System eine Kopfbewegung detektieren und als Reaktion darauf den der Person dargestellten graphischen Inhalt und ein akustisches Feld auf eine Weise anpassen, die dem ähnelt, wie solche Ansichten und Geräusche sich in einer physischen Umgebung verändern würden. Als weiteres Beispiel kann das XR-System eine Bewegung der elektronischen Vorrichtung erfassen, welche die XR-Umgebung darstellt (z. B. ein Mobiltelefon, ein Tablet, ein Laptop oder dergleichen), und als Reaktion darauf einen grafischen Inhalt und ein akustisches Feld, die der Person dargestellt werden, auf ähnliche Weise anpassen, wie sich solche Ansichten und Geräusche in einer physischen Umgebung ändern würden. In einigen Situationen (z. B. aus Gründen der Zugänglichkeit) kann das XR-System die Eigenschaft(en) des grafischen Inhalts in der XR-Umgebung als Reaktion auf Darstellungen physischer Bewegungen (z. B. Sprachanweisungen) anpassen.
-
Es gibt viele unterschiedliche Arten von elektronischen Systemen, die einer Person ermöglichen, verschiedene XR-Umgebungen wahrzunehmen und/oder mit diesen zu interagieren. Beispiele sind am Kopf montierbare Systeme, projektionsbasierte Systeme, Heads-Up-Displays (HUD), Fahrzeugwindschutzscheiben mit integrierter Anzeigefähigkeit, Fenster mit integrierter Anzeigefähigkeit, Anzeigen, die als Linsen ausgebildet sind, die dazu bestimmt sind, auf den Augen einer Person platziert zu werden (z. B. ähnlich Kontaktlinsen), Kopfhörer/Ohrhörer, Lautsprecherarrays, Eingabesysteme (z. B. am Körper tragbare oder als Handgeräte ausgeführte Steuerungen mit oder ohne haptische Rückmeldung), Smartphones, Tablets und Desktop-/Laptop-Computer. Ein am Kopf montierbares System kann einen oder mehrere Lautsprecher und eine integrierte opake Anzeige aufweisen. Alternativ kann ein am Kopf montierbares System konfiguriert sein, um eine externe opake Anzeige (z. B. ein Smartphone) aufzunehmen. Das am Kopf montierbare System kann einen oder mehrere bildgebende Sensoren enthalten, um Bilder oder Videoaufnahmen der physischen Umgebung zu erfassen, und/oder ein oder mehrere Mikrofone, um Audioaufnahmen der physischen Umgebung zu erfassen. Anstelle einer opaken Anzeige kann ein am Kopf montierbares System eine transparente oder transluzente Anzeige aufweisen. Die transparente oder transluzente Anzeige kann ein Medium aufweisen, durch das Licht, das für Bilder repräsentativ ist, auf die Augen einer Person gerichtet wird. Die Anzeige kann eine digitale Lichtprojektion, OLEDs, LEDs, uLEDs, Flüssigkristalle auf Silicium, eine Laserscanning-Lichtquelle oder eine beliebige Kombination dieser Technologien nutzen. Das Medium kann ein Lichtwellenleiter, ein Hologrammmedium, ein optischer Kombinierer, ein optischer Reflektor oder eine Kombination davon sein. In einigen Implementierungen kann die transparente oder transluzente Anzeige konfiguriert sein, um selektiv opak zu werden. Projektionsbasierte Systeme können eine retinale Projektionstechnologie einsetzen, die grafische Bilder auf die Netzhaut einer Person projiziert. Projektionssysteme können auch so konfiguriert sein, dass sie virtuelle Objekte in die physische Umgebung projizieren, zum Beispiel als Hologramm oder auf einer physischen Oberfläche.
-
In der nachfolgenden Beschreibung werden zu Erläuterungszwecken zahlreiche konkrete Details dargelegt, um ein gründliches Verständnis der offenbarten Konzepte zu schaffen. Als Teil dieser Beschreibung stellen manche Zeichnungen dieser Offenbarung Strukturen und Vorrichtungen in Blockdiagrammform dar, um eine Verunklarung der neuartigen Gesichtspunkte der offenbarten Konzepte zu vermeiden. Der Klarheit halber sind möglicherweise nicht alle Merkmale einer tatsächlichen Implementierung beschrieben. Ferner können als Teil dieser Beschreibung manche der Zeichnungen dieser Offenbarung in Form von Flussdiagrammen bereitgestellt werden. Die Kästchen in einem bestimmten Flussdiagramm können in einer bestimmten Reihenfolge dargestellt sein. Es sollte sich jedoch verstehen, dass die bestimmte Abfolge eines beliebigen gegebenen Flussdiagramms nur zum Veranschaulichen einer Ausführungsform verwendet wird. In anderen Ausführungsformen kann ein beliebiges der verschiedenen Elemente, die in dem Flussdiagramm dargestellt sind, gelöscht werden, oder die veranschaulichte Abfolge von Vorgängen kann in einer anderen Reihenfolge oder sogar gleichzeitig durchgeführt werden. Außerdem können andere Ausführungsformen zusätzliche Schritte einschließen, die nicht als Teil des Flussdiagramms dargestellt sind. Darüber hinaus wurde die in dieser Offenbarung verwendete Sprache hauptsächlich aus Gründen der Lesbarkeit und zu Anweisungszwecken ausgewählt, und sie wurde möglicherweise nicht ausgewählt, um den Erfindungsgegenstand zu skizzieren oder abzugrenzen, wobei die Patentansprüche heranzuziehen sind, um diesen Erfindungsgegenstand zu bestimmen. Eine Bezugnahme in dieser Offenbarung auf „eine Ausführungsform“ bedeutet, dass ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft, die bzw. das in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform des offenbarten Gegenstands eingeschlossen ist, und mehrere Bezugnahmen auf „eine Ausführungsform“ sollten nicht so verstanden werden, dass sich diese zwingend alle auf dieselbe Ausführungsform beziehen.
-
Es versteht sich, dass bei der Entwicklung einer tatsächlichen Implementierung (wie bei jedem Software- und/oder Hardwareentwicklungsprojekt) zahlreiche Entscheidungen gefällt werden müssen, um die speziellen Ziele eines Entwicklers (z. B. Konformität mit system- und geschäftsbezogenen Einschränkungen) zu erreichen, und dass diese Ziele von einer Implementierung zu einer anderen variieren können. Zudem versteht es sich, dass solche Entwicklungsanstrengungen komplex und zeitaufwändig sein können, aber trotzdem für den Durchschnittsfachmann für die Entwicklung und Implementierung von Grafikmodellierungssystemen, der den Nutzen dieser Offenbarung hat, ein Routineprojekt darstellen würden.
-
1A-B zeigen einen Systemaufbau für einen Benutzer, der mit einer Vorrichtung interagiert, gemäß einigen Ausführungsformen. Es versteht sich, dass die verschiedenen Merkmale und Beschreibungen von 1A-B für veranschaulichende Zwecke bereitgestellt werden und den Schutzumfang der Offenbarung nicht notwendigerweise einschränken sollen.
-
In 1A ist ein Systemaufbau 100A bereitgestellt, in dem ein Benutzer 102 eine Anzeigevorrichtung 106 ansieht. Insbesondere stellt 1A ein Beispiel eines Benutzers 102 dar, der eine Gestenbewegung 114A mit einer Hand 104A verwendet, um eine Benutzereingabe zum Modifizieren einer Benutzereingabekomponente 120 auf einer Anzeigevorrichtung 106 zu bewirken. Wie gezeigt, wird die durch die Hand 104A verursachte Bewegung 114A in einer Bogenbewegung bereitgestellt. In einigen Ausführungsformen wird die Bewegung in einem sphärischen Koordinatensystem verfolgt. Das sphärische Koordinatensystem stellt eine Bogenlänge einer Bewegung 114A in Bezug auf einen Ursprung 104A bereit. Wie nachstehend beschrieben, kann die Bogenlänge der Bewegung 114A basierend auf einem Radius 112A bestimmt werden, der vom Ursprung 110A bis zu einem Gestenschwerpunkt der Hand 104A bestimmt wird. Gemäß einigen Ausführungsformen ist der Gestenschwerpunkt 104A ein Punkt im Raum an oder nahe einer Hand, der als die Mitte einer von einer Hand durchgeführten Eingabegeste bestimmt wird, und der zum Bestimmen der Bogenlänge einer Geste verwendet wird. Somit kann der Gestenschwerpunkt in der Regel mit einem Punkt an oder nahe der Hand zusammenfallen. Beispielsweise kann in einigen Ausführungsformen ein Kneifschwerpunkt ein Punkt im Raum sein, an dem ein Kontakt zwischen zwei Fingern auftritt, die das Kneifen durchführen. Alternativ kann ein Gestenschwerpunkt als ein Punkt im Raum bestimmt werden, der mit einem zentralen Punkt einer Hand, einem zentralen Punkt basierend auf einem Handflächen- und/oder Fingerort oder dergleichen zusammenfällt. Die Benutzerbewegung im 3D-Raum, wie durch die Bewegung 114A gezeigt, wird auf eine 2D-Benutzerschnittstellenebene („UI“-Ebene) abgebildet, zum Beispiel Benutzerschnittstelle 118 der Anzeige 106. Zum Beispiel kann sich eine Benutzereingabekomponente 120 in eine Richtung 122 über die 2D-Ebene der Benutzerschnittstelle 118 basierend auf der Abbildung der Benutzerbewegung 114A bewegen.
-
In einigen Ausführungsformen kann es vorzuziehen sein, den Ursprung, von dem die Bogenlänge bestimmt wird, basierend auf der Benutzerhaltung zu modifizieren. Mit Bezug auf 1B ist ein Systemaufbau 100B bereitgestellt, in dem ein Benutzer 102 eine Anzeigevorrichtung 106 ansieht. In 1B führt der Benutzer 102 eine Geste unter Verwendung einer Hand 104B durch, bei der der Arm des Benutzers näher an den Körper des Benutzers gebracht wird. Gemäß einigen Ausführungsformen bewirkt eine Änderung des Abstands von der Hand 104B (oder in einigen Ausführungsformen des Gestenschwerpunkts) zum Körper des Benutzers, dass der Ursprung des sphärischen Koordinatensystems modifiziert wird. Zum Beispiel kann sich, wenn ein Benutzer die Hand in Richtung des Körpers bringt (z. B. den Ellenbogen beugt), der Ursprung zu einer anderen Position verschieben, wie bei 110B gezeigt. In einigen Ausführungsformen wird der Ursprung zu einem anderen Gelenk verschoben, wie einem Ort, der mit einem Ellenbogen zusammenfällt, anstelle eines Ortes, der mit der Schulter zusammenfällt, wie bei 110A gezeigt. Alternativ kann der Ursprung um einen von der Schulter ausgehenden Vektor, wie einen von der Schulter ausgehenden Schwerkraftvektor, oder einen Vektor von der Schulter zum Ellenbogen oder einem anderen Gelenk nach unten verschoben werden. Als weiteres Beispiel kann der Vektor von einem Ort des Oberkörpers ausgehen und in einer Abwärtsrichtung gerichtet sein. Ferner kann in einigen Ausführungsformen der aktualisierte Ursprungsort basierend auf einem relativen Abstand der Hand und/oder des Gestenschwerpunkts von dem Benutzer auf dynamische Weise bestimmt werden, zum Beispiel proportional zum Abstand der Hand und/oder des Gestenschwerpunkts von dem Oberkörper- oder Schulterort des Benutzers. In einigen Variationen kann der aktualisierte Ursprung hinter dem Benutzer verschoben werden (zusätzlich zum Verschieben nach unten), der auch proportional zu dem Abstand zwischen dem Gestenschwerpunkt und dem Oberkörper- oder Schulterort des Benutzers ist. Dementsprechend kann die Bogenlänge der Bewegung 114B basierend auf einem Radius 112B bestimmt werden, der vom aktualisierten Ursprung 110B bis zu einem Gestenschwerpunkt der Hand 104B bestimmt wird. Die Benutzerbewegung im 3D-Raum, wie durch die Bewegung 114A gezeigt, wird auf eine 2D-Benutzerschnittstellenebene („UI“-Ebene) abgebildet, zum Beispiel Benutzerschnittstelle 118 der Anzeige 106. Somit kann sich die Benutzereingabekomponente 120 in einer Richtung 122 über die 2D-Ebene der Benutzerschnittstelle 118 basierend auf der Abbildung der Benutzerbewegung 114B bewegen, die eine andere Eingabe als die Bewegung 114A aufgrund des unterschiedlichen Ursprungs und der unterschiedlichen Bogenlänge bereitstellen kann.
-
2 stellt ein Flussdiagramm 200 einer Technik zum Abbilden der Benutzereingabebewegung von einem sphärischen Koordinatensystem auf eine 2D-UI-Ebene dar, um eine Benutzereingabe bereitzustellen. Obwohl die verschiedenen Prozesse, versteht es sich, dass die verschiedenen Aktionen von alternativen Komponenten durchgeführt werden können. Außerdem können die verschiedenen Aktionen in einer anderen Reihenfolge durchgeführt werden. Ferner können einige Aktionen gleichzeitig durchgeführt werden, und einige sind möglicherweise nicht erforderlich, oder andere können hinzugefügt werden.
-
Das Flussdiagramm 200 beginnt bei Block 205, bei dem eine oder mehrere Hände in einer Szene überwacht werden. Die Hände können zum Beispiel durch ein Handverfolgungssystem der Benutzervorrichtung überwacht werden. Insbesondere können Bilddaten und/oder andere Sensordaten von einer Hand oder den Händen eines Benutzers erfasst werden, die sich im Raum bewegen, um Ort, Bewegung, Gesten und dergleichen zu bestimmen. Die eine oder die mehreren Hände können durch Sensoren an einer tragbaren Vorrichtung überwacht werden, die vom Benutzer getragen wird, oder einer anderen Vorrichtung, von der die Mittendaten der Hand oder Hände des Benutzers erfasst werden können.
-
Das Flussdiagramm fährt mit Block 210 fort, bei dem eine Eingabebewegung durch die Hand oder die Hände detektiert wird. Aus Gründen der Klarheit wird das Flussdiagramm eine detektierte Eingabebewegung durch eine einzelne Hand beschreiben, obwohl es sich versteht, dass in einigen Ausführungsformen eine Eingabebewegung durch eine der Hände des Benutzers detektiert werden kann. In einigen Ausführungsformen kann die Eingabebewegung zum Beispiel basierend auf einer vorbestimmten Geste, Haltung oder einem anderen Verhalten durch den Benutzer detektiert werden, das mit dem Auslösen der Benutzereingabe assoziiert ist. Beispiele für Eingabebewegungen können zum Beispiel ein Kneifen, ein Zupfen, ein Wischen oder dergleichen einschließen. In einigen Ausführungsformen kann die Detektion der Eingabebewegung zusätzliche Operationen der Vorrichtung auslösen, um die Abbildung durchzuführen. Wenn zum Beispiel die Eingabebewegung detektiert wird, können Kameras oder andere Sensoren eingeschaltet oder anderweitig initiiert werden, um die Benutzerhaltung oder andere Parameter zu bestimmen oder die Eingabebewegung zu beurteilen.
-
Das Flussdiagramm fährt mit Block 215 fort, bei dem ein Abstand zwischen der Hand und einem Referenzpunkt am Körper bestimmt wird. Der Referenzpunkt am Körper kann zum Beispiel basierend auf einem Ort einer Schulter, des Oberkörpers, der Kopfposition, der Halsposition des Benutzers oder dergleichen bestimmt werden. In einigen Ausführungsformen kann das System einen aktuellen Ort im Raum verfolgen, der mit dem Referenzpunkt zusammenfällt, oder kann ein benutzerzentriertes Koordinatensystem in Betracht ziehen, von dem andere Orte im Raum um den Benutzer herum bestimmt werden können. In Bezug auf die Schulter eines Benutzers kann zum Beispiel basierend auf Kamera- und/oder anderen Sensordaten ein aktueller Ort der Schulter bestimmt werden. Alternativ kann das System den Schulterort als einen Versatz von einem bekannten Punkt, wie einer Kopfposition, bestimmen. Der Abstand der Hand kann zum Beispiel basierend auf einem Punkt im Raum der Hand in Bezug auf ein Systemkoordinatensystem oder dergleichen bestimmt werden. In einigen Ausführungsformen kann ein Ort des Körpers, vom dem der Abstand der Hand bestimmt wird, auf einer Kopfhaltung basieren. Zum Beispiel kann eine Oberkörper- und/oder Schulterschätzung ein fester Versatz von einem bestimmten Kopfort sein. Der feste Versatz kann ein Standardversatz sein oder kann für einen Benutzer spezifisch sein. Zum Beispiel kann der feste Versatz basierend auf Anmeldeinformationen für den Benutzer des Systems bestimmt werden.
-
Bei Block 220 schließt das Flussdiagramm 200 das Bestimmen eines Ursprungs für die Eingabebewegung ein. In einigen Ausführungsformen wird bestimmt, dass sich der Ursprung an einem Ort befindet, der mit der Schulter des Benutzers zusammenfällt. Der Ort der Schulter des Benutzers kann unter Verwendung von vorstehend beschriebenen Techniken bestimmt werden. Ferner kann in einigen Ausführungsformen die Schulterposition basierend auf einem festen Versatz von einer geschätzten Brusthaltung bestimmt werden. Zum Beispiel kann eine Brusthaltung eine Orientierung des Oberkörpers eines Benutzers angeben, indem eine Richtung identifiziert wird, in die die Brust gerichtet ist. Die Brusthaltung kann zum Beispiel basierend auf körperzugewandten Kameras oder anderen Sensorinformationen bestimmt werden, die die Brust des Benutzers erfassen.
-
Wie nachstehend beschrieben wird, kann in einigen Ausführungsformen der Ursprung an einem anderen Ort als die Schulter angeordnet sein. Zum Beispiel befindet sich der Ursprung in einigen Ausführungsformen an einem Punkt, der mit anderen Gelenken zusammenfällt. Das heißt, der Ursprung kann sich an einem Punkt, der mit dem Ellenbogen des Benutzers zusammenfällt, einem Punkt, der mit einem Handgelenk des Benutzers zusammenfällt, oder dergleichen befinden. Ferner kann in einigen Ausführungsformen der Ursprung an einem Punkt im Raum basierend auf einer Haltung des Benutzers bestimmt werden, aber nicht notwendigerweise mit dem Körper des Benutzers zusammenfallen. Beispielsweise kann in einigen Ausführungsformen der Ursprung entlang eines Vektors angeordnet sein, der von einem der Gelenke ausgeht. Der Vektor kann zum Beispiel einen Schwerkraftvektor, einen Vektor, der entlang zwei Gelenkorten verläuft, oder dergleichen einschließen.
-
Das Flussdiagramm 200 geht zu Block 225 über, bei dem die Bogenlänge für die Eingabebewegung bestimmt wird. Gemäß einigen Ausführungsformen wird die Bogenlänge gemäß einem sphärischen Koordinatensystem bestimmt, bei dem 3D-Punkte durch Radius, Neigung und Gierung um einen Ursprung definiert sind, der wie vorstehend mit Bezug auf Block 220 beschrieben identifiziert wird. Die Bogenlänge kann einen Abstand und eine Richtung einer Geste angeben, die eine Hand während der Eingabebewegung durchführt. Bei Block 230 wird die Eingabebewegung vom sphärischen Koordinatensystem auf eine mit der UI assoziierte 2D-Ebene abgebildet. Gemäß einigen Ausführungsformen wird die Bogenlänge entlang Gierung und Neigung gemessen und auf X- und Y-Koordinaten abgebildet. Die Bogenlänge wird auch auf Z-Koordinaten in Bezug auf die radiale Bewegung abgebildet. Die Koordinaten im sphärischen Koordinatensystem werden auf die Ebene der UI projiziert. In einigen Ausführungsformen wird eine sphärische Projektion durchgeführt, bei der die Position proportional zum Winkel ist. Das heißt, eine Distanz, die auf der Benutzerschnittstellenebene zurückgelegt wird, basiert auf einem Winkelabstand, den die Hand während der Bewegung durchläuft. Alternativ wird in einigen Ausführungsformen der Abstand, der auf der Ebene zurückgelegt wird, auf einem tatsächlichen Abstand basieren, um den sich die Hand entlang des Bogens bewegt.
-
Wie nachstehend beschrieben wird, können zusätzliche Überlegungen verwendet werden, um die Bewegungsabbildung zu bestimmen. Zum Beispiel kann in einigen Ausführungsformen die Verstärkung reduziert werden, wenn sich eine Hand vom Körper weg bewegt. Das heißt, eine Handbewegung, die von dem Körper des Benutzers weiter entfernt ist, kann zu einem geringeren Abstand führen, der auf der Ebene zurückgelegt wird. Als weiteres Beispiel kann die Verstärkung basierend auf einem Vergleich des Abstands der Hand vom Körper (d. h. der Oberkörperort und für den Schulterort) bestimmt werden. In einigen Ausführungsformen kann die bestimmte Funktion, die zum Durchführen der Abbildung verwendet wird, durch eine Benutzerpräferenz (wie im Benutzerprofil), Anwendungseinstellungen, Systemeinstellungen und dergleichen angesteuert werden. Ferner können unterschiedliche Abbildungstechniken basierend auf bestimmten Kontexten, Anwendungen und dergleichen durchgeführt werden.
-
Das Flussdiagramm 200 endet bei Block 235, bei dem eine Darstellung der UI-Komponente auf der UI-Ebene basierend auf der Abbildung modifiziert wird. Zum Beispiel kann ein Cursor oder eine andere Eingabekomponente veranlasst werden, sich gemäß der Abbildung entlang der UI-Ebene zu bewegen. Da die Abbildung sowohl den Abstand als auch die Richtung berücksichtigt, wird ein entsprechender Abstand und eine entsprechende Richtung basierend auf der Änderungsdarstellung der UI-Komponente ersichtlich. Die UI-Komponente kann zum Beispiel einen Cursor, eine Bildlaufleiste oder eine andere bewegungsbasierte Eingabekomponente einschließen.
-
3 zeigt ein Flussdiagramm einer Technik zum Modifizieren eines Ursprungs gemäß einer oder mehreren Ausführungsformen. Obwohl die verschiedenen Prozesse, versteht es sich, dass die verschiedenen Aktionen von alternativen Komponenten durchgeführt werden können. Außerdem können die verschiedenen Aktionen in einer anderen Reihenfolge durchgeführt werden. Ferner können einige Aktionen gleichzeitig durchgeführt werden, und einige sind möglicherweise nicht erforderlich, oder andere können hinzugefügt werden.
-
Das Flussdiagramm 300 beginnt bei Block 310, bei dem ein anfänglicher Ursprungsort basierend auf dem Schulterort identifiziert wird. In einigen Ausführungsformen kann der anfängliche Ursprungsort ein Ort sein, der als mit dem Schulterort zusammenfallend bestimmt wird. Alternativ kann der anfängliche Ursprungsort als ein Versatz von einem Ort an einem Benutzer bestimmt werden, wie einem Versatz von einer Kopfposition (die in einigen Ausführungsformen als eine Bestimmung eines Schulterortes verwendet werden kann). Alternativ kann der Ursprung in einigen Ausführungsformen auf einem Versatz von einem bestimmten Gelenkort basieren, wie entlang eines Vektors, der vom Schulterort ausgeht, den Ellenbogen oder das Handgelenk schneidet, oder dergleichen.
-
Bezugnehmend auf 4 wird ein Diagramm von verschiedenen Orten an einem Körper präsentiert, die zur Bewegungsabbildung verwendet werden. Insbesondere ist eine Schulter 408 in Bezug auf eine bestimmte Halsposition 406 und eine bestimmte Kopfposition 404 gezeigt. In einigen Ausführungsformen kann ein System, das die Bewegungsabbildung bereitstellt, gleichzeitig eine Kopfposition 404 und/oder eine Halsposition 406 verfolgen, von der die Schulterposition bestimmt werden kann.
-
Zurückkehrend zu 3 fährt das Flussdiagramm 300 mit 315 fort, bei dem ein Abstand vom anfänglichen Ursprung zur Hand bestimmt wird. Alternativ kann der Abstand basierend auf einem Handort, einem Gestenschwerpunkt oder dergleichen in Bezug auf den Referenzort bestimmt werden. In einigen Ausführungsformen kann der Abstand in 3D-Raum oder 2D-Raum bestimmt werden. In einigen Ausführungsformen kann der Abstand basierend auf einem horizontalen Abstand zwischen dem Oberkörperort oder dem Schulterort und dem Handort bestimmt werden. In 4 ist ein beispielhafter Abstand 416 dargestellt. Im beispielhaften Diagramm 400 von 4 wird der Abstand zwischen dem Schulterort 408 und einem Gestenschwerpunkt 414 bestimmt.
-
Bei Block 320 wird der anfängliche Ursprungsort basierend auf dem bestimmten Abstand von Block 315 modifiziert. In einigen Ausführungsformen kann der Ursprung so modifiziert werden, dass er mit einem anderen Gelenk zusammenfällt. Wie in 4 gezeigt, kann der Ursprung optional am Ellenbogen 410 oder Handgelenk 412 angeordnet sein, in Abhängigkeit von einer Haltung des Benutzers, wie dem Abstand zwischen der Hand und der Schulter. Wie in Block 325 gezeigt, wird in einigen Ausführungsformen ein modifizierter Ursprungsort entlang des Schwerkraftvektors oder des Oberkörper-Abwärts-Vektors von dem Ursprungsort bestimmt. Zum Beispiel kann das System mit einem gyroskopischen Sensor oder einer anderen Komponente eingesetzt werden, von dem/der ein Schwerkraftvektor bestimmt werden kann. Ein Oberkörper-Abwärts-Vektor kann als ein Vektor definiert werden, der vom Hals zur Basis der Wirbelsäule zeigt. Wenn eine Person zum Beispiel gerade steht oder gerade sitzt, würden der Schwerkraftvektor und der Oberkörper-Abwärts-Vektor ausgerichtet sein. Wenn sich die Person jedoch zurücklehnt oder hinlegt, dann würde sich der Oberkörper-Abwärts-Vektor vom Schwerkraftvektor unterscheiden. Der Vektor kann einen Strahl von der Schulter oder dem Oberkörper zu dem Boden angeben, entlang dem ein Ursprungsort bestimmt werden kann. Gemäß einigen Ausführungsformen kann der Ursprungsort so modifiziert werden, dass er ein beliebiger Ort entlang des Pfades ist. Alternativ kann der Ursprungsort basierend auf Schwellenabständen modifiziert werden. Als ein Beispiel kann, wenn die Hand innerhalb der halben Armlänge von der Schultersäule liegt, der Ursprung zu dem Ellenbogenort bewegt werden, oder abwärts entlang des Schwerkraftvektors von der Schulter zu einem Punkt, der der Ellenbogenhöhe entspricht.
-
Es gibt eine Vielfalt von Techniken, die zum Modifizieren des Ursprungsorts eingesetzt werden können. Zum Beispiel zeigt Block 325 optionale Operationen, bei denen der modifizierte Ursprungsort entlang des Schwerkraftvektors vom Schulterort bestimmt wird. Somit bewegt sich, wenn ein Benutzer die Hand in Richtung des Körpers bringt, der Ursprungsort entlang eines Vektors, der an der Schulter beginnt und zum Boden hin läuft. Somit fällt der modifizierte Ursprungsort möglicherweise nicht mit einem Ort am Benutzer zusammen, sondern kann stattdessen auf dem Ort des Benutzers basieren.
-
In ähnlicher Weise gibt Block 330 an, dass der modifizierte Ursprungsort entlang des Vektors vom Schulterort zu einem anderen Ort bestimmt werden kann. Als ein Beispiel kann in einigen Ausführungsformen der modifizierte Ursprungsort entlang des Vektors bestimmt werden, der den Schulterort und einen Ellenbogenort einschließt. Als weiteres Beispiel kann der modifizierte Ursprungsort entlang des Vektors bestimmt werden, der auf dem Schulterort und/oder dem Ellenbogenort oder einem anderen Ort basiert, aber nicht notwendigerweise mit den Orten der Gelenke am Benutzerkörper zusammenfällt. In einigen Ausführungsformen können Versätze zu dem modifizierten Ursprungsort hinzugefügt werden. Als ein Beispiel kann ein Versatz den Ursprung entlang eines Vektors zurückbewegen.
-
Das Flussdiagramm 300 geht zu Block 335 über, bei dem eine Bogenlänge für die Bewegung bestimmt wird. Die Bogenlänge wird basierend auf dem Abstand bestimmt, den die Hand des Benutzers in 3D-Raum entlang eines kurvenförmigen Pfads durchläuft, während die Geste durchgeführt wird. In einigen Ausführungsformen kann die Bogenlänge mit Richtungsinformationen assoziiert sein, die ebenfalls bestimmt werden. Das Flussdiagramm 300 endet bei Block 340, bei dem die Eingabebewegung vom sphärischen Koordinatensystem auf ein 2D-Koordinatensystem einer Benutzerschnittstellenebene basierend auf dem modifizierten Ursprung abgebildet wird. Die Abbildung kann unter Verwendung verschiedener Techniken durchgeführt werden, wie vorstehend zum Beispiel in Bezug auf Block 230 beschrieben.
-
In 5 ist ein beispielhafter Systemaufbau 500 bereitgestellt, in dem ein Benutzer 102 eine Anzeigevorrichtung 106 ansieht. Insbesondere stellt 5 ein Beispiel eines Benutzers 102 dar, der eine Gestenbewegung 514 mit einer Hand 104 verwendet, um eine Benutzereingabe zum Modifizieren einer Benutzereingabekomponente 120 auf einer Anzeigevorrichtung 106 zu bewirken. Wie gezeigt, wird die durch die Hand 104 verursachte Bewegung 514 in einer Bogenbewegung bereitgestellt. In einigen Ausführungsformen wird die Bewegung in einem sphärischen Koordinatensystem verfolgt. Das sphärische Koordinatensystem stellt eine Bogenverbindung einer Bewegung 514 in Bezug auf einen Ursprung 502 bereit. In diesem beispielhaften Systemaufbau befindet sich der Ursprung 502 für das sphärische Koordinatensystem an einem Handgelenk.
-
Die Bogenlänge der Bewegung 514 kann in Bezug auf einen Radius 512 bestimmt werden, der vom Ursprung 502 bis zu einem Gestenschwerpunkt 104 der Hand bestimmt wird. Gemäß einigen Ausführungsformen ist der Gestenschwerpunkt 104 ein Punkt im Raum, der als die Mitte einer von einer Hand durchgeführten Eingabegeste bestimmt wird. Somit kann der Gestenschwerpunkt in der Regel mit einem Punkt an oder nahe der Hand zusammenfallen. Die Benutzerbewegung im 3D-Raum, wie durch die Bewegung 514 gezeigt, wird auf eine 2D-Benutzerschnittstellenebene („UI“-Ebene) abgebildet, zum Beispiel Benutzerschnittstelle 118 der Anzeige 106. Zum Beispiel kann sich eine Benutzereingabekomponente 120 in eine Richtung 122 über die 2D-Ebene der Benutzerschnittstelle 118 basierend auf der Abbildung der Benutzerbewegung 514 bewegen.
-
6 stellt ein Flussdiagramm einer Technik zum Abbilden einer Eingabebewegung basierend auf dem Handgelenkort dar, gemäß einigen Ausführungsformen. Zur Erläuterung werden die folgenden Schritte im Kontext von 5 beschrieben. Es versteht sich jedoch, dass die verschiedenen Aktionen von alternativen Komponenten durchgeführt werden können. Außerdem können die verschiedenen Aktionen in einer anderen Reihenfolge durchgeführt werden. Ferner können einige Aktionen gleichzeitig durchgeführt werden, und einige sind möglicherweise nicht erforderlich, oder andere können hinzugefügt werden.
-
Das Flussdiagramm 600 beginnt bei Block 605, bei dem ein Handgelenkort für den Benutzer bestimmt wird. Der Handgelenkort kann zum Beispiel basierend auf Handverfolgungstechniken oder basierend auf Bilddaten oder anderen Sensordaten, die von einem Handgelenk des Benutzers erfasst werden, bestimmt werden. In einigen Ausführungsformen kann der Ort als ein Punkt im Raum in Bezug auf ein Benutzerkoordinatensystem bestimmt werden. In ähnlicher Weise wird bei Block 610 für den Benutzer ein Gestenschwerpunkt bestimmt. Der Gestenschwerpunkt kann ein Punkt an oder um den Benutzer herum sein und wird als ein Punkt im Raum betrachtet, an dem die Geste präsentiert wird. Zum Beispiel kann ein Gestenschwerpunkt für ein Kneifen ein Punkt im Raum sein, an dem sich die zwei Finger, die das Kneifen durchführen, berühren. Als weiteres Beispiel kann der Gestenschwerpunkt als ein zentraler Punkt im Raum für die Hand oder dergleichen betrachtet werden.
-
Das Flussdiagramm 600 geht zu Block 615 über, bei dem der Ursprung basierend auf dem Handgelenkort bestimmt wird. In einigen Ausführungsformen, wie in einem optionalen Block 620 gezeigt, kann der Ursprung als das Handgelenk zum Beispiel basierend auf einer Bewegungscharakteristik des Handgelenks bestimmt werden. Beispielsweise kann in einigen Ausführungsformen, falls sich ein Gestenschwerpunkt schneller bewegt als das assoziierte Handgelenk, dann bestimmt werden, dass das Handgelenk als der Ursprung bestimmt wird. In einigen Ausführungsformen kann ein „Bewegungsgeschwindigkeitsverhältnis“ berechnet werden, das das Verhältnis von Kneifschwerpunktgeschwindigkeit und Handgelenkgeschwindigkeit ist. Falls dieses Verhältnis eine vorbestimmte Schwelle überschreitet, wird bestimmt, dass die Bewegung eine überwiegend handgelenkbasierte Bewegung ist, andernfalls wird sie als eine armbasierte Bewegung bestimmt. Das „Bewegungsgeschwindigkeitsverhältnis“-Signal kann zusätzlich gefiltert werden, um Spitzen und Rauschen zu entfernen, um Fehlklassifizierungen vor dem Vergleichen mit der Schwelle zu vermeiden. Somit kann, falls die Bewegung als eine handgelenkbasierte Bewegung betrachtet wird, bestimmt werden, dass sich der Ursprung am Handgelenk befindet.
-
Optional, wie in Block 625 gezeigt, kann der Ursprungsort entlang des Vektors von dem Ellenbogengelenk zum Handgelenkort bestimmt werden. Falls zum Beispiel die Bewegung sowohl eine Armbewegung als auch eine Handgelenkbewegung einschließt, kann bestimmt werden, dass der Ursprung entlang eines Vektors liegt, der den Handgelenkort und den Ellenbogenort oder dergleichen einschließt, zum Beispiel kann der verwendete Vektor den Gestenschwerpunkt und den Ort oder einen anderen Punkt im Raum einschließen, von dem ein geeigneter Vektor bestimmt werden kann.
-
Das Flussdiagramm geht zu Block 630 über, bei dem die Eingabebewegung vom sphärischen Koordinatensystem auf eine mit der UI assoziierte 2D-Ebene abgebildet wird. Gemäß einigen Ausführungsformen wird die Bogenlänge entlang Gierung und Neigung gemessen und auf X- und Y-Koordinaten abgebildet. Die Bogenlänge wird auch auf Z-Koordinaten in Bezug auf die radiale Bewegung abgebildet. Die Koordinaten im sphärischen Koordinatensystem werden auf die Ebene der UI projiziert. In einigen Ausführungsformen wird eine sphärische Projektion durchgeführt, bei der die Position proportional zum Winkel ist. Das heißt, eine Distanz, die auf der Benutzerschnittstellenebene zurückgelegt wird, basiert auf einem Winkelabstand, den die Hand während der Bewegung durchläuft. Alternativ wird in einigen Ausführungsformen der Abstand, der auf der gleichen Ebene zurückgelegt wird, auf einem tatsächlichen Abstand basieren, um den sich die Hand entlang der Bogenlänge bewegt.
-
Zusätzliche Überlegungen können bestimmt werden, um eine Bewegungsabbildung bereitzustellen. Zum Beispiel, wie in einem optionalen Block 640 gezeigt, kann für die Abbildung ein Empfindlichkeitsniveau ausgewählt werden. Das Empfindlichkeitsniveau kann die Anteile angeben, mit denen die Eingabebewegung abgebildet wird. In einigen Ausführungsformen können verschiedene Beschleunigungskurven für die Bewegung verwendet werden. Zum Beispiel erzeugt eine Beschleunigungskurve mit einer höheren anfänglichen Verstärkung ein anderes visuelles Ergebnis als eine Beschleunigungskurve mit einer höheren endgültigen Verstärkung oder eine flache Beschleunigungskurve. In einigen Ausführungsformen kann die bestimmte Funktion, die zum Durchführen der Abbildung verwendet wird, durch eine Benutzerpräferenz (wie im Benutzerprofil), Anwendungseinstellungen, Systemeinstellungen und dergleichen angesteuert werden. Ferner können unterschiedliche Abbildungstechniken basierend auf bestimmten Kontexten, Anwendungen und dergleichen durchgeführt werden.
-
Das Flussdiagramm 600 endet bei Block 645, bei dem eine Darstellung der UI-Komponente auf der UI-Ebene basierend auf der Abbildung modifiziert wird. Zum Beispiel kann ein Cursor oder eine andere Eingabekomponente veranlasst werden, sich gemäß der Abbildung entlang der UI-Ebene zu bewegen. Da die Abbildung sowohl den Abstand als auch die Richtung berücksichtigt, wird ein entsprechender Abstand und eine entsprechende Richtung basierend auf der Änderungsdarstellung der UI-Komponente ersichtlich.
-
In einigen Ausführungsformen kann die Bewegung des Gestenschwerpunkts durch Verwenden von Verfolgungsinformationen, die sich auf ein oder mehrere Gelenke des Arms beziehen, bestimmt werden. Zum Beispiel können Handverfolgungs- und/oder Körperverfolgungssysteme einer Client-Vorrichtung Sensordaten verwenden, um die Orte verschiedener Gelenke einer Person in Bezug auf einen bestimmten Ursprung kontinuierlich zu verfolgen. Diese Daten können verwendet werden, um eine Benutzereingabebewegung zu bestimmen, die von einem Benutzer durchgeführt wird, um die Benutzereingabe anzusteuern.
-
7 stellt ein beispielhaftes Diagramm verschiedener Gelenkorte dar, die im Laufe der Zeit verfolgt werden können. Dies schließt eine Schulter 708 ein, die ein Ursprungspunkt sein kann, von dem Benutzereingabebewegungen definiert werden. Wenn eine Geste beginnt, kann der Arm mit dem Schulterort 708 sowie einem ursprünglichen Ellenbogenort 710 und einem ursprünglichen Handgelenkort 712 assoziiert sein. An einem zweiten Punkt während der Benutzereingabegeste können ein oder mehrere der Gelenke an neue Orte bewegt werden, wie hier durch den endgültigen Ellbogenort 720, den endgültigen Handgelenkort 722 und den endgültigen Gestenschwerpunkt 724 gezeigt. Es versteht sich, dass, obwohl einige der Gelenkorte als die „endgültigen“ Orte der Gelenke dargestellt sind, es sich versteht, dass die Orte der Gelenke den Gelenkorten am Ende einer Geste entsprechen können oder nicht. Anders ausgedrückt werden die „endgültigen“ Gelenkorte verwendet, um eine Benutzereingabebewegung zwischen dem „ursprünglichen“ Ort und dem „endgültigen“ Ort zu bestimmen. Somit kann der „ursprüngliche“ Ort ein anfänglicher Ort der Gelenke vor der Geste, ein Zwischenort während der Geste oder dergleichen sein. In ähnlicher Weise können die „endgültigen“ Gelenkorte ein Zwischenort während der Geste, ein Endort am Ende der Geste oder dergleichen sein. Anders ausgedrückt können die hierin beschriebenen Techniken zur Verfolgung der Benutzereingabebewegung basierend auf dem Gelenkort einmal oder mehrmals im Verlauf einer bestimmten Geste praktiziert werden.
-
Gemäß einer oder mehreren Ausführungsformen kann das Ergebnis der Bewegung von den ursprünglichen Gelenkorten zu den endgültigen Gelenkorten als eine Gestenschwerpunktbewegung 730 identifiziert werden. Die Gestenschwerpunktbewegung 730 kann die Bewegung angeben, die in eine Benutzereingabeaktion übersetzt wird. Obwohl als eine Linie gezeigt, versteht es sich, dass der Gestenschwerpunktvektor eine beliebige Richtungsbewegung in zwei oder drei Dimensionen sein kann, die in eine Benutzereingabebewegung übersetzt werden kann. Ferner kann die Gestenschwerpunktbewegung in einer gebogenen Richtung oder dergleichen bestimmt werden. In einigen Ausführungsformen kann das Bestimmen der Gestenschwerpunktbewegung 730 basierend auf dem ursprünglichen Gestenschwerpunkt 714 und dem endgültigen Gestenschwerpunkt 724 zu Fehlern führen. Zum Beispiel kann aufgrund einer Bewegung des Benutzers an jedem der Gelenke eine Benutzerabsicht der Gestenschwerpunktbewegung 730 verloren gehen. Ferner können Artefakte in den Hand- oder Körperverfolgungsdaten zu Fehlern beim Bestimmen der Gestenschwerpunktbewegung 730 führen, wenn nur die zwei Gelenkorte berücksichtigt werden. Demnach sind einige hierin beschriebene Ausführungsformen darauf ausgerichtet, einen Betrag der Bewegung zu bestimmen, die auf jedes der Gelenke zurückzuführen ist, wie nachstehend in Bezug auf 8A-8D beschrieben wird. Dies kann zum Beispiel nützlich sein, wenn Verfolgungsdaten nicht nur für einen Gestenschwerpunktort verfügbar sind, sondern auch für einen oder mehrere zusätzliche Gelenkorte an einem Arm, wie etwa durch Körperverfolgung.
-
Im Allgemeinen sind einige Ausführungsformen darauf ausgerichtet, die biomechanische Kette entlang eines Arms zu zerlegen, um eine verlorene Bewegung zwischen einer anfänglichen Haltung und einer endgültigen Haltung zu identifizieren. Zum Beispiel kann ein erster Frame oder ein erster Satz von Körperverfolgungsdaten Haltungsinformationen für einen Arm in einer ersten Haltung bereitstellen, und ein zweiter Frame oder ein zweiter Satz von Körperverfolgungsdaten kann Haltungsinformationen für den Arm in einer zweiten Haltung bereitstellen. Es wird die Bewegung von dieser ersten Haltung in die zweite Haltung bestimmt, die auf jedes Gelenk zurückzuführen ist.
-
Ein beispielhafter Prozess zum Wiederherstellen verlorener Bewegungsdaten beginnt, wie in 8A gezeigt, wobei Charakteristiken der Bewegung bestimmt werden, die auf eine Schulterdrehung zurückzuführen sind. Das Diagramm 800A stellt eine ursprüngliche Haltung des Arms dar, einschließlich eines Schulterortes 708, eines ursprünglichen Ellenbogenortes 710, eines ursprünglichen Handgelenkortes 712 und eines ursprünglichen Gestenschwerpunktortes 714. Zunächst werden Charakteristiken der Gestenschwerpunktbewegung 730 bestimmt, die auf die Drehung um die Schulter 708 zurückzuführen sind. In einigen Ausführungsformen kann eine Vorrichtung Bilddaten oder andere Sensordaten verwenden, um Körperverfolgungstechniken durchzuführen, die Haltungsinformationen für den Arm und/oder einzelne Gelenke des Arms verfolgen können. Anfänglich wird eine Schulterdrehung 820 bestimmt. Die Schulterdrehung 820 kann basierend auf einem Winkelabstand zwischen einem ersten Segment vom Schulterort 708 zu dem ursprünglichen Ellenbogenort 710 und einem zweiten Segment vom Schulterort 708 zu dem endgültigen Ellenbogenort 720 bestimmt werden. In einigen Ausführungsformen kann sich die Schulter während der Eingabebewegung bewegen, zum Beispiel falls ein Benutzer schwankt oder sich dreht, aber die verschiedenen Gelenkorte können in einem Koordinatensystem bestimmt werden, das mit der Schulter assoziiert ist, sodass die Schulter während der Bewegung als stabil betrachtet wird.
-
Sobald die Schulterdrehung 820 bestimmt wird, kann der assoziierte Winkel der Schulterdrehung verwendet werden, um zu schlussfolgern, wo die anderen Gelenke am Ende der in 7 dargestellten Eingabebewegung enden würden, falls sich die Schulter drehen würde, aber die anderen Gelenke so festgestellt bleiben würden, dass die anderen Gelenke keine Drehung zur Bewegung des Arms beitragen. Anders ausgedrückt können ein Handgelenkort und ein Gestenschwerpunktort basierend auf der Drehung der Schulter, aber nicht der Drehung des Handgelenks oder der Schulter geschätzt werden. Diese geschätzten Orte entsprechen einer Schätzung des endgültigen Handgelenkortes und des endgültigen Gestenschwerpunktortes, falls während der Eingabebewegung von 7 der Benutzer die Drehung um die Schulter durchführte, aber eine Drehung um andere Gelenke des Arms durchführte, wie den Ellenbogen oder das Handgelenk. Somit werden eine erste Handgelenkvermutung 812 und eine erste Schwerpunktvermutung 814 bestimmt. Die erste Handgelenkvermutung 812 gibt einen übersetzten Ort vom ursprünglichen Handgelenkort 712 aufgrund der Schulterdrehung 820 an. Gleichermaßen gibt die erste Schwerpunktvermutung 814 einen übersetzten Ort vom ursprünglichen Gestenschwerpunktort aufgrund der Schulterdrehung 820 an.
-
Beim Bestimmen der ersten Schwerpunktvermutung 814 kann der erste Gestenschwerpunktvektor 824 bestimmt werden. Der erste Gestenschwerpunktvektor 824 kann Charakteristiken der Gestenschwerpunktbewegung 730 angeben, die auf die Schulterdrehung 820 zurückzuführen sind. Zum Beispiel können ein Abstand und/oder eine Richtung durch den ersten Gestenschwerpunktvektor 824 repräsentiert werden. Gemäß einer oder mehreren Ausführungsformen kann der erste Gestenschwerpunktvektor 824 in Form eines Einheitsvektors bestimmt werden. Der erste Gestenschwerpunktvektor 824 kann in einem Koordinatenraum repräsentiert werden, der auf der ersten Gestenschwerpunktvermutung basiert. In einigen Ausführungsformen kann das Koordinatensystem für den ersten Gestenschwerpunktvektor 824 auf einem X, Y, Z-Koordinatensystem basieren, wobei die Z-Achse von dem ursprünglichen Gestenschwerpunktort 714 ausgeht und entlang eines Vektors vom Schulterort 708 orientiert ist und durch den ursprünglichen Gestenschwerpunktort 714 verläuft.
-
Unter Bezugnahme auf 8B werden Charakteristiken der Bewegung bestimmt, die auf eine Ellenbogendrehung zurückzuführen sind. Das Diagramm 800B stellt zwei hybride Armhaltungen dar. Eine erste Armhaltung zeigt den Schulterort 708, einen endgültigen Ellenbogenort 720, eine erste Handgelenkvermutung 812 aus dem Diagramm 800A und eine erste Schwerpunktvermutung 814 aus dem Diagramm 800A. Die erste Handgelenkvermutung 812 und die erste Schwerpunktvermutung 814 beziehen sich auf geschätzte Gelenkorte, an denen das Handgelenk und der Gestenschwerpunkt wären, falls die Eingabebewegung eine Drehung um die Schulter, aber nicht die anderen Gelenke einschließt. Diese hybride Armhaltung wird mit einer zweiten hybriden Armhaltung verglichen, die aus dem Schulterort 708, dem endgültigen Ellenbogenort 720 und dem endgültigen Handgelenkort 722 besteht, um eine zweite Gestenschwerpunktvermutung 834 vorherzusagen. Im Diagramm 800B entspricht die zweite hybride Haltung einem geschätzten Ort des Gestenschwerpunkts, der auf die Ellenbogendrehung 830 zurückzuführen ist, und ohne irgendeine Drehung um das Handgelenk zu berücksichtigen. Die Ellenbogendrehung 830 kann basierend auf einem Winkelabstand zwischen einem ersten Segment vom endgültigen Ellenbogenort 720 zu dem ersten Handgelenkvermutungsort 812 und einem zweiten Segment vom endgültigen Ellenbogenort 720 zu dem endgültigen Handgelenkort 722 bestimmt werden. Gemäß einer oder mehreren Ausführungsformen wird, da die Ellenbogendrehung in Bezug auf den ersten Handgelenkvermutungsort 812 anstelle des ursprünglichen Handgelenkortes 712 bestimmt wird, die durch die Schulter verursachte Bewegung effektiv von der vollen Bewegung des Ellenbogens subtrahiert.
-
Beim Bestimmen der zweiten Schwerpunktvermutung 834 kann der zweite Gestenschwerpunktvektor 826 bestimmt werden. Der zweite Gestenschwerpunktvektor 826 kann Charakteristiken der Gestenschwerpunktbewegung 730 angeben, die auf die Ellenbogendrehung 830 zurückzuführen sind. Zum Beispiel kann ein Abstand und/oder eine Richtung durch den zweiten Gestenschwerpunktvektor 826 repräsentiert werden. Gemäß einer oder mehreren Ausführungsformen kann der zweite Gestenschwerpunktvektor 826 in Form eines Einheitsvektors bestimmt werden. Der zweite Gestenschwerpunktvektor 826 kann in einem Koordinatenraum repräsentiert werden, der auf der zweiten Gestenschwerpunktvermutung 834 basiert. In einigen Ausführungsformen kann das Koordinatensystem für den zweiten Gestenschwerpunktvektor 826 auf einem X, Y, Z-Koordinatensystem basieren, wobei die Z-Achse von der ersten Gestenschwerpunktvermutung 814 ausgeht und entlang eines Vektors vom endgültigen Ellenbogenort 720 orientiert ist und durch die erste Gestenschwerpunktvermutung 814 verläuft.
-
Unter Bezugnahme auf 8C werden Charakteristiken der Bewegung bestimmt, die auf eine Handgelenkdrehung zurückzuführen sind. Das Diagramm 800C stellt zwei Armhaltungen dar. Eine erste hybride Armhaltung zeigt den Schulterort 708, einen endgültigen Ellenbogenort 720, einen endgültigen Handgelenkort 722 und eine zweite Schwerpunktvermutung 834 aus dem Diagramm 800B. Diese Armhaltung wird gegen eine endgültige Armhaltung verglichen, die aus dem Schulterort 708, dem endgültigen Ellenbogenort 720, dem endgültigen Handgelenkort 722 und dem endgültigen Schwerpunktort 724 besteht. Die Handgelenkdrehung 840 kann basierend auf einem Winkelabstand zwischen einem ersten Segment vom endgültigen Ellenbogenort 720 zu dem ersten Handgelenkvermutungsort 812 und einem zweiten Segment vom endgültigen Ellenbogenort 720 zu dem endgültigen Handgelenkort 722 bestimmt werden.
-
Der dritte Gestenschwerpunktvektor 828 kann basierend auf der zweiten Schwerpunktvermutung 834 und dem endgültigen Schwerpunktort 724 bestimmt werden. Der dritte Gestenschwerpunktvektor 828 kann Charakteristiken der Gestenschwerpunktbewegung 730 angeben, die auf die Handgelenkdrehung 840 zurückzuführen sind. Zum Beispiel können ein Abstand und/oder eine Richtung durch den dritten Gestenschwerpunktvektor 828 repräsentiert werden. Gemäß einer oder mehreren Ausführungsformen kann der dritte Gestenschwerpunktvektor 828 in Form eines Einheitsvektors bestimmt werden. Der dritte Gestenschwerpunktvektor 828 kann in einem Koordinatenraum repräsentiert werden, der auf der dritten Gestenschwerpunktvermutung 834 basiert. In einigen Ausführungsformen kann das Koordinatensystem für den zweiten Gestenschwerpunktvektor 826 auf einem X, Y, Z-Koordinatensystem basieren, wobei die Z-Achse von der zweiten Gestenschwerpunktvermutung 834 ausgeht und entlang eines Vektors vom endgültigen Handgelenkort 722 orientiert ist und durch die zweite Gestenschwerpunktvermutung 834 verläuft.
-
Unter Bezugnahme auf 8D kann, wie in Diagramm 850 gezeigt, ein endgültiger Eingabebewegungsvektor 852 durch Addieren des ersten Gestenschwerpunktvektors 824 von 8A, des zweiten Gestenschwerpunktvektors 826 von 8B und des dritten Gestenschwerpunktvektors 828 von 8C bestimmt werden. Gemäß einer oder mehreren Ausführungsformen kann der erste Gestenschwerpunktvektor 824, der zweite Gestenschwerpunktvektor 826 und der dritte Gestenschwerpunktvektor 828 in Form von Einheitsvektoren repräsentiert werden. Somit kann der Eingabebewegungsvektor 852 eine Endrichtung der Benutzereingabebewegung bereitstellen. In einigen Ausführungsformen kann der Eingabebewegungsvektor 852 auf einen Einheitsvektor skaliert und dann mit einem Abstand zwischen dem ursprünglichen Gestenschwerpunkt 714 und dem endgültigen Gestenschwerpunkt 724 multipliziert werden, um einen Abstand und eine Richtung zu erhalten, die eine beabsichtigte Eingabebewegung eines Benutzers genauer widerspiegeln, als einfach den ursprünglichen Gestenschwerpunkt 714 und den endgültigen Gestenschwerpunkt 724, ohne die Daten von anderen Gelenken zu analysieren.
-
Sobald der Eingabebewegungsvektor 852 bestimmt wird, kann der Eingabebewegungsvektor 852 in eine Benutzereingabeaktion übersetzt werden.
-
In der gezeigten beispielhaften Benutzerschnittstelle 860 wird der Eingabebewegungsvektor 852 in eine Eingabebewegung 870 übersetzt, wodurch eine Bewegung eines Objekts entlang der Benutzereingabeebene verursacht wird. Gemäß einer oder mehreren Ausführungsformen kann der Eingabebewegungsvektor in 2D oder 3D bestimmt werden. In ähnlicher Weise kann die Benutzereingabebewegung bei Bedarf in 2D oder 3D übersetzt werden.
-
Unter Bezugnahme auf 9 ist ein Flussdiagramm einer Technik zum Wiederherstellen der Bewegung gemäß einer oder mehreren Ausführungsformen dargestellt. Obwohl die verschiedenen Prozesse, versteht es sich, dass die verschiedenen Aktionen von alternativen Komponenten durchgeführt werden können. Außerdem können die verschiedenen Aktionen in einer anderen Reihenfolge durchgeführt werden. Ferner können einige Aktionen gleichzeitig durchgeführt werden, und einige sind möglicherweise nicht erforderlich, oder andere können hinzugefügt werden.
-
Das Flussdiagramm 900 beginnt bei Block 905, bei dem eine oder mehrere Hände in einer Szene überwacht werden. Die Hände können zum Beispiel durch ein Handverfolgungssystem der Benutzervorrichtung überwacht werden. Insbesondere können Bilddaten und/oder andere Sensordaten von einer Hand oder den Händen eines Benutzers erfasst werden, die sich im Raum bewegen, um Ort, Bewegung, Gesten und dergleichen zu bestimmen. Die eine oder die mehreren Hände können durch Sensoren an einer tragbaren Vorrichtung überwacht werden, die vom Benutzer getragen wird, oder einer anderen Vorrichtung, von der die Mittendaten der Hand oder Hände des Benutzers erfasst werden können.
-
Das Flussdiagramm fährt mit Block 910 fort, bei dem eine Eingabebewegung durch die Hand oder die Hände detektiert wird. Aus Gründen der Klarheit wird das Flussdiagramm eine detektierte Eingabebewegung durch eine einzelne Hand beschreiben, obwohl es sich versteht, dass in einigen Ausführungsformen eine Eingabebewegung durch eine der Hände des Benutzers detektiert werden kann. In einigen Ausführungsformen kann die Eingabebewegung zum Beispiel basierend auf einer vorbestimmten Geste, Haltung oder einem anderen Verhalten durch den Benutzer detektiert werden, das mit dem Auslösen der Benutzereingabe assoziiert ist. Beispiele für Eingabebewegungen können zum Beispiel ein Kneifen, ein Zupfen, ein Wischen oder dergleichen einschließen. In einigen Ausführungsformen kann die Detektion der Eingabebewegung zusätzliche Operationen der Vorrichtung auslösen, um die Abbildung durchzuführen. Wenn zum Beispiel die Eingabebewegung detektiert wird, können Kameras oder andere Sensoren eingeschaltet oder anderweitig initiiert werden, um die Benutzerhaltung oder andere Parameter zu bestimmen oder die Eingabebewegung zu beurteilen. Optional wird bei Block 915 ein von dem Gestenschwerpunkt zurückgelegter Abstand basierend auf der Eingabebewegung bestimmt. Der Gestenschwerpunkt kann basierend auf einem Fingergelenk oder einem Ort bestimmt werden, der mit der Handverfolgung assoziiert ist, die für die Benutzereingabe verfolgt wird. Der zurückgelegte Abstand kann zum Beispiel durch Vergleichen eines ersten Ortes des Gestenschwerpunkts in einem ersten Frame von Handverfolgungsdaten mit einem zweiten Ort des Gestenschwerpunkts in einem zweiten Frame von Handverfolgungsdaten bestimmt werden.
-
Das Flussdiagramm 900 fährt mit Block 920 fort, bei dem eine erste Positionsänderung des Gestenschwerpunkts, die auf die Schulterdrehung zurückzuführen ist, bestimmt wird. Wie vorstehend in Bezug auf 8A beschrieben, kann die Positionsänderung bestimmt werden, indem eine Schulterdrehung von einer ersten Haltung und einer zweiten Haltung eines Arms bestimmt wird. Die Schulterdrehung wird dann zu anderen Gelenken übersetzt, um eine Vermutung zu identifizieren, wo andere Gelenke basierend auf der Schulterdrehung und ohne Berücksichtigung der Drehung anderer Gelenke landen würden.
-
Gleichermaßen wird bei Block 925 eine zweite Positionsänderung des Gestenschwerpunkts, die auf die Ellenbogendrehung zurückzuführen ist, bestimmt. Wie vorstehend in Bezug auf 8B beschrieben, kann die Positionsänderung bestimmt werden, indem eine Ellenbogendrehung von einer ersten Haltung und einer zweiten Haltung eines Arms und ohne Berücksichtigung eines Abschnitts der Drehung, die auf die Schulterdrehung zurückzuführen ist, bestimmt wird. Die Ellenbogendrehung wird dann zu anderen Gelenken übersetzt, um eine Vermutung zu identifizieren, wo andere Gelenke basierend auf der Schulterdrehung und ohne Berücksichtigung der Drehung anderer Gelenke landen würden.
-
Ferner wird bei Block 930 eine dritte Positionsänderung des Gestenschwerpunkts, die auf die Handgelenkdrehung zurückzuführen ist, bestimmt. Wie vorstehend in Bezug auf 8C beschrieben, kann die Positionsänderung bestimmt werden, indem eine Handgelenkdrehung von einer ersten Haltung und einer zweiten Haltung eines Arms und ohne Berücksichtigung eines Abschnitts der Drehung, die auf die Schulterdrehung und Handgelenkdrehung zurückzuführen ist, bestimmt wird. Die Handgelenkdrehung wird dann verwendet, um Charakteristiken der Bewegung des Gestenschwerpunkts zu bestimmen, die auf das Handgelenk zurückzuführen sind.
-
Obwohl das Vorstehende in Bezug auf eine Schulter, einen Ellenbogen, ein Handgelenk und einen Gestenschwerpunkt beschrieben ist, versteht es sich, dass alternative Gelenke anderer Punkte entlang eines Arms, oder die mit einer Eingabebewegung assoziiert sind, verwendet werden können. Zum Beispiel können nur einige der Gelenke berücksichtigt werden, oder es können alternative Gelenke verwendet werden. Somit kann in einigen Ausführungsformen die Bewegung des Gestenschwerpunkts (oder eines anderen Punkts, der mit der Benutzereingabe assoziiert ist, wie ein Fingergelenk oder eine Fingerspitze) in Bezug auf ein oder mehrere Gelenke oder andere Punkte entlang eines Arms bestimmt werden.
-
Das Flussdiagramm 900 fährt mit Block 935 fort, bei dem Parameter der Benutzereingabebewegung basierend auf den bestimmten Positionsänderungen bestimmt werden. Gemäß einigen Ausführungsformen können die Parameter durch Addieren einzelner Vektoren bestimmt werden, die mit jeder bestimmten Positionsänderung assoziiert sind. Optional, wie in Block 940 gezeigt, kann ein Gesamtrichtungsvektor, der aus den unterschiedlichen Positionsänderungen bestimmt wird, basierend auf dem durch den Gestenschwerpunkt zurückgelegten Abstand, wie bei Block 915 bestimmt, skaliert werden.
-
Das Flussdiagramm 900 endet bei Block 940, bei dem eine Darstellung der UI-Komponente auf der UI-Ebene basierend auf der Abbildung modifiziert wird. Zum Beispiel kann ein Cursor oder eine andere Eingabekomponente veranlasst werden, sich gemäß der Abbildung entlang der UI-Ebene zu bewegen. Da die Abbildung sowohl den Abstand als auch die Richtung berücksichtigt, wird ein entsprechender Abstand und eine entsprechende Richtung basierend auf der Änderungsdarstellung der UI-Komponente ersichtlich. Die UI-Komponente kann zum Beispiel einen Cursor, eine Bildlaufleiste oder eine andere bewegungsbasierte Eingabekomponente einschließen.
-
Bezugnehmend auf 10 ist ein vereinfachtes Blockdiagramm einer elektronischen Vorrichtung 1000 dargestellt. Die elektronische Vorrichtung 1000 kann Teil einer multifunktionalen Vorrichtung sein, wie ein Mobiltelefon, ein Tablet-Computer, ein persönlicher digitaler Assistent, eine tragbare Musik/Video-Wiedergabevorrichtung, eine am Körper tragbare Vorrichtung, am Kopf angebrachte Systeme, projektionsbasierte Systeme, eine Basisstation, ein Laptop-Computer, ein Desktop-Computer, eine Netzwerkvorrichtung oder beliebige andere elektronische Systeme, wie die hierin beschriebenen. Die elektronische Vorrichtung 1000 kann eine oder mehrere zusätzliche Vorrichtungen einschließen, innerhalb derer die verschiedenen Funktionen enthalten sein können oder über die die verschiedenen Funktionen verteilt sein können, wie Servervorrichtungen, Basisstationen, Zubehörvorrichtungen und dergleichen. Veranschaulichende Netzwerke schließen ein lokales Netzwerk wie ein Universal-Serial-Bus (USB)-Netzwerk, ein lokales Netzwerk einer Organisation und ein Weitbereichsnetz wie das Internet ein, sind aber nicht darauf beschränkt. Gemäß einer oder mehreren Ausführungsformen wird die elektronische Vorrichtung 1000 dazu benutzt, an einer Benutzerschnittstelle einer Anwendung 1055 zu interagieren. Es versteht sich, dass die verschiedenen Komponenten und Funktionen innerhalb der elektronischen Vorrichtung 1000 über die Module oder Komponenten hinweg oder sogar über zusätzliche Vorrichtungen unterschiedlich verteilt sein können.
-
Die elektronische Vorrichtung 1000 kann einen oder mehrere Prozessoren 1020 einschließen, wie eine Zentralverarbeitungseinheit (CPU) oder eine Grafikverarbeitungseinheit (GPU). Die elektronische Vorrichtung 1000 kann ebenfalls einen Speicher 1030 einschließen. Der Speicher 1030 kann eine oder mehrere unterschiedliche Speicherarten einschließen, die zum Durchführen von Vorrichtungsfunktionen in Verbindung mit dem/den Prozessor(en) 1020 verwendet werden können. Zum Beispiel kann der Speicher 1030 einen Cache, ROM, RAM oder jede Art von transitorischem oder nichttransitorischem computerlesbarem Speicherungsmedium einschließen, das fähig ist, computerlesbaren Code zu speichern. Der Speicher 1030 kann verschiedene Programmiermodule zur Ausführung durch (den) Prozessor(en) 1020 speichern, einschließlich eines Verfolgungsmoduls 1045 sowie verschiedener anderer Anwendungen 1055. Die elektronische Vorrichtung 1000 kann ebenfalls eine Speicherung 1040 einschließen. Die Speicherung 1040 kann ein oder mehrere nichttransitorische computerlesbare Medien, einschließlich zum Beispiel Magnetplatten (fest, Diskette und entfernbar) und Band, optische Medien, wie CD-ROMs und digitale Videoplatten (DVDs), und Halbleiterspeichervorrichtungen, wie elektrisch programmierbaren Nurlesespeicher (EPROM) und elektrisch löschbaren programmierbaren Nurlesespeicher (EEPROM), einschließen. Die Speicherung 1030 kann verwendet werden, um verschiedene Daten und Strukturen zu speichern, die zum Speichern von Daten in Bezug auf Handverfolgung und UI-Präferenzen verwendet werden können. Die Speicherung 1040 kann dazu konfiguriert sein, ein Handverfolgungsnetzwerk 1075 gemäß einer oder mehreren Ausführungsformen zu speichern. Die Elektronische Vorrichtung kann zusätzlich eine Netzwerkschnittstelle einschließen, von der die elektronische Vorrichtung 1000 über ein Netzwerk kommunizieren kann.
-
Die elektronische Vorrichtung 1000 kann auch eine oder mehrere Kameras 1005 oder andere Sensoren 1010, wie einen Tiefensensor, einschließen, von denen die Tiefe einer Szene bestimmt werden kann. In einer oder mehreren Ausführungsformen kann jede der einen oder der mehreren Kameras 1005 eine herkömmliche RGB-Kamera oder eine Tiefenkamera sein. Ferner können die Kameras 1005 eine Stereokamera oder ein anderes Mehrkamerasystem einschließen. Außerdem kann die elektronische Vorrichtung 1000 andere Sensoren einschließen, die Sensordaten zum Verfolgen von Benutzerbewegungen sammeln können, wie eine Tiefenkamera, Infrarotsensoren oder Orientierungssensoren, wie ein oder mehrere Gyroskope, Beschleunigungsmesser und dergleichen.
-
Gemäß einer oder mehreren Ausführungsformen kann der Speicher 1030 ein oder mehrere Module einschließen, die computerlesbaren Code umfassen, der durch den/die Prozessor(en) 1020 ausführbar ist, um Funktionen durchzuführen. Der Speicher 1030 kann zum Beispiel das Verfolgungsmodul 1045 und eine oder mehrere Anwendungen 1055 einschließen. Das Verfolgungsmodul 1045 kann verwendet werden, um Orte von Händen und anderen Benutzerbewegungen in einer physischen Umgebung zu verfolgen. Das Verfolgungsmodul 1045 kann Sensordaten wie Daten von den Kameras 1005 und/oder den Sensoren 1010 verwenden. In einigen Ausführungsformen kann das Verfolgungsmodul 1045 Benutzerbewegungen verfolgen, um Bewegungen von einem sphärischen Koordinatensystem auf ein planares Koordinatensystem abzubilden. Die elektronische Vorrichtung 1000 kann auch eine Anzeige 1080 einschließen, die eine UI zur Interaktion durch einen Benutzer präsentieren kann. Die UI kann zum Beispiel mit einer oder mehreren der Anwendungen 1055 assoziiert sein. Die Anzeige 1080 kann eine lichtundurchlässige Anzeige sein oder semitransparent oder transparent sein. Die Anzeige 1080 kann LEDs, OLEDs, einen digitalen Lichtprojektor, Flüssigkristall auf Silicium oder dergleichen einbeziehen.
-
Obwohl die elektronische Vorrichtung 1000 als die zahlreichen vorstehend beschriebenen Komponenten umfassend dargestellt ist, können in einer oder mehreren Ausführungsformen die verschiedenen Komponenten über mehrere Vorrichtungen verteilt sein. Dementsprechend können, obwohl bestimmte Anrufe und Übertragungen hierin in Bezug auf die bestimmten Systeme beschrieben werden, wie dargestellt, in einer oder mehreren Ausführungsformen die verschiedenen Anrufe und Übertragungen basierend auf der unterschiedlich verteilten Funktionalität unterschiedlich gerichtet erfolgen. Ferner können zusätzliche Komponenten verwendet werden, es kann eine gewisse Kombination der Funktionalität einer der Komponenten kombiniert werden.
-
Bezugnehmend nun auf 11 ist ein vereinfachtes Funktionsblockdiagramm einer veranschaulichenden elektronischen Multifunktionsvorrichtung 1100 gemäß einer Ausführungsform gezeigt. Jede der elektronischen Vorrichtungen kann eine multifunktionale elektronische Vorrichtung sein oder manche oder alle beschriebenen Komponenten einer hierin beschriebenen elektronischen Multifunktionsvorrichtung aufweisen. Die elektronische Multifunktionsvorrichtung 1100 kann einen Prozessor 1105, eine Anzeige 1110, eine Benutzerschnittstelle 1115, Grafikhardware 1120, Vorrichtungssensoren 1125 (z. B. einen Näherungssensor/Umgebungslichtsensor, einen Beschleunigungsmesser und/oder ein Gyroskop), ein Mikrofon 1130, Audiocodec(s) 1135, einen oder mehrere Lautsprecher 1140, eine Kommunikationsschaltlogik 1145, eine digitale Bilderfassungsschaltlogik 1150 (z. B. einschließlich eines Kamerasystems), Videocodec(s) 1155 (z. B. zur Unterstützung einer digitalen Bilderfassungseinheit), einen Speicher 1160, eine Speicherungsvorrichtung 1165 und einen Kommunikationsbus 1170 einschließen. Die elektronische Multifunktionsvorrichtung 1100 kann zum Beispiel eine Digitalkamera oder eine persönliche elektronische Vorrichtung, wie ein persönlicher digitaler Assistent (PDA), eine persönliche Musikwiedergabevorrichtung, ein Mobiltelefon oder ein Tablet-Computer, sein.
-
Der Prozessor 1105 kann Anweisungen ausführen, die erforderlich sind, um den Betrieb von vielen Funktionen, die durch die Vorrichtung 1100 durchgeführt werden, auszuführen oder zu steuern (wie z. B. die Erzeugung und/oder Verarbeitung von Bildern, wie hierin offenbart). Der Prozessor 1105 kann beispielsweise die Anzeige 1110 ansteuern und eine Benutzereingabe von der Benutzerschnittstelle 1115 empfangen. Die Benutzerschnittstelle 1115 kann es einem Benutzer ermöglichen, mit der Vorrichtung 1100 zu interagieren. Zum Beispiel kann die Benutzerschnittstelle 1115 eine Vielfalt von Formen annehmen, wie eine Taste, ein Tastenblock, eine Drehsteuerung, ein Click Wheel, eine Tastatur, ein Anzeigebildschirm, ein Touchscreen, einen Blick und/oder Gesten. Der Prozessor 1105 kann außerdem zum Beispiel ein Systemon-Chip sein, wie es in mobilen Vorrichtungen vorhanden ist, und eine dedizierte GPU einschließen. Der Prozessor 1105 kann auf Reduced-Instruction-Set-Computer-Architekturen (RISC-Architekturen) oder Complex-Instruction-Set-Computer-Architekturen (CISC-Architekturen) oder einer beliebigen anderen geeigneten Architektur basieren und kann einen oder mehrere Verarbeitungskerne einschließen. Die Grafikhardware 1120 kann eine Spezialrechenhardware zum Verarbeiten von Grafik und/oder Unterstützen des Prozessors 1105 zum Verarbeiten von Grafikinformationen sein. In einer Ausführungsform kann die Grafikhardware 1120 eine programmierbare GPU einschließen.
-
Die Bilderfassungsschaltlogik 1150 kann zwei (oder mehr) Objektivanordnungen 1180A und 1180B einschließen, wobei jede Objektivanordnung eine separate Brennweite aufweisen kann. Zum Beispiel kann die Objektivanordnung 1180A eine kürzere Brennweite aufweisen im Vergleich zur Objektivanordnung 1180B. Jede Objektivanordnung kann ein separates assoziiertes Sensorelement 1190 aufweisen. Alternativ dazu können sich zwei oder mehrere Objektivanordnungen ein gemeinsames Sensorelement teilen. Die Bilderfassungsschaltlogik 1150 kann Stand- und/oder Videobilder erfassen. Die Ausgabe aus der Bilderfassungsschaltlogik 1150 kann zumindest zum Teil durch den/die Videocodec(s) 1155 und/oder den Prozessor 1105 und/oder die Grafikhardware 1120 und/oder eine dedizierte Bildverarbeitungseinheit oder -pipeline, die innerhalb der Schaltlogik 1165 einbezogen ist, verarbeitet werden. Derart erfasste Bilder können in dem Speicher 1160 und/oder der Speicherung 1165 gespeichert werden.
-
Die Sensor- und Kameraschaltlogik 1150 kann Stand- und Videobilder erfassen, die mindestens zum Teil durch den/die Videocodec(s) 1155 und/oder den Prozessor 1105 und/oder die Grafikhardware 1120 und/oder eine dedizierte Bildverarbeitungseinheit, die innerhalb der Schaltlogik 1150 einbezogen ist, gemäß dieser Offenbarung verarbeitet werden. Derart erfasste Bilder können in dem Speicher 1160 und/oder der Speicherung 1165 gespeichert werden. Der Speicher 1160 kann einen oder mehrere unterschiedliche Arten von Medien einschließen, die durch den Prozessor 1105 und die Grafikhardware 1120 verwendet werden, um Vorrichtungsfunktionen durchzuführen. Zum Beispiel kann der Speicher 1160 Speicher-Cache, Nurlesespeicher (ROM) und/oder Direktzugriffsspeicher (RAM) einschließen. Die Speicherung 1165 kann Medien (z. B. Audio-, Bild- und Videodateien), Computerprogrammanweisungen oder -software, Präferenzinformationen, Vorrichtungsprofilinformationen und beliebige andere geeignete Daten speichern. Die Speicherung 1165 kann ein oder mehrere nichttransitorische computerlesbare Speicherungsmedien, einschließlich zum Beispiel Magnetplatten (fest, Diskette und entfernbar) und Band, optische Medien, wie CD-ROMs und DVDs, und Halbleiterspeichervorrichtungen, wie EPROM und EEPROM, einschließen. Der Speicher 1160 und die Speicherung 1165 können verwendet werden, um Computerprogrammanweisungen oder Code, die in einem oder mehreren Modulen organisiert und in einer beliebigen gewünschten Computerprogrammiersprache geschrieben sind, greifbar aufzubewahren. Bei Ausführung zum Beispiel durch den Prozessor 1105 kann ein solcher Computerprogrammcode ein oder mehrere der hierin beschriebenen Verfahren implementieren.
-
Verschiedene hierin definierte Prozesse ziehen die Möglichkeit in Betracht, persönliche Informationen eines Benutzers zu erhalten und zu nutzen. Zum Beispiel können solche persönlichen Informationen genutzt werden, um die Bewegung durch den Benutzer zu verfolgen. In dem Ausmaß, in dem jedoch solche persönlichen Informationen gesammelt werden, sollten solche Informationen mit der Einverständniserklärung des Benutzers erhalten werden, und der Benutzer sollte die Kenntnis und Steuerung über die Verwendung seiner persönlichen Informationen haben.
-
Persönliche Informationen werden von geeigneten Parteien nur zu rechtmäßigen und angemessenen Zwecken genutzt. Die Parteien, die solche Informationen nutzen, halten Datenschutzrichtlinien und -praktiken ein, die mindestens geeigneten Gesetzen und Vorschriften entsprechen. Außerdem müssen solche Richtlinien gut etabliert und mit behördlichen/industriellen Standards übereinstimmend oder über diese hinausgehend anerkannt sein. Darüber hinaus unterlassen diese Parteien die Verbreitung, den Verkauf oder ein anderweitiges Teilen solcher Informationen außerhalb angemessener und rechtmäßiger Zwecke.
-
Darüber hinaus ist es die Absicht der vorliegenden Offenbarung, dass personenbezogene Daten auf eine Weise verwaltet und behandelt werden, dass Risiken eines unbeabsichtigten oder unbefugten Zugangs oder einer unbeabsichtigten oder unbefugten Verwendung minimiert werden. Das Risiko kann minimiert werden, indem die Sammlung von Daten begrenzt wird und Daten gelöscht werden, sobald sie nicht mehr benötigt werden. Außerdem und bei Bedarf, einschließlich in bestimmten gesundheitsbezogenen Anwendungen, kann eine Datenanonymisierung zum Schutz der Privatsphäre eines Benutzers verwendet werden. Die Anonymisierung kann gegebenenfalls erleichtert werden, indem spezifische Identifikatoren (z. B. Geburtsdatum) entfernt, die Menge oder Spezifität der gespeicherten Daten kontrolliert (z. B. Erhebung von Standortdaten auf Stadtebene statt auf Adressebene), die Art und Weise, wie Daten gespeichert werden (z. B. Aggregation von Daten über Benutzer hinweg), gesteuert wird und/oder durch andere Verfahren.
-
Es sei klargestellt, dass die vorstehende Beschreibung veranschaulichend und nicht einschränkend sein soll. Das Material wurde vorgelegt, um es dem Fachmann zu ermöglichen, den offenbarten Gegenstand wie beansprucht herzustellen und zu verwenden, und es wird im Kontext von bestimmten Ausführungsformen bereitgestellt, von denen Variationen dem Fachmann ohne Weiteres ersichtlich sind (z. B. können manche der offenbarten Ausführungsformen in Kombination miteinander verwendet werden). Dementsprechend sollte die spezifische Anordnung von Schritten oder Aktionen, die in 2 bis 3 und 5 gezeigt sind, oder die Anordnung von Elementen, die in 1, 4 und 6 bis 7 gezeigt sind, nicht als den Schutzumfang des offenbarten Gegenstands einschränkend ausgelegt werden. Der Schutzumfang der Erfindung sollte deshalb Bezug nehmend auf die beigefügten Ansprüche zusammen mit dem vollständigen Schutzumfang von Äquivalenten, die von diesen Ansprüchen abgedeckt werden, bestimmt werden. In den beigefügten Ansprüchen werden die Begriffe „einschließlich“ und „in denen“ als die einfachen Entsprechungen der jeweiligen Begriffe „umfassend“ und „wobei“ verwendet.