Display system and method for determining vertical alignment between left and right displays and user's eyes

The system addresses display misalignment in VR, AR, and MR technologies by using alignment markers and eye-tracking to ensure horizontal alignment, improving user comfort and reducing eye strain.

JP2025113382APending Publication Date: 2025-08-01MAGIC LEAP INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2025084768
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-07-24
Filing Date
2025-05-21
Publication Date
2025-08-01

AI Technical Summary

Technical Problem

Existing VR, AR, and MR technologies face challenges in aligning left and right displays within wearable systems, leading to user discomfort due to vertical misalignment, which can cause eye strain and headaches.

Method used

The system includes a head-mounted display with left and right displays that use alignment markers and an imaging device to adjust image content based on user input, ensuring horizontal alignment with the eyes, and employs eye-tracking to determine the interpupillary axis for precise alignment.

Benefits of technology

This approach enhances user comfort by accurately aligning the displays, reducing eye strain and headaches, and providing a more immersive and comfortable VR, AR, or MR experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025113382000001_ABST
    Figure 2025113382000001_ABST
Patent Text Reader

Abstract

To provide a display system and method for determining appropriate vertical alignment between left and right displays and user's eyes.SOLUTION: A wearable device may include a head-mounted display (HMD) for rendering a three-dimensional (3D) virtual object which appears to be located in an ambient environment of a user of the display. The relative positions of the HMD and one or more eyes of the user may not be in desired positions to receive image information output by the HMD. For example, the HMD-to-eye vertical alignment may be different between the left and right eyes. The wearable device may determine if the HMD is level on the user's head and may then provide the user with a left-eye alignment marker and a right-eye alignment marker. Based on user feedback, the wearable device may determine if there is any left-right vertical misalignment and may take actions to reduce or minimize the effects of any misalignment.SELECTED DRAWING: Figure 18
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] (Incorporation by Reference) This application incorporates by reference in its entirety each of the following patent applications: U.S. Provisional Application No. 62 / 714,649, filed Aug. 3, 2018; U.S. Provisional Application No. 62 / 875,474, filed Jul. 17, 2019; U.S. Patent Application No. 16 / 251,017, filed Jul. 17, 2019; and PCT Application No. PCT / US2019 / 043096, filed Jul. 23, 2019.

[0002] The present disclosure relates to display systems, including virtual reality and augmented reality display systems, and more particularly, to systems and methods for aligning left and right displays within a wearable display system.

Background Art

[0003] Modern computing and display technologies have facilitated the development of systems for so-called “virtual reality,” “augmented reality,” or “mixed reality” experiences, in which digitally reproduced images or portions thereof are presented to a user in a manner that appears or is perceived to be real. Virtual reality, or “VR” scenarios, typically involve the presentation of digital or virtual image information without transparency to other actual real-world visual inputs. Augmented reality or “AR” scenarios typically involve the presentation of digital or virtual image information as an augmentation to the visualization of the actual world around the user. Mixed reality or “MR” relates to the fusion of the real and virtual worlds to create a new environment in which physical and virtual objects coexist and interact in real time. In summary, the human visual perception system is very complex, and the production of VR, AR, or MR technologies that facilitate a comfortable, natural, and rich presentation of virtual image elements among other virtual or real-world image elements is difficult. The systems and methods disclosed herein address various challenges associated with VR, AR, and MR technologies.

Summary of the Invention

Means for Solving the Problems

[0004] Various embodiments of display alignment within a mixed reality system are disclosed.

[0005] In some embodiments, an augmented reality system is provided. The augmented reality system includes a head-mounted display configured to present virtual content by outputting light to a user, an imaging device configured to capture an image of the user's eyes, and at least one processor communicatively coupled to the head-mounted display and the imaging device. The at least one processor is configured to provide a left-eye alignment marker using a left-eye display, provide a right-eye alignment marker using a right-eye display, receive user input, adjust at least one of the left-eye and right-eye alignment markers, and vertically adjust image content within at least one of the left-eye and right-eye displays based on the received user input. In some embodiments, the at least one processor is configured to determine whether the head-mounted display system is horizontal with respect to the user's left and right eyes and provide feedback to the user regarding whether the head-mounted display system is horizontal with respect to the user's left and right eyes before providing the left or right-eye alignment marker.

[0006] In some other embodiments, a method is provided for vertically aligning the content displayed on the left-eye display and the right-eye display of a head-mounted display system using a user's left and right eyes. The method includes providing a left-eye alignment marker using the left-eye display, providing a right-eye alignment marker using the right-eye display, receiving user input, adjusting at least one of the left-eye and right-eye alignment markers, and vertically adjusting the image content within at least one of the left-eye and right-eye displays based on the received user input. In some embodiments, the method further includes determining the levelness of the head-mounted display system with respect to the user's left and right eyes, and providing feedback to the user regarding whether the head-mounted display system is level with respect to the user's left and right eyes before providing the left or right-eye alignment marker.

[0007] In some embodiments, an augmented reality system is provided. The augmented reality system includes a head-mounted display (HMD) configured to present virtual content by outputting light to a user, and at least one processor communicatively coupled to the HMD. The HMD includes a left-eye display configured to present virtual content to the user's left eye and a right-eye display configured to present virtual content to the user's right eye. The at least one processor is configured to provide a left-eye alignment marker using the left-eye display, provide a right-eye alignment marker using the right-eye display, receive user input, adjust at least one of the left-eye and right-eye alignment markers, and vertically adjust the image content within at least one of the left-eye and right-eye displays based on the received user input.

[0008] In some embodiments, an augmented reality system is provided. The augmented reality system includes a head-mounted display (HMD) configured to present virtual content by outputting light to a user, an imaging system configured to capture an image of the user's eyes, and at least one processor communicatively coupled to the HMD and the imaging device. The at least one processor is configured to determine, at least in part, an interpupillary axis of the user that extends between the user's left and right eyes based on one or more images captured by the imaging system, determine an orientation of the HMD relative to the user's interpupillary axis, and provide feedback to the user based on the determined orientation of the HMD relative to the user's interpupillary axis.

[0009] Additional embodiments are listed below.

[0010] (Example 1) An augmented reality system, a head-mounted display configured to present virtual content by outputting light to a user, and an imaging device configured to capture an image of the user's eyes, and at least one processor communicatively coupled to the head-mounted display and the imaging device, providing a left-eye alignment marker using a left-eye display, providing a right-eye alignment marker using a right-eye display, receiving user input and adjusting at least one of the left-eye and right-eye alignment markers, vertically adjusting image content within at least one of the left-eye and right-eye displays based on the received user input, wherein the at least one processor is configured to: A system comprising.

[0011] (Example 2) The processor is The head-mounted display system determines whether it is horizontal with respect to the user's left and right eyes, and provides feedback to the user regarding whether the head-mounted display system is horizontal with respect to the user's left and right eyes before providing a left-eye alignment marker using the left-eye display. The augmented reality system according to Example 1, configured as described above.

[0012] (Example 3) The processor is configured to provide feedback to the user regarding whether the head-mounted display is horizontal with respect to the user's left and right eyes by presenting a horizontal marker having an orientation that varies in relation to the orientation of the head-mounted display with respect to the user's left and right eyes, as described in Example 1.

[0013] (Example 4) The augmented reality system according to Example 1, further comprising an eye tracking system, wherein the processor is configured to determine whether the head-mounted display system is horizontal with respect to the user's left and right eyes based on eye tracking data from the eye tracking system.

[0014] (Example 5) The augmented reality system according to Example 1, further comprising an eye tracking system, and the processor is further configured to determine the interpupillary axis of the user, which extends between the user's left and right eyes, based on eye tracking data from the eye tracking system.

[0015] (Example 6) The augmented reality system according to Example 5, wherein the processor is further configured to determine whether the head-mounted display system is horizontal with respect to the user's left and right eyes by determining the orientation of the eye tracking system with respect to the interpupillary axis of the user.

[0016] (Example 7) The processor is configured to provide feedback to the user regarding whether the head-mounted display is horizontal with respect to the user's left and right eyes by presenting a horizontal marker to the user that has an orientation that varies in relation to the orientation of the eye-tracking system with respect to the interpupillary axis, as described in Example 5.

[0017] (Example 8) The processor is configured to provide feedback to the user regarding whether the head-mounted display is horizontal with respect to the user's left and right eyes by presenting a static horizontal marker associated with the orientation of the head-mounted display and a dynamic horizontal marker associated with the orientation of the interpupillary axis, and the dynamic horizontal marker moves relative to the static horizontal marker as the orientation of the interpupillary axis changes with respect to the head-mounted display, as described in Example 5.

[0018] (Example 9) The dynamic horizontal marker merges with the static horizontal marker when the head-mounted display is horizontal with respect to the interpupillary axis, as described in Example 8.

[0019] (Example 10) The left-eye alignment marker comprises a first horizontal line and the right-eye alignment marker comprises a second horizontal line, as described in Example 1.

[0020] (Example 11) The processor is configured to receive user input in the form of user input for raising or lowering at least one of the first and second horizontal lines and to adjust at least one of the left-eye and right-eye alignment markers, as described in Example 10.

[0021] (Example 12) The processor receives user input in the form of user input to raise or lower at least one of the first and second horizontal lines until the first and second horizontal lines are horizontal from the user's perspective, and is configured to adjust at least one of the left-eye and right-eye alignment markers, the augmented reality system according to Embodiment 10.

[0022] (Embodiment 13) The head-mounted display includes a first waveguide stack configured to pass light from the world into the user's left eye and a second waveguide stack configured to pass light from the world into the user's right eye, and each waveguide stack includes a plurality of waveguides, the augmented reality system according to Embodiment 1.

[0023] (Embodiment 14) The head-mounted display includes a first waveguide stack configured to pass light from the world into the user's left eye and a second waveguide stack configured to pass light from the world into the user's right eye, each waveguide stack includes a plurality of waveguides, and one or more waveguides of the waveguide stack are configured to output light to the user with a different amount of wavefront divergence than one or more other waveguides of the waveguide stack, the different amounts of wavefront divergence are associated with different accommodation by the eye, the output light with different amounts of wavefront divergence forms virtual objects at different perceived depths away from the user, the augmented reality system according to Embodiment 1.

[0024] (Embodiment 15) A method for vertically aligning the displayed content of the left-eye display and the right-eye display of a head-mounted display system using the user's left and right eyes, providing a left-eye alignment marker using the left-eye display, providing a right-eye alignment marker using the right-eye display, Receiving user input and adjusting at least one of the left-eye and right-eye alignment markers; Vertically adjusting image content within at least one of the left-eye and right-eye displays based on the received user input; A method comprising the above.

[0025] (Example 16) Determining the levelness of a head-mounted display system with respect to a user's left and right eyes; Providing feedback to the user regarding whether the head-mounted display system is level with respect to the user's left and right eyes before providing a left or right eye alignment marker; The method according to Example 15, further comprising the above.

[0026] (Example 17) The head-mounted display system includes an eye-tracking system, and the step of determining the levelness of the head-mounted display system with respect to the user's left and right eyes includes using the eye-tracking system to determine the interpupillary axis of the user that extends between the user's left eye and right eye, and determining the levelness of the head-mounted display system with respect to the interpupillary axis. The method according to Example 15.

[0027] (Example 18) The step of using an eye-tracking system to determine the interpupillary axis of the user includes: Determining the center of rotation of the user's left eye using the eye-tracking system; Determining the center of rotation of the user's right eye using the eye-tracking system; Determining the position of a line extending between the centers of rotation of the user's left and right eyes, the line constituting the interpupillary axis; The method according to Example 17, comprising the above.

[0028] (Example 19) The step of providing the left-eye alignment marker includes the step of providing a first vertical alignment marker and a first horizontal alignment marker using a left-eye display, and the step of providing the right-eye alignment marker includes the step of providing a second vertical alignment marker and a second horizontal alignment marker using a right-eye display, the method according to Example 15.

[0029] (Example 20) When visually recognized by the user, the first and second vertical alignment markers fuse together within the user's vision, and the first and second horizontal alignment markers remain unfused within the user's vision, the method according to Example 19.

[0030] (Example 21) The step of receiving user input for adjusting at least one of the left-eye and right-eye alignment markers includes the step of receiving user input for vertically moving at least one of the first and second horizontal alignment markers, the method according to Example 19.

[0031] (Example 22) The step of receiving user input for adjusting at least one of the left-eye and right-eye alignment markers includes the step of receiving user input for vertically moving at least one of the first and second horizontal alignment markers until the first and second horizontal alignment markers are vertically aligned with each other within the user's vision, the method according to Example 19.

[0032] (Example 23) The step of determining that the user is wearing the head-mounted display system for a given threshold time,

[0033] The step of performing the step of determining the levelness of the head-mounted display system in response to the determination that the user is wearing the head-mounted display system for a given threshold time, further comprising the method according to Example 15.

[0034] (Example 24) An augmented reality system, A head-mounted display configured to present virtual content by outputting light to a user, the head-mounted display comprising a left-eye display configured to present virtual content to the user's left eye and a right-eye display configured to present virtual content to the user's right eye, At least one processor communicatively coupled to the head-mounted display, Providing a left-eye alignment marker using the left-eye display, Providing a right-eye alignment marker using the right-eye display, Receiving user input and adjusting at least one of the left-eye and right-eye alignment markers, Vertically adjusting image content in at least one of the left-eye and right-eye displays based on the received user input, At least one processor configured as such, An augmented reality system comprising the same.

[0035] (Example 25) The augmented reality system according to Example 24, wherein the left-eye alignment marker comprises a first horizontal line and the right-eye alignment marker comprises a second horizontal line.

[0036] (Example 26) The processor is configured to receive user input and adjust at least one of the left-eye and right-eye alignment markers in a form of user input for raising or lowering at least one of the first and second horizontal lines, according to the augmented reality system described in Example 25.

[0037] (Example 27) The processor receives user input in the form of user input to raise or lower at least one of the first and second horizontal lines until the first and second horizontal lines are horizontal from the user's perspective, and is configured to adjust at least one of the left-eye and right-eye alignment markers, the augmented reality system described in Example 25.

[0038] (Example 28) The left-eye display includes a first waveguide stack configured to pass light from the world into the user's left eye, and the right-eye display includes a second waveguide stack configured to pass light from the world into the user's right eye, and each waveguide stack includes a plurality of waveguides, the augmented reality system described in Example 24.

[0039] (Example 29) The left-eye display includes a first waveguide stack configured to pass light from the world into the user's left eye, and the right-eye display includes a second waveguide stack configured to pass light from the world into the user's right eye, each waveguide stack includes a plurality of waveguides, and one or more waveguides of the waveguide stack are configured to output light to the user with a different amount of wavefront divergence than one or more other waveguides of the waveguide stack, the different amounts of wavefront divergence are associated with different accommodation by the eye, the output light with different amounts of wavefront divergence forms virtual objects at different perceived depths away from the user, the augmented reality system described in Example 24.

[0040] (Example 30) To provide a left-eye alignment marker and a right-eye alignment marker using the left-eye display and the right-eye display, respectively, at least one processor uses the left-eye display to provide a first vertical alignment marker and a first horizontal alignment marker, Using the right-eye display, providing a second vertical alignment marker and a second horizontal alignment marker, An augmented reality system according to Example 24, configured as such.

[0041] (Example 31) When viewed by the user, the first and second vertical alignment markers fuse together within the user's vision, and the first and second horizontal alignment markers remain unfused within the user's vision. An augmented reality system according to Example 30.

[0042] (Example 32) To receive user input and adjust at least one of the left-eye and right-eye alignment markers, at least one processor is Configured to receive user input for vertically moving at least one of the first and second horizontal alignment markers. An augmented reality system according to Example 30.

[0043] (Example 33) To receive user input and adjust at least one of the left-eye and right-eye alignment markers, at least one processor is Configured to receive user input for vertically moving at least one of the first and second horizontal alignment markers until the first and second horizontal alignment markers are vertically aligned with each other within the user's vision. An augmented reality system according to Example 30.

[0044] (Example 34) At least one processor further Selects a first vertical position for presenting the left-eye alignment marker, Selects a second vertical position for presenting the right-eye alignment marker. Configured as such, to provide the left-eye alignment marker and the right-eye alignment marker respectively using the left-eye display and the right-eye display, at least one processor Using the left-eye display, provides the left-eye alignment marker at the first vertical position, Using the right-eye display to provide the right-eye alignment marker at a second vertical position, An augmented reality system according to Example 24, configured as such.

[0045] (Example 35) To select a first vertical position for presenting the left-eye alignment marker and a second vertical position for presenting the right-eye alignment marker, at least one processor Selects, pseudo-randomly or quasi-randomly, a first vertical position for presenting the left-eye alignment marker, An augmented reality system according to Example 24, configured to select, pseudo-randomly or quasi-randomly, a second vertical position for presenting the right-eye alignment marker.

[0046] (Example 36) To vertically adjust the image content in at least one of the left-eye and right-eye displays based on the received user input, at least one processor An augmented reality system according to Example 24, configured to vertically adjust the image content in at least one of the left-eye and right-eye displays based on the received user input, the selected first vertical position, and the selected second vertical position.

[0047] (Example 37) To vertically adjust the image content in at least one of the left-eye and right-eye displays based on the received user input, at least one processor An augmented reality system according to Example 24, configured to adjust one or more accessory parameters of at least one of a first rendering camera associated with the left-eye display and a second rendering camera associated with the right-eye display.

[0048] (Example 38) An augmented reality system according to Example 37, wherein the one or more accessory parameters include at least one of position and orientation.

[0049] (Example 39) The extended reality system according to Example 24, further comprising an imaging system configured to capture an image of the user's eyes, wherein at least one processor is communicatively coupled to the imaging system, and the at least one processor is further configured to determine whether the head-mounted display is horizontal with respect to the user's left and right eyes, at least in part based on one or more images captured by the imaging system.

[0050] (Example 40) The extended reality system according to Example 39, wherein at least one processor is configured to provide a left-eye alignment marker and a right-eye alignment marker, respectively, using a left-eye display and a right-eye display in response to a determination that the head-mounted display is horizontal with respect to the user's left and right eyes.

[0051] (Example 41) The left-eye display includes a first waveguide stack, and the right-eye display includes a second waveguide stack, each of which includes a plurality of waveguides configured to output light to the user. To provide a left-eye alignment marker and a right-eye alignment marker, respectively, using the left-eye display and the right-eye display, at least one processor provides a left-eye alignment marker using a single one of the plurality of waveguides in the first waveguide stack, and provides a right-eye alignment marker using a single one of the plurality of waveguides in the second waveguide stack. The extended reality system according to Example 24, configured as such.

[0052] (Example 42) An extended reality system, a head-mounted display configured to present virtual content by outputting light to the user, and an imaging system configured to capture an image of the user's eyes, At least one processor communicatively coupled to a head-mounted display and an imaging system, the processor configured to: Determine an interpupillary axis of a user extending between the user's left and right eyes, at least in part based on one or more images captured by the imaging system; Determine an orientation of the head-mounted display relative to the user's interpupillary axis; Provide feedback to the user based on the determined orientation of the head-mounted display relative to the user's interpupillary axis; At least one processor configured as such; and An augmented reality system comprising the same.

[0053] (Example 43) To provide feedback to the user based on the determined orientation of the head-mounted display relative to the user's interpupillary axis, at least one processor is configured to: Present a horizontal marker having an orientation that varies in relation to the determined orientation of the head-mounted display with respect to the user's left and right eyes, as described in Example 42.

[0054] (Example 44) To provide feedback to the user based on the determined orientation of the head-mounted display relative to the user's interpupillary axis, at least one processor is configured to: Present a static horizontal marker associated with the orientation of the head-mounted display; Present a dynamic horizontal marker associated with the orientation of the interpupillary axis, the dynamic horizontal marker moving relative to the static horizontal marker as the orientation of the interpupillary axis changes relative to the head-mounted display; As described in Example 42.

[0055] (Example 45) The dynamic horizontal marker merges with the static horizontal marker when the head-mounted display is horizontal relative to the interpupillary axis, as described in Example 44.

[0056] (Example 46) At least one processor is configured to determine an inter-ocular axis of a user, extending between the user's left and right eyes, based at least in part on one or more images captured by an imaging system, determine a center of rotation of the user's left eye based at least in part on one or more images of the user's left eye captured by the imaging system, determine a center of rotation of the user's right eye based at least in part on one or more images of the user's right eye captured by the imaging system, determine a position of a line extending between the centers of rotation of the user's left and right eyes, the line constituting the inter-ocular axis of the user, An augmented reality system according to Example 42, configured as such.

[0057] (Example 47) At least one processor is further configured to determine whether the user is wearing a head-mounted display for at least a threshold amount of time, and in response to determining that the user is wearing a head-mounted display for at least a threshold amount of time, at least one processor is configured to determine an inter-ocular axis of the user, extending between the user's left and right eyes, based at least in part on one or more images captured by the imaging system, An augmented reality system according to Example 42.

