MirrorTrack – A Real-Time Multiple Camera Approach for...

5
Abstract This paper presents a real - time multiple camera approach for multi - touch interaction system that takes advantage of specular display surface (such as conventional LCD displays) and the mirror - effect in a low - azimuth camera angle to detect and track fingers their reflections simultaneously. Building on our prior w ork, 1. We use multi - resolution processing to greatly improve runtime performance of the system; 2. We employ different edge detection and pattern recognition algori thms for different processing resolution to help detect fingers more accurately and efficiently; 3. We track both the location of a fingertip and its pointing direction so it can be identified more effectively; 4. We use a full stereo algorithm to compute finger locations in the 3D space more accurately. Our system has many advantages. 1. It w orks w ith any glossy flat panel display; 2. It avoids clumsy set - up time of a top - dow n camera w ith the concomitant screen glare problems; 3. It supports both touch and hover operation; 4. It can w ork w ith large vertical display w ithout the usual occlusion problems. We describe our approa ch andimplementationindetails. I . I N T R O D U C T I O N M u l t i - t o u c h r e l a t e d s y s t e m s h a v e a t t r a c t e d c o n s i d e r a b l e i n t e r e s t i n t h e r e c e n t y e a r s [ 6 ] . T h e r e h a v e b e e n m a n y w e l l - k n o w n c o m m e r c i a l p r o d u c t s u s i n g t h e m u l t i - t o u c h t e c h n o l o g i e s , s u c h a s A p p l e s i P h o n e s e r i e s a n d M a c b o o k A i r [ 1 , 2 ] . S u c c e s s e s o f t h e s e p r o d u c t s h a v e f u e l e d f u r t h e r i n t e r e s t i n s u c h t e c h n o l o g i e s . M u l t i - t o u c h i n t e r f a c e s a r e i n t e r f a c e s t h a t e n a b l e u s e r s t o u s e m u l t i p l e f i n g e r t o u c h e s a n d h a n d g e s t u r e s t o i n t e r a c t w i t h d i g i t a l o b j e c t s a n d m e d i a d i r e c t l y o n d i s p l a y s u r f a c e s . A d v a n t a g e s o f m u l t i - t o u c h i n t e r f a c e s o v e r o t h e r t r a d i t i o n a l i n p u t d e v i c e s s u c h a s m o u s e a n d k e y b o a r d a r e t h a t , t h e y a r e m o r e s u i t e d f o r u s e o n t a b l e - t o p s u r f a c e s [ 8 ] , a n d t h e y a r e l e s s r e s t r i c t i v e a n d a r e a b l e t o p r o v i d e m o r e i n t u i t i v e i n t e r a c t i o n s . M a n y m u l t i - t o u c h s y s t e m s h a v e b e e n d e v e l o p e d , u s i n g a w i d e r a n g e o f t o u c h - s e n s i n g t e c h n o l o g i e s [ 3 ] , s u c h a s [ 4 , 7 , 1 0 , 1 3 ] . T h e s e n s i n g m e c h a n i s m s u s e d m o s t l y d e p e n d o n t h e t y p e o f s u r f a c e s . S y s t e m s w i t h r e a r - p r o j e c t e d d i s p l a y s u c h a s [ 1 1 ] m o u n t o p t i c a l s e n s i n g d e v i c e s b e h i n d t h e p r o j e c t e d s u r f a c e b e c a u s e t h i s s e t u p i s m o r e c o n v e n i e n t , a n d a b l e t o t r a c k p o i n t s o f c o n t a c t o n t h e s u r f a c e s a c c u r a t e l y . H o w e v e r , t h e d i s a d v a n t a g e s a r e t h e y i t i s d i f f i c u l t i f n o t i m p o s s i b l e t o d e t e c t f i n g e r h o v e r i n g , w h i c h o f f e r s m a n y a d v a n t a g e s a n d n e w l e v e l o f i n t e r a c t i o n s [ 9 ] , a n d t h e y d o n o t w o r k o n c o n v e n t i o n a l l u m i n e s c e n t d i s p l a y s u r f a c e s s u c h a s L C D m o n i t o r s , w h i c h h a p p e n s t o b e t h e m o s t d o m i n a n t d i s p l a y t e c h n o l o g i e s . S y s t e m s t h a t u s e r e s i s t i v e s u r f a c e s a r e v e r y c o m m o n o n d e v i c e s s u c h a s t o u c h - s c r e e n c h e c k o u t m a c h i n e s . T h e y a r e c h e a p t o i m p l e m e n t , b u t w i t h a r e l a t i v e l y l o w s e n s i n g c l a r i t y a n d a l s o d o n o t s u p p o r t h o v e r i n g . C a p a c i t i v e t o u c h s u r f a c e s p r o v i d e p r e c i s e s e n s i n g o f m u l t i p l e c o n t a c t a n d s m a l l d i s t a n c e h o v e r i n g o n t h e s c r e e n , b u t t h e r e a r e l i m i t a t i o n s . F i r s t , s o m e c a p a c i t i v e s y s t e m s r e q u i r e u s e r s t o b e c o n n e c t e d t o a r e c e i v e r , s u c h a s a m e t a l c h a i r , i n o r d e r t o d e t e c t s i g n a l s e m i t t e d f r o m a n t e n n a u n d e r t h e d i s p l a y s u r f a c e [ 8 ] . T h i s r e s t r i c t s u s e r m o v e m e n t . S e c o n d , i t r e q u i r e s s p e c i a l i z e d e q u i p m e n t s , m a k i n g s u c h s y s t e m s v e r y c o s t l y . O t h e r s y s t e m s u s e c o m p u t e r v i s i o n t e c h n i q u e s t o t r a c k f i n g e r l o c a t i o n s u s i n g t o p - d o w n c a m e r a s [ 1 2 ] , t h e t y p e o f s y s t e m a l s o f a c e s s i g n i f i c a n t c h a l l e n g e s ; F i r s t , i t i s d i f f i c u l t t o d e t e c t w h e t h e r o r n o t a f i n g e r i s i n c o n t a c t w i t h t h e s c r e e n f r o m a t o p - d o w n c a m e r a a n g l e . S e c o n d , g l o s s y d i s p l a y s u r f a c e s ( e . g . L C D s c r e e n s ) c o u l d b e c o m e a p r o b l e m i n c o m m o n o f f i c e t y p e e n v i r o n m e n t w i t h o v e r h e a d i l l u m i n a t i o n s . T h i r d , i t i s n o t i m p o s s i b l e t o u s e s u c h a c a m e r a s e t u p i n v e r t i c a l d i s p l a y s d u e t o s e l f - o c c l u s i o n . I n o u r p r e v i o u s w o r k , w e h a v e i n t r o d u c e d M i r r o r T r a c k [ 5 ] , a m u l t i - t o u c h s y s t e m u s i n g v i s i o n - b a s e d f i n g e r d e t e c t i o n t h a t t a k e s a d v a n t a g e s o f g l o s s y d i s p l a y s u r f a c e s . F i g u r e 1 . i l l u s t r a t e s t h e d e s i g n c o n c e p t , b y p l a c i n g c a m e r a s a t l o w - a z i m u t h f r o m t h e d i s p l a y s u r f a c e , t h e g l o s s y s c r e e n a p p r o a c h e s a p e r f e c t m i r r o r . . I n t h i s p a p e r , w e d i s c u s s o u r r e a l - t i m e p r o c e s s i n g e n h a n c e m e n t t o t h e s y s t e m . A s d i s c u s s e d i n o u r p r e v i o u s w o r k , o u r s y s t e m o f f e r s m a n y a d v a n t a g e s : F i r s t , i t i s s o f t w a r e d r i v e n a n d d o e s n o t r e q u i r e s p e c i a l i z e d h a r d w a r e . S e c o n d , c a m e r a s a r e s i d e - m o u n t e d a n d e a s y t o s e t u p . T h i r d , i t i s e a s y t o d i s t i n g u i s h b e t w e e n f i n g e r h o v e r i n g a n d t o u c h i n g . T h e m a i n c o n t r i b u t i o n o f o u r n e w a p p r o a c h i s a r e a l t i m e , m u l t i - c a m e r a a p p r o a c h f o r t h i s s y s t e m . I n t h e f o l l o w i n g s e c t i o n s , w e p r e s e n t t h e d e s i g n a n d i m p l e m e n t a t i o n o f o u r s y s t e m i n d e t a i l s . MirrorT rack A Real - T imeMultipleCamera ApproachforMulti - touchInteractionson GlossyDisplaySurfaces P a k - K i u C h u n g , B i n g F a n g , R o g e r W . E h r i c h , a n d F r a n c i s Q u e k C e n t e r o f H u m a n C o m p u t e r I n t e r a c t i o n V i r g i n i a P o l y t e c h n i c I n s t i t u t e a n d S t a t e U n i v e r s i t y B l a c k s b u r g , V A 2 4 0 6 0 , U S A q u e k @ v t . e d u

