ARCHITECTURES FOR INPUT TRACKING
First Claim
1. A computing device, comprising:
- at least one processor;
memory including instructions that, when executed by the at least one processor that when executed provide;
a plurality of hardware interfaces, each hardware interface of the plurality of hardware interfaces configured to accept data from at least one of a camera or a motion sensor;
a synchronizer for storing sensor data from at least one hardware interface of the plurality of hardware interfaces until an image is received from a camera interface of the plurality of hardware interfaces;
an engine for processing the image and the sensor data to generate input data corresponding to at least one of a location of a head or a motion of the computing device;
an event publisher configured to filter the input data to produce first filtered input data and publish the first filtered input data as first event data to a listener client executing on the computing device, the listener client registered to receive event data published by the event publisher; and
an event provider configured to filter the input data to produce second filtered input data and provide the second filtered input data as second event data in response to a polling request from a pull client executing on the computing device,wherein the listener client and the pull client are enabled to determine at least one of a change in head position or a gesture based at least in part upon at least one of the first event data or the second event data.
1 Assignment
0 Petitions
Accused Products
Abstract
A tracking architecture is provided that enables data for gestures and head positions to be provided to both native and non-native clients on a computing device. A pipeline component can obtain the raw image data and sensor data and synchronize that data to be processed to determine, for example, location and/or motion data that may correspond to device input. The data can be processed by separate components, such as an event publisher and an event provider, each capable of filtering the location, motion, and/or raw sensor data to generate a set of event data. The event data then can be published to registered listeners or provided in response to polling requests. Head coordinates, gesture data, and other such information can be passed through one or more interface layers enabling the data to be processed by a non-native client on the device.
28 Citations
20 Claims
-
1. A computing device, comprising:
-
at least one processor; memory including instructions that, when executed by the at least one processor that when executed provide; a plurality of hardware interfaces, each hardware interface of the plurality of hardware interfaces configured to accept data from at least one of a camera or a motion sensor; a synchronizer for storing sensor data from at least one hardware interface of the plurality of hardware interfaces until an image is received from a camera interface of the plurality of hardware interfaces; an engine for processing the image and the sensor data to generate input data corresponding to at least one of a location of a head or a motion of the computing device; an event publisher configured to filter the input data to produce first filtered input data and publish the first filtered input data as first event data to a listener client executing on the computing device, the listener client registered to receive event data published by the event publisher; and an event provider configured to filter the input data to produce second filtered input data and provide the second filtered input data as second event data in response to a polling request from a pull client executing on the computing device, wherein the listener client and the pull client are enabled to determine at least one of a change in head position or a gesture based at least in part upon at least one of the first event data or the second event data. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method, comprising:
-
receiving sensor data through a first hardware interface, the sensor data being acquired using at least one motion sensor of a computing device; receiving image data through a second hardware interface, the image data being acquired using a camera of the computing device; processing, using at least one processor of the computing device, the image data and the sensor data to generate input data; transmitting the input data to a publisher component and a polling component; causing, using the publisher component, the input data to be available as first event data to at least one listener client, the at least one listener client registered to receive the first event data; and providing, in response to a polling request from a pull client and using the polling component, second event data based at least in part on the input data. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computing device, comprising:
-
at least one processor; memory including instructions that, when executed by the at least one processor, cause the computing device to; receive sensor data through a first hardware interface, the sensor data being acquired using at least one motion sensor of a computing device; receive image data through a second hardware interface, the image data being acquired using a camera of the computing device; process, using the at least one processor of the computing device, the image data and the sensor data to generate input data; provide, to at least one listener client, the input data as first event data, the at least one listener client registered to receive the first event data; and provide, in response to a polling request from a pull client, the input data as second event data. - View Dependent Claims (17, 18, 19, 20)
-
Specification