Patent Description:
Virtual reality (VR) systems, or augmented reality (AR) systems, can leverage the capture of the environment surrounding a user in three dimensions (3D). However, traditional depth camera imaging architectures are comparably large in size, heavy, and consume significant amounts of power. Example common depth camera imaging architectures for obtaining 3D information of a scene include: time-of-flight (both direct-detect pulses and encoded waveforms), structured light (SL), and stereo vision. Different depth camera imaging architectures provide different strengths and weaknesses, so certain depth camera imaging architectures may provide better performance than others in different operating conditions. For instance, stereo vision architectures operate well with ambient illumination, while time-of-flight architectures having an active illumination source may be impaired by limitations in signal-to-noise ratio from ambient illumination. However, because of the relatively large size of conventional depth camera imaging architectures, many systems including a depth camera typically use a single type of depth camera imaging architecture configured for a particular use case. As head-mounted systems are increasingly used to perform a broader range of functions in varied operating conditions and environments, selecting a single depth camera imaging architecture to obtain depth information of an area surrounding the head-mounted system and user may impair the user experience with head-mounted systems. The disclosures of <CIT>, <CIT>, <CIT> and <CIT> may be helpful for understanding the present invention.

The present invention refers to an apparatus according to claim <NUM>. Advantageous embodiments may include features of depending claims. A headset in a virtual reality (VR) or augmented reality (AR) system environment includes a depth camera assembly (DCA) configured to determine distances between the headset and one or more objects in an area surrounding the headset and within a field of view of an imaging device included in the headset (i.e., a "local area"). The DCA includes the imaging device, such as a camera, and an illumination source that is configured to emit a specified pattern, such as a symmetric or quasi-random dots, grid, or horizontal bars, onto a scene. For example, the illumination source emits a grid or a series of horizontal bars onto the local area. Based on deformation of the pattern when projected onto surfaces in the local area, the DCA can leverage triangulation to determine distances between the surfaces and the headset.

In addition to controlling the specified pattem emitted onto the local area, the DCA also embeds a time-varying intensity to the pattern. Capturing information describing net round-trip times for light emitted from the illumination source to be reflected from objects in the local area back to the imaging device ("time of flight information"), the DCA has an additional mechanism for capturing depth information of the local area of the headset. Based on the times for the emitted light to be captured by the imaging device, the DCA determines distances between the DCA and objects in the local area reflecting the light from the illumination source. For example, the DCA determines a foot of distance between the DCA and an object in the local area per approximately two (<NUM>) nanoseconds for emitted light to be captured by the imaging device included in the DCA. To capture time of flight information as well as structured light information, the illumination source modulates the temporal and spatial intensity of the pattem emitted by the illumination source with a temporal carrier signal having a specific frequency, such as <NUM> megahertz.

The imaging device captures light from the local area, including light emitted by the illumination source, which is prescribed by a spatial and a temporal profile. To determine time of flight information from the illumination source reflected by objects in the local area, the imaging device includes a detector comprising an array of pixel groups. Each pixel group may include one or more pixels, and different pixel groups are associated with different phase shifts in integration time relative to a phase of the carrier signal used by the illumination source to modulate the emitted pattern. Different pixel groups in the detector receive different control signals, so the different pixel groups capture light at different times specified by the control signal. This allows different pixel groups in the detector to capture different phases of the modulated pattern. For example, four pixel groups nearest to each other receive different control signals that cause each of the four pixel groups to capture light at different times, so light captured by each of the four pixel groups has a ninety (<NUM>) degree phase shift relative to light captured by other pixel groups in the four pixel groups. The DCA compares the relative signal between the four pixel groups to derive a net phase or angle of the carrier signal for an object position, which will vary across the detector based upon relative field of view. The derived net phase or angle is based on signal differences of the light captured by different pixel groups in the detector. Using any suitable technique, the DCA compensates for temporal offsets in the relative signal to determine an image of the structured pattern emitted onto the local area. For example, the DCA compensates for temporal offsets in the relative signal by inverting a phase angle of the relative signal to scale the relative pixel-by-pixel irradiance, summing relative signals from neighboring pixels to remove temporal bias, or perform other suitable operations based on temporal offsets of the relative signal and offsets in the derived net phase or angle from different pixels in the detector. Accordingly, a frame captured by the imaging device in the DCA captures structured light (i.e., spatial) data and time-of-flight (i.e. temporal) data, improving overall estimation of depth information for the local area by the DCA. As structured light data and time-of-flight data provide different information for relative depth of the local area relative to the DCA, capturing structured light data and time-of-flight data in a frame improves accuracy, precision, and robustness of depth estimation by the DCA. Capturing structured light and time-of-flight data in a single frame also decreases the DCA's sensitivity to movement or motion variance, allowing the DCA to leverage relative strengths of both time-of-flight data and structured-light data using a single detector, providing a smaller, lighter and more cost effective DCA implementation.

The figures depict embodiments of the present disclosure for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles, or benefits touted, of the disclosure described herein.

