Systems and methods of camera-based fingertip tracking

Similar documents
I I I I I I I I I I. US 6,861,788 B2 Mar. 1,2005 US B2. * cited by examiner

(12) United States Patent

(12) United States Patent (10) Patent No.: US 6,462,508 B1. Wang et al. (45) Date of Patent: Oct. 8, 2002

(12) Patent Application Publication (10) Pub. No.: US 2015/ A1

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1. (51) Int. Cl. SELECT A PLURALITY OF TIME SHIFT CHANNELS

o VIDEO A United States Patent (19) Garfinkle u PROCESSOR AD OR NM STORE 11 Patent Number: 5,530,754 45) Date of Patent: Jun.

METHOD, COMPUTER PROGRAM AND APPARATUS FOR DETERMINING MOTION INFORMATION FIELD OF THE INVENTION

(12) Publication of Unexamined Patent Application (A)

Generating Flower Images and Shapes with Compositional Pattern Producing Networks

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1

USOO A United States Patent (19) 11 Patent Number: 5,822,052 Tsai (45) Date of Patent: Oct. 13, 1998

SELECTING A HIGH-VALENCE REPRESENTATIVE IMAGE BASED ON IMAGE QUALITY. Inventors: Nicholas P. Dufour, Mark Desnoyer, Sophie Lebrecht

(12) Patent Application Publication (10) Pub. No.: US 2015/ A1

E. R. C. E.E.O. sharp imaging on the external surface. A computer mouse or

2) }25 2 O TUNE IF. CHANNEL, TS i AUDIO

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1

(12) Patent Application Publication (10) Pub. No.: US 2013/ A1

(12) United States Patent

(12) United States Patent (10) Patent No.: US 6,885,157 B1

(12) Patent Application Publication (10) Pub. No.: US 2013/ A1

(12) United States Patent (10) Patent No.: US 7.043,750 B2. na (45) Date of Patent: May 9, 2006

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2012/ A1. MOHAPATRA (43) Pub. Date: Jul. 5, 2012

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2007/ A1

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1

File Edit View Layout Arrange Effects Bitmaps Text Tools Window Help

(12) (10) Patent No.: US 8.205,607 B1. Darlington (45) Date of Patent: Jun. 26, 2012

(12) United States Patent (10) Patent No.: US 6,424,795 B1

DISTRIBUTION STATEMENT A 7001Ö

Blackmon 45) Date of Patent: Nov. 2, 1993

TEPZZ 996Z 5A_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (51) Int Cl.: G06F 3/06 ( )

TEPZZ A_T EP A1 (19) (11) EP A1. (12) EUROPEAN PATENT APPLICATION published in accordance with Art.

Chen (45) Date of Patent: Dec. 7, (54) METHOD FOR DRIVING PASSIVE MATRIX (56) References Cited U.S. PATENT DOCUMENTS

