Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEMS AND METHODS FOR GESTURE-BASED INTERACTION
Document Type and Number:
WIPO Patent Application WO/2018/106276
Kind Code:
A1
Abstract:
Various of the disclosed embodiments present depth-based user interaction systems facilitating natural and immersive user interactions. Particularly, various embodiments integrate immersive visual presentations with natural and fluid gesture motions. This integration facilitates more rapid user adoption and more precise user interactions. Some embodiments may take advantage of the particular form factors disclosed herein to accommodate user interactions. For example, dual depth sensor arrangements in a housing atop the interface's display may facilitate depth fields of view accommodating more natural gesture recognition than may be otherwise possible. In some embodiments, these gestures may be organized into a framework for universal control of the interface by the user and for application-specific control of the interface by the user.

Inventors:
BRUNNER RALPH (US)
SELIGMAN ANDREW (US)
CHIEN HSIN-YI (US)
STODDARD JOHN (US)
CHEN PO-JUI (US)
SHARTON-BIERIG ELON (US)
GASTON SIERRA (US)
BRUNNER VIVI (US)
Application Number:
PCT/US2017/027449
Publication Date:
June 14, 2018
Filing Date:
April 13, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
YOUSPACE INC (US)
International Classes:
A63F13/00; A63F13/20; A63F13/21; G06F3/01; G06F3/03; H04N13/00
Foreign References:
US9389779B22016-07-12
US20130278499A12013-10-24
US4408678A1983-10-11
US3992629A1976-11-16
US5926230A1999-07-20
US5124693A1992-06-23
US7340077B22008-03-04
US8788973B22014-07-22
US9298346B22016-03-29
US8830302B22014-09-09
US20130179162A12013-07-11
US9317112B22016-04-19
US9459758B22016-10-04
US9081419B22015-07-14
US9075441B22015-07-07
US9164589B22015-10-20
US20100146455A12010-06-10
Other References:
BISWAS ET AL.: "Gesture recognition using Microsoft Kinect.", 2011 5TH INTERNATIONAL CONFERENCE AUTOMATION, ROBOTICS, AND APPLICATIONS, 6 December 2011 (2011-12-06), pages 100 - 103, XP055510256, Retrieved from the Internet [retrieved on 20170601]
Attorney, Agent or Firm:
SKELLEY, James (US)
Download PDF:
Claims:
CLAIMS

We claim:

1 . A user interface comprising:

one or more displays;

one or more depth-sensor housing frames comprising one or more depth sensors, the depth-sensor housing frames above the displays;

at least one processor; and

at least one memory comprising instructions configured, in conjunction with the at least one processor, to cause the user interface to perform a method comprising:

acquiring a frame of depth data using at least one of the one or more depth sensors;

associating at least a portion of the depth frame with a classification corresponding to a first portion of a user's body;

determining a gesture based, at least in part, upon the classification; and notifying an application running on the user interface of the determined gesture.

2. The user interface of Claim 1 , wherein, at least one frame of the one or more frames comprises:

a back panel;

a top panel;

a bottom panel;

a first frequency-permissive panel, the first frequency-permissive panel configured to substantially permit the passage of radiation associated with a depth sensor, but to not substantially permit the passage of visual frequency radiation;

a second frequency-permissive panel, the first frequency-permissive panel configured to substantially permit the passage of radiation associated with a depth sensor, but to not substantially permit the passage of visual frequency radiation; one or more of depth sensor mounts; and

one or more spacers, the one or more spacers located within an enclosure formed by the back panel, top panel, bottom panel, first frequency-permissive panel, and the second frequency-permissive panel, wherein

each of the one or more depth sensor mounts are located between at least two spacers of the one or more spacers, and wherein

each depth sensor mount of the one or more depth sensor mounts is configured to receive two depth sensors such that a field of view associated with each depth sensor passes through at least one of the two frequency-permissive panels.

3. The user interface of Claim 2, wherein the one or more displays comprises a 3 x 3 grid of substantially adjacent displays.

4. The user interface of Claim 3, wherein the one or more depth-sensor housing frames comprises:

a first depth sensor housing frame above the top-left display of the 3 x 3 grid; a second depth sensor housing frame above the top-middle display of the 3 x 3 grid;

a third depth sensor housing frame above the top-right display of the 3 x 3 grid.

5. The user interface of Claim 1 , wherein the method further comprises:

detecting a location of at least a portion of the user relative to the interface; and

adjusting a vanishing point of an image presented on the one or more displays to correspond with the location.

6. The user interface of Claim 1 , wherein the method further comprises:

detecting a first distance between the user and the one or more displays; determining that the first distance is greater than a threshold distance from the one or more displays; displaying a virtual environment comprising one or more rooms from a first perspective based, at least in part, upon the determination that the first distance is greater than the threshold distance;

detecting a second distance between the user and the one or more displays;

determining that the second distance is less than a threshold distance from the one or more displays; and

displaying the virtual environment from a second perspective based, at least in part, upon the determination that the second distance is less than the threshold distance, wherein

the first perspective displays the virtual environment from a virtual location further from the rooms than the second perspective.

7. The user interface of Claim 6, wherein the method further comprises:

detecting a push gesture while presenting the virtual environment from the second perspective; and

activating an application associated with the room displayed closest to the user on the one or more displays.

8. A computer-implemented method running on a user interface, the method comprising:

acquiring a frame of depth data using at least depth sensor of one or more depth sensors located on the user interface;

associating at least a portion of the depth frame with a classification corresponding to a first portion of a user's body;

determining a gesture based, at least in part, upon the classification; and notifying an application running on the user interface of the determined gesture.

9. The computer-implemented method of Claim 8 wherein the user interface comprises: one or more depth-sensor housing frames comprising the one or more depth sensors, the depth-sensor housing frames above a 3 x 3 grid of substantially adjacent displays.

10. The computer-implemented method of Claim 8, wherein at least one frame of the one or more depth-sensor housing frames comprises:

a back panel;

a top panel;

a bottom panel;

a first frequency-permissive panel, the first frequency-permissive panel configured to substantially permit the passage of radiation associated with a depth sensor, but to not substantially permit the passage of visual frequency radiation;

a second frequency-permissive panel, the first frequency-permissive panel configured to substantially permit the passage of radiation associated with a depth sensor, but to not substantially permit the passage of visual frequency radiation;

one or more of depth sensor mounts; and

one or more spacers, the one or more spacers located within an enclosure formed by the back panel, top panel, bottom panel, first frequency-permissive panel, and the second frequency-permissive panel, wherein

each of the one or more depth sensor mounts are located between at least two spacers of the one or more spacers, and wherein

each depth sensor mount of the one or more depth sensor mounts is configured to receive two depth sensors such that a field of view associated with each depth sensor passes through at least one of the two frequency-permissive panels.

1 1 . The computer-implemented method of Claim 10, wherein the one or more depth-sensor housing frames comprises:

a first depth sensor housing frame above the top-left display of the 3 x 3 grid; a second depth sensor housing frame above the top-middle display of the 3 x 3 grid;

a third depth sensor housing frame above the top-right display of the 3 x 3 grid.

12. The computer-implemented method of Claim 9, wherein the method further comprises:

detecting a location of at least a portion of the user relative to the interface; and

adjusting a vanishing point of an image presented on the one or more displays to correspond with the location.

13. The computer-implemented method of Claim 12, wherein the method further comprises:

detecting a first distance between the user and the one or more displays; determining that the first distance is greater than a threshold distance from the one or more displays;

displaying a virtual environment comprising one or more rooms from a first perspective based, at least in part, upon the determination that the first distance is greater than the threshold distance;

detecting a second distance between the user and the one or more displays;

determining that the second distance is less than a threshold distance from the one or more displays; and

displaying the virtual environment from a second perspective based, at least in part, upon the determination that the second distance is less than the threshold distance, wherein

the first perspective displays the virtual environment from a virtual location further from the rooms than the second perspective.

14. The computer-implemented method of Claim of Claim 13, wherein the method further comprises: detecting a push gesture while presenting the virtual environment from the second perspective; and

activating an application associated with the room displayed closest to the user on the one or more displays.

15. A non-transitory computer-readable medium comprising instructions configured to cause a user interface to perform a method, the method comprising:

acquiring a frame of depth data using at least depth sensor of one or more depth sensors located on the user interface;

associating at least a portion of the depth frame with a classification corresponding to a first portion of a user's body;

determining a gesture based, at least in part, upon the classification; and notifying an application running on the user interface of the determined gesture.

16. The non-transitory computer-readable medium of Claim 15, wherein the user interface comprises:

one or more depth-sensor housing frames comprising the one or more depth sensors, the depth-sensor housing frames above a 3 x 3 grid of substantially adjacent displays.

17. The non-transitory computer-readable medium of Claim 16, wherein at least one frame of the one or more depth-sensor housing frames comprises:

a back panel;

a top panel;

a bottom panel;

a first frequency-permissive panel, the first frequency-permissive panel configured to substantially permit the passage of radiation associated with a depth sensor, but to not substantially permit the passage of visual frequency radiation; a second frequency-permissive panel, the first frequency-permissive panel configured to substantially permit the passage of radiation associated with a depth sensor, but to not substantially permit the passage of visual frequency radiation;

one or more of depth sensor mounts; and

one or more spacers, the one or more spacers located within an enclosure formed by the back panel, top panel, bottom panel, first frequency-permissive panel, and the second frequency-permissive panel, wherein

each of the one or more depth sensor mounts are located between at least two spacers of the one or more spacers, and wherein

each depth sensor mount of the one or more depth sensor mounts is configured to receive two depth sensors such that a field of view associated with each depth sensor passes through at least one of the two frequency-permissive panels.

18. The non-transitory computer-readable medium of Claim 16, wherein the one or more depth-sensor housing frames comprises:

a first depth sensor housing frame above the top-left display of the 3 x 3 grid;

a second depth sensor housing frame above the top-middle display of the 3 x 3 grid;

a third depth sensor housing frame above the top-right display of the 3 x 3 grid.

19. The non-transitory computer-readable medium of Claim 16, wherein the method further comprises:

detecting a location of at least a portion of the user relative to the interface; and

adjusting a vanishing point of an image presented on the displays to correspond with the location.

20. The non-transitory computer-readable medium of Claim 16, wherein the method further comprises: detecting a first distance between the user and the displays;

determining that the first distance is greater than a threshold distance from the displays;

displaying a virtual environment comprising one or more rooms from a first perspective based, at least in part, upon the determination that the first distance is greater than the threshold distance;

detecting a second distance between the user and the displays;

determining that the second distance is less than a threshold distance from the displays; and

displaying the virtual environment from a second perspective based, at least in part, upon the determination that the second distance is less than the threshold distance, wherein

the first perspective displays the virtual environment from a virtual location further from the rooms than the second perspective.

Description:
SYSTEMS AND METHODS FOR GESTURE-BASED INTERACTION

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of and priority to U.S. Nonprovisional Patent Application 15/369,799, filed December 5, 2016, entitled "CALIBRATION SYSTEMS AND METHODS FOR DEPTH-BASED INTERFACES WITH DISPARATE FIELDS OF VIEW and the benefit of and priority to U.S. Nonprovisional Patent Application 15/478,201 , filed April 3, 2017, entitled "SYSTEMS AND METHODS FOR GESTURE-BASED INTERACTION", the contents of each of which are incorporated by reference herein in their entireties for all purposes.

TECHNICAL FIELD

[0002] Various of the disclosed embodiments relate to optimizations and improvements for depth-based human-computer interactions.

BACKGROUND

[0003] Human-computer interaction (HCI) systems are becoming increasingly prevalent in our society. With this increasing prevalence has come an evolution in the nature of such interactions. Punch cards have been surpassed by keyboards, which were themselves complemented by mice, which are themselves now complemented by touch screen displays, etc. Various machine vision approaches may even now facilitate visual, rather than the mechanical, user feedback. Machine vision allows computers to interpret images from their environment to, e.g., recognize users' faces and gestures. Some machine vision systems rely upon grayscale or RGB images of their surroundings to infer user behavior. Some machine vision systems may also use depth-based sensors, or rely exclusively upon depth based sensors, to recognize user behavior (e.g., the Microsoft Kinect™, Intel RealSense™, Apple PrimeSense™, Structure Sensor™, Velodyne HDL-32E LiDAR™, Orbbec Astra™, etc.).