[0058] (Example 48) At least one processor is further configured to determine whether a head-mounted display is horizontal with respect to the user's left and right eyes based on a determined orientation of the head-mounted display with respect to the inter-ocular axis of the user, An augmented reality system according to Example 42.

[0059] (Example 47) At least one processor is further configured to, in response to a determination that the head-mounted display is horizontal with respect to the user's left and right eyes, provide a left-eye alignment marker using the left-eye display of the head-mounted display, provide a right-eye alignment marker using the right-eye display of the head-mounted display, receive user input and adjust at least one of the left-eye and right-eye alignment markers, vertically adjust image content within at least one of the left-eye and right-eye displays based on the received user input, an augmented reality system according to Example 46, configured as such.

[0060] (Example 48) To provide feedback to the user based on the determined orientation of the head-mounted display with respect to the user's interpupillary axis, at least one processor is configured to

[0061] an augmented reality system according to Example 46, configured to provide feedback to the user indicating whether the head-mounted display is horizontal with respect to the user's left and right eyes.

[0062] Details of one or more embodiments of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will be apparent from the description, the drawings, and the claims. Neither this summary nor any of the following detailed descriptions purports to define or limit the scope of the subject matter of the invention. The present invention provides, for example, the following. (Item 1) An augmented reality system, comprising a head-mounted display configured to present virtual content by outputting light to a user, an imaging device configured to capture an image of the user's eye, At least one processor communicably coupled to the head-mounted display and the imaging device, the at least one processor being configured to: Provide a left-eye alignment marker using the left-eye display; Provide a right-eye alignment marker using the right-eye display; Receive user input and adjust at least one of the left-eye alignment marker and the right-eye alignment marker; Vertically adjust image content within at least one of the left-eye display and the right-eye display based on the received user input; At least one processor configured to perform the above; An augmented reality system comprising the above. (Item 2) The processor is configured to: Determine whether the head-mounted display system is horizontal with respect to the user's left and right eyes; Before providing the left-eye alignment marker or the right-eye alignment marker, provide feedback to the user regarding whether the head-mounted display system is horizontal with respect to the user's left and right eyes; The augmented reality system according to Item 1, configured to perform the above. (Item 3) The processor is configured to provide feedback regarding whether the head-mounted display is horizontal with respect to the user's left and right eyes by presenting a horizontal marker having an orientation that changes in relation to the orientation of the head-mounted display with respect to the user's left and right eyes to the user. The augmented reality system according to Item 1 is configured to perform the above. (Item 4) The augmented reality system according to Item 1, further comprising an eye-tracking system, wherein the processor is configured to determine whether the head-mounted display system is horizontal with respect to the user's left and right eyes based on eye-tracking data from the eye-tracking system. (Item 5) The augmented reality system according to item 1, further comprising an eye tracking system, wherein the processor is further configured to determine an interocular axis of the user extending between the user's left eye and right eye based on eye tracking data from the eye tracking system. (Item 6) The augmented reality system according to item 5, wherein the processor is further configured to determine whether the head-mounted display system is horizontal with respect to the user's left and right eyes by determining an orientation of the eye tracking system with respect to the interocular axis of the user. (Item 7) The augmented reality system according to item 5, wherein the processor is configured to provide feedback to the user regarding whether the head-mounted display is horizontal with respect to the user's left and right eyes by presenting a horizontal marker having an orientation that changes in relation to the orientation of the eye tracking system with respect to the interocular axis of the user. (Item 8) The augmented reality system according to item 5, wherein the processor is configured to provide feedback to the user regarding whether the head-mounted display is horizontal with respect to the user's left and right eyes by presenting a static horizontal marker associated with the orientation of the head-mounted display and a dynamic horizontal marker associated with the orientation of the interocular axis, and the dynamic horizontal marker moves relative to the static horizontal marker as the orientation of the interocular axis changes with respect to the head-mounted display. (Item 9) The augmented reality system according to item 8, wherein the dynamic horizontal marker merges with the static horizontal marker when the head-mounted display is horizontal with respect to the interocular axis. (Item 10) The augmented reality system according to item 1, wherein the left-eye alignment marker comprises a first horizontal line and the right-eye alignment marker comprises a second horizontal line. (Item 11) The processor of the augmented reality system according to item 10 is configured to receive user input in a form of user input for raising or lowering at least one of the first and second horizontal lines, and to adjust at least one of the left-eye alignment marker and the right-eye alignment marker. (Item 12) The processor of the augmented reality system according to item 10 is configured to receive user input in a form of user input for raising or lowering at least one of the first and second horizontal lines until the first and second horizontal lines are horizontal from the user's perspective, and to adjust at least one of the left-eye alignment marker and the right-eye alignment marker. (Item 13) The head-mounted display of the augmented reality system according to item 1 includes a first waveguide stack configured to pass light from the world into the user's left eye, and a second waveguide stack configured to pass light from the world into the user's right eye, and each waveguide stack includes a plurality of waveguides. (Item 14) The head-mounted display includes a first waveguide stack configured to pass light from the world into the user's left eye, and a second waveguide stack configured to pass light from the world into the user's right eye. Each waveguide stack includes a plurality of waveguides, and one or more waveguides of the waveguide stack are configured to output light to the user with a different amount of wavefront divergence than one or more other waveguides of the waveguide stack. The different amounts of wavefront divergence are associated with different depth-of-field adjustments by the eye. The output light with different amounts of wavefront divergence forms virtual objects at different perceived depths away from the user. The augmented reality system according to item 1. (Item 15) A method for vertically aligning the content displayed on the left-eye display and the right-eye display of a head-mounted display system using a user's left eye and right eye, the method comprising: providing a left-eye alignment marker using the left-eye display; providing a right-eye alignment marker using the right-eye display; receiving user input and adjusting at least one of the left-eye alignment marker and the right-eye alignment marker; vertically adjusting image content in at least one of the left-eye display and the right-eye display based on the received user input. A method as described above. (Item 16) determining the horizontal alignment of the head-mounted display system with respect to the user's left eye and right eye; before providing the left-eye alignment marker or the right-eye alignment marker, providing feedback to the user regarding whether the head-mounted display system is horizontal with respect to the user's left eye and right eye. The method according to item 15, further comprising the above. (Item 17) The head-mounted display system comprises an eye-tracking system, and determining the horizontal alignment of the head-mounted display system with respect to the user's left eye and right eye comprises using the eye-tracking system to determine the inter-pupillary axis of the user extending between the user's left eye and right eye, and determining the horizontal alignment of the head-mounted display system with respect to the inter-pupillary axis. The method according to item 15. (Item 18) Determining the inter-pupillary axis of the user using the eye-tracking system comprises: determining the center of rotation of the user's left eye using the eye-tracking system; determining the center of rotation of the user's right eye using the eye-tracking system; Determining a position of a line extending between the centers of rotation of the user's left and right eyes, the line constituting the interocular axis, and The method according to item 17, including this. (Item 19) Providing the left-eye alignment marker includes providing a first vertical alignment marker and a first horizontal alignment marker using the left-eye display, and providing the right-eye alignment marker includes providing a second vertical alignment marker and a second horizontal alignment marker using the right-eye display. The method according to item 15. (Item 20) When viewed by the user, the first and second vertical alignment markers fuse together within the user's vision, and the first and second horizontal alignment markers remain unfused within the user's vision. The method according to item 19. (Item 21) Receiving user input for adjusting at least one of the left-eye alignment marker and the right-eye alignment marker includes receiving user input for vertically moving at least one of the first and second horizontal alignment markers. The method according to item 19. (Item 22) Receiving user input for adjusting at least one of the left-eye alignment marker and the right-eye alignment marker includes receiving user input for vertically moving at least one of the first and second horizontal alignment markers until the first and second horizontal alignment markers are vertically aligned with each other within the user's vision. The method according to item 19. (Item 23) Determining that the user is wearing the head-mounted display system for a given threshold time, and In response to the determination that the user is wearing the head-mounted display system for a given threshold time, performing determining a levelness of the head-mounted display system and The method according to item 15, further including this.

Brief Description of the Drawings

[0063]

Figure 1

[0064]

Figure 2

[0065]

Figure 3

[0066]

Figure 4

[0067]

Figure 5

[0068]

Figure 6

[0069]

Figure 7A

[0070]

Figure 7B

[0071]

Figure 7C

[0072]

Figure 8A

[0073]

Figure 8B

[0074]

Figure 8C

Figure 8D

Figure 8E

[0075]

Figure 9A

Figure 9B

Figure 9C

[0076]

Figure 9D

Figure 9E

Figure 9F

Figure 9G

[0077]

Figure 10

[0078]

Figure 11

[0079]

Figure 12A

Figure 12B

[0080]

Figure 13

[0081]

Figure 14

[0082]

Figure 15

[0083]

Figure 16

[0084]

Figure 17

[0085]

Figure 18

[0086] Throughout the drawings, reference numbers may be reused to indicate corresponding between referenced elements. The drawings are provided to illustrate exemplary embodiments described herein and are not intended to limit the scope of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0087] The display system may include a head-mounted display (HMD) that can display virtual objects such that the objects appear to be located within the user's surrounding environment. In some embodiments, the virtual objects may be perceived by the user as being three-dimensional (3D).

[0088] The HMD may include two or more distinct displays or a single continuous display. In either case, different images may be output to the left and right user's eyes. As used herein, references to left and right eye displays, or displays associated with the viewer's right and left eyes, can be understood to refer to display devices configured to output different images to the viewer's left and right eyes. Thus, left and right eye displays can refer to physically separated displays, or a single display configured to output different images to each eye. In some embodiments, the different images may be stereoscopic images presenting slightly different views of the same object or scene, and the different views may be fused together by the human visual system, which can create a perception of depth.

[0089] In some situations, the left and right displays may not be properly vertically aligned with each other and with the user's eyes. Various factors can be combined to determine the position of the left and right eye displays with respect to each other and the user's eyes. For example, the HMD may be deformed or warped over time, leading to a vertical misalignment between the left eye display and the right eye display. The HMD may be deformed or warped as a result of a number of factors, including thermal cycling, physical shock (e.g., due to being dropped), elastic or inelastic flexure from rough handling, material degradation, etc. In some cases, one of the left or right eye displays may be rotated and / or vertically translated parallel to the other of the left or right eye displays.

[0090] Such vertical misalignment can degrade the user experience and potentially cause user discomfort. Without being limited by theory, the human visual system does not adapt to receiving vertically misaligned light to form corresponding left and right eye stereoscopic images, and it is thought that light propagating towards one eye is vertically offset from light propagating towards the other eye and can form corresponding stereoscopic images. It should be understood that light propagating towards each eye can form a stereoscopic image specific to that eye. As an example, if light from one display is directed horizontally and reaches one eye, and light from another display is directed downward and reaches the other eye, these displays can be considered vertically misaligned. Even a relatively small vertical misalignment between the left and right eyes can potentially cause discomfort such as harmful eye strain and headaches.

[0091] To reduce viewer discomfort due to vertical misalignment, the difference in vertical alignment between the left eye display and the right eye display can be reduced. For example, the left eye display and the right eye display can be vertically aligned by physically moving those displays. In some cases, such physical movement of the displays is not practical or desirable. Advantageously, in some embodiments, the vertical alignment between the left eye display and the right eye display is in effect achieved by vertically shifting the image content up or down on one or both of the displays. In some embodiments, the image shift can enable the left eye and right eye displays to have a similar vertical relationship with their corresponding left and right eyes.

[0092] The various systems and techniques described herein are at least in part directed to solving problems related to proper vertical alignment of left and right eye displays that may enable a viewer to comfortably view image content. In some embodiments, a head-mounted display system may be configured to determine the position of a user's eyes (e.g., using components such as an imaging system facing inward that may be an eye tracking system). The step of determining the eye position may include the step of determining the position of representative points associated with the eye, such as the individual centers of rotation of the eyes and the position and / or orientation of the user's interpupillary axis (e.g., an axis extending between corresponding portions of the user's left and right eyes such as an axis between the center of rotation of the user's left eye and the center of rotation of the user's right eye). The display system may then determine whether the HMD is horizontal with respect to the user's eyes (e.g., horizontal with respect to the user's interpupillary axis). After leveling, the display system may present a left-eye alignment marker to the user's left eye and a right-eye alignment marker to the user's right eye. Preferably, the alignment markers are not fused by the human visual system and include a horizontal component that becomes apparent in the vertical misalignment between the left-eye display and the right-eye display. The display system may then solicit feedback from the user to identify and / or adjust the vertical alignment difference between the left-eye display and the right-eye display (e.g., by asking the user to align the left-eye and right-eye alignment markers). Using such feedback, the display system may adjust the content displayed through the system by compensating for any vertical alignment differences identified by the user, and thus improve the user's comfort when viewing the HMD.

[0093] In some embodiments, the display system includes a plurality of waveguides formed in a stack for outputting image information to a user. The alignment process may be performed for each waveguide, as discussed herein. For example, different waveguides may be configured to output different primary colors and / or different amounts of wavefront divergence corresponding to different depth planes, and alignment may be performed using each primary color (for each corresponding primary color waveguide) and / or each depth plane (for each waveguide with the corresponding amount of wavefront divergence).

[0094] Reference is now made to the drawings, where like reference numerals refer to like parts throughout. Unless otherwise indicated, the drawings are schematic and are not necessarily drawn to scale. (Example of a 3D display of a wearable system)

[0095] A wearable system (also referred to herein as a head-mounted display system or an augmented reality (AR) system) may be configured to present 2D or 3D virtual images to a user. The images may be still images, video frames, or video in a combination or equivalent. At least a portion of the wearable system may be implemented on a wearable device that can present a VR, AR, or MR environment, alone or in combination, for user interaction. The wearable device may be used synonymously with an AR device (ARD). Further, for the purposes of the present disclosure, the term "AR" is used synonymously with the term "MR".

[0096] Figure 1 depicts an illustration of a mixed reality scenario with a virtual object and a physical object as viewed by a person. In Figure 1, an MR scene 100 is depicted, and to a user of MR technology, a real-world park-like setting 110 is visible, featuring people, trees, buildings in the background, and a concrete platform 120. In addition to these items, the user of MR technology also "sees" a robot figure 130 standing on the real-world platform 120 and a flying comic-like avatar character 140 that appears as an anthropomorphic bumblebee, although these elements do not exist in the real world.

[0097] It may be desirable for a 3D display to generate a perspective adjustment response corresponding to its virtual depth for each point within the display's field of view in order to generate a true sense of depth, more specifically, a simulated sense of surface depth. If the perspective adjustment response for a display point does not correspond to the virtual depth of that point such that it is determined by both the binocular depth cues of convergence and stereopsis, the human eye may experience a vergence conflict, resulting in unstable imaging, harmful eye strain, headaches, and, in the absence of vergence information, a near-complete lack of surface depth.

[0098] VR, AR, and MR experiences may be provided by a display system having a display that provides an image viewer with images corresponding to a plurality of depth planes. The images may vary for each depth plane (e.g., providing a somewhat different presentation of the scene or object), and are separately focused by the viewer's eyes, thereby serving to provide depth cues to the user based on the eye vergence required to focus on different image features of scenes located on different depth planes or based on observing different image features on different depth planes that are out of focus. As discussed anywhere herein, such depth cues provide a believable perception of depth.

[0099] Figure 2 illustrates an example of a wearable system 200, which may be configured to provide an AR / VR / MR scenario. The wearable system 200 may also be referred to as an AR system 200. The wearable system 200 includes a display 220 and various mechanical and electronic modules and systems to support the functions of the display 220. The display 220 may be coupled to a frame 230 that can be worn by a user, wearer, or viewer 210. The display 220 may be positioned in front of the eyes of the user 210. The display 220 may present AR / VR / MR content to the user. Since the display 220 can be worn on the head of the user 210, it may also be referred to as a head-mounted display (HMD), and the wearable system 200 including the display 220 may also be referred to as a head-mounted display system.

[0100] In some embodiments, a speaker 240 is coupled to the frame 230 and positioned adjacent to the user's external auditory canal (in some embodiments, another speaker, not shown, is positioned adjacent to the user's other external auditory canal to provide stereo / formable acoustic control). The display 220 may include an audio sensor (e.g., a microphone) 232 to detect an audio stream from the environment and capture ambient sound. In some embodiments, one or more other audio sensors, not shown, are positioned to provide stereo sound reception. Stereo sound reception may be used to determine the location of the sound source. The wearable system 200 may perform voice or speech recognition on the audio stream.

[0101] The wearable system 200 may include an outward-facing imaging system 464 (shown in FIG. 4) that observes the world in the environment around the user. The wearable system 200 may also include an inward-facing imaging system 462 (shown in FIG. 4) that can track the user's eye movements. The inward-facing imaging system can track either the movement of one eye or the movement of both eyes. The inward-facing imaging system 462 may be attached to the frame 230 and may communicate electrically with a processing module 260 or 270 that processes the image information obtained by the inward-facing imaging system and can determine, for example, the pupil diameter or orientation, eye movement, or eye pose of the user's eyes. The inward-facing imaging system 462 may include one or more cameras. For example, at least one camera may be used to image each eye. The images obtained by the cameras may be used to determine the pupil size or eye pose separately for each eye, thereby enabling the presentation of image information to each eye to be dynamically adjusted with respect to that eye.

[0102] As an example, the wearable system 200 may use the outward-facing imaging system 464 or the inward-facing imaging system 462 to obtain an image of the user's pose. The image may be a still image, a video frame, or a video.

[0103] The display 220 may be operably coupled to the local data processing module 260 (250) and may be mounted in various configurations, such as fixed to the frame 230 by a wired conductor or wireless connection, fixed to a helmet or hat worn by the user, incorporated within headphones, or otherwise removably attached to the user 210 (e.g., in a backpack configuration, in a belt attachment configuration).

[0104] The local processing and data module 260 may comprise a hardware processor and digital memory such as non-volatile memory (e.g., flash memory), both of which may be utilized to assist in the processing, caching, and storage of data. The data may be (a) data captured from sensors such as an image capture device (e.g., a camera within an inward-facing imaging system and / or an outward-facing imaging system), an audio sensor (e.g., a microphone), an inertial measurement unit (IMU), an accelerometer, a compass, a global positioning system (GPS) unit, a wireless device, or a gyroscope (e.g., operatively coupled to the frame 230 or otherwise attachable to the user 210), or (b) data obtained or processed using the remote processing module 270 or the remote data repository 280, which may in some cases be passed to the display 220 after processing or reading. The local processing and data module 260 may be operatively coupled to the remote processing module 270 or the remote data repository 280 via a communication link 262 or 264, such as a wired or wireless communication link, such that these remote modules are available as resources to the local processing and data module 260. Additionally, the remote processing module 280 and the remote data repository 280 may be operatively coupled to each other.

[0105] In some embodiments, the remote processing module 270 may comprise one or more processors configured to analyze and process data or image information. In some embodiments, the remote data repository 280 may comprise a digital data storage facility, which may be available through other networking configurations in an Internet or “cloud” resource configuration. In some embodiments, all data is stored and all calculations are performed in the local processing and data module, enabling full autonomy from the remote modules. (Exemplary components of a wearable system)

[0106] Figure 3 schematically illustrates exemplary components of a wearable system. Figure 3 shows a wearable system 200, which can include a display 220 and a frame 230. Stretch view 202 schematically illustrates various components of wearable system 200. In one implementation, one or more of the components illustrated in Figure 3 may be part of display 220. The various components may collect various data (e.g., auditory or visual data, etc.) associated with a user of wearable system 200 or the user's environment, either alone or in combination. It should be understood that other embodiments may have additional or fewer components depending on the use for which the wearable system is employed. Note that Figure 3 provides some of the various components and a basic concept of the types of data that can be collected, analyzed, and stored through the wearable system.

[0107] Figure 3 shows an exemplary wearable system 200, which may include a display 220. The display 220 may include a display lens 226 that can be mounted on a housing or frame 230 corresponding to the user's head or frame 230. The display lens 226 may include one or more transparent mirrors positioned in front of the user's eyes 302, 304 by the housing 230, bounce the projected light 338 into the eyes 302, 304, and be configured to allow transmission of at least some light from the local environment while facilitating beam shaping. The wavefront of the projected light beam 338 may be bent or focused to match the desired focal length of the projected light. As shown, two wide field of view machine vision cameras 316 (also referred to as world cameras) may be coupled to the housing 230 to image the environment around the user. These cameras 316 may be dual capture visible light / non-visible (e.g., infrared) light cameras. The cameras 316 may be part of an outward facing imaging system 464 shown in FIG. 4. Images obtained by the world cameras 316 may be processed by a pose processor 336. For example, the pose processor 336 may implement one or more object recognition devices 708 (e.g., shown in FIG. 7) to identify the pose of the user or another person within the user's environment or to identify physical objects within the user's environment.

[0108] Continuing to refer to FIG. 3, shown is a pair of scanning laser shaped wavefront (e.g., for depth) light projector modules with a display mirror and optical system configured to project light 338 into eyes 302, 304. The depicted figure also shows two small infrared cameras 324 paired with an infrared light source 326 (such as a light emitting diode “LED”) configured to track the user's eyes 302, 304 and support rendering and user input. Camera 324 may be part of an inward facing imaging system 462 shown in FIG. 4. Wearable system 200 may further feature a sensor assembly 339, which has X, Y, and Z axis accelerometer capabilities as well as magnetic compass and X, Y, and Z axis gyroscope capabilities and preferably can provide data at a relatively high frequency such as 200 Hz. Sensor assembly 339 may be part of an IMU described with reference to FIG. 2A. The depicted system 200 may also include a head pose processor 336 such as an ASIC (application specific integrated circuit), FPGA (field programmable gate array), or ARM processor (advanced reduced instruction set machine), which may be configured to calculate from wide field of view image information output from capture device 316 at real time or near real time user head pose. Head pose processor 336 may be a hardware processor and may be implemented as part of local processing and data module 260 shown in FIG. 2A.

[0109] The wearable system may also include one or more depth sensors 234. Depth sensor 234 may be configured to measure the distance between objects in the environment and the wearable device. Depth sensor 234 may include a laser scanner (e.g., LIDAR), an ultrasonic depth sensor, or a depth sensing camera. In some embodiments where camera 316 has depth sensing capabilities, camera 316 may also be considered a depth sensor 234.

[0110] Also shown is a processor 332 configured to perform digital or analog processing and to derive from gyroscope, compass, or accelerometer data from the sensor assembly 339. The processor 332 may be part of the local processing and data module 260 shown in FIG. 2. The wearable system 200 may also include a positioning system such as, for example, a GPS 337 (Global Positioning System) as shown in FIG. 3 to assist with attitude and positioning analysis. Additionally, the GPS may further provide remote-based (e.g., cloud-based) information about the user's environment. This information may be used to recognize objects or information within the user's environment.

[0111] The wearable system may combine data obtained by the GPS 337 and a remote computing system (e.g., the remote processing module 270, another user's ARD, etc.), which may provide more information about the user's environment. As an example, the wearable system may determine the user's location based on GPS data and retrieve a world map that includes virtual objects associated with the user's location (e.g., by communicating with the remote processing module 270). As another example, the wearable system 200 may use a world camera 316 (which may be part of the outward-facing imaging system 464 shown in FIG. 4) to monitor the environment. Based on the images obtained by the world camera 316, the wearable system 200 may detect objects within the environment (e.g., by using one or more object recognition devices 708 shown in FIG. 7). The wearable system may further interpret characters using data obtained by the GPS 337.

[0112] The wearable system 200 may also include a rendering engine 334, which may be configured to provide rendering information local to the user for the view of users worldwide and to facilitate the operation of the scanner and the imaging into the user's eyes. The rendering engine 334 may be implemented by a hardware processor (e.g., a central processing unit or a graphics processing unit, etc.). In some embodiments, the rendering engine is part of the local processing and data module 260. The rendering engine 334 may be communicatively coupled to other components of the wearable system 200 (e.g., via a wired or wireless link). For example, the rendering engine 334 may be coupled to the eye camera 324 via the communication link 274 and may be coupled to the projection subsystem 318 (which may project light into the user's eyes 302, 304 via a scanning laser array in a manner similar to a retinal scanning display) via the communication link 272. The rendering engine 334 may also communicate with other processing units, such as the sensor attitude processor 332 and the image attitude processor 336, via the links 276 and 294, respectively.

[0113] The camera 324 (e.g., a small infrared camera) may be used to track eye attitude and support rendering and user input. Some exemplary eye attitudes may include where the user is looking or the depth at which the user is focused (which may be estimated using the vergence of the eyes). The GPS 337, gyroscope, compass, and accelerometer 339 may be used to provide gross or high-speed attitude estimation. One or more of the cameras 316 may obtain images and attitudes, which may be used to map the local environment and share the user view with others in conjunction with data from associated cloud computing resources.

[0114] The exemplary components depicted in FIG. 3 are for illustrative purposes only. A plurality of sensors and other functional modules are shown together for ease of illustration and explanation. Some embodiments may include only one or a subset of these sensors or modules. Further, the locations of these components are not limited to the positions depicted in FIG. 3. Some components may be mounted or stored within other components, such as belt-mounted components, handheld components, or helmet components. As an example, the image pose processor 336, the sensor pose processor 332, and the rendering engine 334 may be located within a belt pack and configured to communicate with other components of the wearable system via wireless communication such as ultra-wideband, Wi-Fi, Bluetooth®, or via wired communication. The depicted housing 230 is preferably head-mountable and wearable by a user. However, some components of the wearable system 200 may be worn on other parts of the user's body. For example, the speaker 240 may be inserted into the user's ear to provide sound to the user.

[0115] Regarding the projection of light 338 into the user's eyes 302, 304, in some embodiments, the camera 324 may generally be utilized to measure the location where the center of the user's eye is geometrically converged, which generally coincides with the focal position or "depth of focus" of the eye. The three-dimensional surface of all points where the eyes converge may be referred to as the "horopter." The focal distance may take on a finite number of depths or may vary infinitely. Light projected from the convergence / divergence movement distance appears to be focused on the target eyes 302, 304, while light in front of or behind the convergence / divergence movement distance is blurred. Examples of the wearable system and other display systems of the present disclosure are also described in U.S. Patent Publication No. 2016 / 0270656, which is incorporated herein by reference in its entirety.

[0116] The human visual system is complex and it is difficult to provide a realistic perception of depth. An object viewer can perceive an object in three dimensions due to the combination of convergence-divergence movement and accommodation. The convergence-divergence movement of two eyes relative to each other (for example, the pupils move towards each other or away from each other, converging the viewpoints of the eyes and fixing on the object, such as the rotation of the pupils) is closely associated with the focusing (or "accommodation") of the eye's lens. Under normal conditions, the change in the focus of the eye's lens or the eye's accommodation to change the focus from one object to another object at a different distance will automatically cause a corresponding change in the convergence-divergence movement under the relationship known as the "accommodation-convergence-divergence reflex". Similarly, a change in the convergence-divergence movement will, under normal conditions, induce a corresponding change in accommodation. A display system that provides better alignment between accommodation and convergence-divergence movement can form a more realistic and comfortable simulation of a three-dimensional image.

[0117] Furthermore, spatially coherent light with a beam diameter of less than about 0.7 millimeters can be correctly resolved by the human eye regardless of where the eye is focused. Therefore, in order to create an illusion of appropriate depth of focus, the eye's convergence-divergence movement may be tracked using a camera 324, and the rendering engine 334 and the projection subsystem 318 may be used to focus and render all objects on or near the single-view trajectory, and render all other objects with a variable degree of defocus (for example, using intentionally created blur). Preferably, the system 220 renders at a frame rate of about 60 frames per second or more for the user. As described above, preferably, the camera 324 may be used for eye tracking, and the software may be configured to take into account not only the convergence-divergence geometry but also a focus location queue for serving as a user input. Preferably, such a display system is configured using brightness and contrast suitable for daytime or nighttime use.

[0118] In some embodiments, the display system preferably has a latency of less than about 20 milliseconds, an angular alignment of less than about 0.1 degrees, and a resolution of about 1 arc minute for visual object alignment, which, while not limited by theory, is considered to be approximately the limit of the human eye. The display system 220 may be integrated with a location system, which may involve GPS elements, optical tracking, compasses, accelerometers, or other data sources and may assist in position and orientation determination. The location information may be utilized to facilitate accurate rendering within the user's view of the relevant world (for example, such information would facilitate the glasses' understanding of their location relative to the real world).