Transcript of MirrorTrack – A Real-Time Multiple Camera Approach for...

Page 1: MirrorTrack – A Real-Time Multiple Camera Approach for ...teilab-static.arch.tamu.edu/quek/Publications/2008/PakFEQ08-Mirror... · 1 Abstract—This paper presents a real-time multiple

1

Abstract—This paper presents a real-time multiple camera

approach for multi-touch interaction system that takes advantage of specular display surface (such as conventional LCD displays) and the mirror-effect in a low-azimuth camera angle to detect and track fingers their reflections simultaneously. Building on our prior work, 1. We use multi-resolution processing to greatly improve runtime performance of the system; 2. We employ different edge detection and pattern recognition algorithms for different processing resolution to help detect fingers more accurately and efficiently; 3. We track both the location of a fingertip and its pointing direction so it can be identified more effectively; 4. We use a full stereo algorithm to compute finger locations in the 3D space more accurately. Our system has many advantages. 1. It works with any glossy flat panel display; 2. It avoids clumsy set-up time of a top-down camera with the concomitant screen glare problems; 3. It supports both touch and hover operation; 4. It can work with large vertical display without the usual occlusion problems. We describe our approach and implementation in details.

I. INTRODUCTION Multi-touch related systems have attracted considerable

interest in the recent years [6]. There have been many well-known commercial products using the multi-touch technologies, such as Apple’s iPhone series and Macbook Air [1,2]. Successes of these products have fueled further interest in such technologies. Multi-touch interfaces are interfaces that enable users to use multiple finger touches and hand gestures to interact with digital objects and media directly on display surfaces. Advantages of multi-touch interfaces over other traditional input devices such as mouse and keyboard are that, they are more suited for use on table-top surfaces [8], and they are less restrictive and are able to provide more intuitive interactions.