[0004] Interaction with depth-based user interface systems can seem unnatural for many users. This discomfort may be especially acute when the system fails to provide an immersive visual experience in association with natural and fluid gesture motions. Accordingly, there is a need for improved depth-based interfaces that both accommodate user expectations and typical user motions. Such systems may also need to serve as general purpose platforms from which developers may implement their own, custom applications.

BRIEF DESCRIPTION OF THE DRAWINGS

[0005] Various of the embodiments introduced herein may be better understood by referring to the following Detailed Description in conjunction with the accompanying drawings, in which like reference numerals indicate identical or functionally similar elements:

[0006] FIG. 1 is a series of use case diagrams illustrating various situations in which various of the disclosed embodiments may be implemented;

[0007] FIG. 2 is a perspective use case diagram illustrating an example user interaction with an example display structure as may occur in some embodiments;

[0008] FIG. 3 is a series of perspective and side views of example depth data as may be used in some embodiments;

[0009] FIG. 4 is a series of views illustrating data isolation via plane clipping as may be applied to the depth data of FIG. 3 in some embodiments;

[0010] FIG. 5 is an example component classification as may be applied to the isolated data of FIG. 4 in some embodiments;

[0011] FIG. 6 is a flow diagram illustrating some example depth data processing operations as may be performed in some embodiments;

[0012] FIG. 7 is a hardware block diagram illustrating an example hardware implementation which may be used to perform depth data processing operations in some embodiments;

[0013] FIG. 8 is a schematic diagram of an example wide-screen display with a multi-angled depth sensor housing as may be implemented in some embodiments; [0014] FIG. 9 is a schematic diagram of an example projected display with a multi- angled depth sensor housing as may be implemented in some embodiments;

[0015] FIG. 10 is a schematic diagram of an example composite display with a multi-angled depth sensor housing as may be implemented in some embodiments;

[0016] FIG. 1 1 is a schematic diagram of the composite display with a multi-angled depth sensor housing of FIG. 10, including a turnaround of a modular component in the system as may be implemented in some embodiments;

[0017] FIG. 12A is a head-on schematic view of the composite display with a multi- angled depth sensor housing of FIG. 10 as may be implemented in some embodiments; FIG. 12B is a top-down schematic view of the composite display with a multi-angled depth sensor housing of FIG. 10 as may be implemented in some embodiments; FIG. 12C is a side schematic view of the composite display with a multi-angled depth sensor housing of FIG. 10 as may be implemented in some embodiments;

[0018] FIG. 13A is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing, as may be implemented in some embodiments; FIG. 13B is an assembled schematic view of components in the frame of a multi-angled depth sensor housing, as may be implemented in some embodiments;

[0019] FIG. 14A is a view of the spacer component of FIG. 13A as may be implemented in some embodiments, from two perspectives; FIG. 14B is a view of the mirrored spacer component of FIG. 13A as may be implemented in some embodiments, from two perspectives;

[0020] FIG. 15 is a view of the brace bracket component of FIG. 13A as may be implemented in some embodiments, from two perspectives;

[0021] FIG. 16 is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing, including a sensor-pair-receiving brace bracket spacer, as may be implemented in some embodiments;

[0022] FIG. 17 is a schematic view of a possible sensor-placement configuration in the multi-angled depth sensor housings of an example user interface, as may be implemented in some embodiments; [0023] FIG. 18 is a plurality of schematic views of an alternative bracket mounting component as may be used in some embodiments;

[0024] FIG. 19A is a perspective schematic view of portions of the alternative bracket mounting component of FIG. 18 in an exploded, unassembled state, as may be implemented in some embodiments; FIG. 19B is a perspective schematic view of portions of the alternative bracket mounting component of FIG. 18 wherein the bracing support is coupled with the sensor mount, as may be implemented in some embodiments; FIG. 19C is a perspective schematic view of portions of the alternative bracket mounting component of FIG. 18 wherein the bracing support and sensor mount are coupled with example depth sensors, as may be implemented in some embodiments;

[0025] FIG. 20A is a "see-through" view of a housing frame of a multi-angled depth sensor housing comprising depth sensors attached via "standalone mounts", rather than brackets, as may be implemented in some embodiments; FIG. 20B is a schematic view of a horizontal sensor mount as may be implemented in some embodiments; FIG. 20C is a schematic view of a vertical sensor mount as may be implemented in some embodiments; FIG. 20D is a schematic view of a the varied depth region fields of view achieved using a sensor mount of FIG. 20B or FIG. 20C as may occur in some embodiments;

[0026] FIG. 21 A is a schematic view of an example multi-angled standalone depth sensor mount with transparent depth sensor representations in their relative positions, as may be implemented in some embodiments; FIG. 21 B is a schematic view of a multi- angled depth sensor mount without depth sensors, as may be implemented in some embodiments;

[0027] FIG. 22 is a schematic side view of various dimensions of an example multi- angled standalone depth sensor mount, as may be implemented in some embodiments;

[0028] FIG. 23 is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing, including exclusively standalone mounted sensor pairs, as well as schematic top-down cutaway view of the assembled structure, as may be implemented in some embodiments; [0029] FIG. 24 is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing, including both standalone mounted and bracket- mounted sensor pairs, as well as schematic top-down cutaway view of the assembled structure, as may be implemented in some embodiments;

[0030] FIG. 25A is a side view of various dimensions for an example interaction system with a multi-angled depth sensor housing, as may be implemented in some embodiments; FIG. 25B is a schematic side view of the combined viewing angles for the system of FIG. 25A;

[0031] FIG. 26 is a "see-through" view of a frame for a multi-angled depth sensor housing, wherein both depth sensors and visual image sensors are installed, as may be implemented in some embodiments;

[0032] FIG. 27A is a schematic view of a user "trigger-point" gesture as may occur in some embodiments; FIG. 27B is a schematic view of the correspondences which may be used to recognize a user "trigger-point" gesture in some embodiments;

[0033] FIG. 28A is a schematic view of a user "push" gesture as may occur in some embodiments; FIG. 28B is a schematic view of the correspondences, which may be used to recognize a user "push" gesture in some embodiments;

[0034] FIG. 29A is a series of schematic front and side views of steps in a "reveal" gesture, as may occur in some embodiments; FIG. 29B is a frontal and overhead schematic view of various correspondences as may be used to detect the "reveal" gesture of FIG. 29A in some embodiments;

[0035] FIG. 30A is a series of schematic front, side, and overhead views of steps in a "swipe" gesture, as may occur in some embodiments; FIG. 30B is a frontal and overhead schematic view of various correspondences as may be used to detect the "swipe" gesture of FIG. 30A in some embodiments;

[0036] FIG. 31 A is a series of schematic front and side views of steps in a "circle" gesture, as may occur in some embodiments; FIG. 31 B is a composite frontal view of the hand orientations associated with the correspondences that may be used for detecting the "circle" gesture of FIG. 31 A in some embodiments; FIG. 31 C is a composite frontal view of the correspondences that may be used for detecting the "circle" gesture of FIG. 31 A in some embodiments;

[0037] FIG. 32A is a series of schematic front and side views of steps in a "crouch" gesture, as may occur in some embodiments; FIG. 32B is a frontal and overhead schematic view of various correspondences as may be used to detect the "crouch" gesture of FIG. 32A in some embodiments;

[0038] FIG. 33 is a flow diagram illustrating aspects of a gesture detection process as may be implemented in some embodiments;

[0039] FIG. 34 is a flow diagram illustrating aspects of a gesture template fulfilment determination process as may be implemented in some embodiments;

[0040] FIG. 35A is an example tree diagram illustrating correspondence relationships between a plurality of gestures as may occur in some embodiments; FIG. 35B is an example tree diagram illustrating correspondence relationships between a plurality of gestures, including sub-gestures, as may occur in some embodiments;

[0041] FIG. 36 is a Venn diagram illustrating various gesture-set relations as may occur in some embodiments;

[0042] FIG. 37A is a schematic view of a user at a first position before an interface system comprising different interaction zones, as may be implemented in some embodiments; FIG. 37B is a schematic view of a user at a second position before an interface system comprising different interaction zones, as may be implemented in some embodiments;

[0043] FIG. 38A is a schematic view of a user at a center position before an interface system running a dynamic vanishing point selection menu and the corresponding user view, as may be implemented in some embodiments; FIG. 38B is a schematic view of a user at a left position before an interface system running a dynamic vanishing point selection menu and the corresponding user view, as may be implemented in some embodiments; FIG. 38C is a schematic view of a user at a right position before an interface system running a dynamic vanishing point selection menu and the corresponding user view, as may be implemented in some embodiments;

[0044] FIG. 39A is a schematic view of a user at a first position before engaging a contextual focus feature at the center of the user interface and the resulting display, as may be implemented in some embodiments; FIG. 39B is a schematic view of a user at a second position after engaging a contextual focus feature at the center of the user interface and the resulting change in display, as may be implemented in some embodiments;

[0045] FIG. 40A and 40B are schematic views of the contextual focus feature of the user interface of FIG. 39 and resulting display changes, before and after engagement, but at the side of the user interface, rather than the center of the user interface, as may occur in some embodiments;

[0046] FIG. 41 is a schematic view of a user interface system running an example "trigger-point" -based shooter application as may be implemented in some embodiments;

[0047] FIG. 42 is a schematic view of a user interface system running an example calligraphy training application as may be implemented in some embodiments;

[0048] FIG. 43 is a series of schematic views of a user interface system running an example obstacle course application as may be implemented in some embodiments; and

[0049] FIG. 44 is a block diagram of an example computer system as may be used in conjunction with some of the embodiments.

[0050] The specific examples depicted in the drawings have been selected to facilitate understanding. Consequently, the disclosed embodiments should not be restricted to the specific details in the drawings or the corresponding disclosure. For example, the drawings may not be drawn to scale, the dimensions of some elements in the figures may have been adjusted to facilitate understanding, and the operations of the embodiments associated with the flow diagrams may encompass additional, alternative, or fewer operations than those depicted here. Thus, some components and/or operations may be separated into different blocks or combined into a single block in a manner other than as depicted. The intention is not to limit the embodiments to the particular examples described or depicted. On the contrary, the embodiments are intended to cover all modifications, equivalents, and alternatives falling within the scope of the disclosed examples.

DETAILED DESCRIPTION Example Use Case Overview

[0051] Various of the disclosed embodiments may be used in conjunction with a mounted or fixed depth camera system to detect, e.g. user gestures. FIG. 1 is a series of use case diagrams illustrating various situations 100a-c in which various of the disclosed embodiments may be implemented. In situation 100a, a user 105 is standing before a kiosk 125 which may include a graphical display 125a. Rather than requiring the user to physically touch items of interest on the display 125a the system may allow the user to "point" or "gesture" at the items and to thereby interact with the kiosk 125.

[0052] A depth sensor 115a may be mounted upon or connected to or near the kiosk 125 so that the depth sensor's 115a field of depth capture 120a (also referred to as a "field of view" herein) encompasses gestures 110 made by the user 105. Thus, when the user points at, e.g., an icon on the display 125a by making a gesture within the field of depth data capture 120a the depth sensor 115a may provide the depth values to a processing system, which may infer the selected icon or operation to be performed. The processing system may be configured to perform various of the operations disclosed herein and may be specifically configured, or designed, for interfacing with a depth sensor (indeed, it may be embedded in the depth sensor). Accordingly, the processing system may include hardware, firmware, software, or a combination of these components. The processing system may be located within the depth sensor 115a, within the kiosk 125, at a remote location, etc. or distributed across locations. The applications running on the kiosk 125 may simply receive an indication of the selected icon and may not be specifically designed to consider whether the selection was made via physical touch vs. depth based determinations of the selection. Thus, the depth sensor 115a and the processing system may be an independent product or device from the kiosk 125 in some embodiments.