<FIG> is a block diagram of one embodiment of a virtual reality (VR) system environment <NUM> in which a VR console <NUM> operates. While <FIG> shows a VR system environment for purposes of illustration, the components and functionality described herein may also be included in an augmented reality (AR) system in various embodiments. As used herein, a VR system environment <NUM> may also include virtual reality system environments that present users with virtual environments with which the user may interact. The VR system environment <NUM> shown by <FIG> comprises a VR headset <NUM> and a VR input/output (I/O) interface <NUM> that is coupled to a VR console <NUM>. While <FIG> shows an example system <NUM> including one VR headset <NUM> and one VR I/O interface <NUM>, in other embodiments any number of these components may be included in the VR system environment <NUM>. For example, there may be multiple VR headsets <NUM> each having an associated VR I/O interface <NUM>, with each VR headset <NUM> and VR I/O interface <NUM> communicating with the VR console <NUM>. In alternative configurations, different and/or additional components may be included in the VR system environment <NUM>. Additionally, functionality described in conjunction with one or more of the components shown in <FIG> may be distributed among the components in a different manner than described in conjunction with <FIG> in some embodiments. For example, some or all of the functionality of the VR console <NUM> is provided by the VR headset <NUM>.

The VR headset <NUM> is a head-mounted display that presents content to a user comprising augmented views of a physical, real-world environment with computer-generated elements (e.g., two dimensional (2D) or three dimensional (3D) images, 2D or 3D video, sound, etc.). In some embodiments, the presented content includes audio that is presented via an external device (e.g., speakers and/or headphones) that receives audio information from the VR headset <NUM>, the VR console <NUM>, or both, and presents audio data based on the audio information. An embodiment of the VR headset <NUM> is further described below in conjunction with <FIG> and <FIG>. The VR headset <NUM> may comprise one or more rigid bodies, which may be rigidly or non-rigidly coupled to each other together. A rigid coupling between rigid bodies causes the coupled rigid bodies to act as a single rigid entity. In contrast, a non-rigid coupling between rigid bodies allows the rigid bodies to move relative to each other.

The VR headset <NUM> includes a depth camera assembly (DCA) <NUM>, an electronic display <NUM>, an optics block <NUM>, one or more position sensors <NUM>, and an inertial measurement Unit (IMU) <NUM>. Some embodiments of The VR headset <NUM> have different components than those described in conjunction with <FIG>. Additionally, the functionality provided by various components described in conjunction with <FIG> may be differently distributed among the components of the VR headset <NUM> in other embodiments.

The DCA <NUM> captures data describing depth information of an area surrounding the VR headset <NUM>. Some embodiments of the DCA <NUM> include one or more imaging devices (e.g., a camera, a video camera) and an illumination source configured to emit a structured light (SL) pattern. As further discussed below, structured light projects a specified pattern, such as a symmetric or quasi-random dot pattern, grid, or horizontal bars, onto a scene. For example, the illumination source emits a grid or a series of horizontal bars onto an environment surrounding the VR headset <NUM>. Based on triangulation, or perceived deformation of the pattern when projected onto surfaces, depth and surface information of objects within the scene is determined.

To better capture depth information of the area surrounding the VR headset <NUM> the DCA <NUM> also captures time of flight information describing times for light emitted from the illumination source to be reflected from objects in the area surrounding the VR headset <NUM> back to the one or more imaging devices. In various implementations, the DCA <NUM> captures time-of-flight information simultaneously or near-simultaneously with structured light information. Based on the times for the emitted light to be captured by one or more imaging devices, the DCA <NUM> determines distances between the DCA <NUM> and objects in the area surrounding the VR headset <NUM> that reflect light from the illumination source. To capture time of flight information as well as structured light information, the illumination source modulates the emitted SL pattern with a carrier signal having a specific frequency, such as <NUM> (in various embodiments, the frequency may be selected from a range of frequencies between <NUM> and <NUM>).

The imaging devices capture and record particular ranges of wavelengths of light (i.e., "bands" of light). Example bands of light captured by an imaging device include: a visible band (~<NUM> to <NUM>), an infrared (IR) band (~<NUM> to <NUM>,<NUM>), an ultraviolet band (<NUM> to <NUM>), another portion of the electromagnetic spectrum, or some combination thereof. In some embodiments, an imaging device captures images including light in the visible band and in the infrared band. To jointly capture light from the structured light pattern that is reflected from objects in the area surrounding the VR headset <NUM> and determine times for the carrier signal from the illumination source to be reflected from objects in the area to the DCA <NUM>, the imaging device includes a detector comprising an array of pixel groups. Each pixel group includes one or more pixels, and different pixel groups are associated with different phase shifts relative to a phase of the carrier signal. In various embodiments, different pixel groups are activated at different times relative to each other to capture different temporal phases of the pattem modulated by the carrier signal emitted by the illumination source. For example, pixel groups are activated at different times so that adjacent pixel groups capture light having approximately a <NUM>, <NUM>, or <NUM> degree phase shift relative to each other. The DCA <NUM> derives a phase of the carrier signal, which is equated to a depth from the DCA <NUM>, from signal data captured by the different pixel groups. The captured data also generates an image frame of the spatial pattern, either through summation of the total pixel charges across the time domain, or after correct for the carrier phase signal. The DCA <NUM> is further described below in conjunction with <FIG>.

