Depth Sensing Techniques for Virtual, Augmented, and Mixed Reality Systems

The described method and system for operating a depth sensor with a state machine and arbiter efficiently switch between modes, addressing inefficiencies in conventional systems, thereby improving responsiveness and depth information collection in VR/AR/MR systems.

JP7723720B2Active Publication Date: 2025-08-14MAGIC LEAP INC

Patent Information

Application Number
JP2023197268
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-03-21
Filing Date
2023-11-21
Publication Date
2025-08-14
Estimated Expiration
2038-03-19

AI Technical Summary

Technical Problem

Conventional depth sensors in VR/AR/MR systems face inefficiencies and lag due to the time required to switch between different operational modes, which affects the responsiveness and efficiency of depth information collection.

Method used

A method and system for operating a depth sensor with multiple modes, including a state machine and arbiter to prioritize and schedule depth sensing operations, allowing seamless switching between modes without additional configuration steps, and storing multiple operational sequences in memory.

Benefits of technology

Enhances the efficiency and responsiveness of depth information collection by reducing the time spent on mode switching, enabling faster adaptation to varying depth sensing demands in VR/AR/MR systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007723720000006
    Figure 0007723720000006
  • Figure 0007723720000007
    Figure 0007723720000007
  • Figure 0007723720000008
    Figure 0007723720000008
Patent Text Reader

Abstract

To provide depth sensing techniques for virtual, augmented and mixed reality systems.SOLUTION: The invention provides a system and method for operating a sensor which has at least two modes of operation. The sensor may be provided with a sequence of common operation steps which are included in both a first sequence of operation steps which define a first mode of operation and a second sequence of operation steps which define a second mode of operation. The sensor may also be provided with one or more dummy operation steps which relate to the difference between the first mode of operation and the second mode of operation. The sensor can be operated in the first mode of operation by causing the sensor to execute at least the common operation steps, and the sensor can be operated in the second mode of operation by causing the sensor to execute the common operation steps and at least one dummy operation step.SELECTED DRAWING: None
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] (Citation of Related Application) Any and all applications for foreign and domestic priority identified in any Application Data Sheet filed in connection with this application are hereby incorporated by reference under Rule 37 CFR 1.57, i.e., this application claims priority to U.S. Provisional Patent Application No. 62 / 474,503, filed March 21, 2017, entitled "DEPTH SENSING TECHNIQUES FOR VIRTUAL, AUGMENTED, AND MIXED REALITY SYSTEMS," which is hereby incorporated by reference in its entirety. (Field)

[0002] The present disclosure relates to depth sensors such as those that may be used in virtual reality, augmented reality, and mixed reality imaging and visualization systems. [Background technology]

[0003] Modern computing and display technology has facilitated the development of virtual reality, augmented reality, and mixed reality systems. Virtual reality or "VR" systems create simulated environments for users to experience. This can be done by presenting computer-generated images to the user through a head-mounted display. The images generate a sensory experience that immerses the user in the simulated environment. Virtual reality scenarios typically involve not only the presentation of computer-generated images, but also the inclusion of real-world images.

[0004] Augmented reality systems generally supplement real-world environments with simulated elements. For example, an augmented reality or "AR" system may provide a user with a view of the surrounding real-world environment via a head-mounted display. However, computer-generated imagery may also be presented on the display to augment the real-world environment. The computer-generated imagery may include elements that are contextually relevant to the real-world environment. Such elements may include simulated text, images, objects, etc. A mixed reality or "MR" system is a type of AR system that also introduces simulated objects into the real-world environment, but these objects typically feature a greater degree of interactivity. The simulated elements may often be interactive in real time.

[0005] 1 depicts an exemplary AR / MR scene 1 in which a user is viewing a real-world park-like setting 6 featuring people, trees, a building in the background, and a concrete platform 20. In addition to these items, computer-generated imagery is also presented to the user. The computer-generated imagery may include, for example, a robotic figure 10 standing on the real-world platform 20 and a flying, cartoon-like avatar character 2 that appears to be an anthropomorphic bumblebee, even though these elements 2, 10 do not actually exist in the real-world environment. Summary of the Invention [Means for solving the problem]

[0006] In some embodiments, a method for operating a sensor having at least two operating modes includes providing the sensor with a set of common operating steps included in both a first set of operating steps defining a first operating mode and a second set of operating steps defining a second operating mode; providing the sensor with one or more dummy operating steps related to differences between the first operating mode and the second operating mode; operating the sensor in the first operating mode by causing the sensor to perform at least the common operating step; and operating the sensor in the second operating mode by causing the sensor to perform the common operating step and the at least one dummy operating step.

[0007] In some embodiments, the sensor may be a depth sensor. The first operating mode may include a depth-sensing mode with a first frame rate, and the second operating mode may be a depth-sensing mode with a second frame rate that is slower than the first frame rate. For example, one or more of the dummy operating steps may include a delay.

[0008] In some embodiments, a system for operating a sensor having at least two operating modes comprises a processor configured to perform a method including providing the sensor with a set of common operating steps included in both a first set of operating steps defining a first operating mode and a second set of operating steps defining a second operating mode; providing the sensor with one or more dummy operating steps related to differences between the first operating mode and the second operating mode; operating the sensor in the first operating mode by causing the sensor to perform at least the common operating step; and operating the sensor in the second operating mode by causing the sensor to perform the common operating step and the at least one dummy operating step. The present invention provides, for example, the following. (Item 1) 1. A method of operating a sensor, the method comprising: providing the sensor with a common set of operational steps included in both a first set of operational steps defining a first mode of operation and a second set of operational steps defining a second mode of operation; providing one or more dummy operating steps to the sensor related to differences between the first and second operating modes; operating the sensor in the first operating mode by causing the sensor to perform at least the common operating steps; operating the sensor in the second operating mode by causing the sensor to perform the common operating step and at least one dummy operating step; A method comprising: (Item 2) 2. The method of claim 1, wherein the first operating mode includes performing at least the common operation step at a first rate, and the second operating mode includes performing the common operation step and at least one dummy operation step at a second rate that is slower than the first rate. (Item 3) 3. The method of claim 2, wherein at least one of the one or more dummy operation steps includes a delay. (Item 4) 2. The method of claim 1, wherein providing the sequence of common operating steps and the one or more dummy operating steps to the sensor includes storing the operating steps in a sensor memory. (Item 5) 5. The method of claim 4, wherein switching the sensor between the first and second operating modes does not require any additional action to store an operating step in the sensor memory. (Item 6) Item 10. The method of item 1, wherein the sensor comprises a depth sensor. (Item 7) Item 7. The method of item 6, wherein the depth sensor comprises a time-of-flight camera. (Item 8) 7. The method of claim 6, wherein the first operating mode includes a depth-sensing mode with a first frame rate, and the second operating mode includes a depth-sensing mode with a second frame rate that is slower than the first frame rate. (Item 9) 7. The method of claim 6, further comprising providing depth information from the depth sensor to a virtual reality, augmented reality, or mixed reality display system. (Item 10) 1. A system for operating a sensor, the system comprising a processor configured to perform a method, the method comprising: providing the sensor with a common set of operational steps included in both a first set of operational steps defining a first mode of operation and a second set of operational steps defining a second mode of operation; providing one or more dummy operating steps to the sensor related to differences between the first and second operating modes; operating the sensor in the first operating mode by causing the sensor to perform at least the common operating steps; operating the sensor in the second operating mode by causing the sensor to perform the common operating step and at least one dummy operating step; Including, the system. (Item 11) Item 11. The system of item 10, wherein the first operating mode includes performing at least the common operation step at a first rate, and the second operating mode includes performing the common operation step and at least one dummy operation step at a second rate that is slower than the first rate. (Item 12) Item 12. The system of item 11, wherein at least one of the one or more dummy operation steps includes a delay. (Item 13) Item 11. The system of item 10, wherein providing the sequence of common operating steps and the one or more dummy operating steps to the sensor includes storing the operating steps in a sensor memory. (Item 14) Item 14. The system of item 13, wherein switching the sensor between the first and second operating modes does not require any additional action to store an operating step in the sensor memory. (Item 15) Item 11. The system of item 10, wherein the sensor comprises a depth sensor. (Item 16) Item 16. The system of item 15, wherein the depth sensor comprises a time-of-flight camera. (Item 17) Item 16. The system of item 15, wherein the first operating mode includes a depth-sensing mode with a first frame rate, and the second operating mode includes a depth-sensing mode with a second frame rate that is slower than the first frame rate. (Item 18) Item 16. The system of item 15, wherein the system is integrated within a virtual reality, augmented reality, or mixed reality display system. (Item 19) Item 11. The system of item 10, wherein the processor comprises a state machine. (Item 20) Item 11. The system of item 10, further comprising an arbiter for receiving requests to operate the sensor in the first mode or the second mode, the arbiter configured to schedule and prioritize the requests. (Item 21) Item 11. The system of item 10, further comprising the sensor. (Item 22) 1. A method of operating a depth sensor, the method comprising: receiving a first request for a first type of depth measurement; receiving a second request for a second type of depth measurement; assigning a first priority to the first request; assigning a second priority to the second request; causing the depth sensor to obtain the first type of depth measurement first if the first priority is higher than the second priority, or causing the depth sensor to obtain the second type of depth measurement first if the second priority is higher than the first priority. A method comprising: (Item 23) Item 23. The method of item 22, wherein the first priority is assigned based on the priority of a first application requesting the first type of depth measurement, and the second priority is assigned based on the priority of a second application requesting the second type of depth measurement. (Item 24) 1. A system for operating a depth sensor, the system comprising: an arbiter configured to receive a first request for a depth measurement of a first type and a second request for a depth measurement of a second type, the arbiter configured to assign a first priority to the first request and a second priority to the second request; Processor and Equipped with The processor is configured to cause the depth sensor to obtain the first type of depth measurement first if the first priority is higher than the second priority, or to cause the depth sensor to obtain the second type of depth measurement first if the second priority is higher than the first priority. (Item 25) Item 25. The system of item 24, wherein the arbiter is configured to assign the first priority based on a priority of a first application requesting the first type of depth measurement, and to assign the second priority based on a priority of a second application requesting the second type of depth measurement. (Item 26) 25. The system of claim 24, wherein the system is integrated within a virtual, augmented, or mixed reality display system. (Item 27) 1. A method of operating a depth sensor, the method comprising: performing a configuration operation for a depth sensor, the configuration operation comprising: storing a first sequence of operational steps in a memory of the depth sensor that defines a first depth-sensing operational mode; storing a second series of operational steps in a memory of the depth sensor that defines a second depth-sensing operational mode; and receiving a first request for depth measurement according to the first depth-sensing mode of operation; In response to the first request, operating the depth sensor in the first operational mode by causing the depth sensor to perform the first series of operational steps; receiving a second request for depth measurement according to the second depth-sensing mode of operation; in response to the second request, causing the depth sensor to perform the second series of operational steps without performing additional configuration operations, thereby operating the depth sensor in the second operational mode. A method comprising: (Item 28) Item 28. The method of item 27, wherein the depth sensor comprises a time-of-flight camera. (Item 29) 28. The method of claim 27, wherein the first depth-sensing operating mode corresponds to a first measurement distance range, and the second depth-sensing operating mode corresponds to a second measurement distance range that is different from the first measurement distance range. (Item 30) 28. The method of claim 27, wherein the first depth-sensing operating mode corresponds to a first frame rate and the second depth-sensing operating mode corresponds to a second frame rate that is slower than the first frame rate. (Item 31) 28. The method of claim 27, further comprising providing depth information from the depth sensor to a virtual reality, augmented reality, or mixed reality display system. (Item 32) 1. A system for operating a depth sensor, the system comprising a processor configured to perform a method, the method comprising: performing configuration operations for a depth sensor, the configuration operations including storing in a memory of the depth sensor a first series of operational steps defining a first depth-sensing mode of operation, and storing in a memory of the depth sensor a second series of operational steps defining a second depth-sensing mode of operation; receiving a first request for depth measurement according to the first depth-sensing mode of operation; In response to the first request, operating the depth sensor in the first operational mode by causing the depth sensor to perform the first series of operational steps; receiving a second request for depth measurement according to the second depth-sensing mode of operation; in response to the second request, causing the depth sensor to perform the second series of operational steps without performing additional configuration operations, thereby operating the depth sensor in the second operational mode. Including, the system. (Item 33) Item 33. The system of item 32, wherein the depth sensor comprises a time-of-flight camera. (Item 34) Item 33. The system of item 32, wherein the first depth-sensing operating mode corresponds to a first measurement distance range and the second depth-sensing operating mode corresponds to a second measurement distance range different from the first measurement distance range. (Item 35) Item 33. The system of item 32, wherein the first depth-sensing operating mode corresponds to a first frame rate and the second depth-sensing operating mode corresponds to a second frame rate that is slower than the first frame rate. (Item 36) Item 33. The system of item 32, wherein the system is integrated within a virtual, augmented, or mixed reality display system. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 illustrates a user's view of an augmented reality (AR) scene using an exemplary AR system.