[0053] In situation 100b, a user 105 is standing in a domestic environment which may include one or more depth sensors 115b, 115c, and 115d each with their own corresponding fields of depth capture 120b, 120c, and 120d respectively. Depth sensor 115b may be located on or near a television or other display 130. The depth sensor 115b may be used to capture gesture input from the user 105 and forward the depth data to an application running on or in conjunction with the display 130. For example, a gaming system, computer conferencing system, etc. may be run using display 130 and may be responsive to the user's 105 gesture inputs. In contrast, the depth sensor 115c may passively observe the user 105 as part of a separate gesture or behavior detection application. For example, a home automation system may respond to gestures made by the user 105 alone or in conjunction with various voice commands. In some embodiments, the depth sensors 115b and 115c may share their depth data with a single application to facilitate observation of the user 105 from multiple perspectives. Obstacles and non-user dynamic and static objects, e.g. couch 135, may be present in the environment and may or may not be included in the fields of depth capture 120b, 120c.

[0054] Note that while the depth sensor may be placed at a location visible to the user 105 (e.g., attached on top or mounted upon the side of televisions, kiosks, etc. as depicted, e.g., with sensors 115a-c) some depth sensors may be integrated within another object. Such an integrated sensor may be able to collect depth data without being readily visible to user 105. For example, depth sensor 115d may be integrated into television 130 behind a one-way mirror and used in lieu of sensor 115b to collect data. The one-way mirror may allow depth sensor 115d to collect data without the user 105 realizing that the data is being collected. This may allow the user to be less self- conscious in their movements and to behave more naturally during the interaction.

[0055] While the depth sensors 115a-d may be positioned parallel to a wall, or with depth fields at a direction orthogonal to a normal vector from the floor, this may not always be the case. Indeed, the depth sensors 115a-d may be positioned at a wide variety of angles, some of which place the fields of depth data capture 120a-d at angles oblique to the floor and/or wall. For example, depth sensor 115c may be positioned near the ceiling and be directed to look down at the user 105 on the floor.

[0056] This relation between the depth sensor and the floor may be extreme and dynamic in some situations. For example, in situation 100c a depth sensor 115e is located upon the back of a van 140. The van may be parked before an inclined platform 150 to facilitate loading and unloading. The depth sensor 115e may be used to infer user gestures to direct the operation of the van (e.g., move forward, backward) or to perform other operations (e.g., initiate a phone call). Because the van 140 regularly enters new environments, new obstacles and objects 145a,b may regularly enter the depth sensor's 115e field of depth capture 120e. Additionally, the inclined platform 150 and irregularly elevated terrain may often place the depth sensor 115e, and corresponding field of depth capture 120e, at oblique angles relative to the "floor" on which the user 105 stands. Such variation can complicate assumptions made regarding the depth data in a static and/or controlled environment (e.g., assumptions made regarding the location of the floor).

[0057] Various of the disclosed embodiments contemplate user interactions with a feedback system comprising two or more depth sensors. The depth sensor devices may also include visual image sensors, e.g., RGB sensors, in some embodiments. For example, FIG. 2 is a perspective use case diagram illustrating an example user interaction 200 with an example display structure 205 as may occur in some embodiments. The display structure 205 may be placed in a mall, shopping center, grocery, check-in line, etc. In some embodiments, the height 220a is at least as large as a user 210 or slightly larger, e.g., 7-10 feet. The length 220b may be several times the user's 210 width, e.g., to facilitate an interaction as the user 210 walks the length of the display structure 205.

[0058] The example display structure 205 includes a screen 230. The screen 230 may comprise a single large screen, multiple smaller screens placed adjacent to one another, a projection, etc. In one example interaction, the user may gesture 215 at a portion of the screen and the system may present a visual feedback, such as a cursor 230b at a location corresponding to the gesture's projection 225 upon the screen. The display structure 205 may monitor the user's 210 movement and gestures using one or more of one or more depth sensors Ci, C2, . . . , CN. In the example depicted in FIG. 2, at least three cameras are present. The ellipses 245 indicate that more than three cameras may be present in some embodiments, and the length 220b of the display structure 205 may be adjusted accordingly. In this example, the sensors are evenly spaced across the top of the display structure 205, though in some embodiments they may be unevenly spaced.

[0059] Though the terms "camera" and "sensor" may be used interchangeably in this application, one will recognize that the depth sensor need not be or facilitate the "camera capture" of optical images, e.g., RGB or grayscale images, though the depth sensor may additionally include that functionality. In some embodiments, the computer system 250 may take a variety of forms, e.g., a preprogrammed chip, circuit, Field Programmable Gate Array (FPGA), mini-computer, etc. One will recognize that "computer system", "processing system", and the like may be used interchangeably herein. Similarly, one will readily appreciate that the training system employed to create a system for recognizing gestures may, but need not be, the same system as the testing system that performs the on-site recognition. Accordingly, in some embodiments, the "system" may be a computer distinct from the interfaces of FIGs. 1 and 2, residing, e.g., off-site from where the in-situ classification occurs.

Example Depth Data

[0060] Analogous to common optical image cameras, depth sensors 115a-e, Ci, C2, . . . , CN may capture individual "frames" of depth data over time. Each "frame" may comprise a collection of three-dimensional values for depths measured in the field of view (though one will readily recognize multiple ways to represent, e.g., a time of flight analysis for depth determination). These three-dimensional values may be represented, e.g., as points in three-dimensional space, as distances for rays emitted at various angles from the depth sensor, etc. FIG. 3 is a series of perspective 300a and side 300b views of example depth data 305 as may be used in some embodiments. In this example, a user is pointing at the depth sensor with his right hand while standing in front of a wall. A table to his left has also been captured in the field of view. Thus, depth values associated with the user 310 include a portion associated with the user's head 310a and a portion associated with the user's extended right arm 310b. Similarly, the background behind the user is reflected in the depth values 320, including those values 315 associated with the table. [0061] To facilitate understanding, the side view 300b also includes a depiction of the depth sensor's field of view 335 at the time of the frame capture. The depth sensor's angle 330 at the origin is such that the user's upper torso, but not the user's legs have been captured in the frame. Again, this example is merely provided to accommodate the reader's understanding, and the reader will appreciate that some embodiments may capture the entire field of view without omitting any portion of the user. For example, the embodiments depicted in FIGs. 1A-C may capture less than all of the interacting user, while the embodiments of FIG. 2 may capture the entirety of the interacting user (in some embodiments, everything that is more than 8cm off the floor appears in the depth field of view). Of course, the reverse may be true depending upon the orientation of the system, depth camera, terrain, etc. Thus, one will appreciate that variations upon the disclosed examples are explicitly contemplated (e.g., classes referencing torso components are discussed below, but some embodiments will also consider classifications of legs, feet, clothing, user pairings, user poses, etc.).

[0062] Similarly, though FIG. 3 depicts the depth data as a "point cloud", one will readily recognize that the data received from a depth sensor may appear in many different forms. For example, a depth sensor, such as depth sensor 115a or 115d, may include a grid-like array of detectors. These detectors may acquire an image of the scene from the perspective of fields of depth captures 120a and 120d respectively. For example, some depth detectors include an "emitter" producing electromagnetic radiation. The travel time from the emitter to an object in the scene, to one of the grid cell detectors may correspond to the depth value associated with that grid cell. The depth determinations at each of these detectors may be output as a two-dimensional grid of depth values. A "depth frame" as used herein may refer to such a two- dimensional grid, but can also refer to other representations of the three-dimensional depth data acquired from the depth sensor (e.g., a point cloud, a sonographic image, etc.).

Example Depth Data Clipping Methodology

[0063] Many applications would like to infer the user's gestures from the depth data 305. Accomplishing this from the raw depth data could be quite challenging and so some embodiments apply preprocessing procedures to isolate the depth values of interest. For example, FIG. 4 is a series of views illustrating data isolation via plane clipping as may be applied to the depth data 305 of FIG. 3 in some embodiments. Particularly, perspective view 405a and side view 410a illustrate the depth data 305 (including portions associated with the user 310 and portions associated with the background 320). Perspective view 405b and side view 410b show the depth data 305 relative to a floor plane 415. The floor plane 415 is not part of the depth frame data 305. Rather, the floor plane 415 may be assumed based upon context or estimated by the processing system.

[0064] Perspective view 405c and side view 410c introduce a wall plane 420, which may also be assumed or estimated by the processing system. The floor and wall plane may be used as "clipping planes" to exclude depth data from subsequent processing. For example, based upon the assumed context in which the depth sensor is used, a processing system may place the wall plane 420 halfway to the maximum range of the depth sensor's field of view. Depth data values behind this plane may be excluded from subsequent processing. For example, the portion 320a of the background depth data may be excluded, but the portion 320b may be retained as shown in perspective view 405c and side view 410c.

[0065] Ideally, the portion 320b of the background would also be excluded from subsequent processing, since it does not encompass data related to the user. Some embodiments further exclude depth data by "raising" the floor plane 415 based upon context to a position 415a as shown in perspective view 405d and side view 41 Od. This may result in the exclusion of the portion 320b from future processing. These clipping operations may also remove portions of the user data 31 Od which will not contain gestures (e.g., the lower torso). As mentioned previously, the reader will appreciate that this example is provided merely to facilitate understanding and that in some embodiments (e.g., those of systems as appear in FIG. 2) clipping may be omitted entirely, or may occur only very close to the floor, so that leg and even foot data are both still captured. Thus, only the portion 310c remains for further processing. One will recognize that FIG. 4 simply depicts one possible clipping process for a given context. Different contexts, for example, situations where gestures include the user's lower torso, may be addressed in a similar fashion. Many such operations may still require an accurate assessment of the floor 415 and wall 420 planes to perform accurate clipping.

Example Depth Data Classification Methodology

[0066] Following the isolation of the depth values (which may not occur in some embodiments), which may contain gesture data of interest, the processing system may classify the depth values into various user portions. These portions, or "classes", may reflect particular parts of the user's body and can be used to infer gestures. FIG. 5 is an example component classification as may be applied to the isolated data of FIG. 4 in some embodiments. Initially 500a, the extracted data 310c may be unclassified. Following classification 500b, each of the depth values may be associated with a given classification. The granularity of the classification may reflect the character of the gestures of interest. For example, some applications may be interested in the direction the user is looking, and so may break the head into a "head" class 515 and a "nose" class 520. Based upon the relative orientation of the "head" class 515 and the "nose" class 520 the system can infer the direction in which the user's head is turned. Since the chest and torso are not generally relevant to the gestures of interest in this example, only broad classifications "upper torso" 525 and "lower torso" 535 are used. Similarly, the details of the upper arm are not as relevant as other portions and so a single class "right arm" 530c and a single class "left arm" 530b may be used.

[0067] In contrast, the lower arm and hand may be very relevant to gesture determination and more granular classifications may be used. For example, a "right lower arm" class 540, a "right wrist" class 545, a "right hand" class 555, a "right thumb" class 550, and a "right fingers" class 560 may be used. Though not shown, complementary classes for the left lower arm may also be used. With these granular classifications, the system may able to infer, e.g., a direction the user is pointing, by comparing the relative orientation of the classified depth points.

Example Depth Data Processing Pipeline [0068] FIG. 6 is a flow diagram illustrating some example depth data processing operations 600 as may be performed in some embodiments. At block 605, the processing system may receive a frame of depth sensor data (e.g., a frame such as frame 305). Generally speaking, the data may then pass through "Pre-Processing" 610, "Classification" 615, and "Application" 620 stages. During "Pre-Processing" 610, the processing system may perform "plane detection" at block 625 using the frame data or based upon assumptions or depth camera configuration details (though again, in many embodiments preprocessing and plane detection may not be applied). This may include, e.g., the clipping planes discussed with respect to FIG. 4, such as the floor 415 plane and wall plane 420. These planes may be used, e.g., to isolate the depth values of interest at block 630, e.g., as described above with respect to FIG. 4.

