The disclosure relates to graphical user interfaces and, more particularly, to systems and methods for providing graphical user interfaces for three-dimensional (3D) objects.
Existing technology for enhancing the realisms and naturalness of the graphical user interface (GUI) often includes adding three-dimensional (3D) hints into the graphics rendering of the GUI, such as reflection effect, drop shadow effect, etc. However, these 3D hints do not render a perception of a 3D scene in a virtual 3D space surrounding a user, and thus are often found unsatisfactory for providing a realistic feeling of the GUI.
Moreover, when a two-dimensional (2D) display device is used to display 3D objects, existing 3D hand input devices are not capable to provide an intuitive user interface that allows a user to control or interact with the virtual 3D objects displayed on the 2D display in a natural and direct manner.
Therefore, there is a need for a graphical user interface that provides realistic depiction of a 3D scene and also allows a user to interact with displayed 3D objects in a natural way.
The present disclosure provides a system for providing a graphical user interface. Consistent with some embodiments, the system includes a display, at least one imaging sensor configured to capture at least one image associated with a user, one or more processors, and a memory for storing instructions executable by the one or more processors. The one or more processors may be configured to detect a gesture of a target part of the user based on the at least one image, and determine, based on the gesture of the target part of the user, 3D coordinates of at least one 3D object in a 3D coordinate system. The 3D coordinate system may be associated with a virtual 3D space perceived by the user. The one or more processors may be further configured to perform a projection of the at least one 3D object onto the display based on the 3D coordinates and render the at least one 3D object on the display according to the projection.
Consistent with some embodiments, this disclosure provides a method for providing a graphical user interface. The method includes detecting a gesture of a target part of a user based on at least one image associated with the user, and determining, based on the gesture of the target part of the user, 3D coordinates of at least one 3D object in a 3D coordinate system. The 3D coordinate system may be associated with a virtual 3D space perceived by the user. The method may further include performing a projection of the at least one 3D object onto a display based on the 3D coordinates and rendering the at least one 3D object on the display according to the projection.
Consistent with some embodiments, this disclosure provides a non-transitory computer-readable storage medium storing program instructions executable by one or more processors to perform a method for providing a graphical user interface. The method includes detecting a gesture of a target part of a user based on at least one image associated with the user, and determining, based on the gesture of the target part of the user, 3D coordinates of at least one 3D object in a 3D coordinate system. The 3D coordinate system may be associated with a virtual 3D space perceived by the user. The method may further include performing a projection of the at least one 3D object onto a display based on the 3D coordinates and rendering the at least one 3D object on the display according to the projection.
Additional objects and advantages of the present disclosure will be set forth in part in the following detailed description, and in part will be obvious from the description, or may be learned by practice of the present disclosure. The objects and advantages of the present disclosure will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
Exemplary embodiments are described with reference to the accompanying drawings. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. Wherever convenient, the same reference numbers are used throughout the drawings to refer to the same or like parts. While examples and features of disclosed principles are described herein, modifications, adaptations, and other implementations are possible without departing from the spirit and scope of the disclosed embodiments. Also, the words “comprising,” “having,” “containing,” and “including,” and other similar forms are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. It is intended that the following detailed description be considered as exemplary only, with the true scope and spirit being indicated by the following claims.
The illustrated components and steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.
The sensing device 101 is configured to sense a user gesture and transfer the detected user gesture to the computer 115, for example, via the driver 110 installed on the computer 115. The user gesture may be, for example, a gesture made by a head 103 of a user and/or a hand 104 of a user. The user gesture may be made in the air without any physical contact with the computer 115, the sensing device 101, or the display 102. In some embodiments, the sensing device 101 may include one or more imaging sensors configured to capture images of the user. The output provided by the sensing device 101 may include, for example, images depicting gestures of a target part of the user, for example, the head 103 and/or the hand 104 of the user. The sensing device 101 may be connected to the computer 115 through a wired connection, such as a Universal Serial Bus (USB) connection, or through a wireless connection, such as Wi-Fi, Bluetooth, etc. In some embodiments, the sensing device 101 may be implemented as an integrated part of the computer 115 or as an integrated part of the display 102. In other embodiments, the sensing device 101 may be implemented as a standalone external device with an interface to connect to the computer 115.
Consistent with embodiments of the disclosure, the sensing device 101 may include one or more imaging sensors, such as cameras. The imaging sensors may be visible light imaging sensors which are more responsive to visible light, or infrared (IR) imaging sensors which are more responsive to IR light. The sensing device 101 may also include one or more illumination sources, which provide illumination in various wavelengths according to the type of the imaging sensors. The illumination sources may be, for example, light-emitting diodes (LED's) or lasers equipped with diffusers. In some embodiments, the illumination sources may be omitted and the imaging sensors detect the environmental light reflected by an object or the light emitted by an object.
In some embodiments, multiple sensing devices may be included in the interactive system 100. Each of the sensing devices may be configured to detect a gesture relating to a portion of a target part of the user. For example, the target part of the user may include the user's head and hand. Thus, one sensing device may be configured to detect a gesture of a user's head, and another sensing device may be configured to detect a gesture of a user's hand.
The sensing device driver 110 controls the operation of the sensing device 101. The sensing device driver 110 receives input, e.g., the images containing user gestures, from the sensing device 101, and outputs the received information of the user gestures to the signal processing module 111. The signal processing software 111 reads the output from driver 110, and processes such information to output the 3D tracking result of user's head, hand, and/or fingers. In some embodiments, the output of the signal processing module 111 may include the 3D position, orientation, or moving direction of a target part of the user including, for example, user's head, fingers, hand palm, and/or hand. The signal processing module 111 may implement various tracking head and hand tracking methods, such as active shape method and/or active appear method for heading tracking, image database search method, feature recognition and tracking method, contour analysis method for hand tracking, and the like. The signal processing module 111 may also implement other detection and tracking methods known to persons skilled in the relevant art(s), which are not described in the present disclosure.
The applications 114 receives 3D tracking result of user's head, hand, and/or fingers, updates the internal state and graphical user interface (GUI), and renders the resulting graphics to the display 102. For example, the applications 114 may store programs for determining 3D coordinates of 3D objects in a virtual 3D space around the user based on the tracking result of a target part of a user. As another example, the applications 114 may store programs for projecting 3D objects onto the display 102 such that the user perceives the 3D objects at certain positions in a virtual 3D space surrounding the user. The display 102 may receive audio and/or visual signals from the computer 115 and output the audio and/or visual signals to the user. The display 102 may be connected to the computer 115 via, for example, an S-Video cable, a coaxial cable, an HDMI cable, a DVI cable, a VGA cable, or the like. The display 102 may be configured to display 3D objects and produce a 3D effect as a user looks into the display screen. The display 102 may also be configured to display 2D images in a 2D plane.
The CPU 112 may include one or more processors and may be configured to execute instructions associated with operations of the computer 115. Additionally, the CPU 112 may execute certain instructions and commands stored in the memory 113, and/or the applications 114, to provide a graphical user interface, for example, via the display 102. The CPU 112 may include a microprocessor, such as AMD Athlon, Duron or Opteron, ARM's application, embedded or secure processors, IBM PowerPC, Intel's Core, Itanium, Xeon, Celeron or other line of processors, etc. The CPU 112 may be implemented using mainframe, distributed processor, multi-core, parallel, grid, or other architectures. Some embodiments may utilize embedded technologies like application-specific integrated circuits (ASICs), digital signal processors (DSPs), Field Programmable Gate Arrays (FPGAs), etc.
The memory 113 may store a collection of program or database components, including, without limitation, an operating system, one or more applications 114, user/application data (e.g., any data representing user gestures or data representing coordinates of 3D objects discussed in this disclosure), etc. Operating system may facilitate resource management and operation of the computer 115. Examples of operating systems include, without limitation, Apple Macintosh OS X, Unix, Unix-like system distributions (e.g., Berkeley Software Distribution (BSD), FreeBSD, NetBSD, OpenBSD, etc.), Linux distributions (e.g., Red Hat, Ubuntu, Kubuntu, etc.), IBM OS/2, Microsoft Windows (XP, Vista/7/8, etc.), Apple iOS, Google Android, Blackberry OS, or the like.
The computer 115 may also include other auxiliary components, such as an input/output (I/O) interface for communicating with the sensing device 101, the display 102, or other I/O devices. The I/O interface may employ communication protocols/methods such as, without limitation, audio, analog, digital, monoaural, RCA, stereo, IEEE-1394, serial bus, USB, infrared, PS/2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMI), RF antennas, S-Video, VGA, IEEE 802.11 a/b/g/n/x, Bluetooth, cellular (e.g., code-division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long-term evolution (LTE), WiMax, or the like), etc. The computer 115 may also include random access memory (RAM), read only memory (ROM), secondary storage (for example, a hard disk drive or flash memory), and so on. One skilled in the art will readily appreciate that various other components can also be included in the computer 115.
In some embodiments, the sensing device 101 may be integrated into the computer 115, i.e., may be part of the computer 115. As shown in
In some embodiments, the sensing device 101 may include multiple imaging sensors. As shown in
The sensing device 101 may be configured to capture images containing a target part of the user, such as the user's hand and head, and provide the captured images to the computer 115. The computer 115 may detect the gesture of the user based on the captured images and adjust the rendering of a 3D scene to provide a natural representation to the user.
For example, the computer 115 may implement head detection and tracking methods to detect user's head 103 in the image 116 and obtain information of the pose of the user's head 103. In some embodiments, the information of the gesture of the user's head 103 may include both 3D position and 3D orientation of the user's head, providing 6 degree of freedom (DOF) information of head's gesture. The head tracking methods may include the active shape method, the active appear method, or other head tracking methods known to persons skilled in the relevant art.
The computer 115 may also implement hand detection and tracking methods to detect user's hand 104 in the image 116 and obtain information of the gesture of the user's hand 104. In some embodiments, the information of the gesture of the user's hand 104 may include both 3D position and 3D orientation of the user's hand, providing 6 DOF information of the hand's gesture. Further, the information of the gesture of the user's hand 104 may include both 3D position and 3D orientation of each finger, providing 6 DOF information of each finger. Thus, a total of 36 degree of freedom information may be obtained for the user's hand 104. The hand tracking methods may include the image database search method, the feature recognition and tracking method, contour analysis method, or other hand tracking methods known to persons skilled in the relevant art.
After obtaining the information about the user's gesture, the computer 115 may convert the 3D position and 3D orientation of the user's hand and/or head into 3D coordinates of a virtual 3D space perceived by the user. The computer 115 may adjust the 3D rendering result accordingly to provide a user interface that suits the user's point of view.
In some embodiments, the 3D position of the user's left eye and right eye may be determined based on the user's head 3D position and 3D orientation. When the display 102 is a stereo display, the computer 115 may use the user's left eye position to render the view for left eye, and use the user's right eye position to render the view for right eye. When the display 102 is a 2D display, the computer 115 may use the average of left eye position and right eye position to render the 3D scene.
As described above, the gestures of a user's head and hand may be captured by the sensing device 101 and detected by the computer 115. The computer 115 may convert the detected user gestures into coordinates in the coordinate system Rw associate with the virtual 3D space. In some embodiments, the detected user gestures may then be used to control and interact with the 3D objects in the virtual 3D space perceived by the user.
In other embodiments, a direct interaction with the 3D object in the virtual 3D space may be required to select the 3D object. For example, the user's hand or finger may need to be placed at a position overlapping with the 3D object in the virtual 3D space to perform a selection of the 3D object. In other words, when the user's hand or finger virtually touches the 3D object in the virtual 3D space, the 3D object may be selected. The direct interaction method may be combined with the remote selection method described in connection with
In some embodiments, when a selection of a 3D object is detected based on the user gestures captured by the sensing device, the interaction system may adjust the rendering of the 3D object to provide a realistic sensation to the user in the virtual 3D space.
In some embodiments, the moving speed of the selected 3D object in the virtual 3D space may be set based on the moving speed of the user's finger in the push action. For example, the faster the user's finger moves, the faster the selected 3D object may move towards the display in the virtual 3D space. In some implementations, the selected 3D object may be configured with an internal bouncing force that causes it to move in a direction towards the user. For example, when the user's finger moves at a reduced speed or stops moving, the internal bouncing force may cause the selected 3D object to pop out of the display towards the user in the virtual 3D space. Thus, the internal bouncing force counter balances the user's finger pushing force, providing the user a realistic sensation of a push button.
In some embodiments, the moving speed of the selected 3D object in the virtual 3D space may be set to be proportional to the difference between the force of the inward motion of the user's finger in the push action and the internal bouncing force of the selected 3D object. For example, the force of the inward motion may be determined to be greater if the user's finger moves faster, and consequently, the selected 3D object may move towards the display in the virtual 3D space at a faster speed.
The internal bouncing force may be set as a constant value that stays the same regardless of the stage of the movement of the selected 3D object. The internal bouncing force may be set to vary based on the stage of the movement of the selected 3D object, such as the moving distance of the selected 3D object relative to its initial position in the virtual 3D space. For example, the internal bouncing force of the selected 3D object may increase along with its continued movement towards the direction of the display.
At step 2502, the interactive system detects a gesture of a target part of a user based on at least one image associated with the user. The image may be captured by a sensing device included in the interactive system. The gesture of the target part of the user is performed in the air without physical contact with the components of the interactive system. The target part of the user may include a head of the user, a hand of the user, one or more fingers of the user, or the like.
At step 2504, the interactive system determines, based on the gesture of the target part of the user, 3D coordinates of at least one 3D object in a 3D coordinate system. The 3D coordinate system may be associated with a virtual 3D space perceived by the user. In some embodiments, the interactive system may detect a 3D position and a 3D orientation of the target part of the user in a 3D coordinate system associated with the imaging sensor, and convert the 3D position and the 3D orientation to a corresponding 3D position and a corresponding 3D orientation in the 3D coordinate system associated with the virtual 3D space.
At step 2506, the interactive system performs a projection of the at least one 3D object onto a display based on the 3D coordinates of the at least one 3D object in the 3D coordinate system. For example, the interactive system may determine a displaying position and a displaying property of the 3D object based on the desired perception of the 3D object in the virtual 3D space.
At step 2508, the interactive system renders the at least one 3D object on the display according to the projection. From the user's point of view, the 3D object is presented with a depth in the virtual 3D space. Thus, the interactive system may provide a graphical user interface that tracks the gesture of the user and presents the 3D object correspondingly in the virtual 3D space to suit the user's point of view.
In exemplary embodiments, there is further provided a non-transitory computer readable storage medium including instructions, such as the memory 113 including instructions executable by the CPU 112 in the computer 115, to perform the above-described methods. For example, the non-transitory computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disc, an optical data storage device, and the like.
The specification has described devices, methods, and systems for providing a graphical user interface. The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. Thus, these examples are presented herein for purposes of illustration, and not limitation. For example, steps or processes disclosed herein are not limited to being performed in the order described, but may be performed in any order, and some steps may be omitted, consistent with disclosed embodiments.
It is intended that the disclosure and examples be considered as exemplary only, with a true scope and spirit of disclosed embodiments being indicated by the following claims.
This application is a continuation-in-part application of application Ser. No. 14/462,324, titled “Interactive Input System and Method,” filed Aug. 18, 2014, which is a continuation-in-part application of application Ser. No. 14/034,286, titled “Interactive Input System and Method,” filed Sep. 23, 2013, which is based upon and claims the benefit of priority from Provisional Application No. 61/811,680, titled “3D and 2D Interactive Input System and Method,” filed on Apr. 12, 2013, and Provisional Application No. 61/841,864, titled “3D and 2D Interactive Input System and Method,” filed on Jul. 1, 2013. Application Ser. No. 14/462,324 is also based upon and claims the benefit of priority from Provisional Application No. 61/869,726, titled “3D and 2D Interactive Input System and Method,” filed on Aug. 25, 2013. This application is also based upon and claims the benefit of priority from Provisional Application No. 62/013,485, titled “User Interface and Interaction with Hand Tracking and Head Tracking,” filed on Jun. 17, 2014. The entire contents of all of the above-referenced applications are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62013485 | Jun 2014 | US | |
61869726 | Aug 2013 | US | |
61841864 | Jul 2013 | US | |
61811680 | Apr 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14462324 | Aug 2014 | US |
Child | 14741038 | US | |
Parent | 14034286 | Sep 2013 | US |
Child | 14462324 | US |