[0010] [Figure 2] FIG. 2 illustrates an example of a wearable VR / AR / MR display system.

[0011] [Figure 3] FIG. 3 illustrates an exemplary depth-sensing system.

[0012] [Figure 4] FIG. 4 illustrates an example of an improved method for efficiently operating a depth sensor in multiple depth sensing modes.

[0013] [Figure 5] FIG. 5 is an exemplary state diagram for efficiently operating a depth sensor in multiple depth sensing modes.

[0014] [Figure 6] FIG. 6 illustrates another example of an improved method for efficiently operating a depth sensor in multiple depth-sensing modes.

[0015] [Figure 7] FIG. 7 is an exemplary table showing common and dummy operating steps for multiple depth sensing modes.

[0016] [Figure 8] FIG. 8 is an example table illustrating how the common and dummy operating steps of FIG. 7 can be used to efficiently operate in multiple depth-sensing modes.

[0017] [Figure 9] FIG. 9 is an exemplary timing diagram for operating in a high dynamic range (HDR) depth sensing mode. DETAILED DESCRIPTION OF THE INVENTION

[0018] Virtual reality (VR), augmented reality (AR), and mixed reality (MR) systems can include displays that present computer-generated images to a user. In some embodiments, the display systems are wearable, which can advantageously provide a more immersive VR / AR / MR experience. The computer-generated images provided via the displays can create the impression of being three-dimensional. This can be done, for example, by presenting stereoscopic images to the user.

[0019] FIG. 2 illustrates an example of a wearable VR / AR / MR display system 80. The VR / AR / MR display system 80 includes a display 62 and various mechanical and electronic modules and systems to support the functionality of the display 62. The display 62 may be coupled to a frame 64, which is wearable by a wearable user 60 and positions the display 62 directly in front of the user's 60's eyes. A speaker 66 may be coupled to the frame 64 and positioned adjacent to the user's ear canal. Another speaker, not shown, may be positioned adjacent to the user's other ear canal to provide stereo / shapeable sound control. The display 62 is operably coupled to a local data processing module 70, which may be mounted in a variety of configurations, such as fixedly attached to the frame 64, fixedly attached to a helmet or hat worn by the user, built into headphones, or otherwise removably attached to the user 60 (e.g., in a backpack configuration, a belt-mounted configuration, etc.), such as by wired or wireless connectivity 68.

[0020] The local processing and data module 70 may include a processor and digital memory, such as non-volatile memory (e.g., flash memory), both of which may be utilized to assist in processing and storing data. This includes data captured from sensors, such as image capture devices (e.g., cameras), microphones, inertial measurement units, accelerometers, compasses, GPS units, wireless devices, and / or gyroscopes. The sensors may be operably coupled to the frame 64 or otherwise attached to the user 60. The sensors may be operably coupled to the frame 64 or otherwise attached to the user 60. In some embodiments, all data is stored and all calculations are performed within the local processing and data module, enabling fully autonomous use. Alternatively, or in addition, sensor data may be acquired and / or processed using the remote processing module 72 and / or the remote data repository 74. The local processing and data module 70 may be operatively coupled to a remote processing module 72 and a remote data repository 74 by communication links (76, 78), such as via wired or wireless communication links, such that these remote modules (72, 74) are operatively coupled to each other and available as resources to the local processing and data module 70. In some embodiments, the remote processing module 72 may include one or more processors configured to analyze and process data (e.g., sensor data and / or image information). The remote data repository 74 may comprise a digital data storage facility, which may be available through the Internet or other networking configuration in a "cloud" resource configuration.

[0021] The VR / AR / MR system 80 may also include a depth sensor 100. The depth sensor 100 takes measurements of the user's surroundings and determines information about the distances to various objects and features present within those surroundings. VR / AR / MR applications can utilize various types of depth information, including short-range depth information (e.g., 0-2 meters), long-range depth information (e.g., 2-4 meters and beyond), and high dynamic range (HDR) depth information. The depth information provided by the depth sensor 100 can be used to enable a user to interact with the VR / AR / MR system and / or to enable the system to project virtual images into the user's real-world environment.

[0022] One application of long-range depth sensing in a VR / AR / MR system is using depth information to model a user's environment. For example, depth sensor 100 can be used to determine distances to walls and objects in a room. The resulting depth information can be used to create a 3D model of the room and its contents. In an AR / MR system, this can enable the system to project virtual images into the room in a realistic and interactive manner. An exemplary application of short-range depth sensing in a VR / AR / MR system is gesture recognition. For example, VR / AR / MR system 80 can use depth sensing to track the movement of a user's hands to facilitate gesture recognition. VR / AR / MR system 80 can then perform an action in response to the user's gesture.

[0023] Given that depth information can be used by VR / AR / MR system 80 to provide a user with an interactive immersive experience, it is advantageous for depth sensor 100 to collect depth information relatively quickly and efficiently, as this allows VR / AR / MR system 80 to be more responsive. This may be particularly true for AR / MR applications, as they may be highly sensitive to discontinuities between the real-world content surrounding the user and the virtual content projected into the user's environment by system 80. This disclosure therefore describes improved techniques that may increase the efficiency and / or speed with which various depth-sensing information may be collected.

[0024] By way of background, one type of depth sensor is a 3D time-of-flight (TOF) camera. Generally, a 3D TOF camera uses a light source to illuminate a scene. The TOF camera then observes and processes the light that reflects from the scene to determine information about the distance to various points / objects / features within the scene. Some TOF cameras perform depth measurements by emitting pulses of infrared light toward one or more points within the scene and then measuring the elapsed time for the light to reflect from the scene. Based on the elapsed time combined with knowledge of the speed of light, the camera can then determine the distance the light has traveled. In addition, some TOF cameras can perform depth measurements by emitting a modulated light signal (e.g., square or sinusoidal) and then measuring the phase shift between the illuminating light signal and the reflected light signal. These phase shift measurements are then converted into distance measurements.