The electronic display <NUM> displays 2D or 3D images to the user in accordance with data received from the VR console <NUM>. In various embodiments, the electronic display <NUM> comprises a single electronic display or multiple electronic displays (e.g., a display for each eye of a user). Examples of the electronic display <NUM> include: a liquid crystal display (LCD), an organic light emitting diode (OLED) display, an active-matrix organic light-emitting diode display (AMOLED), some other display, or some combination thereof.

The optics block <NUM> magnifies image light received from the electronic display <NUM>, corrects optical errors associated with the image light, and presents the corrected image light to a user of the VR headset <NUM>. In various embodiments, the optics block <NUM> includes one or more optical elements. Example optical elements included in the optics block <NUM> include: an aperture, a Fresnel lens, a convex lens, a concave lens, a filter, a reflecting surface, or any other suitable optical element that affects image light. Moreover, the optics block <NUM> may include combinations of different optical elements. In some embodiments, one or more of the optical elements in the optics block <NUM> may have one or more coatings, such as anti-reflective coatings.

Magnification and focusing of the image light by the optics block <NUM> allows the electronic display <NUM> to be physically smaller, weigh less and consume less power than larger displays. Additionally, magnification may increase the field of view of the content presented by the electronic display <NUM>. For example, the field of view of the displayed content is such that the displayed content is presented using almost all (e.g., approximately <NUM> degrees diagonal), and in some cases all, of the user's field of view. Additionally in some embodiments, the amount of magnification may be adjusted by adding or removing optical elements.

In some embodiments, the optics block <NUM> may be designed to correct one or more types of optical error. Examples of optical error include barrel distortions, pincushion distortions, longitudinal chromatic aberrations, or transverse chromatic aberrations. Other types of optical errors may further include spherical aberrations, comatic aberrations or errors due to the lens field curvature, astigmatisms, or any other type of optical error. In some embodiments, content provided to the electronic display <NUM> for display is pre-distorted, and the optics block <NUM> corrects the distortion when it receives image light from the electronic display <NUM> generated based on the content.

The IMU <NUM> is an electronic device that generates data indicating a position of the VR headset <NUM> based on measurement signals received from one or more of the position sensors <NUM> and from depth information received from the DCA <NUM>. A position sensor <NUM> generates one or more measurement signals in response to motion of the VR headset <NUM>. Examples of position sensors <NUM> include: one or more accelerometers, one or more gyroscopes, one or more magnetometers, another suitable type of sensor that detects motion, a type of sensor used for error correction of the IMU <NUM>, or some combination thereof. The position sensors <NUM> may be located external to the IMU <NUM>, internal to the IMU <NUM>, or some combination thereof.

Based on the one or more measurement signals from one or more position sensors <NUM>, the IMU <NUM> generates data indicating an estimated current position of the VR headset <NUM> relative to an initial position of the VR headset <NUM>. For example, the position sensors <NUM> include multiple accelerometers to measure translational motion (forward/back, up/down, left/right) and multiple gyroscopes to measure rotational motion (e.g., pitch, yaw, roll). In some embodiments, the IMU <NUM> rapidly samples the measurement signals and calculates the estimated current position of the VR headset <NUM> from the sampled data. For example, the IMU <NUM> integrates the measurement signals received from the accelerometers over time to estimate a velocity vector and integrates the velocity vector over time to determine an estimated current position of a reference point on the VR headset <NUM>. Alternatively, the IMU <NUM> provides the sampled measurement signals to the VR console <NUM>, which interprets the data to reduce error. The reference point is a point that may be used to describe the position of the VR headset <NUM>. The reference point may generally be defined as a point in space or a position related to the VR headset's <NUM> orientation and position.

The IMU <NUM> receives one or more parameters from the VR console <NUM>. As further discussed below, the one or more parameters are used to maintain tracking of the VR headset <NUM>. Based on a received parameter, the IMU <NUM> may adjust one or more IMU parameters (e.g., sample rate). In some embodiments, certain parameters cause the IMU <NUM> to update an initial position of the reference point so it corresponds to a next position of the reference point. Updating the initial position of the reference point as the next calibrated position of the reference point helps reduce accumulated error associated with the current position estimated the IMU <NUM>. The accumulated error, also referred to as drift error, causes the estimated position of the reference point to "drift" away from the actual position of the reference point over time. In some embodiments of the VR headset <NUM>, the IMU <NUM> may be a dedicated hardware component. In other embodiments, the IMU <NUM> may be a software component implemented in one or more processors.