[0119] In some embodiments, the wearable system 200 is configured to display one or more virtual images based on the user's eye accommodation. Unlike conventional 3D display approaches that force the user to focus on where the image is projected, in some embodiments, the wearable system automatically varies the focus of the projected virtual content and is configured to enable more comfortable viewing of the one or more images presented to the user. For example, if the user's eye has a current focus of 1 m, the image may be projected to match the user's focus. If the user shifts the focus to 3 m, the image is projected to match the new focus. Thus, rather than forcing a predetermined focus on the user, the wearable system 200 of some embodiments enables the user's eye to function in a more natural manner.

[0120] Such a wearable system 200 can eliminate or reduce the incidence of eye strain, headaches, and other physiological symptoms typically observed with virtual reality devices. To achieve this, various embodiments of the wearable system 200 are configured to project a virtual image at a variable focal distance through one or more variable focus elements (VFE). In one or more embodiments, 3D perception may be achieved through a multi-plane focus system that projects the image onto a fixed focal plane from the user. Other embodiments employ variable plane focus, where the focal plane is reciprocally moved in the z-direction to match the current state of the user's focus.

[0121] In both the multi-plane focus system and the variable plane focus system, the wearable system 200 may employ eye tracking to determine the convergence / divergence movement of the user's eyes, determine the user's current focus, and project the virtual image onto the determined focus. In other embodiments, the wearable system 200 comprises a light modulator that projects a variable focus light beam in a raster pattern across the retina through a fiber scanner or other light generation source. Thus, the display capabilities of the wearable system 200 that project an image at a variable focal distance not only facilitate the user's depth adjustment for viewing objects in 3D, but may also be used to compensate for the user's eye abnormalities, as further described in U.S. Patent Publication No. 2016 / 0270656, which is hereby incorporated by reference in its entirety. In some other embodiments, the spatial light modulator may project the image to the user through various optical components. For example, as further described below, the spatial light modulator may project the image onto one or more waveguides, which then transmit the image to the user. (Waveguide stack assembly)

[0122] FIG. 4 illustrates an example of a waveguide stack for outputting image information to a user. Wearable system 400 includes a stack of waveguides 432b, 434b, 436b, 438b, 4400b or a stacked waveguide assembly 480 that can be utilized to provide three-dimensional perception to the eye / brain using a plurality of waveguides. In some embodiments, wearable system 400 may correspond to wearable system 200 of FIG. 2, and FIG. 4A schematically shows some portions of that wearable system 200 in more detail. For example, in some embodiments, waveguide assembly 480 may be integrated within display 220 of FIG. 2.

[0123] Continuing to refer to FIG. 4, waveguide assembly 480 may also include a plurality of features 458, 456, 454, 452 between the waveguides. In some embodiments, features 458, 456, 454, 452 may be lenses. In other embodiments, features 458, 456, 454, 452 may not be lenses. Rather, they may simply be spacers (e.g., a cladding layer or structure for forming an air gap).

[0124] Waveguides 432b, 434b, 436b, 438b, 440b or a plurality of lenses 458, 456, 454, 452 may be configured to transmit image information to the eye using various levels of wavefront curvature or ray divergence. Each waveguide level may be associated with a specific depth plane and may be configured to output image information corresponding to that depth plane. Image input devices 420, 422, 424, 426, 428 may be utilized to input image information into waveguides 440b, 438b, 436b, 434b, 432b, respectively, which may be configured to disperse incident light across each individual waveguide for output toward the eye 410. Light exits from the output surfaces of the image input devices 420, 422, 424, 426, 428 and is input into the corresponding input edges of the waveguides 440b, 438b, 436b, 434b, 432b. In some embodiments, a single beam of light (e.g., a collimated beam) may be input into each waveguide and output an entire field of cloned collimated beams directed toward the eye 410 at a specific angle (and amount of divergence) corresponding to the depth plane associated with the specific waveguide.

[0125] In some embodiments, image input devices 420, 422, 424, 426, 428 are discrete displays that generate, respectively, image information for input into their respective corresponding waveguides 440b, 438b, 436b, 434b, 432b. In some other embodiments, image input devices 420, 422, 424, 426, 428 are the output ends of a single multiplexed display that can send, for example, image information to each of the image input devices 420, 422, 424, 426, 428 via one or more optical conduits (such as optical fiber cables).

[0126] Controller 460 controls the operation of the stacked waveguide assemblies 480 and the image input devices 420, 422, 424, 426, 428. Controller 460 includes programming (e.g., instructions in a non-transitory computer-readable medium) that adjusts the timing and provides the image information to waveguides 440b, 438b, 436b, 434b, 432b. In some embodiments, controller 460 may be a single integrated device or a distributed system connected by wired or wireless communication channels. Controller 460 may be, in some embodiments, part of processing module 260 or 270 (illustrated in FIG. 2).

[0127] Waveguides 440b, 438b, 436b, 434b, 432b may be configured to propagate light within each individual waveguide by total internal reflection (TIR). The waveguides 440b, 438b, 436b, 434b, 432b may each be planar, or have another shape (e.g., curved), with a major top surface and a major bottom surface and an edge extending therebetween. In the illustrated configuration, the waveguides 440b, 438b, 436b, 434b, 432b each include light extraction optical elements 440a, 438a, 436a, 434a, 432a configured to extract light from the waveguides by redirecting the light, propagating it within each individual waveguide, and outputting image information from the waveguide to the eye 410. The extracted light may also be referred to as external coupled light, and the light extraction optical elements may also be referred to as external coupling optical elements. The beam of extracted light is output by the waveguide at the location where the light propagating within the waveguide impinges on the light redirecting element. The light extraction optical elements (440a, 438a, 436a, 434a, 432a) may be, for example, reflective or diffractive optical features. For ease of explanation and clarity of the drawings, they are shown disposed on the bottom major surfaces of the waveguides 440b, 438b, 436b, 434b, 432b, but in some embodiments, the light extraction optical elements 440a, 438a, 436a, 434a, 432a may be disposed on the top or bottom major surfaces, or may be disposed directly within the volume of the waveguides 440b, 438b, 436b, 434b, 432b. In some embodiments, the light extraction optical elements 440a, 438a, 436a, 434a, 432a may be attached to a transparent substrate and formed within a layer of the material forming the waveguides 440b, 438b, 436b, 434b, 432b. In some other embodiments, the waveguides 440b, 438b, 436b, 434b, 432b may be monolithic material components, and the light extraction optical elements 440a, 438a, 436a, 434a, 432a may be formed on and / or within the surface of the material component.

[0128] Continuing to refer to FIG. 4, as discussed herein, each waveguide 440b, 438b, 436b, 434b, 432b is configured to output light and form an image corresponding to a particular depth plane. For example, the waveguide 432b closest to the eye may be configured to deliver collimated light to the eye 410 as it is input into such waveguide 432b. The collimated light may represent an optically infinite focal plane. The next upper waveguide 434b may be configured to deliver collimated light that passes through a first lens 452 (e.g., a negative lens) before reaching the eye 410. The first lens 452 may be configured to generate some convex wavefront curvature such that the eye / brain interprets the light originating from its next upper waveguide 434b as originating from a first focal plane that is closer inwardly toward the eye 410 from the optically infinite. Similarly, the third upper waveguide 436b passes its output light through both the first lens 452 and the second lens 454 before reaching the eye 410. The combined refractive power of the first and second lenses 452 and 454 may be configured to generate another incremental amount of wavefront curvature such that the eye / brain interprets the light originating from the third waveguide 436b as originating from a second focal plane that is closer inwardly toward the person from the optically infinite than the light from the next upper waveguide 434b was.

[0129] Other waveguide layers (e.g., waveguides 438b, 440b) and lenses (e.g., lenses 456, 458) are similarly configured, and using the top waveguide 440b in the stack, its output is sent through all of the lenses between it and the eye for the aggregated focusing power representing the focal plane closest to the person. When viewing / interpreting light originating from the world 470 on the other side of the stacked waveguide assembly 480, a compensating lens layer 430 may be disposed on top of the stack to compensate for the stack of lenses 458, 456, 454, 452. (The compensating lens layer 430 and the stacked waveguide assembly 480 may be configured such that light originating from the world 470 is transmitted to the eye 410 with substantially the same level of divergence (or collimation) as it had when first received by the stacked waveguide assembly 480.) Such a configuration provides the same number of perceived focal planes as there are available waveguide / lens pairs. Both the light extraction optical elements of the waveguides and the focusing sides of the lenses may be static (e.g., not dynamic or electroactive). In some alternative embodiments, one or both may be dynamic using electroactive features.

[0130] Continuing to refer to FIG. 4, the light extraction optical elements 440a, 438a, 436a, 434a, 432a may be configured to redirect light from their respective waveguides for a particular depth plane associated with the waveguide and output the light with an appropriate amount of divergence or collimation. As a result, waveguides having different associated depth planes may have light extraction optical elements of different configurations that output light with different amounts of divergence depending on the associated depth plane. In some embodiments, as discussed herein, the light extraction optical elements 440a, 438a, 436a, 434a, 432a may be three-dimensional or surface features configured to output light at a specific angle. For example, the light extraction optical elements 440a, 438a, 436a, 434a, 432a may be a volume hologram, a surface hologram, and / or a diffraction grating. Light extraction optical elements such as diffraction gratings are described in U.S. Patent Publication No. 2015 / 0178939, published Jun. 25, 2015, which is incorporated herein by reference in its entirety.

[0131] In some embodiments, the light extraction optical elements 440a, 438a, 436a, 434a, 432a are diffraction features or “diffractive optical elements” (also referred to herein as “DOEs”) that form a diffraction pattern. Preferably, the DOE has a relatively low diffraction efficiency such that only a portion of the light of the beam is deflected towards the eye 410 at each intersection of the DOE, while the remainder continues to travel through the waveguide via total internal reflection. The light carrying the image information is thus split into several associated output beams that exit the waveguide at multiple locations, resulting in a very uniform pattern of output emission towards the eye 304 with respect to this particular collimated beam that bounces within the waveguide.

[0132] In some embodiments, one or more DOEs may be switchable between an “on” state that actively diffracts and an “off” state that does not significantly diffract. For example, a switchable DOE may comprise a layer of polymer dispersed liquid crystal, in which microdroplets have a diffraction pattern in a host medium and the refractive index of the microdroplets may be switched to substantially match the refractive index of the host material (in which case the pattern does not significantly diffract incident light), or the microdroplets may be switched to a refractive index that does not match that of the host medium (in which case the pattern actively diffracts incident light).

[0133] In some embodiments, the number and distribution of depth planes or depth of field may be varied dynamically based on the pupil size or orientation of the viewer's eye. The depth of field may vary inversely with the pupil size of the viewer. As a result, as the pupil size of the viewer's eye decreases, a plane that is indistinguishable because its location in the plane is beyond the depth of focus of the eye becomes distinguishable, and increases such that it may appear more in focus with the corresponding increase in pupil size reduction and depth of field. Similarly, the number of spaced depth planes used to present different images to the viewer may be decreased with a decreased pupil size. For example, a viewer may not be able to clearly perceive the details of both a first depth plane and a second depth plane at one pupil size without adjusting the eye's focus from one depth plane to the other. However, these two depth planes may be sufficient for the user to focus at another pupil size without changing the focus adjustment simultaneously.

[0134] In some embodiments, the display system may vary the number of waveguides that receive image information based on a determination of pupil size or orientation, or in response to receiving an electrical signal indicative of a particular pupil size or orientation. For example, if the user's eye is unable to distinguish between two depth planes associated with two waveguides, the controller 460 (which may be an embodiment of the local processing and data module 260) may be configured or programmed to stop providing image information to one of these waveguides. Advantageously, this may reduce the processing burden on the system, thereby increasing the responsiveness of the system. In embodiments where the DOE for a waveguide is switchable between on and off states, the DOE may be switched to the off state when the waveguide receives image information.

[0135] In some embodiments, it may be desirable to satisfy the condition that the outgoing beam has a diameter less than the diameter of the viewer's eye. However, satisfying this condition may be difficult in light of the variability of the viewer's pupil size. In some embodiments, this condition is satisfied over a wide range of pupil sizes by varying the size of the outgoing beam in response to a determination of the viewer's pupil size. For example, as the pupil size decreases, the size of the outgoing beam may also decrease. In some embodiments, the outgoing beam size may be varied using a variable aperture.

[0136] The wearable system 400 may include an outward-facing imaging system 464 (e.g., a digital camera) that images a portion of the world 470. This portion of the world 470 may be referred to as the field of view (FOV) of the world camera, and the imaging system 464 is sometimes also referred to as the FOV camera. The FOV of the world camera may or may not be the same as the FOV of the viewer 210, and it encompasses a portion of the world 470 that the viewer 210 perceives at a given time. For example, in some situations, the FOV of the world camera may be larger than the field of view of the viewer 210 of the wearable system 400. The entire area available for viewing or imaging by the viewer may be referred to as the field of regard (FOR). The FOR may include a solid angle of 4π steradians surrounding the wearable system 400 so that the wearer can move their body, head, or eyes and perceive substantially any direction in space. In other contexts, the movement of the wearer may be more restricted, and accordingly, the wearer's FOR may touch a smaller solid angle. Images obtained from the outward-facing imaging system 464 may be used, for example, to track gestures made by the user (e.g., hand or finger gestures) and detect objects within the world 470 in front of the user.