[0025] In most depth-sensing TOF cameras, illumination comes from solid-state lasers or light-emitting diodes (LEDs) operating in the near-infrared range (e.g., about 850 nm), which is invisible to the human eye. Typically, the illumination from the light source into the scene is designed to be relatively uniform. An imaging sensor, designed to respond to the same spectrum as the illuminating light, receives the light reflected from the scene and converts the light into an electrical signal. In some embodiments, the imaging sensor can be a CCD or CMOS sensor with a resolution of, for example, 224 x 172 pixels, although imaging sensors with larger or smaller resolutions can also be used. Each pixel is located at a point in the image plane, which corresponds to a distinct point in object space or the scene within the field of view of the TOF camera. Thus, the information collected at each pixel of the imaging sensor can be used to determine the distance to the point in the scene corresponding to that particular pixel.

[0026] The light received by each pixel of the imaging sensor has an ambient component and a reflected component. Depth information is embedded only in the reflected component. To distinguish between these two components, the TOF camera may capture an image of the ambient infrared light immediately before or after actively illuminating the scene with infrared light. This image of the ambient infrared light may be referred to as an intensity subframe image. By subtracting or otherwise removing the intensity subframe image from other subframe images collected during active illumination of the scene, depth sensor 100 can distinguish the reflected component of infrared light from background noise in the scene.

[0027] To enable detection of the phase shift between the illumination component and the reflected component, the signal from the light source can be modulated. For example, a square-wave modulation signal can be used. The image sensor then detects the reflected light at multiple different times corresponding to different phase shifts relative to the modulated signal. The different phase shifts can be, for example, angle 1, angle 2, angle 3, and angle 4, where angle 2 = angle 1 + Δ, angle 3 = angle 1 + 2Δ, and angle 4 = angle 1 + 3Δ, where angle 1 and Δ are predetermined angles. For example, angle 1 can be 0° and Δ can be 90°, thereby allowing the camera to detect reflected light received at each pixel during periods phase-shifted by 0°, 90°, 180°, and 270° relative to the modulated signal. Each of these measurements can result in a separate phase subframe image captured by the camera sensor. The distance to a point in the scene corresponding to each sensor pixel can then be calculated from the four phase subframes using mathematical equations known in the art. Each complete frame of depth information (from which a set of depth measurements (one per pixel) can be determined) therefore consists of several sub-frames of image data.

[0028] The modulated illumination signal is periodic and therefore automatically repeats every 360° of phase shift. Therefore, the fact that some TOF cameras measure depth based on the phase shift of reflected light relative to the modulated illumination signal means that the measured distance will suffer from aliasing effects. These aliasing effects can result in ambiguity in the measured distance. The distance at which aliasing occurs (i.e., the ambiguity distance) is also the maximum unambiguous distance that the TOF camera can measure. The maximum measurable distance can be extended by reducing the modulation frequency of the illumination light, but this may come at the expense of reduced depth measurement resolution. To resolve depth ambiguity without compromising depth measurement resolution, the TOF camera can modulate the illumination light using two or more separate modulation signals with different frequencies (e.g., Fmod0 and Fmod1). Depth measurement is performed by measuring the phase shift of reflected light for each of multiple modulation frequencies. Because each modulation frequency is different, each will have a different ambiguity distance. The actual distance to a given point in the scene is the distance where measurements made using different modulation frequencies agree.

[0029] In a TOF camera, distance can be measured for each pixel in the camera sensor. This results in a depth map of the scene in the camera's field of view. The depth map is a collection of points, or voxels, in three-dimensional space, with each voxel located at the distance measured by the corresponding sensor pixel. The depth map can be rendered in three-dimensional space as a collection of points, or point cloud. The 3D points can be mathematically connected to form a mesh. The mesh can be used to model the scene, detect objects, etc. Additionally, virtual content can be mapped onto the mesh by VR / AR / MR systems, providing lifelike 3D virtual content that interacts with the user's real surroundings.

[0030] Various types of depth measurements may be advantageous for different purposes in the VR / AR / MR system 80. For example, close-range, low-frame-rate depth measurements may be sufficient for detecting when a user's hand is within the field of view of the depth sensor 100. Once the fact that the user's hand is within the field of view of the depth sensor is detected, close-range, high-frame-rate depth measurements may be more useful for tracking the movement of the user's hand and thereby detecting the specific gesture being performed. On the other hand, long-range depth measurements at low or high frame rates may be useful for mapping the user's environment. In addition, close-range to long-range, high-dynamic-range (HDR) depth measurements may also be beneficial.

[0031] Given that many different types of depth measurements may be useful in VR / AR / MR system 80, depth sensor 100 may include multiple operational modes for collecting each of these different types of depth measurements. Each mode may consist of, for example, a sequence of operations to be performed by depth sensor 100. Depending on the mode, each of these operations may involve different settings or parameters, such as exposure time, illumination light intensity, illumination modulation frequency, etc. The following table illustrates example operational sequences and configuration settings for several depth sensing modes.

[0032] Table 1 illustrates an exemplary sequence of operations for a short-range, high-frame-rate depth-sensing mode. In some embodiments, this mode of operation is used to sense depth in a range of less than about 2 meters (depending on modulation frequency and exposure time) using a frame rate greater than about 20 Hz. In this particular embodiment, the frame rate is 45 Hz, which means that one complete frame of depth information is captured every 22.22 ms (1 / 45 s). In this case, each complete frame of depth information is based on an intensity subframe (to measure ambient infrared light while the illumination source is turned off) and four phase subframes (captured while the illumination source is modulated). [Table 1]

[0033] An exemplary sequence of operations for a short-range, high-frame-rate depth-sensing mode begins at step 0, which acquires an intensity subframe. Then, during steps 1-4, four phase subframes are captured. For short-range measurements, the exposure time for each of these subframes (i.e., the time during which the image sensor captures light) is typically less than about 0.5 ms. Each subframe includes an associated readout time for transferring the captured image data from the image sensor. The readout time is typically less than about 1 ms.

[0034] The short-distance, high-frame-rate operational mode can optionally include a relatively short delay as step 5 of the operational sequence. This delay can be equal to the difference between the 22.22 ms duration of the operational sequence and the total time required to complete steps 0-4, for example. In other words, the optional short delay of step 5 can occupy any additional time during the operational sequence that is not required to capture and read the intensity subframe and four phase subframes. While Table 1 lists a specific order of operational steps for this particular depth-sensing mode, the operational steps can alternatively be performed in a different order. The same is true for the other operational modes described herein.

[0035] Table 2 illustrates an example sequence of operations for a short-range, low-frame-rate depth-sensing mode. This mode of operation can be used to sense depths in a range of less than about 2 meters (depending on modulation frequency and exposure time) using a frame rate of less than about 20 Hz. In this particular embodiment, the frame rate is 8 Hz, which means that one complete frame of depth information is captured every 125 ms. As before, each complete frame of depth information is based on an intensity subframe and four phase subframes. While the short-range, high-frame-rate mode has the advantage of producing depth measurements with better temporal resolution, the short-range, low-frame-rate mode can be beneficial when a lower temporal resolution is adequate for the task at hand because it is less computationally intensive, thereby allowing the system to enter a low-power mode and conserve energy. [Table 2]

[0036] An exemplary sequence of operations for the short-range, low-frame-rate mode begins with step 0, which acquires an intensity subframe. Then, during steps 1-4, four phase subframes are captured. Again, for short-range measurements, the exposure time for each of these subframes is typically less than about 0.5 ms, and the readout time for each subframe is typically less than about 1 ms. Steps 0-4 in Table 2 are identical to steps 0-4 in Table 1. Thus, the short-range, low-frame-rate mode of operation and the short-range, high-frame-rate mode of operation have these five steps in common.

[0037] However, the short-distance, low-frame-rate operating mode includes a relatively long delay as step 5 of the operating sequence. This delay can be equal to, for example, the difference between the 125 ms duration of the operating sequence and the total time required to complete steps 0-4. The relatively long delay of step 5 occupies the time during the operating sequence that is not required to capture and read the intensity subframe and four phase subframes. Therefore, the difference between the two short-distance operating modes shown in Tables 1 and 2 relates to the difference between the relatively long delay of step 5 in Table 2 and the optional relatively short delay of step 5 in Table 1.

[0038] Table 3 illustrates an exemplary sequence of operations for the long-range, high-frame-rate depth-sensing mode. This mode of operation can be used to sense depths, for example, in a range of approximately 2 to 4 meters (depending on modulation frequency and exposure time) using a frame rate above approximately 20 Hz. As with short-range depth data, each complete frame of long-range depth information is based on several subframes of image data. Again, there are intensity subframes to measure ambient infrared light while the illumination source is off. However, for long-range depth data, there are eight phase subframes of image data, i.e., four for each of the two illumination modulation frequencies Fmod1 and Fmod2. [Table 3]

[0039] An exemplary sequence of operations for the long-range, high-frame-rate depth-sensing mode begins at step 0, which acquires an intensity subframe. Then, during steps 1-4, four phase subframes for a first modulation frequency Fmod1 are captured, while during steps 5-8, four subframes for a second modulation frequency Fmod2 are captured. For long-range measurements, the exposure time for each of these subframes (i.e., the time during which the image sensor captures light) is longer than for short-range measurements, typically 2-3 ms. (Other parameters or settings for long-range subframes may also differ from short-range subframes.) Each subframe also includes an associated readout time of approximately 1 ms for transferring the captured image data from the image sensor.

