The present invention relates to input systems and in particular, to an interactive input system employing reduced imaging device hardware that is able to resolve pointer ambiguity and occlusion and to a pointer ambiguity and occlusion resolution method.
Interactive input systems that allow users to inject input such as digital ink, mouse events etc. into an application program using an active pointer (eg. a pointer that emits light, sound or other signal), a passive pointer (eg. a finger, cylinder or other object) or other suitable input device such as for example, a mouse or trackball, are well known. These interactive input systems include but are not limited to: touch systems comprising touch panels employing analog resistive or machine vision technology to register pointer input such as those disclosed in U.S. Pat. Nos. 5,448,263; 6,141,000; 6,337,681; 6,747,636; 6,803,906; 7,232,986; 7,236,162; and 7,274,356 and in U.S. Patent Application Publication No. 2004/0179001 assigned to SMART Technologies ULC of Calgary, Alberta, Canada, assignee of the subject application, the contents of which are incorporated by reference; touch systems comprising touch panels employing electromagnetic, capacitive, acoustic or other technologies to register pointer input; tablet personal computers (PCs); laptop PCs; personal digital assistants (PDAs); and other similar devices.
Above-incorporated U.S. Pat. No. 6,803,906 to Morrison et al. discloses a touch system that employs machine vision to detect pointer interaction with a touch surface on which a computer-generated image is presented. A rectangular bezel or frame surrounds the touch surface and supports digital cameras at its four corners. The digital cameras have overlapping fields of view that encompass and look generally across the touch surface. The digital cameras acquire images looking across the touch surface from different vantages and generate image data. Image data acquired by the digital cameras is processed by on-board digital signal processors to determine if a pointer exists in the captured image data. When it is determined that a pointer exists in the captured image data, the digital signal processors convey pointer characteristic data to a master controller, which in turn processes the pointer characteristic data to determine the location of the pointer in (x,y) coordinates relative to the touch surface using triangulation. The pointer coordinates are then conveyed to a computer executing one or more application programs. The computer uses the pointer coordinates to update the computer-generated image that is presented on the touch surface. Pointer contacts on the touch surface can therefore be recorded as writing or drawing or used to control execution of application programs executed by the computer.
In environments where the touch surface is small, more often than not, users interact with the touch surface one at a time, typically using a single pointer. In situations where the touch surface is large, as described in U.S. patent application Ser. No. 10/750,219 to Hill et al., assigned to SMART Technologies ULC, the content of which is incorporated by reference, multiple users may interact with the touch surface simultaneously.
As will be appreciated, in machine vision touch systems, when a single pointer is in the fields of view of multiple imaging devices, the position of the pointer in (x,y) coordinates relative to the touch surface typically can be readily computed using triangulation. Difficulties are however encountered when multiple pointers are in the fields of view of multiple imaging devices as a result of pointer ambiguity and occlusion. Ambiguity arises when multiple pointers in the images captured by the imaging devices cannot be differentiated. In such cases, during triangulation a number of possible positions for the pointers can be computed but no information exists to allow the correct pointer positions to be selected. Occlusion occurs when one pointer occludes another pointer in the field of view of an imaging device. In these instances, the image captured by the imaging device includes only one pointer. As a result, the correct positions of the pointers relative to the touch surface cannot be computed using triangulation. Increasing the number of imaging devices allows pointer ambiguity and occlusion to be resolved but this of course results in increased touch system cost and complexity.
It is therefore an object of the present invention to provide a novel interactive input system and a novel pointer ambiguity and occlusion resolution method.
Accordingly, in one aspect there is provided a method of resolving ambiguities between at least two pointers in an interactive input system comprising:
capturing images of a region of interest;
processing image data to determine a plurality of potential targets for said at least two pointers within the region of interest and a current target location for each potential target, said plurality of potential targets comprising real and phantom targets;
tracking each potential target within said region of interest and calculating a predicted target location for each potential target; and
determining a pointer path associated at least with each real target.
According to another aspect there is provided a method of resolving ambiguities between pointers in an interactive input system when at least one pointer is brought into a region of interest where at least one pointer already exists therein, the method comprising:
determining real and phantom targets associated with each pointer;
setting a real error function associated with said real targets;
setting a phantom error function associated with said phantom targets, wherein said phantom error function is set to a value different from said real error function; and
tracking and resolving each pointer based on their associated error functions.
According to another aspect there is provided a method of resolving ambiguities between pointers in an interactive input system when at least two pointers are brought into a region of interest simultaneously:
determining real and phantom targets associated with each pointer contact;
setting error functions associated with each target; and
tracking and resolving each pointer contact through their associated error functions.
Accordingly, in one aspect there is provided in an interactive input system comprising:
at least two imaging devices having at least partially overlapping fields of view encompassing a region of interest; and
processing structure processing image data acquired by the imaging devices to track the position of at least two pointers within said region of interest and resolve ambiguities between the pointers.
Embodiments will now be described more fully with reference to the accompanying drawings in which:
Referring now to
As can be seen, interactive input system 50 comprises a touch panel 52 coupled to a digital signal processor (DSP)-based master controller 54. Master controller 54 is also coupled to a computer 56. Computer 56 executes one or more application programs and provides computer-generated image output to an image generating device 58. Image generating device 58 in turn generates a computer-generated image that is presented on the touch surface 60 of the touch screen 52. The touch panel 52, master controller 54, computer 56 and image generating device 58 allow pointer contacts on the touch surface 60 to be recorded as writing or drawing or used to control execution of application programs executed by the computer 56.
The touch surface 60 is bordered by a bezel or frame 62 similar to that disclosed in U.S. Pat. No. 6,972,401 to Akitt et al. issued on Dec. 6, 2005, assigned to SMART Technologies, ULC, assignee of the subject application, the content of which is incorporated herein by reference. A DSP-based digital camera 70 having on-board processing capabilities, best seen in
During operation of the touch system 50, the image sensor of each digital camera 70 looks across the touch surface 60 and acquires image frames. For each digital camera 70, image data acquired by its image sensor is processed by the processing unit of the digital camera to determine if one or more pointers is/are believed to exist in each captured image frame. When one or more pointers is/are determined to exist in the captured image frame, pointer characteristic data is derived from that captured image frame identifying the pointer position(s) in the captured image frame.
The pointer characteristic data derived by each digital camera 70 is then conveyed to the master controller 54, which in turn processes the pointer characteristic data in a manner to allow the location of the pointer(s) in (x,y) coordinates relative to the touch surface 60 to be calculated.
The pointer coordinate data is then reported to the computer 56, which in turn records the pointer coordinate data as writing or drawing if the pointer contact is a write event or injects the pointer coordinate data into the active application program being run by the computer 56 if the pointer contact is a mouse event. As mentioned above, the computer 56 also updates the image data conveyed to the image generating device 58 so that the image presented on the touch surface 60 reflects the pointer activity.
When a single pointer exists in the image frames captured by the digital cameras 70, the location of the pointer in (x,y) coordinates relative to the touch surface 60 can be readily computed using triangulation. When multiple pointers exist in the image frames captured by the digital cameras 70, computing the positions of the pointers in (x,y) coordinates relative to the touch surface 60 is more challenging as a result of the pointer ambiguity and occlusion issues discussed previously.
When two pointers P1 and P2 are in the fields of view of the digital cameras 70, the pointers may take one of the five possible states in the image frames as shown in
In order to track multiple pointers that are in the fields of view of the digital cameras 70, the master controller 54 executes a pointer ambiguity and occlusion resolution routine comprising a plurality of modules (in this case four (4)), namely a target birth module, a target tracking module, a state estimation module, and a blind tracking module. The target birth module is used when a pointer first appears in an image frame. The target birth module creates targets that are locations on the touch surface 60 that could potentially represent the real location of a pointer, based on the information in the digital camera image frames. Targets may be “real” targets that correspond to an actual pointer location, or “phantom” targets, that do not correspond to an actual pointer location. The output of the target birth module seeds the tracking and state estimation modules. The target tracking module employs a mathematical model that follows the pointer(s) on the touch surface 60 and makes a prediction as to where the pointer(s) will be in the next image frame. The state estimation module takes the output from the target birth and target tracking modules, and pointer characteristic information from the digital camera image frames, and tries to determine the pointer locations and the digital camera states corresponding to the pointer locations on each image frame. The state estimation module is also responsible for detecting and correcting errors to make sure that the pointer position estimation is the best possible estimation based on all currently available pointer data. The blind tracking module is initiated when one pointer becomes obscured by another pointer for a long period of time.
During execution of the pointer ambiguity and occlusion resolution routine, one of two procedures is followed depending on the pointer scenario. In particular, a first procedure is followed when a single pointer P1 is brought into contact with the touch surface 60 and a second pointer P2 is later brought into contact with the touch surface 60 while the first pointer P1 remains in contact with the touch surface 60. A second procedure is followed when two pointers P1 and P2 are brought into contact with the touch surface 60 generally simultaneously.
With respect to the first scenario, the procedure begins in
As shown in
As shown in
As shown in
As shown in
As shown in
The digital camera states and results of the predictive filter may also be used for error correction. For example, the transition from state 0 to state 1 to state 2 to state 3 to state 4 may be more likely than the transition from state 0 to state 4, to state 2, to state 3, and this likelihood may be used for error correction. This is a maximum likelihood problem where error metrics are applied to every reasonable state path combination and the state path combination with the least errors is designated as the most likely. The direct implementation of maximum likelihood becomes exponentially harder as the time that the pointers stay merged increases. In order to overcome this problem, the well known Viterbi optimization algorithm can be employed to keep track of only five paths regardless of how long the pointers stay merged. Error correction will occur back to the point when the error function was reset.
When a small pointer crosses a larger pointer, that pointer in one digital camera view may be lost for a number of image frames (possibly many). If it is only a small number of image frames (say 1 to 3), then this is not a problem as predicted pointer positions can be used for the missing data. If the pointers merge together in both views, it means that they are very close together on the touch surface 60 (almost touching) and they are treated as a single pointer. The other digital camera view will still be giving valid pointer data and will not need to be predicted.
In the rare case where a digital camera 70 is in state 2 for an extended period of time, the target tracking module may require interpolation in addition to the results of the predictive filters. In this instance, the blind tracking module is invoked. In one mode, the occluded target is reported for as long as it can be seen in the other digital camera view. For the missing data, the middle of the bigger pointer that is known may be used. This technique works best for gesture control. For example, if a gesture is input and both pointers are moving along the sight line of one digital camera 70, then the missing data is not important. All of the information that is required comes from the non-occluded digital camera view. In an alternative mode, reporting information about the occluded target is inhibited until the pointer reappears separate from the bigger pointer. The missing data can then be smoothly interpolated. Although this may result in a noticeable latency glitch, this technique works better for an ink scenario. The current functionality of the pointers (inking, erasing, or pointing) may also be used for error correction or disambiguation.
As shown in
As shown in
As shown in
In
In the
The touch system 50 as described above comprises a pair of digital cameras 70 positioned adjacent the top corners of the touch surface 60. Those of skill in the art will appreciate that additional cameras 70 may be disposed about the periphery of the touch surface 60, especially when the touch surface is very large as described in above-incorporated U.S. patent Ser. No. 10/750,219 to Hill et al. Those of skill in the art will appreciate that the procedures described herein for scenarios with two pointers may be extended to scenarios with more than two pointers, and that the use of more than two image sensors will provide additional data for pointer disambiguation. Those of skill in the art will appreciate that the pointer ambiguity and occlusion resolution technique discussed above may be employed in virtually any machine vision touch system. For example, the pointer ambiguity and occlusion resolution technique may be employed in interactive input systems that make use of reflective, retro-reflective and/or absorbing bezels such as those described in U.S. patent application Ser. No. ______ (Not Available) to Jeremy Hansen et al. entitled “Interactive Input System and Bezel Therefor” filed on May 9, 2008, assigned to SMART Technologies ULC, the content of which is incorporated herein by reference.
As will be appreciated by those of skill in the art, the pointer may be a finger, a passive or active stylus or other object, a spot of light or other radiation or other indicator that can be seen by the cameras. Although the touch system is described as including digital cameras, other imaging devices such as for example linear optical sensors that are capable of generating an image may be employed.
The image generating device 58 may be a display unit such as for example, a plasma television, a liquid crystal display (LCD) device, a flat panel display device, a cathode ray tube (CRT) etc. In this case, the bezel 62 engages the display unit. The touch surface 60 may be constituted by the display surface of the display unit or by a pane surrounded by the bezel 62 that overlies the display surface of the display unit. Alternatively, the image generating device 58 may be a front or rear projection device that projects the computer-generated image onto the touch surface 60.
Although embodiments have been described above, those of skill in the art will also appreciate that variations and modifications may be made without departing from the spirit and scope thereof as defined by the appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CA09/00773 | 6/5/2009 | WO | 00 | 2/28/2011 |
Number | Date | Country | |
---|---|---|---|
61059183 | Jun 2008 | US |