I I I - -- United States Patent [19J A Hair CONTROL PANEL SPEAKERS COMPACT DISC CONTROL I.C. VIDEO DISPLAY PLAYER

UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD. LG ELECTRONICS, INC. Petitioner. ATI TECHNOLOGIES ULC Patent Owner

USOO A United States Patent (19) 11 Patent Number: 5,850,807 Keeler (45) Date of Patent: Dec. 22, 1998

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1

III... III: III. III.

IN THE UNITED STATES PATENT AND TRADEMARK OFFICE TITLE OF THE INVENTION

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1

EP A2 (19) (11) EP A2 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2012/20

(12) United States Patent (10) Patent No.: US 7,952,748 B2

(12) Patent Application Publication (10) Pub. No.: US 2017/ A1. (51) Int. Cl. (52) U.S. Cl. M M 110 / <E

United States Patent (19)

(12) United States Patent (10) Patent No.: US 6,275,266 B1

(12) United States Patent (10) Patent No.: US 7,605,794 B2

(10) Patent No.: US 8, 798,598 B2 7,184,918 B2 2010/ A2 * 2013/ A1 * * cited by examiner

Appeal decision. Appeal No USA. Osaka, Japan

(12) Patent Application Publication (10) Pub. No.: US 2003/ A1

(12) Patent Application Publication (10) Pub. No.: US 2011/ A1

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2015/ A1

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1

32O O. (12) Patent Application Publication (10) Pub. No.: US 2012/ A1. (19) United States. LU (43) Pub. Date: Sep.

(12) United States Patent (10) Patent No.: US 8,707,080 B1

TEPZZ A_T EP A1 (19) (11) EP A1 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2015/10

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1

(12) Patent Application Publication (10) Pub. No.: US 2007/ A1

(12) Patent Application Publication (10) Pub. No.: US 2014/ A1

(12) United States Patent (10) Patent No.: US 6,717,620 B1

(12) United States Patent (10) Patent No.: US 6,239,640 B1

Transflective Liquid Crystal Display

Automatic optimization of image capture on mobile devices by human and non-human agents

(12) United States Patent (10) Patent No.: US 6,865,123 B2. Lee (45) Date of Patent: Mar. 8, 2005

IIIHIIIHIIIHHHHII. United States Patent (19) 5,107,744. Bradley. Apr. 28, Claims, 2 Drawing Sheets

US Bl. wo 90/13204 wo 90/ ( *) Notice: Subject to any disclaimer, the term of this

(12) United States Patent (10) Patent No.: US 8,026,969 B2

(12) United States Patent (10) Patent No.: US 6,406,325 B1

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2009/ A1. (51) Int. Cl. CLK CK CLK2 SOUrce driver. Y Y SUs DAL h-dal -DAL

(12) Patent Application Publication (10) Pub. No.: US 2013/ A1

(12) (10) Patent N0.: US 6,969,021 B1. Nibarger (45) Date of Patent: Nov. 29, 2005

III. USOO A United States Patent (19) 11) Patent Number: 5,741,157 O'Connor et al. (45) Date of Patent: Apr. 21, 1998

United States Patent 19 11) 4,450,560 Conner

(12) Patent Application Publication (10) Pub. No.: US 2012/ A1

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1

United States Patent 19 Yamanaka et al.

EP A2 (19) (11) EP A2 (12) EUROPEAN PATENT APPLICATION. (43) Date of publication: Bulletin 2011/39

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE BOARD OF PATENT APPEALS AND INTERFERENCES. Ex parte JENNIFER MARKET and GARY D.

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1. Kusumoto (43) Pub. Date: Oct. 7, 2004

(12) United States Patent

(12) Patent Application Publication (10) Pub. No.: US 2001/ A1

(12) Patent Application Publication (10) Pub. No.: US 2011/ A1

US B2. ( *) Notice: Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.c. 154(b) by 0 days.

(12) Patent Application Publication (10) Pub. No.: US 2003/ A1

(12) United States Patent (10) Patent No.: US 6,867,549 B2. Cok et al. (45) Date of Patent: Mar. 15, 2005

I lllll IIIIII IIII IIII IIII

(12) United States Patent

illlllllllllllilllllllllllllllllillllllllllllliilllllllllllllllllllllllllll

Transcription:

University of Central Florida UCF Patents Patent Systems and methods of camera-based fingertip tracking 6-12-2012 Andrew Sugaya University of Central Florida Find similar works at: http://stars.library.ucf.edu/patents University of Central Florida Libraries http://library.ucf.edu Recommended Citation Sugaya, Andrew, "Systems and methods of camera-based fingertip tracking" (2012). UCF Patents. Paper 579. http://stars.library.ucf.edu/patents/579 This Patent is brought to you for free and open access by the Technology Transfer at STARS. t has been accepted for inclusion in UCF Patents by an authorized administrator of STARS. For more information, please contact lee.dotson@ucf.edu.

