In the past, computing applications such as computer games and multimedia applications have used controllers, remotes, keyboards, mice, or the like to allow users to manipulate game characters or other aspects of an application. More recently, computer games and multimedia applications have begun employing cameras and motion recognition to provide a natural user interface (“NUI”). With NUI, user gestures are detected, interpreted and used to control game characters or other aspects of an application.
Generally there is a strong line between the physical and the digital world. It is possible to build rich digital experiences, but there is generally not a tie back to the physical objects the experiences are about. There are a number of applications user interaction with real world objects would enhance the application experience.
Technology is described for defining a three dimensional (3D) zone which, upon activation of which by an element as detected by a depth capture system, will raise a digital event. Each zone consists of a region in three-dimensional space comprising a defined area, the interaction with which is detected by activation of a threshold number of pixels over a period of time detected by a capture device. The event can be provided to an application to perform programmatic tasks based on the event. The threshold may be defined in terms of an absolute number of pixels, or percentage of pixels in three dimensional capture data which must be activated in order to trigger the event. Generation of the event may be limited to the entrance or exit of a specific person, body part, or object. Using the digital event, interaction with real world objects may be tied to digital events. The zones can be adapted over time by learning if specific pixels are always “on” in order to filter them out of the persistent signal and automatic alignment of the capture device can be made to a previously recorded scene in order to automatically calibrate the camera and zones.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Technology is described for defining a three dimensional (3D) zone which, upon entrance or exit of an element as detected by a depth capture system, will raise a digital event. Activation of the region is determined by a change in the data of a threshold number of pixels in the region over a threshold period of time. Hence, the region may be activated by living beings and inanimate objects. The event can be provided to an application to perform programmatic tasks based on the event. The threshold for generating an event in the zone may be defined in terms of an absolute number of pixels, or percentage of pixels in three dimensional capture data which must be activated in order to trigger the event. Generation of the event may be limited to the entrance or exit of a specific person, body part, or object, or a combination of these. Using the digital event, interaction with real world objects may be tied to digital events. The zones can be adapted over time by learning if specific pixels are always “on” in order to filter them out of the persistent signal and automatic alignment of the capture device can be made to a previously recorded scene in order to automatically calibrate the camera and zones.
Other system embodiments may use other types of computer systems such as desktop computers, and mobile devices like laptops, smartphones and tablets including or communicatively coupled with depth sensitive cameras for capturing the user's head features and a display for showing a resulting personalized avatar. In any event, whatever type or types of computer systems are used for generating the facial personalized avatar, one or more processors generating the facial avatar will most likely include at least one graphics processing unit (GPU).
Suitable examples of a system 10 and components thereof are found in the following co-pending patent applications: U.S. patent application Ser. No. 12/475,094, entitled “Environment And/Or Target Segmentation,” filed May 29, 2009; U.S. patent application Ser. No. 12/511,850, entitled “Auto Generating a Visual Representation,” filed Jul. 29, 2009; U.S. patent application Ser. No. 12/474,655, entitled “Gesture Tool,” filed May 29, 2009; U.S. patent application Ser. No. 12/603,437, entitled “Pose Tracking Pipeline,” filed Oct. 21, 2009; U.S. patent application Ser. No. 12/475,308, entitled “Device for Identifying and Tracking Multiple Humans Over Time,” filed May 29, 2009, U.S. patent application Ser. No. 12/575,388, entitled “Human Tracking System,” filed Oct. 7, 2009; U.S. patent application Ser. No. 12/422,661, entitled “Gesture Recognizer System Architecture,” filed Apr. 13, 2009; U.S. patent application Ser. No. 12/391,150, entitled “Standard Gestures,” filed Feb. 23, 2009; and U.S. patent application Ser. No. 12/474,655, entitled “Gesture Tool,” filed May 29, 2009.
In the context of this disclosure, reference is made to a three dimensional Cartesian coordinate system. However, it should be understood that any of a number of various types of coordinate systems may be used in accordance with the present technology.
As shown in
According to another embodiment, the capture device 20 may include two or more physically separated cameras that may view a scene from different angles, to obtain visual stereo data that may be resolved to generate depth information.
The capture device 20 may further include a microphone 30 to receive audio signals provided by the user to control applications that may be executing on the computing environment 12 as part of the natural user interface.
In the example embodiment, the capture device 20 may include a processor 32 in communication with the image and depth camera component 22 and having access to a memory component 34 that may store instructions for execution by the processor 32 as well as images or frames of images captured and perhaps processed by the 3D camera. The memory component 34 may include random access memory (RAM), read only memory (ROM), cache, Flash memory, a hard disk, or any other suitable storage component. The processor 32 may also perform image processing, including some object recognition steps, and formatting of the captured image data.
As shown in the example of
In the illustrated example, computer system 12 includes a variety of software applications, data sources and interfaces. In other examples, the software may be executing across a plurality of computer systems, one or more of which may be remote. Additionally, the applications, data and interfaces may also be executed and stored remotely by a remote computer system 112 with which either the capture device 20 or the computer system 12 communicates. Additionally, data for use by the applications, such as rules and definitions discussed in more detail with respect to
Computer system 12 comprises an operating system 110, a network interface 136 for communicating with other computer systems, a display interface 124 for communicating data, instructions or both, to a display like display 14 of display device 16, and a camera interface 134 for coordinating exchange of depth image data and instructions with 3D capture device 20. An image and audio processing engine 113 comprises natural user interface software 122 which may include software like gesture recognition and sound recognition software for identifying actions of a user's body or vocal cues which are commands or advance the action of a multimedia application. Additionally, 3D object recognition engine 114 detects boundaries using techniques such as edge detection and compares the boundaries with stored shape data for identifying types of objects. Color image data may also be used in object recognition. A type of object which can be identified is a human body including body parts like a human head. A scene mapping engine 118 tracks a location of one or more objects in the field of view of the 3D capture device. Additionally, object locations and movements may be tracked over time with respect to a camera independent coordinate system.
The 3D hot zone configuration engine 116 generates a 3D hot zone definition for use by the system of
An application programming interface (API) 125 provides an interface for multimedia applications 128. Besides user specific data like personal identifying information including personally identifying image data, user profile data 130 may also store data or data references to stored locations of a user profile information, user-identifying characteristics such as user-identified skeletal models.
A skeletal recognition engine 192 is included to create skeletal models from observed depth data through capture device 20. Exemplary skeletal models are described below.
It should be recognized that all or a portion of computer system 12 may be implemented by a computing environment coupled to the capture device via the networks 50, with no direct connection 36 between the system and the capture device. Any image and audio processing engine 113, application 128 and user profile date 130 may be stored and implemented in a cluster computing environment.
Computer system 900 may also contain communication module(s) 912 including one or more network interfaces and transceivers that allow the device to communicate with other computer systems. Computer system 900 may also have input device(s) 914 such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) 916 such as a display, speakers, printer, etc. may also be included.
The example computer systems illustrated in the FIGS. include examples of computer readable storage devices. A computer readable storage device is also a processor readable storage device. Such devices may include volatile and nonvolatile, removable and non-removable memory devices implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Some examples of processor or computer readable storage devices are RAM, ROM, EEPROM, cache, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, memory sticks or cards, magnetic cassettes, magnetic tape, a media drive, a hard disk, magnetic disk storage or other magnetic storage devices, or any other device which can be used to store the information and which can be accessed by a computer.
In one embodiment, the depth image may be colorized or grayscale such that different colors or shades of the pixels of the depth image correspond to and/or visually depict different distances of the targets from the capture device 120. Upon receiving the image, one or more high-variance and/or noisy depth values may be removed and/or smoothed from the depth image; portions of missing and/or removed depth information may be filled in and/or reconstructed; and/or any other suitable processing may be performed on the received depth image.
A model of a target can be variously configured without departing from the scope of this disclosure. In some examples, a body model may include one or more data structures that represent a target as a three-dimensional model including rigid and/or deformable shapes, or body parts. Each body part may be characterized as a mathematical primitive, examples of which include, but are not limited to, spheres, anisotropically-scaled spheres, cylinders, anisotropic cylinders, smooth cylinders, boxes, beveled boxes, prisms, and the like. In one embodiment, the body parts are symmetric about an axis of the body part.
For example, body model 70 of
A body model 70 including two or more body parts may also include one or more joints. Each joint may allow one or more body parts to move relative to one or more other body parts. For example, a model representing a human target may include a plurality of rigid and/or deformable body parts, wherein some body parts may represent a corresponding anatomical body part of the human target. Further, each body part of the model may include one or more structural members (i.e., “bones” or skeletal parts), with joints located at the intersection of adjacent bones. It is to be understood that some bones may correspond to anatomical bones in a human target and/or some bones may not have corresponding anatomical bones in the human target.
The bones and joints may collectively make up a skeletal model, which may be a constituent element of the body model. In some embodiments, a skeletal model may be used instead of another type of model, such as model 70 of
In one embodiment, the system 100 adds geometric shapes, which represent body parts, to a skeletal model, to form a body model. Note that not all of the joints need to be represented in the body model. For example, for an arm, there could be a cylinder added between joints j2 and j18 for the upper arm, and another cylinder added between joints j18 and j20 for the lower arm. In one embodiment, a central axis of the cylinder links the two joints. However, there might not be any shape added between joints j20 and j22. In other words, the hand might not be represented in the body model.
In one embodiment, geometric shapes are added to a skeletal model for the following body parts: Head, Upper Torso, Lower Torso, Upper Left Arm, Lower Left Arm, Upper Right Arm, Lower Right Arm, Upper Left Leg, Lower Left Leg, Upper Right Leg, Lower Right Leg. In one embodiment, these are each cylinders, although another shape may be used. In one embodiment, the shapes are symmetric about an axis of the shape.
A shape for body part could be associated with more than two joints. For example, the shape for the Upper Torso body part could be associated with j1, j2, j5, j6, etc.
The above described body part models and skeletal models are non-limiting examples of types of models that may be used as machine representations of a modeled target. Other models are also within the scope of this disclosure. For example, some models may include polygonal meshes, patches, non-uniform rational B-splines, subdivision surfaces, or other high-order surfaces. A model may also include surface textures and/or other information to more accurately represent clothing, hair, and/or other aspects of a modeled target. A model may optionally include information pertaining to a current pose, one or more past poses, and/or model physics. It is to be understood that a variety of different models that can be posed are compatible with the herein described target recognition, analysis, and tracking system.
Software pipelines for generating skeletal models of one or more users within a field of view (FOV) of capture device 120 are known. One such system is disclosed for example in United States Patent Publication 2012/0056800, entitled “System For Fast, Probabilistic Skeletal Tracking,” filed Sep. 7, 2010, which application is incorporated by reference herein in its entirety.
As illustrated in
At step 404 depth information corresponding to the visual image and depth image are determined. The visual image and depth image received at step 402 can be analyzed to determine depth values for one or more targets within the image. Capture device 20 may capture or observe a capture area that may include one or more targets. At 405, the scene data of the field of view of the capture device is output and analyzed by, for example, a processing device 32 or computer system 12. At 424 a determination is made as to whether an object (a living being or an inanimate object) has entered the hot zone. As described herein this determination is made by a finding of a change in the data associated with the hot zone over a threshold period of time. In one embodiment, the change in data is a change in depth data. In alternative embodiments, a change in visual data may activate the hot zone. At step 430, a digital event is fired. The method of
At step 404 depth information corresponding to the visual image and depth image are determined. At step 406, the capture device determines whether the depth image includes a human target. In one example, each target in the depth image may be flood filled and compared to a pattern to determine whether the depth image includes a human target. In one example, the edges of each target in the captured scene of the depth image may be determined. The depth image may include a two dimensional pixel area of the captured scene for which each pixel in the 2D pixel area may represent a depth value such as a length or distance for example as can be measured from the camera. The edges may be determined by comparing various depth values associated with for example adjacent or nearby pixels of the depth image. If the various depth values being compared are greater than a pre-determined edge tolerance, the pixels may define an edge. The capture device may organize the calculated depth information including the depth image into Z layers or layers that may be perpendicular to a Z-axis extending from the camera along its line of sight to the viewer. The likely Z values of the Z layers may be flood filled based on the determined edges. For instance, the pixels associated with the determined edges and the pixels of the area within the determined edges may be associated with each other to define a target or a physical object in the capture area.
At step 408, the capture device scans the human target for one or more body parts. The human target can be scanned to provide measurements such as length, width or the like that are associated with one or more body parts of a user, such that an accurate model of the user may be generated based on these measurements. In one example, the human target is isolated and a bit mask is created to scan for the one or more body parts. The bit mask may be created for example by flood filling the human target such that the human target is separated from other targets or objects in the capture area elements. At step 410 a model of the human target is generated based on the scan performed at step 408. The bit mask may be analyzed for the one or more body parts to generate a model such as a skeletal model, a mesh human model or the like of the human target. For example, measurement values determined by the scanned bit mask may be used to define one or more joints in the skeletal model. The bitmask may include values of the human target along an X, Y and Z-axis. The one or more joints may be used to define one or more bones that may correspond to a body part of the human.
According to one embodiment, to determine the location of the neck, shoulders, or the like of the human target, a width of the bitmask, for example, at a position being scanned, may be compared to a threshold value of a typical width associated with, for example, a neck, shoulders, or the like. In an alternative embodiment, the distance from a previous position scanned and associated with a body part in a bitmask may be used to determine the location of the neck, shoulders or the like.
In one embodiment, to determine the location of the shoulders, the width of the bitmask at the shoulder position may be compared to a threshold shoulder value. For example, a distance between the two outer most Y values at the X value of the bitmask at the shoulder position may be compared to the threshold shoulder value of a typical distance between, for example, shoulders of a human. Thus, according to an example embodiment, the threshold shoulder value may be a typical width or range of widths associated with shoulders of a body model of a human.
In another embodiment, to determine the location of the shoulders, the bitmask may be parsed downward a certain distance from the head. For example, the top of the bitmask that may be associated with the top of the head may have an X value associated therewith. A stored value associated with the typical distance from the top of the head to the top of the shoulders of a human body may then added to the X value of the top of the head to determine the X value of the shoulders. Thus, in one embodiment, a stored value may be added to the X value associated with the top of the head to determine the X value associated with the shoulders.
In one embodiment, some body parts such as legs, feet, or the like may be calculated based on, for example, the location of other body parts. For example, as described above, the information such as the bits, pixels, or the like associated with the human target may be scanned to determine the locations of various body parts of the human target. Based on such locations, subsequent body parts such as legs, feet, or the like may then be calculated for the human target.
According to one embodiment, upon determining the values of, for example, a body part, a data structure may be created that may include measurement values such as length, width, or the like of the body part associated with the scan of the bitmask of the human target. In one embodiment, the data structure may include scan results averaged from a plurality depth images. For example, the capture device may capture a capture area in frames, each including a depth image. The depth image of each frame may be analyzed to determine whether a human target may be included as described above. If the depth image of a frame includes a human target, a bitmask of the human target of the depth image associated with the frame may be scanned for one or more body parts. The determined value of a body part for each frame may then be averaged such that the data structure may include average measurement values such as length, width, or the like of the body part associated with the scans of each frame. In one embodiment, the measurement values of the determined body parts may be adjusted such as scaled up, scaled down, or the like such that measurement values in the data structure more closely correspond to a typical model of a human body. Measurement values determined by the scanned bitmask may be used to define one or more joints in a skeletal model at step 410.
At step 412, motion is captured from the depth images and visual images received from the capture device. In one embodiment capturing motion at step 414 includes generating a motion capture file based on the skeletal mapping as will be described in more detail hereinafter. At 414, the model created in step 410 is tracked using skeletal mapping and to track user motion at 416. For example, the skeletal model of the user 18 may be adjusted and updated as the user moves in physical space in front of the camera within the field of view. Information from the capture device may be used to adjust the model so that the skeletal model accurately represents the user. In one example this is accomplished by one or more forces applied to one or more force receiving aspects of the skeletal model to adjust the skeletal model into a pose that more closely corresponds to the pose of the human target and physical space.
At step 416 user motion is tracked and as indicated by the loop to step 412, steps 412-414 and 416 are continually repeated to allow for subsequent steps to track motion data and output control information in a continuous manner.
At step 418 motion data is provided to an application, including any application operable on the computing systems described herein. Such motion data may further be evaluated to determine whether a user is performing a pre-defined gesture at 420. Step 420 can be performed based on the UI context or other contexts. For example, a first set of gestures may be active when operating in a menu context while a different set of gestures may be active while operating in a game play context. At step 420 gesture recognition and control is performed. The tracking model and captured motion are passed through the filters for the active gesture set to determine whether any active gesture filters are satisfied. Any detected gestures are applied within the computing environment to control the user interface provided by computing environment 12. Step 420 can further include determining whether any gestures are present and if so, modifying the user-interface action that is performed in response to gesture detection.
At step 425, contemporaneously with steps 418 and 420, a determination is made as to whether a user or other object has interacted with a 3D hot zone. A determination of interactions with a hot zone is discussed below. If a determination is made that a user has interacted with a hot zone at step 425, then at step 430, a digital event is fired. The method at step 425 repeats, constantly monitoring for interactions with defined hot zones.
As a human target has been detected at step 406 above, models of the human target generated at step 410 can be associated with individual users, and users identified and tracked. In some embodiments, events are only fired when an identified individual interacts with a particular hot zone. This interaction can occur and be defined on a hot zone by hot zone basis. That is, individual users may be associated with individual zones, or a plurality of zones. Hot zones may further include permissions defining which types of interactions with the zones may occur. For example, certain zones may require a human body part interaction of others may allow for only a static object interaction. It should be understood that step 608 is optional.
If the change in the zone has been determined to be over the threshold at 607 and the person or object allowed to change the threshold at 608, then a digital event is fired at 610.
In this context, the local coordinate system may be defined as dependent or independent of the camera position. If independent of the coordinate system, the local coordinate system can be associated with the local environment and a fiduciary point within the environment. Hot zones can be associated with a scene map of the environment and if the position of the camera moves within the environment, coordinates determined from the fiduciary point. Alternatively, local coordinate system may be defined by the camera position. An example of hot zone definitions fixed to the camera position are illustrated in
At step 720, an automated alignment/hot zone modification process may be performed. If, for example, a solid object begins impinging a hot zone which was previously defined in un-encumbered space, or the capture device is moved relative to the original position, the alignment/modification process can compensate for these changes.
In a further embodiment, a system such as Kinect Fusion provides a single dense surface model of an environment by integrating the depth data from a capture device over time from multiple viewpoints. The camera pose is tracked as the sensor is moved (its location and orientation). These multiple viewpoints of the objects or environment can be fused (averaged) together into a single reconstruction voxel volume. This volume can be used to define environments and hot zones within these mapped environments.
In one embodiment, hot zones are defined in XML format for use interpretation by a computing device. An example of a hotspot definition is shown in
Embodiments of the technology include a computer implemented method of rendering a digital event. The method includes defining one or more three-dimensional hot zones in a real world environment, each hot zone comprising a volume of space;
monitoring the real world environment to receive depth data, the depth data including the one or more three-dimensional hot zones in the real world environment; detecting an interaction between a second real-world object and at least one of the one or more hot zones by analysis of the depth data, the interaction occurring when a threshold number of active pixels in the hot zone have a change in depth distance based on the presence of the second real-world object; and responsive to the detecting, outputting a signal responsive to the interaction between the second real-world object and the one or more hot zones to at least one application on a processing device.
Embodiments include a computer implemented method of any of the previous embodiments wherein the depth data may be referenced by a three dimensional coordinate system referencing the real world environment, the three dimensional coordinates defined relative to a position of a depth capture device, each hot zone defined by coordinates in the coordinate system.
Embodiments include a computer implemented method of any of the previous embodiments wherein the depth data may be referenced by a three dimensional coordinate system referencing the real world environment, the three dimensional coordinates defined relative to a position of a fiduciary object in a field of view of the capture device, each hot zone defined by coordinates in the coordinate system.
Embodiments include a computer implemented method of any of the previous embodiments further including determining that a change in continually active pixels within the bounding region has occurred, and modifying the hot zone.
Embodiments include a computer implemented method of any of the previous embodiments wherein said modifying comprises filtering continually active pixels from the hot zone.
Embodiments include a computer implemented method of any of the previous embodiments wherein said modifying comprises changing one or more of the dimensional coordinates defining the hot zone to thereby move the hot zone.
Embodiments include a computer implemented method of any of the previous embodiments wherein the detecting includes the interaction occurring when a threshold number of active pixels in the hot zone have a change in depth distance for at least a threshold period of time.
Embodiments include a computer implemented method of any of the previous embodiments wherein the three dimensional coordinates are referenced relative to a depth data capture device, and further including determining whether a camera re-alignment resulting from a change in active pixels in the hot zone is needed and if so, aligning the camera using a camera alignment algorithm.
In another embodiment an apparatus generating an indication of an interaction with a real would object, the interaction being output to an application to create a digital event, is provided. The apparatus includes a capture device having a field of view of a scene, the capture device outputting depth data of the field of view relative to a coordinate system. The apparatus further includes a processing device, coupled to the capture device, receiving the depth data and responsive to code instructing the processing device to: receive a definition of one or more hot zones in the scene, each hot zone comprising a volume of physical space associated with a first real world object defined by a plurality of pixels in a coordinate system having a reference point; detect an interaction between a second real-world object and one or more hot zones by detecting an interaction comprising an activation of a threshold number of pixels by changing the depth within the plurality of pixels in the one or more hot zones for a threshold period of time; and output a signal responsive to the interaction between the second real-world object and the one or more hot zones, the signal output to an application configured to use the signal to generate an event in the application.
Embodiments include an apparatus of any of the previous embodiments wherein the coordinate system is an X, Y and Depth coordinate system, with X and Y coordinates comprising a minimum and maximum pixel count relative to an X and Y axis measured from a capture device, and a Z coordinate defined as a distance from the capture device, the definition including a minimum number of active pixels for activation.
Embodiments include an apparatus of any of the previous embodiments including instructing the processing device to further including determine whether a camera re-alignment resulting from a change in active pixels in the hot zone is needed and if so, aligning the camera using a camera alignment algorithm.
Embodiments include an apparatus of any of the previous embodiments wherein receiving a definition comprises receiving an data file having specified therein for each hot zone X and Y coordinates comprising a minimum and maximum pixel count relative to an X and Y axis measured from a reference point, and a Z coordinate defined as a distance from the reference point, the definition including a minimum number of active pixels for activation.
Embodiments include an apparatus of any of the previous embodiments further including code instructing the processor to determine that a change in continually active pixels within the bounding region has occurred, and modifying the hot zone.
Embodiments include an apparatus of any of the previous embodiments wherein the apparatus is configured to modify said hot zone by filtering continually active pixels from the hot zone.
Embodiments include an apparatus of any of the previous embodiments wherein the apparatus is configured to modify said hot zone by changing one or more of the coordinates defining the hot zone to move the zone.
In another embodiment, a computer storage medium including code instructing a processor with access to the storage medium to perform a processor implemented method is provided. The method includes receiving one or more hot zone definitions within a real world scene, each hot zone comprising a volume of physical space associated with a first real world object defined by a three-dimensional set of pixels determined relative to a reference point in the environment, which may be referenced by the processor; determining an interaction within the scene, the interaction comprising determining a change in depth data within a volume of said one or more hot zones within the scene for a threshold period of time; responsive to determining an interaction, outputting a signal indicating that an interaction has occurred to an application configured to use the interaction to generate a digital event; determining an adjustment to a definition of the hot zone; and automatically modifying the hot-zone when determining an adjustment specifies an adjustment is needed.
Embodiments include a computer storage medium of any of the previous embodiments wherein the reference point comprises a fiduciary point in a field of view of the capture device and the method further includes adjusting the coordinate space subsequent to a movement of the capture device relative to the position to a new position.
Embodiments include a computer storage medium of any of the previous embodiments wherein the reference point is the capture device method further includes a determining that a capture device providing said depth data has changed position relative to the hot zone and aligning the capture device.
Embodiments include a computer storage medium of any of the previous embodiments wherein the method further includes determining that a change in continually active pixels within the hot zone has occurred, and filtering continually active pixels within hot zone from the hot zone definition.
Embodiments include a computer storage medium of any of the previous embodiments wherein the method further includes determining that a change in continually active pixels within the hot zone has occurred, and changing at least one of coordinates defining a position of the zone.
The foregoing detailed description of the inventive system has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the inventive system to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the inventive system and its practical application to thereby enable others skilled in the art to best utilize the inventive system in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the inventive system be defined by the claims appended hereto.
This application claims the benefit of U.S. Provisional application Ser. No. 61/839,532 entitled RECOGNIZING INTERACTIONS WITH REAL WORLD OBJECTS, filed Jun. 26, 2013.
Number | Date | Country | |
---|---|---|---|
61839532 | Jun 2013 | US |