[0040] The long-distance, high-frame-rate operating mode can optionally include a relatively short delay as step 9 of the operating sequence. This delay can be equal to, for example, the difference between the duration of the operating sequence and the total time required to complete steps 0-8. In other words, the optional short delay of step 9 can occupy any additional time during the operating sequence that is not required to capture and read the intensity subframe and eight phase subframes.

[0041] Table 4 illustrates an exemplary sequence of operations for a long-range, low-frame-rate depth-sensing mode. This mode of operation can be used to sense depth in a range of approximately 2-4 meters (depending on modulation frequency and exposure time) using a frame rate of approximately less than 20 Hz. In this particular embodiment, the frame rate is 5 Hz, which means that one complete frame of depth information is captured every 200 ms. As before, each complete frame of depth information is based on an intensity subframe and eight phase subframes. [Table 4]

[0042] An exemplary sequence of operations for the long-range, low-frame-rate mode begins with step 0, which acquires an intensity subframe. Then, during steps 1-8, eight phase subframes are captured. Again, for long-range measurements, the exposure time for each of these subframes is typically less than about 2-3 ms, and each subframe also includes an associated readout time for transferring the captured image data from the image sensor. The readout time is typically less than about 1 ms. Steps 0-8 in Table 4 are identical to steps 0-8 in Table 3. The long-range, low-frame-rate mode of operation and the long-range, high-frame-rate mode of operation therefore have these nine steps in common.

[0043] However, the long-distance, low-frame-rate operating mode includes a relatively long delay as step 9 in the operating sequence. This delay can be equal to the difference between, for example, the 200 ms duration of the operating sequence and the total time required to complete steps 0-9. In other words, the long delay in step 9 can occupy any additional time in the operating sequence that is not required to capture and read the intensity subframe and eight phase subframes. The difference between the two operating modes shown in Tables 3 and 4 therefore relates to the difference between the relatively long delay in step 9 in Table 4 and the optional relatively short delay in step 9 in Table 3.

[0044] To operate in a particular depth-sensing mode (e.g., any of the depth-sensing modes shown in Tables 1-4), depth sensor 100 must be programmed with the appropriate sequence of operational steps (and associated settings). Conventional depth sensors typically have multiple memory bins for holding programming instructions. Each bin can hold, for example, one of the operations shown in the sequence of operations in Tables 1-4. Thus, to program a TOF camera to operate in a short-range, high-frame-rate depth-sensing mode (i.e., according to Table 1), five or six programming bins would typically be required. Similarly, a short-range, low-frame-rate mode (i.e., according to Table 2) would typically require six programming bins. Meanwhile, a long-range, high-frame-rate operating mode (i.e., according to Table 3) would typically require nine or ten programming bins, while a long-range, low-frame-rate operating mode (i.e., according to Table 4) would typically require ten programming bins. Therefore, using conventional methods, 6+6+10+10=32 memory bins may be required to program depth sensor 100 to be capable of operating in all four of these depth-sensing modes.

[0045] Each of the depth sensors 100 can be programmed to operate in any of the depth-sensing modes illustrated in Tables 1-4, as well as others, by loading the respective operational steps (and associated settings) into the sensor's memory bin. This programming process may take, for example, approximately 160 ms in some implementations, but may take longer or shorter periods depending on the particular implementation. Thus, if only one set of operational steps (corresponding to one depth-sensing mode) is programmed into the depth sensor's memory bin at a time, there is likely a cost of approximately 160 ms that may be required to reprogram the depth sensor to switch operational modes. This time cost may be acceptable if the depth sensor is not required to change modes very frequently. However, in the VR / AR / MR system 80, there may be a need to switch between depth-sensing modes relatively frequently. The time required to reprogram the depth sensor may therefore be problematic, as it may introduce a noticeable lag into the system's responsiveness. This and other problems are solved by the depth-sensing techniques described herein.

[0046] FIG. 3 illustrates an exemplary depth-sensing system 300. The depth-sensing system 300 includes a state machine 320, an arbiter 330, and the depth sensor 100 itself. The state machine 320 and the arbiter 330 can be implemented as hardware (e.g., one or more processors, including general-purpose processors, field-programmable gate arrays (FPGAS), application-specific integrated circuits (ASICs), etc.) and / or software (e.g., computer-readable instructions stored in memory, non-transitory media, etc.). FIG. 3 also illustrates several mixed reality (MR) applications 310, which communicate with the depth-sensing system 300. These are applications running on the VR / AR / MR system 80. One of these applications 310 may be, for example, a gesture recognition application. Another may be a 3-D mapping application. Another may be a virtual content projection application. Each of these applications 310 may have a need for various different types of depth information at different times. It will not be uncommon for different types of depth information to be required by different applications 310 at the same or nearly the same moment. Therefore, it is advantageous for depth sensing system 300 to be able to switch between depth sensing modes and obtain the required depth information as quickly and efficiently as possible. Note that while only mixed reality applications are illustrated in FIG. 3, virtual reality and augmented reality applications can also communicate with depth sensing system 300 to request and receive depth information.

[0047] Each application 310 can make requests to depth sensing system 300 for various types of depth information as needed. Arbiter 330 is responsible for receiving requests for depth information and scheduling depth sensing operations that will provide the requested depth information. In some embodiments, arbiter 330 prioritizes requests for depth measurements to service more time-sensitive applications first. For example, in some embodiments, arbiter 330 prioritizes depth sensing requests in the following order (although other prioritization schemes can be used): 1) short-range, high-frame-rate depth measurements, 2) high-dynamic-range depth measurements (consisting of short-range, low-frame-rate depth measurements interleaved with long-range, low-frame-rate depth measurements), 3) short-range, low-frame-rate depth measurements, 4) long-range, high-frame-rate depth measurements, 5) long-range, low-frame-rate depth measurements, and 6) idle.

[0048] In some embodiments, the order in which depth measurement requests are prioritized is based on the priority of the requesting application. For example, because VR / AR / MR systems typically rely on user hand gestures to provide control input (since such systems typically do not have touch panels, keyboards, or other physical input devices), any user hand gestures may be assigned the highest priority. Thus, in some embodiments, the highest priority mode may be short-range, high-frame-rate depth measurements used to track hand gestures. However, it should be understood that various depth-sensing modes may be prioritized in various ways to accommodate different operational demands.

[0049] Once requests for depth information have been prioritized and scheduled by arbiter 330, state machine 320 is used to control depth sensor 100 hardware to actually make the requested measurements and return the requested data. As part of this task, state machine 320 may perform various tasks, including storing operational steps (and associated settings) in memory bins of depth sensor 100, setting a selected depth-sensing mode, and switching the depth-sensing mode of depth sensor 100 when requested to do so based on input from arbiter 330. The operation of state machine 320 is described in more detail with respect to Figures 4 and 5.

[0050] 4 illustrates an example of an improved method 400 for efficiently operating depth sensor 100 in multiple depth-sensing modes. Method 400 begins at block 410 with a command to configure depth sensor 100. This type of command may be issued, for example, upon startup or reset of depth sensing system 300.

[0051] In block 420, the depth sensing system 300 begins configuring the depth sensor 100 by loading a sequence of operations for a first depth sensing mode into a first group of memory bins of the depth sensor. For example, the first depth sensing mode may be a short-range, high-frame-rate mode. If applicable, the depth sensing system 300 will load a sequence of operations from Table 1 into the depth sensor's memory bins. In conventional depth sensing systems, the depth sensor 100 would then proceed to operate in the first depth sensing mode and acquire depth measurements until a different depth sensing mode is requested. However, the depth sensing system 300 described herein instead proceeds to block 430 and loads a sequence of operations for the second through Nth depth sensing modes into groups of memory bins of the depth sensor 100. For example, the second depth sensing mode may be a long-range, high-frame-rate mode. If applicable, depth sensing system 300 will load the sequence of operations from Table 3 into the memory bins of depth sensor 100. Additional depth sensing modes may also be programmed during this configuration sequence, as long as there are available memory bins in depth sensor 100. As discussed further below, these configuration steps are performed before depth sensing begins, thereby avoiding configuration delays when changing between depth sensing modes.

[0052] At block 440, method 400 proceeds to a command to begin collecting depth information. This command can be issued based on a depth-sensing task scheduled by arbiter 330. At block 450, state machine 320 defines a programmed depth-sensing operating mode to be used. If a first depth-sensing operating mode is defined at block 450, method 400 proceeds to block 460. At block 460, depth sensor 100 operates in the first depth-sensing mode by performing a sequence of operations defined in a first group of memory bins. Depth sensor 100 proceeds to capture one or more frames of depth information while in the first depth-sensing mode. Once this measurement is complete, the method returns to block 450, and a depth-sensing operating mode can again be defined.

[0053] Returning to block 450, if the depth-sensing operating mode is to be changed, method 400 proceeds to block 470. In block 470, depth sensor 100 can operate in any of the second through Nth depth-sensing modes by performing a sequence of operations defined in the corresponding group of memory bins. After collecting depth information for one or more frames according to any of the second through Nth depth-sensing operating modes, method 400 returns to block 450 and iteratively repeats according to the depth-sensing tasks scheduled by arbiter 330.