lllll llllllll ll lllll lllll lllll lllll lllll 111111111111111111111111111111111 USOOS 199106B2 c12) United States Patent Sugaya et al. (10) Patent No.: (45) Date of Patent: Jun.12,2012 (54) SYSTEMS AND METHODS OF CAMERA-BASED FNGERTP TRACKNG (75) nventors: Kiminobu Sugaya, Oviedo, FL (US); Andrew Sugaya, Oviedo, FL (US) (73) ( *) Assignee: University of Central Florida Research Foundation, nc., Orlando, FL (US) Notice: (21) Appl. No.: 12/339,631 (22) Filed: Dec. 19, 2008 Subject to any disclaimer, the term ofthis patent is extended or adjusted under 35 U.S.C. 154(b) by 623 days. (65) Prior Publication Data US 2009/0160767 Al Jun.25,2009 Related U.S. Application Data (60) Provisional application No. 61/015,243, filed on Dec. 20, 2007. (51) nt. Cl. G06F 31033 (2006.01) (52) U.S. Cl.... 345/157; 348/222.1; 382/103 (58) Field of Classification Search... None See application file for complete search history. (56) 5,767,842 A * 6,088,018 A * 6,147,678 A * 6,388,657 Bl * 6,512,838 Bl * 7,542,586 B2 * 7,859,519 B2 * * cited by examiner References Cited U.S. PATENT DOCUMENTS 6/1998 Korth... 345/168 712000 DeLeeuw et al.... 345/156 1112000 Kumar et al.... 345/158 512002 Natoli... 345/168 1/2003 Rafii et al.... 382/106 612009 Johnson... 382/100 12/2010 Tulbert... 345/173 Primary Examiner - Jason Olson (74) Attorney, Agent, or Firm - Timothy H. Van Dyke; Beusse, Wolter, Sanks, Mora & Maire, P.A. (57) ABSTRACT Systems and methods for camera-based fingertip tracking are disclosed. One such method includes identifying at least one location of a fingertip in at least one of the video frames, and mapping the location to a user input based on the location of the fingertip relative to a virtual user input device. 13 Claims, 4 Drawing Sheets SYSTEM~ 100 \ VDEO CAMERA 120 /COMPUTER./ 110 FNGERTP /130 DSPLAY 140

U.S. Patent Jun.12,2012 Sheet 1of4 FG. 1 SYSTEM~ 100 \ VDEO CAMERA 120 /COMPUTER ' 110. /130 FNGERTP DSPLAY 140 FG. 2 /COMPUTER ' 110 PROCESSOR 210 MEMORY 220 FNGERTP TRACKNG LOGC 250 BUS 240 VDEO CAMERA,,,--..., r--_...- 120 STORAGE 230..._