The VR I/O interface <NUM> is a device that allows a user to send action requests and receive responses from the VR console <NUM>. An action request is a request to perform a particular action. For example, an action request may be an instruction to start or end capture of image or video data or an instruction to perform a particular action within an application. The VR I/O interface <NUM> may include one or more input devices. Example input devices include: a keyboard, a mouse, a game controller, or any other suitable device for receiving action requests and communicating the action requests to the VR console <NUM>. An action request received by the VR I/O interface <NUM> is communicated to the VR console <NUM>, which performs an action corresponding to the action request. In some embodiments, the VR I/O interface <NUM> includes an IMU <NUM>, as further described above, that captures calibration data indicating an estimated position of the VR I/O interface <NUM> relative to an initial position of the VR I/O interface <NUM>. In some embodiments, the VR I/O interface <NUM> may provide haptic feedback to the user in accordance with instructions received from the VR console <NUM>. For example, haptic feedback is provided when an action request is received, or the VR console <NUM> communicates instructions to the VR I/O interface <NUM> causing the VR I/O interface <NUM> to generate haptic feedback when the VR console <NUM> performs an action.

The VR console <NUM> provides content to the VR headset <NUM> for processing in accordance with information received from one or more of: the DCA <NUM>, the VR headset <NUM>, and the VR I/O interface <NUM>. In the example shown in <FIG>, the VR console <NUM> includes an application store <NUM>, a tracking module <NUM> and a VR engine <NUM>. Some embodiments of the VR console <NUM> have different modules or components than those described in conjunction with <FIG>. Similarly, the functions further described below may be distributed among components of the VR console <NUM> in a different manner than described in conjunction with <FIG>.

The application store <NUM> stores one or more applications for execution by the VR console <NUM>. An application is a group of instructions, that when executed by a processor, generates content for presentation to the user. Content generated by an application may be in response to inputs received from the user via movement of the VR headset <NUM> or the VR I/O interface <NUM>. Examples of applications include: gaming applications, conferencing applications, video playback applications, or other suitable applications.

The tracking module <NUM> calibrates the VR system environment <NUM> using one or more calibration parameters and may adjust one or more calibration parameters to reduce error in determination of the position of the VR headset <NUM> or of the VR I/O interface <NUM>. For example, the tracking module <NUM> communicates a calibration parameter to the DCA <NUM> to adjust the focus of the DCA <NUM> to more accurately determine positions of SL elements captured by the DCA <NUM>. Calibration performed by the tracking module <NUM> also accounts for information received from the IMU <NUM> in the VR headset <NUM> and/or an IMU <NUM> included in the VR I/O interface <NUM>. Additionally, if tracking of the VR headset <NUM> is lost (e.g., the DCA <NUM> loses line of sight of at least a threshold number of SL elements), the tracking module <NUM> may re-calibrate some or all of the VR system environment <NUM>.

The tracking module <NUM> tracks movements of the VR headset <NUM> or of the VR I/O interface <NUM> using information from the DCA <NUM>, the one or more position sensors <NUM>, the IMU <NUM> or some combination thereof. For example, the tracking module <NUM> determines a position of a reference point of the VR headset <NUM> in a mapping of a local area based on information from the VR headset <NUM>. The tracking module <NUM> may also determine positions of the reference point of the VR headset <NUM> or a reference point of the VR I/O interface <NUM> using data indicating a position of the VR headset <NUM> from the IMU <NUM> or using data indicating a position of the VR I/O interface <NUM> from an IMU <NUM> included in the VR I/O interface <NUM>, respectively. Additionally, in some embodiments, the tracking module <NUM> may use portions of data indicating a position of the VR headset <NUM> from the IMU <NUM> as well as representations of the local area from the DCA <NUM> to predict a future location of the VR headset <NUM>. The tracking module <NUM> provides the estimated or predicted future position of the VR headset <NUM> or the VR I/O interface <NUM> to the VR engine <NUM>.

The VR engine <NUM> generates a 3D mapping of the area surrounding the VR headset <NUM> (i.e., the "local area") based on information received from the VR headset <NUM>. In some embodiments, the VR engine <NUM> determines depth information for the 3D mapping of the local area based on images of deformed SL elements captured by the DCA <NUM> of the VR headset <NUM>, based on elapsed times for light emitted by the DCA <NUM> to be detected by the DCA <NUM> after being reflected by one or more objects in the area surrounding the VR headset <NUM>, or based on a combination of images of deformed SL elements captured by the DCA <NUM> and elapsed times for light emitted by the DCA <NUM> to be detected by the DCA <NUM> after being reflected by one or more objects in the area surrounding the VR headset <NUM>. In various embodiments, the VR engine <NUM> uses different types of information determined by the DCA <NUM> or a combination of types of information determined by the DCA <NUM>.

The VR engine <NUM> also executes applications within the VR system environment <NUM> and receives position information, acceleration information, velocity information, predicted future positions, or some combination thereof, of the VR headset <NUM> from the tracking module <NUM>. Based on the received information, the VR engine <NUM> determines content to provide to the VR headset <NUM> for presentation to the user. For example, if the received information indicates that the user has looked to the left, the VR engine <NUM> generates content for the VR headset <NUM> that mirrors the user's movement in a virtual environment or in an environment augmenting the local area with additional content. Additionally, the VR engine <NUM> performs an action within an application executing on the VR console <NUM> in response to an action request received from the VR I/O interface <NUM> and provides feedback to the user that the action was performed. The provided feedback may be visual or audible feedback via the VR headset <NUM> or haptic feedback via the VR I/O interface <NUM>.