[0137] The wearable system 400 may include an audio sensor 232, such as a microphone, to capture ambient sound. As described above, in some embodiments, one or more other audio sensors may be positioned to provide stereo sound reception useful for determining the location of the source of speech. As another example, the audio sensor 232 may comprise a directional microphone, which may also provide such useful directional information regarding the location where the audio source is located. The wearable system 400 may use information from both the outward-facing imaging system 464 and the audio sensor 230 when locating the source of speech or determining the active speaker at a particular moment. For example, the wearable system 400 may use speech recognition, alone or in combination with a reflected image of the speaker (e.g., as seen in a mirror), to determine the identity of the speaker. As another example, the wearable system 400 may be able to determine the location of a speaker within the environment based on the sound obtained from a directional microphone. The wearable system 400 may use a speech recognition algorithm to analyze the sound resulting from the location of the speaker, determine the content of the speech, and use speech recognition techniques to determine the identity of the speaker (e.g., name or other demographic information).

[0138] The wearable system 400 may also include an inward-facing imaging system 466 (e.g., a digital camera) that observes the user's movements such as eye movement and face movement. The inward-facing imaging system 466 may capture an image of the eye 410 and may be used to determine the size and / or orientation of the pupil of the eye 304. The inward-facing imaging system 466 may be used to obtain an image for use in determining the direction in which the user is looking (e.g., eye pose), or for biometric identification of the user (e.g., via iris identification). In some embodiments, at least one camera is utilized to separately determine the pupil size or eye pose of each eye independently for each eye, thereby enabling the presentation of image information to each eye to be dynamically adjusted with respect to that eye. In some other embodiments, only the pupil diameter or orientation of a single eye 410 (e.g., using only a single camera per pair of eyes) is determined and assumed to be similar for both eyes of the user. The images obtained by the inward-facing imaging system 466 may be analyzed to determine the user's eye pose or mood, which may be used by the wearable system 400 to determine the audio or visual content to be presented to the user. The wearable system 400 may also use sensors such as an IMU, accelerometer, gyroscope, etc. to determine the head pose (e.g., head position or head orientation).

[0139] The wearable system 400 may include a user input device 466 through which a user can input commands to the controller 460 and interact with the wearable system 400. For example, the user input device 466 may include a trackpad, a touch screen, a joystick, a multi-degree-of-freedom (DOF) controller, a capacitance sensing device, a game controller, a keyboard, a mouse, a directional pad (D-pad), a wand, a tactile device, a totem (e.g., functioning as a virtual user input device), etc. The multi-DOF controller may sense user input in translational (e.g., left / right, forward / backward, or up / down) or rotational (e.g., yaw, pitch, or roll) movements that are possible for some or all of the controller. A multi-DOF controller that supports translational movement may be referred to as 3DOF, while a multi-DOF controller that supports both translational and rotational movement may be referred to as 6DOF. In some cases, the user may use a finger (e.g., the thumb) to press or swipe on a touch sensor-based input device to provide input to the wearable system 400 (e.g., to provide user input to a user interface provided by the wearable system 400). The user input device 466 may be held by the user's hand during use of the wearable system 400. The user input device 466 may communicate with the wearable system 400 either wired or wirelessly. (Other components of the wearable system)

[0140] In many embodiments, the wearable system may include other components in addition to, or as an alternative to, the components of the wearable system described above. The wearable system may include, for example, one or more haptic devices or components. The haptic device or component may be operable to provide a tactile sensation to the user. For example, the haptic device or component may provide a tactile sensation of pressure or texture when touching virtual content (e.g., virtual objects, virtual tools, other virtual structures). The tactile sensation may reproduce the sensation of a physical object represented by the virtual object, or may reproduce the sensation of an imaginary object or character (e.g., a dragon) represented by the virtual content. In some embodiments, the haptic device or component may be worn by the user (e.g., a user-wearable glove). In some embodiments, the haptic device or component may be held by the user.

[0141] A wearable system may include one or more physical objects that are, for example, operable by a user and enable input to or interaction with the wearable system. These physical objects may be referred to herein as totems. Some totems may take the form of inanimate objects, such as, for example, pieces of metal or plastic, walls, table surfaces, etc. In some embodiments, a totem may not actually have any physical input structures (e.g., keys, triggers, joysticks, trackballs, rocker switches). Instead, a totem may simply provide a physical surface, and the wearable system may render a user interface so as to appear to the user to be on one or more surfaces of the totem. For example, the wearable system may render an image of a computer keyboard and trackpad so as to appear to be resident on one or more surfaces of the totem. For example, the wearable system may render a virtual computer keyboard and virtual trackpad so as to appear on the surface of a thin rectangular plate of aluminum that serves as a totem. The rectangular plate itself does not have any physical keys or trackpads or sensors. However, the wearable system may detect user operations or interactions or touches using the rectangular plate as selections or inputs made via the virtual keyboard or virtual trackpad. The user input device 466 (shown in FIG. 4) may be an embodiment of a totem that may include a trackpad, touchpad, trigger, joystick, trackball, rocker or virtual switch, mouse, keyboard, multi-degree-of-freedom controller, or another physical input device. The user may use the totem alone or in combination with a gesture to interact with the wearable system or other users.

[0142] Examples of haptic devices and totems that can be used with the wearable devices, HMDS, and display systems of the present disclosure are described in U.S. Patent Publication No. 2015 / 0016777, which is incorporated herein by reference in its entirety. (Example of an eye image)

[0143] FIG. 5 illustrates an image of an eye 500 with an eyelid 504, a sclera 508 ("white of the eye"), an iris 512, and a pupil 516. Curve 516a indicates the pupil boundary between the pupil 516 and the iris 512, and curve 512a indicates the edge boundary between the iris 512 and the sclera 508. The eyelid 504 includes an upper eyelid 504a and a lower eyelid 504b. The eye 500 is illustrated in a natural rest position (e.g., oriented such that both the user's face and line of sight will be directed toward a distant object directly in front of the user). The natural rest position of the eye 500 can be indicated by a natural rest direction 520 that is in a natural rest position (e.g., out of the plane immediately for the eye 500 shown in FIG. 5) and, in this embodiment, is orthogonal to the surface of the eye 500 when centered within the pupil 516.

[0144] As the eye 500 moves to look at different objects, the eye pose will change relative to the natural rest direction 520. The current eye pose can be determined with reference to an eye pose direction 524 that is orthogonal to the surface of the eye (and centered within the pupil 516) but is oriented toward the object at which the eye is currently directed. Referring to the exemplary coordinate system shown in FIG. 5, the pose of the eye 500 can be represented as two angular parameters that both indicate the azimuthal deviation and the zenith deviation of the eye pose direction 524 of the eye relative to the natural rest direction 520 of the eye. For illustrative purposes, these angular parameters can be represented as θ (azimuthal deviation, determined from a reference azimuth) and φ (zenith deviation, sometimes also referred to as polar deviation). In some embodiments, the angular roll of the eye around the eye pose direction 524 may be included in the determination of the eye pose and the angular roll may be included in the following analysis. In some other embodiments, other techniques for determining the eye pose may be used, e.g., a pitch, yaw, and optionally, a roll system.

[0145] Eye images may be obtained from video using any suitable process, such as a video processing algorithm that can extract the image from one or more sequential frames. The eye pose may be determined from the eye image using various eye tracking techniques. For example, the eye pose may be determined by considering the lens effect of the cornea on the provided light source. Any suitable eye tracking technique may be used to determine the eye pose in the eyelid shape estimation technique described herein. (Example of an eye tracking system)

[0146] FIG. 6 illustrates a schematic diagram of a wearable or head-mounted display system 600 that includes an eye-tracking system. The head-mounted display system 600 may include, in at least some embodiments, components located within a head-mounted unit 602 and components located within a non-head-mounted unit 604. The non-head-mounted unit 604 may be, by way of example, a belt-mounted component, a handheld component, a component within a backpack, a remote component, etc. Incorporating some of the components of the head-mounted display system 600 within the non-head-mounted unit 604 may help reduce the size, weight, complexity, and cost of the head-mounted unit 602. In some embodiments, some or all of the functionality described as being implemented by one or more components of the head-mounted unit 602 and / or the non-head-mounted 604 may be provided using one or more components included anywhere within the head-mounted display system 600. For example, some or all of the functionality described below in connection with the CPU 612 of the head-mounted unit 602 may be provided using the CPU 616 of the non-head-mounted unit 604, and vice versa. In some examples, some or all of such functionality may be provided using a peripheral device of the head-mounted display system 600. Further, in some embodiments, some or all of such functionality may be provided using one or more cloud computing devices or other remotely located computing devices in a manner similar to that described above with reference to FIG. 2.

[0147] As shown in FIG. 6, the head-mounted display system 600 may include an eye-tracking system that includes a camera 324 that captures an image of the user's eye 610. Optionally, the eye-tracking system may also include light sources 326a and 326b (such as light-emitting diodes "LEDs", etc.). The light sources 326a and 326b may generate a flash (i.e., a reflection from the user's eye that appears in the image of the eye captured by the camera 324). The positions of the light sources 326a and 326b relative to the camera 324 may be known, such that the position of the flash in the image captured by the camera 324 may be used in tracking the user's eye (as will be discussed in more detail below in connection with FIGS. 7-11). In at least one embodiment, there may be one light source 326 and one camera 324 associated with one of the user's eyes 610. In another embodiment, there may be one light source 326 and one camera 324 associated with each of the user's eyes 610. In yet another embodiment, there may be one or more cameras 324 and one or more light sources 326 associated with one or each of the user's eyes 610. As a specific example, there may be two light sources 326a and 326b and one or more cameras 324 associated with each of the user's eyes 610. As another example, there may be three or more light sources such as light sources 326a and 326b and one or more cameras 324 associated with each of the user's eyes 610.

[0148] The eye tracking module 614 may receive an image from the eye tracking camera 324, analyze the image, and extract various information. As an example, the eye tracking module 614 may obtain the user's eye pose, the three-dimensional position of the user's eyes with respect to the eye tracking camera 324 (and the head-mounted unit 602), the direction of one or both of the user's focused eyes 610, the user's convergence / divergence motion depth (i.e., the depth from the user on which the user is focused), the position of the user's pupils, the position of the user's corneas and corneal spheres, the respective centers of rotation of the user's eyes, and the respective centers of the viewpoints of the user's eyes. The eye tracking module 614 may extract such information using the techniques described below in connection with FIGS. 7-11. As shown in FIG. 6, the eye tracking module 614 may be a software module implemented using the CPU 612 within the head-mounted unit 602.

[0149] Data from the eye tracking module 614 may be provided to other components within the wearable system. As an example, such data may be transmitted to components within a non-head-mounted unit 604, such as the CPU 616, including software modules for the light field rendering controller 618 and the alignment observer 620, which may be configured to evaluate whether the display 600 of the head-mounted display system is properly aligned with the user's eyes.

[0150] The rendering controller 618 may adjust the image displayed to the user using the information from the eye tracking module 614 by the rendering engine 622 (which may be a software module within the GPU 621 and may provide images to the display 220, the rendering engine). As an example, the rendering controller 618 may adjust the image displayed to the user based on the center of rotation or the center of the user's viewpoint. In particular, the rendering controller 618 may use information regarding the center of the user's viewpoint to simulate a rendering camera (i.e., simulate the collection of an image from the user's viewpoint), and may adjust the image displayed to the user based on the simulated rendering camera.

[0151] Sometimes referred to as a "pinhole perspective projection camera" (or simply, a "perspective projection camera") or a "virtual pinhole camera" (or simply, a "virtual camera"), a "rendering camera" is potentially a simulated camera used to render virtual image content from a database of objects within a virtual world. The objects may have locations and orientations relative to the user or wearer, and potentially, real objects within the environment surrounding the user or wearer. In other words, the rendering camera may represent a viewpoint within a rendering space from which the user or wearer is to view 3D virtual content (e.g., virtual objects) of the rendering space. The rendering camera may be managed by a rendering engine and may render a virtual image based on a database of virtual objects to be presented to the eye. The virtual image may be rendered as if it were captured from the viewpoint of the user or wearer. For example, the virtual image may be rendered as if it were captured by a pinhole camera (corresponding to the "rendering camera") having a specific set of intrinsic parameters (e.g., focal length, camera pixel size, principal point coordinates, distortion / warping parameters, etc.) and a specific set of extrinsic parameters (e.g., translation and rotation components relative to the virtual world). The virtual image is captured from the viewpoint of such a camera having the position and orientation of the rendering camera (e.g., the extrinsic parameters of the rendering camera). The system is thus able to define and / or adjust the intrinsic and extrinsic rendering camera parameters. For example, the system may define a specific set of extrinsic rendering camera parameters such that the virtual image is rendered as if it were captured from the viewpoint of a camera having a specific location relative to the user or wearer's eye so as to present an image that appears to be from the viewpoint of the user or wearer. The system may later dynamically adjust the extrinsic rendering camera parameters on the fly to maintain alignment with the specific location. Similarly, the intrinsic rendering camera parameters may also be defined and dynamically adjusted over time.In some embodiments, the image is rendered as if it were captured from the perspective of a camera having an aperture (e.g., a pinhole) at a specific location relative to the user's or wearer's eye (such as the center or center of rotation or other location of the viewpoint).

[0152] In some embodiments, the system may create or dynamically reposition and / or reorient one rendering camera for the user's left eye and a different rendering camera for the user's right eye as the user's eyes are physically separated from each other and thus consistently positioned at different locations. In at least some embodiments, virtual content rendered from the perspective of the rendering camera associated with the viewer's left eye may be presented to the user through the left eyepiece on the left side of a head-mounted display (e.g., the head-mounted unit 602), and virtual content rendered from the perspective of the rendering camera associated with the user's right eye may be presented to the user through the right eyepiece on the right side of such a head-mounted display. Further details regarding the creation, adjustment, and use of the rendering cameras in the rendering process are provided in U.S. Patent Application No. 15 / 274,823, entitled "METHODS AND SYSTEMS FOR DETECTING AND COMBINING STRUCTURAL FEATURES IN 3D RECONSTRUCTION", which is hereby expressly incorporated by reference in its entirety for all purposes.

[0153] In some embodiments, one or more modules (or components) of system 600 (e.g., light field rendering controller 618, rendering engine 622, etc.) may determine the position and orientation of a rendering camera within a rendering space based on the position and orientation of the user's head and eyes (e.g., as determined based on head pose and eye tracking data, respectively). That is, system 600 effectively maps the position and orientation of the user's head and eyes to a particular location and angular position within a 3D virtual environment, positions and orients a rendering camera at the particular location and angular position within the 3D virtual environment, and may render virtual content for the user as would be captured by the rendering camera. Further details discussing the real-world / virtual-world mapping process are provided in U.S. Patent Application No. 15 / 296,869, entitled "SELECTING VIRTUAL OBJECTS IN A THREE-DIMENSIONAL SPACE", which is hereby expressly incorporated by reference in its entirety for all purposes. As an example, rendering controller 618 may adjust the depth at which an image is displayed by selecting the depth plane (or depth planes) to be utilized at any given time for displaying the image. In some embodiments, such depth plane switching may be done through adjustment of one or more intrinsic rendering camera parameters.

[0154] The alignment observer 620 may identify whether the head-mounted unit 602 is properly positioned on the user's head using information from the eye tracking module 614. As an example, the eye tracking module 614 may provide eye location information such as the position of the center of rotation of the user's eyes, indicating the three-dimensional position of the user's eyes relative to the camera 324, and the head-mounted unit 602 and the eye tracking module 614 may use the location information to determine whether the display 220 is properly aligned within the user's field of view, or whether the head-mounted unit 602 (or headset) has slipped or is otherwise misaligned with the user's eyes. As an example, the alignment observer 620 may determine whether the head-mounted unit 602 has slipped from the user's nasal bridge and thus moved the display 220 away from and downward from the user's eyes (which may not be desirable), whether the head-mounted unit 602 has moved above the user's nasal bridge and thus moved the display 220 closer to and upward from the user's eyes, whether the head-mounted unit 602 has shifted left or right relative to the user's nasal bridge, whether the head-mounted unit 602 has been lifted above the user's nasal bridge, or whether the head-mounted unit 602 has moved away from the desired position or range of positions in these or other ways. Generally, the alignment observer 620 may generally be able to determine whether the head-mounted unit 602, and in particular the display 220, is properly positioned in front of the user's eyes. In other words, the alignment observer 620 may determine whether the left-eye display within the display system 220 is properly aligned with the user's left eye and whether the right-eye display within the display system 220 is properly aligned with the user's right eye. The alignment observer 620 may determine whether the head-mounted unit 602 is properly positioned by determining whether the head-mounted unit 602 is positioned and oriented within the desired range of positions and / or orientations relative to the user's eyes.

[0155] In at least some embodiments, the alignment observer 620 may generate user feedback in the form of an alert, message, or other content. Such feedback may be provided to the user and inform the user of any misalignment of the head-mounted unit 602, along with optional feedback regarding how to correct the misalignment (such as suggestions for adjusting the head-mounted unit 602 in a particular manner).

[0156] Exemplary alignment observation and feedback techniques that may be utilized by the alignment observer 620 are described in U.S. Patent Application No. 15 / 717,747, filed September 27, 2017 (Attorney Docket No. MLEAP.052A2), which is incorporated herein by reference in its entirety. (Example of an eye-tracking module)

[0157] A detailed block diagram of an exemplary eye-tracking module 614 is shown in FIG. 7A. As shown in FIG. 7A, the eye-tracking module 614 may include various different sub-modules, may provide various different outputs, and may utilize various available data when tracking the user's eyes. By way of example, the eye-tracking module 614 may utilize available data including the geometric arrangement of the light source 326 and the eye-tracking camera 324 relative to the head-mounted unit 602, assumed eye dimensions 704 such as a typical distance of about 4.7 mm between the center of the user's corneal curvature and the average center of rotation of the user's eye or a typical distance between the user's center of rotation and the center of the line of sight, and user-specific calibration data 706 such as the interpupillary distance of a particular user. Additional examples of incidental, intrinsic, and other information that may be employed by the eye-tracking module 614 are described in U.S. Patent Application No. 15 / 497,726, filed April 26, 2017 (Attorney Docket No. MLEAP.023A7), which is incorporated herein by reference in its entirety.

[0158] The image pre - processing module 710 may receive an image from an eye camera such as the eye camera 324, and may perform one or more pre - processing (i.e., adjustment) operations on the received image. As an example, the image pre - processing module 710 may apply Gaussian blur to the image, may downsample the image to a lower resolution, may apply an unsharp mask, may apply an edge - sharpening algorithm, or may apply other suitable filters that assist in subsequent detection, localization, and the labeling of glints, pupils, or other features within the image from the eye camera 324. The image pre - processing module 710 may apply a low - pass filter such as an open filter or a morphological filter that can remove noise, such as high - frequency noise from the pupil boundary 516a (see FIG. 5), which may otherwise interfere with pupil and glint determination. The image pre - processing module 710 may output the pre - processed image to the pupil identification module 712 and the glint detection and labeling module 714.

[0159] The pupil recognition module 712 may receive the pre - processed image from the image pre - processing module 710 and may identify the regions of those images that contain the user's pupils. In some embodiments, the pupil recognition module 712 may determine the coordinates of the position of the user's pupil in the eye - tracking image from the camera 324, i.e., the coordinates of the center or centroid. In at least some embodiments, the pupil recognition module 712 may identify the contour (e.g., the contour of the pupil - iris boundary) in the eye - tracking image, identify the contour moments (i.e., the center of mass), apply the starburst pupil detection and / or Canny edge detection algorithms, exclude outliers based on intensity values, identify sub - pixel boundary points, correct for eye camera distortion (i.e., the distortion in the images captured by the eye camera 324), apply the random sample consensus (RANSAC) iterative algorithm, fit an ellipse to the boundary in the eye - tracking image, apply a tracking filter to the image, and identify the sub - pixel image coordinates of the user's pupil centroid. The pupil recognition module 712 may output pupil recognition data, which may indicate the region of the pre - processed image module 712 identified as showing the user's pupil, to the flash detection and labeling module 714. The pupil recognition module 712 may provide the 2D coordinates of the user's pupil (i.e., the 2D coordinates of the user's pupil centroid) in each eye - tracking image to the flash detection module 714. In at least some embodiments, the pupil recognition module 712 may also provide the same type of pupil recognition data to the coordinate system normalization module 718.

[0160] Pupil detection techniques that may be utilized by the pupil recognition module 712 are described in U.S. Patent Publication No. 2017 / 0053165, published on February 23, 2017, and U.S. Patent Publication No. 2017 / 0053166, published on February 23, 2017, each of which is incorporated herein by reference in its entirety.