U.S. Patent Jun.12,2012 Sheet 2 of 4 FG. 3 T -,,-- FNGERTP 130 /,... ~ \ '-. - -~,_. mj.!111!. - - -~-.,_.,_ -,_ 1- u - - :;;;. ii.,..,., ~ ~,_ y X--7 /GRD ' 310 FG. 5 KEY 520 /GRD VRTUAL KEYBOARD 510 / 310 [~:~~]~~~r:-:i_::::r:::r::r::-~_:::::~:::::;::::r:::r::::~::::r::r::r:::r:::r::::r:::~ 1,21 :::::r::: l 1 t~:m: 4 mmrr10:t~mo:t:::t:::::t:j,-----,s@jsill TJ0~[g][tJ ~illffi---1-----~ c-----,~0@j@j[d@jf~j-00td-dod--i ~:::::;1 ~HF~ 1~0@JSill~:~:o:orq1 ~HF~ q l-----l J J J D flnsl ~DEL ~j ALT,J j J J LJ l l l J l J J l J 1 t i- - ---- t ------1------1----- -1------ ------t----- -1------1------r------t------1!!!!! CUT PASTE UNDO REDO!!!!!! 1--.. - -----1------'------1----- ------1----- -1----..._ -----1-- ----l t l l J L J. J...J l L L.l J L L.l...J L J..l...J L L J...J

U.S. Patent FG. 4 Jun.12,2012 Sheet 3 of 4 DENTFY TARGET PXELS CORRESPONDNG TO POTENTAL FNGERTPS 10 TRACK MOTON OF TARGET PXELS 20 DETERMNE WHETHER TARGET PXELS ARE CONFRMED PXELS 30 TRACK MOTON OF CONFRMED PXELS CORRESPONDNG TO FNGERTPS 40 MAP FNGERTP POSTON(S) AND/OR MOTON TO USER NPUT 50 DRECT USER NPUT TO APPLCATON 60

U.S. Patent Jun.12,2012 Sheet 4 of 4 FG. 6 APPLCATON APPLCATON 680 680 u1 EVENT UEVENT 660 670 OPERATNG SYSTEM 610 KBD EVENT MOUSE EVENT CAMERA 640 650 ~ DRVER FNGERTP 690 MOUSE TRACKNG LOGC -----+ DRVER 250 620 FG. 7 '-+ APP-SPECFC MAP 695 APPLCATON APPLCATON 680 680 ~U EVENT U EVENT 660 670 KEYBOARD DRVER 630 OPERATNG SYSTEM 610.. MOUSE EVENT KBD EVENT 640 650 CAMERA DRVER 690 APP-SPECFC MAP 695 MOUSE DRVER NTER.. KBD DRVER NTER. 710 720 FNGERTP TRACKNG LOGC 250

1 SYSTEMS AND METHODS OF CAMERA-BASED FNGERTP TRACKNG CROSS REFERENCE TO RELATED APPLCATONS This application claims priority to U.S. Ser. No. 61/015, 243, filed Dec. 20, 2007, which is entirely incorporated herein by reference. TECHNCAL FELD The present disclosure relates to visual tracking of objects, and more specifically, to camera-based tracking of fingertips. BACKGROUND Conventional mechanisms for user input to computers include keyboards and pointing devices. Touch-sensing displays are also used, but these displays are expensive, and a large size touch-sensing display requires more exertion from the user to perform the same action. Furthermore, a touchsensing display allows fingertip movement only on a flat surface, and cannot recognize finger tip movement in free space. Fingertip tracking in free space has been accomplished by the use of infrared, and through combination oflasers and steering mirrors. But these methods require complicated, expensive equipment and prove to be impractical. Methods for tracking fingers in free space with ordinary cameras have been developed, but fingers have less mobility and dexterity as compared to fingertips. BREF DESCRPTON OF THE DRAWNGS Many aspects of the disclosure can be better understood 35 with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. FG. 1 depicts one embodiment of a system for camerabased fingertip tracking. FG. 2 is a hardware block diagram of one embodiment of the computer from FG. 1. FG. 3 illustrates a pixel grid utilized by the fingertip tracking logic from FG. 2. FG. 4 is a flowchart of the operation in one embodiment of the fingertip tracking logic from FG. 2. FG. 5 illustrates the operation of the mapping block from FG. 4. FG. 6 depicts one example architecture which can be used to implement the fingertip tracking logic from FG. 2. FG. 7 depicts another example architecture which can be used to implement the fingertip tracking logic from FG. 2. SUMMARY Systems and methods for camera-based fingertip tracking are disclosed. One such method includes identifying at least one location of a fingertip in at least one of the video frames, and mapping the location to a user input based on the location of the fingertip relative to a virtual user input device. One such system includes a video camera, memory and a processor. The video camera is configured to produce a series of video frames. The memory is configured to store program code, and the processor is programmed by the program code to: examine at least one of the video frames to identify at least one location of a fingertip within the video frame; and map the 2 location to a one of a plurality of predetermined user inputs, based on the location of the fingertip relative to a virtual user input device. DETALED DESCRPTON The embodiments disclosed herein provide systems and methods for camera-based fingertip tracking. n one such embodiment, a video camera captures motion of one or more 10 fingertips in a series of video frames. Software analyzes the video frames to identify a fingertip location and/or movement in the video frames. Based on location of the fingertip relative to a virtual user input device, the software maps the fingertip to a virtual input such as a key or mouse location, and pro- 15 vides this input to an application. FG. 1 depicts one embodiment of a system for camerabased fingertip tracking. System 100 includes a computer 110 in communication with a digital video camera 120. Video camera 120 captures digital images in its field of view, and 20 fingertip tracking logic 250 (see FG. 2) analyzes series of captured images to track the location and motion of fingertips. Logic 250 then maps the fingertip location and/or motion to data that is usable by an application running on computer 110. n some embodiments, logic 250 maps fingertip location and/ 25 or motion to a key, a combination of keys, a mouse click, or a mouse movement. n the example of FG. 1, video camera 120 is located near computer 110, with at least one fingertip 130 positioned in the field of view of video camera 120. However, other locations 30 for video camera 120 are possible, as long as video camera 120 is in communication with computer 110. n this example embodiment, video camera 120 is separate from computer 110, but in other embodiments video camera 120 is integrated with computer 110. Also shown in FG. 1 is a display 140 (optional). n some embodiments, computer 110 presents a keyboard representation on display 140. The user points to locations on the keyboard representation, fingertip tracking logic 250 tracks the location and motion of fingertips relative to this keyboard 40 representation, then maps the location and/or motion to keyboard locations. n other embodiments, computer 110 projects a keyboard representation onto a surface. The user's fingers are not required to touch the display or the surface in these embodiments. nstead, the user's interaction is with the 45 representation of the keyboard rather than a physical object, since fingertip tracking logic 250 detects fingertip location and tracks fingertip motion rather than touch or contact. FG. 2 is a hardware block diagram of one embodiment of computer 110. Computer 110 contains a number of compo- 50 nents that are familiar to a person of ordinary skill in the art. FG. 2 omits a number of conventional components, known to those skilled in the art, that are not necessary to explain the operation of the computer. Components of computer 110 include a processor 210, 55 memory 220, and storage 230 (e.g., hard disk, flash RAM, flash ROM, EEPROM, etc.). These components are coupled via a bus 240. Bus 240 may include multiple types of buses such as a dedicated memory bus, a combined memory- 0 bus, and/or one or more peripheral buses (e.g., universal serial bus, 60 EEE 1394, etc.). The computer is also in communication with video camera 120. n the example of FG. 2, video camera 120 is connected via bus 240. However, in other embodiments, computer 110 includes a network interface (not shown), and video camera 120 communicates with com- 65 put er 110 over a network (e.g., Ethernet, WiF i, nternet, etc.). n some embodiments, fingertip tracking logic 250 is implemented as executable instructions stored in memory

3 220 and executed by processor 210. n other embodiments, fingertip tracking logic 250 is implemented in hardware logic (e.g., an application-specific integrated circuit). Logic 250 is described herein as residing within the same computer 110 which contains video camera 120. However, a person of ordinary skill in the art should appreciate that the functionality of these components could be distributed in other ways. The operation of fingertip tracking logic 250 will now be described in conjunction with FGS. 3-6. Fingertip tracking logic 250 analyzes video frames captured from video camera 120, where each frame is processed as a pixel grid 310, shown in FG. 3. At least one portion of the pixels within pixel grid 310 are identified by logic 250 as a fingertip 130 (see FG. 1). n some embodiments, logic 250 identifies multiple fingertips 130, each corresponding to a different portion of pixel grid 310. FG. 4 is a flowchart of the operation in one embodiment of fingertip tracking logic 250. A positioning stage (block 410) compares each pixel in a current frame with the same pixel in 20 the previous frame. f the grayscale (or color, if color is used) of the pixel has changed significantly, the current pixel is then compared with other neighboring pixels. A pixel with changed grayscale that is also brighter than its surroundings it is considered to be a "target" pixel since fingertip 130 tends to 25 be brighter than its surrounding area. Determining that a particular target pixel may correspond to fingertip 130 thus locates the potential fingertip's location in space. Various embodiments may track different numbers of fingertips. A tracking stage (block 420) tracks the motion of the target 30 pixel by removing the background, averaging the grayscales of corresponding pixels in the two frames, and determining motion by subtracting the pixel grayscale from the second frame. Having processed two frames (current and previous) later 35 frames are similarly analyzed, but with a focus on target pixels (block 430). nstead of all pixels, only target pixels are compared with the same pixel in the previous frame, then with neighboring pixels. f a target pixel once again meets the target criteria in these later frames, the target pixel then 40 becomes a "confirmed" pixel, which most likely represents a fingertip. Motion of these "confirmed" pixels, corresponding to fingertips, are tracked (block 440). As in block 420, the tracking is performed by removing the background, averaging the 45 grayscales of corresponding pixels in the two frames, and determining motion by subtracting the pixel grayscale from the second frame. Once fingertips have been identified via confirmed pixels, this embodiment of fingertip tracking logic 250 maps fingertips 130 from locations within pixel grid 310 to user input (block 450), and directs the user input to applications running on the computer 110 (block 460). The techniques described herein allow tracking of all fingertips independently and in free space, which permits greater flexibility and provides more information from gestures. Embodiments of fingertip tracking logic 250 can control robots from a remote location, which may be used in many different fields and applications. One example is medical diagnostic and surgical procedures. Another example is mili- 60 tary applications, for example a targeting system. The techniques described herein can be extended through the use of multiple cameras to implement a three-dimensional tracking system, in which fingertip movement is tracked in three coor- FG. 5 illustrates the operation of mapping block 450 in more detail. At least a portion of pixel grid 310 corresponds to a virtual keyboard 510. Each key 520 of virtual keyboard 510 corresponds to a set of pixel locations within grid 310. n the example of FG. 5, thenumber"l"key (310) is located at grid location [3,3]. This embodiment of fingertip tracking logic 250 therefore maps fingertip 130 to the "1" key on keyboard 510 when that fingertip 130 is located at location grid location [3,3]. n some embodiments, a key mapping is not determined 65 until a fingertip 130 has stayed in the same location for a specific period of time. 4 Other fingertip positions are similarly mapped to other locations on virtual keyboard 510 The virtual keyboard concept can be extended to handle key sequences on a physical keyboard as virtual keys. For example, the Ctrl-X key sequence, which represents a "Cut" command in some user interfaces, can be represented as a single "Cut" key on virtual keyboard 510. Another example of mapping fingertip motion to user input treats fingertip motion as movement of a pointing device (e.g., 10 mouse, trackball). Thus, the software converts motion of the index fingertip in free space to motion of the index finger on the pixel grid, which is mapped to moving a pointer on a virtual surface. One embodiment uses a special location on the grid to represent mouse actions such as a button click or 15 double click, so that moving the index finger to this location acts as a click or double click. n some embodiments, the mouse action is not activated until a fingertip 130 has stayed in the same click or double click location for a specific period of time. FG. 6 depicts one example architecture which can be used to implement fingertip tracking logic 250. Device drivers for particular input devices provide low-level events to an operating system 610. This example includes a mouse driver 620 and a keyboard driver 630, which provide mouse events 640 and key events 650 to operating system 610. Operating system 610 then provides user interface events 660, 670 to various applications 680 executing on computer 110. Typically, operating system 610 translates from low-level events to corresponding user interface events, though this translation may not be present in all embodiments. For example, the key sequence "Control-A" may be received by operating system 610 as two keystroke events, but translated into a single user interface event for the application. A camera driver 690 interfaces to the video camera 120 of FG. 1, and fingertip tracking logic 250 retrieves frames from camera driver 690. Logic 250 determines fingertip locations and/or motion, then translates location and motion information (relative to the frame or grid) into user input. (This operation was described earlier in connection with FGS. 3-5.) This user input, in the form of mouse-specific or keyboard-specific data, is provided to mouse driver 620 and keyboard driver 630 (respectively). Thus, in this example architecture fingertip tracking logic 250 operates as a mouse and a keyboard from the perspective of the mouse and keyboard drivers. Some embodiments of fingertip tracking logic 250 may also use an application-specific mapping 695 (e.g., specific to a word processor, spreadsheet, etc.) FG. 7 depicts another example architecture which can be used to implement fingertip tracking logic 250. This architec- 50 ture is similar to that offg. 6, but fingertip tracking logic 250 itself operates as a mouse driver (by providing a mouse driver interface 710) and as a keyboard driver (by providing a keyboard driver interface 720). That is, fingertip tracking logic 250 provides the same interfaces to operating system 610 that 55 mouse driver 620 and keyboard driver 630 do. dinate planes. n some embodiments system 100 is located in an operating room and used by a person such as a surgeon. Such embodiments include a display which displays, in the field of

5 view of video camera 120, the output ofan application such as an image viewer. The user interacts with the image viewer and manipulates the displayed image (e.g., a diagnostic image of the patient) by pointing. Using the techniques described above, fingertip tracking logic 250 identifies the pointed-to portions of the image, and translates this to input provided to the image viewer. Other types of applications are also contemplated (e.g., web browser, file manager, etc.). Since the user controls the application without touching a solid surface, the sterility of the operating room is preserved. 10 A variation on this embodiment utilizes gloves which include a marker (e.g., color, fluorescent, etc.) in the fingertip area. n this embodiment, positioning and tracking is simplified, while the mapping and injection of input into an application 15 remains the same. The foregoing description has been presented for purposes of illustration and description. t is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Obvious modifications or variations are possible in light of 20 the above teachings. The implementations discussed, however, were chosen and described to illustrate the principles of the disclosure and its practical application to thereby enable one of ordinary skill in the art to utilize the disclosure in various implementations and with various modifications as 25 are suited to the particular use contemplated. All such modifications and variation are within the scope of the disclosure as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled. 30 Any process descriptions or blocks in flowcharts should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the pro- cess. As would be understood by those of ordinary skill in the art of the software development, alternate implementations are also included within the scope of the disclosure. n these alternate implementations, functions may be executed out of order from that shown or discussed, including substantially 40 concurrently or in reverse order, depending on the functionality involved. The systems and methods disclosed herein can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or 45 device. Such instruction execution systems include any computer-based system, processor-containing system, or other system that can fetch and execute the instructions from the instruction execution system. n the context of this disclosure, a "computer-readable medium" can be any means that can 50 contain, store, communicate, propagate, or transport the program for use by, or in connection with, the instruction execution system. The computer readable medium can be, for example but not limited to, a system or propagation medium 55 that is based on electronic, magnetic, optical, electromagnetic, infrared, or semiconductor technology. Specific examples of a computer-readable medium using electronic technology would include (but are not limited to) the following: an electrical connection (electronic) having 60 one or more wires; a random access memory (RAM); a readonly memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory). A specific example using magnetic technology includes (but is not limited to) a portable computer diskette. Specific examples using optical 65 technology include (but are not limited to) an optical fiber and a portable compact disk read-only memory (CD-ROM). 35 6 What is claimed is: 1. A method of determining user input from a series of video frames, the method comprising: identifying at least one location of a fingertip in at least one of the video frames; and mapping the location to a user input based on the location of the fingertip relative to a virtual user input device, wherein said identifying at least one location of a fingertip comprises identifying a target pixel in a first one of the video frames, the target pixel representing a potential fingertip location; tracking motion of the target pixel in video frames occurring after the first one; determining whether the target pixel is a confirmed pixel, the confirmed pixel representing a probable fingertip location; and tracking motion of the confirmed pixel to produce a plurality of fingertip locations. 2. The method of claim 1, wherein the virtual user input device is a keyboard. 3. The method of claim 1, wherein the virtual user input device is a mouse. 4. The method of claim 1, further comprising: providing the user input to a software application. 5. The method of claim 1, wherein the identifying further comprises: identifying the at least one location of a fingertip based on presence of a particular color. 6. The method of claim 1, wherein the identifying further comprises: identifying the at least one location of a fingertip based on presence of fluorescence. 7. A system comprising: a video camera configured to produce a series of video frames; memory configured to store program code thereon; and a processor that is progrannned by the program code to: examine at least one of the video frames to identify at least one location of a fingertip within the video frame; and map the location to one of a plurality of predetermined user inputs, based on the location of the fingertip relative to a virtual user input device, wherein the processor is further progrannned to: identify a target pixel in a first one of the video frames, the target pixel representing a potential fingertip location; track motion of the target pixel in video frames occurring after the first one; determine whether the target pixel is a confirmed pixel, the confirmed pixel representing a probable fingertip location; and track motion of the confirmed pixel to produce a plurality of fingertip locations. 8. The system of claim 7, wherein the processor is further programmed to: provide the user input to a software application. 9. The system of claim 7, wherein the virtual user input device is associated with an application-specific mapping, and the processor is further programmed to map the location in accordance with the application-specific mapping. 10. The system of claim 7, further comprising a second video camera and a third video camera, each of the cameras producing a corresponding series of video frames, wherein the processor is further programmed to: examine a series of video frames from each of the cameras to identify at least one location of a fingertip within a three-dimensional space defined by the cameras; and map the location to a one of a plurality of predetermined user inputs, based on the location of the fingertip relative to a three dimensional virtual user input device. 11. A system comprising: a display; a video camera configured to produce a series of video frames; memory configured to store program code thereon; and a processor that is programmed by the program code to: examine at least one of the video frames to identify at least one location of a fingertip within the video frame; and map the location to one of a plurality of predetermined user inputs, based on the location of the fingertip relative to a virtual user input device; use the mapped predetermined user input to control an application

7 producing a window on the display; the processor being further programmed to: identifying a target pixel in a first one of the video frames, the target pixel representing a potential fingertip location; tracking motion of the target pixel in video frames occurring after the first one; determine whether the target pixel is a confirmed pixel, the confirmed pixel representing a probable fingertip location; and track motion of the confirmed pixel to produce a plurality of fingertip locations. 8 12. The system of claim 11, wherein the application is an image viewer, the window corresponds to the image, and the mapped predetermined input controls manipulation of the image. 13. The system of claim 11, wherein the application is a browser. * * * * *