Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Computing devices such as personal computers, laptop computers, tablet computers, cellular phones, and countless types of Internet-capable devices are increasingly prevalent in numerous aspects of modern life. Over time, the manner in which these devices are providing information to users is becoming more intelligent, more efficient, more intuitive, and/or less obtrusive.
The trend toward miniaturization of computing hardware, peripherals, as well as of sensors, detectors, and image and audio processors, among other technologies, has helped open up a field sometimes referred to as “wearable computing.” In the area of image and visual processing and production, in particular, it has become possible to consider wearable displays that place a graphic display close enough to a wearer's (or user's) eye(s) such that the displayed image appears as a normal-sized image, such as might be displayed on a traditional image display device. The relevant technology may be referred to as “near-eye displays.”
Wearable computing devices with near-eye displays may also be referred to as “head-mountable displays” (HMDs), “head-mounted displays,” “head-mounted devices,” or “head-mountable devices.” A head-mountable display places a graphic display or displays close to one or both eyes of a wearer. To generate the images on a display, a computer processing system may be used. Such displays may occupy a wearer's entire field of view, or only occupy part of wearer's field of view. Further, head-mounted displays may vary in size, taking a smaller form such as a glasses-style display or a larger form such as a helmet, for example.
Emerging and anticipated uses of wearable displays include applications in which users interact in real time with an augmented or virtual reality. Such applications can be mission-critical or safety-critical, such as in a public safety or aviation setting. The applications can also be recreational, such as interactive gaming. Many other applications are also possible.
Example embodiments help to provide interfaces for unlocking a computing device, such as a head-mountable device (HMD). In particular, an HMD may display two or more rows of characters. A user may then use head movements to enter an unlock sequence that may consist of one character selected from each of the rows of characters. The selected sequence of characters may be compared to a predetermined unlock sequence in order to determine whether to unlock the device.
In one aspect, a computer-implemented method may involve: (a) while a computing device is locked, causing a display of the computing device to display two or more rows of characters and an input region that is moveable over the rows of characters; (b) based at least in part on head-movement data that is indicative of head movement, determining one or more movements of the input region with respect to the rows of characters; (c) determining an input sequence that comprises a sequence of characters, where the sequence comprises one character from each of the two or more rows of characters that is selected based at least in part on the one or more movements of the input region with respect to the rows of characters; (d) determining whether or not the input sequence matches a predetermined unlock sequence, where the predetermined unlock sequence comprises a predetermined sequence of two or more characters; and (e) based on the determination as to whether or not the input sequence matches the predetermined unlock sequence, determining whether or not to unlock the computing device.
In another aspect, a non-transitory computer readable medium has stored therein instructions executable by a computing device to cause the computing device to perform functions comprising: (a) while the computing device is locked, displaying two or more rows of characters and an input region that is moveable over the rows of characters; (b) receiving head-movement data that is indicative of head movement; (c) based at least in part on head-movement data, determining one or more movements of the input region with respect to the rows of characters; (d) determining an input sequence that comprises a sequence of characters, where the sequence comprises one character from each of the two or more rows of characters that is selected based at least in part on the one or more movements of the input region with respect to the rows of characters; (e) determining whether or not the input sequence matches a predetermined unlock sequence, where the predetermined unlock sequence comprises a predetermined sequence of two or more characters; (f) if the input sequence matches the predetermined unlock sequence, causing the computing device to unlock; and (g) if the input sequence does not match the predetermined unlock sequence, refraining from unlocking the computing device.
In a further aspect, a computing device may include a display interface to a display, a non-transitory computer readable medium, and program instructions stored on the non-transitory computer readable medium and executable by at least one processor to: (a) while the computing device is locked, cause the display to display two or more rows of characters and an input region that is moveable over the rows of characters; (b) receive head-movement data that is indicative of head movement; (c) based at least in part on head-movement data, determine one or more movements of the input region with respect to the rows of characters; (d) determine an input sequence that comprises a sequence of characters, where the sequence comprises one character from each of the two or more rows of characters that is selected based at least in part on the one or more movements of the input region with respect to the rows of characters; (e) determine whether or not the input sequence matches a predetermined unlock sequence, where the predetermined unlock sequence comprises a predetermined sequence of two or more characters; and (f) based on the determination as to whether or not the input sequence matches the predetermined unlock sequence, determine whether or not to unlock the computing device.
In yet another aspect, example embodiments may provide for: (a) while a computing device is locked, means for causing a display of the computing device to display two or more rows of characters and an input region that is moveable over the rows of characters; (b) based at least in part on head-movement data that is indicative of head movement, means for determining one or more movements of the input region with respect to the rows of characters; (c) means for determining an input sequence that comprises a sequence of characters, where the sequence comprises one character from each of the two or more rows of characters that is selected based at least in part on the one or more movements of the input region with respect to the rows of characters; (d) means for determining whether or not the input sequence matches a predetermined unlock sequence, where the predetermined unlock sequence comprises a predetermined sequence of two or more characters; and (e) based on the determination as to whether or not the input sequence matches the predetermined unlock sequence, means for determining whether or not to unlock the computing device.
These as well as other aspects, advantages, and alternatives will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings.
Example methods and systems are described herein. It should be understood that the words “example” and “exemplary” are used herein to mean “serving as an example, instance, or illustration.” Any embodiment or feature described herein as being an “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or features. In the following detailed description, reference is made to the accompanying figures, which form a part thereof. In the figures, similar symbols typically identify similar components, unless context dictates otherwise. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein.
The example embodiments described herein are not meant to be limiting. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein.
Computing devices such as smartphones often employ a security lock screen to protect the user's personal data. The user may be prompted to enter a PIN number, often a four-digit number, which must match a predetermined PIN to unlock the device. With some devices such as smartphones, the input space and output space coincide so that the user can easily select numbers to enter a PIN on the device. However, traditional lock screens do not work well with HMD's (head-mounted displays) because the user cannot easily map a touchpad on the device to select PIN numbers.
Example embodiments help to provide interfaces for unlocking a computing device, such as a head-mountable device (HMD). For example, user head movements may be used to enter a PIN to unlock a computing device. In one example embodiment, the device may be woken up when the user tilts his head upward past a certain angle. One row of numbers may be displayed for each number in the PIN (e.g., four rows of numbers for a 4-digit PIN), along with a cursor. The user may then navigate the cursor through the rows of numbers using head movements. For example, the user may be able to navigate the cursor down through the rows by tilting his head downward. Additionally, the user may be able to navigate the cursor through the numbers in a row by tilting his head to the left or right.
In some embodiments, a number may be selected from a row for the PIN based on where the cursor is in a row when the user moves the cursor past the bottom of the row. For example, a number may be selected when the cursor is moved horizontally to the number and then moved downward across the bottom of the number. Additionally, the display may contain a graphical indication to indicate to the user which numbers have been selected for the PIN, as the user is entering the PIN. For example, numbers may be bolded and/or underlined after they are selected.
Additionally, the user may be able to unselect a number if an error is made. For example, the user may be able to unselect a number by tilting his head upward back through the row of numbers. A number may be unselected when the cursor crosses back through the top of the row of numbers containing the previously selected number as the user tilts his head back upward. Alternative methods of unselecting a number may also be used. For example, the user may be able to unselect one or more previously selected numbers by giving a specific voice command.
In some embodiments, movement of the cursor with respect to the rows of numbers may be presented to a user by moving the rows of numbers in the display, while keeping the cursor at the same location in the display (e.g., in the center of the display). For instance, an HMD's display may effectively function as a viewing window to a portion of the rows of numbers, and the HMD may move the viewing window based on the head movement.
In an example embodiment, the rows of numbers may all contain the same set of numbers. Alternatively, each row may contain a subset of a certain set of numbers. In a further embodiment, the numbers may be displayed in sequential order, or they may be displayed in a different order such as a random order.
In an additional embodiment, the user may be able to input a particular sequence of numbers by making one or more gestures after the cursor has been moved over each number. For instance, the user could select a number by making certain eye gestures (e.g., winking, blinking, etc.), making certain hand gestures (e.g. waving a hand, snapping fingers, etc.), giving certain voice commands, and/or entering an input on a mechanical interface (e.g., tapping a touchpad, pushing a button, etc.). Thus, to select a particular number from the rows of numbers, the user can move his head until the cursor is over the particular number, and then make a gesture to select the number. The user can repeat this process using head movements and making gestures to input the entire sequence of numbers.
In an example embodiment, it may be determined that the user has completed an unlock sequence when the user's head is level again. If the entered PIN matches the predetermined PIN, the device will unlock. If the PIN does not match, an error message may be displayed so that the user must repeat the process. Alternately, the user may be able to use the process described above to unselect previously selected numbers in order to navigate back up to correct the PIN. In alternative embodiments, the user may indicate that the unlock sequence is complete by tapping the touchpad on the HMD or giving a specific voice command to the HMD.
Other configurations are also possible. For example, the user may be able to wake up the device by looking down. The user may then be able to select a PIN by navigating upward through the rows of numbers. Alternately, the user may be able to wake up device by looking to the left. The user may then be able to select a PIN by navigating rightward through columns of numbers. In another example, the rows may be displayed as curved arcs rather than straight lines. In this example, head movements in a direction along one of the arcs may determine the location of the curser within a row. Furthermore, head movements in a direction across the arcs may determine which row contains the cursor.
In an alternative implementation, the user may be able to use a touchpad to navigate through the rows of numbers to select a PIN. For example, the user may be able to move the cursor through the rows of numbers by moving his fingers over the touchpad. Accordingly, the touchpad may provide the user with an alternative to using head movements to enter some or all of the numbers from the unlock sequence.
Further, the PIN could include other types of characters and/or symbols (e.g., letters, punctuation, and so on), in addition or in the alternative to numbers. Accordingly, in some embodiments, the rows in a lock screen may also include other types of characters and/or symbols.
Systems and devices in which example embodiments may be implemented will now be described in greater detail. In general, an example system may be implemented in or may take the form of a wearable computer (also referred to as a wearable computing device). In an example embodiment, a wearable computer takes the form of or includes a head-mountable device (HMD).
It should be understood, however, that example systems may also be implemented in or take the form of other devices, such as a mobile phone, a tablet computer, or a personal computer, among other possibilities. Further, an example system may take the form of non-transitory computer readable medium, which has program instructions stored thereon that are executable by at a processor to provide the functionality described herein. An example system may also take the form of a device such as a wearable computer or mobile phone, or a subsystem of such a device, which includes a non-transitory computer readable medium having such program instructions stored thereon.
An HMD may generally be any display device that is capable of being worn on the head and, when worn, is configured to place a display in front of one or both eyes of the wearer. An HMD may take various forms such as a helmet or eyeglasses. As such, references to “eyeglasses” or a “glasses-style” HMD should be understood to refer to any HMD that has a glasses-like frame so that it can be worn on the head. Note, however, that a glasses-style HMD may or may not include a lens in front of one or both eyes. Further, example embodiments may be implemented by or in association with an HMD with a single display or with two displays, which may be referred to as a “monocular” HMD or a “binocular” HMD, respectively.
Each of the frame elements 104, 106, and 108 and the extending side-arms 114, 116 may be formed of a solid structure of plastic and/or metal, or may be formed of a hollow structure of similar material so as to allow wiring and component interconnects to be internally routed through the HMD 102. Other materials may be possible as well.
One or more of each of the lens elements 110, 112 may be formed of any material that can suitably display a projected image or graphic. Each of the lens elements 110, 112 may also be sufficiently transparent to allow a user to see through the lens element. Combining these two features of the lens elements may facilitate an augmented reality or heads-up display where the projected image or graphic is superimposed over a real-world view as perceived by the user through the lens elements.
The extending side-arms 114, 116 may each be projections that extend away from the lens-frames 104, 106, respectively, and may be positioned behind a user's ears to secure the HMD 102 to the user. The extending side-arms 114, 116 may further secure the HMD 102 to the user by extending around a rear portion of the user's head. Additionally or alternatively, for example, the HMD 102 may connect to or be affixed within a head-mounted helmet structure. Other configurations for an HMD are also possible.
The HMD 102 may also include an on-board computing system 118, an image capture device 120, a sensor 122, and a finger-operable touchpad 124. The on-board computing system 118 is shown to be positioned on the extending side-arm 114 of the HMD 102; however, the on-board computing system 118 may be provided on other parts of the HMD 102 or may be positioned remote from the HMD 102 (e.g., the on-board computing system 118 could be wire- or wirelessly-connected to the HMD 102). The on-board computing system 118 may include a processor and memory, for example. The on-board computing system 118 may be configured to receive and analyze data from the image capture device 120 and the finger-operable touchpad 124 (and possibly from other sensory devices, user interfaces, or both) and generate images for output by the lens elements 110 and 112.
The image capture device 120 may be, for example, a camera that is configured to capture still images and/or to capture video. In the illustrated configuration, image capture device 120 is positioned on the extending side-arm 114 of the HMD 102; however, the image capture device 120 may be provided on other parts of the HMD 102. The image capture device 120 may be configured to capture images at various resolutions or at different frame rates. Many image capture devices with a small form-factor, such as the cameras used in mobile phones or webcams, for example, may be incorporated into an example of the HMD 102.
Further, although
The sensor 122 is shown on the extending side-arm 116 of the HMD 102; however, the sensor 122 may be positioned on other parts of the HMD 102. For illustrative purposes, only one sensor 122 is shown. However, in an example embodiment, the HMD 102 may include multiple sensors. For example, an HMD 102 may include sensors 102 such as one or more gyroscopes, one or more accelerometers, one or more magnetometers, one or more light sensors, one or more infrared sensors, and/or one or more microphones. Other sensing devices may be included in addition or in the alternative to the sensors that are specifically identified herein.
The finger-operable touchpad 124 is shown on the extending side-arm 114 of the HMD 102. However, the finger-operable touchpad 124 may be positioned on other parts of the HMD 102. Also, more than one finger-operable touchpad may be present on the HMD 102. The finger-operable touchpad 124 may be used by a user to input commands. The finger-operable touchpad 124 may sense at least one of a pressure, position and/or a movement of one or more fingers via capacitive sensing, resistance sensing, or a surface acoustic wave process, among other possibilities. The finger-operable touchpad 124 may be capable of sensing movement of one or more fingers simultaneously, in addition to sensing movement in a direction parallel or planar to the pad surface, in a direction normal to the pad surface, or both, and may also be capable of sensing a level of pressure applied to the touchpad surface. In some embodiments, the finger-operable touchpad 124 may be formed of one or more translucent or transparent insulating layers and one or more translucent or transparent conducting layers. Edges of the finger-operable touchpad 124 may be formed to have a raised, indented, or roughened surface, so as to provide tactile feedback to a user when the user's finger reaches the edge, or other area, of the finger-operable touchpad 124. If more than one finger-operable touchpad is present, each finger-operable touchpad may be operated independently, and may provide a different function.
In a further aspect, HMD 102 may be configured to receive user input in various ways, in addition or in the alternative to user input received via finger-operable touchpad 124. For example, on-board computing system 118 may implement a speech-to-text process and utilize a syntax that maps certain spoken commands to certain actions. In addition, HMD 102 may include one or more microphones via which a wearer's speech may be captured. Configured as such, HMD 102 may be operable to detect spoken commands and carry out various computing functions that correspond to the spoken commands.
As another example, HMD 102 may interpret certain head-movements as user input. For example, when HMD 102 is worn, HMD 102 may use one or more gyroscopes and/or one or more accelerometers to detect head movement. The HMD 102 may then interpret certain head-movements as being user input, such as nodding, or looking up, down, left, or right. An HMD 102 could also pan or scroll through graphics in a display according to movement. Other types of actions may also be mapped to head movement.
As yet another example, HMD 102 may interpret certain gestures (e.g., by a wearer's hand or hands) as user input. For example, HMD 102 may capture hand movements by analyzing image data from image capture device 120, and initiate actions that are defined as corresponding to certain hand movements.
As a further example, HMD 102 may interpret eye movement as user input. In particular, HMD 102 may include one or more inward-facing image capture devices and/or one or more other inward-facing sensors (not shown) that may be used to track eye movements and/or determine the direction of a wearer's gaze. As such, certain eye movements may be mapped to certain actions. For example, certain actions may be defined as corresponding to movement of the eye in a certain direction, a blink, and/or a wink, among other possibilities.
HMD 102 also includes a speaker 125 for generating audio output. In one example, the speaker could be in the form of a bone conduction speaker, also referred to as a bone conduction transducer (BCT). Speaker 125 may be, for example, a vibration transducer or an electroacoustic transducer that produces sound in response to an electrical audio signal input. The frame of HMD 102 may be designed such that when a user wears HMD 102, the speaker 125 contacts the wearer. Alternatively, speaker 125 may be embedded within the frame of HMD 102 and positioned such that, when the HMD 102 is worn, speaker 125 vibrates a portion of the frame that contacts the wearer. In either case, HMD 102 may be configured to send an audio signal to speaker 125, so that vibration of the speaker may be directly or indirectly transferred to the bone structure of the wearer. When the vibrations travel through the bone structure to the bones in the middle ear of the wearer, the wearer can interpret the vibrations provided by BCT 125 as sounds.
Various types of bone-conduction transducers (BCTs) may be implemented, depending upon the particular implementation. Generally, any component that is arranged to vibrate the HMD 102 may be incorporated as a vibration transducer. Yet further it should be understood that an HMD 102 may include a single speaker 125 or multiple speakers. In addition, the location(s) of speaker(s) on the HMD may vary, depending upon the implementation. For example, a speaker may be located proximate to a wearer's temple (as shown), behind the wearer's ear, proximate to the wearer's nose, and/or at any other location where the speaker 125 can vibrate the wearer's bone structure.
The lens elements 110, 112 may act as a combiner in a light projection system and may include a coating that reflects the light projected onto them from the projectors 128, 132. In some embodiments, a reflective coating may not be used (e.g., when the projectors 128, 132 are scanning laser devices).
In alternative embodiments, other types of display elements may also be used. For example, the lens elements 110, 112 themselves may include: a transparent or semi-transparent matrix display, such as an electroluminescent display or a liquid crystal display, one or more waveguides for delivering an image to the user's eyes, or other optical elements capable of delivering an in focus near-to-eye image to the user. A corresponding display driver may be disposed within the frame elements 104, 106 for driving such a matrix display. Alternatively or additionally, a laser or LED source and scanning system could be used to draw a raster display directly onto the retina of one or more of the user's eyes. Other possibilities exist as well.
As shown in
The HMD 172 may include a single display 180, which may be coupled to one of the side-arms 173 via the component housing 176. In an example embodiment, the display 180 may be a see-through display, which is made of glass and/or another transparent or translucent material, such that the wearer can see their environment through the display 180. Further, the component housing 176 may include the light sources (not shown) for the display 180 and/or optical elements (not shown) to direct light from the light sources to the display 180. As such, display 180 may include optical features that direct light that is generated by such light sources towards the wearer's eye, when HMD 172 is being worn.
In a further aspect, HMD 172 may include a sliding feature 184, which may be used to adjust the length of the side-arms 173. Thus, sliding feature 184 may be used to adjust the fit of HMD 172. Further, an HMD may include other features that allow a wearer to adjust the fit of the HMD, without departing from the scope of the invention.
In the illustrated example, the display 180 may be arranged such that when HMD 172 is worn, display 180 is positioned in front of or proximate to a user's eye when the HMD 172 is worn by a user. For example, display 180 may be positioned below the center frame support and above the center of the wearer's eye, as shown in
Configured as shown in
The device 210 may include a processor 214 and a display 216. The display 216 may be, for example, an optical see-through display, an optical see-around display, or a video see-through display. The processor 214 may receive data from the remote device 230, and configure the data for display on the display 216. The processor 214 may be any type of processor, such as a micro-processor or a digital signal processor, for example.
The device 210 may further include on-board data storage, such as memory 218 coupled to the processor 214. The memory 218 may store software that can be accessed and executed by the processor 214, for example.
The remote device 230 may be any type of computing device or transmitter including a laptop computer, a mobile telephone, head-mountable display, tablet computing device, etc., that is configured to transmit data to the device 210. The remote device 230 and the device 210 may contain hardware to enable the communication link 220, such as processors, transmitters, receivers, antennas, etc.
Further, remote device 230 may take the form of or be implemented in a computing system that is in communication with and configured to perform functions on behalf of client device, such as computing device 210. Such a remote device 230 may receive data from another computing device 210 (e.g., an HMD 102, 152, or 172 or a mobile phone), perform certain processing functions on behalf of the device 210, and then send the resulting data back to device 210. This functionality may be referred to as “cloud” computing.
In
Additionally, a dividing plane, indicated using dividing line 274 can be drawn to separate space into three other portions: space to the left of the dividing plane, space on the dividing plane, and space to right of the dividing plane. In the context of projection plane 276, the dividing plane intersects projection plane 276 at dividing line 274. Thus the dividing plane divides projection plane into: a subplane to the left of dividing line 274, a subplane to the right of dividing line 274, and dividing line 274. In
Humans, such wearer 254, when gazing in a gaze direction, may have limits on what objects can be seen above and below the gaze direction.
The HMD can project an image for view by wearer 254 at some apparent distance 262 along display line 282, which is shown as a dotted and dashed line in
Other example locations for displaying image 280 can be used to permit wearer 254 to look along gaze vector 260 without obscuring the view of objects along the gaze vector. For example, in some embodiments, image 280 can be projected above horizontal gaze plane 264 near and/or just above upper visual plane 270 to keep image 280 from obscuring most of wearer 254's view. Then, when wearer 254 wants to view image 280, wearer 254 can move their eyes such that their gaze is directly toward image 280.
A. Unlocking Based on a Sequence of Numbers
As noted above, a predetermined unlock sequence may correspond to a sequence of two or more numbers selected from the rows of numbers. In such an embodiment, the HMD's user may use head movements to move a graphic icon (and thus a corresponding input region) with respect to the rows of numbers. The user may select particular numbers from the rows of numbers by, e.g., navigating the input region through each particular number.
More specifically, while a computing device is locked, the computing device may display an interface that includes two or more rows of numbers and an input region that is moveable over the rows of numbers, as shown by block 302. The computing device may then receive head-movement data, which is indicative of head movement, as shown by block 304. Based at least in part on the head-movement data, the computing device may determine one or more movements of the input region with respect to the rows of numbers, as shown by block 306. Further, the computing device may determine an input sequence based on numbers selected from the rows of numbers by movement of the input region, as shown by block 308.
In order to determine whether to unlock, the computing device may determine whether or not the input sequence matches a predetermined unlock sequence, as shown by block 310. In an example embodiment, the unlock sequence may be a predetermined sequence of two or more numbers. If the input sequence matches the predetermined unlock sequence, then the computing device initiates an unlock procedure, as shown by block 312. And, if the input sequence does not match the predetermined unlock sequence, then the computing device refrains from initiating the unlock procedure, as shown by block 314.
In an example embodiment, numbers selected for the input sequence may be determined based on where the input region crosses each row of numbers. For example, a number may be selected from a row of numbers when the input region crosses the bottom of the number. The selected number may be the number that is closest to the center of the input region when the input region crosses the row of numbers. Other configurations are also possible. For example, a number may be selected when the input region crosses the top of the row of numbers, or when the input region crosses the middle of the row of numbers.
In a further embodiment, previously selected numbers for the input sequence may be unselected by the user. For example, a number may be unselected based on when the input region crosses the row of numbers in the reverse direction. For example, a number may be unselected when the input region crosses back through the top of the row of numbers containing the previously selected number. Alternatively, the number may only be unselected if the input region crosses back through the previously selected number (as opposed to elsewhere within the row). Other configurations are also possible. For example, a number may be unselected when the input region crosses back through the bottom of the row of numbers in the reverse direction, or when the input region crosses back through the middle of the row of numbers.
In an additional embodiment, numbers may be selected or unselected based on gesture data corresponding to various types of gestures, which may be detected via various types of interfaces. In an example embodiment, the gesture data may correspond to gestures on a touch-based interface, such as taps and/or swipes on a touchpad or touchscreen. For instance, an HMD such as HMD 172 of
In other embodiments, the gesture data may correspond to hand gestures made in the air. Such hand gestures may be detected by a camera and/or by proximity sensor(s), for example. In such an embodiment, the user may input the unlock sequence by performing a certain hand movement each time the input region moves over a number in the unlock sequence. A second hand movement or a different type of hand movement may be used to unselect the number.
In yet other embodiments, the gesture data may correspond to eye gestures such as winks and/or certain directional eye movements. In such an embodiment, the eye gestures may be detected by an eye- or gaze-tracking system of an HMD. For example, the user may input the unlock sequence by winking each time the input region moves over a number in the unlock sequence. A second wink or different type of eye movement may be used to unselect the number.
In yet other embodiments, the gesture data may correspond to input actions on a mechanical interface, such as a mouse, keyboard, or button on an HMD, among other possibilities. For example, the user may input the unlock sequence by pressing a button on the HMD, on a keyboard, or on mouse each time the input sequence moves over a number in the unlock sequence. A second input action or a different type of input action may be used to unselect the number. Other examples are possible.
In some embodiments, at block 312, the function of determining whether or not the input sequence matches the predetermined unlock sequence may be performed on the fly, as each number in the input sequence is detected. For example, each time a new number is selected, the computing device may compare the newly-identified number to the next number in the sequence making up the unlock sequence. If the newly-inputted number matches the next number in the unlock sequence, then the computing device may continue the unlock process and wait for the next number (or, if the newly-inputted number is the last number in the sequence making up the unlock sequence, the computing device may determine that the unlock sequence is correct and responsively unlock).
On the other hand, if a newly-inputted number does not match the next number in the unlock sequence, then the computing device may reset the unlock process, and indicate to the user that there is been an error. Alternatively, when a newly-inputted number does not match the next number in the unlock sequence, the computing device may indicate this to the user and allow the user one or more additional attempts to enter the next number correctly. Further, the computing device may limit the number of additional attempts that can be made to input a given number in the unlock sequence, and/or may limit the number of total additional attempts to input numbers that can be made during the entire process of inputting the unlock sequence.
In other embodiments, the computing device may not compare numbers as they are received. Instead, at block 310, the computing device may wait until the input sequence is completely entered (e.g., until as many numbers have been inputted as are contained in the unlock sequence), and then determine whether the input sequence matches the predetermined unlock sequence. If the input sequence does match the predetermined unlock sequence, an unlock process may be triggered. If the input sequence does not match the predetermined unlock sequence, an error message may be displayed to the user. In that case, the device may go to sleep until the user reinitiates the unlock process. Alternatively, the unlock process may be restarted immediately and the rows of numbers may be displayed with all of the selections cleared. In an additional embodiment, the user may be given the ability to navigate back up to correct the pin. Previously selected numbers could be unselected, for example, by using one of the procedures for unselecting numbers described above.
In further embodiments, more rows of numbers may be displayed to the user than are needed to enter the PIN. For example, as the user navigates down through the rows of numbers, more rows of numbers may continue to be displayed, regardless of the PIN length. Accordingly, an additional layer of security may be added because the length of the PIN may not be readily apparent from the display. In such embodiments, the user may be required to indicate when he is done entering the PIN by, for example, giving a specific voice command or tapping the touchpad.
The HMD 504 may initially display a message to the user, indicating that the user may look up in order to initiate the unlock procedure, as shown in
As shown in
Further, in some embodiments, a computing device may visually present movement of the input region 402 with respect to the rows of numbers by moving the rows of numbers in the display, while keeping the input region at the same location in the display (e.g., in the center of the display). For instance, an HMD's display may effectively function as a viewing window to a portion of the rows of numbers, and the HMD may move the viewing window based on the head movement.
As the HMD 504 detects head movement, the HMD may move the rows of numbers with respect to the display, while keeping the input region 402 centered in the display. In particular, the HMD 504 may detect head movement to the left and responsively move the rows of numbers to the right in the display. Further, the HMD 504 may detect head movement downward and responsively move the rows of numbers upwards in the display. Accordingly, the position of the input region relative to the rows of numbers may be controlled by user head movements, as shown by the change in position of the input region relative to the rows of numbers between the screenshot in
As shown in
As the user of the HMD 504 tilts his head 502 downward, the angle 506 of his head above parallel decreases, as shown between
In additional embodiments, the HMD 504 may be designed to ignore minor upward and downward movements of the user's head 502 in order to improve the user experience. For example, a user's head movement may be required to be above a certain threshold angle and/or beyond a certain threshold speed in order to cause of a movement of the input region 402 relative to the rows of numbers. In a further embodiment, the input region 402 may always be locked in to a single row of numbers. Accordingly, the user may be required to move his head 502 downward or upward beyond a certain threshold angle in order to move the input region 402 vertically from the middle of one row of numbers to the middle of the next row of numbers. Further, the row containing the input region in this example embodiment may be highlighted or otherwise graphically indicated to the user.
Similarly, the HMD 504 may be designed to ignore minor movements of the user's head 502 to the left and right. For example, a user's head movement may be required to be above a certain threshold angle and/or beyond a certain threshold speed in order to cause of a movement of the input region 402 left or right within a row of numbers. In a further embodiment, the input region 402 may always be locked in to a single number within a row of numbers. Accordingly, the user may be required to move his head 502 to the left or right beyond a certain threshold angle in order to move the input region 402 horizontally from the middle of one number to the middle of a neighboring number in the row. Further, the input region in this example embodiment may simply highlight or otherwise graphically indicate to the user the number currently covered by the input region.
After a number in the first row of numbers has been selected, the HMD 504 may then detect additional head movements to the left and to the right as the user navigates the input region 402 horizontally across the numbers within a given row of numbers. In particular, the HMD 504 may detect head movement to the left and responsively move the rows of numbers to the right in the display. Further, the HMD 504 may detect head movement to the right and responsively move the rows of numbers to the left in the display. In an example embodiment, the input region may be prevented from moving past the last number on each of end of the rows of numbers.
Additionally, the HMD 504 may detect further head movement downward and responsively move the rows of numbers upwards in the display. Numbers may be selected from the rows of numbers based on where the input region 402 crosses each row of numbers.
In an example embodiment, the angle 506 of the user's head 502 above parallel may control the vertical position of the input region 402 relative to the rows of numbers in the display such that when the user has selected all of the numbers required to enter the PIN, the user will have moved his head 502 back to horizontal. Accordingly,
Note that while the illustrated unlock sequence entered contains a sequence of four numbers selected from four rows of numbers, the length of the unlock sequence and the number of rows displayed to the user may vary, depending upon the particular implementation.
In additional embodiments, the display may require the user to select numbers for the PIN by moving his head in a different direction than up-to-down. For example, the user may be required to look down to initiate the unlock sequence and may then be required to navigate up through the rows of numbers to select the PIN. Alternatively, the rows of numbers may be presented vertically to the user. Then, the user may be required to look to the left to initiate the unlock procedure and then move his head to the right to traverse the vertical rows (columns) of numbers and select the PIN.
The HMD may initially display a message to the user, indicating that the user may look left in order to initiate the unlock procedure, as shown in
As the HMD detects head movement, the HMD may move the columns of numbers with respect to the display, while keeping the input region 602 centered in the display. In particular, the HMD may detect head movement upward and responsively move the columns of numbers down in the display. Further, the HMD may detect head movement to the right and responsively move the columns of numbers to the left in the display. Accordingly, the position of the input region relative to the columns of numbers may be controlled by user head movements, as shown by the change in position of the input region relative to the columns of numbers between the screenshot in
The HMD may then detect additional head movements up and down as the user navigates the input region 602 vertically across the numbers within a given column of numbers. In particular, the HMD may detect head movement upward and responsively move the columns of numbers down in the display. Further, the HMD may detect head movement downward and responsively move the columns of numbers up in the display. In an example embodiment, the input region 602 may be prevented from moving past the last number on the top and bottom of each of the columns of numbers.
Additionally, the HMD may detect further head movement to the right and responsively move the columns of numbers to the left in the display. Numbers may be selected from the columns of numbers based on where the input region 602 crosses each column of numbers.
In another embodiment, the rows of numbers may be presented to the user vertically as columns, but the user may be required to navigate right-to-left. Accordingly, the user may be required to look to the right past a certain angle to initiate the unlock procedure. Columns may then be displayed to the user so that the user may navigate to the left through the columns in order to select the PIN numbers.
In further embodiments, the rows may be presented to the user as curved arcs (e.g., arcs of a circle) rather than straight lines. Head movements in a direction along one of the arcs may determine the location of the input region within a row. Further, head movements in a direction across the arcs may determine which row contains the input region. Different degrees of curvature may be used for the arcs. Additionally, the arcs may be arranged vertically, horizontally, or along a different direction. In some examples, traversing the numbers in an arc may require less head movement than traversing numbers in a straight row.
In additional embodiments, the user may be able to use a touch-based interface, such as a touchpad or touchscreen, to navigate through the rows of numbers to select a PIN. For instance, an HMD such as HMD 172 of
In a further aspect, the size and or shape of the input region may vary. Similarly, the graphical representation of the input region in a lock screen may vary. For instance, while
In another aspect, the PIN could include other types of characters and/or symbols (e.g., letters, punctuation, and so on), in addition or in the alternative to numbers. For example, the PIN may be made up only of letters, in which case the rows of characters displayed to the user may only contain letters. In an alternative embodiment, the PIN may be made up of a combination of letters and numbers, in which case the rows of characters displayed to the user may contain both letters and numbers. Other combinations are also possible.
In an additional aspect, each row of characters may contain the same set of characters. Alternatively, each row of characters may contain a subset of the set of characters. For example, perhaps only four numbers selected from the set of ten single-digit numbers are displayed in each row. Each row could then contain the number needed for the PIN and three additional random numbers selected from the full set, for example.
Further, the rows of characters may be displayed in a sequential order or in some other order. For example, the order of each row of characters could be randomized. Alternatively, the order of the characters in each row may be sequential but the first character in the row (and thus the starting point of the sequence) could be randomized. Other methods of ordering the characters in the rows are also possible. These different methods could be an optional feature, providing the user with the option of possibly having improved security at a cost of increased time to unlock the device.
In further embodiments, when an attempt to input an unlock sequence is determined to have failed (e.g., when an input sequence does not match the predetermined unlock sequence), a computing device may reset the lock screen and allow one or more additional attempts to input the unlock sequence. Further, a computing device may implement a process that provides additional security in the event of multiple unsuccessful attempts to input the unlock sequence. For example, after a certain number of unsuccessful attempts, the computing device may responsively disable the lock-screen for a certain period of time (referred to herein as a “lockout period”), such that the user cannot unlock the device.
Further, if additional unsuccessful attempts are made after the lockout period ends, the computing device may increase the duration of a subsequent lockout period. As a specific example, a computing device could lock a user out for one minute after five unsuccessful attempts, for an hour after five more unsuccessful attempts (e.g., ten unsuccessful attempts in total), for a day after five more unsuccessful attempts (e.g., fifteen unsuccessful attempts in total), and so on. Other examples are also possible.
In another aspect, a computing device may provide audio feedback indicating when the user has correctly inputted each number in an unlock sequence. Additionally or alternatively, a computing device may provide audio feedback indicating when the user has correctly provided the entire sequence making up the unlock sequence and/or indicating when the user has made an error.
While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.