[0054] The method of operation shown in FIG. 4 is advantageous because it can improve depth-sensing efficiency by reducing the amount of time spent programming depth sensor 100 due to changes in required depth-sensing operational modes. This is accomplished by simultaneously programming operational steps corresponding to multiple depth-sensing modes into the depth sensor's memory bins. For example, the depth sensor's first six memory bins can be programmed using the operational steps of Table 2, while the depth sensor's next ten memory bins can be programmed using the operational steps of Table 4. In this manner, the depth sensor can operate in a short-range, low-frame-rate mode (corresponding to Table 2) by executing instructions stored in the first six bins. Alternatively, the depth sensor can operate in a long-range, low-frame-rate mode (corresponding to Table 4) by executing instructions stored in the next ten bins. The depth sensor can switch between these modes without incurring the time penalty required to reprogram the memory bins. Thus, the efficiency and speed of collection of depth information can be increased.

[0055] In some embodiments, state machine 320 performs operations that allow depth sensor 100 to switch from one depth-sensing mode to another without requiring reprogramming of memory bins. State machine 320 provides the ability to alternate between depth-sensing modes by executing a series of operational steps from different sets / subsets of memory bins within depth sensor 100. State machine 320 can externally control the set / subset and series of memory bins from which depth sensor 100 executes instructions. Without state machine 320, depth sensor 100 may simply cycle through the commands stored in its memory bins to achieve the desired depth-sensing mode, without the ability to select a particular set / subset of commands to execute.

[0056] 5 is an example state diagram 500 for efficiently operating depth sensor 100 in multiple depth-sensing modes. The states shown in FIG. 5 can be implemented by state machine 320 in cooperation with arbiter 330. In some embodiments, depth sensing system 300 has three states: 1) a "hot standby" state 510, 2) an "on" state 520, and 3) a "pending hot standby" state 530. After being programmed according to blocks 410-430 in FIG. 4, depth sensor 100 can be placed in hot standby state 510.

[0057] Based on a command to start collecting depth information in block 440 of the method of FIG. 4 , the state machine 320 places the depth sensor 100 in the on state 520. This state change can be accomplished, for example, by first opening the frame buffer and receiving depth information. Next, the state machine 320 can configure the host VR / AR / MR system 80 to receive streaming depth information. The state machine 320 can then set a depth-sensing mode according to block 450 of the method shown in FIG. 4 . As discussed herein, the state machine 320 can set a depth-sensing mode by specifying a set / subset and / or sequence of operation steps stored in memory bins of the depth sensor 100 to perform. For example, a first depth-sensing mode can be specified by configuring the depth sensor 100 to perform only the sequence of operations specified by bins XY (X is any integer and Y is any integer greater than X). Finally, the state machine 320 can configure the depth sensor 100 to begin streaming depth information according to the specified depth sensing mode. The depth sensor 100 continues streaming frames of depth information according to the specified mode while in the on state 520 until each of the conditions for switching to the pending hot standby state 530 exists.

[0058] In some embodiments, the state machine 320 switches the depth sensor 100 from the on state 520 to the hold-hot-standby state 530 when the following conditions are met: 1) when a complete frame of depth information is received, and 2) when the arbiter 330 indicates that a mode switch is required. Once these conditions are met, the state machine 320 places the depth sensor 100 in the hold-hot-standby state 530. In this state, the state machine 320 configures the depth sensor to cease streaming.

[0059] While in the pending hot standby state 530, the state machine 320 ensures that the frame period of the current depth-sensing mode is maintained. This is done to limit the amount of energy output by the depth sensor 100 per defined time unit for eye-safety reasons. For example, if a particular depth measurement is scheduled to occur at a 5 Hz frame rate, the frame period for that measurement is 200 ms. Typically, the power of the light source within the depth sensor 100 is set to a safe level based on that frame period. Thus, in some embodiments, the state machine 320 does not allow the depth-sensing mode to be changed until the 200 ms frame period has elapsed, because doing so would immediately initiate a new depth measurement, which would then cause additional radiation to be emitted during the 200 ms period, potentially exceeding eye-safety limits.

[0060] While still in the pending hot standby state 530, the state machine 320 places the host VR / AR / MR system 80 in a standby state and closes the frame buffer used to receive depth information. Once these actions are complete, the depth sensing system state machine 320 transitions the depth sensor 100 to the hot standby state 510. The state machine 320, in cooperation with the arbiter 330, then defines the next depth sensing mode, and the process can be repeated. Again, the next depth sensing mode is set by defining a set / subset and / or sequence of operational steps stored in the memory bins of the depth sensor 100 to be executed. Also, changing the depth sensing mode in this manner does not require the depth sensor 100 to be reprogrammed, since the operational steps for the next depth sensing mode are already stored in the memory bins.

[0061] While method 400 shown in FIG. 4 can improve the efficiency of depth-sensing operations, it may be limited by the number of available memory bins provided by depth sensor 100. Depending on the desired number and type of depth-sensing modes, there may be insufficient memory bins to accommodate the required sequence of operational instructions. For example, if depth sensor 100 provides only 15 memory bins, it would be impossible to simultaneously program the depth sensor with the sequence of operations required by all four of the depth-sensing modes described in Tables 1-4, let alone additional depth-sensing modes, according to conventional techniques. This is because those depth-sensing modes collectively include more than 15 operational steps. Therefore, even if method 400 shown in FIG. 4 is implemented, depending on the number of available memory bins, depth sensor 100 may still need to be periodically reprogrammed to provide all of the depth-sensing modes described in Tables 1-4. As discussed above, this may result in a time penalty, which is undesirable. This problem can be alleviated by providing the depth sensor with additional memory bins. However, doing so would increase the size and cost of the depth sensor. However, even when the number of memory bins may be insufficient to accommodate the operational sequences for all of the desired depth-sensing modes, there is another technique, illustrated in Figures 6-8, that can be used to further improve the efficiency of depth sensor 100. This technique takes advantage of the fact that different depth-sensing modes may have some operational steps in common, so that common steps do not necessarily have to be programmed into depth sensor 100 more than once.

[0062] FIG. 6 illustrates another example of an improved method 600 for efficiently operating depth sensor 100 in multiple depth-sensing modes. Method 600 can be performed using the same depth-sensing system 300 shown in FIG. 3 and the same operating states shown in state diagram 500 of FIG. 5. Method 600 begins at block 610 with a command to configure depth sensor 100. Again, this type of command may be issued, for example, upon startup or reset of depth-sensing system 300. In some embodiments, the improved method 600 shown in FIG. 6 allows configuration of depth sensor 100 to be performed only once during each session of operation. For example, in some embodiments, after being initially programmed, depth sensor 100 may not need to be programmed again until the host places the depth sensor in reset mode or until the depth sensor is rebooted.

[0063] In block 620, the depth sensing system 300 begins configuring the depth sensor 100 by loading operational steps common to two or more depth sensing modes into the depth sensor's memory bin. These common operational steps are identical in two or more operational modes. For example, the steps (and associated settings) for capturing an intensity subframe and four phase subframes are the same for both high-frame-rate, short-range depth measurements and low-frame-rate, short-range depth measurements. With reference to Tables 1 and 2, these common operational steps correspond to steps 0-4. Similarly, the steps (and associated settings) for capturing an intensity subframe and eight phase subframes are the same for both high-frame-rate, long-range depth measurements and low-frame-rate, long-range depth measurements. With reference to Tables 3 and 4, these common operational steps correspond to steps 0-8.

[0064] At block 630, the depth sensing system 300 continues configuring the depth sensor 100 by loading one or more dummy operational steps into a memory bin. In some embodiments, the dummy operational steps relate to differences between two or more operational modes. By performing one or more dummy operational steps along with a set of common operational steps for the two operational modes, one of the operational modes can effectively be converted to the other.

[0065] For example, as previously discussed herein, the difference between the high frame rate, short-range depth sensing mode (i.e., Table 1) and the low frame rate, short-range depth sensing mode (i.e., Table 2) relates to the difference between their respective frame periods, in other words, the difference between the amount of delay introduced before repeating the subframe capture sequence. For the high frame rate, short-range depth measurement, a relatively short delay (or no delay) is used. For the low frame rate, short-range depth measurement, a relatively long delay is introduced to reduce the frame rate (and correspondingly increase the frame period). Thus, for this pair of depth measurements (i.e., the high frame rate, short-range depth measurement and the low frame rate, short-range depth measurement), the dummy operation step can be defined as a delay representing the difference between the relatively long delay of the low frame rate measurement and the relatively short optional delay of the high frame rate measurement. In other words, the dummy operation step for this pair of depth sensing modes can be a delay equal to the difference between the relatively long delay in step 5 of Table 2 and the relatively short optional delay in step 5 of Table 1. Similarly, the dummy operation step for the high frame rate long distance measurement and the low frame rate long distance measurement can be a delay equal to the difference between the relatively long delay in step 5 of Table 4 and the relatively short optional delay in step 5 of Table 3.

[0066] 7 is an example table 700 showing common and dummy operation steps for multiple depth sensing modes. In this example table 700, step 0 is a dummy operation step for paired long-range depth measurements. This dummy operation step, when added to a sequence of operations performed to execute a high-frame-rate, long-range measurement mode, is a delay that converts the sequence of operations to a low-frame-rate, long-range measurement mode. This dummy operation step can be stored in a first memory bin of depth sensor 100.

[0067] Meanwhile, steps 1 through m in table 700 are common operational steps between the high frame rate long-distance measurement mode and the low frame rate long-distance measurement mode. For the exemplary TOF camera discussed herein, long-distance depth measurement requires nine total subframes (one intensity subframe and eight phase subframes). Therefore, index m in table 700 would be equal to 9. Thus, steps 1-9 would be used to capture the intensity subframe and eight phase subframes for the long-distance operational mode. These operational steps can be stored in the next nine memory bins of depth sensor 100 after the dummy operation in step 0. The next step is the eye-safety dummy operational step, which is provided as step m+1 in table 700. This dummy operational step will be discussed with reference to FIG. 9.