Many multi-touch systems have been developed, using a

wide range of touch-sensing technologies [3], such as [4,7,10, 13]. The sensing mechanisms used mostly depend on the type of surfaces. Systems with rear-projected display such as [11] mount optical sensing devices behind the projected surface because this setup is more convenient, and able to track points of contact on the surfaces accurately. However, the

disadvantages are they it is difficult if not impossible to detect finger hovering, which offers many advantages and new level of interactions [9], and they do not work on conventional luminescent display surfaces such as LCD monitors, which happens to be the most dominant display technologies. Systems that use resistive surfaces are very common on devices such as touch-screen checkout machines. They are cheap to implement, but with a relatively low sensing clarity and also do not support hovering. Capacitive touch surfaces provide precise sensing of multiple contact and small distance hovering on the screen, but there are limitations. First, some capacitive systems require users to be connected to a receiver, such as a metal chair, in order to detect signals emitted from antenna under the display surface [8]. This restricts user movement. Second, it requires specialized equipments, making such systems very costly. Other systems use computer vision techniques to track finger locations using top-down cameras [12], the type of system also faces significant challenges; First, it is difficult to detect whether or not a finger is in contact with the screen from a top-down camera angle. Second, glossy display surfaces (e.g. LCD screens) could become a problem in common office type environment with overhead illuminations. Third, it is not impossible to use such a camera setup in vertical displays due to self-occlusion.

In our previous work, we have introduced MirrorTrack [5],

a multi-touch system using vision-based finger detection that takes advantages of glossy display surfaces. Figure 1. illustrates the design concept, by placing cameras at low-azimuth from the display surface, the glossy screen approaches a perfect mirror.. In this paper, we discuss our real-time processing enhancement to the system. As discussed in our previous work, our system offers many advantages: First, it is software driven and does not require specialized hardware. Second, cameras are side-mounted and easy to setup. Third, it is easy to distinguish between finger hovering and touching. The main contribution of our new approach is a real time, multi-camera approach for this system. In the following sections, we present the design and implementation of our system in details.

MirrorTrack – A Real-Time Multiple Camera Approach for Multi-touch Interactions on

Glossy Display Surfaces Pak-Kiu Chung, Bing Fang, Roger W. Ehrich, and Francis Quek

Center of Human Computer Interaction Virginia Polytechnic Institute and State University

Blacksburg, VA 24060, USA †[email protected]

Page 2: MirrorTrack – A Real-Time Multiple Camera Approach for ...teilab-static.arch.tamu.edu/quek/Publications/2008/PakFEQ08-Mirror... · 1 Abstract—This paper presents a real-time multiple