<FIG> is a wire diagram of one embodiment of a VR headset <NUM>. The VR headset <NUM> is an embodiment of the VR headset <NUM>, and includes a front rigid body <NUM>, a band <NUM>, a reference point <NUM>, a left side 220A, a top side 220B, a right side 220C, a bottom side 220D, and a front side 220E. The VR headset <NUM> shown in <FIG> also includes an embodiment of a depth camera assembly (DCA) <NUM> including a camera, <NUM> and a illumination source <NUM>, which are further described below in conjunction with <FIG> and <FIG>. The front rigid body <NUM> includes one or more electronic display elements of the electronic display <NUM> (not shown), the IMU <NUM>, the one or more position sensors <NUM>, and the reference point <NUM>.

In the embodiment shown by <FIG>, the VR headset <NUM> includes a DCA <NUM> comprising a camera <NUM> and an illumination source <NUM> configured to project a known spatial pattern (e.g., a grid, a series of lines, a pattern of symmetrical or quasi-randomly oriented dots) onto the local area. For example, the spatial pattern comprises one or more geometrical elements of known width and height, allowing calculation of deformation of various geometrical elements when the spatial pattern is projected onto the local area to provide information about the objects in the local area. The illumination source <NUM> temporally modulates the known spatial pattern with a carrier signal having a specified frequency. In various embodiments, the illumination source <NUM> includes a controller (e.g., a processor) coupled to the light emitter, with the controller configured to modulate light emitted by the light emitter by a carrier signal to vary intensity of the light emitted by the light emitter over time based on variation of the carrier signal. When the light emitter emits a known spatial pattern (i.e., a "pattem of structured light" or a "structured light pattern"), the intensity of the known spatial pattern varies over time based on the carrier signal. For example, the illumination source <NUM> includes a light emitter coupled to a controller that modulates a known spatial pattern with a sine wave having a frequency of <NUM>, with a square wave having a frequency of <NUM>, or with any other suitable signal. The camera <NUM> captures images of the local area, which are used to calculate a depth image of the local area, as further described below in conjunction with <FIG>.

<FIG> is a cross section of the front rigid body <NUM> of the VR headset <NUM> depicted in <FIG>. As shown in <FIG>, the front rigid body <NUM> includes an imaging device <NUM> and an illumination source <NUM>. Also shown in the example of <FIG>, the front rigid body <NUM> includes a processor <NUM> coupled to the imaging device <NUM>. However, in other embodiments, the processor <NUM> is included in the imaging device <NUM>. The front rigid body <NUM> also has an optical axis corresponding to a path along which light propagates through the front rigid body <NUM>. In some embodiments, the imaging device <NUM> is positioned along the optical axis and captures images of a local area <NUM>, which is a portion of an environment surrounding the front rigid body <NUM> within a field of view of the imaging device <NUM>. Additionally, the front rigid body <NUM> includes the electronic display <NUM> and the optics block <NUM>, which are further described above in conjunction with <FIG>. The front rigid body <NUM> also includes an exit pupil <NUM> where the user's eye <NUM> is located. For purposes of illustration, <FIG> shows a cross section of the front rigid body <NUM> in accordance with a single eye <NUM>. The local area <NUM> reflects incident ambient light as well as light projected by the illumination source <NUM>.

As described above in conjunction with <FIG>, the electronic display <NUM> emits light forming an image toward the optics block <NUM>, which alters the light received from the electronic display <NUM>. The optics block <NUM> directs the altered image light to the exit pupil <NUM>, which is a location of the front rigid body <NUM> where a user's eye <NUM> is positioned. <FIG> shows a cross section of the front rigid body <NUM> for a single eye <NUM> of the user, with another electronic display <NUM> and optics block <NUM>, separate from those shown in <FIG>, included in the front rigid body <NUM> to present content, such as an augmented representation of the local area <NUM> or virtual content, to another eye of the user.

The depth camera assembly (DCA) <NUM> including the illumination source <NUM> and the imaging device <NUM> captures information describing times for light emitted from the illumination source <NUM> to be reflected from objects in the local area <NUM> back to the imaging device <NUM> as well as images of a structured light pattern projected onto to local area <NUM> by the illumination source <NUM> using a detector. In various embodiments, the detector is included in the imaging device <NUM>. As described above, to capture the times for light from the illumination source <NUM> to be reflected from objects in the local area <NUM>, the illumination source <NUM> modulates a structured light pattern with a carrier signal having a specified frequency. For example, the illumination source <NUM> modulates the structured light pattern with a <NUM> sine wave, causing the light emitted by the illumination source <NUM> to vary in intensity over time based on the carrier signal.