[0161] The flash detection and labeling module 714 may receive the pre - processed image from module 710 and the pupil identification data from module 712. The flash detection module 714 may use this data to detect and / or identify a flash (i.e., the reflection of light from the light source 326 off the user's eye) within the region of the pre - processed image that indicates the user's pupil. As an example, the flash detection module 714 may search for bright regions in the eye - tracking image that are near the user's pupil and which are sometimes referred to herein as "blobs" or local intensity maxima. In at least some embodiments, the flash detection module 714 may re - scale (e.g., enlarge) the pupil ellipse to include additional flashes. The flash detection module 714 may filter the flashes by size and / or intensity. The flash detection module 714 may also determine the 2D position of each flash within the eye - tracking image. In at least some examples, the flash detection module 714 may determine the 2D position of the flash relative to the user's pupil, which may also be referred to as a pupil - flash vector. The flash detection and labeling module 714 may label the flashes and output the pre - processed image with the labeled flashes to the 3D corneal center estimation module 716. The flash detection and labeling module 714 may also transmit data such as the pre - processed image from module 710 and the pupil identification data from module 712.

[0162] Pupil and flash detection, such as that performed by modules such as modules 712 and 714, may use any suitable technique. As an example, edge detection may be applied to the eye image to identify the flash and the pupil. Edge detection may be applied by various edge detectors, edge detection algorithms, or filters. For example, a Canny edge detector may be applied to the image to detect edges such as lines in the image. The edge may include points located along a line corresponding to a local maximum derivative. For example, the pupil boundary 516a (see FIG. 5) may be located using a Canny edge detector. Once the location of the pupil is determined, various image processing techniques may be used to detect the "pose" of the pupil 116. Determination of the eye pose of the eye image may also be referred to as detection of the eye pose of the eye image. The pose may also be referred to as the line of sight, the direction being looked at, or the orientation of the eye. For example, the pupil may be looking left towards an object, and the pose of the pupil may be classified as a left-facing pose. Other methods may also be used to detect the location of the pupil or the flash. For example, concentric rings may be located within the eye image using a Canny edge detector. As another example, an integral differential operator may be used to find the corneal limbus boundary of the pupil or the iris. For example, a Daugman integral differential operator, a Hough transform, or other iris segmentation techniques may be used to return a curve that estimates the boundary of the pupil or the iris.

[0163] The 3D corneal center estimation module 716 may receive a pre-processed image including the detected flash data and pupil identification data from modules 710, 712, 714. The 3D corneal center estimation module 716 may use this data to estimate the 3D position of the user's cornea. In some embodiments, the 3D corneal center estimation module 716 may estimate the 3D position of the center of the corneal curvature or the user's corneal sphere, i.e., generally the center of an imaginary sphere having a surface portion coextensive with the user's cornea. The 3D corneal center estimation module 716 may provide data indicating the estimated 3D coordinates of the corneal sphere and / or the user's cornea to the coordinate system normalization module 718, the optical axis determination module 722, and / or the light field rendering controller 618. Further details of the operation of the 3D corneal center estimation module 716 are provided herein in connection with FIGS. 8A-8E. Techniques for estimating the position of eye features such as the cornea or corneal sphere that may be utilized by the 3D corneal center estimation module 716 and other modules within the wearable system of the present disclosure are discussed in U.S. Patent Application No. 15 / 497,726, filed Apr. 26, 2017 (Attorney Docket No. MLEAP.023A7), which is incorporated herein by reference in its entirety.

[0164] The coordinate system normalization module 718 may optionally be included within the eye tracking module 614 (as indicated by its dashed outline). The coordinate system normalization module 718 may receive data indicating the estimated 3D coordinates of the center of the user's cornea (and / or the center of the user's corneal sphere) from the 3D corneal center estimation module 716, and may also receive data from other modules. The coordinate system normalization module 718 may normalize the eye camera coordinate system, which may help compensate for slippage of the wearable device (e.g., slippage of a head-mounted component from its normal resting position on the user's head, which may be identified by the alignment observer 620). The coordinate system normalization module 718 may rotate the coordinate system and align the z-axis of the coordinate system (i.e., the convergence / divergence motion depth axis) with the corneal center (e.g., as indicated by the 3D corneal center estimation module 716), and may translate the camera center (i.e., the origin of the coordinate system) to a predetermined distance away from the corneal center, such as 30 mm (i.e., the module 718 may expand or contract the eye tracking image depending on whether the eye camera 324 is determined to be closer or farther than the predetermined distance). By using this normalization process, the eye tracking module 614 may be able to establish consistent orientation and distance within the eye tracking data, relatively independently of variations in the headset positioned on the user's head. The coordinate system normalization module 718 may provide the 3D coordinates of the center of the cornea (and / or corneal sphere), pupil identification data, and the preprocessed eye tracking image to the 3D pupil center locator module 720. Further details of the operation of the coordinate system normalization module 718 are provided herein in connection with FIGS. 9A-9C.

[0165] The 3D pupil center locator module 720 may receive data including the 3D coordinates of the center of the user's cornea (and / or corneal sphere), pupil location data, and pre - processed eye - tracking images, within a normalized or non - normalized coordinate system. The 3D pupil center locator module 720 may analyze such data to determine the 3D coordinates of the center of the user's pupil within a normalized or non - normalized eye camera coordinate system. The 3D pupil center locator module 720 may determine the location of the user's pupil in three dimensions based on the 2D position of the pupil centroid (as determined by module 712), the 3D position of the corneal center (as determined by module 716), assumed eye dimensions 704 such as the size of the typical user's corneal sphere and the typical distance from the corneal center to the pupil center, and the optical properties of the eye such as the refractive index of the cornea (relative to the refractive index of air), or any combination of these. Further details of the operation of the 3D pupil center locator module 720 are provided herein in connection with FIGS. 9D - 9G. Techniques for estimating the position of eye features such as the pupil, which may be utilized by the 3D pupil center locator module 720 and other modules within the wearable system of the present disclosure, are discussed in U.S. Patent Application No. 15 / 497,726, filed on April 26, 2017 (Attorney Docket No. MLEAP.023A7), which is incorporated herein by reference in its entirety.

[0166] The optical axis determination module 722 may receive data indicating the 3D coordinates of the center of the user's cornea and the center of the user's pupil from modules 716 and 720. Based on such data, the optical axis determination module 722 may identify a vector from the position of the corneal center (i.e., from the center of the corneal sphere) to the center of the user's pupil that may define the optical axis of the user's eye. As an example, the optical axis determination module 722 may provide an output defining the user's optical axis to modules 724, 728, 730, and 732.

[0167] The center of rotation (CoR) estimation module 724 may receive data from module 722 that includes parameters of the user's eye's optical axis (i.e., data indicating the direction of the optical axis within a coordinate system with a known relationship to the head-mounted unit 602). The CoR estimation module 724 may estimate the center of rotation of the user's eye (i.e., the point around which the user's eye rotates as the user's eye rotates left, right, up, and / or down). Assume that a single point may be sufficient even if the eye cannot rotate perfectly around a single point. In at least some embodiments, the CoR estimation module 724 may estimate the center of rotation of the eye by moving the center of the pupil (identified by module 720) or the center of curvature of the cornea (as identified by module 716) a specific distance along the optical axis (identified by module 722) toward the retina. This specific distance may be the assumed eye dimension 704. As an example, the specific distance between the center of curvature of the cornea and the CoR may be about 4.7 mm. This distance may be varied for a particular user based on any relevant data, including the user's age, gender, vision prescription, other relevant characteristics, etc.

[0168] In at least some embodiments, the CoR estimation module 724 may refine the estimated value of the respective center of rotation of the user's eyes over time. As an example, over time, the user may ultimately rotate the eye (to look at something else, closer, farther away, or at some point left, right, up, or down), causing an offset along the respective optical axis of the eye. The CoR estimation module 724 may then analyze the two (or more) optical axes identified by module 722 and localize the 3D point of intersection of those optical axes. The CoR estimation module 724 may then determine the center of rotation at the 3D point of intersection. Such techniques may provide an estimated value of the center of rotation with accuracy that improves over time. Various techniques may be employed to increase the accuracy of the CoR estimation module 724 as well as the determined CoR positions of the left and right eyes. As an example, the CoR estimation module 724 may estimate the CoR by finding the average point of intersection of the optical axes determined over time for various different eye poses. As an additional example, module 724 may filter or average the estimated CoR positions over time, calculate a moving average of the estimated CoR positions over time, and / or apply a Kalman filter and the known dynamics of the eye and eye tracking system to estimate the CoR position over time. As a specific example, module 724 may slowly shift over time from the assumed CoR position (i.e., 4.7 mm behind the center of the corneal curvature of the eye) to a slightly different location within the user's eye as eye tracking data regarding the user is acquired, such that the determined point of intersection of the optical axes and the assumed CoR position (such as 4.7 mm from the center of the corneal curvature of the eye) are weighted and averaged to enable per-user refinement of the CoR position.

[0169] The interpupillary distance (IPD) estimation module 726 may receive data indicating the estimated 3D positions of the centers of rotation of the user's left and right eyes from the CoR estimation module 724. The IPD estimation module 726 may then estimate the user's IPD by measuring the 3D distance between the centers of rotation of the user's left and right eyes. Generally, the distance between the estimated CoR of the user's left eye and the estimated CoR of the user's right eye may be approximately equal to the distance between the centers of the user's pupils when the user is looking at optical infinity (i.e., the optical axes of the user's eyes are substantially parallel to each other), which is the typical definition of the interpupillary distance (IPD). The user's IPD may be used by various components and modules within the wearable system. As an example, the user's IPD may be provided to the alignment observer 620 and used when assessing the extent to which the wearable device is aligned with the user's eyes (e.g., whether the left and right display lenses are appropriately spaced according to the user's IPD). As another example, the user's IPD may be provided to the convergence / divergence motion depth estimation module 728 and used when determining the user's convergence / divergence motion depth. The module 726 may employ various techniques such as those discussed in relation to the CoR estimation module 724 to increase the accuracy of the estimated IPD. As an example, the IPD estimation module 724 may apply filtering, averaging over time, weighted averaging, including an assumed IPD distance, a Kalman filter, etc. as part of the estimation of the user's IPD in an accurate manner.

[0170] The interocular axis estimation module 740 may receive data from one or more modules such as the IPD estimation module 726, the optical axis determination module 722, the 3D corneal center estimation module 716, the 3D pupil center locator module 720, the CoR estimation module 724, and the CoP estimation module 723. In particular, the interocular axis estimation module 740 may receive data indicating the estimated 3D positions of one or more features of the user's left and right eyes, such as the left and right eye rotation centers, the center of the viewpoint, the pupil position, the iris position, the optical axis, and the interpupillary distance. The interocular axis estimation module 740 may use such information to determine the location of the user's interocular axis. The interocular axis may extend between a feature of the user's left eye and the corresponding feature of the user's right eye. As an example, the interocular axis may extend between the rotation center of the left eye and the rotation center of the right eye. As another example, the interocular axis may extend between the left eye pupil and the right eye pupil. The interocular axis estimation module 740 may be able to determine the position and / or orientation of the interocular axis with respect to the wearable system, such as by determining the position of the user's eye (or some features thereof) with respect to the eye camera 324.

[0171] The convergence / divergence motion depth estimation module 728 may receive data from various modules and sub - modules within the eye - tracking module 614 (as shown in relation to FIG. 7A). In particular, the convergence / divergence motion depth estimation module 728 may employ data indicative of the estimated 3D position of the pupil center (e.g., as provided by the module 720 described above), one or more determined parameters of the optical axis (e.g., as provided by the module 722 described above), the estimated 3D position of the center of rotation (e.g., as provided by the module 724 described above), the estimated IPD (e.g., the Euclidean distance between the estimated 3D positions of the centers of rotation) (e.g., as provided by the module 726 described above), and / or one or more determined parameters of the optical axis and / or visual axis (e.g., as provided by the module 722 and / or the module 730 described below). The convergence / divergence motion depth estimation module 728 may detect or otherwise obtain a measurement of the user's convergence / divergence motion depth, which may be the distance from the user at which the user's eyes are focused. As an example, when the user is looking at an object 3 feet from their front, the user's left and right eyes have a convergence / divergence motion depth of 3 feet, while when the user is looking at a distant landscape (i.e., the optical axes of the user's eyes are substantially parallel to each other such that the distance between the centers of the user's pupils can be approximately equal to the distance between the centers of rotation of the user's left and right eyes), the user's left and right eyes have an infinite convergence / divergence motion depth. In some embodiments, the convergence / divergence motion depth estimation module 728 may utilize data indicative of the estimated centers of the user's pupils (e.g., as provided by the module 720) and determine the 3D distance between the estimated centers of the user's pupils. The convergence / divergence motion depth estimation module 728 may obtain a measurement of the convergence / divergence motion depth by comparing such a determined 3D distance between the pupil centers with the estimated IPD (e.g., the Euclidean distance between the estimated 3D positions of the centers of rotation) (e.g., as shown by the module 726 described above).In addition to the 3D distance between pupil centers and the estimated IPD, the convergence / divergence motion depth estimation module 728 may calculate the convergence / divergence motion depth using known, assumed, estimated, and / or determined geometries. As an example, module 728 may combine the 3D distance between pupil centers, the estimated IPD, and the 3D CoR position in a triangulation calculation to estimate (i.e., determine) the user's convergence / divergence motion depth. In fact, the evaluation of such a determined 3D distance between pupil centers relative to the estimated IPD can serve to indicate a measured value of the user's current convergence / divergence motion depth relative to optical infinity. In some embodiments, the convergence / divergence motion depth estimation module 728 may simply receive or access data indicative of the estimated 3D distance between the estimated centers of the user's pupils for the purpose of obtaining such a measurement of the convergence / divergence motion depth. In some embodiments, the convergence / divergence motion depth estimation module 728 may estimate the convergence / divergence motion depth by comparing the user's left and right optical axes. In particular, the convergence / divergence motion depth estimation module 728 may estimate the convergence / divergence motion depth by identifying the distance from the user at which the user's left and right optical axes intersect (or the projections of the user's left and right optical axes on a plane such as a horizontal plane intersect). Module 728 may utilize the user's IPD in this calculation by setting zero depth to be the depth at which the user's left and right optical axes are separated by the user's IPD. In at least some embodiments, the convergence / divergence motion depth estimation module 728 may determine the convergence / divergence motion depth by triangulating eye tracking data with known or derived spatial relationships.

[0172] In some embodiments, the vergence / accommodation depth estimation module 728 may estimate the user's vergence / accommodation depth based on the intersection of the user's visual axes (instead of its optical axis), which may provide a more accurate indication of the distance at which the user is focused. In at least some embodiments, the eye tracking module 614 may include an optical axis / visual axis mapping module 730. As will be discussed in more detail in connection with FIG. 10, the user's optical axis and visual axis generally do not coincide. The visual axis is the axis along which a person is looking, while the optical axis is defined by the center of the person's lens and pupil and may pass through the center of the person's retina. In particular, the user's visual axis is generally offset from the center of the user's retina, thereby resulting in different optical and visual axes, and is defined by the location of the user's fovea. In at least some of these embodiments, the eye tracking module 614 may include an optical axis / visual axis mapping module 730. The optical axis / visual axis mapping module 730 may correct for the difference between the user's optical axis and visual axis and provide information regarding the user's visual axis to other components within the wearable system, such as the vergence / accommodation depth estimation module 728 and the light field rendering controller 618. In some examples, the module 730 may use an assumed eye dimension 704 that includes a typical offset of approximately 5.2° inward (towards the nose, towards the user's nose) between the optical axis and the visual axis. In other words, the module 730 may shift the user's left optical axis 5.2° to the right towards the nose (nasally) and the user's right optical axis 5.2° to the left towards the nose (nasally) to estimate the directions of the user's left and right optical axes. In other examples, the module 730 may utilize per-user calibration data 706 when mapping the optical axis (e.g., as indicated by the module 722 described above) to the visual axis. As an additional example, the module 730 may shift the user's optical axis nasally by any range formed by, for example, 4.0° - 6.5°, 4.5° - 6.0°, 5.0° - 5.4°, etc., or any of these values.In some arrays, module 730 may apply an offset, at least in part, based on characteristics of a particular user, such as their age, gender, visual prescription, or other relevant characteristics, and / or at least in part, based on a calibration process for a particular user (i.e., to determine the optical axis - visual axis offset of a particular user). In at least some embodiments, module 730 may also offset the origin of the left and right optical axes and correspond to the user's CoP (as determined by module 732) instead of the user's CoR.

[0173] When an optional center of perspective (CoP) estimation module 732 is provided, it may estimate the locations of the user's left and right centers of perspective (CoP). The CoP is a useful location for a wearable system and, in at least some embodiments, may be the position directly in front of the pupil. In at least some embodiments, the CoP estimation module 732 may estimate the locations of the user's left and right centers of perspective based on the 3D location of the user's pupil center, the 3D location of the center of the user's corneal curvature, or such suitable data, or any combination thereof. As an example, the user's CoP may be approximately 5.01 mm in front of the center of the corneal curvature (i.e., 5.01 mm in the direction along the optical axis from the center of the corneal sphere towards the eye's cornea) and may be approximately 2.97 mm behind the outer surface of the user's cornea along the optical or visual axis. The user's center of perspective may be directly in front of the center of their pupil. As an example, the user's CoP may be less than approximately 2.0 mm from the user's pupil, less than approximately 1.0 mm from the user's pupil, less than approximately 0.5 mm from the user's pupil, or any range between these values. As another example, the center of perspective may correspond to a location within the anterior chamber of the eye. As another example, the CoP may be at 1.0 mm to 2.0 mm, approximately 1.0 mm, 0.25 mm to 1.0 mm, 0.5 mm to 1.0 mm, or 0.25 mm to 0.5 mm.

[0174] (As the potentially desirable position of the pinhole of the rendering camera and the anatomical position within the user's eye) The center of perspective described herein can be a position that serves to reduce and / or eliminate undesirable parallax shifts. In particular, the optical system of the user's eye closely approximates the theoretical system formed by the projection of the front pinhole of the lens onto the screen, where the pinhole, lens, and screen generally correspond to the user's pupil / iris, lens, and retina, respectively. Further, when two point light sources (or objects) at different distances from the user's eye rotate precisely about the opening of the pinhole (e.g., rotated along a radius of curvature equal to their individual distances from the opening of the pinhole), it may be desirable for there to be little or no parallax shift. Thus, the CoP would be expected to be located at the center of the pupil of the eye (and such a CoP may be used in some embodiments). However, the human eye includes the cornea, which in addition to the pinholes of the lens and pupil, imparts additional refractive power to the light propagating towards the retina. Thus, the anatomical equivalent of the pinhole within the theoretical system described in this paragraph can be the region of the user's eye located between the outer surface of the user's eye's cornea and the center of the user's eye's pupil or iris. For example, the anatomical equivalent of the pinhole can correspond to a region within the anterior chamber of the user's eye. For various reasons discussed herein, it may be desirable to set the CoP at such a position within the anterior chamber of the user's eye.

[0175] As discussed above, the eye tracking module 614 may provide data such as the estimated 3D positions of the left and right eye centers of rotation (CoR), the vergence / accommodation depth, the left and right eye optical axes, the 3D positions of the user's eyes, the 3D positions of the left and right centers of the user's corneal curvature, the 3D positions of the user's left and right pupil centers, the 3D positions of the user's left and right fixation centers, the user's IPD, etc. to other components such as the light field rendering controller 618 and the alignment observer 620 within the wearable system. The eye tracking module 614 may also include other sub-modules that detect and generate data associated with other aspects of the user's eyes. As an example, the eye tracking module 614 may include a blink detection module that provides a flag or other alert each time the user blinks, and a saccade detection module that provides a flag or other alert each time the user's eyes saccade (i.e., rapidly shift focus to another point). (Example of a rendering controller)

[0176] A detailed block diagram of an exemplary light field rendering controller 618 is shown in FIG. 7B. As shown in FIGS. 6 and 7B, the rendering controller 618 may receive eye tracking information from the eye tracking module 614 and may provide an output to the rendering engine 622, which may generate an image to be displayed for viewing by a user of the wearable system. As an example, the rendering controller 618 may receive information regarding the vergence / accommodation depth, the left and right eye centers of rotation (and / or fixation centers), and other eye data such as blink data, saccade data, etc.

[0177] The depth plane selection module 750 may receive convergence / divergence motion depth information and, based on such data, cause the rendering engine 622 to provide the user with the content appearing as if it were located on a particular depth plane (i.e., a particular depth of field or focal distance). As discussed in connection with FIG. 4, the wearable system may include a plurality of discrete depth planes formed by a plurality of waveguides, each transmitting image information with a variable level of wavefront curvature. In some embodiments, the wearable system may include one or more variable depth planes, such as optical elements, that transmit image information with a level of wavefront curvature that varies over time. In these and other embodiments, the depth plane selection module 750 may cause the rendering engine 622 to transmit the content to the user at a selected depth, at least in part, based on the user's convergence / divergence motion depth (i.e., cause the rendering engine 622 to instruct the display 220 to switch depth planes). In at least some embodiments, the depth plane selection module 750 and the rendering engine 622 may render the content at different depths and also generate and / or provide depth plane selection data to a display hardware such as the display 220. The display hardware such as the display 220 may perform electrical depth plane switching in response to depth plane selection data (which may be control signals) generated and / or provided by modules such as the depth plane selection module 750 and the rendering engine 622.

[0178] Generally, it may be desirable for the depth plane selection module 750 to select a depth plane that matches the user's current convergence / divergence motion depth so that the user is provided with accurate depth of field cues. However, it may also be desirable to switch depth planes in a careful and unobtrusive manner. As an example, it may be desirable to avoid excessive switching between depth planes and / or to switch depth planes at times when the user is less likely to notice the switch, such as during a blink or an eye saccade.

[0179] The hysteresis band intersection detection module 752 can be particularly useful in avoiding excessive switching between depth planes, especially when the user's convergence / divergence movement depth varies at the midpoint or transition point between two depth planes. In particular, module 752 may cause the depth plane selection module 750 to exhibit hysteresis in its selection of depth planes. As an example, module 752 may cause the depth plane selection module 750 to switch from a first, more distant depth plane to a second, closer depth plane only after the user's convergence / divergence movement depth has passed a first threshold. Similarly, module 752 may cause the depth plane selection module 750 (and thus instruct a display such as display 220) to switch to the first, more distant depth plane only after the user's convergence / divergence movement depth has passed a second threshold that is further from the user than the first threshold. In the overlapping region between the first threshold and the second threshold, module 750 may cause the depth plane selection module 750 to be maintained as if whichever depth plane was selected is currently selected as the depth plane, and thus may avoid excessive switching between depth planes.

[0180] The eye event detection module 750 may receive other eye data from the eye tracking module 614 of FIG. 7A, and may delay several depth plane switches to the depth plane selection module 750 until an eye event occurs. As an example, the eye event detection module 750 may delay a planned depth plane switch to the depth plane selection module 750 until a user blink is detected, and may receive data from a blink detection component within the eye tracking module 614 indicating that the user is currently blinking, and in response, may cause the depth plane selection module 750 to perform a planned depth plane switch during the blink event (such as by instructing module 750 to perform a depth plane switch on the display 220 during the blink event). In at least some embodiments, the wearable system may be able to shift content onto a new depth plane during a blink event such that the user is less likely to perceive the shift. As another example, the eye event detection module 750 may delay a planned depth plane switch until an eye saccade is detected. As discussed in relation to eye blinks, such an arrangement may facilitate discrete shifts in depth planes.

[0181] Optionally, the depth plane selection module 750 may delay a planned depth plane switch only for a limited time period prior to performing the depth plane switch even in the absence of an eye event. Similarly, the depth plane selection module 750 may perform a depth plane switch even in the absence of an eye event when the user's convergence / divergence motion depth is substantially outside the currently selected depth plane (i.e., when the user's convergence / divergence motion depth exceeds a predetermined threshold that exceeds a normal threshold for depth plane switching). These arrangements may help ensure that the eye event detection module 754 does not indefinitely delay depth plane switches and does not delay delayed depth plane switches when there are large depth of field adjustment errors.

[0182] The rendering camera controller 758 may provide information indicating the locations of the user's left and right eyes to the rendering engine 622. The rendering engine 622 may then generate content by simulating the camera at the locations of the user's left and right eyes and generating the content based on the viewpoints of the simulated cameras. As discussed above, the rendering camera may potentially be a simulated camera for use in rendering virtual image content from a database of objects within the virtual world. The objects may have locations and orientations relative to the user or wearer, potentially relative to real objects within the environment surrounding the user or wearer. The rendering camera may be included within the rendering engine and may render a virtual image based on a database of virtual objects to be presented to the eyes. The virtual image may be rendered as if it were captured from the viewpoint of the user or wearer. For example, the virtual image may be rendered as if it were captured by a camera (corresponding to the "rendering camera") having an aperture, lens, and detector for viewing objects within the virtual world. The virtual image is captured from the viewpoint of such a camera having the position of the "rendering camera". For example, the virtual image may be rendered as if it were captured from the camera viewpoint having a specific location relative to the user or wearer's eyes so as to provide an image that appears to be from the viewpoint of the user or wearer. In some embodiments, the image may be rendered as if it were captured from the camera viewpoint having an aperture at a specific location relative to the user or wearer's eyes (such as a viewpoint center or rotation center or other location as discussed herein).

[0183] The rendering camera controller 758 may determine the positions of the left and right cameras based on the left and right centers of rotation (CoR) determined by the CoR estimation module 724 and / or based on the left and right centers of perspective (CoP) determined by the CoP estimation module 732. In some embodiments, the rendering camera controller 758 may switch between the CoR location and the CoP location based on various factors. As an example, the rendering camera controller 758, in various modes, may constantly align the rendering camera to the CoR location, constantly align the rendering camera to the CoP location, toggle between aligning the rendering camera to the CoR location and aligning the rendering camera to the CoP location over time based on various factors, or discretely switch, or dynamically align the rendering camera to any of a range of different positions along the optical (or visual) axis between the CoR location and the CoP location over time based on various factors. The CoR and CoP positions may optionally pass through a smoothing filter 756 (in any of the aforementioned modes for rendering camera positioning), which may average the CoR and CoP locations over time, reduce noise at these locations, and prevent jitter when rendering the simulated rendering camera.

[0184] In at least some embodiments, the rendering camera may be simulated as a pinhole camera with a pinhole located at the estimated CoR or CoP position identified by the eye tracking module 614. Since the CoP is offset from the CoR, whenever the position of the rendering camera is based on the user's CoP, the locations of both the rendering camera and its pinhole are offset as the user's eyes rotate. In contrast, whenever the position of the rendering camera is based on the user's CoR, the location of the pinhole of the rendering camera does not move with eye rotation, but the rendering camera (behind the pinhole) may move with eye rotation in some embodiments. In other embodiments where the position of the rendering camera is based on the user's CoR, the rendering camera may not move (i.e., rotate) with the user's eyes. (Example of Alignment Observer)

[0185] A block diagram of an exemplary alignment observer 620 is shown in FIG. 7C. As shown in FIGS. 6, 7A, and 7C, alignment observer 620 may receive eye tracking information from eye tracking module 614 (FIGS. 6 and 7A). As an example, alignment observer 620 may receive information regarding the left and right eye rotation centers of the user (e.g., the three-dimensional positions of the user's left and right eye rotation centers that are on a common coordinate system or that may have a reference common frame with the head-mounted display system 600). As another example, alignment observer 620 may receive display-related properties, fit tolerance, and an eye tracking validity indicator. The display-related properties may include information regarding the display (e.g., display 200 of FIG. 2), such as the field of view of the display, the size of one or more display surfaces, and the position of the display surface relative to the head-mounted display system 600. The fit tolerance may include information regarding the display alignment volume that may indicate the distance by which the user's left and right eyes may move from their nominal positions before display performance is affected. Additionally, the fit tolerance may indicate the amount of display performance impact expected as a function of the position of the user's eyes.

[0186] As shown in FIG. 7C, alignment observer 620 may include a 3D position fit module 770. The position fit module 770 may, as an example, acquire and analyze various data including, for example, the left eye rotation center 3D position (e.g., CoR left), the right eye rotation center 3D position (e.g., CoR right), display-related properties, and fit tolerance. The 3D position fit module 770 may determine the distances of the user's left and right eyes from their respective left and right eye nominal positions (e.g., may calculate 3D left error and 3D right error) and may provide the error distances (e.g., 3D left error and 3D right error) to a device 3D fit module 772.

[0187] The 3D position fit sense module 770 may also compare the error distance to the display-attached properties and the fit sense tolerance to determine whether the user's eye is within the nominal volume, a partially degraded volume (e.g., a volume in which the performance of the display 220 is partially degraded), or a completely degraded or almost completely degraded volume (e.g., a volume in which it is substantially impossible for the display 220 to provide content to the user's eye). In at least some embodiments, the 3D position fit sense module 770 or the 3D fit sense module 772 may provide an output that qualitatively describes the fit sense of the HMD on the user, such as the fit sense quality output shown in FIG. 7C. As an example, the module 770 may provide an output indicating whether the current fit sense of the HMD on the user is good, within tolerance, or a failure. A good fit sense may correspond to a fit sense that allows the user to view at least a certain percentage (such as 90%) of the image, a within-tolerance fit sense may allow the user to view at least a lower percentage (such as 80%) of the image, while a failed fit sense may be a fit sense in which only an even lower percentage of the image is visible to the user.

[0188] As another example, the 3D position fit sense module 770 and / or the device 3D fit sense module 772 may calculate a visible area metric, which may be a percentage of the overall area (or pixels) of the image displayed by the display 220 visible to the user. Modules 770 and 772 may use one or more models (e.g., mathematical or geometric models), one or more look-up tables, or other techniques for determining the percentage of the image visible to the user as a function of the position of the user's eyes, or a combination of these and other techniques, to calculate the visible area metric by evaluating the position of the user's left and right eyes relative to the display 220 (which may be based on the center of rotation of the user's eyes). Additionally, modules 770 and 772 may determine the area or portion of the image displayed by the display 220 that is expected to be visible to the user as a function of the position of the user's eyes.

[0189] The alignment observer 620 may also include the device 3D fit sense module 772. Module 772 may receive data from the 3D position fit sense module 770 and may also receive an eye tracking valid indicator, which may be provided by the eye tracking module 614 and may indicate whether the eye tracking system is currently tracking the position of the user's eyes or whether the eye tracking data is unavailable or under error conditions (e.g., determined to be unreliable). The device 3D fit sense module 772 may, if desired, modify the fit sense quality data received from the 3D position fit sense module 770 according to the state of the eye tracking valid data. For example, if data from the eye tracking system indicates that it is not available or has an error, the device 3D fit sense module 772 may provide a notification that an error exists and / or may not provide an output regarding the fit sense quality or fit sense error to the user.

[0190] In at least some embodiments, the alignment observer 620 may provide feedback to the user regarding the quality of the fit as well as details of the nature and magnitude of the error. As an example, a head-mounted display system may provide feedback to the user during calibration or fitting processes (e.g., as part of a setup procedure), and may also provide feedback during operation (e.g., if the fit degrades due to slippage, the alignment observer 620 may prompt the user to readjust the head-mounted display system). In some embodiments, the alignment analysis may be performed automatically (e.g., during use of the head-mounted display system), and the feedback may be provided without user input. These are merely illustrative examples. (Example of locating the user's cornea using an eye tracking system)

[0191] FIG. 8A is a schematic view of an eye showing the corneal sphere of the eye. As shown in FIG. 8A, the user's eye 810 may have a cornea 812, a pupil 822, and a lens 820. The cornea 812 may have a generally spherical shape, indicated by the corneal sphere 814. The corneal sphere 814 may have a center point 816, also referred to as the corneal center, and a radius 818. The hemispherical cornea of the user's eye may curve around the corneal center 816.

[0192] FIGS. 8B-8E illustrate examples of locating the user's corneal center 816 using the 3D corneal center estimation module 716 and the eye tracking module 614.

[0193] As shown in FIG. 8B, the 3D corneal center estimation module 716 may receive an eye tracking image 852 that includes a corneal flash 854. The 3D corneal center estimation module 716 may then simulate the known 3D positions of the eye camera 324 and the light source 326 (which may be obtained based on data in the eye tracking accessory and intrinsic property database 702, the assumed eye dimension database 704, and / or the per-user calibration data 706) within the eye camera coordinate system 850 in order to project a light ray 856 within the eye camera coordinate system. In at least some embodiments, the eye camera coordinate system 850 may have its origin at the 3D position of the eye tracking camera 324.

[0194] In FIG. 8C, the 3D corneal center estimation module 716 simulates a corneal sphere 814a (which may be obtained based on the assumed eye dimensions from the database 704) and a corneal curvature center 816a at a first position. The 3D corneal center estimation module 716 may then check whether the corneal sphere 814a would appropriately reflect light from the light source 326 to the flash position 854. As shown in FIG. 8C, the first position does not match because the light ray 860a does not intersect the light source 326.

[0195] Similar to FIG. 8D, the 3D corneal center estimation module 716 simulates a corneal sphere 814b and a corneal curvature center 816b at a second position. The 3D corneal center estimation module 716 then checks whether the corneal sphere 814b would appropriately reflect light from the light source 326 to the flash position 854. As shown in FIG. 8D, the second position also does not match.

[0196] As shown in FIG. 8E, the 3D corneal center estimation module 716 can ultimately determine that the correct positions of the corneal sphere are the corneal sphere 814c and the corneal curvature center 816c. The 3D corneal center estimation module 716 checks that the light from the source 326 will be properly reflected from the corneal sphere and imaged at the correct location of the flash 854 on the image 852 by the camera 324, thereby confirming that the illustrated position is correct. By using this arrangement, and the known 3D positions of the light source 326, the camera 324, as well as the optical properties (such as focal length) of the camera, the 3D corneal center estimation module 716 can determine the 3D location (with respect to the wearable system) of the center 816 of the curvature of the cornea.

[0197] The processes described herein, at least in relation to FIGS. 8C - 8E, can in fact be an iterative, repetitive, or optimization process for identifying the 3D position of the user's corneal center. Thus, any of a plurality of techniques (e.g., iterative, optimization techniques, etc.) may be used to efficiently and quickly sort or reduce the search space of possible positions. Further, in some embodiments, the system may include two, three, four, or more light sources such as the light source 326, and some of all of these light sources may be arranged at different positions, resulting in a plurality of flashes such as the flash 854 located at different positions on the image 852 and a plurality of light rays such as the light ray 856 having different origins and directions. Such embodiments can improve the accuracy of the 3D corneal center estimation module 716 because the module 716 can search for corneal positions that result in some or all of the flashes and light rays being properly reflected between their individual light sources and their individual positions on the image 852. In other words, in these embodiments, the positions of some or all of the light sources can rely on the 3D corneal positioning (e.g., iterative, optimization techniques, etc.) process of FIGS. 8B - 8E. (Example of normalizing the coordinate system of the eye tracking image)

[0198] Figures 9A - 9C illustrate an exemplary normalization of the coordinate system of an eye - tracking image by components within a wearable system, such as the coordinate system normalization module 718 of FIG. 7A. Normalization of the coordinate system of the eye - tracking image with respect to the location of the user's pupil may compensate for slippage of the wearable system with respect to the user's face (i.e., headset slippage), and such normalization may establish a consistent orientation and distance between the eye - tracking image and the user's eye.

[0199] As shown in FIG. 9A, the coordinate system normalization module 718 may receive the estimated 3D coordinates 900 of the center of rotation of the user's cornea and may receive an un - normalized eye - tracking image, such as image 852. The eye - tracking image 852 and the coordinates 900 may be, as an example, within an un - normalized coordinate system 850 based on the location of the eye - tracking camera 324.

[0200] In a first normalization step, the coordinate system normalization module 718 may rotate the coordinate system 850 into a rotated coordinate system 902 such that, as shown in FIG. 9B, the z - axis of the coordinate system (i.e., the vergence / accommodation depth axis) may be aligned with the vector between the origin of the coordinate system and the corneal curvature center coordinates 900. In particular, the coordinate system normalization module 718 may rotate the eye - tracking image 850 into a rotated eye - tracking image 904 until the coordinates 900 of the user's corneal curvature center are normal to the plane of the rotated image 904.

[0201] As a second normalization step, the coordinate system normalization module 718 may translate the rotated coordinate system 902 into a normalized coordinate system 910 such that, as shown in FIG. 9C, the corneal curvature center coordinates 900 are at a standard - normalized distance 906 from the origin of the normalized coordinate system 910. In particular, the coordinate system normalization module 718 may translate the rotated eye - tracking image 904 into a normalized eye - tracking image 912. In at least some embodiments, the standard - normalized distance 906 may be about 30 millimeters. Optionally, the second normalization step may be performed prior to the first normalization step. (Example of using an eye - tracking system to locate the centroid of the user's pupil)

[0202] Figures 9D-9G illustrate an example of locating the user's pupil center (i.e., the center of the user's pupil 822 as shown in Figure 8A) using the 3D pupil center locator module 720 and the eye tracking module 614.

[0203] As shown in Figure 9D, the 3D pupil center locator module 720 may receive a normalized eye tracking image 912 that includes the pupil centroid 913 (i.e., the center of the user's pupil as identified by the pupil identification module 712). The 3D pupil center locator module 720 may then simulate the normalized 3D position 910 of the eye camera 324 and project a light ray 914 through the pupil centroid 913 within the normalized coordinate system 910.

[0204] In Figure 9E, the 3D pupil center locator module 720 may simulate a corneal spherical surface, such as a corneal spherical surface 901 having a center of curvature 900, based on data from the 3D corneal center estimation module 716 (and as discussed in more detail in relation to Figures 8B-8E). As an example, the corneal spherical surface 901 may be positioned within the normalized coordinate system 910 based on the location of the center of curvature 816c identified in relation to Figure 8E and based on the normalization process of Figures 9A-9C. Additionally, the 3D pupil center locator module 720 may identify a first intersection 916 between the light ray 914 (i.e., the light ray between the origin of the normalized coordinate system 910 and the normalized location of the user's pupil) and the simulated cornea as shown in Figure 9E.

[0205] As shown in FIG. 9F, the 3D pupil center locator module 720 may determine a pupil sphere 918 based on the corneal sphere 901. The pupil sphere 918 shares a common center of curvature with the corneal sphere 901, but may have a smaller radius. The 3D pupil center locator module 720 may determine the distance between the corneal center 900 and the pupil sphere 918 (i.e., the radius of the pupil sphere 918) based on the distance between the corneal center and the pupil center. In some embodiments, the distance between the pupil center and the corneal center of curvature may be determined from the assumed eye dimensions 704 of FIG. 7A, from the eye tracking incidental and intrinsic property database 702, and / or from the per-user calibration data 706. In other embodiments, the distance between the pupil center and the corneal center of curvature may be determined from the per-user calibration data 706 of FIG. 7A.

[0206] As shown in FIG. 9G, the 3D pupil center locator module 720 may locate the 3D coordinates of the center of the user's pupil based on various inputs. As an example, the 3D pupil center locator module 720 may use the 3D coordinates and radius of the pupil sphere 918, the 3D coordinates of the intersection 916 between the ray 914 associated with the simulated corneal sphere 901 and the pupil centroid 913 in the normalized eye tracking image 912, information regarding the refractive index of the cornea, and other relevant information such as the refractive index of air (which may be stored in the eye tracking incidental and intrinsic property database 702) to determine the 3D coordinates of the center of the user's pupil. In particular, in the simulation, the 3D pupil center locator module 720 may bend the ray 916 into the refracted ray 922 based on the refractive difference between air (at a first refractive index of approximately 1.00) and the corneal material (at a second refractive index of approximately 1.38). After considering the refraction caused by the cornea, the 3D pupil center locator module 720 may determine the 3D coordinates of the first intersection 920 between the refracted ray 922 and the pupil sphere 918. The 3D pupil center locator module 720 may determine that the center 920 of the user's pupil is located approximately at the first intersection 920 between the refracted ray 922 and the pupil sphere 918. By using this arrangement, the 3D pupil center locator module 720 may determine the 3D location of the pupil center 920 (with respect to the wearable system) within the normalized coordinate system 910. Optionally, the wearable system may denormalize the coordinates of the pupil center 920 into the original eye camera coordinate system 850. The pupil center 920 may be used together with the corneal curvature center 900 to determine, among other things, the user's optical axis using the optical axis determination module 722 and the user's convergence / divergence movement depth using the convergence / divergence movement depth estimation module 728. (Example of the difference between the optical axis and the visual axis)

[0207] As discussed in connection with the optical axis / view axis mapping module 730 of FIG. 7A, the user's optical axis and view axis are generally not aligned, in part because the user's view axis is defined by the fovea, which is generally not at the center of a person's retina. Thus, when a person desires to focus on a particular object, the person aligns their view axis with the object, ensuring that light from the object strikes the fovea while their optical axis (defined by the center of their pupil and the center of curvature of their cornea) is actually slightly offset from the object. FIG. 10 is an example of an eye 1000 that illustrates the optical axis 1002 of the eye, the view axis 1004 of the eye, and the offset between these axes. Additionally, FIG. 10 illustrates the pupil center 1006 of the eye, the center of curvature 1008 of the eye's cornea, and the eye's average center of rotation (CoR) 1010. In at least some populations, the center of curvature 1008 of the eye's cornea can be approximately 4.7 mm in front of the average center of rotation (CoR) 1010 of the eye, as indicated by dimension 1012. Additionally, the center of the eye's viewpoint 1014 can be approximately 5.01 mm in front of the center of curvature 1008 of the eye's cornea, approximately 2.97 mm behind the outer surface 1016 of the user's cornea, and / or directly in front of the user's pupil center 1006 (e.g., corresponding to a location within the anterior chamber of the eye 1000). As an additional example, dimension 1012 can be in the range of 3.0 mm to 7.0 mm, 4.0 to 6.0 mm, 4.5 to 5.0 mm, or 4.6 to 4.8 mm, or any range between any value within these ranges. The center of the eye's viewpoint (CoP) 1014 can be a useful location for a wearable system in at least some embodiments, as aligning a rendering camera to the CoP can help reduce or eliminate parallax artifacts.

[0208] FIG. 10 also illustrates such a location within the human eye 1000 that can be aligned with the pinhole of the rendering camera. As shown in FIG. 10, the pinhole of the rendering camera may be aligned with a location 1014 along the optical axis 1002 or visual axis 1004 of the human eye 1000 that is closer to the outer surface of the cornea than both (a) the center of the pupil or iris 1006 and (b) the center of the corneal curvature 1008 of the human eye 1000. For example, as shown in FIG. 10, the pinhole of the rendering camera may be aligned with a location 1014 along the optical axis 1002 of the human eye 1000 that is about 2.97 millimeters rearward from the outer surface of the cornea and about 5.01 millimeters forward from the center of the corneal curvature 1008. The location 1014 of the pinhole of the rendering camera and / or the anatomical region of the human eye 1000 corresponding to the location 1014 may be regarded as representing the center of the viewing point of the human eye 1000. The optical axis 1002 of the human eye 1000 as shown in FIG. 10 represents the shortest line passing through the center of the corneal curvature 1008 and the center of the pupil or iris 1006. The visual axis 1004 of the human eye 1000 is different from the optical axis 1002 because it represents a line extending from the fovea of the human eye 1000 to the center of the pupil or iris 1006. (Exemplary process for rendering content and checking alignment based on eye tracking)

[0209] FIG. 11 is a process flow diagram of an exemplary method 1100 for providing feedback regarding alignment within a wearable device using eye tracking when rendering content. Method 1100 may be implemented by the wearable system described herein. Embodiments of method 1100 may be used by the wearable system to render content and provide feedback regarding alignment (i.e., the fit of the wearable device to the user) based on data from an eye tracking system.

[0210] In block 1110, the wearable system may capture an image of one or both of the user's eyes. The wearable system may use one or more eye cameras 324 to capture an eye image, at least as shown in the embodiment of FIG. 3. Optionally, the wearable system may also include one or more light sources 326 configured to shine IR light onto the user's eyes and produce a corresponding flash within the eye image captured by the eye camera 324. As discussed herein, the flash may be used by the eye tracking module 614 to derive various information about the user's eyes, including where the eyes are looking.

[0211] In block 1120, the wearable system may detect a flash and a pupil within the eye image captured in block 1110. As an example, block 1120 may include processing the eye image by a flash detection and labeling module 714 to identify the 2D position of the flash within the eye image, and processing the eye image by a pupil identification module 712 to identify the 2D position of the pupil within the eye image.

[0212] In block 1130, the wearable system may estimate the 3D positions of the user's left and right corneas relative to the wearable system. As an example, the wearable system may estimate the positions of the centers of curvature of the user's left and right corneas and the distances between those centers of curvature and the user's left and right corneas. Block 1130 may be accompanied by a 3D corneal center estimation module 716 that identifies the positions of the centers of curvature, at least as described herein in connection with FIGS. 7A and 8A-8E.

[0213] In block 1140, the wearable system may estimate the 3D positions of the user's left and right pupil centers relative to the wearable system. As an example, the wearable system and a 3D pupil center locator module 720 may estimate the positions of the user's left and right pupil centers as part of block 1140, particularly as described in connection with FIGS. 7A and 9D-9G.

[0214] In block 1150, the wearable system may estimate the three-dimensional position of the user's left and right centers of rotation (CoR) relative to the wearable system. As an example, the wearable system and the CoR estimation module 724 may estimate the position of the CoR with respect to the user's left and right eyes, particularly as described in relation to at least FIGS. 7A and 10. As a particular example, the wearable system may find the eye's CoR by retrograde along the optical axis from the center of curvature of the cornea towards the retina.

[0215] In block 1160, the wearable system may estimate the user's IPD, convergence / divergence movement depth, center of perspective (CoP), optical axis, visual axis, and other desired attributes from the eye tracking data. As an example, as part of block 1160, the IPD estimation module 726 may estimate the user's IPD by comparing the 3D positions of the left and right CoRs, the convergence / divergence movement depth estimation module 728 may estimate the user's depth by finding the intersection (or near intersection) of the left and right optical axes or the intersection of the left and right visual axes, the optical axis determination module 722 may identify the left and right optical axes over time, the optical axis / visual axis mapping module 730 may identify the left and right visual axes over time, and the CoP estimation module 732 may identify the left and right centers of perspective.

[0216] In block 1170, the wearable system may render content and optionally provide feedback regarding alignment (i.e., the fit of the wearable system to the user's head), based in part on the eye-tracking data identified in blocks 1120 - 1160. As an example, the wearable system may identify a suitable location for the rendering camera, as discussed in relation to the light field rendering controller 618 (FIG. 7B) and the rendering engine 622, and then generate content for the user based on the location of the rendering camera. As another example, the wearable system may determine whether it is properly fitted to the user or has slipped from its proper location relative to the user, as discussed in relation to the alignment observer 620, and may optionally provide the user with feedback indicating whether the fit of the device needs adjustment. In some embodiments, the wearable system may adjust the rendered content based on improper or quasi-ideal alignment in an attempt to reduce, minimize, or compensate for the effects of improper or misaligned alignment. (Overview of Device Alignment)

[0217] The wearable system 200 described in this specification, in order to output high-perception high-quality images, the display 220 of the wearable system 200 (Figure 2) is preferably fitted appropriately to the user (e.g., the input and output of the system 200 interface appropriately with the corresponding part of the user's head, and the device is positioned and oriented with respect to the user's head so as to be stable and comfortable for wearing and use). As an example, in order for the display 220 to provide visual content to the user's eyes, the display 220 is preferably positioned in front of the user's eyes, and depending on the relevant properties of the display 220, the user's eyes are preferably positioned within a specific volume. As an additional example, the speaker 240 is preferably positioned near, on, or in the user's ear to provide high-quality audio content to the user, the audio sensor (e.g., microphone) 232 is preferably positioned within a specific area to receive sound from the user, and the imaging system 462 facing inward (which may include one or more cameras 324 and one or more infrared light sources 326) is preferably positioned appropriately in position and orientation for obtaining a clear and unobstructed image of the user's eyes (which may be part of an eye tracking system). These are simply examples of various reasons why the wearable system 200 is preferably fitted appropriately to the user.

[0218] To ensure that the wearable system 200 is properly positioned relative to the user, the wearable system 200 may include an alignment observer, such as alignment observer 620 of FIG. 6. In some embodiments, a properly positioned wearable system 200 includes a display positioned such that one or both of the user's eyes receive sufficient image light and can view substantially the entire field of view provided by display 220 of the wearable display system 200. For example, a properly positioned display may enable an image to be viewable across about 80% or more, about 85% or more, about 90% or more, or about 95% or more of the field of view of the display, with a brightness uniformity of 80% or more, about 85% or more, about 90% or more, or about 95% or more. Brightness uniformity may be equal to 100% multiplied by the minimum luminance divided by the maximum luminance across the entire field of view of the display when the display is showing the same content across the entire field of view (100%×L min / L max ). It should be understood that it can be equal.

[0219] The alignment observer 620 may use various sensors to determine the extent to which the wearable system 200 fits on the user (e.g., whether the display 220 of the wearable system 200 is properly positioned on the user). As an example, the alignment observer 620 may use an inward-facing imaging system 462, which may include an eye-tracking system, to determine the extent to which relevant portions of the wearable system 200 are spatially oriented relative to the user, particularly the user's eyes, ears, mouth, or other portions that interface with the wearable system 200.

[0220] The alignment observer 620 may assist in the calibration process of an initial or subsequent configuration or setting of the wearable system 200 for a particular user. As an example, the alignment observer 620 may provide feedback to the user during the configuration or setting of the wearable system 200 for that particular user. Additionally, or alternatively, the alignment observer 620 may continuously or intermittently monitor the alignment of the wearable system 200 on the user, check for continuous proper alignment during use, and may provide on-the-fly user feedback. The alignment observer 620 may provide user feedback indicating when the wearable system 200 is properly aligned and when it is not, either as part of the configuration process or as part of the alignment monitoring during use. The alignment observer 620 may also provide specific recommendations for how the user can correct any alignment misalignment and achieve proper alignment. As an example, the alignment observer 620 may recommend that the user push the wearable device back up after detecting slippage of the wearable device (such as below the user's nasal bridge), and may recommend that the user adjust some adjustable components of the wearable device, etc. (Example of an alignment coordinate system)

[0221] Figures 12A-12B illustrate an exemplary eye position coordinate system that can be used to define the three-dimensional positions of a user's left and right eyes relative to a display of a wearable system described herein. As an example, the coordinate system may include axes x, y, and z. The z-axis of the coordinate system may correspond to depth (e.g., the direction normal to the plane of the front of the user's face), such as the distance between the plane in which the user's eyes are located and the plane in which the display 220 is located. The x-axis of the coordinate system may correspond to the left-right direction, such as the distance between the user's left and right eyes. In other words, the x-axis may generally be parallel to the inter-ocular axis (e.g., the line between corresponding left and right eye features such as the center of rotation). The y-axis of the coordinate system may correspond to the up-down direction, which may be the vertical direction when the user is standing upright.

[0222] Figure 12A illustrates a side view of a user's eye 1200 and a display surface 1202 (which may be part of the display 220 of FIG. 2), while Figure 12B illustrates a top-down view of the user's eye 1200 and the display surface 1202. The display surface 1202 may be positioned in front of the user's eyes and may output image light to the user's eyes. As an example, the display surface 1202 may include one or more externally coupled light elements, active or pixel display elements, and may be part of a stack of waveguides such as the stacked waveguide assembly 480 of FIG. 4. In some embodiments, the display surface 1202 may be planar. In some other embodiments, the display surface 1202 may have other topologies (e.g., be curved). It should be understood that the display surface 1202 may be the physical surface of the display, or simply a plane or other imaginary surface from which it is understood that image light propagates from the display 220 to the user's eyes.

[0223] As shown in FIG. 12A, the user's eye 1200 may have an actual position 1204 that is offset from the nominal position 1206, and the display surface 1202 may be at position 1214. FIG. 12A also illustrates the corneal apex 1212 of the user's eye 1200. The user's line of sight (e.g., its optical axis and / or visual axis) may be substantially along the line between the actual position 1204 and the corneal apex 1212. As shown in FIGS. 12A and 12B, the actual position 1204 may be offset from the nominal position 1206 by a z-offset 1210, a y-offset 1208, and an x-offset 1209. The nominal position 1206 may represent a preferred position (sometimes also referred to as a design position that can generally be centered within a desired volume) for the user's eye 1200 relative to the display surface 1202. As the user's eye 1200 moves away from the nominal position 1206, the performance of the display surface 1202 may degrade.

[0224] It should be understood that a point or volume associated with the user's eye 1200 can be used to represent the position of the user's eye in the alignment analysis herein. The representative point or volume can preferably be any point or volume associated with the eye 1200 that is consistently used. For example, the point or volume may be on or within the eye 1200, or may be disposed away from the eye 1200. In some embodiments, the point or volume is the center of rotation of the eye 1200. The center of rotation can be determined as described herein, is generally symmetrically disposed on various axes within the eye 1200, and has the advantage of simplifying the alignment analysis to enable a single display alignment volume that is aligned with the optical axis to be utilized for the analysis.

[0225] FIG. 12A also illustrates that the display surface 1202 can be aligned below the user's horizontal line (as seen along the y-axis when the user is looking straight ahead with the optical axis of their eyes parallel to the ground) and can be tilted (with respect to the y-axis). In particular, the display surface 1202 can be disposed slightly below the user's horizontal line such that the user would need to look down at approximately angle 1216 to view the center of the display surface 1202 when the eye 1200 is at position 1206. This can promote a more natural and comfortable interaction with the display surface 1202, especially when viewing content rendered at a shorter depth (or distance from the user), as the user may find it more comfortable to view content below their horizontal line than above it. Additionally, the display surface 1202 can be tilted at an angle 1218 etc. (with respect to the y-axis) such that the display surface 1202 is substantially perpendicular to the user's line of sight when the user is looking at the center of the display surface 1202 (e.g., looking slightly below the user's horizontal line as described below). In at least some embodiments, the display surface 1202 may also be offset to the left or right (e.g., along the x-axis) with respect to the nominal position of the user's eyes. As an example, when the user's line of sight is focused at a distance less than infinity, the left-eye display surface may be offset to the right and the right-eye display surface may be offset to the left (e.g., the display surfaces 1202 may be offset towards each other) such that the center of the display surface strikes the line of sight, which can increase user comfort during typical use on a wearable device. (Example of vertically aligning the left and right eye displays on the user's head)

[0226] As described above, proper alignment between the left and right eye displays of a head-mounted display (HMD) (e.g., display 220 within wearable system 200 of FIG. 3) and the user's eyes can be important to ensure a desirable user experience. For example, if the left eye display is vertically offset from the user's left eye by a different amount than the right eye display is vertically offset from the user's right eye due to normal wear of the device over time or by other means of deformation, the user may experience discomfort and eye strain.

[0227] In some embodiments, the head-mounted display system is configured to determine whether its left and right eye displays are horizontal with respect to the user's eyes (e.g., their interpupillary axis), with the ultimate goal of correcting calibration metrics of the left or right display subsystem (such as projector inputs for the corresponding left or right eyepiece) such that the images projected through the left and right eye displays are horizontal with the interpupillary axis between the eyes, provide appropriate user feedback, and prompt the user to adjust the images displayed on the left or right eyepiece.

[0228] The display system may then provide the user with left and right eye images having alignment markers. The alignment markers may be provided such that any vertical offset between the left eye display and the right eye display is visible to the user. In other words, if there is a vertical offset between the left eye display and the right eye display (e.g., the left eye display is vertically offset with respect to the right eye display), the user may perceive that the images from the left and right eye displays are vertically misaligned and that it is impossible to properly fuse the images (e.g., the offset may be visible in the form of a horizontal portion of the alignment markers that are not aligned with each other). It should be understood that the horizontal portion of the alignment markers may be in the form of other mirror image shapes or arrangements of lines that do not completely overlap when vertically misaligned.

[0229] 13 and 14 illustrate exemplary display screens that may be provided to a user of a head-mounted display (HMD) (e.g., display 220, FIG. 3) as part of leveling the HMD (e.g., leveling the horizontal axis extending through the left-eye and right-eye displays of the HMD) relative to the user's eyes (e.g., its interocular axis). In particular, FIG. 13 illustrates display screen 1300, including exemplary guides that may be provided to assist the user in leveling the HMD.

[0230] The display screen 1300 may also include feedback regarding the current orientation of the HMD with respect to the user's eyes. Such feedback may take the form of an avatar 1304 (e.g., a virtual representation of the user) and a virtual depiction 1302 of the HMD. The avatar 1304 may be depicted in a vertical orientation (such that the interpupillary axis is in a horizontal orientation), while the orientation of the virtual depiction 1302 of the HMD may be tilted with respect to the horizontal. The amount and direction of the tilt of the virtual depiction 1302 may be based on the estimated orientation of the interpupillary axis with respect to the HMD (e.g., as determined by module 740 of FIG. 7A). In other embodiments, the avatars 1302 and 1304 may be omitted or may be static. In various embodiments, the amount and direction of the tilt of the HMD may be communicated to the user via other indicia such as alignment markers 1306 and 1308. The alignment marker 1306 may correspond to the user's interpupillary axis (e.g., presented as a horizontal line), while the alignment marker 1308 may indicate the tilt of the HMD with respect to the interpupillary axis. In one example, the marker 1306 may remain static, while the marker 1308 shifts as the user adjusts the HMD on their head towards horizontal. In some embodiments, the orientation of the HMD is determined using various sensors attached to the HMD that image one or more reference points within the external environment and determine the orientation of the HMD based on those reference points, including gyroscopes, accelerometers, and / or imaging systems. Generally, the alignment markers may take any suitable shape or form. By using alignment markers, the user may be able to quickly perceive whether the HMD is tilted on their head, including the direction and amount. Thus, the user may correct the tilt of the HMD until it is properly horizontal.

[0231] As shown in Figure 14, when a user successfully adjusts the tilt of the HMD so that the HMD is level on their head (e.g., when the interocular axis or a portion thereof is parallel to a horizontal axis extending between the left-eye display and the right-eye display of the HMD, when the interocular axis or a portion thereof falls within a predetermined volume defined for the HMD, etc.), the user may be presented with a display screen, such as screen 1400, indicating successful leveling of the HMD. In the example of Figure 14, the user has successfully leveled the HMD and is shown marker 1402. Marker 1402 may appear, for example, when marks 1306 and 1308 in Figure 13 overlap.

[0232] Following leveling the HMD on the user, the system may implement a left-eye and right-eye display alignment protocol to properly level the display of images through rigid displays that are not themselves vertically aligned. In particular, the display alignment process may check and identify (e.g., automatically or based on user feedback) any discrepancies in vertical alignment between the left and right displays and their respective eyes. In other words, the display alignment process may check whether the user's left eye has a first vertical alignment (such as a first offset along the Y-axis of FIG. 12A ) with the HMD's left-eye display, while the user's right eye has a second, different vertical alignment (such as a second offset of a different magnitude along the Y-axis of FIG. 12A ) with the HMD's right-eye display (e.g., automatically or by providing the user with an alignment marker that highlights any misalignment to the user and receiving user feedback regarding any misalignment). It should be understood that differences in vertical alignment between the left and right sides can occur even when the HMD is mounted horizontally on the user's head due to various factors, such as deflection or damage to the HMD, which can cause one or both of the left and right eye displays to be shifted so that they are not at the same vertical height even when the HMD is determined to be horizontal with the interocular axis of the user's eyes.

[0233] 15 and 16 illustrate exemplary display screens that may be provided to a user of a head-mounted display (HMD) (e.g., display 220, FIG. 3) as part of identifying any vertical misalignment remaining after leveling. As shown in FIG. 15, a display screen such as screen 1500 may include user instructions and alignment markers, such as markers 1502, 1504, and 1506, that highlight any vertical misalignment to the user. In some embodiments, the alignment markers may take the form of a laterally extending letter "T." However, it should be understood that the alignment markers may take other shapes or forms.

[0234] 16, the HMD may provide different, individual alignment markers to the user's left and right eyes to demonstrate any left-right vertical misalignment. For example, the HMD may display screen 1600a to the user's left eye and screen 1600b to the user's right eye. Screen 1600a may include left-eye horizontal alignment marker 1502 and vertical alignment marker 1506, while screen 1600b may include right-eye horizontal alignment marker 1504 and vertical alignment marker 1506. In some embodiments, screen 1600a may not include right-eye horizontal alignment marker 1504, and screen 1600b may not include left-eye horizontal alignment marker 1502.

[0235] When a user wearing an HMD views screens 1600a and 1600b simultaneously (e.g., with their left and right eyes, respectively), vertical alignment markers 1506a and 1506b may appear to the user as fused together (e.g., as mark 1506). However, because at least left-eye and right-eye horizontal alignment markers 1502 and 1504 are not spatially aligned with one another, the user does not perceive marks 1502 and 1504 as fused together. Instead, the user would be able to determine whether marks 1502 and 1504 are vertically aligned with one another (or whether a left-right vertical misalignment exists). In other words, an incorrectly aligned system would display the intended image of 1604 as exemplary misaligned image 1602.

[0236] In at least some embodiments, alignment markers 1502 and 1504 are first presented at the same location on the left and right eye displays, but variations can encourage the perception of misalignment of the locations. In some embodiments, the system may intentionally introduce a vertical offset between alignment markers 1502 and 1504. In such embodiments, the alignment of markers 1502 and 1504 does not necessarily represent the alignment of the left and right eye displays. For example, the left and right eye displays may exhibit relatively little or no misalignment, but in these embodiments, markers 1502 and 1504 presented by the system may exhibit a relatively large amount of misalignment. Doing so can serve to facilitate user involvement in the display alignment process. That is, some users may feel more compelled to actively participate in the display alignment process when markers 1502 and 1504 presented by the system exhibit a relatively high degree of misalignment. In some examples, the vertical positions of alignment markers 1502 and 1504 may be randomized, pseudo-randomized, or quasi-randomized. For example, the system may randomly, pseudo-randomly, or quasi-randomly select the vertical positions of alignment markers 1502 and 1504 from a predetermined range of vertical positions. In some embodiments, the system may randomly, pseudo-randomly, or quasi-randomly select an offset between alignment markers 1502 and 1504 from a predetermined range of offsets. In some embodiments, the display system may be configured to randomly, pseudo-randomly, or quasi-randomly select an offset based on a pseudo-random number generator such as a Mersenne Twister, Xorshift, etc. In some embodiments, the pseudo-random number generator may directly generate an offset value.In some other embodiments, each offset may be associated with a number or set of numbers, and the generation of a number by a pseudo-random number generator may be used to select an offset that is associated with the generated number or the set to which the generated number belongs (e.g., each offset may be associated with one or more unique numbers or sets of numbers, the numbers may be generated using a pseudo-random generator, and the offset to be applied may be selected based on a correspondence between the generated number (or set to which the number belongs) and the number (or set of numbers) associated with the offset).

[0237] The system may take into account the selected vertical positions of markers 1502 and 1504 and / or the selected offset between markers 1502 and 1504 when the user provides an input for vertically aligning markers 1502 and 1504. After the user provides an input for vertically aligning markers 1502 and 1504, the system may be able to determine the magnitude and direction of the left-right vertical misalignment based on the magnitude and direction of the user input. Preferably, the adjustment of the vertical alignment is performed on only one display at a time.

[0238] Regarding embodiments in which the HMD includes a stack of waveguides, the adjustment of vertical alignment may be performed on only one waveguide at a time. Thus, in some embodiments, the system may perform a display alignment process for each waveguide included within the waveguide stack of the HMD. In some examples, the waveguide stack of the HMD may include a plurality of waveguides, e.g., three waveguides per depth plane. The number of waveguides corresponds to the number of primary colors used by the display system and may form full-color content. For example, for an RGB (red, green, blue) display system, the three waveguides provided per depth plane may include a waveguide configured to output red light, a waveguide configured to output green light, and a waveguide configured to output blue light. The system may present markers 1502 and 1504 in each primary color, e.g., red when performing display alignment for the waveguide configured to output red light, green when performing display alignment for the waveguide configured to output green light, and blue when performing display alignment for the waveguide configured to output blue light. In some embodiments, the system may perform display alignment for each waveguide sequentially (e.g., the alignment may be performed sequentially for different waveguides corresponding to different primary colors and / or different waveguides providing different amounts of wavefront divergence corresponding to different depth planes). In some other embodiments, the system may perform display alignment simultaneously for some or all of the waveguides within the waveguide stack of the HMD. In such embodiments, markers 1502 and 1504 may be presented simultaneously in various colors (e.g., red, green, and blue versions of markers 1502 and 1504) and / or at various depths (using waveguides providing different amounts of wavefront divergence), and the user may be able to provide an input to vertically shift one marker at a time.

[0239] It should be understood that user input may be provided using any input device available to the user. For example, gestures, voice activation commands, physical toggles, etc. may be used to provide input. As a specific example, FIG. 17 is a perspective view of a user's hand 1700 and a controller 1701 including various input devices 1702, 1704, 1706. Any of the input devices 1702, 1704, 1706 may be configured to provide input regarding a desired vertical offset for aligning the alignment markers 1502 and 1504. (Exemplary process for vertically aligning left and right eye displays on the user's head)

[0240] FIG. 18 is a process flow diagram of an exemplary method 1800 for leveling a head-mounted display system on a user's head and adjusting the vertical alignment of the left and right displays of the display system. Method 1800 may be implemented by the wearable system described herein.

[0241] In block 1802, the wearable system may determine a potential need to adjust the calibration of a head-mounted display (HMD) (e.g., display 220, FIG. 3). The wearable system may determine, individually or in combination, based on various factors including the number of hours since the last calibration, detection of potential or actual deformation of the HMD (e.g., detection of an impact event with an accelerometer or other sensor), detection of misalignment of the HMD (e.g., determination by an eye tracking component that one or both of the user's eyes are not in the designed position relative to the HMD), in response to startup of the HMD, in response to launching an application on the HMD, in response to determining that the HMD is installed on the user's head, etc. As an additional option, the calibration process may be recommended to the user by a user manual, customer service, or other source, and block 1802 may involve receiving a user request to perform the calibration process.

[0242] In block 1804, the wearable system may perform a device leveling flow, which may include blocks such as blocks 1806 and 1808. In block 1806, the HMD may determine the inter-ocular axis of the user and the horizontal axis of the device, which is an axis between the left and right eye displays of the HMD or can be measured relative to the gravity vector of the world coordinate frame of the HMD. Block 1806 may involve determining whether the inter-ocular axis and the horizontal axis of the device are parallel or whether there is an inclination between the two axes. In some embodiments, block 1806 may involve determining whether the inter-ocular axis or a part thereof falls within a predetermined volume defined with respect to the HMD. In block 1808, the HMD may provide feedback to the user regarding the leveling of the HMD. Such feedback may take the form of displaying the alignment markers 1306 and 1308 of FIG. 13. Blocks 1806 and 1808 may continue until the user finishes the alignment process or levels the HMD properly on their head (e.g., aligns mark 1308 with mark 1306).

[0243] In block 1810, the wearable system may perform a display alignment flow, which may include blocks such as blocks 1812 and 1814. In block 1812, the HMD may provide non-fused left and right eye alignment markers. As an example, the HMD may display the alignment marker 1502 of FIGS. 15 and 16 on the left eye display and the alignment marker 1504 of FIGS. 15 and 16 on the right eye display, as discussed herein. As described above, in some embodiments, the HMD may display one or both of the alignment markers 1502 and 1504 at randomly, pseudo-randomly, or quasi-randomly selected vertical positions. In block 1814, the wearable system may receive user feedback regarding left or right eye display vertical alignment adjustment. In particular, as discussed in relation to FIGS. 15-17, the wearable system may receive user input to shift at least one of the alignment markers 1502 and 1504 until the markers are perpendicularly aligned with each other from the user's perspective. Blocks 1812 and 1814 may continue until the user ends the alignment process or approves any vertical adjustments made to the alignment markers. As described above, in some embodiments, the wearable system may perform one display alignment process per waveguide included in the HMD. In these embodiments, the wearable system may perform operations associated with one or more of blocks 1810, 1812, and 1814 for each waveguide included in the HMD.

[0244] In block 1816, the wearable system may implement any adjustments provided by the user for left - right vertical alignment. As an example, if user feedback indicates that the right - eye display is lower than the left - eye display by a given amount, the wearable system may compensate for the misalignment by shifting the image content displayed via the right - eye display upward by a given amount, by shifting the image content displayed via the left - eye display downward by a given amount, or by appropriate combinations of shifts of the right - and left - eye content (e.g., following completion of the alignment process of FIG. 18).

[0245] In some embodiments, in block 1816, the wearable system may adjust one or more incidental parameters of a rendering camera associated with the left - eye display and one or more incidental parameters of a rendering camera associated with the right - eye display. For example, in these embodiments, the wearable system may adjust the position and / or orientation of one or both of two rendering cameras (e.g., the left - eye display and the right - eye display) at least in part based on input provided by the user. In some embodiments, the wearable system may skip operations associated with blocks 1804, 1806, and / or 1808. In these embodiments, the wearable system may proceed to block 1810 immediately after performing the operations associated with block 1802. (Computer vision for detecting objects in the surrounding environment)

[0246] As discussed above, the display system may be configured to detect objects or their properties in the environment surrounding the user. The detection may be accomplished using various techniques, including various environmental sensors (e.g., cameras, audio sensors, temperature sensors, etc.) as discussed herein.

[0247] In some embodiments, objects present in the environment may be detected using computer vision techniques. For example, as disclosed herein, a camera facing forward of the display system may be configured to image the surrounding environment, and the display system may be configured to perform image analysis on the image to determine the presence of objects in the surrounding environment. The display system may analyze an image obtained by an outward-facing imaging system to perform scene reconstruction, event detection, video tracking, object recognition, object pose estimation, learning, indexing, motion estimation, or image restoration, etc. As another example, the display system may be configured to perform face and / or eye recognition to determine the presence and location of faces and / or human eyes within the user's field of view. One or more computer vision algorithms may be used to perform these tasks. Non-limiting examples of computer vision algorithms include Scale-Invariant Feature Transform (SIFT), Speeded-Up Robust Features (SURF), Oriented FAST and Rotated BRIEF (ORB), Binary Robust Invariant Scalable Keypoints (BRISK), Fast Retina Keypoints (FREAK), Viola-Jones algorithm, Eigenfaces approach, Lucas-Kanade algorithm, Horn-Schunk algorithm, Mean-shift algorithm, Visual Simultaneous Localization and Mapping (vSLAM) techniques, Sequential Bayesian estimators (e.g., Kalman filter, Extended Kalman filter, etc.), Bundle adjustment, Adaptive thresholding (and other thresholding techniques), Iterative Closest Point (ICP), Semi-Global Matching (SGM), Semi-Global Block Matching (SGBM), Histogram of Feature Points, various machine learning algorithms (e.g., Support Vector Machine, k-Nearest Neighbor algorithm, Naive Bayes, Neural Network (including Convolutional or Deep Neural Network), or other supervised / unsupervised models, etc.).

[0248] One or more of these computer vision techniques may also be used in combination with data obtained from other environmental sensors (e.g., microphones, etc.) to detect and determine various properties of the objects detected by the sensors.

[0249] As discussed herein, objects in the surrounding environment may be detected based on one or more criteria. When a display system uses a computer vision algorithm or uses data received from one or more sensor assemblies (which may or may not be part of the display system) to detect the presence or absence of criteria in the surrounding environment, the display system may then signal the presence of an object. (Machine learning)

[0250] Various machine learning algorithms may be used to learn to identify the presence of objects in the surrounding environment. Once trained, the machine learning algorithms may be stored by the display system. Some examples of machine learning algorithms may include supervised or unsupervised machine learning algorithms, regression algorithms (e.g., ordinary least squares regression, etc.), instance-based algorithms (e.g., learning vector quantization, etc.), decision tree algorithms (e.g., classification and regression trees, etc.), Bayesian algorithms (e.g., naive Bayes, etc.), clustering algorithms (e.g., k-means clustering, etc.), association rule learning algorithms (e.g., Apriori algorithm, etc.), artificial neural network algorithms (e.g., Perceptron, etc.), deep learning algorithms (e.g., Deep Boltzmann Machine, i.e., deep neural network, etc.), dimensionality reduction algorithms (e.g., principal component analysis, etc.), ensemble algorithms (e.g., Stacked Generalization, etc.), and / or other machine learning algorithms. In some embodiments, individual models may be customized for individual datasets. For example, a wearable device may generate or store a base model. The base model is used as a starting point and may generate additional models specific to a data type (e.g., a particular user), a dataset (e.g., a set of additional images to be acquired), a conditional situation, or other variations. In some embodiments, the display system can be configured to generate a model for the analysis of aggregated data using multiple techniques. Other techniques may include using predefined thresholds or data values.

[0251] The criteria for detecting an object may include one or more threshold conditions. If the analysis of the data obtained by the environmental sensor indicates that the threshold condition has been reached, the display system may provide a signal indicating the detection of the presence of an object in the surrounding environment. The threshold condition may involve quantitative and / or qualitative measurement values. For example, the threshold condition may include a score or percentage associated with the likelihood of reflection and / or the presence of an object in the environment. The display system may compare the score calculated from the environmental sensor data with a threshold score. If the score is higher than the threshold level, the display system may detect the presence of reflection and / or an object. In some other embodiments, the display system may signal the presence of an object in the environment if the score is lower than the threshold. In some embodiments, the threshold condition may be determined based on the user's emotional state and / or interaction with the user's surrounding environment.

[0252] In some embodiments, the threshold condition, machine learning algorithm, or computer vision algorithm may be specialized for a specific context. For example, in a diagnostic context, the computer vision algorithm may be specialized to detect a certain response to a stimulus. As another example, the display system may execute a face recognition algorithm and / or an event tracing algorithm as discussed herein to sense the user's reaction to a stimulus.

[0253] The processes, methods, and algorithms described in this specification and / or depicted in the accompanying figures are each embodied in code modules that are executed by one or more physical computing systems, hardware computer processors, application-specific circuits, and / or electronic hardware configured to execute specific and particular computer instructions, whereby they can be fully or partially automated. For example, a computing system can include a general-purpose computer (e.g., a server) or a dedicated computer, a dedicated circuit, etc., programmed with specific computer instructions. The code modules can be installed in a dynamic link library that can be compiled and linked into an executable program, or can be written in an interpreted type programming language. In some embodiments, certain operations and methods can be implemented by circuits specific to a given function.

[0254] Furthermore, the functional embodiments of the present disclosure are sufficiently mathematically, computationally, or technically complex that a hardware specific to a particular use or one or more physical computing devices (utilizing appropriate specialized executable instructions) may be required to implement the functionality, for example, due to the amount or complexity of the calculations involved or to provide the results substantially in real time. For example, a video can include many frames, each frame can have millions of pixels, and specifically programmed computer hardware is required to process the video data to provide the desired image processing tasks or applications in a commercially reasonable amount of time.

[0255] A code module or any type of data can be stored on any type of non-transitory computer-readable medium, such as a physical computer storage device including a hard drive, solid state memory, random access memory (RAM), read only memory (ROM), optical disk, volatile or non-volatile storage device, a combination of the same, and / or equivalents. In some embodiments, the non-transitory computer-readable medium may be part of one or more of the local processing and data module (140), the remote processing module (150), and the remote data repository (160). The method and module (or data) may also be transmitted as a data signal generated on various computer-readable transmission media, including wireless-based and wire / cable-based media (e.g., as part of a carrier wave or other analog or digital propagated signal), and may take various forms (e.g., as part of a single or multiplexed analog signal or as multiple discrete digital packets or frames). The result of the disclosed process or process step can be persistently or otherwise stored within any type of non-transitory tangible computer storage device or communicated via a computer-readable transmission medium.

[0256] Any process, block, state, step, or functionality in a flowchart described and / or depicted in the figures attached to and / or accompanying this specification is to be understood as potentially representing a code module, segment, or portion of code that includes one or more executable instructions for implementing a specific function (e.g., logical or arithmetic) or step in a process. The various processes, blocks, states, steps, or functionality can be combined, rearranged, added, deleted, modified, or otherwise changed from the exemplary embodiments provided herein. In some embodiments, additional or different computing systems or code modules may implement some or all of the functionality described herein. The methods and processes described herein are also not limited to any particular sequence, and the associated blocks, steps, or states can be performed in a suitable other sequence, e.g., sequentially, in parallel, or in some other manner. Tasks or events can be added to or removed from the disclosed exemplary embodiments. Further, the separation of the various system components in the embodiments described herein is for purposes of illustration and should not be understood as requiring such separation in all embodiments. It is to be understood that the program components, methods, and systems described can generally be integrated together in a single computer product or packaged into multiple computer products. (Other Considerations)

[0257] The processes, methods, and algorithms described in this specification and / or depicted in the accompanying figures are each embodied in code modules that are executed by one or more physical computing systems, hardware computer processors, application-specific circuits, and / or electronic hardware configured to execute specific and particular computer instructions, thereby being fully or partially automated. For example, a computing system may include a general-purpose computer (e.g., a server) or a dedicated computer, a dedicated circuit, etc., programmed with specific computer instructions. The code modules may be installed in a dynamic link library that can be compiled and linked into an executable program, or written in an interpreted type programming language. In some embodiments, certain operations and methods may be performed by circuits specific to a given function.

[0258] Furthermore, the functional embodiments of the present disclosure are sufficiently mathematically, computationally, or technically complex such that a special-purpose hardware or one or more physical computing devices (utilizing appropriate specialized executable instructions) may be required to implement the functionality, for example, due to the amount or complexity of the calculations involved or to provide the results substantially in real time. For example, a video or a video clip may include many frames, each frame may have millions of pixels, and specifically programmed computer hardware is required to process the video data to provide the desired image processing tasks or applications in a commercially reasonable amount of time.

[0259] A code module or any type of data can be stored on any type of non-transitory computer-readable medium such as a physical computer storage device including a hard drive, solid state memory, random access memory (RAM), read only memory (ROM), optical disk, volatile or non-volatile storage device, combinations of the same, and / or equivalents. The methods and modules (or data) can also be transmitted as data signals generated on various computer-readable transmission media including wireless-based and wired / cable-based media (e.g., as part of a carrier wave or other analog or digital propagated signal) and can take various forms (e.g., as part of a single or multiplexed analog signal or as multiple discrete digital packets or frames). The results of the disclosed process or process steps can be persistently or otherwise stored within any type of non-transitory tangible computer storage device or communicated via a computer-readable transmission medium.

[0260] Any process, block, state, step, or functionality in the flow diagrams described in and / or depicted in the accompanying figures should be understood as potentially representing a code module, segment, or portion of code that includes one or more executable instructions for implementing a specific function (e.g., logical or arithmetic) or step in a process. The various processes, blocks, states, steps, or functionality may be combined, rearranged, added, deleted, modified, or otherwise changed from the exemplary embodiments provided herein. In some embodiments, additional or different computing systems or code modules may implement some or all of the functionality described herein. The methods and processes described herein are also not limited to any particular sequence, and the associated blocks, steps, or states can be performed in a suitable other sequence, e.g., sequentially, in parallel, or in some other manner. Tasks or events can be added to or removed from the disclosed exemplary embodiments. Further, the separation of the various system components in the embodiments described herein is for illustrative purposes and should not be understood as requiring such separation in all embodiments. It should be understood that the described program components, methods, and systems can generally be integrated together in a single computer product or packaged into multiple computer products. Many variations of the embodiments are possible.

[0261] The present process, method, and system can be implemented in a network (or distributed) computing environment. The network environment can include an enterprise-wide computer network, an intranet, a local area network (LAN), a wide area network (WAN), a personal area network (PAN), a cloud computing network, a cloud source computing network, the Internet, and the World Wide Web. The network can be a wired or wireless network or any other type of communication network.

[0262] The systems and methods of the present disclosure each have several innovative aspects, none of which alone contribute to or are required for the desirable attributes disclosed herein. The various features and processes described above can be used independently of one another or combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of the present disclosure. Various modifications of the embodiments described in the present disclosure may be readily apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments without departing from the spirit or scope of the present disclosure. Accordingly, the claims are not intended to be limited to the embodiments shown herein but are to be accorded the widest scope consistent with the present disclosure, the principles, and the novel features disclosed herein.

[0263] In the context of separate implementations, certain features described herein may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable sub-combination. Further, features may be described above as acting in a certain combination and may further be claimed as such initially, but one or more features from the claimed combination may, in some cases, be deleted from the combination and the claimed combination may be directed to a sub-combination or a variation of a sub-combination. No single feature or group of features is necessary or essential to every embodiment.

[0264] In particular, conditional clauses used herein such as “can,” “could,” “might,” “may,” “e.g.,” and equivalents, generally convey that while one embodiment includes a certain feature, element, or step, other embodiments do not, unless specifically stated otherwise or understood otherwise within the context in which they are used. Thus, such conditional clauses are not generally intended to imply that a feature, element, and / or step is required in any way for one or more embodiments, or that one or more embodiments necessarily include logic for determining whether these features, elements, and / or steps should be included or implemented in any particular embodiment, regardless of the author's input or prompting. The terms “comprising,” “including,” “having,” and equivalents are synonyms and are used inclusively in a non-limiting manner, without excluding additional elements, features, acts, operations, etc. Also, the term “or” is used in its inclusive sense (and not in its exclusive sense), and thus, for example, when used to connect a list of elements, the term “or” means one, some, or all of the elements in the list. Additionally, the articles “a,” “an,” and “the” as used in this application and the appended claims should be construed to mean “one or more” or “at least one” unless otherwise defined.

[0265] As used herein, the phrase referring to a list of items "at least one of" refers to any combination of those items, including a single element. As an example, "at least one of A, B, or C" is intended to cover A, B, C, A and B, A and C, B and C, and A, B, and C. Connective phrases such as "at least one of X, Y, and Z" are generally understood in a context such that, unless specifically stated otherwise, they are used to convey that an item, term, etc. can be at least one of X, Y, or Z. Thus, such connective phrases are generally not intended to suggest that an embodiment requires that at least one of X, at least one of Y, and at least one of Z each be present.

[0266] Similarly, operations may be depicted in the drawings in a particular order, but it should be recognized that this is not required for achieving the desired result, such that the operations are performed in the particular order in which they are shown, or in a sequential order, or that all of the illustrated operations be performed. Additionally, the drawings may schematically depict one or more exemplary processes in the form of a flowchart. However, other operations not depicted may also be incorporated into the exemplary methods and processes schematically illustrated. For example, one or more additional operations may be performed before, after, concurrently with, or during any of the illustrated operations. In addition, operations may be rearranged or reordered in other embodiments. In some situations, multitasking and parallel processing may be advantageous. Further, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the program components and systems described are generally integrated together in a single software product or packaged into multiple software products. Additionally, other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve the desired result.

Claims

【Claim 1】 The invention described in this specification.

Citation Information

Patent Citations

  • Optical position adjusting method in head-mounted display

    JP2011221235A

  • System for optimal eye fit of headset display device

    US20140375540A1

  • Dynamic display calibration based on eye-tracking

    US20170124928A1

  • Periocular test for mixed reality calibration

    WO2018067357A2