2

II. SYSTEM DESCRIPTION

A. System Overview The physical setup of our system is illustrated in Figure 1.

As shown, our system uses 3 side-mounted Logitech Orbit AF webcams. Each pair of the 3 cameras is stereo-calibrated ahead of time.

Figure 1 The Low-azimuth camera configuration

Figure 2 MirrorTrack system overview.

As illustrated in Figure 2, our system can be partitioned into

two parts: 2D processing and 3D processing. In 2D Processing, the system takes image frames from video sources, which are stereo-calibrated cameras, computer vision techniques are then applied to extract possible fingertips locations from these image frame. In 3D Processing, 2D coordinates from stereo-calibrated cameras are then triangulated into 3D space, and correspondences are then

resolved. These 3D finger positions are then converted into coordinates of display surface. In the following subsections, we describe each system components in details.

B. 2D Processing In our original design in [5], we could not achieve a real-

time performance when processing multiple cameras on the same machine. In order to improve the performance, we employ a multi-resolution processing. The system first applies image processing techniques on low-resolution image frame to find interest areas, which are regions on the image where hands and fingers may be located. Then these areas are processed on a high resolution image frame to find more accurate locations of the fingertips. The advantage of this approach is two-fold. First, the number of pixels that need to be processed is only a small fraction of what would be needed if the complete image is processed in high resolution. Second, this top-down hierarchical approach, where we first locate the hands or fingers in low resolution image, then proceed to extract the position of the fingertips helps eliminates “false positive” cases.

Figure 3 Low resolution processing.

1) Low resolution Image processing: The resolution we are using for the low-resolution processing is a sixteenth the size of original image. In a low resolution image, we first employ image differencing technique similar like what we described in [5]. An image differencing algorithm computes the difference of pixel values of two image frames shown as Figure 3. Since our new system is targeting changing backgrounds, where a person could be sitting in frontof some of the cameras, this step it is no longer as significant as it used to be. Nonetheless, this step helps eliminate significant parts of the image that are not interest areas (possible regions of hands and fingers), and the algorithm is simple and contributes very little to the overall computational time.

In the resulting interest areas, parts of the image that we consider to be “foreground”, we perform a unidirectional Sobel edge detection technique similar to what we have described in [5]. However, since we are processing on low resolution image, the goal here is to find the hands and possibly the arms, instead of the exact locations of fingers and fingertips. The reason we are using a unidirectional edge detection strategy is because we observe that given the low camera configuration the hands tend to be more vertical than horizontal. By ignoring horizontal edges, we gain the added benefit of ignoring noisy edges that could confuse our system.

Page 3: MirrorTrack – A Real-Time Multiple Camera Approach for ...teilab-static.arch.tamu.edu/quek/Publications/2008/PakFEQ08-Mirror... · 1 Abstract—This paper presents a real-time multiple

3

To represent the resulting edges from above steps, we employ a unidirectional region growing algorithm. This region-growing is different from what we used in our previous approach. In our old system, we employ a 4 ways region-growing approach which would represent an area as a single region as long as all pixels in the area are connected. Our new approach offers a clear advantage, for instance, if the end point of one edge touches the middle of another edge, these two edges would be recognized as one region. In our new approach, they would be recognized as separated regions. The resulting regions from above method largely represent edges that resemble straight lines. So the next step our approach is to represent these regions as straight lines, we use slope-interception form to record the lines. The issue with the edge detection approach we described in earlier subsection is that these edges are often broken up due to lighting conditions or poor image quality (due to low resolution), so we need to somehow connect the broken edges.

Figure 4 Approach to connect broken edges.

Figure 4 illustrates the approach we use to connect broken

edges. In order to consider R1 and R2 part of the same edge, the two lines must satisfy the following criteria: First, direction1 must be approximately the same with direction2. Second, distance1, which is calculated using point-line distance of R1 and R2 must be within a trained threshold, otherwise they can simply be considered parallel lines. Third, distance2, which is calculated by the distance of the end points of R1 and R2 must also be within a trained threshold, or they can be considered not along the same edge.