To capture both the spatial and temporal modulated light pattern, the imaging device <NUM> includes a detector comprising multiple groups of pixels. <FIG> shows an example detector <NUM> included in the imaging device <NUM>. The detector <NUM> in <FIG> includes different pixel groups <NUM>, <NUM>, <NUM>, <NUM> that each receive different control signals activating the pixel groups <NUM>, <NUM>, <NUM>, <NUM> to capture image data. Having different pixel groups <NUM>, <NUM>, <NUM>, <NUM> receive different control signals allows the different pixel groups <NUM>, <NUM>, <NUM>, <NUM> to capture image data with offset, yet controlled, timing sequences. For example, when a control signal received by a pixel group <NUM>, <NUM>, <NUM>, <NUM> has a particular value, the pixel group <NUM>, <NUM>, <NUM>, <NUM> captures light from the local area <NUM>, and when the control signal has an alternative value, the pixel group <NUM>, <NUM>, <NUM>, <NUM> does not capture light from the local area <NUM>. Pixel groups <NUM>, <NUM>, <NUM>, <NUM> in the detector <NUM> are positioned relative to each other so that pixel groups <NUM>, <NUM>, <NUM>, <NUM> nearest to each other capture light at different times, resulting in a specific phase shift between light captured by the pixel groups <NUM>, <NUM>, <NUM>, <NUM> nearest to each other. In the example of <FIG>, pixel group <NUM>, pixel group <NUM>, pixel group <NUM>, and pixel group <NUM> capture light at different times, so light captured by pixel group <NUM> has a <NUM> degree phase shift relative to light captured by pixel group <NUM>, which has a <NUM> degree phase shift relative to pixel group <NUM> (and a <NUM> degree phase shift relative to pixel group <NUM>). However, in other embodiments, light captured by a pixel group <NUM> has any suitable specific phase shift relative to light captured by other pixel groups <NUM>, <NUM>, <NUM> nearest to the pixel group <NUM> (e.g., a <NUM> degree phase shift, a <NUM> degree phase shift, etc.). Also in the example of <FIG>, pixel group <NUM> has a <NUM> degree phase shift to pixel group <NUM> (and a <NUM> degree phase shift to pixel group <NUM>). Similarly, each of pixel group <NUM>, pixel group <NUM>, and pixel group <NUM> capture light with a <NUM> degree phase shift relative to the other pixel groups <NUM>, <NUM>, <NUM>, <NUM>. For example, pixel group <NUM>, pixel group <NUM>, pixel group <NUM>, and pixel group <NUM> capture light with a phase shift of <NUM> degrees, a phase shift of <NUM> degrees, a phase shift of <NUM> degrees, and a phase shift of <NUM> degrees, respectively. In various embodiments, pixel groups <NUM>, <NUM>, <NUM>, <NUM> are arranged in the detector <NUM> in a repeating pattern. For example, the detector <NUM> includes multiple <NUM> by <NUM> grids each including pixel groups <NUM>, <NUM>, <NUM>, <NUM> arranged relative to each other as shown in <FIG>.

The processor <NUM> coupled to the imaging device <NUM> (or included in the imaging device <NUM>) receives data from the imaging device <NUM> and determines a phase of the carrier signal that temporally modulated pattern of structured light, as further described below. Based on the determiend phase of the carrier signal, the processor <NUM> determines a time for the modulated pattern of structured light to be reflected by one or more objects in the local area and captured by the detector <NUM> of the imaging device <NUM>. From the times determined for reflection of the pattern of structured light by different objects in the local area, the processor <NUM> determines distances from the detector <NUM> to one or more objects in the local area and generates a frame including the pattern of structured light from the light captured by each pixel group <NUM>, <NUM>, <NUM>, <NUM> in the detector <NUM>.

<FIG> shows an example of control signals received by different pixel groups <NUM>, <NUM>, <NUM>, <NUM> in the detector <NUM>. In the example of <FIG>, when a control signal has a maximum value, a pixel group <NUM>, <NUM>, <NUM>, <NUM> receiving the control signal captures light, while pixel groups <NUM>, <NUM>, <NUM>, <NUM> receiving different control signals do not capture light. Similarly, when the control signal has a minimum value, a pixel group <NUM>, <NUM>, <NUM>, <NUM> receiving the control signal does not capture light. As shown by <FIG>, the control signals for different pixel groups <NUM>, <NUM>, <NUM>, <NUM> have maximum values at different times, so a single pixel group <NUM>, <NUM>, <NUM>, <NUM> captures light at a particular time. For example, when the control signal received by pixel group <NUM> has a maximum value, control signals received by pixel groups <NUM>, <NUM>, <NUM> have minimum values, so pixel groups <NUM>, <NUM>, <NUM> do not capture light while pixel group <NUM> captures light. Different pixel groups <NUM>, <NUM>, <NUM>, <NUM> serially capture light based on their control signals. When light is captured from each pixel group <NUM>, <NUM>, <NUM>, <NUM>, the detector generates a frame. In various embodiments, light is captured from each pixel group <NUM>, <NUM>, <NUM>, <NUM> multiple times, and the detector generates a frame from the accumulated light captured by the pixel groups <NUM>, <NUM>, <NUM>, <NUM> to improve a signal-to-noise ratio of the frame. Capturing light from different pixel groups <NUM>, <NUM>, <NUM>, <NUM> at different times is repeated for a subsequent frame, with an amount of time light is captured for a frame determined by an overall integration time for each frame and a frame rate of the imaging device <NUM>.