[0068] Table 700 in FIG. 7 also shows common operational steps between the high frame rate, short-distance measurement mode and the low frame rate, short-distance measurement mode. These common operations are represented in table 700 by step m+2 through step m+n+1. For the example TOF camera discussed herein, short-distance measurement requires five total subframes (one intensity subframe and four phase subframes). Therefore, index n in table 700 would be equal to 5 (as discussed immediately above, index m would be equal to 9). Therefore, steps 11-15 would be used to capture the intensity subframe and four phase subframes for the short-distance operating mode. These operational steps can be stored in the following five memory bins of depth sensor 100:

[0069] Meanwhile, step m+n+2 in table 700 is a dummy operation step for paired short-distance depth measurements. This dummy operation step, when added to the sequence of operations performed to perform the high frame rate, short-distance measurement mode, is a delay that converts the sequence of operations to the low frame rate, short-distance measurement mode. This dummy operation step can be stored in the next memory bin of depth sensor 100.

[0070] As discussed further with respect to FIG. 8, various combinations of the operational steps in table 700 can be performed in the order shown to achieve various depth-sensing operational modes.

[0071] After depth sensor 100 has been programmed with the common and dummy operating steps according to blocks 610-630, method 600 shown in FIG. 6 continues with a command to begin collecting depth information in block 640. In block 650, depth sensing system 300 defines a depth-sensing operating mode. This can be done, for example, by defining the operating steps shown in table 700 in FIG. 7 to execute to implement the defined depth-sensing operating mode. This will be discussed with respect to FIG. 8.

[0072] FIG. 8 is an example table 800 illustrating how the common and dummy operational steps of FIG. 7 can be used to efficiently operate in multiple depth-sensing modes. As shown in FIG. 8, a high-frame-rate, long-range depth-sensing mode (as shown in Table 3) can be implemented by performing steps 1 through m in table 700 shown in FIG. 7. By performing these steps, depth sensor 100 will collect a long-range intensity subframe and eight long-range phase subframes during steps 1 through m. On the other hand, if depth-sensing system 300 instead invokes a low-frame-rate, long-range depth measurement (as shown in Table 4), this mode of operation can be accomplished by instead performing steps 0 through m. Because the dummy frame in step 0 represents the difference between the high-frame-rate, long-range measurement and the low-frame-rate, long-range measurement, performing that step in addition to steps 1 through m effectively converts the operational mode from the high-frame-rate, long-range measurement mode to the low-frame-rate, long-range measurement mode. The dummy operation in step 0 is shown in table 700 as being performed before the collection of a subframe during steps 1 through m, but in other embodiments it may be performed after the collection of a subframe, or even between the collection of two subframes.

[0073] FIG. 8 also shows that a high frame rate, short-range measurement depth sensing mode (as shown in Table 1) can be accomplished by executing steps m+2 through m+n+1 in table 700 shown in FIG. 7. By executing these steps, depth sensor 100 will collect a short-range intensity subframe and four short-range phase subframes. On the other hand, if the system instead invokes a low frame rate, short-range depth measurement (as shown in Table 2), this mode of operation can be accomplished by instead executing steps m+2 through m+n+2. Because the dummy frame in step m+n+2 represents the difference between the high frame rate, short-range measurement and the low frame rate, short-range measurement, executing that step in addition to steps m+2 through m+n+1 effectively converts the operating mode from the high frame rate, short-range measurement mode to the low frame rate, short-range measurement mode.

[0074] Table 800 in Figure 8 also illustrates a high dynamic range depth sensing mode, which consists of interleaved low frame rate short and long range measurements. This depth sensing mode is discussed with respect to Figure 9.

[0075] After depth sensing system 300 defines a depth-sensing operational mode in block 650, method 600 shown in FIG. 6 proceeds to block 660 or block 670. Depth sensor 100 can operate in a first depth-sensing mode by performing a group of common operational steps, as shown in block 660. The group of common operational steps can be, for example, steps 1 through m in table 700 shown in FIG. 7 , which would correspond to operation in a high-frame-rate, long-range depth-sensing mode. Alternatively, the group of common operational steps performed in block 660 can be steps m+2 through m+n+1 in table 700 shown in FIG. 7 , which would correspond to operation in a high-frame-rate, short-range depth-sensing mode.

[0076] Alternatively, depth sensor 100 can operate in a second depth-sensing mode by executing a group of common operational steps and one or more dummy operational steps, as shown in block 670. The group of common operational steps can be, for example, steps 1 through m in table 700 shown in FIG. 7 , and the dummy operational step can be step 0. This would correspond to operation in a low-frame-rate, long-range depth-sensing mode. Or, the group of common operational steps executed in block 660 can be steps m+2 through m+n+1 in table 700 shown in FIG. 7 , and the dummy operational step can be step m+n+2. This would correspond to operation in a low-frame-rate, short-range depth-sensing mode.

[0077] Regardless of whether depth sensing system 300 proceeds from block 650 to block 660 or block 670, depth sensor 100 captures one or more frames of depth information while in the defined depth-sensing mode. Once the measurement is complete, method 600 returns to block 650 and the depth-sensing operating mode can again be defined.

[0078] 6 is advantageous because it can improve depth-sensing efficiency by reducing the amount of time spent programming depth sensor 100 in response to changes in the required depth-sensing operating mode. According to method 600, the depth sensor can alternate between multiple depth-sensing modes without incurring the time penalty required to reprogram memory bins. This can be accomplished using far fewer memory bins within depth sensor 100 than would be required using conventional techniques. Thus, the efficiency and speed of depth information collection can be increased. Additionally, lower-cost depth sensors with fewer memory bins can be used.

[0079] 9 is an example timing diagram for operating in a high dynamic range (HDR) depth sensing mode. The HDR depth sensing mode consists of long-range and short-range measurements interleaved together. Table 5 illustrates an example sequence of operations for the HDR depth sensing mode. In some embodiments, the frame rate for HDR depth measurements is 5 Hz. The period for HDR depth measurements is T fps This HDR depth sensing mode can be implemented using the method of FIG. 6 and the depth sensor memory bin programming scheme shown in FIG.

[0080] The HDR depth sensing sequence begins at step 0, where a long-range intensity subframe is captured. Then, during steps 1-4, the depth sensor 100 captures four phase subframes using a first modulation frequency. As shown in FIG. 9, each phase subframe is represented by T LR-int After each of these exposures, there is a read time T to transfer the captured image data from the sensor. readout Then, in steps 5-8, the depth sensor 100 captures four phase sub-frames using the second modulation frequency. [Table 5]

[0081] The long-range measurement is followed by an eye-safety delay in step 9, which in FIG. eye_safe_dummy 9 , the dummy operating step constituting the delay may be implemented in some embodiments as an intensity subframe (including an exposure period and a read period) followed by an idle period. Intensity subframes captured during the dummy operating step are typically not used to calculate depth.

[0082] Next, in step 10 in Table 5, the depth sensor captures a short-range intensity subframe. This is followed by four phase subframes in steps 11-14. As shown in Figure 9, each of these subframes has a T SR_int The short-distance measurements made during steps 10-14 can be followed by an optional delay in step 15.

[0083] The HDR depth sensing mode shown in Table 5 and FIG. 9 has many operational steps that are common to the other depth sensing modes discussed herein. For example, steps 0-8 in Table 5 are identical to those used by high frame rate, long-range depth measurement. Therefore, this portion of the HDR depth sensing mode can be implemented by performing steps 1 to m in the programming scheme 700 shown in FIG. 7. Similarly, steps 10-14 in Table 5 are identical to those used by high frame rate, short-range depth measurement. Therefore, they can be implemented by performing steps m+2 to m+n+1 in the programming scheme 700 shown in FIG. 7.

[0084] The differences between the HDR depth sensing mode compared to the high frame rate long distance mode and the high frame rate short distance mode are the eye-safety period in step 9 and the optional delay in step 15 of Table 5. These differences can be implemented by appropriate dummy operation frames, as discussed herein. For example, the eye-safety period can be implemented by the eye-safety dummy operation step shown in step m+1 in the programming scheme 700 shown in FIG. 7. The optional delay in step 15 of Table 5 can be implemented using a dummy operation in step m+n+2 of the programming scheme 700 shown in FIG. 7.

[0085] It follows that a full HDR depth sensing mode (interleaved long-range and short-range depth measurements) can be implemented by performing steps 1 through m+n+2 of the programming scheme 700 shown in Figure 7, as shown in Figure 8. The HDR depth sensing modes of Table 5 are therefore examples of how additional modes can be implemented from the common and dummy operating steps shown in Figure 7.

[0086] The foregoing disclosure describes various efficient depth-sensing techniques for use in VR / AR / MR systems. While these techniques are specifically discussed with respect to depth sensors, the same techniques can also be applied to other types of sensors and are not strictly limited to depth sensors. Illustrative Embodiments

[0087] In some embodiments, the method includes providing the sensor with a set of common operational steps included in both a first set of operational steps defining a first operational mode and a second set of operational steps defining a second operational mode; providing the sensor with one or more dummy operational steps related to differences between the first operational mode and the second operational mode; operating the sensor in the first operational mode by causing the sensor to perform at least the common operational step; and operating the sensor in the second operational mode by causing the sensor to perform the common operational step and the at least one dummy operational step.