[0069] During Classification 615, the system may associate groups of depth values with one class (or in some embodiments, multiple classes) at block 635. For example, the system may determine a classification using classes as discussed with respect to FIG. 5. At block 640, the system may determine per-class statistics (e.g., the number of depth values associated with each class, the effect upon ongoing system training and calibration, etc.). Example classes may include: Nose, Left Index Finger, Left Other Fingers, Left Palm, Left Wrist, Right Index Finger, Right Other Fingers, Right Palm, Right Wrist, and Other.

[0070] During the Application 620 operations, the system may use the class determinations to infer user-behavior relevant to a particular application objective. For example, an HCI interface may seek to determine where the user is presently pointing their hand. In this example, at block 645, the system will select / isolate the depth values classified as being associated with the "hand" and/or "fingers". From these depth values (and possibly depth values associated with the user's arm) the system may estimate the direction in which the user is pointing in this particular frame at block 650 (one will recognize that other gestures than this pointing example may also be performed). This data may then be published to an application program, e.g., a kiosk operating system, a game console operating system, etc. At block 655, the operations may be performed again for additional frames received. One will recognize that the process may be used to infer gestures across frames by comparing, e.g., the displacement of classes between frames (as, e.g., when the user moves their hand from left to right).

[0071] FIG. 7 is a hardware block diagram illustrating an example hardware implementation 705 which may be used to perform depth data processing operations in some embodiments. A frame reception system 710 may receive a depth frame from a depth sensor. The frame reception system 710 may be firmware, software, or hardware (e.g., an FPGA implementation, system-on-a-chip, etc.). The frame may be directly passed, or cached and subsequently passed, to a pre-processing module 715. Preprocessing module 715 may also be firmware, software, or hardware (e.g., an FPGA implementation, system-on-a-chip, etc.). The pre-processing module may perform the Preprocessing operations 610 discussed in FIG. 6. The pre-processing results (e.g., the isolated depth values 310c) may then be provided to the Classification module 720. The Classification module 720 may be firmware, software, or hardware (e.g., an FPGA implementation, system-on-a-chip, etc.). The Classification module 720 may perform the Classification operations 615 discussed in FIG. 6. The classified depth values may then be provided to a Publishing module 725. The Publishing module 725 may be configured to package the classification results into a form suitable for a variety of different applications (e.g., as specified at 620). For example, an interface specification may be provided for kiosk operating systems, gaming operating systems, etc. to receive the classified depth values and to infer various gestures therefrom.

Example Interactive System Form Factors

[0072] Various embodiments may include a housing frame for one or more of the depth sensors. The housing frame may be specifically designed to anticipate the inputs and behaviors of the users. In some embodiments, the display system may be integrated with the housing frame to form modular units. FIG. 8 is a schematic diagram of an example widescreen display with a multi-angled depth sensor housing as may be implemented in some embodiments. For example, the system may include a large, single display 835 with which a user 840 may interact via various spatial, temporal, and spatial-temporal gestures 830 using, e.g., their hands 845, arms or entire body. For example, by pointing with the finger of their hand 845, the user may direct the motion of a cursor 825. The display 835 may be in communication with a computer system 805 via, e.g., a direct line connection 810a, wireless connections 815c and 815a, or any other suitable means for communicating the desired display output. Similarly, the computer system 805 may be in communication with one or more depth sensors contained in housing frames 820a-c via a direct line connection 810b, wireless connections 815b and 815a, or any other suitable means for communicating the desired display output. Though shown separately in this example, in some embodiments, the computer system 805 may be integrated with either the housing frames 820a-c or display 835, or be contained off-site.

[0073] Each of housing frames 820a-c may contain one or more depth sensors as described elsewhere herein. The computer system 805 may have transforms available to relate depth data acquired at each sensor to a global system of coordinates relative to display 835. These transforms may be achieved using a calibration process, or may, e.g., be preset with a factory default. Though shown here as separate frames, in some embodiments the frames 820a-c may be a single frame. The frames 820a-c may be affixed to the display 835, to a nearby wall, to a separate mounting platform, etc.

[0074] While some embodiments specifically contemplate providing a display system connected with the housing frames, one will readily appreciate that systems may be constructed in alternative fashions to achieve substantially the same function. For example, FIG. 9 is a schematic diagram of an example projected display with a multi-angled depth sensor housing frames 920a-c as may be implemented in some embodiments. Here, the frames 920a-c have been affixed to a wall 935, e.g., a wall in the user's 940 office, home, or shopping environment. A projector 950 (one will appreciate that rear projection from behind the wall 935 may also be used in some embodiments if the wall's 935 material is suitable). As indicated by ellipses 955a-c, the wall 935 may extend well beyond the interaction area in many directions. The projector 950 may be positioned so as to project the desired images upon the wall 935. In this manner, the user may again use their hand 945 to gesture 930 and thereby direct the motion of a cursor 925. Similarly, the projector 950 may be in communication with a computer system 905 and the depth sensors in frames 920a-c via direct line connections 910a, 910b, wireless connections 915a-c, or any other suitable communication mechanism.

[0075] While FIGs. 8 and 9 describe example embodiments with "monolithic" displays, in some embodiments, the displays and frame housing may be designed so to form "modular" units that may be integrated into a whole. For example, FIG. 10 is a schematic diagram of an example composite display 1035 with a collection of multi- angled depth sensor housing frames as may be implemented in some embodiments. Again, the user 1040 may use hand 1045 gestures 1030 to interact with displayed items, e.g., cursor 1025. A computer system 1050 (here shown on-site and separate from the other components) may be in communication with the depth sensors and display via direct line connections 1010a, 1010b, wireless communications 1015a, 1015b, 1015c, or any other suitable communications method.

[0076] However, in this example embodiment, each vertical segment of the composite system 1035 may include a separate module. For example, one module 1060 may comprise the depth sensor housing frame 1020a and three displays 1035a-c. The computer system 1050 may employ the individual displays of each vertical module to generate a collective, composite image spanning one or more of them. The remaining depth sensor housing frames 1020b, c may similarly be associated with their own displays. One will appreciate that in some embodiments each module will have its own computer system, while, as shown here, in some embodiments there may be a single computer system associated with several or all of the modules. The computer system(s) may process depth data and provide images to the displays on their respective module(s).

Example Modular Interactive System Dimensions

[0077] FIG. 1 1 is a schematic diagram of the composite display with a multi-angled depth sensor housing of FIG. 10, including a turnaround of a modular component 1110c in the system as may be implemented in some embodiments. Particularly, the modular component 1110c is shown from perspective 1115a, front-on 1115b, and side 1115c views. The computer system 1105 or independent computer systems, may be used to control the one or more displays and to receive and process depth sensor data. A computer system 1105 may be used to control the displays and process data for all the components 1110a-c or only a single component, e.g., component 1110c.

[0078] FIGs. 12A-C provide greater detail regarding the specific dimensions of a particular example composite display. Particularly, FIG. 12A is a head-on schematic view of the composite display with a multi-angled depth sensor housing of FIG. 10 as may be implemented in some embodiments. In this example the modules are arranged to create a grid of displays 1240 together having a composite width 1215d of approximately 365 centimeters in some embodiments and height 1215b of approximately 205 centimeters in some embodiments. In some embodiments, the depth sensor housing height 1215a may be approximately 127mm. The individual displays may have a width 1215c of approximately 122 centimeters in some embodiments and a height 1215f of approximately 69 centimeters in some embodiments. In some embodiments, the displays may be HDMI displays with resolutions of 1920x1080 pixels. The displays 1240 may be elevated off the ground 1225 a distance 1215e of approximately 10 centimeters in some embodiments via a support structure 1245. Atop the displays 1240 may be a depth sensor housing frame or frames 1205, here shown transparently to reveal one or more of depth sensors 1210a-c

[0079] FIG. 12B is a top-down schematic view of the composite display with a multi-angled depth sensor housing of FIG. 10 as may be implemented in some embodiments. Note that the depth sensors and housing are no longer shown to facilitate understanding. Within the region 1225d the depth sensors may be able to collect depth data. Accordingly, a user 1235 would stand within this region when interacting with the system. The region may have a distance 1230f of approximately 300 centimeters in some embodiments in front of the display 1240 and be approximately the width 1215d of the display. In this embodiment, side regions 1225a and 1225c may be excluded from the interaction. For example, the user may be informed to avoid attempting to interact within these regions, as they comprise less optimal relative angles to depth sensors distributed across the system (in some embodiments, these regions may simply originate too much noise to be reliable). The installing technician may mark or cordon off the areas accordingly. These regions 1225a and 1225c may include a length 1230b, 1230g from a wall 1250 of approximately 350 centimeters in some embodiments and a distance 1230a, 1230h from the active region 1225d of approximately 100 centimeters in some embodiments. A region 1225b may be provided between the support structure 1245 and a wall support structure 1250 or other barrier, to facilitate room for one or more computing systems. Here, a distance 1230d of approximately 40 centimeters in some embodiments may be used and a length 1215d reserved for this computing system space. In some embodiments, the support structure 1245 may extend throughout the region 1225b and the computer system may rest on or within it.

[0080] FIG. 12C is a side schematic view of the composite display with a multi- angled depth sensor housing of FIG. 10 as may be implemented in some embodiments.

[0081] One will appreciate that the example dimensions provided above are merely used in connection with this specific example to help the user appreciate a specific embodiment. Accordingly, the dimensions may readily be varied to achieve substantially the same purpose.

Example Depth Sensor Frame for Modular Systems - Bracket-Mounted

[0082] The housing frame used to protect the depth sensors may take a variety of forms in different embodiments. FIG. 13A is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing frame, as may be implemented in some embodiments. FIG. 13B is an assembled schematic view of components in the frame of a multi-angled depth sensor housing, as may be implemented in some embodiments.

[0083] The frame may comprise an upper cover 1310, a back cover 1315, a bottom panel 1340, and two sensor view panels 1355a and 1355b (illustrated in FIG. 13B, but not FIG. 13A, for visual economy). View panels 1355a and 1355b may be screwed into place (e.g., screwed into one or more of bracket spacers 1305a-f with, e.g., a washer securing the screw on the opposing side), clamped, or otherwise mechanically coupled to the housing, and may also be held in place by angled portions 1335 and 1340a. The upper cover 1310 may have a length 1360b of approximately 1214mm in some embodiments, and a width 1360a of approximately 178mm in some embodiments. In some embodiments, the height 1360c may be approximately 127mm.

[0084] End panels 1305a and 1305f may be constructed in anticipation of the desired angles for upper cover 1310, a back cover 1315, and two sensor view panels 1355a and 1355b. Particularly, the angle 1370a may be approximately 25° in some embodiments, the angle 1370b may be approximately 35° in some embodiments, and the angle 1370c may be approximately 30° in some embodiments. To clarify, the upper cover 1310 and bottom panel 1340 are substantially parallel in the depicted embodiment. Accordingly, in this example, the angles between the top panel 1310 and back panel 1315 may be approximately 90°. Similarly, the angles between bottom panel 1340 and back panel 1315 may be approximately 90°. Not only may these angles present a more aesthetically pleasing design, but by conforming to the spacer dimensions, they may facilitate improved structural integrity of the housing as a whole.

[0085] The length 1375a may be approximately 97mm in some embodiments, the length 1375b may be approximately 89mm in some embodiments, the length 1375c of the cover ridge 1335 may be approximately 6mm in some embodiments, the length 1375d of sensor view panel 1355a may be approximately 56mm in some embodiments, and the length 1375e of sensor view panel 1355b may be approximately 54mm in some embodiments, and the length 1375f may be approximately 10mm in some embodiments.

[0086] Upper cover 1310, may include a portion 1325 substantially parallel with the bottom panel portion 1340, an angled portion 1330, and an angled retaining portion angled portion 1335 for retaining upper sensor view panel 1355a.

[0087] Back panel 1315 may include four cut-out grooves or insets 1320a, 1320b, 1320c, and 1320d As discussed herein, these grooves may be present in some embodiments to receive the spacers 1305b-e, thereby ensuring their being fixed in a desired location within the housing. One will appreciate that the number of grooves may or may not be the same as the number of spacers, as it may be desirable to fix only some of the spacers.