Hence, in an embodiment, different pixel groups <NUM>, <NUM>, <NUM>, <NUM> capture light from the local area <NUM> at different offset times, which are a fraction of a round-trip time of a frequency of the carrier signal modulating the spatial pattern. For example, <FIG> shows an example sinusoidal carrier signal <NUM> with which the illumination source <NUM> modulates the structured light pattern. <FIG> identifies the different pixel groups <NUM>, <NUM>, <NUM>, <NUM> capturing light including the carrier signal <NUM> at different times. Hence, pixel group <NUM> captures light including a portion of the carrier signal <NUM> during times when the control signal received by the pixel group <NUM> has a maximum value, while pixel groups <NUM>, <NUM>, <NUM> do not capture light including portions of the carrier signal <NUM>. The remaining pixel groups <NUM>, <NUM>, <NUM> similarly each capture portions of the carrier signal <NUM> during time intervals when control signals received by a corresponding pixel groups <NUM>, <NUM>, <NUM> have a maximum value. While <FIG> shows the carrier signal <NUM> as a sine wave, in other embodiments, the carrier signal <NUM> may be a square wave or any other signal having a combination of frequencies and harmonics. Hence, in the example of <FIG>, when pixel group <NUM> captures light, the remaining pixel groups <NUM>, <NUM>, <NUM> do not capture light, so when a single pixel group is capturing light, the remaining three pixel groups do not capture light for that relative frame. After each pixel group <NUM>, <NUM>, <NUM>, <NUM> captures light for a single serial pattern, the sequence is repeated during the integration time for a frame captured by the imaging device <NUM>.

Based on the intensity of light received by different pixel groups <NUM>, <NUM>, <NUM>, <NUM> in the image capture device <NUM>, the DCA <NUM> determines a phase of the carrier signal. For example, the DCA <NUM> determines a difference between light captured by pixel group <NUM> and light captured by pixel group <NUM>. Additionally, the DCA <NUM> determines an additional difference between light captured by pixel group <NUM> and light captured by pixel group <NUM>. In the example configuration of the detector <NUM> shown in <FIG> (which is a minimum quadrature arrangement), the DCA <NUM> determines the phase of the carrier signal as an arctangent of a ratio of the difference to the additional difference. Using the determined phase, the DCA <NUM> determines times from light emitted from the illumination source <NUM> to be reflected back to the imaging device <NUM> by objects in the local area <NUM>. From the determined times, the DCA <NUM> determines distances between the DCA <NUM> and various objects in the local area <NUM> using one or more time-of-flight methods. Additionally, using the determined phase, the DCA <NUM> combines the light captured by different pixel groups <NUM>, <NUM>, <NUM>, <NUM> into a frame that allows the structured light pattern emitted from the illumination source <NUM> to provide further depth information for the local area <NUM>. Distances determined by the one or more time of flight methods provides distance information between objects in the local area <NUM> and the DCA <NUM>, while analysis of the structured light pattern captured by the imaging device <NUM> provides a related but unique distance measurement between objects in the local area <NUM> and the DCA <NUM>.