Once this step is done, we employ pattern recognition approaches on the resulting edges to eliminate noisy edges and extract the edges that could be part of hands, arms or fingers. We exploit the fact that any edge must have a “reflection” on the glossy surface to be considered “useful.” The reason is quite simple, for instance if we cannot detect the reflection of a finger, it must mean the finger is either too far away from the screen or outside the screen boundary, in such cases it can be ignored. These “reflections” can be detected quite easily, as they are straight lines with opposite angles but angles with similar absolute values. The closest end points of the two lines must have a horizontal distance that is within a trained threshold. The system uses above steps to find regions on the image where fingertips could potentially be located. The results would then be passed along to the next step – High

Resolution Processing. 2) High Resolution Image Processing: The system would

apply steps on each and every region identified to be areas where fingertips may be located in high resolution. In each of these regions, an edge detection technique using Canny edge detection algorithm with non-maximum suppression is applied. The results are edges of 1 pixel width. Similar as steps mentioned in Low Resolution Processing, these edges are represented as straight lines, horizontal lines are ignored, while vertical and diagonal lines are recorded. Pattern recognition techniques are applied to eliminate regions with edge lines that are unlikely to be fingers. Shown as Figure 5, the system then match the regions with potential fingertips with other regions to find finger-reflection pairs, only these pairs are kept, the others are ignored. In each of these pairs, we identify the 2D coordinates of the tip of the fingers and the angle/direction that these fingers point to.

Figure 5 High resolution processing.

C. 3D Processing The results we obtain from above steps are based on 2D

coordinates of each of the camera view. In order to turn those results into some more meaningful forms, we must convert them into the coordinate system of the display surface. To do so, we employ full stereo to obtain position information in the 3D space. In doing so, we also face the challenge of correspondence, that is how to match one finger from a camera view to the finger from another. In the following subsections, we describe our approach in performing stereo calibration, triangulation and solving correspondence problems.

1)Stereo Calibration and Triangulation: As mentioned above, since video sequences from cameras only provide 2D information, in order to triangulate 3D positions base on 2D positions from multiple cameras, these cameras first need to be stereo-calibrated. To do so, we first computer intrinsic and extrinsic parameters of the cameras using Tsai’s calibration model [14]. Tsai’s algorithm require a minimum of 11 sets of corresponding control points to perform this calculation, but 20-60 sets are usually used in the calibration process with our previous experience. In our approach, we use a calibration box with 48 control points on it. A pair of 2D coordinates (one of each camera) for each of these 48 control points are then recorded and Tsai’s calibration algorithm is then applied to estimate the camera parameters. We can then triangulate the 3D world coordinates from a pair of corresponding 2D coordinates on camera frames. Since we are using 3 cameras

Page 4: MirrorTrack – A Real-Time Multiple Camera Approach for ...teilab-static.arch.tamu.edu/quek/Publications/2008/PakFEQ08-Mirror... · 1 Abstract—This paper presents a real-time multiple

4

in our system, each pair of them would be calibrated separately.

2) Solving Correspondence: The main challenge we are

facing when performing stereo operations is to find correspondence. It is particularly so in our system, as cameras are facing drastically different directions, and the same object (finger or hand) can look quite different from different camera view. How to match one finger from a camera view to a finger on another is a problem we must solve. In our approach, we perform four methods to solve this problem, because any of them is not guaranteed solve it individually. First, we divide the display surface into grids, as shown in Figure 6, this help approximate the position of a fingertip on the display surface, a finger in camera view 1 can only match a finger in camera view 2 if they appear on the same grid in both views. Second, stereo-triangulation provides us with depth hypothesis for each pair of 2D coordinates. As show in Figure 7, there are two objects (O1 and O2) projected into two cameras (cam1 and cam2). We can easily figure out O3 is not a corresponding position, because it is out of the bound of the display area. Third, the corresponding positions are consistent for all camera pairs. As we mentioned in the previous subsection, each pair of the 3 cameras are calibrated separately, if we have obtained a correct correspondence, then the triangulation results from all pairs should be approximately the same. Fourth, we record corresponding positions by their historical information. By employing trajectory tracking, which is discussed next, we can exclude unlikely correspondence by analyzing the fingers motion trajectories.

Figure 6 Solving correspondence by grids.

D. Trajectory Tracking When working with cameras, it is not always possible to

locate the visual features needed in every single frame due to occlusion and lighting/camera noises. In our previous work, we employed trajectory tracking in each camera view to track motion trajectories of fingers in 2D space, using a least-square method to track each fingertip’s movement in x and y axis separately. In our new approach, instead of only tracking finger movements in 2D camera views, we also track their 3D motion trajectories. In addition, we also keep track of the angles of fingers, which makes it significant easier to identify multiple fingertips in very close proximity as long as they are

pointing in different directions.