[0088] Bottom panel 1345 may include an angled front 1340a (tab or fold) and angled rear portion 1340b for retaining, at least in part, the adjacent panels. Bottom panel 1345 may include two cut-out insets 1350a and 1350b on its angled rear portion 1340b. This may result in "raised" portions 1345a, 1345b, and 1345c of the angled rear portion 1340b.

[0089] Within the frame may be one or more of spacer brackets 1305a-f (also referred to simply as "spacers" or "brackets"). While spacers 1305a and 1305f may serve as end panels, spacers 1305b-e may be entirely or substantially within the housing frame. Spacer brackets 1305a-f need not be of the same dimensions. For example, brace bracket 1305d may have a shorter length than spacer brackets 1305b, c, e. As discussed below, spacer brackets 1305a-c, e, and f may be used to ensure the structural integrity of the housing even when, e.g., a load is placed on top of portion 1325. Brace bracket 1305d, being shorter, provides space for mounting a sensor pair, but may also contribute to the housing's structural integrity. In some embodiments, the brace bracket 1305d may be secured by screws to the bottom panel 1340 and upper cover 1310.

[0090] FIG. 14A is a view of a spacer component of FIG. 13A, e.g., component 1305a or 1305e, as may be implemented in some embodiments, from two perspectives 1405a and 1405b. The perspective 1405a is rotated substantially 90° relative to the perspective 1405b, thereby presenting a concave portion formed by the extensions 1425a-f. The extensions 1425a-f may themselves be separated by spaces 1410a-f. FIG. 14B is a view of the mirrored spacer component of FIG. 13A, e.g., component 1305b or 1305f, as may be implemented in some embodiments, from two perspectives 1420a and 1420b. The perspective 1420b is rotated substantially 90° relative to the perspective 1420a, thereby presenting a concave portion formed by the extensions 1430a-f. The extensions 1430a-f may themselves be separated by spaces 1415a-f.

[0091] FIG. 15 is a view of the brace bracket component of FIG. 13A, e.g., component 1305d, as may be implemented in some embodiments, from two perspectives 1505a and 1505b. The perspective 1505a is rotated substantially 90° relative to the perspective 1505b, thereby presenting a concave portion formed by the extensions 1520a-e The extensions 1520a-e may themselves be separated by spaces 1515a-d

[0092] FIG. 16 is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing, including a sensor-pair-receiving brace bracket spacer, as may be implemented in some embodiments. Again, though a specific number of spacers are shown in the image to facilitate understanding, one will appreciate that in different embodiments there may be more or fewer spacers present than those depicted here. As discussed above, the housing may comprise an upper panel 1610, back panel 1615, and bottom panel 1640 (the sensor view panels are not shown for visual economy). While spacers 1605a, b e e and f provide structural support to the housing, the brace spacer bracket 1605d may be shorter and recessed relative to the other spacers 1605a, b e e and f so as to accommodate a coupling to a pair of depth sensors 1660. In this example, the brace spacer bracket 1605d, shown in isolated view 1600a has two holes 1670a,b for receiving a screw, nail, bolt, or other device for affixing the depth sensors 1660 to the brace spacer bracket 1605d For example, the depth sensors 1660 may themselves include mounting holes through which a screw may be passed to fix the sensor in place (e.g., as is the case for some versions of the RealSense™ depth sensor system).

[0093] In some embodiments, while spacers 1605a and 1605f are affixed to each end of the housing, the spacers 1605b-e may move freely within the housing. In this manner, it may be possible for an installation technician to configure the system to the particular circumstances of the system's environment and planned usage. In some embodiments, however, the grooves 1620a-d may receive each of spacer brackets 1605b-e, thereby ensuring their placement in a specific location within the housing. This predetermined positioning may be useful, e.g., when the housing is shipped as one housing in a collection of housings to be installed as part of a composite installation. In some embodiments, the grooves may accommodate only a specific spacer, thereby forcing the technician to install a specific configuration. In some embodiments, however, e.g., as shown here, each groove may be able to receive any one of the four spacers. In these embodiments, the technician may thereby have the freedom to select at which of the four positions the depth sensors are best situated so as to achieve their task. Thus, in the schematic top down view 1600b shown here, the spacer 1605d and affixed sensor pair 1660 may be located at a position offset from the center of the housing.

[0094] To further clarify the possible motivations for the spacer placement discussed with reference to FIG. 16, FIG. 17 is a schematic view of a possible sensor- placement configuration in the multi-angled depth sensor housings of an example user interface, as may be implemented in some embodiments. Particularly, the user interface 1700 includes three units 1705a-c in series. Each unit may include three vertically adjacent displays and a corresponding sensor housing 1710a-c. Within each sensor housing 1710a-c, the spacer positions may be configured in anticipation of the housing's depth sensors' roles in the user interface as a whole. For example, the position of the sensor pairs may vary slightly between each module as the optical spacing of the depth sensors is different from the spacing each of the display screens.

[0095] Thus, as shown in the schematic, top-down, cut-away view 1715b for the center sensor housing 1710b, the shortened brace bracket 1720b and corresponding depth sensor pair may be positioned in the center of the housing 1710b. In contrast, as shown in the schematic, top-down, cut-away view 1715c for the right sensor housing 1710c, the shortened brace bracket 1720c and corresponding depth sensor pair may be positioned at an offset 1725b relative to the center of the housing 1710c. Similarly, as shown in the schematic, top-down, cut-away view 1715a for the left sensor housing 1710a, the shortened brace bracket 1720a and corresponding depth sensor pair may be positioned at an offset 1725a relative to the center of the housing 1710a.

Example Depth Sensor Frame for Modular Systems - Alternative Bracket Mount

[0096] FIG. 18 is a plurality of schematic views of an alternative bracket mounting component as may be used in some embodiments. Some sensor systems, e.g., the RealSense™ 300 may have mounting points better accommodated by certain form factors. The bracket mounting component of FIG. 18 may better facilitate the mounting of such systems.

[0097] Particularly, as shown in side view 1800a, a spacer bracket 1805 may include a plurality of extensions. These extensions may include the extension 1805a having a lip for retaining, at least in part, the upper viewing panel 1825a and the extension 1805b including a lip for retaining, at least in part, the lower viewing panel 1825b. As discussed, these extensions may form an enclosure. Within this enclosure may be placed a bracing support 1820. The bracing support may include a flat, planar side 1820d adjacent to, or forming a portion of, the surface of the spacer bracket 1805. A top planar portion 1820b and a lower planar portion 1820c extending from the planar side 1820d may be used to secure the bracing support 1820 within the bracket spacer 1805. Frontal view 1800b (i.e., the perspective of one standing in front of the depth sensors 1815a and 1815b) removes the spacer bracket 1805 and viewing panels 1825a,b shown in side view 1800a and shows the bracing support 1820 from a "frontal view". Accordingly, it may be easier for the reader to discern the top planar portion 1820b and the lower planar portion 1820c extended from the planar side 1820d of bracing support 1820 in the view 1800b.

[0098] The top planar portion 1820b and a lower planar portion 1820c may be used to secure the bracing support 1820 in a variety of manners. For example, a screw may pass through the extension 1805a and top planar portion 1820b, though friction alone may suffice in some embodiments.

[0099] The bracing support 1820 may also include an extended planar surface 1820a. The extended planar surface 1820a may be used to couple bracing support 1820 with a sensor mount 1810. The views 1800f of the bracing support 1820 remove the other components (spacer bracket 1805, sensor mount 1810, viewing panels 1825a,b) . Accordingly surface 1820a may be more readily discernible in this view (the dashed lines in the of 1800b indicate that, from the front, portions of the surface 1820a and sensor mount 1810 may be occluded by the sensors 1815a,b).

[00100] The sensor mount 1810 may provide a stable fixture for receiving the depth sensor systems s 1815a and 1815b. View 1800c provides a view from the right side of the sensor mount 1810 ("right" when looking at the portion of the sensor mount 1810 receiving the depth sensor systems 1815a and 1815b). View 1800d provides a view from the left side of the sensor mount 1810. View 1800e provides a view from the front of the sensor mount 1810. The sensor mount 1810 may include a plurality of holes for receiving screws or other fixation devices, to join the viewing panels 1825a,b, depth sensor systems 1815a and 1815b, sensor mount 1810, and bracing support 1820 into a composite structure.

[00101] Particularly, the depicted example has eight holes for securing the composite structure. Bracket holes 1830c and 1830d may be used to secure the sensor mount 1810 to the bracing support 1820 via surface 1820a. Viewing panel hole 1830a may be used to secure the upper viewing panel 1825a to the sensor mount 1810, and viewing panel hole 1830b may be used to secure the lower viewing panel 1825b to the sensor mount 1810. Sensor holes 1830f and 1830e may be used to secure the upper depth sensor system 1815a to the sensor mount 1810. Similarly, sensor holes 1830h and 1830g may be used to secure the lower depth sensor system 1815b to the sensor mount 1810.

[00102] FIG. 19A is a perspective schematic view of portions of the alternative bracket mounting component of FIG. 18 in an exploded, unassembled state, as may be implemented in some embodiments. In the unassembled state, the sensor mount 1810, the bracing support 1820, and depth sensor systems 1815a and 1815b may be unconnected. FIG. 19B illustrates how the sensor mount 1810 and the bracing support 1820 may be coupled by inserting screws, pins, or other coupling mechanisms via holes 1830c and 1830d FIG. 19C is a perspective schematic view of the sensor mount 1810, the bracing support 1820, and depth sensor systems 1815a and 1815b all coupled together. As indicated, screws, pins, or other coupling mechanisms may be inserted through holes 1830f and 1830e to enter the securing mechanisms 1905a and 1905b respectively of the depth sensor system 1815a (though not visible in the diagram one will appreciate that screws, pins, or other coupling mechanisms may similarly be inserted through holes 1830h and 1830g visible in FIG. 18, though not identified in FIG. 19C) into the securing mechanisms of the sensor system 1815b). The upper viewing panel 1825a may then be secured by passing a screw, pin, or other coupling mechanism through upper viewing panel 1825a and into hole 1830a. Similarly, the lower viewing panel 1825b may then be secured by passing a screw, pin, or other coupling mechanism through viewing panel 1825b and into hole 1830b. Friction or grooves may be used, e.g., to ensure a secure fit in each of holes 1830a-h for the respective screw, pin, or other coupling mechanism.

Example Depth Sensor Frame for Modular Systems - "Standalone" Mounting

[00103] Rather than affix one or more depth sensor pairs to one or more brace brackets as described above, various of the embodiments may affix depth sensor pairs to the housing directly, or to fixed mounting structures within the housing. For example, FIG. 20A is a "see-through" view of a housing frame 2005 of a multi-angled depth sensor housing comprising depth sensors attached via "standalone mounts", rather than brackets, as may be implemented in some embodiments. Particularly, within the frame 2005 may be placed one or more paired sensor arrangements 2010a and 2010b. In this example, the depth sensors again resemble the form factor of the RealSense™ depth sensor system, though one will readily appreciate variations employing other depth sensors. As indicated by ellipses 2015, more than the two illustrated sensor mounts may be present and the mounts may be arranged in a substantially linear arrangement.

[00104] The mounts themselves may generally comprise two sensors at different angles and a mounting bracket. For example, FIG. 20B is a schematic view of a horizontal sensor mount as may be implemented in some embodiments. A top depth sensor system 2020 may be mounted above and at an angle relative to depth sensor system 2030. Each sensor may (as in the example of the RealSense™ depth sensor system) include, e.g., an infrared emitter 2020c, an infrared receiver 2020b (e.g., some embodiments may operate in approximately the 850nm range), and a connection 2020a (e.g., an USB connection, FireWire™ connection, wireless BlueTooth™ connection, etc.) to a computer system managing a modular unit or the display system as a whole. Some depth sensors additional include an RGB sensor, as discussed in greater detail below, though, as illustrated here, that need not be the case in all embodiments. For a horizontal mount, an extension 2025b may attach the mount 2025a to the frame housing or to the scaffold supporting the display system. FIG. 20C is a schematic view of a vertical sensor mount as may be implemented in some embodiments. For a horizontal mount, an extension 2030b may attach the mount 2030a to the frame housing or to the scaffold supporting the display system. Screw holes for receiving either the extension 2025b or the extension 2030b may be provided in the same mount in some embodiments to permit the installation technician flexibility in their construction.