<FIG> shows another example of a detector <NUM> included in an imaging device of a depth camera assembly <NUM>. In the detector <NUM> described in conjunction with <FIG>, different pixel groups <NUM>, <NUM>, <NUM>, <NUM> in the detector <NUM> are illustrated to capture light for fractions of an integration time for the imaging device <NUM> to generate a frame. In the example of <FIG>, each pixel group <NUM>, <NUM>, <NUM>, <NUM> of the detector <NUM> includes multiple charge storage regions per each pixel, which may be implemented via software or hardware, such as a circulator or a switch. This allows each pixel group <NUM>, <NUM>, <NUM>, <NUM> to continuously capture light during an integration time, and dynamically vary the location to which current generated from captured light is coupled based on frequency and phase timing of the carrier signal <NUM>. Charge accumulated from light captured by different pixel groups <NUM>, <NUM>, <NUM>, <NUM> is accumulated in different locations (e.g., memory or capacitors), providing different sub-windows, shown as highlighted rectangles in <FIG>. As shown in <FIG>, sub-windows are combined along a diagonal to illustrate sub-windows having a <NUM> degree phase shift relative to each other. Sub-windows from each pixel group <NUM>, <NUM>, <NUM>, <NUM>, are combined in phase to increase the signal-to-noise ratio and to generate a frame for a time-of-flight measurement. Hence, light captured by different pixel groups <NUM>, <NUM>, <NUM>, <NUM> at different times is combined via the previously discussed method to extract the phase of the carrier signal <NUM>. In the example of <FIG>, the highlighted sub-windows within a specified maximum integration time are combined, as each pixel group <NUM>, <NUM>, <NUM>, <NUM> continuously captures light and varies locations where charge from the captured light is accumulated at a phase of the carrier frequency. For example, each pixel group <NUM>, <NUM>, <NUM>, <NUM> of the detector <NUM> of <FIG> simultaneously captures light and accumulates charge in a location corresponding to a pixel group <NUM>, <NUM>, <NUM>, <NUM> capturing light, with the location in which charge accumulated by a pixel group <NUM>, <NUM>, <NUM>, <NUM> changing based on the carrier signal <NUM> to preserve the phase of the carrier frequency. In some embodiments, each pixel group <NUM>, <NUM>, <NUM>, <NUM> of the detector <NUM> shown in <FIG> is configured to capture light at up to a <NUM> percent duty cycle, allowing multiple pixel groups <NUM>, <NUM>, <NUM>, <NUM> of the detector <NUM> to continuously and simultaneously accumulate charge from light captured by multiple pixel groups <NUM>, <NUM>, <NUM>, <NUM> in some embodiments. As further described above, a phase angle determined by different pixel groups <NUM>, <NUM>, <NUM>, <NUM> allows correction of radiometric differences to analyze the structured light pattern. Additionally, in the example of <FIG>, continuous capture of light by different pixel groups <NUM>, <NUM>, <NUM>, <NUM> allows passive correction for a structured light image analysis. By summing the full charge captured over the full integration window for each pixel group <NUM>, <NUM>, <NUM>, <NUM>, the detector <NUM> operates as an image capture device, such as a camera, as there appears to be no offset in the pixel level integration timing. Hence, the detector <NUM> shown in <FIG> reduces the potential for correlated fixed pattern, temporal, or systemic noise by minimizing the effect of temporal modulation on the structured light algorithm.

<FIG> shows an example arrangement of an imaging device <NUM> and an illumination source <NUM> projecting a structured light pattern (also referred to as a spatial pattern) onto a local area. In <FIG>, the example spatial pattern comprises vertical bars projected within a field of view of the illumination source <NUM>. Through scattered or direct reflection the spatial pattern is captured by a detector in the imaging device <NUM>, which through triangulation with the illumination source <NUM> allows structure light methods to extract the three-dimensional layout of the local area.

<FIG> shows an example arrangement of an imaging device <NUM> and an illumination source <NUM> projecting a structured light pattern (also referred to as a spatial pattern) from the illumination source <NUM> that is also temporally modulated. In <FIG>, temporal modulation is shown by rectangular regions at approximately equal distances from the illumination source <NUM> before reaching the local area. The spatial pattern is shown in <FIG> as four vertical bars for purposes of illustration. Hence, the imaging device <NUM> and the illumination source <NUM> in <FIG> allow capture of the spatial pattern and time-of-flight information to provide both spatial and temporal methods to extract the local area depth, respectively. As described above in conjunction with <FIG>, the imaging device <NUM> includes a common detector to capture both spatial and temporal information by controlling phase offsets between different pixel groups <NUM>, <NUM>, <NUM>, <NUM> in the imaging device <NUM>.

The foregoing description of the embodiments has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the patent rights to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.

Claim 1:
An apparatus (<NUM>) comprising:
an illumination source (<NUM>) configured to:
modulate a structured light pattern by a carrier signal (<NUM>) so an intensity of the structured light pattern varies over time based on the carrier signal (<NUM>), and emit the modulated structured light pattern;
an imaging device (<NUM>) configured to capture the modulated structured light pattern, the imaging device (<NUM>) including a detector (<NUM>, <NUM>);
the detector (<NUM>, <NUM>) comprising a plurality of pixel groups (<NUM>, <NUM>, <NUM>, <NUM>) each including one or more pixels, each pixel group (<NUM>, <NUM>, <NUM>, <NUM>) including multiple charge storage regions, with the detector (<NUM>, <NUM>) being configured to accumulate charge from light captured by a pixel group (<NUM>, <NUM>, <NUM>, <NUM>) in one of the charge storage regions included in the pixel group (<NUM>, <NUM>, <NUM>, <NUM>) based on a frequency and a phase of the carrier signal;
characterized in that the apparatus (<NUM>) further comprises:
a processor (<NUM>) coupled to the imaging device (<NUM>), the processor (<NUM>) configured to:
determine a phase of the carrier signal based on intensities of light received by different pixel groups (<NUM>, <NUM>, <NUM>, <NUM>) in the detector (<NUM>, <NUM>),
determine a time for the modulated pattern of structured light to be reflected from one or more objects in the local area and captured by the detector (<NUM>, <NUM>) based on the determined phase of the carrier signal,
determine distances from the detector (<NUM>, <NUM>) to one or more objects in the local area from the determined times, and
generate a frame including the pattern of structured light from the light captured by each pixel group (<NUM>, <NUM>, <NUM>, <NUM>) in the detector (<NUM>, <NUM>) at different times.