[0088] According to any of these embodiments, the first operating mode may include performing at least the common operating step at a first rate, and the second operating mode may include performing the common operating step and at least one dummy operating step at a second rate that is slower than the first rate.

[0089] According to any of these embodiments, at least one of the one or more dummy operation steps may include a delay.

[0090] According to any of these embodiments, providing the sensor with a sequence of common operating steps and one or more dummy operating steps may include storing the operating steps in a sensor memory.

[0091] According to any of these embodiments, switching the sensor between the first and second operating modes may not require any additional action to store the operating steps in the sensor memory.

[0092] According to any of these embodiments, the sensor may comprise a depth sensor.

[0093] According to any of these embodiments, the depth sensor may comprise a time-of-flight camera.

[0094] According to any of these embodiments, the first operating mode can include a depth-sensing mode with a first frame rate, and the second operating mode can include a depth-sensing mode with a second frame rate that is slower than the first frame rate.

[0095] According to any of these embodiments, the method may further include providing depth information from the depth sensor to a virtual reality, augmented reality, or mixed reality display system.

[0096] In some embodiments, the system includes a processor configured to perform a method including providing the sensor with a set of common operational steps included in both a first set of operational steps defining a first operational mode and a second set of operational steps defining a second operational mode; providing the sensor with one or more dummy operational steps related to differences between the first operational mode and the second operational mode; operating the sensor in the first operational mode by causing the sensor to perform at least the common operational step; and operating the sensor in the second operational mode by causing the sensor to perform the common operational step and the at least one dummy operational step.

[0097] According to any of these embodiments, the first operating mode may include performing at least the common operating step at a first rate, and the second operating mode may include performing the common operating step and at least one dummy operating step at a second rate that is slower than the first rate.

[0098] According to any of these embodiments, at least one of the one or more dummy operation steps may include a delay.

[0099] According to any of these embodiments, providing the sensor with a sequence of common operating steps and one or more dummy operating steps may include storing the operating steps in a sensor memory.

[0100] According to any of these embodiments, switching the sensor between the first and second operating modes may not require any additional action to store the operating steps in the sensor memory.

[0101] According to any of these embodiments, the sensor may comprise a depth sensor.

[0102] According to any of these embodiments, the depth sensor may comprise a time-of-flight camera.

[0103] According to any of these embodiments, the first operating mode can include a depth-sensing mode with a first frame rate, and the second operating mode can include a depth-sensing mode with a second frame rate that is slower than the first frame rate.

[0104] According to any of these embodiments, the system may be integrated within a virtual reality, augmented reality, or mixed reality display system.

[0105] According to any of these embodiments, the processor may comprise a state machine.

[0106] According to any of these embodiments, the system may further include an arbiter for receiving requests to operate the sensor in the first mode or the second mode, and the arbiter may be configured to schedule and prioritize the requests.

[0107] According to any of these embodiments, the system may further comprise a sensor.

[0108] In some embodiments, a method includes receiving a first request for a first type of depth measurement, receiving a second request for a second type of depth measurement, assigning a first priority to the first request, assigning a second priority to the second request, and causing a depth sensor to first obtain the first type of depth measurement if the first priority is higher than the second priority, or causing the depth sensor to first obtain the second type of depth measurement if the second priority is higher than the first priority.

[0109] According to any of these embodiments, the first priority can be assigned based on the priority of a first application requesting a first type of depth measurement, and the second priority can be assigned based on the priority of a second application requesting a second type of depth measurement.

[0110] In some embodiments, the system includes an arbiter configured to receive a first request for a first type of depth measurement and a second request for a second type of depth measurement, the arbiter configured to assign a first priority to the first request and a second priority to the second request; and a processor configured to cause the depth sensor to first obtain the first type of depth measurement if the first priority is higher than the second priority, or to cause the depth sensor to first obtain the second type of depth measurement if the second priority is higher than the first priority.

[0111] According to any of these embodiments, the arbiter may be configured to assign a first priority based on a priority of a first application requesting a first type of depth measurement, and to assign a second priority based on a priority of a second application requesting a second type of depth measurement.

[0112] According to any of these embodiments, the system may be integrated within a virtual, augmented, or mixed reality display system.

[0113] In some embodiments, a method includes performing configuration operations for a depth sensor, the configuration operations including storing in a memory of the depth sensor a first series of operational steps defining a first depth-sensing operational mode and storing in a memory of the depth sensor a second series of operational steps defining a second depth-sensing operational mode; receiving a first request for depth measurement according to the first depth-sensing operational mode and, in response to the first request, causing the depth sensor to operate in the first operational mode by causing the depth sensor to perform the first series of operational steps; and receiving a second request for depth measurement according to the second depth-sensing operational mode and, in response to the second request, causing the depth sensor to operate in the second operational mode without performing additional configuration operations by causing the depth sensor to perform the second series of operational steps.

[0114] According to any of these embodiments, the depth sensor may comprise a time-of-flight camera.

[0115] According to any of these embodiments, the first depth-sensing operating mode can correspond to a first measurement distance range, and the second depth-sensing operating mode can correspond to a second measurement distance range that is different from the first measurement distance range.

[0116] According to any of these embodiments, the first depth-sensing operating mode may correspond to a first frame rate, and the second depth-sensing operating mode may correspond to a second frame rate that is slower than the first frame rate.

[0117] According to any of these embodiments, the method may further include providing depth information from the depth sensor to a virtual reality, augmented reality, or mixed reality display system.

[0118] In some embodiments, the system comprises a processor configured to execute a method including: performing configuration operations for a depth sensor, the configuration operations including storing in a memory of the depth sensor a first series of operational steps that define a first depth-sensing operational mode; and storing in a memory of the depth sensor a second series of operational steps that define a second depth-sensing operational mode; receiving a first request for depth measurement according to the first depth-sensing operational mode and, in response to the first request, causing the depth sensor to operate in the first operational mode by causing the depth sensor to perform the first series of operational steps; and receiving a second request for depth measurement according to the second depth-sensing operational mode and, in response to the second request, causing the depth sensor to operate in the second operational mode by causing the depth sensor to perform the second series of operational steps without performing additional configuration operations.

[0119] According to any of these embodiments, the depth sensor may comprise a time-of-flight camera.

[0120] According to any of these embodiments, the first depth-sensing operating mode can correspond to a first measurement distance range, and the second depth-sensing operating mode can correspond to a second measurement distance range that is different from the first measurement distance range.

[0121] According to any of these embodiments, the first depth-sensing operating mode may correspond to a first frame rate, and the second depth-sensing operating mode may correspond to a second frame rate that is slower than the first frame rate.

[0122] According to any of these embodiments, the system may be integrated within a virtual, augmented, or mixed reality display system.

[0123] In some embodiments, a non-transitory computer-readable medium comprises code that, when read by a computing device, causes the computing device to perform a method including providing a sensor with a set of common operational steps included in both a first set of operational steps defining a first operational mode and a second set of operational steps defining a second operational mode; providing the sensor with one or more dummy operational steps related to differences between the first operational mode and the second operational mode; operating the sensor in the first operational mode by causing the sensor to perform at least the common operational steps; and operating the sensor in the second operational mode by causing the sensor to perform the common operational steps and the at least one dummy operational step.

[0124] According to any of these embodiments, the first operating mode may include performing at least the common operating step at a first rate, and the second operating mode may include performing the common operating step and at least one dummy operating step at a second rate that is slower than the first rate.

[0125] According to any of these embodiments, at least one of the one or more dummy operation steps may include a delay.

[0126] According to any of these embodiments, providing the sensor with a sequence of common operating steps and one or more dummy operating steps may include storing the operating steps in a sensor memory.

[0127] According to any of these embodiments, switching the sensor between the first and second operating modes may not require any additional action to store the operating steps in the sensor memory.

[0128] According to any of these embodiments, the sensor may comprise a depth sensor.

[0129] According to any of these embodiments, the depth sensor may comprise a time-of-flight camera.

[0130] According to any of these embodiments, the first operating mode can include a depth-sensing mode with a first frame rate, and the second operating mode can include a depth-sensing mode with a second frame rate that is slower than the first frame rate.

[0131] According to any of these embodiments, the computer-readable medium may further comprise code for causing a computing device to provide depth information from the depth sensor to a virtual reality, augmented reality, or mixed reality display system.

[0132] In some embodiments, a non-transitory computer-readable medium comprises code that, when read by a computing device, causes the computing device to perform a method including receiving a first request for a first type of depth measurement, receiving a second request for a second type of depth measurement, assigning a first priority to the first request, assigning a second priority to the second request, and causing the depth sensor to first obtain the first type of depth measurement if the first priority is higher than the second priority, or causing the depth sensor to first obtain the second type of depth measurement if the second priority is higher than the first priority.

[0133] According to any of these embodiments, the first priority can be assigned based on the priority of a first application requesting a first type of depth measurement, and the second priority can be assigned based on the priority of a second application requesting a second type of depth measurement.

[0134] In some embodiments, a non-transitory computer-readable medium comprises code that, when read by a computing device, causes the computing device to perform a method of operating a depth sensor, the method including: performing configuration operations for the depth sensor, the configuration operations including storing in a memory of the depth sensor a first series of operational steps defining a first depth-sensing mode of operation, and storing in a memory of the depth sensor a second series of operational steps defining a second depth-sensing mode of operation; receiving a first request for depth measurements according to the first depth-sensing mode of operation, and in response to the first request, causing the depth sensor to operate in the first mode of operation by causing the depth sensor to perform the first series of operational steps; and receiving a second request for depth measurements according to the second depth-sensing mode of operation, and in response to the second request, causing the depth sensor to operate in the second mode of operation without performing additional configuration operations by causing the depth sensor to perform the second series of operational steps.