[00105] FIG. 20D is a schematic view of a the varied depth region fields of view achieved using a sensor mount of FIG. 20B or FIG. 20C as may occur in some embodiments. Though shown here as non-overlapping to facilitate understanding, one will appreciate that in some embodiments, e.g., as shown in FIGs. 25A and 25B, the fields of view for each sensor in a sensor pair may overlap substantially (this may be true for any of the disclosed mount types, including, e.g., bracket mounts, stand-alone mounts, etc.). Particularly, given depth sensors 2050a and 2050b, the angles precipitated by installation using the mounts of FIGs. 20B or 20C may result in corresponding fields of view 2055a and 2055b relative to floor 2040.

[00106] FIG. 21 A is a schematic view of an example multi-angled standalone depth sensor mount 2105 with transparent depth sensor representations 2110a, 2110b in their relative positions, as may be implemented in some embodiments. FIG. 21 B is a schematic view of a multi-angled depth sensor mount 2105 of FIG. 21 A without depth sensors, as may be implemented in some embodiments. As illustrated, the mount 2105 may include a retaining extension 2115 including angled portions 2115a and 2115b configured to receive and retain the depth sensors 2110a, 2110b. However, as discussed herein, various embodiments may use screws, clamps, or other fixation devices to couple the sensors with the mount, in lieu of, or in addition to, a retaining extension 2115.

[00107] For example, FIG. 22 is a schematic side view of various dimensions of an example multi-angled standalone depth sensor mount, as may be implemented in some embodiments. Complementing side view 2205a of the mount 2210 is a projected view 2205b upon a plane beneath the mount. As indicated, this mount 2210 may be mounted to the housing via a vertical screw entering receiver 2240 (e.g., passing through the bottom of the housing). The regions 2220a and 2220b indicate where each of the first and second depth sensor systems may reside on the mount (though, as discussed herein, both positions need not be filled in every embodiment). Each sensor system may have a receiver to accept a mounting screw, pinion, or other fixation mechanism. Access pathways 2215a and 2215b permit such fixation mechanisms to enter the receivers and thereby couple the depth sensor systems to the mount 2210. These may enter at positions from the mount corresponding to distance 2230a and 2230b (approximately half the width of the depth sensor system in this embodiment). The distances 2230a and 2230b may be substantially 5mm in some embodiments. The angle 2245 may be substantially 25° in some embodiments. The lengths 2225a and 2225d may be substantially 12mm in some embodiments. The lengths 2225b and 2225c may be substantially 38mm in some embodiments.

[00108] Thus, in some embodiment the depth sensor system pairing may be mounted to a standalone mount or coupled with a brace bracket. In some embodiments, the pair may be bolted directly to the housing panels (e.g., without a holder). One will appreciate that various embodiments may use a particular sensor placement mechanism exclusively, or may use combinations of mechanisms within the housing.

[00109] For example, FIG. 23 is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing, including exclusively standalone mounted sensor pairs, as well as schematic top-down cutaway view of the assembled structure, as may be implemented in some embodiments. Within the housing formed by upper cover 2310, back panel 2315, bottom panel 2340 and the viewing panels (not shown), may be one or more standalone mounted depth sensor pairs 2360a-e (when standalone brackets are used, grooves 1620a-d may be omitted from the back panel 2315 in some embodiments). The pairs may be separated by zero or more spacers 2305a-e The number of intervening spacers 2305b-d may be determined based, e.g., upon the materials used for the housing and the desired structural integrity of the housing for the anticipated deployment environment.

[00110] In contrast to the exclusively standalone mounts of FIG. 23, FIG. 24 is an exploded, schematic view of components in the frame of a multi-angled depth sensor housing, including both standalone mounted and bracket-mounted sensor pairs, as well as schematic top-down cutaway view of the assembled structure, as may be implemented in some embodiments. Again, the housing may comprise back 2415, top 2410, and bottom 2440 panels. Between spacers 2405a-c,e,f may be placed both standalone mounted depth sensor pairs 2460a, b,d and bracket mounted depth sensor pairs 2460c (mounted, e.g., to brace bracket 2405d) In this example, the mounts have all their possible attachment points filled with sensors, however, less than all points may be used in some embodiments. Additionally, there is one mount per interval between spacers. One will appreciate that in some embodiments, more than one mount may be placed in an interval and some intervals may have no mounts. Additionally, though not shown here, one will appreciate that some or all of the depth sensor pairs may be mounted directly to the sensor view panels 1355a and 1355b or to the remainder of the housing.

[00111] FIG. 25A is a side view of various dimensions for an example interaction system with a multi-angled depth sensor housing 2520, as may be implemented in some embodiments. FIG. 25B is a schematic side view of the combined viewing angles for the system of FIG. 25A. Note that the depth field results depicted in FIGs. 25A and 25B may be achieved using depth sensor pairings mounted to the housing, standalone mounts, brace brackets, etc. Angle 2505a reflects the angle of the sensor view panel 1355a relative to the floor plane and may be approximately 65° in some embodiments. Angle 2505b reflects the angle of the sensor view panel 1355b relative to the floor plane and may be approximately 30° in some embodiments. The upper sensor within the housing 2520 may have a field of view 2510a of approximately 60° in some embodiments. The lower sensor within the housing 2520 may also have a field of view 2510b of approximately 60° in some embodiments. The upper depth sensor may be a height 2515a from the floor 2530 (in some embodiments, approximately 2.065 meters) and the lower depth sensor may be a height 2515b from the floor 2530 (in some embodiments, approximately 2.019 meters). In this example, the active area for interaction with the interface system may extend a distance 2525a from the display (in some embodiments, approximately 3 meters). [00112] Together, the fields of view 2510a and 2510b may precipitate a composite field of view 2510, which may be approximately 95° in some embodiments.

Example Depth Sensor Frame for Modular Systems - RGB Camera Variation

[00113] FIG. 26 is a "see-through" view of a housing frame for a multi-angled depth sensor housing 2605, wherein both depth sensors and visual image sensors are installed, as may be implemented in some embodiments. For example, depth sensor system 2620a may have a depth sensor emitter 2625b and depth sensor receiver 2625a (depth sensor system 2620b may likewise have corresponding emitters and receivers). While the depth sensor view panels 2640b and 2640a may permit, e.g., infrared frequencies to pass-through, both when emitted from the depth sensor emitter 2625b and when received at the depth sensor receiver 2625a, the view panels 2640b and 2640a may be opaque to visual frequencies (e.g., as an aesthetic or functional desire to prevent users from seeing the depth sensors). Accordingly, some embodiments contemplate incorporating holes, or alternative materials, into depth sensor view panels 2640b and 2640a at the locations 2635a-d to facilitate the capture of images in the visual range of wavelengths. For example, as in the case of the RealSense™ depth sensor, an RGB camera 2630a, 2630b may already be integrated into the depth sensor system. In some embodiments, independent RGB cameras 2630c and 2630d, dedicated exclusively for visual image capture may be used. The mounts may be adapted and reused for these RGB exclusive sensors to help ensure that they achieve the same or similar field of view as various of the depth sensors. In some embodiments, sensors exclusively dedicated to depth capture information, such as sensor 2645 may also be present within the housing frame. Consequently, as indicated by ellipses 2610a and 2610b, more mounts and sensors may be present within the housing than are shown here.

Example Gestures - "trigger-point"

[00114] Various of the embodiments described herein may be used to recognize a corpus of gestures and sub-gestures. A "gesture" may itself be represented as a sequence of one or more successive relationships between different portions of the user. A "sub-gesture" may be a sub-sequence of that sequence. For example, FIG. 27A is a schematic view of a user "trigger-point" gesture as may occur in some embodiments. In an initial frontal view 2705a the user may form a "gun" shape with their hand 2715a. Here, only the user's left hand 2715a is shown, though the gesture may be performed with either or both hands. Similarly, in this example, the user's thumb need not be extended in mimicry of a trigger mechanism on a real gun (e.g., as illustrated in hand variation 2750). Whether the extension of the thumb may be used to identify the gesture may be based on context (e.g., when running a gaming application anticipating trigger gestures, such a specific action may not be required in contrast to, say, a general menu selection, which may distinguish trigger actions from general pointing). In some embodiments, as shown in side view 2710a, the user's forearm may be rotated so that the thumb is at the top of the hand.

[00115] In some embodiments, even without a successive temporal change, the system may recognize the user's hand in the orientation of side view 2710a as establishing the "trigger-point" gesture. However, by extending their arm forward, or forward and upward 2720, as in front view 2705b and side view 2710b, the system may take the successive states to constitute the gesture (e.g., as a "firing" action in a gaming context). Particularly, FIG. 27B is a schematic view of the correspondences which may be used to recognize a user "trigger-point" gesture in some embodiments. At each depth frame, the system may determine the first moment, or average depth value, for all the depth values classified as the user's head 2730a, here, the center of mass point 2725. Similarly, the system may determine the first moment 2735 of the depth values classified as being part of the user's hand 2730b. The system may then determine the three-dimensional vector 2740a from one of these locations to the other. This vector, in conjunction with the orientation and geometry of the user's hand 2715a may alone suffice for determining whether a "trigger-point" gesture is in effect. However, in some embodiments, the system may compare this vector with a subsequent vector 2740b. If the comparison yields an expected relation (e.g., a translation vector within some threshold), then the system may conclude, in conjunction with the hand geometry, that a trigger action is in effect. Thus, the gestures may be recognized as a sequence of conditions, e.g., that portions of the user's anatomy fulfill certain geometric conditions (e.g., an "upward palm", an "extended thumb", etc.) while also creating various vector relations (e.g., that various vector relations between user components transform within certain bounds).

Example Gestures - "Push"

[00116] FIG. 28A is a schematic view of a user "push" gesture as may occur in some embodiments. Particularly, as shown in frontal 2805a, side 2810a, and overhead 2855a views, the user may initially have the palms of both hands 2815a and 2815b facing out before them. At a subsequent time, as shown by frontal 2805b, side 2810b, and overhead 2855b views, the user may move both hands 2815a and 2815b forward 2820

[00117] Again, the system may detect the gesture by comparing various vector relations. Particularly, FIG. 28B is a schematic view of the correspondences, which may be used to recognize a user "push" gesture in some embodiments. In the starting position, vectors 2850a and 2850b may be taken from the center of mass 2830a of the head classified depth values 2825a to the centers of mass for each of the user's left hand 2830b and right hand 2830c. Again, the centers of mass 2830b and 2830c may be determined as the first moments of the pixels of the user's left 2825b and right 2825c hands respectively. The variation in the vectors (e.g., the transform from vectors 2850a and 2840a to vectors 2850b and 2840b respectively) in conjunction with the user's hand orientations may serve as the system's basis for determining the presence of the gesture. One will appreciate that "first moments", "means", "centers of mass", etc. may be used interchangeably herein. Fixed offsets from depth value groupings may also be used in some embodiments.

Example Gestures - "Reveal"

[00118] FIG. 29A is a series of schematic front and side views of steps in a "reveal" gesture, as may occur in some embodiments. Initially, as shown in frontal 2905a, side 2910a, and overhead 2915a views, the user may initially have the palms of both hands 2920a and 2920b facing out before them and being close together. At a subsequent time, as shown by frontal 2905b, side 2910b, and overhead 2915b views, the user may move both hands 2915a and 2915b forward 2920. As indicated by frontal 2905b, side 2910b, and overhead 2915b views, and frontal 2905c, side 2910c, and overhead 2915c views, the user may move their hands 2920a and 2920b progressively further apart, as though separating a pair of drapes, or moving coats in a coat rack, etc.

[00119] FIG. 29B is a frontal and overhead schematic view of various correspondences as may be used to detect the "reveal" gesture of FIG. 29A in some embodiments. Particularly, vectors 2940a and 2945a may be formed by comparing the center of mass 2925a of the user's head classified depth values 2930a with the center of masses 2925b and 2925c of the user's right 2930b and left 2930c hand classified depth values. The one or more computer systems associated with the user interface may then compare vectors 2940a and 2945a with the vectors 2940b and 2945b resulting at a subsequent time in conjunction with the user's hand orientation to determine the execution of the "reveal" gesture.