III. DISCUSSION In this section, we discuss th e overall benefit of our new approach and improvements over our previous work. First, in our new system, we employ full stereo multi-camera approach. This approach helps solve some of the occlusion. Since we have 3 camera, and each pair of them are calibrated separately, we have a total of 3 stereo-calibrated camera pairs. So essentially, as long as there are two cameras be able to have a clear view of a fingertips we are then able to triangulate a 3D position for that finger. The accuracy also improves if all 3 cameras are able to have clear view of the fingers, as triangulation results can be combined. It is also easy to extend our setup to use more than 3 cameras. Essentially, the more cameras we employ, the more accurate results we can achieve. A major improvement we have in our new approach is the runtime performance. By employing multi-resolution approach we are able to cut the processing time significantly and obtain real-time performance using 3 cameras. By resolving the performance issue, the next step of our research is to implement a set gesture interactions with our system.

Figure 7 Solve correspondence by depth hypothesis.

IV. CONCLUSION We have made significant improvement in runtime and

accuracy to our system with the new approaches. We performed a preliminary test with our system, and were able to obtain a real-time performance (average 25 FPS). We have also been able to resolve the correspondence problem and applied a full stereo multi-camera solution. Furthermore, by tracking finger motion and finger pointing directions in 3D space, we are able to identify fingers more accurately and minimize the issues caused by fingers moving too close to each other.

The next step of our research is to implement a full set of gesture interactions and perform formal user study to determine the robustness of our system in actual use.

Page 5: MirrorTrack – A Real-Time Multiple Camera Approach for ...teilab-static.arch.tamu.edu/quek/Publications/2008/PakFEQ08-Mirror... · 1 Abstract—This paper presents a real-time multiple

5

ACKNOWLEDGMENT This research has been partially supported by NSF grants “Embodied Communication: Vivid Interaction with History and Literature,” IIS-0624701, “Interacting with the Embodied Mind,” CRI-0551610, and “Embodiment Awareness, Mathematics Discourse and the Blind,” NSF-IIS- 0451843.

REFERENCES [1] Apple iPhone. [cited; Mar. 16, 2008];

http://www.apple.com/iphone. [2] Apple MacBook Air. [cited Mar. 16, 2008];

http://www.apple.com/macbookair. [3] A. Agarwal, et al., High Precision Multi-touch Sensing on Surfaces

using Overhead Cameras, in tabletop. 2007. [4] J. Ahlberg, Real-time Facial Feature Tracking Using an Active

Model with Fast Image Warping. in International Workshop on Very Low Bit-rate Video Coding. 2001. Athens, Greece.

[5] P. Chung, B. Fang, and F. Quek, MirrorTrack - A Vision Based Multi-Touch System for Glossy Display Glossy. VIE 2008

[6] W. Buxton, Multi-Touch Systems I Have Known & Loved. 2007 [cited Mar. 16 /2008]; http://www.billbuxton.com/multitouchOverview.html.

[7] P. Dietz, and D. Lehigh, DiamondTouch: a Multi-User Touch Technology. UIST, 2001.

[8] P. Dietz, and D. Leigh. DiamondTouch: a multi-user touch technology. in UIST '01: Proceedings of the 14th annual ACM symposium on User interface software and technology. 2001. New York, NY, USA: ACM Press.

[9] T. Grossman, et al., Hover widgets: using the tracking state to extend the capabilities of pen-operated devices, in Proceedings of the SIGCHI conference on Human Factors in computing systems. 2006, ACM: Montreal, Quebec, Canada.

[10] J.Y., Han, Low-Cost Multi-Touch Sensing through Frustrated Total Internal Reflection. UIST, 2005.

[11] J.Y., Han , Low-cost multi-touch sensing through frustrated total internal reflection, in Proceedings of the 18th annual ACM symposium on User interface software and technology. 2005, ACM: Seattle, WA, USA.

[12] J. Letessier, and B. Franois, Visual tracking of bare fingers for interactive surfaces, in Proceedings of the 17th annual ACM symposium on User interface software and technology. 2004, ACM: Santa Fe, NM, USA.

[13] A. Wilson, TouchLight: An Imaging Touch Screen and Display for Gesture-Based Interaction. ICMI, 2004.

[14] R.Y. Tsai, "A versatile camera calibration technique for high accuracy 3d machine vision metrology using off-the-shelf TV cameras and lenses", IEEE Journal of Robotics and Automation, vol. RA-3, pp. 323–344, 1987.