The field relates generally to user interfaces, and more particularly to techniques for entering information into or otherwise interacting with a user interface.
A wide variety of different user interfaces exist for inputting text or other information into to a processing device or system such as a computer, television, mobile telephone or gaming system. For example, some processing devices or systems incorporate gesture recognition (GR) functionality in order to allow a user to enter information using particular hand gestures. Unfortunately, conventional GR-based user interfaces are not particularly well suited for certain types of information entry, such as entering sequences of text characters. Possible alternatives for text entry in GR-based systems include but are not limited to traditional keypads, flow-keypads, or speech to text conversion. Nonetheless, a need exists for more efficient user interfaces that are well suited for use in entering text and other information in GR-based systems as well as in other types of devices and systems.
In one embodiment, a processing device comprising a processor coupled to a memory is configured to provide a user interface that includes a radial layout soft keypad. The radial layout soft keypad comprises a central region and one or more concentric groupings of keys arranged around the central region.
By way of example only, the one or more concentric groupings of keys may be arranged as multiple concentric circular rows of keys substantially surrounding the central region. In such an arrangement, all of the keys of the concentric circular rows may be simultaneously visible in the radial layout soft keypad.
In some embodiments, the radial layout soft keypad is presented on a display associated with the processing device and a user interacts with the radial layout soft keypad by making hand gestures in free space in a field of view of an image sensor without physically contacting the display.
A variety of different types of hand gestures may be used to interact with the radial layout soft keypad. For example, the processing device can be configured such that a gesture of a first type controls selection of a key and gestures of second and third types control acceptance and rejection of the selected key. At least a subset of these gestures may include respective flick gestures made using a pointing finger.
Embodiments of the invention will be illustrated herein in conjunction with exemplary information processing systems that include user interfaces for entry of text or other information using user gestures or other selection mechanisms. It should be understood, however, that embodiments of the invention are more generally applicable to any processing system or device in which it is desirable to provide an improved user interface for efficient entry of text or other information.
Accordingly, the term “soft keypad” as used herein is intended to be broadly construed, so as to encompass any of a wide variety of different arrangements of multiple actuatable keys that may be presented via at least a portion of a user interface. The keys are not limited to entry of text characters but are more generally applicable to entry of any type of input information that may be provided to a device or system via the user interface, including input commands and other control information.
Also, the term “key” as used herein is therefore intended to be broadly construed so as to encompass a wide variety of different arrangements of characters, commands and controls. A key may be part of a user interface that does not include a soft keypad, but instead is implemented using another type of arrangement of one or more keys.
The projection FOV 112 in the present embodiment is an FOV through which the radial layout soft keypad is projected onto the wall-mounted monitor 106, illustratively through a projection device associated with sensor 105, so as to be made visible to a user. Alternatively, such a projection device could be incorporated into the laptop or tablet PC 102, or the radial layout soft keypad could be displayed directly on a display of the laptop or tablet PC 102, in which case the wall-mounted monitor 106 could be eliminated.
Accordingly, the particular arrangement of PC 102, sensor 105 and wall-mounted monitor 106 is exemplary only, and other arrangements of these or alternative components may be used in other embodiments. Also, characteristics of this embodiment such as the configuration of the sensor or the FOVs are presented by way of illustrative example only, and should not be construed as limiting in any way. Alternative embodiments can utilize other types of sensors, possibly implemented in depth imagers, cameras or other similar devices, and the particular FOVs can be altered to satisfy the particular needs of a given application. As one example, the vertical sensor orientation illustrated in
The system 100 of
The laptop or tablet PC 102 in the system of
Although shown as a separate element in
A given processing device generally comprises a processor coupled to a memory. The processor executes software code stored in the memory in order to direct at least a portion of the operation of the corresponding system.
The processing device may but need not include a network interface that supports communication with other system elements over a network. Such a network in some embodiments may comprise a wide area network (WAN) such as the Internet, a local area network (LAN), a cellular network, or any other type of network, as well as combinations of multiple networks. The network interface may be implemented using one or more conventional transceivers.
The processor may comprise, for example, a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a central processing unit (CPU), an arithmetic logic unit (ALU), a digital signal processor (DSP), or other similar processing device component, as well as other types and arrangements of processing circuitry, in any combination.
The memory stores software code for execution by the processor in implementing portions of the functionality of the system, such as portions of the system as illustrated in
As indicated above, the processor of a given processing device may comprise portions or combinations of a microprocessor, ASIC, FPGA, CPU, ALU, DSP or other type of processing circuitry.
It should therefore be appreciated that embodiments of the invention may be implemented in the form of integrated circuits. In a given such integrated circuit implementation, identical die are typically formed in a repeated pattern on a surface of a semiconductor wafer. Each die includes, for example, at least a portion of a processing device as described herein, and may further include other structures or circuits. The individual die are cut or diced from the wafer, then packaged as an integrated circuit. One skilled in the art would know how to dice wafers and package die to produce integrated circuits. Integrated circuits so manufactured are considered embodiments of the invention.
Again, the particular configuration of information processing system of
As mentioned previously, the system 100 of
In the
As will become apparent, the use of the radial layout soft keypad and associated character selection mechanisms in illustrative embodiments provides improved text entry in GR-based systems as well as a wide variety of other types of systems and devices. For example, the radial layout soft keypad can be configured to provide enhanced character-oriented text entry in terms of factors such as character layout, motion-per-character selection, characters-per-minute, words-per-minute, and error rate.
Key selection in the present embodiment occurs automatically using cursor-motion-based convergence criteria relative to key position, removing the need for an additional gesture motion such as a poke to select the key.
Embodiments of the invention can incorporate logic to disambiguate which of multiple keys is most likely to have been the intended selection, possibly based on history data regarding previous user input. Such logic can be a beneficial augmentation to aid in the selection of characters using hand motion in free space.
Acceptance of a selected key involves angular or translational motion dragging a shadow key toward and over the central region.
Rejection of the selected key involves further angular or translational motion away from the central region and outside the outer circular bounds of the keypad.
For practiced users, a typing process using the radial layout soft keypad 200 approaches a fluid motion using only finger-point gesturing with angular motion. A similar key-selection mechanism involving angular or translational finger-point motions is used for selection, acceptance, and rejection of predicted words arranged outside the outer-right boundary of the keypad.
The radial layout soft keypad 200 as illustrated in
As shown in
In the exemplary radial layout soft keypad of
In other embodiments, alternative concentric groupings such as concentric arrangements of squares, ovals or other shapes may be used. The term “concentric” as used in this context should be understood to encompass partial surrounding arrangements of the type shown in
The two concentric circular rows of keys in the
A subset of the keys is illustratively presented with fixed assignments across all modes of operation. In the keypad 200, this subset of keys includes the darker shaded keys shown at the lower right and comprises common non-alphanumeric characters and functions including but not limited to space and backspace (BK). The size of these keys is increased relative to the size of the other keys, and the different shading is used, reflecting an expected higher frequency of selection. The use of increased key size and unique shading facilitates selection of those keys using hand motion in free space.
One or more keys of the keypad 200 that are illustratively configured with fixed assignments per mode can also but also supporting temporary dynamic reassignment based on past user interactions, external context or other factors, or combinations thereof. In one embodiment, these keys are positioned in a particular quadrant and utilize a unique shading, sizing or other characteristic(s) to denote dynamically assigned symbols or other characters, thereby conveying to the user that these keys have special value relative to other keys.
As indicated above, the radial layout soft keypad 200 is presented on a display such as wall-mounted monitor 106 and a user interacts with the radial layout soft keypad by making hand gestures in free space in the field of view 111 of image sensor 105 without physically contacting the display.
In some embodiments, a gesture of a first type controls selection of a given one of the keys and gestures of respective second and third types control respective acceptance and rejection of the selected key.
Thus, for example, with reference to
The particular key corresponding to the lowercase letter “r” is selected as the user attempts to type the word “gesture.” The portion of the word already typed by previous key selection and acceptance is shown in the central region 202 as “gestu.”
As illustrated for the selected key “r” in
In some embodiments, the gesture controlling acceptance of a selected key and the gesture controlling rejection of a selected key are detected based on motion characteristics in a plane substantially parallel to a plane of the display without requiring additional motion along an axis orthogonal to the plane of the display.
For example, detection of a gesture directing inward movement of a selected key toward the, central region 202 in the
Accordingly, the acceptance or rejection of a selected key in the
The radial layout soft keypad 200 therefore supports use of high velocity hand-centric angular gesture motion in free space toward the central region 202 or away from the central region 202 for accepting a key selection or rejecting a key selection, respectively. For example, angular or absolute motion in free space can be used to “drag” or otherwise position a selected key either within the central region 202 or within a peripheral region such as peripheral region 204 for acceptance of key selection or rejection of key selection, respectively. The motion characteristics distinguishing the above-noted flick gestures include, for example, motion velocity and acceleration.
The radial layout soft keypad 200 as illustrated in
Other types of annotations of the inner and outer boundaries may be used in other embodiments in order to emphasize the utility of the corresponding regions for respective acceptance or rejection of a selected key.
In some embodiments, the system is configured such that detection of a gesture directing inward movement of a selected key over the inner boundary 210 and into the central region 202 indicates acceptance of the selected key, and detection of a gesture directing outward movement of a selected key over the outer boundary 212 and into a peripheral region such as peripheral region 204 indicates rejection of the selected key.
The peripheral region 204 in the keypad 200 presents predicted words based on previous selected key acceptances by the user, such that the user can select one of the predicted words instead of typing the remainder of a given word. Thus, for example, the user in the example of
In the keypad 200 as shown in
As mentioned previously, the keypad 200 in this embodiment may be viewed as comprising four quadrants, with the inner and outer rows of keys substantially spanning first, second and third quadrants. The fourth quadrant includes a portion of only one of the two rows of keys. These fourth quadrant keys, as noted above, are shaded for emphasis in the figure and render common text characters including space, BK, @, and various punctuation marks, also referred to herein as “symbolic characters” or “non-alphanumeric characters,” or simply as “symbols.” In at least portions of the first and second quadrants, the inner row of keys renders additional text characters as illustrated. These and any other characters may be combined with predicted characters established using a character prediction algorithm.
The keypad 200 as illustrated in
The keypad 200 may be positioned arbitrarily in the graphical user interface of the system 100 and includes support for arbitrary scaling within the user interface. A finger-point gesture with angular or translational wrist motion is the primary mechanism of user interaction with the keypad. Key selection is based on cursor motion, specifically resulting from the monitoring of several weighted moving averages over the keypad. Upon selection, a shadow key representation of the selected key is rendered under the cursor, as illustrated for letter “r” in
As indicated above, selection of words is similar to selection of characters and includes motion-based selection followed by motion-based acceptance or rejection.
The particular layout of alphabetic and symbolic characters as illustrated in
Other embodiments can be implemented using a wide variety of other soft keypad layouts or more generally other user interfaces. Accordingly, embodiments of the invention are not limited to use with radial layouts or soft keypads of the type described above.
As noted previously, the keys need not correspond to text characters, but may instead represent other types of selectable commands or controls within a given system. For example, keys may be selected in a given system to invoke actions directly, to invoke actions on user interface elements underlying a central region of a radial layout, or to select mode of operation. A more particular example of the latter mode selection may involve selecting a particular tool from an application-specific toolbox.
Also, other definitions of acceptance and rejection subsequent to key selection may be used. For example, particular regions used for accepting or rejecting selected keys may be arranged in an arbitrary layout, or certain gestures can be assigned for acceptance or rejection of key selection. As a more particular example of an arrangement of the latter type, a rapid-angular finger-point motion classifiable as a finger-point-based swipe may be used to accept or reject depending on the velocity of the angular motion. Such a gesture may be considered a type of flick gesture as that term is broadly used herein.
It was mentioned above that a finger-point gesture with angular or translational wrist motion is one possible mechanism of user interaction with the keypad in the illustrative embodiment of
In the
The postprocessing module 514 provides at its output a subset of the classifier output illustratively comprising finger-point data or other similar data with associated position metadata. This subset of the classifier output is further processed in a finger-point motion filter 516 which generates as its outputs one or more filtered motion derived signals that are provided to an operating system (OS) specific cursor controller 518 having an associated OS/SDK 520, where SDK denotes software development kit and may comprise one or more application processing interfaces (APIs).
The OS/SDK 520 provides an OS-specific API for dispatch of cursor-position information as well as associated metadata comprising user interface event messages relating to the radial layout soft keypad 200. The event messages include, for example, cursor-enter-key events, cursor-over-key events, cursor-leave-key events, etc.
The soft keypad controller 522 of
DISABLED
ENABLED
ENABLED W_KEY_SEL
ENABLED W_KEYSEL_OUTER
ENABLED W_KEY_SEL_OK
ENABLED W_KEY_SEL_CANCEL
In the state names given above, “W” denotes the word “with” and “SEL” denotes the word “selection.” The DISABLED state is not explicitly shown in the state diagram 600, but generally denotes a state in which the radial layout soft keypad 200 is not active and therefore not available for use in processing gesture input. The five distinct ENABLED states listed above are shown in the state diagram 600 and are denoted by reference numerals 602, 604, 606, 608 and 610, respectively.
As indicated in the state diagram 600, from the ENABLED state 602 in which the radial layout soft keypad 200 is active and available for use in processing gesture input from a user, selection of a particular key causes the state machine to transition to the ENABLED W_KEY_SEL state 604, and selection of a particular word displayed in peripheral region 204 outside of outer boundary 212 causes the state machine to transition to the ENABLED W_KEY_SEL_OUTER state 606.
From the ENABLED W_KEY_SEL state 604, detection of gesture-based input indicating a dragging of the selected key and convergence within the central region 202 causes the state machine to transition to the ENABLED W_KEY_SEL_OK state 608, such that the selected key is accepted.
Also from the ENABLED W_KEY_SEL state 604, detection of gesture-based input indicating a dragging of the selected key and convergence beyond the outer boundary 212 causes the state machine to transition to the ENABLED W_KEY_SEL_CANCEL state 610, such that the selected key is rejected.
From the ENABLED W_KEY_SEL_OUTER state 606, detection of gesture-based input indicating a dragging of the selected word sufficiently far “out of bounds” beyond the peripheral region 204 causes the state machine to transition to the ENABLED W_KEYSEL_CANCEL state 610, such that the selected word is rejected.
Also from the ENABLED W_KEY_SEL_OUTER state 606, detection of gesture-based input indicating a dragging of the selected word within the outer boundary 212 causes the state machine to transition to the ENABLED W_KEY_SEL state 604, from which further dragging and convergence within the central region 202 causes a transition to the ENABLED W_KEY_SEL_OK state 608, such that the selected word is accepted. The selected word can also be rejected from the ENABLED W_KEY_SEL state 604, by further dragging and convergence beyond the outer boundary 212 causing a transition to the ENABLED W_KEY_SEL_CANCEL state 610.
After acceptance of a selected key or word in state 608 or rejection of a selected key or word in step 610, a timer is started that provides a specified “dead time” between consecutive instances of selection-acceptance or selection-rejection. After dead-time expiration in state 608 or state 610, the state machine returns to state 602 as indicated.
It is to be appreciated that the particular states shown in
Also, the particular components, operations and other functionality described above in conjunction with
In some embodiments, support for optical character recognition (OCR) functionality may be provided. For example, the central region of a radial layout soft keypad may be configured to support OCR. In one possible arrangement of this type, a user finger-point-based cursor may be used to “write” a character on the central region, resulting in a vector of historic position data useful for input into an OCR algorithm. This process may be extended to support a sequence of characters written on the central region. The radial layout soft keypad and associated selection mechanisms enhance the OCR functionality by providing a mechanism for error correction or selection of text characters not classifiable via the OCR algorithm.
A given embodiment of the invention can implement OCR functionality of the type described above using one or more additional processing operations to segment individual characters. For example, an OCR classifier can be configured to segment individual characters using white space or other features, taking into account the possibility that the vector of historic position data may not show “pen lifts” between letters and may contain overlapped letters separated in time.
Referring now to
The information processing system 700 comprises an image processor 702 that is configured for communication with a network 704 and an image sensor 705. The image processor 702 is coupled via network 704 to a plurality of processing devices 706-1, 706-2, . . . 706-M. The image processor 702 implements a recognition subsystem 708 within a GR-based system 710. The GR-based system 710 in this embodiment processes input images from the image sensor 705 and generates corresponding GR-based output. The GR-based output may be utilized within the GR-based system 710 or supplied to one or more of the processing devices 706 or to other system components not specifically illustrated in this diagram. The radial layout soft keypad 200 is illustratively presented on a display associated with one of the processing devices 706, although it could alternatively be presented on a display associated with a processing device that implements the image processor 702.
The recognition subsystem 708 of GR-based system 710 more particularly comprises a static gesture recognition module 714 and a dynamic gesture recognition module 715. Additional recognition modules may be included, such as a recognition module configured to recognize cursor gestures.
The recognition subsystem 708 receives inputs from additional subsystems 716, which illustratively comprise one or more image processing subsystems configured to implement functional modules associated with gesture recognition in the GR-based system 710, such as, for example, functional modules for input frame acquisition, noise reduction, background estimation and removal, or other types of preprocessing. In some embodiments, the background estimation and removal block is implemented as a separate subsystem that is applied to an input image after a preprocessing module is applied to the image.
It should be understood, however, that these particular functional modules are exemplary only, and other embodiments of the invention can be configured using other arrangements of additional or alternative functional modules.
In the
Additionally or alternatively, the GR-based system 710 may provide GR events or other information, possibly generated by one or more of the GR applications 718, as GR-based output to one or more of the processing devices 706. In other embodiments, at least a portion of the set of GR applications 718 is implemented at least in part on one or more of the processing devices 706.
Portions of the GR-based system 710 may be implemented using separate processing layers of the image processor 702. These processing layers comprise at least a portion of what is more generally referred to herein as “image processing circuitry” of the image processor 702. For example, the image processor 702 may comprise a preprocessing layer implementing a preprocessing module and a plurality of higher processing layers for performing other functions associated with recognition of gestures within frames of an input image stream from the image sensor 705. Such processing layers may also be implemented in the form of respective subsystems of the GR-based system 710.
It should be noted, however, that GR-based embodiments of the invention are not limited to recognition of static or dynamic hand gestures, but can instead be adapted for use in a wide variety of other machine vision applications involving gesture recognition, and may comprise different numbers, types and arrangements of modules, subsystems, processing layers and associated functional blocks.
For example, as mentioned previously, embodiments of the invention can be implemented without a radial layout soft keypad, possibly using flick gestures or other gestures of the type described above, in conjunction with other types of user interfaces. In some arrangements without a radial layout soft keypad, a single control or a group of controls associated with a given user interface can be actuated by bringing a gesture-controlled cursor proximate to the control(s) so as to cause the control(s) to “stick” to the cursor and then utilizing a flick up or flick down gesture to either accept or reject the control(s).
Also, certain processing operations associated with the image processor 702 in the present embodiment may instead be implemented at least in part on other devices in other embodiments. For example, preprocessing operations may be implemented at least in part in the image sensor 705. It is also possible that one or more of the applications 718 may be implemented on a different processing device than the subsystems 708 and 716, such as one of the processing devices 706.
Moreover, it is to be appreciated that the image processor 702 may itself comprise multiple distinct processing devices, such that different portions of the GR-based system 710 are implemented using two or more processing devices. The term “image processor” as used herein is intended to be broadly construed so as to encompass these and other arrangements.
It should also be noted that the image processor 702 may be at least partially combined with the image sensor 705 on a common processing device.
In the present embodiment, the GR-based system 710 of image processor 702 is configured to recognize hand gestures, although this embodiment can be adapted in a straightforward manner for use with other types of gesture recognition processes.
The particular arrangement of subsystems, applications and other components shown in image processor 702 in the
The processing devices 706 may comprise, for example, computers, mobile phones, servers or storage devices, in any combination. One or more such devices also may include, for example, display screens or other user interfaces that are utilized to present images generated by the image processor 702. The processing devices 706 may therefore comprise a wide variety of different destination devices that receive GR-based output from the image processor 702 over the network 704, including by way of example at least one server or storage device that receives one or more processed image streams from the image processor 702.
Although shown as being separate from the processing devices 706 in the present embodiment, the image processor 702 may be at least partially combined with one or more of the processing devices 706. Thus, for example, the image processor 702 may be implemented at least in part using a given one of the processing devices 706. As a more particular example, a computer or mobile phone may be configured to incorporate the image processor 702 and possibly a given image source such as image sensor 705. Image sources utilized to provide input images in the information processing system 700 may therefore comprise cameras or other imagers associated with a computer, mobile phone or other processing device. As indicated previously, the image processor 702 may be at least partially combined with one or more image sources or image destinations on a common processing device.
The image processor 702 in the present embodiment is assumed to be implemented using at least one processing device and comprises a processor 720 coupled to a memory 722. The processor 720 executes software code stored in the memory 722 in order to control the performance of image processing operations. The image processor 702 also comprises a network interface 724 that supports communication over network 704. The network interface 724 comprises one or more conventional transceivers. In other embodiments, the image processor 702 need not be configured for communication with other devices over a network, and in such embodiments the network interface 724 may be eliminated.
The processor 720 may comprise, for example, a microprocessor, an ASIC, an FPGA, a CPU, an ALU, a DSP, or other similar processing device component, as well as other types and arrangements of image processing circuitry, in any combination.
The memory 722 stores software code for execution by the processor 720 in implementing portions of the functionality of image processor 702, such as the subsystems 708 and 716 and the GR applications 718. As mentioned previously, a given such memory that stores software code for execution by a corresponding processor is an example of what is more generally referred to herein as a computer-readable storage medium having computer program code embodied therein, and may comprise, for example, electronic memory such as RAM or ROM, magnetic memory, optical memory, or other types of storage devices in any combination. Articles of manufacture comprising such computer-readable storage media are considered embodiments of the invention. The telling “article of manufacture” as used herein should be understood to exclude transitory, propagating signals.
The particular configuration of information processing system 700 as shown in
For example, in some embodiments, the information processing system 700 is implemented as a video gaming system or other type of GR-based system that processes image streams in order to recognize user gestures. The disclosed techniques can be similarly adapted for use in a wide variety of other systems requiring a gesture-based human-machine interface, and can also be applied to other applications, such as machine vision systems in robotics and other industrial applications that utilize gesture recognition.
Also, as indicated above, GR-based embodiments of the invention are not limited to use in recognition of hand gestures, but can be applied to other types of gestures as well. The term “gesture” as used herein is therefore intended to be broadly construed.
It should be noted that various aspects of the above-described embodiments may be used separately from others in alternative embodiments. For example, the particular gestures used for key selection, acceptance and rejection as disclosed herein may be used with many different arrangements of actuatable keys. Similarly, radial layout soft keypads of the type illustrated in
It should again be emphasized that the embodiments of the invention as described herein are intended to be illustrative only. For example, other embodiments of the invention can be implemented utilizing a wide variety of different types and arrangements of information processing systems, processing devices and processing operations than those utilized in the particular embodiments described herein. In addition, the particular assumptions made herein in the context of describing certain embodiments need not apply in other embodiments. These and numerous other alternative embodiments within the scope of the following claims will be readily apparent to those skilled in the art.
The present application claims the priority of U.S. Provisional Patent Application Ser. No. 61/837,604, filed Jun. 20, 2013, the disclosure of which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
61837604 | Jun 2013 | US |