Example Gestures - "Swipe"

[00120] Much like a finger-swipe used on some handheld devices, some embodiments may recognize a forearm gesture as corresponding to similar "swipe" functionality. FIG. 30A is a series of schematic front, side, and overhead views of steps in a "swipe" gesture, as may occur in some embodiments. Initially, as shown in frontal 3005a, side 3010a, and overhead 3015a views, the user may initially have one arm outstretched substantially from their side, such that a hand 3020a is in parallel, or almost in parallel, with the plane of the user's torso. At subsequent times, as shown by frontal 3005b, side 3010b, and overhead 3015b views, as well as frontal 3005c, side 3010c, and overhead 3015c views, the user may move the hand 3020a across their torso as indicated by motion arrows 3025a and 3025b. In some embodiments, a smaller, lateral movement of the hand at the user's wrist, rather than the grosser, arm- swipe shown here, may also be recognized as a "swipe".

[00121] FIG. 30B is a frontal and overhead schematic view of various correspondences as may be used to detect the "swipe" gesture of FIG. 30A in some embodiments. Particularly, the system may determine a vector 3040a from the center 3035a of the head classified depth values 3030a to the center 3035b of the user's hand classified values 3030b. The system may then compare the vector 3040a with the subsequently determined vector 3040b in conjunction with the user's hand orientation to determine that a "swipe" gesture has been performed.

[00122] Naturally, the swipe gesture may be performed by either hand. The gesture may be used, e.g., to cycle through options in a menu or to dismiss a menu dialog. Accordingly, one will appreciate that the gesture may be performed in the reverse direction, with the other hand, in an alternative direction (e.g., vertically up and down), swiping with the back of the hand, rather than the palm, etc.

Example Gestures - "Circle"

