1. A system for inputting data into a computing device, the system comprising: a camera for capturing a sequence of images containing a finger of a user; a virtual keyboard comprising a plurality of virtual keys, each virtual key having a plurality of virtual sensors, each virtual sensor comprising a region of adjoining pixels within a corresponding virtual key, wherein a plurality of the virtual keys have different virtual sensor layouts from one another; a display for displaying each image of the sequence combined with the virtual keyboard, wherein the position of the finger in the displayed image relative to the virtual keyboard changes as the finger of the user moves relative to the camera; a video feature extraction module configured to: detect motion of the user's finger in the sequence of images relative to the virtual keyboard, identify a sequence of actuated virtual sensors within at least one of the plurality of virtual keys based on the detected motion, wherein a virtual sensor is actuated when the motion of the user's finger is detected over a threshold number of pixels within the region of adjoining pixels corresponding to the actuated virtual sensor, and collect virtual sensor actuation data comprising both geographical and temporal information related to each actuated virtual sensor of the sequence of actuated virtual sensors; and a gesture pattern matching module for using the sequence of virtual sensor actuations to recognize a user's gesture as one of a valid keystroke and a rejected keystroke and input data into the computing device.