Typical graphical user interfaces (GUIs) serially process input signals that are received from input devices such as a mouse or a keyboard. Serial processing of inputs to a multi-user GUI may, however, provide an inappropriate result. For instance, if two users provide inputs to a GUI, the GUI may process the first input that is directed at an active window, without regard for the other input. Accordingly, current GUI implementations may provide inappropriate results when dealing with multiple inputs.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items.
Various embodiments for associating multiple inputs with one or more applications are described. The inputs may be directed at a graphical user interface (GUI) during time periods with some overlap or time periods occurring relatively close in time, e.g., within a few seconds (e.g., in case of users with disabilities) or milliseconds of each other, or within other suitable and/or configurable time period(s). Hence, the inputs may be directed at the GUI substantially simultaneously in one embodiment.
In one embodiment, an operating system and/or application programs (such as those discussed with reference to
Multi-Modal Interface
As illustrated in
As will be further discussed with reference to
Furthermore, the inputs to the interface 100 may be provided by any suitable input device including a pointing device (e.g., a mouse and/or stylus), a key-based input device (e.g., a keyboard), a touch input (e.g., a user touch for a touch screen device), an object (e.g., a token, game piece, and the like), a camera, and the like.
Exemplary Input Recognition System
For illustrative purposes, an object 204 that is placed on the surface 202 may be utilized as the input device. Accordingly, when discussing the object 204, it is envisioned that any other suitable input device such as those discussed with reference to
In one embodiment, the object 204 may have a symbology 206 attached to a side of object 204, such as its bottom that faces the surface 202 such that when the object is placed on the surface 202, a camera 208 may capture an image of the symbology 206. Hence, the surface 202 may be any suitable type of a translucent or semi-translucent surface (such as a projector screen) capable of supporting the object 204, while allowing electromagnetic waves to pass through the surface 202 (e.g., to enable recognition of the symbology 206 from the bottom side of the surface 202). The camera 208 may be any suitable type of capture device such as a charge-coupled device (CCD) sensor, a complementary metal oxide semiconductor (CMOS) sensor, a contact image sensor (CIS), and the like.
Furthermore, the symbology 206 may be any suitable type of a machine-readable symbology such as a printed label (e.g., a label printed on a laser printer, an inkjet printer, and the like), infrared (IR) reflective label, ultraviolet (UV) reflective label, and the like. By using a UV or IR illumination source (not shown) to illuminate the surface 202 from the bottom side, UV/IR filters (e.g., placed in between the illumination source and a capture device (e.g., 208 in one embodiment)), and an UV/IR sensitive camera (e.g., 208), objects (e.g., 204) on the surface 202 may be detected without utilizing relatively complex image math. For example, when utilizing IR, tracking the IR reflection may be used for object detection, without applying image subtraction that is further discussed herein with reference to
In one embodiment, the system 200 determines that changes have occurred with respect to the surface 202 (e.g., the object 204 is placed or moved) by comparing a newly captured image with a reference image that may have been captured at a reference time (e.g., when no objects were present on the surface 202). In addition to the UV and/or IR techniques discussed herein, it is also envisioned that visible light may be utilized to capture the images for the image comparison, e.g., to enable a camera to be utilized as an input device.
The system 200 also includes a projector 210 to project images onto the surface 202, e.g., to provide feedback to the one or more users viewing the surface 202 and/or to provide one or more GUIs (such as 100-108 of
Additionally, as illustrated in
In an embodiment, the vision processor 302 may perform an image comparison between a reference image of the bottom side of the surface (202) and a subsequent image to recognize that whether one or more inputs have been provided (e.g., the symbology (206) has changed in position or orientation). Accordingly, the vision processor 302 may perform a frame-to-frame image subtraction to obtain the change or delta of the surface (202).
The vision processor 302 is coupled to an object persistence manager (OPM) 304 which receives the data regarding the changes on the surface 202 to determine the input and/or input type (e.g., single click (including a left and/or right click), double click, gesture, and/or drag). The object persistence manager 304 is coupled to an operating system (O/S) 306 and one or more application programs 308. The object persistence manager 304 may communicate the inputs provided to the surface 202 to one or more of the O/S 306 and/or application programs 308.
In one embodiment, the object persistence manager 304 determines whether an application program (308) is to receive a given input. For example, the object persistence manager 304 may have access to stored data (e.g., data stored in a memory 508 discussed with reference to
Furthermore, in an embodiment, application programs 308 may register their desired operation modality with the OPM 304. For example, a checkers game may make use of 2D symbology recognition of stationary tokens in a region A. A separate drawing application may register for a planned use of fast moving stylus point recognition in region B, e.g., separate from A. Yet another application may register a planned use for fingertip detection across the entire display surface, e.g., inclusive of regions A and B.
Based on the current client applications' registered planned usages, the OPM 304 may classify signals received from the vision processor 302. For example, a checker detected in region A which has moved slightly may not constitute a new signal to the checkers application, nor would it be of interest to the other applications. In this case, the threshold for a significant position change may be based, e.g., on total shift over the last 50 data points, perhaps 2 per second. For stylus movement in region B, changes may be reported to the drawing application every cycle, e.g., perhaps 100 per second to properly account for the stylus movement. Fingertip detection in region A or B would not be sent to the checkers or drawing applications but may be sent to the other application.
Furthermore, the OPM 304 may provide information to the vision processor 302 to allow it to adjust its detection algorithms to enhance performance. For example, if no applications (308) are expecting 2D symbology, the vision processor 302 may lower the inspection frequency for these. In the situation described above, the vision processor 302 may lower the frequency of decoding 2D symbology to devote greater processing power to track the fast moving stylus. The OPM 304 may also instruct the vision processor 302 to adjust its operations based on previously acquired inputs. For instance, if the vision processor 302 is reporting fingertip detections of consistent size, shape, color, orientation, etc., then the OPM 304 may instruct the vision processor 302 to adjust its parameters to adjust detection of that particular fingertip to enhance performance. If an unknown input is reported, the OPM 304 may instruct the vision processor 302 to widen its search parameters, or to check for specific patterns to identify the input.
Additionally, the application program(s) 308 may utilize the input information to cause the projector 210 to project a desired image. For example, if a knight (204) is placed on the surface 202, the application is informed of its identification (ID), e.g., by reading the symbology 206. If the user places a finger on the knight, the symbology is changed either electrically (via the static charge on a hand or mechanically via a button that is pressed by the player), and the projector 210 may project an image to indicate possible, legal moves the knight is authorized to make on the surface 202.
Associating Inputs with Applications
As discussed with reference to
After receiving one or more inputs (402), it is determined whether the inputs are acceptable (404). For example, as discussed with reference to
Once an application association is determined (406) for an acceptable input, the input is provided to the associated application (408) such as discussed with reference to
Exemplary Computing Environment
The computing device 500 includes one or more processor(s) 502 (e.g., microprocessors, controllers, etc.), input/output interfaces 504 for the input and/or output of data, and user input devices 506. The processor(s) 502 process various instructions to control the operation of the computing device 500, while the input/output interfaces 504 provide a mechanism for the computing device 500 to communicate with other electronic and computing devices. The user input devices 506 can include a keyboard, touch screen, mouse, pointing device, a camera (e.g., that compares one or more captured images to determine an input such as discussed with reference to
The computing device 500 may also include a memory 508 (such as read-only memory (ROM) and/or random-access memory (RAM)), a disk drive 510, a floppy disk drive 512, and a compact disk read-only memory (CD-ROM) and/or digital video disk (DVD) drive 514, which may provide data storage mechanisms for the computing device 500.
The computing device 500 also includes one or more application program(s) 516 and an operating system 518 which can be stored in non-volatile memory (e.g., the memory 508) and executed on the processor(s) 502 to provide a runtime environment in which the application program(s) 516 can run or execute. The computing device 500 can also include one or more display(s) 520, such as a cathode ray tube (CRT), a liquid crystal display (LCD), a digital light projector (DLP), a plasma display, and the like. Also, the display 520 may be an integrated display device such as for a PDA, a portable computing device, and any other mobile computing device.
Select embodiments discussed herein (such as those discussed with reference to
Moreover, some embodiments may be provided as computer program products, which may include a machine-readable or computer-readable medium having stored thereon instructions used to program a computer (or other electronic devices) to perform a process discussed herein. The machine-readable medium may include, but is not limited to, floppy diskettes, hard disk, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, erasable programmable ROMs (EPROMs), electrically EPROMs (EEPROMs), magnetic or optical cards, flash memory, or other suitable types of media or machine-readable media suitable for storing electronic instructions and/or data. Moreover, data discussed herein may be stored in a single database, multiple databases, or otherwise in select forms (such as in a table).
Additionally, some embodiments discussed herein may be downloaded as a computer program product, wherein the program may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection). Accordingly, herein, a carrier wave shall be regarded as comprising a machine-readable medium.
Reference in the 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 an implementation. The appearances of the phrase “in one embodiment” in various places in the specification may or may not be all referring to the same embodiment.
Thus, although embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that claimed subject matter may not be limited to the specific features or acts described. Rather, the specific features and acts are disclosed as sample forms of implementing the claimed subject matter.
Number | Name | Date | Kind |
---|---|---|---|
5092779 | Piwonka | Mar 1992 | A |
5257184 | Mushabac | Oct 1993 | A |
5364108 | Esnouf | Nov 1994 | A |
5521324 | Dannenberg | May 1996 | A |
5694150 | Sigona et al. | Dec 1997 | A |
6246395 | Goyins | Jun 2001 | B1 |
6390923 | Yoshitomi | May 2002 | B1 |
6448486 | Shinsky | Sep 2002 | B1 |
6684062 | Gosior | Jan 2004 | B1 |
6774813 | van Ee | Aug 2004 | B2 |
6864778 | Musschebroeck | Mar 2005 | B2 |
6872139 | Sato | Mar 2005 | B2 |
6873344 | Samra et al. | Mar 2005 | B2 |
6878066 | Leifer | Apr 2005 | B2 |
6923723 | Goden | Aug 2005 | B2 |
6948129 | Loghmani | Sep 2005 | B1 |
7024501 | Wright | Apr 2006 | B1 |
7242389 | Stern | Jul 2007 | B1 |
7350078 | Odom | Mar 2008 | B1 |
7417185 | Ludwig | Aug 2008 | B2 |
7435891 | Perla | Oct 2008 | B2 |
7570770 | Kohno | Aug 2009 | B2 |
7641552 | Manz | Jan 2010 | B2 |
20010029202 | Kondo | Oct 2001 | A1 |
20020004420 | Suga | Jan 2002 | A1 |
20020013166 | Yoshitomi | Jan 2002 | A1 |
20020025842 | Nobe | Feb 2002 | A1 |
20020088337 | Devecka | Jul 2002 | A1 |
20020093491 | Gillespie | Jul 2002 | A1 |
20020147740 | Faraday et al. | Oct 2002 | A1 |
20020169014 | Egozy | Nov 2002 | A1 |
20020175948 | Nielsen | Nov 2002 | A1 |
20040201544 | Love | Oct 2004 | A1 |
20040224765 | Martinez | Nov 2004 | A1 |
20050020225 | Lazzarotto | Jan 2005 | A1 |
20050202871 | Lippincott | Sep 2005 | A1 |
20050255900 | Takahashi | Nov 2005 | A1 |
20060033701 | Wilson | Feb 2006 | A1 |
20060040717 | Lind | Feb 2006 | A1 |
20060053372 | Adkins | Mar 2006 | A1 |
20060058101 | Rigopulos | Mar 2006 | A1 |
20060094512 | Yoshino | May 2006 | A1 |
20060112335 | Hofmeister et al. | May 2006 | A1 |
20060135262 | Kennedy | Jun 2006 | A1 |
20060174202 | Bonner | Aug 2006 | A1 |
20060179411 | Wolf et al. | Aug 2006 | A1 |
20060205517 | Malabuyo | Sep 2006 | A1 |
20060211497 | Manz | Sep 2006 | A1 |
20060287027 | Hardisty | Dec 2006 | A1 |
20070016876 | Schultz | Jan 2007 | A1 |
20070032281 | Nakatsuka | Feb 2007 | A1 |
20070079690 | Chiwata | Apr 2007 | A1 |
20070083820 | Blythe | Apr 2007 | A1 |
20090019188 | Mattice | Jan 2009 | A1 |
Entry |
---|
Ed Lewis; Eye Toy: Groove—The little camera that Could come Back with a Few new Tricks; Retrieved from the Internet: http:llps2.ign.comlarticles15071507854pl.html. Retrieved on Feb. 22, 2005. |
Dietz, DiamondTouch, Mitsubishi Electric Research Laboratories, Aug. 3, 2005, http://www.merl.com/projects/DiamondTouch/. |
Number | Date | Country | |
---|---|---|---|
20070083820 A1 | Apr 2007 | US |