[00123] FIG. 31 A is a series of schematic front and side views of steps in a "circle" gesture, as may occur in some embodiments. Particularly, as evidenced by frontal 3105a-e and side 3110a-e views, the user may rotate their left 3115b and right 3115a hands in (from the user's perspective) a counter-clockwise and clockwise set of rotations (though one will appreciate that rotation in the opposite direction may also be recognized in a gesture in its own right). As evidenced by motion arrows 3120a-d and 3125a-d the rotations may be reflected as a series of smaller relations between hand positions. FIG. 31 B is a composite frontal view 3130 of the hand orientations associated with the correspondences that may be used for detecting the "circle" gesture of FIG. 31 A in some embodiments. For example, the system may break the circle down into series of frame positions, here represented by the numbers 1 -4. Ultimately, the user may return their hands to substantially the same position as when they began the gesture (e.g., as in the views 3105a and 3110a).

[00124] FIG. 31 C is a composite frontal view 3135 of the correspondences that may be used for detecting the "circle" gesture of FIG. 31 A in some embodiments. Particularly, the entire circular had motion may be broken into a sequence of hand positions, which may themselves be represented by a plurality of vectors 3150a-d from the center 3140 of the head classified depth value pixels 3145 to the center user's right hand classified depth values and a corresponding plurality of vectors 3155a-d from the center 3140 of the head classified depth value pixels 3145 to the center of the user's left hand classified depth value pixels. [00125] One will appreciate that additional sub-gestures may be created in an analogous manner. For example, the individual circular motion of each hand may itself serve as a "single hand circle" gesture. Additionally, the direction of the rotations may be reversed. Ellipses, and other arbitrary hand motions may likewise be detected via a sequence of vector relations.

Example Gestures - "Crouch"

[00126] Not all gestures need be performed with the user's hands. Additionally, the vectors used to identify gestures may be between successively captured frames, rather than components within a single frame.

[00127] For example, FIG. 32A is a series of schematic front and side views of steps in a "crouch" gesture, as may occur in some embodiments. FIG. 32B is a frontal and overhead schematic view of various correspondences as may be used to detect the "crouch" gesture of FIG. 32A in some embodiments. Generally, by bending their knees and torso as indicated in front 3205a, 3205b and side 3210a, 3210b views the user may precipitate one or more correspondences that may serve to identify a "crouching" gesture to the system.

[00128] In some embodiments, the system may use a single vector 3240 taken from the center 3220b of the user's torso-classified depth values 3215b in an earlier frame to the center 3220a of the user's head-classified depth values 3215a to recognize the performance of a "crouch" gesture. For example, the vector may normally point upward. However, when the user lowers their head, the vector may reduce in size and even change direction. Such a direction change may be used to recognize a "crouching" gesture (though one will readily appreciate that other correspondences, such as between the head itself at different times, may also suffice).

Example Gesture Detection Methodologies - Example Processes

[00129] FIG. 33 is a flow diagram illustrating aspects of a gesture detection process 3300 as may be implemented in some embodiments. At block 3305, the computer system may receive one or more new depth frames from the one or more depth sensors on the interface. [00130] The system may then consider the newly acquired and any previous frames in conjunction with a template at block 3315 until all the gesture templates have been considered at block 3310 or until a template matching the acquired frames is found at block 3320. Where no matching frame has been found after all the templates have been considered the system may continue to acquire new depth frames. A template may simply be a stored collection of sequential conditions, the fulfillment of which, may be recognized by the computer system as corresponding to the successful completion of a gesture.

[00131] However, if a match occurs at block 3320, the system may output the gesture corresponding to the template at block 3325, e.g., to an application waiting for user input in the form of recognized gestures, before resetting all the templates at block 3330. In some embodiments "resetting" a template may simply mean marking or clearing a flag so that templates do not consider frames from the presently recognized gesture in their subsequent evaluations. For example, it may be desirable after recognizing a gesture for the system to "start fresh" rather than misinterpreting the conclusion of a previous gesture as the beginning of a subsequent one. As discussed below, some embodiments may instead recognize both gestures and their sub- gestures.

[00132] FIG. 34 is a flow diagram illustrating aspects of a gesture template fulfilment determination process 3400 as may be implemented in some embodiments. For example, the process 3400 may occur as part of blocks 3315 and 3320. Templates may comprise data structures having a series of conditional elements that must be fulfilled in order for the gesture to register with the system.

[00133] At block 3405, the template process may receive a new frame (e.g., the newly acquired frame at block 3305 being made available to the template at block 3320). At block 3410, the system may determine the correspondences between this frame and zero of more preceding frames, depending upon the gesture. For example, a template for the "crouch" gesture may compare the vector between the center of the user's torso at a previous frame to the center of the user's head in the new frame as discussed above to detect the gesture. Conversely, the system may determine vectors between the user's head and the user's hands to see if a sequence of such vectors fulfills the conditions for a "circle" gesture.

[00134] If the template elements (e.g., a sequence of correspondences, a sequence of hand orientations, etc.) do not agree with the incoming frame at block 3415 then the template may reset itself at block 3425. Conversely, if the frame continues to agree with the template at block 3415 (e.g., if the next unfulfilled set of elements agree) then the system may continue to note the fulfillments at block 3420. For example, gestures may require a sequence of vector correspondences, which are reflected in the template elements. When that sequences is disrupted, the template may "abandon" the current matching and begin anew.

[00135] As one example, consider a "circle" gesture template. The template's elements may require that the first frame have the user's left and the right hands in a position and orientation substantially as indicated in views 3105a and 3110a. Subsequent frames should then follow the path constraints established using the vectors 3150a-d and 3155a-d for the remaining template's elements to be fulfilled. If the user's hands depart from these constraints, the elements will not be fulfilled and the template may be reset at block 3425. In contrast, if all the elements continue to be fulfilled until the user has returned to substantially the position as indicated in views 3105a and 3110a then at block 3430 the system may determine that the template has been fulfilled and note this in an output at block 3435 (e.g., causing the system to transition from block 3320 to block 3325).

Example Gesture Detection Methodologies - Example Gesture Structures

[00136] Some embodiments recognize gestures as discrete units. For example, FIG. 35A is an example tree diagram illustrating correspondence relationships between a plurality of gestures as may occur in some embodiments. Particularly, each edge 3510a-i represents the fulfillment of a sequential element constraint (or collection of constraints for a given frame). Some gestures may share an initial constraint (nodes 3505a-e are merely provided for the reader's reference to identify mutually exclusive elements). For example, all three of gestures D, E, and F (3515d-f) begin with the same condition 3510c. Per the above examples, both the "push" and "circle" gestures may begin with the respective templates recognizing that the user has placed both hands palm outward in the depth frame. The structure of the tree 3500a is such that the gestures 3515a-f do not involve "sub-gestures". That is, if a gesture requires sequential elements A, B, C, and D, then a gesture comprising only the sequential elements A, B, and C is not considered in the corpus.

[00137] In contrast, FIG. 35B is an example tree diagram illustrating correspondence relationships between a plurality of gestures, including sub-gestures, as may occur in some embodiments. Unlike the tree structure 3500a, the structure 3500b does permit for sub-gesture recognition. Particularly, each of the gestures 3515g-j includes various conditions 3510j-n, which are in addition to those required for various sub-gestures 3515a and 3515b. Embodiments which permit sub-gestures may need to qualify or modify the processes of Figs. 33 and 34 so that "fulfillment" of a gesture does not occur until the frames have satisfied one template and are not able to satisfy any others. For example, having satisfied conditions 3510c and 3510g, the system may wait until the subsequent frames indicate that conditions 3510k and 35101 have not be fulfilled, before outputting that Gesture D 3515d has been recognized. In contrast, if condition 3510k was immediately satisfied, then the system may output that Gesture I 3515i was satisfied in lieu of Gesture D 3515d In some embodiments, rather than outputting the most recently complete sub-gesture in the chain if there are one or more satisfied subsequent conditions before reaching a failed condition, the system may simply reset all the templates, and assume no gesture was met. For example, if condition 351 Oi was fulfilled, but neither of conditions 3510m or 351 On were fulfilled, then the system may, in some instances, indicate that no gesture has been recognized rather than output Gesture D 3515d (in contrast, if condition 351 Oi was never fulfilled, the system may output Gesture D 3515d). The decision whether to recognize a sub- gesture when a downstream condition may be based upon context or the specifications of an application designer.

Example Gesture Detection Methodologies - Gesture Reservations

[00138] In some embodiments, the user interfaces may serve as a "general purpose" system upon which application developers implement different applications. For example, the system may have a generic "operating system" environment in which the user interacts to select the developer applications to run. In these embodiments, it may be necessary for the system to specify certain "foundational gestures" with common behavior across all applications, to avoid user confusion. For example, FIG. 36 is a Venn diagram illustrating various gesture-set relations as may occur in some embodiments.

[00139] In the universe of all possible user gestures 3605 some gestures may be reserved as "foundational" 3610. For example, crossing one's arms may be reserved as a universal gesture for "halt application". Accordingly, this foundational subset may be a distinct subset from various application-specific gestures 3615a-d (ellipses 3625 indicates that there may be more sets of application specific gestures than depicted here). Thus, being a reserved, "foundational" gestures, application developers may be advised that using the gesture in their application is forbidden (and if recognized by the system may result in foundational functionality, such as halting the application, rather than whatever action the developer intended).

[00140] Conversely, being specific to the application's context, there is no reason that applications cannot share common gestures if, e.g., they will not be run simultaneously. This potential overlap is here represented in part by regions 3620a and 3620b. For example, a "push" gesture may fall in region 3620b and may be used to move a virtual object in Application B, select an item for purchase in Application C, and fire a virtual weapon in Application D.

Example Contextual Gesture Embodiments

[00141] FIG. 37A is a schematic view of a user at a first position 3710a before an interface system 3705 comprising different interaction zones, as may be implemented in some embodiments. Particularly, gesture recognition and system behavior may be contextually dependent upon the user's distance from the display. Accordingly, as shown in FIG. 37B, when the user moves 3720 to a position 3710b in a zone closer to the screen, new behaviors may result and gestures may have different effects. To this end, the system may divide the region before it into "zones" 3715a-d. Accordingly, in addition to reporting a detected gesture to an application, the system may report the user's distance from the screen or the zone 3715a-d in which the user appears. [00142] The interface's behavior may also vary with the user's lateral position before the display. For example, FIG. 38A is a schematic view of a user at a center position 3810a before an interface system 3805 running a dynamic vanishing point selection menu and the corresponding user view, as may be implemented in some embodiments. FIG. 38B is a schematic view of the user at a left position 3810b relative 3815a to the center positon 3810a and FIG. 38C is a schematic view of a user at a position 3810c to the right relative 3815b to the center position 3810c. The dashed lines on the floor may reflect zones before the user interface, but are also provided merely for the reader's reference, as in some embodiments, the system may simply note the user's lateral position without explicitly determining a zone corresponding to that position.

[00143] As the users moves laterally relative to the display (as indicated by relative arrows 3815a and 3815b) the vanishing point of the displayed rendering may be adjusted to align with the user's new position. For example, the display's sensor housing and nine displays are shown in dashed lines in views 3820a-c Views 3820a-c are shown here as they would appear to someone viewing the display. In this example, the user is looking into three different rooms (coincidentally the width of each room is substantially the same as the width of each sub-display). When the user is at center position 3810a, the vanishing point for the display image is in the center of the display as shown in view 3820a. However, when the user moves to the left position 3810b, the system may adjust the vanishing point to the left, as shown in view 3820b, to again appear before the user. Additionally, the system may occlude the views of the other rooms as illustrated to mimic the real-world behavior that would occur when a user shifts position between real-world rooms. In this manner, the user is less conscious that they are staring at a two-dimensional display and more likely to accept the immersive experience as an extension of their reality.

[00144] Similar to the above examples, when the user moves to the right positon 3810c, the system may adjust the vanishing point and field of view as shown in view 3820c to correspond to the user's new right position. As discussed in greater detail below, because the system may recognize the user's head position, not only lateral movement, but vertical movements may also result in adjustments to the vanishing point and occlusions displayed to the user. Together, this gives the user the impression of looking through a "real-world" window into the scene, rather than merely staring at a flat display

[00145] In some embodiments, user movement toward the display may result in selective enlargement of the viewing region to invite more granular user interaction. For example, FIG. 39A is a schematic view of a user at a first position before engaging a contextual focus feature at the center of the user interface 3905 and the resulting display, as may be implemented in some embodiments. FIG. 39B is a schematic view of a user at a second position after engaging a contextual focus feature at the center of the user interface and the resulting change in display, as may be implemented in some embodiments. Initially, in FIG. 39A, the user may stand at a position 3910a before the display. Consequently, the user may perceive a view such as 3920a. Were the user standing before a real-world series of rooms as shown in schematic diagram 3925a, this display would correspond to the user standing at position 3935a outside all three rooms 3930

[00146] In contrast, in FIG. 39B, when the user moves forward 3915 to a position 3910b sufficiently close to the display, the system may infer this movement as a "selection" of the displayed object, room, etc. Accordingly, having "selected" the center room, the system may now expand the displayed image as shown in view 3920b. While this expansion may mimic real-world behavior, in some embodiments this expansion may occlude more of the other rooms and enlarge more of the selected room than would occur based on the physical distance 3915 moved by the user. In fact, as shown in the schematic diagram 3925b depicting a real-world series of rooms 3930, the displayed view is instead closer to what would occur in the real-world had the user moved a distance 3940 to the threshold of a room 3935b. Accordingly, in real-world units the virtual distance 3940 translation of the virtual camera rendering the scene 3920b may be larger than the actual distance 3915 moved by the user. In this manner, the system may break from the immersive character of the vanishing point distortion to permit the user greater freedom in navigating the virtual environment. Indeed, in some embodiments, all movement relative the center position may correspond to some greater or smaller factor of that moment in the virtual world. For example, a logarithmic or exponential relation may be used when the user wishes to quickly navigate between a microscopic and a planet-wide frame of reference with the same ~4-foot linear movement in the real-world.

[00147] To further clarify the example of FIGs. 39A and 39B, FIG. 40A and 40B provide schematic views of the contextual focus feature of the user interface of FIG. 39 and resulting display changes, before and after engagement, but at the side of the user interface, rather than the center of the user interface, as may occur in some embodiments. Here, when the user moves from the position 4010a forward a real-world distance 4015 to position 4010b the system may adjust the view from an initial view 4020a with a vanishing point within the left-most room to an enlarged view 4020b. The view 4020a corresponds to the user standing at a virtual position 4035a relative to the rooms 4030 as shown in view 4025a. The view 4020b corresponds to the user's view from position 4035b at the threshold of the left-most room when the user moves forward a position 4040 relative to their original position 4035a in the virtual world as shown in view 4025b. As discussed above, the virtual movement 4040 may be larger than the real-world translation 4015.

[00148] One will appreciate that this room structure may serve as a "home" screen from which they user may select various applications to run. If there are more than three applications, the user may perform a "swipe" gesture (horizontally and in some embodiments vertically and in other directions) or other suitable gesture to present additional room / application pairings. In some embodiments, the rooms may represent "folders" containing several applications as objects in the room. By approaching the room, the room may be enlarged and the user then able to run one of the applications by pointing to the corresponding object.

Example Applications

[00149] FIG. 41 is a schematic view of a user interface system 4105 running an example "trigger-poinf-based shooter application as may be implemented in some embodiments. For example, the rooms of FIG. 40 may have corresponded to three different applications. By moving forward to the left-most room and performing a "push" gesture, the user 4125 may initialize a video game wherein they must use "trigger-point" gestures to blast hot and cold cubes 4130 with corresponding cold 4110a and hot 4110b blasts from the user's left 4120a and right 4120b hands respectively. The system may infer the direction of the blasts by extrapolating from the directions 4115a, 4115b pointed to by the user's index fingers. Performing an exit gesture may cause the game to end and return the user to the room-selection menu.

[00150] As another example, FIG. 42 is a schematic view of a user interface system 4205 running an example calligraphy training application as may be implemented in some embodiments. Here, the user 4225 moves their hand 4220 (as part of a "trigger- point" or simply a "pointing" gesture) to direct the brush strokes in a calligraphy application. For example as the user moves a virtual brush corresponding to the direction 4215 they are pointing, the unfilled portions 4210a of a character may be filled 4210b (e.g., as the user completes the character stroke pattern in the correct stroke order). As with the cube game described above, the user may have selected the calligraphy application by approaching a corresponding room and performing a push gesture from the preceding rooms menu.

[00151] As another example application, FIG. 43 is a series of schematic views of a user interface system 4305 running an example obstacle course application as may be implemented in some embodiments. When the user stands at a center position 4310a they may perceive a course with a central vanishing point in the view 4320a. Virtual footprints 4330a and 4330b or any other suitable avatar may be used to reflect the user's risk of collision in the obstacle environment. Once the application begins, the virtual world may begin to move past the user (e.g., the user may begin to "run in place" as their avatar begins to proceed forward through the virtual environment).

[00152] In view 4320b, the user has jumped 4310b from a side position 4315 to avoid colliding with the impending obstacle 4325a. Note that the vanishing point has been adjusted to reflect the user's new head position in the upper right of the display. Conversely, in view 4320c the user is crouching at a position to the left 4310c to avoid an upcoming obstacle 4325b in view 4320c. Again, the system has adjusted the vanishing point and perspective in the view 4320c based upon the user's new head position. As indicated by this example, the system may continue to monitor certain user characteristics in parallel with gesture detection. For example, the user's head position and orientation may be constantly noted by the computer system so as to adjust the presented view, even as the system continues to recognize various user gestures.

[00153] Additionally, one will appreciate that while many of the example applications have been described with respect to the embodiment of FIG. 10, the applications may also be used with other of the disclosed embodiments, e.g., those of FIGs. 8 and 9.

Computer System

[00154] FIG. 44 is a block diagram of an example computer system as may be used in conjunction with some of the embodiments. The computing system 4400 may include an interconnect 4405, connecting several components, such as, e.g., one or more processors 4410, one or more memory components 4415, one or more input/output systems 4420, one or more storage systems 4425, one or more network adaptors 4430, etc. The interconnect 4405 may be, e.g., one or more bridges, traces, busses (e.g., an ISA, SCSI, PCI, I2C, Firewire bus, etc.), wires, adapters, or controllers.

[00155] The one or more processors 4410 may include, e.g., an Intel™ processor chip, a math coprocessor, a graphics processor, etc. The one or more memory components 4415 may include, e.g., a volatile memory (RAM, SRAM, DRAM, etc.), a non-volatile memory (EPROM, ROM, Flash memory, etc.), or similar devices. The one or more input/output devices 4420 may include, e.g., display devices, keyboards, pointing devices, touchscreen devices, etc. The one or more storage devices 4425 may include, e.g., cloud based storages, removable USB storage, disk drives, etc. In some systems memory components 4415 and storage devices 4425 may be the same components. Network adapters 4430 may include, e.g., wired network interfaces, wireless interfaces, Bluetooth™ adapters, line-of-sight interfaces, etc.

[00156] One will recognize that only some of the components, alternative components, or additional components than those depicted in FIG. 44 may be present in some embodiments. Similarly, the components may be combined or serve dual- purposes in some systems. The components may be implemented using special- purpose hardwired circuitry such as, for example, one or more ASICs, PLDs, FPGAs, etc. Thus, some embodiments may be implemented in, for example, programmable circuitry (e.g., one or more microprocessors) programmed with software and/or firmware, or entirely in special-purpose hardwired (non-programmable) circuitry, or in a combination of such forms.

[00157] In some embodiments, data structures and message structures may be stored or transmitted via a data transmission medium, e.g., a signal on a communications link, via the network adapters 4430. Transmission may occur across a variety of mediums, e.g., the Internet, a local area network, a wide area network, or a point-to-point dial-up connection, etc. Thus, "computer readable media" can include computer-readable storage media (e.g., "non-transitory" computer-readable media) and computer-readable transmission media.

[00158] The one or more memory components 4415 and one or more storage devices 4425 may be computer-readable storage media. In some embodiments, the one or more memory components 4415 or one or more storage devices 4425 may store instructions, which may perform or cause to be performed various of the operations discussed herein. In some embodiments, the instructions stored in memory 4415 can be implemented as software and/or firmware. These instructions may be used to perform operations on the one or more processors 4410 to carry out processes described herein. In some embodiments, such instructions may be provided to the one or more processors 4410 by downloading the instructions from another system, e.g., via network adapter 4430.

Remarks

[00159] The above description and drawings are illustrative. Consequently, neither the description nor the drawings should be construed so as to limit the disclosure. For example, titles or subtitles have been provided simply for the reader's convenience and to facilitate understanding. Thus, the titles or subtitles should not be construed so as to limit the scope of the disclosure, e.g., by grouping features which were presented in a particular order or together simply to facilitate understanding. Unless otherwise defined herein, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, this document, including any definitions provided herein, will control. A recital of one or more synonyms herein does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any term discussed herein is illustrative only, and is not intended to further limit the scope and meaning of the disclosure or of any exemplified term.

[00160] Similarly, despite the particular presentation in the figures herein, one skilled in the art will appreciate that actual data structures used to store information may differ from what is shown. For example, the data structures may be organized in a different manner, may contain more or less information than shown, may be compressed and/or encrypted, etc. The drawings and disclosure may omit common or well-known details in order to avoid confusion. Similarly, the figures may depict a particular series of operations to facilitate understanding, which are simply exemplary of a wider class of such collection of operations. Accordingly, one will readily recognize that additional, alternative, or fewer operations may often be used to achieve the same purpose or effect depicted in some of the flow diagrams. For example, data may be encrypted, though not presented as such in the figures, items may be considered in different looping patterns ("for" loop, "while" loop, etc.), or sorted in a different manner, to achieve the same or similar effect, etc.

[00161] Reference in this specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. Consequently, the phrase "in one embodiment" in various places in the specification is not necessarily referring to the same embodiment in each of those various places. Separate or alternative embodiments may not be mutually exclusive of other embodiments. One will recognize that various modifications may be made without deviating from the scope of the embodiments.