[0135] According to any of these embodiments, the depth sensor may comprise a time-of-flight camera.

[0136] According to any of these embodiments, the first depth-sensing operating mode can correspond to a first measurement distance range, and the second depth-sensing operating mode can correspond to a second measurement distance range that is different from the first measurement distance range.

[0137] According to any of these embodiments, the first depth-sensing operating mode may correspond to a first frame rate, and the second depth-sensing operating mode may correspond to a second frame rate that is slower than the first frame rate.

[0138] According to any of these embodiments, the computer-readable medium may further comprise code for causing a computing device to provide depth information from the depth sensor to a virtual reality, augmented reality, or mixed reality display system. (Additional Considerations)

[0139] For purposes of summarizing the disclosure, certain aspects, advantages, and features of the invention have been described herein. It should be understood that not necessarily all such advantages may be achieved in accordance with any particular embodiment of the invention. Thus, the invention may be embodied or carried out in a manner that achieves or optimizes one advantage or advantages as taught herein, without necessarily achieving other advantages as may be taught or suggested herein.

[0140] The embodiments are described in conjunction with the accompanying drawings. However, it should be understood that the figures are not drawn to scale. Distances, angles, etc. are illustrative only and do not necessarily bear precise relationships to the actual dimensions and layout of the devices shown. Additionally, the foregoing embodiments have been described with a level of detail that enables one skilled in the art to make and use the devices, systems, methods, etc. described herein. A wide variety of modifications are possible. Components, elements, and / or steps may be altered, added, removed, or rearranged.

[0141] The devices and methods described herein can advantageously be implemented, at least in part, using, for example, computer software, hardware, firmware, or any combination of software, hardware, and firmware. Software modules can comprise computer-executable code stored in a computer's memory to perform the functions described herein. In some embodiments, the computer-executable code is executed by one or more general-purpose computers. However, those skilled in the art will understand, in light of this disclosure, that any module that can be implemented using software running on a general-purpose computer can also be implemented using a different combination of hardware, software, or firmware. For example, such modules can be implemented entirely in hardware using a combination of integrated circuits. Alternatively, or in addition, such modules can be implemented, in whole or in part, not by a general-purpose computer, but by a specialized computer designed to perform the specific functions described herein. Additionally, when methods are described that are or can be implemented at least in part by computer software, it should be understood that such methods can be provided on a non-transitory computer-readable medium (e.g., an optical disk such as a CD or DVD, a hard disk drive, a flash memory, a diskette, etc.) that, when read by a computer or other processing device, causes the method to be performed.

[0142] While certain embodiments are explicitly described, other embodiments will be apparent to those skilled in the art based on this disclosure.

Claims

1. A depth sensor, a memory storing information usable to operate the depth sensor, the information comprising: a first series of operational steps defining a first depth-sensing operational mode of the depth sensor, the first series of operational steps including one or more common operational steps; a second series of operational steps, the second series of operational steps in combination with the one or more common operational steps defining a second depth-sensing operational mode of the depth sensor; a memory including: a processor communicatively coupled to the memory, the processor comprising: receiving a first request for a first depth measurement according to the first depth-sensing mode of operation, and in response to the first request, operating the depth sensor in the first depth-sensing mode of operation by performing the first series of operational steps to generate the first depth measurement; receiving a second request for a second depth measurement according to the second depth-sensing mode of operation, and in response to the second request, generating the second depth measurement by operating the depth sensor in the second depth-sensing mode of operation by performing the second series of operational steps and the one or more common operational steps without storing additional operational steps in the memory; a processor configured to execute wherein the processor comprises a state machine that causes the depth sensor to switch between the first depth-sensing mode of operation and the second depth-sensing mode of operation without reprogramming the memory.

2. The depth sensor of claim 1 , wherein the depth sensor is a time-of-flight camera.

3. 2. The depth sensor of claim 1, wherein the first depth-sensing operational mode corresponds to a first measurement distance range, and the second depth-sensing operational mode corresponds to a second measurement distance range different from the first measurement distance range.

4. The depth sensor of claim 1 , wherein the first depth measurement and the second depth measurement are usable in a virtual, augmented, or mixed reality display system.

5. 2. The depth sensor of claim 1, wherein the first depth-sensing mode of operation corresponds to a first frame rate and the second depth-sensing mode of operation corresponds to a second frame rate different from the first frame rate.

6. 2. The depth sensor of claim 1, wherein the first depth-sensing mode of operation corresponds to a first frame rate and the second depth-sensing mode of operation corresponds to a second frame rate that is slower than the first frame rate.

7. The depth sensor of claim 1 , wherein at least one of the second series of operational steps includes a delay.

8. 2. The depth sensor of claim 1, wherein the processor is further configured to receive at least one configuration request and to store the first series of operational steps and the second series of operational steps in the memory in response to the at least one configuration request.

9. The depth sensor of claim 1 , wherein the first depth-sensing mode of operation or the second depth-sensing mode of operation is a short-range high-frame-rate mode of operation.

10. 10. The depth sensor of claim 9, wherein the short-range high-frame-rate mode of operation is used for sensing depths at ranges less than about 2 m with frame rates greater than about 20 Hz.

11. The depth sensor of claim 1 , wherein the first depth-sensing mode of operation or the second depth-sensing mode of operation is a short-range, low-frame-rate mode of operation.

12. The depth sensor of claim 11 , wherein the short-range, low-frame-rate mode of operation is used for sensing depths at ranges of less than about 2 m with frame rates of less than about 20 Hz.

13. The depth sensor of claim 1 , wherein the first depth-sensing mode of operation or the second depth-sensing mode of operation is a long-range, high-frame-rate mode of operation.

14. 14. The depth sensor of claim 13, wherein the long-range high-frame-rate mode of operation is used for sensing depths in a range of about 2-4 m with a frame rate above about 20 Hz.

15. The depth sensor of claim 1 , wherein the first depth-sensing mode of operation or the second depth-sensing mode of operation is a long-range, low-frame-rate mode of operation.

16. 16. The depth sensor of claim 15, wherein the long-range, low-frame-rate mode of operation is used for sensing depths in a range of about 2-4 m with a frame rate of less than about 20 Hz.

17. A depth sensor, a memory storing information usable to operate the depth sensor, the information comprising: a first series of operational steps defining a first depth-sensing operational mode of the depth sensor, the first series of operational steps including one or more common operational steps; a second series of operational steps, the second series of operational steps in combination with the one or more common operational steps defining a second depth-sensing operational mode of the depth sensor; a memory including: a processor communicatively coupled to the memory, the processor comprising: receiving a first request for a first depth measurement according to the first depth-sensing mode of operation, and in response to the first request, operating the depth sensor in the first depth-sensing mode of operation by performing the first series of operational steps to generate the first depth measurement; receiving a second request for a second depth measurement according to the second depth-sensing mode of operation, and in response to the second request, generating the second depth measurement by operating the depth sensor in the second depth-sensing mode of operation by performing the second series of operational steps and the one or more common operational steps without storing additional operational steps in the memory; a processor configured to execute Equipped with the first depth-sensing mode of operation is a short-range high-frame-rate mode of operation; the second depth-sensing mode of operation is a short-range, low-frame-rate mode of operation; the one or more common operational steps include: i) capturing a short-range intensity sub-frame using a short exposure; and ii) capturing four phase sub-frames; the first series of operational steps includes a first delay; The second series of operational steps includes a second delay that is longer than the first delay.

18. A depth sensor, a memory storing information usable to operate the depth sensor, the information comprising: a first series of operational steps defining a first depth-sensing operational mode of the depth sensor, the first series of operational steps including one or more common operational steps; a second series of operational steps, the second series of operational steps in combination with the one or more common operational steps defining a second depth-sensing operational mode of the depth sensor; a memory including: a processor communicatively coupled to the memory, the processor comprising: receiving a first request for a first depth measurement according to the first depth-sensing mode of operation, and in response to the first request, operating the depth sensor in the first depth-sensing mode of operation by performing the first series of operational steps to generate the first depth measurement; receiving a second request for a second depth measurement according to the second depth-sensing mode of operation, and in response to the second request, generating the second depth measurement by operating the depth sensor in the second depth-sensing mode of operation by performing the second series of operational steps and the one or more common operational steps without storing additional operational steps in the memory; a processor configured to execute Equipped with the first depth-sensing mode of operation is a long-range high-frame-rate mode of operation; the second depth-sensing mode of operation is a long-range low-frame-rate mode of operation; the one or more common operational steps include: i) capturing long distance intensity sub-frames using a long exposure; ii) capturing four phase sub-frames for a first illumination modulation frequency; and iii) capturing four phase sub-frames for a second illumination modulation frequency; the first series of operational steps includes a first delay; The second series of operational steps includes a second delay that is longer than the first delay.

Citation Information

Patent Citations

  • Method and device for three-dimensional input

    JP2001337166A

  • Range finder

    JP2004157061A

  • Imaging device, and capsule type endoscopic camera

    JP2008183049A

  • Periphery monitoring device for vehicle

    JP2010085277A

  • Obstacle detection apparatus

    JP2010230366A

Cited By

  • Depth sensing techniques for virtual, augmented and mixed reality systems

    JP2025022886A