System for automatic eye tracking calibration of head mounted display device
Claim Score by NHIP
Abstract
A method of automatically calibrating a head mounted display for a user is disclosed. The method includes automatically calculating an inter-pupillary distance value for the user, comparing the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determining if the automatically calculated inter-pupillary distance value matches the preexisting inter-pupillary distance value, and automatically calibrating the head mounted display using calibration data associated with matching previously determined inter-pupillary distance value.

Term
Projected expiry 12 November 2034.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 72, broad(NHIP)A method of automatically calibrating a head mounted display device for a user, the method comprising:automatically calculating an inter-pupillary distance value for the user;comparing the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value;determining if the automatically calculated inter-pupillary distance value matches the preexisting inter-pupillary distance value;and automatically calibrating the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
- 10A head mounted display device comprising:an eye position and tracking assembly configured to automatically calculate an inter-pupillary distance value for the user;and a processor configured to: compare the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value;determine if the automatically calculated inter-pupillary distance value matches, within a predetermined tolerance, the preexisting inter-pupillary distance value;and automatically calibrate the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
- 16An apparatus comprising:a computer system that provides an electronic signal representing image data;and a head-mounted display device that provides image data in response to the electronic signal, wherein the head-mounted display device includes: an eye position and tracking assembly configured to automatically calculate an inter-pupillary distance value for the user;and a processor configured to: compare the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value;determine if the automatically calculated inter-pupillary distance value matches, within a predetermined tolerance, the preexisting inter-pupillary distance value;and automatically calibrate the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
Independent claims3
178 paragraphs in 4 sections, as filed
0001Mixed reality is a technology that allows holographic, or virtual, imagery to be mixed with a real world physical environment. A see-through, head mounted display device may be worn by a user to view the mixed imagery of real objects and virtual objects displayed in the user's field of view.
0002A head mounted display device may include eye tracking technology to track the position of the user's eyes. To accurately use the eye tracking technology, a user performs an eye tracking calibration process to generate eye tracking calibration data. The eye tracking calibration data are unique to each user, and may be time-consuming to create.
0003In many instances, multiple users may use a single head mounted display device. For example, members of a family or a group of friends may share one or more head mounted display devices. It is desirable that a head mounted display device may be easily shared between multiple users without having to perform eye tracking calibration each time the head mounted display device is passed from user to user.
SUMMARY
0004In an example, the present technology relates to a method of automatically calibrating a head mounted display device for a user, the method comprising automatically calculating an inter-pupillary distance value for the user, comparing the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determining if the automatically calculated inter-pupillary distance value matches the preexisting inter-pupillary distance value, and automatically calibrating the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
0005In a further example, the present technology relates to a head mounted display device that includes an eye position and tracking assembly and a processor. The eye position and tracking assembly is configured to automatically calculate an inter-pupillary distance value for the user. The processor is configured to compare the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determine if the automatically calculated inter-pupillary distance value matches, within a predetermined tolerance, the preexisting inter-pupillary distance value, and automatically calibrate the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
0006In another example, the present technology relates to an apparatus that includes a computer system and a head-mounted display device. The computer system provides an electronic signal representing image data. and the head-mounted display device provides image data in response to the electronic signal. The head-mounted display device includes an eye position and tracking assembly and a processor. The eye position and tracking assembly is configured to automatically calculate an inter-pupillary distance value for the user. The processor is configured to compare the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determine if the automatically calculated inter-pupillary distance value matches, within a predetermined tolerance, the preexisting inter-pupillary distance value, and automatically calibrate the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
0007This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
0008<figref idref="DRAWINGS">FIG. 1</figref> illustrates example components of an embodiment of a system for presenting a mixed reality environment to one or more users.
0009<figref idref="DRAWINGS">FIG. 2</figref> is a perspective view of an embodiment of a head mounted display unit.
0010<figref idref="DRAWINGS">FIG. 3</figref> is a top view of a portion of an embodiment of a head mounted display unit.
0011<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram of an embodiment of components of a head mounted display unit.
0012<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram of an embodiment of components of a processing unit associated with a head mounted display unit.
0013<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram of an embodiment of components of a hub computing system used with a head mounted display unit.
0014<figref idref="DRAWINGS">FIG. 7</figref> is a block diagram of an embodiment of a computing system that can be used to implement the hub computing system described herein.
0015<figref idref="DRAWINGS">FIG. 8</figref> is a flowchart illustrating an embodiment of an eye tracking calibration identification process.
0016<figref idref="DRAWINGS">FIG. 9A</figref> is a diagram illustrating an example database of previous user data.
0017<figref idref="DRAWINGS">FIG. 9B</figref> is another diagram illustrating an example database of previous user data.
0018<figref idref="DRAWINGS">FIG. 10</figref> is a flowchart illustrating an embodiment of a new user calibration process.
0019<figref idref="DRAWINGS">FIG. 11</figref> is a flowchart illustrating an embodiment of a user-identification process.
0020<figref idref="DRAWINGS">FIG. 12</figref> is a flowchart illustrating an embodiment of a visual detection process.
0021<figref idref="DRAWINGS">FIG. 13</figref> is a diagram depicting an embodiment of a user-identification display image.
DETAILED DESCRIPTION
0022Embodiments of the present technology automatically calibrate a head mounted display device. When a user puts on a head mounted display device, sensors in the device automatically calculate an interpupillary distance (“IPD”) value for the user. The head mounted display device uses the automatically calculated IPD value to identify the user, and retrieve stored eye tracking calibration data associated with the identified user.
0023In particular, if the automatically calculated IPD value uniquely matches a previously determined IPD value, the head mounted display device retrieves stored eye tracking calibration data associated with the uniquely matching previously determined IPD value. If the automatically calculated IPD value matches more than one previously determined IPD value, the head mounted display device disambiguates to determine which of the multiple matching previously determined IPD values corresponds to the user, and retrieves stored eye tracking calibration data associated with the disambiguated previously determined IPD value. The head mounted display device is automatically calibrated using the retrieved eye tracking calibration data.
0024A head mounted display device may be used to implement a mixed reality environment including real and virtual objects. The head mounted display device may include a display element. The display element may be transparent so that a user can look through the display element at real world objects within the user's field of view (FOV). The display element also provides the ability to project virtual images into the FOV of the user such that the virtual images may also appear alongside the real world objects. The system automatically tracks where the user is looking so that the system can determine where to insert the virtual image in the FOV of the user. Once the system knows where to project the virtual image, the image is projected using the display element.
0025<figref idref="DRAWINGS">FIG. 1</figref> illustrates a system <b>10</b> for providing a mixed reality experience by fusing a virtual object <b>21</b> with real content within a user's FOV. <figref idref="DRAWINGS">FIG. 1</figref> shows a user <b>18</b> wearing a head mounted display device <b>2</b> for viewing virtual objects such as virtual object <b>21</b>. In other embodiment, there may be more than one user <b>18</b>, each wearing a corresponding head mounted display device <b>2</b>. As depicted in <figref idref="DRAWINGS">FIGS. 2 and 3</figref>, head mounted display device <b>2</b> may include an integrated processing unit <b>4</b>. In other embodiments, processing unit <b>4</b> may be separate from head mounted display device <b>2</b>, and may communicate with head mounted display device <b>2</b> via wired or wireless communication. For example, in some embodiments, processing unit <b>4</b> may be in a separate unit which may be worn on the body or clothing of user <b>18</b>, e.g., the wrist, arm, chest or in a pocket.
0026Head mounted display device <b>2</b>, which in one embodiment is in the shape of eyeglasses, is worn on the head of user <b>18</b> so that user <b>18</b> can see through a display and thereby have an actual direct view of the space in front of the user. The use of the term “actual direct view” refers to the ability to see the real world objects directly with the human eye, rather than seeing created image representations of the objects. For example, looking through glass at a room allows a user to have an actual direct view of the room, whereas viewing a video of a room on a television is not an actual direct view of the room. More details of head mounted display device <b>2</b> are provided below.
0027Processing unit <b>4</b> may include much of the computing power used to operate head mounted display device <b>2</b>. In embodiments, processing unit <b>4</b> communicates wirelessly (e.g., WiFi, near-field communication (NFC), Bluetooth, infra-red (IR), or other wireless communication means) to one or more hub computing systems <b>12</b>. As explained hereinafter, hub computing system <b>12</b> may be provided remotely from processing unit <b>4</b>, so that hub computing system <b>12</b> and processing unit <b>4</b> communicate via a wireless network such as a LAN or WAN. In other embodiments, hub computing system <b>12</b> may be omitted to provide a mobile mixed reality experience using head mounted display devices <b>2</b> and processing units <b>4</b>.
0028Head mounted display device <b>2</b>, either by itself or in conjunction with hub computing system <b>12</b>, may provide a mixed reality experience where one or more virtual images, such as virtual object <b>21</b> in <figref idref="DRAWINGS">FIG. 1</figref>, may be mixed together with real world objects in a scene. <figref idref="DRAWINGS">FIG. 1</figref> illustrates examples of a plant <b>23</b> or a user's hand <b>24</b> as real world objects appearing within the FOV of user <b>18</b>.
0029Hub computing system <b>12</b> may be a computer, a gaming system or console, or the like. In an embodiment, hub computing system <b>12</b> may include hardware components and/or software components such that hub computing system <b>12</b> may be used to execute applications such as gaming applications, non-gaming applications, or the like. An application may be executing on hub computing system <b>12</b>, head mounted display device <b>2</b>, a mobile device or a combination of these.
0030In an embodiment, hub computing system <b>12</b> further includes one or more capture devices, such as capture devices <b>20</b><i>a </i>and <b>20</b><i>b</i>, which may be used to capture the room or other physical environment of user <b>18</b>, but are not necessary for use with head mounted display device <b>2</b> in all embodiments. Capture devices <b>20</b><i>a </i>and <b>20</b><i>b </i>may be, for example, cameras that visually monitor one or more users <b>18</b> and the surrounding space such that gestures and/or movements performed by one or more users <b>18</b>, as well as the structure of the surrounding space, may be captured, analyzed, and tracked to perform one or more controls or actions within an application and/or animate an avatar or on-screen character.
0031Hub computing system <b>12</b> may be connected to an audiovisual device <b>16</b> such as a television, a monitor, a tablet computer, a high-definition television (HDTV), or the like that may provide game or application visuals. In some embodiments, audiovisual device <b>16</b> may be a three-dimensional display device. Audiovisual device <b>16</b> may include internal speakers (not shown), and/or may be connected to external speakers <b>22</b>.
0032In various embodiments, the processes described herein are performed in whole or in part by head mounted display device <b>2</b>, processing unit <b>4</b>, hub computing system <b>12</b>, or a combination thereof. Note that head mounted display device <b>2</b> and processing unit <b>4</b> can be used without hub computing system <b>12</b>, in which case processing unit <b>4</b> will communicate with a WiFi network, a cellular network or other communication means.
0033In some embodiments, various sensor technologies embedded in head mounted display device <b>2</b>, including accelerometers and gyroscopes, global positioning systems, and eye tracking elements, may be used to determine a view direction of user <b>18</b>. User view direction means where the user is looking or what has the user's attention.
0034A user's view direction can be determined by head orientation and/or eye gaze. In some cases, head orientation and eye gaze are directed at the same point, and in other cases head orientation and eye gaze are directed at different points. For example, a user's head may be oriented in one direction (e.g., straight ahead), but their eye gaze may be in a different direction (e.g., off to the left). In such a case, head orientation may be used to define the view direction. Alternatively, the eye gaze could be used to determine the user's view direction when the two differ. As described in more detail below, various sensor technologies embedded in head mounted display device <b>2</b> may be used to determine a view direction of a user.
0035Other techniques may be used to determine the user's view direction. Such techniques could include time of flight, spatial scan, mechanical linkages, phase-difference sensing, and/or direct field sensing. In such cases, additional hardware may be included in head mounted display <b>2</b>.
0036In an embodiment, hub computing device <b>12</b> may be used to track user <b>18</b> and head mounted display device <b>2</b> to provide a preliminary determination of location and orientation of head mounted display device <b>2</b>. Various sensor technologies may be implemented in hub computing device <b>12</b> including RGB camera, depth sensor, and/or other technologies to determine location and orientation of head mounted display device <b>2</b>.
0037Additional information, such as information retrieved from the cloud, information detected and/or gathered by one or more external devices, and other information also may be used to identify and continuously track the user's head position and rotation. Techniques such as Simultaneous Localization and Mapping (SLAM) using RGB and/or depth sensor data may be employed to provide a real-time position of the user's head relative to the mapped environment. Environmental typography may be identified using data from the cloud and/or depth sensor data. Regions of the user's body also can be identified (e.g., hand, arm, torso, legs) using depth sensor data.
0038Not all sensor information and/or sensing technologies discussed above are required at all times. One or more sensors may be used as redundancies to further refine the measurement of the total field of view of the user.
0039<figref idref="DRAWINGS">FIGS. 2 and 3</figref> show various views of head mounted display device <b>2</b>. <figref idref="DRAWINGS">FIG. 3</figref> shows a top view of the right side of head mounted display device <b>2</b>, including a portion of the device having a temple <b>102</b> and a nose bridge <b>104</b>. A microphone <b>110</b> is built into nose bridge <b>104</b> for recording sounds and transmitting audio data to processing unit <b>4</b>, as described below. At the front of head mounted display device <b>2</b> is room-facing camera <b>112</b> that can capture video and still images. Those images are transmitted to processing unit <b>4</b>, as described below.
0040In an embodiment, room-facing camera <b>112</b> is a depth camera that may capture a depth image of a scene. A depth image may include a two-dimensional (2-D) pixel area of the captured scene where each pixel in the 2-D pixel area may represent a depth value such as a distance in, for example, centimeters, millimeters, or the like of an object in the captured scene. For example, the depth camera may include an IR illuminator transmitter and a hot reflecting surface like a hot mirror in front of the visible image sensor which lets the visible light pass and directs reflected IR radiation within a wavelength range transmitted by the illuminator to a CCD or other type of depth sensor. The data from the sensors may be sent to processing unit <b>4</b> or hub computing system <b>12</b> for processing. The processing identifies and maps the user's real world field of view. Additionally, room-facing camera <b>112</b> also may include a light meter for measuring ambient light.
0041A portion of the frame of head mounted display device <b>2</b> surrounds a display that includes one or more lenses. To depict the components of head mounted display device <b>2</b>, a portion of the frame surrounding the display is not depicted. The display includes light-guide optical element <b>115</b>, opacity filter <b>114</b>, see-through lens <b>116</b> and see-through lens <b>118</b>. In one embodiment, opacity filter <b>114</b> is behind and aligned with see-through lens <b>116</b>, light-guide optical element <b>115</b> is behind and aligned with opacity filter <b>114</b>, and see-through lens <b>118</b> is behind and aligned with light-guide optical element <b>115</b>. See-through lenses <b>116</b> and <b>118</b> are standard lenses used in eyeglasses and can be made to any prescription (including no prescription).
0042Control circuits <b>136</b> provide various electronics that support other components of head mounted display device <b>2</b>. More details of control circuits <b>136</b> are provided below with respect to <figref idref="DRAWINGS">FIG. 4</figref>. Inside or mounted to temple <b>102</b> are earphones <b>130</b>, inertial measurement unit <b>132</b> and temperature sensor <b>138</b>. In one embodiment shown in <figref idref="DRAWINGS">FIG. 4</figref>, inertial measurement unit <b>132</b> (or IMU <b>132</b>) includes inertial sensors such as a three axis magnetometer <b>132</b><i>a</i>, three axis gyro <b>132</b><i>b </i>and three axis accelerometer <b>132</b><i>c</i>. IMU <b>132</b> senses position, orientation, and sudden accelerations (pitch, roll and yaw) of head mounted display device <b>2</b>. IMU <b>132</b> may include other inertial sensors in addition to or instead of magnetometer <b>132</b><i>a</i>, gyro <b>132</b><i>b </i>and accelerometer <b>132</b><i>c. </i>
0043Microdisplay <b>120</b> projects an image through lens <b>122</b>. Various image generation technologies can be used to implement microdisplay <b>120</b>. For example, microdisplay <b>120</b> can be implemented using a transmissive projection technology where the light source is modulated by optically active material, backlit with white light. These technologies are usually implemented using LCD type displays with powerful backlights and high optical energy densities.
0044Microdisplay <b>120</b> also can be implemented using a reflective technology for which external light is reflected and modulated by an optically active material. The illumination is forward lit by either a white source or RGB source, depending on the technology. Digital light processing (DLP), liquid crystal on silicon (LCOS) and Mirasol® display technology from Qualcomm, Inc. are all examples of reflective technologies which are efficient, as most energy is reflected away from the modulated structure and may be used in the present system.
0045Additionally, microdisplay <b>120</b> can be implemented using an emissive technology where light is generated by the display. For example, a PicoP™ display engine from Microvision, Inc. emits a laser signal with a micro mirror steering either onto a tiny screen that acts as a transmissive element or beamed directly into the eye (e.g., laser).
0046Light-guide optical element <b>115</b> transmits light from microdisplay <b>120</b> to the eye <b>140</b> of user <b>18</b> wearing head mounted display device <b>2</b>. Light-guide optical element <b>115</b> also allows light from in front of head mounted display device <b>2</b> to be transmitted through light-guide optical element <b>115</b> to eye <b>140</b>, as depicted by arrow <b>142</b>. In this regard, user <b>18</b> can have an actual direct view of the space in front of head mounted display device <b>2</b>, and also receive a virtual image from microdisplay <b>120</b>. Thus, the walls of light-guide optical element <b>115</b> are see-through.
0047Light-guide optical element <b>115</b> includes a first reflecting surface <b>124</b> (e.g., a mirror or other surface). Light from microdisplay <b>120</b> passes through lens <b>122</b> and becomes incident on reflecting surface <b>124</b>. First reflecting surface <b>124</b> reflects the incident light from the microdisplay <b>120</b> such that light is trapped inside a planar substrate comprising light-guide optical element <b>115</b> by internal reflection. After several reflections off the surfaces of the substrate, the trapped light waves reach an array of selectively reflecting surfaces <b>126</b>.
0048One of the five surfaces is labeled <b>126</b> to prevent over-crowding of the drawing. Reflecting surfaces <b>126</b> couple the light waves incident upon those reflecting surfaces out of the substrate into eye <b>140</b> of the user. More details of a light-guide optical element can be found in U.S. Patent Publication No. 2008/0285140, entitled “Substrate-Guided Optical Devices,” published on Nov. 20, 2008.
0049In an embodiment, each eye will have its own light guide optical element <b>115</b>. If head mounted display device <b>2</b> has two light guide optical elements, each eye can have its own micro display <b>120</b> that can display the same image in both eyes or different images in the two eyes. In another embodiment, a single light guide optical element <b>115</b> may be used to reflect light into both eyes.
0050Opacity filter <b>114</b>, which is aligned with light guide optical element <b>115</b>, selectively blocks natural light, either uniformly or on a per-pixel basis, from passing through light guide optical element <b>115</b>. In an embodiment, opacity filter <b>114</b> can be a see-through LCD panel, electro chromic film, PDLC (Polymer Dispersed Liquid Crystal) or similar device which is capable of serving as an opacity filter. Such a see-through LCD panel can be obtained by removing various layers of substrate, backlight and diffusers from a conventional LCD. The LCD panel can include one or more light-transmissive LCD chips which allow light to pass through the liquid crystal. Such chips are used in LCD projectors, for instance.
0051Opacity filter <b>114</b> can include a dense grid of pixels, where the light transmissivity of each pixel is individually controllable between minimum and maximum transmissivities. In some embodiments, the transmissivity range may be between 0-100%, although more limited ranges also are acceptable. As an example, a monochrome LCD panel with no more than two polarizing filters is sufficient to provide an opacity range of about 50% to 99% per pixel, up to the resolution of the LCD. At the minimum of 50%, the lens will have a slightly tinted appearance, which is tolerable. 100% transmissivity represents a perfectly clear lens. An “alpha” scale can be defined from 0-100%, where 0% allows no light to pass and 100% allows all light to pass. The value of alpha can be set for each pixel by the opacity control circuit <b>224</b> described below.
0052A mask of alpha values can be used from a rendering pipeline, after z-buffering with proxies for real-world objects. When the system renders a scene for the augmented reality display, it takes note of which real-world objects are in front of which virtual objects. If a virtual object is in front of a real-world object, then the opacity should be ON for the coverage area of the virtual object. If the virtual is (virtually) behind a real-world object, then the opacity should be OFF, as well as any color for that pixel, so the user will only see the real-world object for that corresponding area (a pixel or more in size) of real light.
0053Coverage would be on a pixel-by-pixel basis, so the system could handle the case of part of a virtual object being in front of a real-world object, part of the virtual object being behind the real-world object, and part of the virtual object being coincident with the real-world object. Displays capable of going from 0% to 100% opacity at low cost, power, and weight may be used. Moreover, opacity filter <b>114</b> can be rendered in color, such as with a color LCD or with other displays such as organic LEDs, to provide a wide field of view. More details of an opacity filter are provided in U.S. patent application Ser. No. 12/887,426, “Opacity Filter For See-Through Mounted Display,” filed on Sep. 21, 2010.
0054Head mounted display device <b>2</b> also may include a system for locating and tracking the position of the user's eyes and eye gaze (a point at which a user's eyes are momentarily fixed). In an embodiment, this system includes an eye position and tracking assembly <b>134</b> (<figref idref="DRAWINGS">FIG. 3</figref>), which includes an eye tracking illumination device <b>134</b><i>a </i>and eye tracking sensor <b>134</b><i>b </i>(<figref idref="DRAWINGS">FIG. 4</figref>). In one embodiment, eye tracking illumination device <b>134</b><i>a </i>includes one or more IR emitters, which emit IR light toward the eye. In one embodiment, eye tracking sensor <b>134</b><i>b </i>includes one or more cameras that sense the reflected IR light. Alternatively, eye tracking sensor <b>134</b><i>b </i>may be an RGB or depth sensor. There may be multiple sensors <b>134</b><i>b </i>in embodiments.
0055The position of a user's eyes, and the pupils within the eyes, can be identified by known imaging techniques which detect the reflection of the cornea. For example, see U.S. Pat. No. 7,401,920, entitled “Head Mounted Eye Tracking and Display System,” issued Jul. 22, 2008. Such a technique can locate a position of the center of the eye relative to eye tracking sensor <b>134</b><i>b</i>. In embodiments, separate eye position and tracking assembly <b>134</b> are used for each of the left and right eyes so that a user's IPD may be determined.
0056In an embodiment, the system uses four IR LEDs and four IR photo detectors in rectangular arrangement so that there is one IR LED and IR photo detector at each corner of the lens of head mounted display device <b>2</b>. Light from the LEDs reflect off the eyes. The amount of IR light detected at each of the four IR photo detectors determines a position of the eye relative to eye tracking sensor <b>134</b><i>b</i>, as well as the pupil direction. In particular, the amount of white versus black in the eye will determine the amount of light reflected off the eye for that particular photo detector. Thus, the photo detector will have a measure of the amount of white or black in the eye. From the four samples, the system can determine the direction of the eye.
0057Another alternative is to use four IR LEDs as discussed above, but one IR CCD on the side of the lens of head mounted display device <b>2</b>. The CCD will use a small mirror and/or lens (fish eye) such that the CCD can image up to 75% of the visible eye from the eyeglass frame. The CCD will then sense an image and use computer vision to find the image, much like as discussed above. Thus, although <figref idref="DRAWINGS">FIG. 3</figref> shows one assembly with one IR transmitter, the structure of <figref idref="DRAWINGS">FIG. 3</figref> can be adjusted to have four IR transmitters and/or four IR sensors. More or less than four IR transmitters and/or four IR sensors also can be used.
0058Another embodiment for tracking the direction of the eyes is based on charge tracking. This concept is based on the observation that a retina carries a measurable positive charge and the cornea has a negative charge. Sensors are mounted by the user's ears (near earphones <b>130</b>) to detect the electrical potential while the eyes move around and effectively read out what the eyes are doing in real time. This provides both the position of a user's eyes relative to the head mounted display device, and the position of the user's pupils. Other embodiments for tracking eyes can also be used, such as those described in U.S. Patent Publication NO. 2012/0154277, “Optimized Focal Area for Augmented Reality Displays,” filed on Dec. 17, 2010.
0059Using any of the above-described embodiments, the eye position and tracking assembly <b>134</b> is able to determine a position of the user's left and right eyes relative to a position of eye position and tracking assembly <b>134</b>. Using the known position and geometry of eye position and tracking assembly <b>134</b> relative to light-guide optical elements <b>115</b>, the position of light-guide optical elements <b>115</b> relative to the user's left and right eyes also is known. This position includes a relative position of the eyes and the optical elements along an x-axis (e.g., horizontal positioning), a relative position of the eyes and optical elements along a y-axis (e.g., vertical positioning), and a relative position of the eyes and optical elements along a z-axis (e.g., a distance between the eyes and optical elements).
0060Once eye position and tracking assembly <b>134</b> determines a position of the user's left and right eyes relative to a position of eye position and tracking assembly <b>134</b> and relative to light-guide optical elements <b>115</b>, it is also advantageous to determine the angular orientation (pitch, yaw and roll) of light-guide optical elements <b>115</b> relative to the left and right eyes. For this purpose, eye position and tracking assembly <b>134</b> also determines a center of each eye, and an eye vector straight out from the center of the eye.
0061The eye center may be determined in a number of ways. Where eye tracking sensor <b>134</b><i>b </i>captures an image of the eye (either as a color image and/or as a depth image), the image may be analyzed to determine the eye center. For example, an image sensor may examine the corneal surface, and from that, determine major axes and the corneal center. In a further embodiment, the image sensor may examine other features of the eyes, including pupil, sclera (white portions of the eye) and/or eye lashes and eye color. Other features of the face such as brow, nose and nose bridge may further be imaged and used to determine the centers of the left and right eyes. A user's IPD may be determined based on determination of the center of each eye.
0062Examples including IR transmitters/receivers also may determine the center of the eye and an eye vector straight out from the center. For example, where there are multiple IR transmitters/receivers, such as four, each of these components may measure the amount of sclera in the eye they detect. These four independent values may be determined and compared. When each measures the same amount of sclera in the eye, the eye is centered (looking straight forward), and the eye vector may be taken perpendicularly straight out from the pupil. This position may either be found when each IR transmitter/receiver measures the same amount of sclera in the eye, or it may be extrapolated from a measurement where the four transmitter/receiver pairs measure different values of sclera in the eye. The eye vector may be used as a measure of the user's eye gaze (a point at which a user's eyes are momentarily fixed)
0063In addition to determining a position of the user's left and right eyes relative to a position of light-guide optical elements <b>115</b>, and the angular orientation of light-guide optical elements <b>115</b> relative to the left and right eyes, it also is advantageous to determine a user's eye gaze (a point at which a user's eyes are momentarily fixed). To accurately track a user's eye gaze, a user of head mounted display device <b>2</b> typically performs and eye tracking calibration to map detected gaze positions to corresponding positions on light-guide optical elements <b>115</b>.
0064For example, in an embodiment, light-guide optical elements <b>115</b> may transmit one or more images to the eyes of a user wearing head mounted display device <b>2</b>, and for each transmitted image, the user is instructed to “look at” the transmitted image, and eye position and tracking assembly <b>134</b> determines the user's eye gaze. Processing unit <b>4</b> may then calibrate and map the detected eye gaze data to the position of the corresponding images transmitted by light-guide optical elements <b>115</b>.
0065In some embodiments, this calibration step may require the user to “look at” a large number of transmitted images to accurately calibrate the eye tracking data with light-guide optical elements <b>115</b>. In an embodiment, eye position and tracking assembly <b>134</b> determines eye tracking calibration data for the user wearing head mounted display device <b>2</b>. The determined eye tracking calibration data may include a number of eye tracking calibration parameters ETPi, i=1, 2, . . . , M, where each ETPi is an eye tracking calibration parameter. As described in more detail below, in some embodiments, after a user performs an eye tracking calibration, the determined eye tracking calibration data may be stored for future use by the user so that the user need not perform eye tracking calibration each time the user puts on head mounted display device <b>2</b>.
0066<figref idref="DRAWINGS">FIG. 3</figref> shows half of head mounted display device <b>2</b>. A full head mounted display device <b>2</b> would include another set of see-through lenses <b>116</b>, <b>118</b>, another opacity filter <b>114</b>, another light-guide optical element <b>115</b>, another microdisplay <b>120</b>, another lens <b>122</b>, room-facing camera <b>112</b>, eye position and tracking assembly <b>134</b>, microdisplay <b>120</b>, earphones <b>130</b>, and temperature sensor <b>138</b>.
0067<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram depicting the various components of head mounted display device <b>2</b>, which is used to provide a mixed reality experience to the user by fusing one or more virtual images seamlessly with the user's view of the real world. Additionally, the components of head mounted display device <b>2</b> include many sensors that track various conditions, including the position and rotation of the user's head.
0068In an embodiment, head mounted display device <b>2</b> receives instructions about the virtual image from processing unit <b>4</b> and provides the sensor information back to processing unit <b>4</b>. Processing unit <b>4</b> receives the sensory information from head mounted display device <b>2</b>. Using that information and possibly information from hub computing system <b>12</b>, processing unit <b>4</b> may determine where and when to provide a virtual image to the user and send instructions accordingly to head mounted display device <b>2</b>.
0069Some components of <figref idref="DRAWINGS">FIG. 4</figref> (e.g., room-facing camera <b>112</b>, eye tracking sensor <b>134</b><i>b</i>, microdisplay <b>120</b>, opacity filter <b>114</b>, eye tracking illumination device <b>134</b><i>a</i>, earphones <b>130</b>, and temperature sensor <b>138</b>) are shown in shadow to indicate that there are two of each of those devices, one for the left side and one for the right side of head mounted display device <b>2</b>. Control circuit <b>200</b> communicates with a power management circuit <b>202</b>. Control circuit <b>200</b> includes processor <b>210</b>, memory controller <b>212</b> communicating with memory <b>214</b> (e.g., D-RAM), camera interface <b>216</b>, camera buffer <b>218</b>, display driver <b>220</b>, display formatter <b>222</b>, timing generator <b>226</b>, display out interface <b>228</b>, and display in interface <b>230</b>.
0070In one embodiment, all components of control circuit <b>200</b> communicate with each other via dedicated lines or one or more buses. In another embodiment, each component of control circuit <b>200</b> communicates with processor <b>210</b>. Camera interface <b>216</b> provides an interface to room-facing cameras <b>112</b> and stores images received from room-facing cameras <b>112</b> in camera buffer <b>218</b>. Display driver <b>220</b> will drive microdisplay <b>120</b>. Display formatter <b>222</b> provides information, about the virtual image being displayed on microdisplay <b>120</b>, to opacity control circuit <b>224</b>, which controls opacity filter <b>114</b>. Timing generator <b>226</b> is used to provide timing data for the system. Display out interface <b>228</b> is a buffer for providing images from room-facing cameras <b>112</b> to processing unit <b>4</b>. Display in interface <b>230</b> is a buffer for receiving images such as a virtual image to be displayed on microdisplay <b>120</b>. Display out interface <b>228</b> and display in interface <b>230</b> communicate with band interface <b>232</b> which is an interface to processing unit <b>4</b>.
0071Power management circuit <b>202</b> includes voltage regulator <b>234</b>, eye tracking illumination driver <b>236</b>, audio DAC and amplifier <b>238</b>, microphone preamplifier and audio ADC <b>240</b>, temperature sensor interface <b>242</b> and clock generator <b>244</b>. Voltage regulator <b>234</b> receives power from processing unit <b>4</b> via band interface <b>232</b> and provides that power to the other components of head mounted display device <b>2</b>. Eye tracking illumination driver <b>236</b> provides the IR light source for eye tracking illumination device <b>134</b><i>a</i>, as described above. Audio DAC and amplifier <b>238</b> output audio information to earphones <b>130</b>. Microphone preamplifier and audio ADC <b>240</b> provides an interface for microphone <b>110</b>. Temperature sensor interface <b>242</b> is an interface for temperature sensor <b>138</b>. Power management circuit <b>202</b> also provides power and receives data back from three axis magnetometer <b>132</b><i>a</i>, three axis gyro <b>132</b><i>b </i>and three axis accelerometer <b>132</b><i>c. </i>
0072<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram describing various components of processing unit <b>4</b>. Control circuit <b>304</b> communicates with power management circuit <b>306</b>, and includes a central processing unit (CPU) <b>320</b>, graphics processing unit (GPU) <b>322</b>, cache <b>324</b>, RAM <b>326</b>, memory controller <b>328</b> communicating with memory <b>330</b> (e.g., D-RAM), flash memory controller <b>332</b> communicating with flash memory <b>334</b> (or other type of non-volatile storage), display out buffer <b>336</b> communicating with head mounted display device <b>2</b> via band interface <b>302</b> and band interface <b>232</b>, display in buffer <b>338</b> communicating with head mounted display device <b>2</b> via band interface <b>302</b> and band interface <b>232</b>, microphone interface <b>340</b> communicating with an external microphone connector <b>342</b> for connecting to a microphone, PCI express interface for connecting to a wireless communication device <b>346</b>, and USB port(s) <b>348</b>.
0073In an embodiment, wireless communication device <b>346</b> can include a Wi-Fi enabled communication device, NFC-enabled communication device, BlueTooth communication device, IR communication device, etc. USB port <b>348</b> can be used to dock processing unit <b>4</b> to hub computing system <b>12</b> to load data or software onto processing unit <b>4</b>, as well as charge processing unit <b>4</b>. In one embodiment, CPU <b>320</b> and GPU <b>322</b> are the main workhorses for determining where, when and how to insert virtual three-dimensional objects into the view of the user. More details are provided below.
0074Power management circuit <b>306</b> includes clock generator <b>360</b>, analog-to-digital (A/D) converter <b>362</b>, battery charger <b>364</b>, voltage regulator <b>366</b>, head mounted display power source <b>376</b>, and temperature sensor interface <b>372</b> communicating with temperature sensor <b>374</b> (possibly located on the wrist band of processing unit <b>4</b>). A/D converter <b>362</b> is used to monitor the battery voltage, the temperature sensor and control the battery charging function. Voltage regulator <b>366</b> communicates with battery <b>368</b> to supply power to the system. Battery charger <b>364</b> charges battery <b>368</b> (via voltage regulator <b>366</b>) upon receiving power from charging jack <b>370</b>. Head mounted display device power source <b>376</b> provides power to head mounted display device <b>2</b>.
0075The above-described system <b>10</b> may be configured to insert a virtual image into the FOV of user <b>18</b> so that the virtual image replaces the view of a real world object. Alternatively, the virtual image can be inserted without replacing the image of a real world object. In various embodiments, the virtual image will be adjusted to match the appropriate orientation, size and shape based on the object being replaced or the environment for which the image is being inserted into. In addition, the virtual image can be adjusted to include reflectivity and shadows.
0076In an embodiment, head mounted display device <b>2</b>, processing unit <b>4</b> and hub computing device <b>12</b> work together, as each of the devices includes a subset of sensors that are used to obtain the data for determining where, when and how to insert the virtual images. In one embodiment, calculations that determine where, how and when to insert a virtual image are performed by hub computing device <b>12</b>. In another embodiment, those calculations are performed by processing unit <b>4</b>. In another embodiment some of the calculations are performed by hub computing device <b>12</b> and other calculations are performed by processing unit <b>4</b>. In other embodiments, the calculations can be performed by head mounted display device <b>2</b>.
0077In an embodiment, hub computing device <b>12</b> creates a model of the environment that user <b>18</b> is in and tracks various moving objects in that environment. In addition, hub computing device <b>12</b> tracks the position and orientation of head mounted display device <b>2</b>. The model and the tracking information are provided from hub computing device <b>12</b> to processing unit <b>4</b>. Sensor information also may be obtained from head mounted display device <b>2</b>. Processing unit <b>4</b> uses the additional sensor information from head mounted display device <b>2</b> to refine the FOV of user <b>18</b> and provide instructions to head mounted display device <b>2</b> on how, where and when to insert the virtual image.
0078<figref idref="DRAWINGS">FIG. 6</figref> illustrates an example embodiment of hub computing system <b>12</b> with a capture device. In one embodiment, capture devices <b>20</b><i>a </i>and <b>20</b><i>b </i>are the same structure, therefore, <figref idref="DRAWINGS">FIG. 6</figref> only shows capture device <b>20</b><i>a</i>. According to an example embodiment, capture device <b>20</b><i>a </i>may be configured to capture video with depth information including a depth image that may include depth values via any suitable technique including, for example, time-of-flight, structured light, stereo image, or the like. According to an embodiment, capture device <b>20</b><i>a </i>may organize the depth information into “Z layers,” or layers that may be perpendicular to a Z axis extending from the depth camera along its line of sight.
0079As shown in <figref idref="DRAWINGS">FIG. 6</figref>, capture device <b>20</b><i>a </i>may include a camera component <b>423</b>. According to an example embodiment, camera component <b>423</b> may be or may include a depth camera that may capture a depth image of a scene. The depth image may include a two-dimensional (2-D) pixel area of the captured scene where each pixel in the 2-D pixel area may represent a depth value such as a distance in, for example, centimeters, millimeters, or the like of an object in the captured scene from the camera.
0080Camera component <b>423</b> may include an IR light component <b>425</b>, a three-dimensional (3-D) camera <b>426</b>, and an RGB (visual image) camera <b>428</b> that may be used to capture the depth image of a scene. For example, in time-of-flight analysis, IR light component <b>425</b> of capture device <b>20</b><i>a </i>may emit an IR light onto the scene and may then use sensors (in some embodiments, including sensors not shown) to detect the backscattered light from the surface of one or more targets and objects in the scene using, for example, 3-D camera <b>426</b> and/or RGB camera <b>428</b>.
0081In some embodiments, pulsed IR light may be used such that the time between an outgoing light pulse and a corresponding incoming light pulse may be measured and used to determine a physical distance from capture device <b>20</b><i>a </i>to a particular location on the targets or objects in the scene. Additionally, in other example embodiments, the phase of the outgoing light wave may be compared to the phase of the incoming light wave to determine a phase shift. The phase shift may then be used to determine a physical distance from the capture device to a particular location on the targets or objects.
0082According to another example embodiment, time-of-flight analysis may be used to indirectly determine a physical distance from capture device <b>20</b><i>a </i>to a particular location on the targets or objects by analyzing the intensity of the reflected beam of light over time via various techniques including, for example, shuttered light pulse imaging.
0083In another example embodiment, capture device <b>20</b><i>a </i>may use a structured light to capture depth information. In such an analysis, patterned light (i.e., light displayed as a known pattern such as grid pattern, a stripe pattern, or different pattern) may be projected onto the scene via, for example, IR light component <b>425</b>. Upon striking the surface of one or more targets or objects in the scene, the pattern may become deformed in response. Such a deformation of the pattern may be captured by, for example, 3-D camera <b>426</b> and/or RGB camera <b>428</b> (and/or other sensor) and may then be analyzed to determine a physical distance from capture device <b>20</b><i>a </i>to a particular location on the targets or objects. In some implementations, the IR light component <b>425</b> is displaced from 3-D camera <b>426</b> and RGB camera <b>428</b> so triangulation can be used to determine distance from 3-D camera <b>426</b> and RGB camera <b>428</b>. In some implementations, capture device <b>20</b><i>a </i>includes a dedicated IR sensor to sense IR light, or a sensor with an IR filter.
0084According to another embodiment, the capture device <b>20</b><i>a </i>may include two or more physically separated cameras that may view a scene from different angles to obtain visual stereo data that may be resolved to generate depth information. Other types of depth image sensors can also be used to create a depth image.
0085Capture device <b>20</b><i>a </i>may include a microphone <b>430</b>, which includes a transducer or sensor that may receive and convert sound into an electrical signal. Microphone <b>430</b> may be used to receive audio signals that also may be provided by hub computing system <b>12</b>.
0086In an example embodiment, capture device <b>20</b><i>a </i>may further include a processor <b>432</b> that may communicate with camera component <b>423</b>. Processor <b>432</b> may include a standardized processor, a specialized processor, a microprocessor, or the like that may execute instructions including, for example, instructions for receiving a depth image, generating the appropriate data format (e.g., frame) and transmitting the data to hub computing system <b>12</b>.
0087Capture device <b>20</b><i>a </i>may further include a memory <b>434</b> that may store instructions that are executed by processor <b>432</b>, images or frames of images captured by the 3-D camera and/or RGB camera, or any other suitable information, images, or the like. According to an example embodiment, memory <b>434</b> may include random access memory (RAM), read only memory (ROM), cache, flash memory, a hard disk, or any other suitable storage component. As shown in <figref idref="DRAWINGS">FIG. 6</figref>, in an embodiment, memory <b>434</b> may be a separate component communicating with camera component <b>423</b> and processor <b>432</b>. According to another embodiment, memory <b>434</b> may be integrated into processor <b>432</b> and/or image capture component <b>422</b>.
0088Capture devices <b>20</b><i>a </i>and <b>20</b><i>b </i>communicate with hub computing system <b>12</b> via a communication link <b>436</b>. Communication link <b>436</b> may be a wired connection including, for example, a USB connection, a Firewire connection, an Ethernet cable connection, or the like and/or a wireless connection such as a wireless 802.11b, g, a, or n connection. According to one embodiment, hub computing system <b>12</b> may provide a clock to capture device <b>20</b><i>a </i>that may be used to determine when to capture, for example, a scene via the communication link <b>436</b>.
0089Additionally, capture device <b>20</b><i>a </i>provides depth information and visual (e.g., RGB) images captured by, for example, the 3-D camera <b>426</b> and/or RGB camera <b>428</b> to hub computing system <b>12</b> via communication link <b>436</b>. In an embodiment, depth images and visual images are transmitted at 30 frames per second. Other frame rates can be used. Hub computing system <b>12</b> may then create and use a model, depth information, and captured images to, for example, control an application such as a game or word processor and/or animate an avatar or on-screen character.
0090Hub computing system <b>12</b> includes depth image processing and skeletal tracking module <b>450</b>, which uses the depth images to track one or more persons detectable by the depth camera function of capture device <b>20</b><i>a</i>. Depth image processing and skeletal tracking module <b>450</b> provides the tracking information to application <b>452</b>, which can be a video game, productivity application, communications application or other software application etc. The audio data and visual image data is also provided to application <b>452</b> and depth image processing and skeletal tracking module <b>450</b>. Application <b>452</b> provides the tracking information, audio data and visual image data to recognizer engine <b>454</b>. In another embodiment, recognizer engine <b>454</b> receives the tracking information directly from depth image processing and skeletal tracking module <b>450</b> and receives the audio data and visual image data directly from capture devices <b>20</b><i>a </i>and <b>20</b><i>b. </i>
0091Recognizer engine <b>454</b> is associated with a collection of filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b> each comprising information concerning a gesture, action or condition that may be performed by any person or object detectable by capture device <b>20</b><i>a </i>or <b>20</b><i>b</i>. For example, the data from capture device <b>20</b><i>a </i>may be processed by filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b> to identify when a user <b>18</b> or group of users has performed one or more gestures or other actions. Those gestures may be associated with various controls, objects or conditions of application <b>452</b>. Thus, hub computing system <b>12</b> may use recognizer engine <b>454</b>, with the filters, to interpret and track movement of objects (including people).
0092Capture devices <b>20</b><i>a </i>and <b>20</b><i>b </i>provide RGB images (or visual images in other formats or color spaces) and depth images to hub computing system <b>12</b>. The depth image may be a plurality of observed pixels where each observed pixel has an observed depth value. For example, the depth image may include a 2-D pixel area of the captured scene where each pixel in the 2-D pixel area may have a depth value such as distance of an object in the captured scene from the capture device. Hub computing system <b>12</b> will use the RGB images and depth images to track a user's or object's movements. For example, the system will use the depth images to track a skeleton of a person. There are many methods that can be used to track the skeleton of a person using depth images.
0093One example of tracking a skeleton using depth images includes acquiring a depth image, down sampling the data, removing and/or smoothing high variance noisy data, identifying and removing the background, and assigning each of the foreground pixels to different parts of the body. Based on those steps, the system will fit a model to the data and create a skeleton. The skeleton will include a set of joints and connections between the joints. Other methods for tracking can also be used. Suitable tracking technologies are also disclosed in the following four U.S. Patent Applications: U.S. patent application Ser. No. 12/475,308, “Device for Identifying and Tracking Multiple Humans Over Time,” filed on May 29, 2009; U.S. patent application Ser. No. 12/696,282, “Visual Based Identity Tracking,” filed on Jan. 29, 2010; U.S. patent application Ser. No. 12/641,788, “Motion Detection Using Depth Images,” filed on Dec. 18, 2009; and U.S. patent application Ser. No. 12/575,388, “Human Tracking System,” filed on Oct. 7, 2009.
0094Recognizer engine <b>454</b> includes multiple filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b> to determine a gesture or action. A filter comprises information defining a gesture, action or condition along with parameters, or metadata, for that gesture, action or condition. For instance, a throw, which comprises motion of one of the hands from behind the rear of the body to past the front of the body, may be implemented as a gesture comprising information representing the movement of one of the hands of the user from behind the rear of the body to past the front of the body, as that movement would be captured by the depth camera. Parameters may then be set for that gesture. Where the gesture is a throw, a parameter may be a threshold velocity that the hand has to reach, a distance the hand travels (either absolute, or relative to the size of the user as a whole), and a confidence rating by the recognizer engine that the gesture occurred. These parameters for the gesture may vary between applications, between contexts of a single application, or within one context of one application over time.
0095Filters may be modular or interchangeable. In one embodiment, a filter has a number of inputs (each of those inputs having a type) and a number of outputs (each of those outputs having a type). A first filter may be replaced with a second filter that has the same number and types of inputs and outputs as the first filter without altering any other aspect of the recognizer engine architecture. For instance, there may be a first filter for driving that takes as input skeletal data and outputs a confidence that the gesture associated with the filter is occurring and an angle of steering. Where one wishes to substitute this first driving filter with a second driving filter—perhaps because the second driving filter is more efficient and requires fewer processing resources—one may do so by simply replacing the first filter with the second filter so long as the second filter has those same inputs and outputs—one input of skeletal data type, and two outputs of confidence type and angle type.
0096A filter need not have a parameter. For instance, a “user height” filter that returns the user's height may not allow for any parameters that may be tuned. An alternate “user height” filter may have tunable parameters—such as to whether to account for a user's footwear, hairstyle, headwear and posture in determining the user's height.
0097Inputs to a filter may comprise things such as joint data about a user's joint position, angles formed by the bones that meet at the joint, RGB color data from the scene, and the rate of change of an aspect of the user. Outputs from a filter may comprise things such as the confidence that a given gesture is being made, the speed at which a gesture motion is made, and a time at which a gesture motion is made.
0098Recognizer engine <b>454</b> may have a base recognizer engine that provides functionality to the filters. In one embodiment, the functionality that recognizer engine <b>454</b> implements includes an input-over-time archive that tracks recognized gestures and other input, a Hidden Markov Model implementation (where the modeled system is assumed to be a Markov process—one where a present state encapsulates any past state information used to determine a future state, so no other past state information must be maintained for this purpose—with unknown parameters, and hidden parameters are determined from the observable data), as well as other functionality used to solve particular instances of gesture recognition.
0099Filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b> are loaded and implemented on top of recognizer engine <b>454</b> and can utilize services provided by recognizer engine <b>454</b> to filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b>. In one embodiment, recognizer engine <b>454</b> receives data to determine whether it meets the requirements of any filter <b>460</b>, <b>462</b>, <b>464</b> , . . . , <b>466</b>. Because these provided services, such as parsing the input, are provided once by recognizer engine <b>454</b> rather than by each filter <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b>, such a service need only be processed once in a period of time as opposed to once per filter for that period, so the processing used to determine gestures is reduced.
0100Application <b>452</b> may use filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b> provided with recognizer engine <b>454</b>, or it may provide its own filter, which plugs in to recognizer engine <b>454</b>. In one embodiment, all filters have a common interface to enable this plug-in characteristic. Further, all filters may utilize parameters, so a single gesture tool below may be used to debug and tune the entire filter system.
0101More information about recognizer engine <b>454</b> can be found in U.S. patent application Ser. No. 12/422,661, “Gesture Recognizer System Architecture,” filed on Apr. 13, 2009. More information about recognizing gestures can be found in U.S. patent application Ser. No. 12/391,150, “Standard Gestures,” filed on Feb. 23, 2009; and U.S. patent application Ser. No. 12/474,655, “Gesture Tool” filed on May 29, 2009.
0102In one embodiment, hub computing system <b>12</b> includes a user profile database <b>470</b> that includes user-specific information related to one or more users interacting with hub computing system <b>12</b>. In one example, the user-specific information includes information related to a user such as the user's expressed preferences, the user's friends' list, the user's preferred activities, a list of the user's reminders, the user's social groups, the user's current location, the user's past intents to interact with objects in the user's environment and other user created content, such as the user's photos, images and recorded videos. In one embodiment, the user-specific information may be obtained from one or more data sources such as the user's social networking sites, address book, email data, Instant Messaging data, user profiles or other sources on the Internet. In one approach, and as will be discussed in detail below, the user-specific information is utilized to automatically determine the user's intent to interact with one or more objects in the user's environment.
0103<figref idref="DRAWINGS">FIG. 7</figref> illustrates an example embodiment of a computing system that may be used to implement hub computing system <b>12</b> or other processors disclosed herein. As shown in <figref idref="DRAWINGS">FIG. 7</figref>, computing system <b>500</b> has a central processing unit (CPU) <b>501</b> having a level 1 cache <b>502</b>, a level 2 cache <b>504</b>, and a flash ROM (Read Only Memory) <b>506</b>. Level 1 cache <b>502</b> and level 2 cache <b>504</b> temporarily store data and hence reduce the number of memory access cycles, thereby improving processing speed and throughput. CPU <b>501</b> may be provided having more than one core, and thus, additional level 1 and level 2 caches <b>502</b> and <b>504</b>, respectively. Flash ROM <b>506</b> may store executable code that is loaded during an initial phase of a boot process when computing device <b>500</b> is powered ON.
0104A graphics processing unit (GPU) <b>508</b> and a video encoder/video codec (coder/decoder) <b>514</b> form a video processing pipeline for high speed and high resolution graphics processing. Data are carried from graphics processing unit <b>508</b> to video encoder/video codec <b>514</b> via a bus. The video processing pipeline outputs data to an A/V (audio/video) port <b>540</b> for transmission to a television or other display. A memory controller <b>510</b> is connected to GPU <b>508</b> to facilitate processor access to various types of memory <b>512</b>, such as, but not limited to, a RAM (Random Access Memory).
0105Computing device <b>500</b> includes an I/O controller <b>520</b>, a system management controller <b>522</b>, an audio processing unit <b>523</b>, a network interface <b>524</b>, a first USB host controller <b>526</b>, a second USB controller <b>528</b> and a front panel I/O subassembly <b>530</b> that are preferably implemented on a module <b>518</b>. USB controllers <b>526</b> and <b>528</b> serve as hosts for peripheral controllers <b>542</b>(<b>1</b>)-<b>542</b>(<b>2</b>), a wireless adapter <b>548</b>, and an external memory device <b>546</b> (e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). Network interface <b>524</b> and/or wireless adapter <b>548</b> provide access to a network (e.g., the Internet, home network, etc.) and may be any of a wide variety of various wired or wireless adapter components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
0106System memory <b>543</b> is provided to store application data that is loaded during the boot process. A media drive <b>544</b> is provided and may comprise a DVD/CD drive, Blu-Ray drive, hard disk drive, or other removable media drive, etc. Media drive <b>544</b> may be internal or external to computing device <b>500</b>. Application data may be accessed via media drive <b>544</b> for execution, playback, etc. by computing device <b>500</b>. Media drive <b>544</b> is connected to I/O controller <b>520</b> via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394).
0107System management controller <b>522</b> provides a variety of service functions related to assuring availability of computing device <b>500</b>. Audio processing unit <b>523</b> and an audio codec <b>532</b> form a corresponding audio processing pipeline with high fidelity and stereo processing. Audio data is carried between audio processing unit <b>523</b> and audio codec <b>532</b> via a communication link. The audio processing pipeline outputs data to A/V port <b>540</b> for reproduction by an external audio user or device having audio capabilities.
0108Front panel I/O subassembly <b>530</b> supports the functionality of a power button <b>550</b> and an eject button <b>552</b>, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of computing device <b>500</b>. A system power supply module <b>536</b> provides power to the components of computing device <b>500</b>. A fan <b>538</b> cools the circuitry within computing device <b>500</b>.
0109CPU <b>501</b>, GPU <b>508</b>, memory controller <b>510</b>, and various other components within computing device <b>500</b> are interconnected via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures can include a Peripheral Component Interconnects (PCI) bus, PCI-Express bus, etc.
0110When computing device <b>500</b> is powered ON, application data may be loaded from system memory <b>543</b> into memory <b>512</b> and/or caches <b>502</b>, <b>504</b> and executed on CPU <b>501</b>. The application may present a graphical user interface that provides a consistent user experience when navigating to different media types available on computing device <b>500</b>. In operation, applications and/or other media contained within media drive <b>544</b> may be launched or played from the media drive <b>544</b> to provide additional functionalities to computing device <b>500</b>.
0111Computing device <b>500</b> may be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, computing device <b>500</b> allows one or more users to interact with the system, watch movies, or listen to music. However, with the integration of broadband connectivity made available through network interface <b>524</b> or wireless adapter <b>548</b>, computing device <b>500</b> may further be operated as a participant in a larger network community. Additionally, computing device <b>500</b> can communicate with processing unit <b>4</b> via wireless adaptor <b>548</b>.
0112When computing device <b>500</b> is powered ON, a set amount of hardware resources are reserved for system use by the multimedia console operating system. These resources may include a reservation of memory, CPU and GPU cycle, networking bandwidth, etc. Because these resources are reserved at system boot time, the reserved resources do not exist from the application's view. In particular, the memory reservation preferably is large enough to contain the launch kernel, concurrent system applications and drivers. The CPU reservation is preferably constant such that if the reserved CPU usage is not used by the system applications, an idle thread will consume any unused cycles.
0113With regard to the GPU reservation, lightweight messages generated by the system applications (e.g., pop ups) are displayed by using a GPU interrupt to schedule code to render popup into an overlay. The amount of memory required for an overlay depends on the overlay area size and the overlay preferably scales with screen resolution. Where a full user interface is used by the concurrent system application, it is preferable to use a resolution independent of application resolution. A scaler may be used to set this resolution such that the need to change frequency and cause a TV resync is eliminated.
0114After computing device <b>500</b> boots and system resources are reserved, concurrent system applications execute to provide system functionalities. The system functionalities are encapsulated in a set of system applications that execute within the reserved system resources described above. The operating system kernel identifies threads that are system application threads versus gaming application threads. The system applications are preferably scheduled to run on the CPU <b>501</b> at predetermined times and intervals in order to provide a consistent system resource view to the application. The scheduling is to minimize cache disruption for the gaming application running on the console.
0115When a concurrent system application requires audio, audio processing is scheduled asynchronously to the gaming application due to time sensitivity. A multimedia console application manager (described below) controls the gaming application audio level (e.g., mute, attenuate) when system applications are active.
0116Optional input devices (e.g., controllers <b>542</b>(<b>1</b>) and <b>542</b>(<b>2</b>)) are shared by gaming applications and system applications. The input devices are not reserved resources, but are to be switched between system applications and the gaming application such that each will have a focus of the device. The application manager preferably controls the switching of input stream, without knowing the gaming application's knowledge and a driver maintains state information regarding focus switches. Capture devices <b>20</b><i>a </i>and <b>20</b><i>b </i>may define additional input devices for the device <b>500</b> via USB controller <b>526</b> or other interface. In other embodiments, hub computing system <b>12</b> can be implemented using other hardware architectures. No one hardware architecture is required.
0117As described above, to accurately track a user's eye gaze, a user of head mounted display device <b>2</b> typically performs an eye tracking calibration to map detected gaze positions to corresponding positions on light-guide optical elements <b>115</b>. An eye tracking calibration process may require a user to “look at” a large number of transmitted images, and hence may be quite time consuming.
0118Because eye tracking calibration data are user-specific, if multiple users want to use a head mounted display device <b>2</b>, the head mounted display device <b>2</b> must be recalibrated each time the head mounted display device <b>2</b> is passed from user to user. This scenario may be quite common, for example, when multiple users in a family, group of friends, co-workers or other group share a head mounted display device <b>2</b>. Such eye tracking recalibration can thus become tedious and burdensome, and may inhibit multiple users from using head mounted display device <b>2</b>.
0119In an embodiment, head mounted display device <b>2</b> is automatically calibrated for a user by automatically identifying the user, and retrieving previously determined eye tracking calibration data for the identified user. In an embodiment, the user may be automatically identified based on measurements of the user's IPD value.
0120<figref idref="DRAWINGS">FIG. 8</figref> is a simplified flow chart depicting an automatic eye tracking calibration process <b>600</b> according to an embodiment of the present technology. Other steps could be added and many variations are possible. Not all steps are required. In an embodiment, process <b>600</b> may be performed by one or more components of head mounted device <b>2</b> as depicted in <figref idref="DRAWINGS">FIG. 1</figref>.
0121Various steps of process <b>600</b> may be performed by software, hardware, or a combination of hardware and software. Herein, the term “logic” refers to software, hardware, or a combination of hardware and software. Thus, head mounted display device <b>2</b> may have logic that is configured to perform process <b>600</b>. In some embodiments, the logic that performs some or all of the operations may be at hub computing system <b>12</b>, or some other processor. The steps illustrated in <figref idref="DRAWINGS">FIG. 8</figref> may be performed in parallel or simultaneously, and steps may be performed continuously.
0122Automatic eye tracking calibration process <b>600</b> begins after a user puts on head mounted display device <b>2</b>. In step <b>602</b>, the user's IPD value is automatically calculated. For example, as described above, in an embodiment, head mounted display device <b>2</b> includes separate eye position and tracking assemblies <b>134</b> for each of the left and right eyes. In an embodiment, after a user puts on head mounted display device <b>2</b>, eye position and tracking assemblies <b>134</b> automatically determine the center of each eye, and processor <b>210</b> automatically calculates the user's IPD value (referred to herein as “IPDc value”).
0123In step <b>604</b>, a determination is made whether the automatically calculated IPDc value matches (within a predetermined tolerance) one or more previously determined IPD values (referred to herein as “previously determined IPDs values”). In an embodiment, previously determined IPDs values may be stored in memory, such as memory <b>214</b>, or some other memory. In an embodiment, previously determined IPDs values may be stored in an eye tracking profile database. <figref idref="DRAWINGS">FIG. 9A</figref> illustrates an example eye tracking profile database <b>900</b>.
0124In an embodiment, eye tracking profile database <b>900</b> includes multiple rows of data, with each row including an eye tracking profile for a particular user of head mounted display device <b>2</b>. Eye tracking profile database <b>900</b> also includes multiple columns of data, with each column including eye tracking profile data for the users in rows <b>1</b>, <b>2</b>, . . . , N. For example, the first column includes a username for each user, the second column includes previously determined IPDs values for each user, and the next M columns include eye tracking calibration parameters for each user.
0125In some embodiments, additional biometric data associated with each user also may be stored in eye tracking calibration database <b>900</b>. For example, eye tracking profile database <b>900</b> includes a column specifying an eye color associated with each user, and a column specifying a height of each user. In addition, in some embodiments, user-identifiable passwords also may be stored in eye tracking calibration database <b>900</b>. For example, eye tracking profile database <b>900</b> includes a column that includes visual passwords in the form of images associated with each user. Eye tracking profile <b>900</b> may be stored in user profile database <b>470</b> of hub computing system <b>12</b>, or may be stored in other memory of head mounted display device <b>2</b>.
0126In example eye tracking profile database <b>900</b>, Sue has a previously determined IPDs value of 60.3 mm and associated eye tracking calibration data ETP1=a1, ETP2=b1, . . . , and ETPM=g1, an eye color “brown,” a height of 152 cm, and a visual password of a bicycle. In contrast, Sumon has a previously determined IPDs value of 64.2 mm and associated tracking calibration data ETP1=a4, ETP2=b4, . . . , and ETPM=g4, an eye color “green,” a height of 130 cm, and a visual password of a cloud and thunderbolt. Persons of ordinary skill in the art will understand that eye tracking profile database <b>900</b> may include more, fewer or different columns than those depicted in <figref idref="DRAWINGS">FIG. 9A</figref>.
0127Referring again to <figref idref="DRAWINGS">FIG. 8</figref>, in an embodiment, to determine if the automatically calculated IPDc value of step <b>602</b> matches one or more previously determined IPDs values, processor <b>210</b> calculates:
0000<br />Δ<i>i</i>=|IPD<i>c</i>−IPD<i>s</i>(<i>i</i>)|, <i>i=</i>1,2, . . . , <i>N </i>
0000using IPDs(i) values from eye tracking profile database <b>900</b>. In addition, processor <b>210</b> determines that an automatically calculated IPDc value matches a previously determined IPDs value if:
0000<br />Δ<i>i</i>≦Δmax
0000where Δmax is a predetermined tolerance for specifying a matching IPD value. In some embodiments, Δmax may be between about 0.05 mm to about 0.15 mm, although other values may be used.
0128For example, if an automatically calculated IPDc value for a user is 64.3 mm, and the predetermined tolerance Δmax=0.1 mm, using eye tracking profile database <b>900</b> of <figref idref="DRAWINGS">FIG. 9A</figref>, processor <b>210</b> determines that the automatically calculated IPDc value matches the previously determined IPDs(<b>3</b>), IPDs(<b>4</b>) and IPDs(N) values for Jamie, Sumon and Lois, respectively, within the predetermined tolerance. Persons of ordinary skill in the art will understand that an automatically calculated IPDc value may not match any previously determined IPDs value, or may match one, two or more previously determined IPDs values, based on the Δmax value.
0129Referring again to <figref idref="DRAWINGS">FIG. 8</figref>, if the determination at step <b>604</b> is that the automatically calculated IPDc value does not match any previously determined IPDs value, the process proceeds to step <b>606</b> to perform an eye tracking calibration process for the user. <figref idref="DRAWINGS">FIG. 10</figref> illustrates an example eye tracking calibration process <b>606</b>. At step <b>630</b>, the user is identified as a guest (new) user. At step <b>632</b>, the user is prompted to create an eye tracking profile. For example, as described above, computing system <b>500</b> may include a graphical user interface, which may be used to ask if the user would like to create an eye tracking profile.
0130If the user decides not to create an eye tracking profile, at step <b>632</b>, the user may continue to use head mounted display device <b>2</b> as a guest, and a “quick” eye tracking calibration may be performed to create temporary eye tracking calibration data for the user. For example, in an embodiment, eye position and tracking assembly <b>134</b> (<figref idref="DRAWINGS">FIG. 3</figref>) may perform an abbreviated eye tracking calibration process by requiring the user to “look at” a reduced number of transmitted images (e.g., fewer than would be used for a complete eye tracking calibration). In an another embodiment, the system may use previously stored eye tracking calibration data from another user having a similar IPD. The quick eye tracking calibration may not be as accurate or robust as a complete eye tracking calibration, but may be sufficient to permit the user to use head mounted display device <b>2</b> as a guest. After performing the quick calibration, process <b>606</b> ends. Referring again to <figref idref="DRAWINGS">FIG. 8</figref>, process <b>600</b> proceeds to step <b>616</b>, and head mounted display device <b>2</b> is automatically calibrated for the user using the temporary eye tracking calibration data determined at step <b>632</b> of process <b>606</b>.
0131Referring again to <figref idref="DRAWINGS">FIG. 10</figref>, if at step <b>634</b> the user decides to create an eye tracking profile, at step <b>636</b> the graphical user interface of computing system <b>500</b> prompts the user to provide user-profile information, such as a username, visual password, or other information. As described above, eye tracking profiles may be stored in user profile database <b>470</b> of hub computing system <b>12</b>, or other memory of head mounted display device <b>2</b>.
0132At step <b>638</b>, a complete eye tracking calibration is performed to determine eye tracking calibration data for the user. For example, as described above, eye position and tracking assembly <b>134</b> (<figref idref="DRAWINGS">FIG. 3</figref>) performs an eye tracking calibration process to map a user's detected gaze positions to corresponding positions on light-guide optical elements <b>115</b>. As described above, the eye tracking calibration data for a user may include a number of parameters ETPi, i=1, 2, . . . , M, where ETPi is an eye tracking calibration data parameter.
0133At step <b>640</b>, the eye tracking calibration data generated in step <b>638</b> are associated with the automatically calculated IPDc value determined in step <b>602</b> (<figref idref="DRAWINGS">FIG. 8</figref>). In an embodiment, the automatically calculated IPDc value for a user and the eye tracking calibration data for the user are stored as a new entry in eye tracking profile database <b>900</b>. <figref idref="DRAWINGS">FIG. 9B</figref> illustrates eye tracking profile database <b>900</b> updated to include the eye tracking profile for new user Ralph.
0134In this example, eye tracking profile database <b>900</b> is updated to show that Ralph has a previously determined IPDs value of 67.3 mm (using the automatically calculated IPDc value determined in step <b>602</b>), and has associated eye tracking calibration data ETP1=a(N+1), ETP2=b(N+1), . . . , ETPMg(N+1). In addition, eye tracking profile database <b>900</b> is updated to include other biometric data, if available.
0135For example, as described above, eye tracking sensor <b>134</b><i>b </i>may determine a user's eye color, and capture devices <b>20</b><i>a </i>and <b>20</b><i>b </i>and recognizer engine <b>454</b> may determine a user's height. In <figref idref="DRAWINGS">FIG. 9B</figref>, eye tracking profile database <b>900</b> is updated using this information to include Ralph's eye color (brown) and height (184 cm), and the user-specified visual password (a dog in this example).
0136Referring again to <figref idref="DRAWINGS">FIG. 10</figref> after step <b>640</b>, process <b>600</b> ends. Referring again to <figref idref="DRAWINGS">FIG. 8</figref>, process <b>600</b> proceeds to step <b>616</b>, and head mounted display device <b>2</b> is automatically calibrated using the eye tracking calibration data determined at step <b>638</b> of process <b>606</b>.
0137If the determination at step <b>604</b> is that the automatically calculated IPDc value matches one or more previously determined IPDs value, the process proceeds to step <b>608</b> to determine if the automatically calculated IPDc value uniquely matches one previously determined IPDs value. If the determination at step <b>608</b> is that the automatically calculated IPDc value uniquely matches one previously determined IPDs value, the process proceeds to step <b>610</b>, and the eye tracking calibration data associated with the unique IPDs value are retrieved from eye tracking profile <b>900</b>.
0138For example, if the automatically calculated IPDc value for a user matches the second entry (i=2) in eye tracking profile <b>900</b>, the associated eye tracking calibration data ETP1=a2, ETP2=b2, . . . , ETPM=g2 are retrieved from eye tracking profile <b>900</b>. Process <b>600</b> proceeds to step <b>616</b>, and head mounted display device <b>2</b> is automatically calibrated using the eye tracking calibration data retrieved from eye tracking profile <b>900</b> at step <b>610</b>.
0139If the determination at step <b>608</b> is that the automatically calculated IPDc value does not uniquely match one previously determined IPDs value, the process proceeds to step <b>612</b> to determine which of the multiple matching previously determined IPDs values is associated with the user.
0140<figref idref="DRAWINGS">FIG. 11</figref> is a block diagram of an example process <b>612</b> to determine which of the multiple matching previously determined IPDs values is associated with the user. At step <b>650</b>, a determination is made whether head mounted display device <b>2</b> and/or hub computing system <b>12</b> include biometric sensors that may be used to detect biometric data to identify the user. That is, because the automatically calculated IPDc value matches multiple previously stored IPDs values in eye tracking profile <b>900</b>, the system first attempts to use other biometric data associated with the user to determine which of the multiple matching entries is associated with the user.
0141For example, as described above with respect to <figref idref="DRAWINGS">FIG. 4</figref>, in some embodiments, head mounted display device <b>2</b> includes eye tracking sensor <b>134</b><i>b</i>, which captures an image of the eye and includes image sensors to detect the color of the eye. Also, as described above with respect to <figref idref="DRAWINGS">FIG. 6</figref>, in some embodiments, hub computing system <b>12</b> includes capture devices <b>20</b><i>a </i>and <b>20</b><i>b</i>, recognizer engine <b>454</b> and collection filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b>, which capture visual image data of a user, and determine a user's height based on the captured visual image data. Persons of ordinary skill in the art will understand that head mounted display device <b>2</b> and/or hub computing system <b>12</b> may include other biometric sensors that may be used to detect other biometric data about the user.
0142If head mounted display device <b>2</b> and/or hub computing system <b>12</b> include biometric sensors, at step <b>652</b> a determination is made whether eye tracking profile <b>900</b> includes previously stored biometric data. As described above, in some embodiments, eye tracking profile <b>900</b> includes biometric data, such as eye color, height, etc. If eye tracking profile <b>900</b> includes biometric data, at step <b>654</b> one or more of the biometric sensors are used to determine biometric data for the user. For example, eye tracking sensor <b>134</b><i>b </i>may detect the color of the user's eye and/or capture devices <b>20</b><i>a </i>and <b>20</b><i>b</i>, recognizer engine <b>454</b> and collection filters <b>460</b>, <b>462</b>, <b>464</b>, . . . , <b>466</b> may determine the user's height. Other biometric sensors also may be used to collect other biometric data about the user.
0143At step <b>656</b>, a determination is made whether the biometric data determined at step <b>654</b> uniquely matches biometric data for one of the multiple matching previously determined IPDs values in eye tracking profile <b>900</b>. For example, if an automatically calculated IPDc value for a user is 64.3 mm, and the predetermined tolerance Δmax=0.1 mm, using eye tracking profile database <b>900</b> of <figref idref="DRAWINGS">FIG. 9A</figref>, processor <b>210</b> determines that the automatically calculated IPDc value matches the previously determined IPDs(<b>3</b>), IPDs(<b>4</b>) and IPD(N) values for Jamie, Sumon and Lois, respectively, within the predetermined tolerance.
0144If biometric sensors determine that the user has an eye color of “green,” and/or has a height of about 130 cm (within a predetermined tolerance), processor <b>210</b> determines that the user's automatically calculated IPDc value is a unique match to Sumon's previously determined IPDs value. In contrast, if biometric sensors determine that the user has an eye color of “hazel,” and/or has a height of about 154 cm (within a predetermined tolerance), processor <b>210</b> determines that the user's automatically calculated IPDc value is a unique match to Jamie's previously determined IPDs value. Alternatively, if biometric sensors determine that the user has an eye color of “blue,” and/or has a height of about 147 cm (within a predetermined tolerance), processor <b>210</b> determines that the user's automatically calculated IPDc value is a unique match to Lois' previously determined IPDs value. Referring again to <figref idref="DRAWINGS">FIG. 11</figref>, process <b>612</b> proceeds to step <b>660</b>, and the identified user information is returned. Referring again to <figref idref="DRAWINGS">FIG. 8</figref>, at step <b>614</b> the calibration data associated with the identified user is extracted from eye tracking profile <b>900</b>, and at step <b>616</b> head mounted display device <b>2</b> is automatically calibrated using the eye tracking calibration data determined at step <b>614</b> of process <b>600</b>.
0145Referring again to <figref idref="DRAWINGS">FIG. 11</figref>, if at step <b>656</b> a determination is made that the biometric data determined at step <b>654</b> does not uniquely match biometric data for one of the multiple matching previously stored IPDs values in eye tracking profile <b>900</b>, or if at step <b>650</b> a determination is made that head mounted display device <b>2</b> and/or hub computing system <b>12</b> do not include biometric sensors that may be used to detect biometric data to identify the user, or if at step <b>652</b> a determination is made that eye tracking profile <b>900</b> does not include previously stored biometric data, at step <b>658</b>, a visual detection process is used to identify the user whose automatically calculated IPDc value matches multiple previously determined IPDs values.
0146<figref idref="DRAWINGS">FIG. 12</figref> illustrates an example visual detection process <b>658</b> to identify the user whose automatically calculated IPDc value matches multiple previously determined IPDs values. At step <b>670</b>, identifying information associated with the multiple matching previously determined IPDs values is displayed for the user. For example, in an embodiment, light-guide optical elements <b>115</b> may transmit the associated identifying information to the eyes of a user wearing head mounted display device <b>2</b>. In an embodiment, the displayed associated identifying information may be text (e.g., usernames or other text) associated with each of the multiple matching previously determined IPDs values. In another embodiment, the displayed associated identifying information may be the visual password associated with each of the multiple matching previously determined IPDs values.
0147For example, if the automatically calculated IPDc value matches the previously stored IPDs(<b>3</b>), IPDs(<b>4</b>) and IPDs(N) values for Jamie, Sumon and Lois, respectively, within the predetermined tolerance, <figref idref="DRAWINGS">FIG. 13</figref> illustrates an example display <b>710</b> of visual passwords associated with each of the matching previously determined IPDs values. In particular, display <b>710</b> includes a command statement <b>712</b> instructing the user to look at their visual password, and includes images <b>714</b><i>a</i>, <b>714</b><i>b </i>and <b>714</b><i>c </i>of the visual passwords associated with the matching previously determined IPDs(<b>3</b>), IPDs(<b>4</b>) and IPDs(N) values, respectively. Persons of ordinary skill in the art will understand that display <b>710</b> may include a different command statement <b>712</b>, and may include additional or different information displayed to the user.
0148Referring again to <figref idref="DRAWINGS">FIG. 12</figref>, at step <b>672</b> the user is prompted to visually select their associated identifying information. For example, as described above, display <b>710</b> may instruct the user to look at their visual password. In addition, or alternatively, audio instructions may be provided to the user via earphones <b>130</b>. The audio instructions may direct the user to look at their visual password.
0149At step <b>674</b>, eye position and tracking assembly <b>134</b> determines the user's view direction to determine the user's selection of one of the displayed visual passwords. For example, as described above, eye position and tracking assembly <b>134</b> may determine the user's view direction by detecting head orientation and/or eye gaze. For purposes of this determination, eye position and tracking assembly <b>134</b> may use generic eye tracking calibration data, which may be sufficient to determine the user's gaze in this context.
0150At step <b>676</b>, optionally, or alternatively, the user may be instructed to make a particular gesture (e.g., waving hand) to indicate their selection of their visual password, and capture devices <b>20</b><i>a </i>and <b>20</b><i>b </i>may visually monitor the user to detect the specified gesture. The user's selection of their visual password is used with eye tracking profile <b>900</b> to identify the user.
0151Referring again to <figref idref="DRAWINGS">FIG. 11</figref>, process <b>612</b> proceeds to step <b>660</b>, and the identified user information is returned. Referring again to <figref idref="DRAWINGS">FIG. 8</figref>, at step <b>614</b> the calibration data associated with the identified user is extracted from eye tracking profile <b>900</b>, and at step <b>616</b> head mounted display device <b>2</b> is automatically calibrated using the eye tracking calibration data determined at step <b>614</b>.
ASPECTS OF CERTAIN EMBODIMENTS
0152One or more embodiments include a method of automatically calibrating a head mounted display device for a user, the method comprising automatically calculating an inter-pupillary distance value for the user, comparing the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determining if the automatically calculated inter-pupillary distance value matches the preexisting inter-pupillary distance value, and automatically calibrating the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
0153In a method embodiment, determining includes determining if the automatically calculated inter-pupillary distance value is within a predetermined tolerance of the previously determined inter-pupillary distance value.
0154In a method embodiment, the previously determined inter-pupillary distance value includes a first previously determined inter-pupillary distance value associated with a first user and a second previously determined inter-pupillary distance value associated with a second user. Comparing includes comparing the automatically calculated inter-pupillary distance value to the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value.
0155In a method embodiment, determining includes determining if the automatically calculated inter-pupillary distance value uniquely matches one of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value.
0156In a method embodiment, if the automatically calculated inter-pupillary distance value uniquely matches one of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value, automatically calibrating includes calibrating the head mounted display device using calibration data associated with the uniquely matching previously determined inter-pupillary distance value.
0157In a method embodiment, if the automatically calculated inter-pupillary distance value matches both the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value, the method further includes determining which of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value is associated with the user, and automatically calibrating includes calibrating the head mounted display device using calibration data associated with the previously determined inter-pupillary distance value associated with the user.
0158In a method embodiment, determining which of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value is associated with the user includes displaying information to the user, wherein the displayed information comprises first information uniquely associated with the first user and second information uniquely associated with the second user, determining a view direction of the user, and detecting a selection of one of the first information and the second information by the user.
0159In a method embodiment, determining the view direction of the user includes determining one or more of a head position of the user and an eye gaze of the user.
0160In a method embodiment, the displayed information includes one or more of text and an image.
0161One or more embodiments include a head mounted display device that includes an eye position and tracking assembly and a processor. The eye position and tracking assembly is configured to automatically calculate an inter-pupillary distance value for the user. The processor is configured to compare the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determine if the automatically calculated inter-pupillary distance value matches, within a predetermined tolerance, the preexisting inter-pupillary distance value, and automatically calibrate the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
0162In a device embodiment, the previously determined inter-pupillary distance value includes a first previously determined inter-pupillary distance value associated with a first user and a second previously determined inter-pupillary distance value associated with a second user. The processor is configured to compare the automatically calculated inter-pupillary distance value to the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value.
0163In a device embodiment, the processor is configured to determine if the automatically calculated inter-pupillary distance value uniquely matches one of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value.
0164In a device embodiment, if the automatically calculated inter-pupillary distance value uniquely matches one of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value, the processor is configured to calibrate the head mounted display device using calibration data associated with the uniquely matching previously determined inter-pupillary distance value.
0165In a device embodiment, if the automatically calculated inter-pupillary distance value matches both the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value, the processor is further configured to determine which of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value is associated with the user, and calibrate the head mounted display device using calibration data associated with the previously determined inter-pupillary distance value associated with the user.
0166In a device embodiment, the processor is further configured to display information to the user, wherein the displayed information comprises first information uniquely associated with the first user and second information uniquely associated with the second user, determine a view direction of the user, and detect a selection of one of the first information and the second information by the user.
0167One or more embodiments include an apparatus that includes a computer system and a head-mounted display device. The computer system provides an electronic signal representing image data. and the head-mounted display device provides image data in response to the electronic signal. The head-mounted display device includes an eye position and tracking assembly and a processor. The eye position and tracking assembly is configured to automatically calculate an inter-pupillary distance value for the user. The processor is configured to compare the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determine if the automatically calculated inter-pupillary distance value matches, within a predetermined tolerance, the preexisting inter-pupillary distance value, and automatically calibrate the head mounted display device using calibration data associated with matching previously determined inter-pupillary distance value.
0168In an apparatus embodiment, the previously determined inter-pupillary distance value includes a first previously determined inter-pupillary distance value associated with a first user and a second previously determined inter-pupillary distance value associated with a second user. The processor is configured to compare the automatically calculated inter-pupillary distance value to the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value.
0169In an apparatus embodiment, the processor is configured to determine if the automatically calculated inter-pupillary distance value uniquely matches one of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value.
0170In an apparatus embodiment, if the automatically calculated inter-pupillary distance value uniquely matches one of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value, the processor is configured to calibrate the head mounted display device using calibration data associated with the uniquely matching previously determined inter-pupillary distance value.
0171In an apparatus embodiment, if the automatically calculated inter-pupillary distance value matches both the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value, the processor is further configured to determine which of the first previously determined inter-pupillary distance value and the second previously determined inter-pupillary distance value is associated with the user, and calibrate the head mounted display device using calibration data associated with the previously determined inter-pupillary distance value associated with the user.
0172One or more embodiments include a head mounted display device means (<b>2</b>) that includes an eye position and tracking means (<b>134</b>) and a processor means (<b>210</b>). The eye position and tracking means is configured to automatically calculate an inter-pupillary distance value for the user. The processor means is configured to compare the automatically calculated inter-pupillary distance value to a previously determined inter-pupillary distance value, determine if the automatically calculated inter-pupillary distance value matches, within a predetermined tolerance, the preexisting inter-pupillary distance value, and automatically calibrate the head mounted display device means using calibration data associated with matching previously determined inter-pupillary distance value.
0173Embodiments described in the previous paragraphs may also be combined with one or more of the specifically disclosed alternatives.
0174Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. It is intended that the scope of the invention be defined by the claims appended hereto.
Contents4
15 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11822709B2 | Cited by | United States of America | Search report |
| JP2021533462A | Cited by | Japan | Search report |
| US11468640B2 | Cited by | United States of America | Search report |
| US12072558B2 | Cited by | United States of America | Search report |
| US12578582B2 | Cited by | United States of America | Applicant |
| US11898836B2 | Cited by | United States of America | Applicant |
| US10248191B2 | Cited by | United States of America | Applicant |
| US10332315B2 | Cited by | United States of America | Search report |
| US10719992B2 | Cited by | United States of America | Search report |
| US11880043B2 | Cited by | United States of America | Applicant |
| US2024290053A1 | Cited by | United States of America | Search report |
| US10437065B2 | Cited by | United States of America | Search report |
| US10820795B1 | Cited by | United States of America | Search report |
| US9658686B2 | Cited by | United States of America | Search report |
| US2019204606A1 | Cited by | United States of America | Search report |
| CN114280784A | Cited by | China | Search report |
| US11995171B2 | Cited by | United States of America | Applicant |
| US2017365101A1 | Cited by | United States of America | Pre-grant |
| US11536559B2 | Cited by | United States of America | Applicant |
| US10260864B2 | Cited by | United States of America | Search report |
| JP2025076420A | Cited by | Japan | Search report |
| US2022248572A1 | Cited by | United States of America | Search report |
| JP2024028736A | Cited by | Japan | Search report |
| US12474575B2 | Cited by | United States of America | Applicant |
| US11506887B2 | Cited by | United States of America | Applicant |
| US2017115488A1 | Cited by | United States of America | Search report |
| US11308698B2 | Cited by | United States of America | Search report |
| US11864364B2 | Cited by | United States of America | Search report |
| CN110546666A | Cited by | China | Search report |
| US11734896B2 | Cited by | United States of America | Search report |
| US2021398357A1 | Cited by | United States of America | Search report |
| US12329456B2 | Cited by | United States of America | Applicant |
| US12102388B2 | Cited by | United States of America | Applicant |
| US12482197B2 | Cited by | United States of America | Applicant |
| US11687073B2 | Cited by | United States of America | Search report |
| US2022291740A1 | Cited by | United States of America | Search report |
| US10571251B2 | Cited by | United States of America | Applicant |
| US11003245B2 | Cited by | United States of America | Applicant |
| US11998275B2 | Cited by | United States of America | Applicant |
| US2020043236A1 | Cited by | United States of America | Search report |
| US2023037046A1 | Cited by | United States of America | Search report |
| CN111190482A | Cited by | China | Search report |
| US2020117184A1 | Cited by | United States of America | Search report |
| US12505632B2 | Cited by | United States of America | Search report |
| US11880033B2 | Cited by | United States of America | Applicant |
| US10692287B2 | Cited by | United States of America | Applicant |
| US11049326B2 | Cited by | United States of America | Search report |
| EP3830674A4 | Cited by | European Patent Office (EPO) | Search report |
| US12001858B2 | Cited by | United States of America | Applicant |
| WO2019086759A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2025285390A1 | Cited by | United States of America | Search report |
| US10521012B2 | Cited by | United States of America | Search report |
| US12111962B2 | Cited by | United States of America | Search report |
| US10378882B2 | Cited by | United States of America | Applicant |
| US2017115488A1 | Cited by | United States of America | Search report |
| US2019287309A1 | Cited by | United States of America | Search report |
| US2017115488A1 | Cited by | United States of America | Search report |
| US12287189B2 | Cited by | United States of America | Applicant |
| US11454495B2 | Cited by | United States of America | Applicant |
| EP3656285A1 | Cited by | European Patent Office (EPO) | Search report |
| US10962780B2 | Cited by | United States of America | Search report |
| CN116964628A | Cited by | China | Search report |
| US12196952B2 | Cited by | United States of America | Applicant |
| WO2020028867A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2017115488A1 | Cited by | United States of America | Search report |
| CN109991745A | Cited by | China | Search report |
| US2024027794A1 | Cited by | United States of America | Search report |
| CN113253851A | Cited by | China | Search report |
| US2017344107A1 | Cited by | United States of America | Search report |
| US10866425B1 | Cited by | United States of America | Applicant |
| US11226193B2 | Cited by | United States of America | Applicant |
| JP2024507811A | Cited by | Japan | Search report |
| US12008723B2 | Cited by | United States of America | Search report |
| US11883104B2 | Cited by | United States of America | Applicant |
| US2022269333A1 | Cited by | United States of America | Search report |
| US2017124928A1 | Cited by | United States of America | Pre-grant |
| CN113302578A | Cited by | China | Search report |
| US12086306B2 | Cited by | United States of America | Search report |
| US2008048931A1 | Cites | United States of America | Pre-grant |
| US2013050642A1 | Cites | United States of America | Pre-grant |
| US2013083009A1 | Cites | United States of America | Pre-grant |
| US2013169683A1 | Cites | United States of America | Pre-grant |
| US2013321925A1 | Cites | United States of America | Pre-grant |
| US2013322683A1 | Cites | United States of America | Pre-grant |
| US2015264299A1 | Cites | United States of America | Pre-grant |
| US5572361A | Cites | United States of America | Pre-grant |
| US7573525B2 | Cites | United States of America | Pre-grant |
| US8752963B2 | Cites | United States of America | Pre-grant |
| US8767014B2 | Cites | United States of America | Pre-grant |
2 members in 2 offices; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2016131902A1 | United States of America | A1 | |
| WO2016077508A1 | World Intellectual Property Organization (WIPO) | A1 |
46 transactions on the USPTO file
Abandoned after 1 non-final rejection and 1 final rejection.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Email NotificationEML_NTR | EML_NTR | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Mail Post CardPST_CRD | PST_CRD | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Substitute Specification FiledC604 | C604 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by L&R (LARS)L128 | L128 | |
| Referred to Level 2 (LARS) by OIPE CSRL198 | L198 | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
2 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160131902
- Application
- 14539736
Titles
- English
- SYSTEM FOR AUTOMATIC EYE TRACKING CALIBRATION OF HEAD MOUNTED DISPLAY DEVICE
Classification
- CPC, 5
- G02B27/017
- G02B27/0093
- G06F3/013
- G02B2027/014
- G02B2027/0138
- IPC, 3
- G02B27 00
- G02B27 01
- G06F3 01