Determining depth data for a captured image

A method, system, and one or more computer-readable storage media for depth acquisition from density modulated binary patterns are provided herein. The method includes capturing a number of images for a scene using an IR camera and a number of IR lasers including diffraction grates. Each image includes a density modulated binary pattern carrying phase information. The method also includes performing pixel based phase matching for the images to determine depth data for the scene based on the phase information carried by the density modulated binary patterns.

BACKGROUND

Systems for generating three-dimensional images of scenes rely on depth reconstruction techniques to determine the three-dimensional shapes of objects within the scenes. Some current systems utilize one-shot structured light based depth cameras to determine depth data for captured images. Such one-shot structured light systems use the depth cameras to emit patterns including random light spots, and then capture images including the emitted patterns. Depth data can then be determined by establishing the correspondences between a reference image and captured images including the patterns. However, depth data that is determined in this manner often suffers from holes and severe noise. In particular, the positions of the light spots are identified by blocks of pixels. Such blocks of pixels may be deformed when projected onto the boundary of objects within scenes. This may make it difficult to identify the correspondences between the images. Furthermore, the identified correspondences between the images may have limited accuracy in the case of abrupt depth change. As a result, the determined depth data may include random errors.

Phase shifting systems, which rely on the projection of a series of phase shifted sinusoidal patterns onto a scene, often provide higher quality depth data than the one-shot structured light systems described above. Such phase shifting systems can reconstruct depth data at every camera pixel with one set of captured images. Thus, the depth data may have higher spatial resolution. In addition, the depth data may be calculated from sinusoidal phase differences. As a result, noise may be suppressed, and the depth data may be more accurate. However, such systems rely on the use of projectors for the reconstruction of the depth data, as the sinusoidal patterns are grayscale.

SUMMARY

The following presents a simplified summary of the present embodiments in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview of the claimed subject matter. It is intended to neither identify critical elements of the claimed subject matter nor delineate the scope of the present embodiments. Its sole purpose is to present some concepts of the claimed subject matter in a simplified form as a prelude to the more detailed description that is presented later.

An embodiment provides a method for depth acquisition from density modulated binary patterns. The method includes capturing a number of images for a scene using an IR camera and a number of IR lasers including diffraction grates. Each image includes a density modulated binary pattern carrying phase information. The method also includes performing pixel based phase matching for the images to determine depth data for the scene based on the phase information carried by the density modulated binary patterns.

Another embodiment provides a system for depth acquisition from density modulated binary patterns. The system includes a number of IR lasers. Each IR laser is configured to emit a density modulate binary pattern carrying phase information onto a scene via a diffraction grate. The system also includes an IR camera configured to capture an image corresponding to the density modulated binary pattern emitted by each IR laser. The system further includes a processor and a system memory including code that, when executed by the processor, is configured to analyze the images to determine depth data for the scene based on the phase information carried by the density modulated binary patterns.

In addition, another embodiment provides one or more computer-readable storage media for storing computer-readable instructions. The computer-readable instructions provide a system for depth acquisition from density modulated binary patterns when executed by one or more processing devices. The computer-readable instructions include code configured to acquire images for a scene. The images are recursively captured using an IR camera and a number of IR lasers including diffraction grates. Each image includes a density modulated binary pattern carrying phase information. The computer-readable instructions also include code configured to correct phase ambiguity within the images based on a local uniqueness of each density modulated binary pattern. The computer-readable instructions further include code configured to perform pixel based phase matching for the images to reconstruct depth data for the scene based on the phase information carried by the density modulated binary patterns.

The following description and the annexed drawings set forth in detail certain illustrative aspects of the claimed subject matter. These aspects are indicative, however, of but a few of the various ways in which the principles of the present embodiments may be employed, and the claimed subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features of the claimed subject matter will become apparent from the following detailed description of the present embodiments when considered in conjunction with the drawings.

DETAILED DESCRIPTION

As discussed above, structured light systems, such as one-shot structured light systems and phase shifting systems, are often utilized for the reconstruction of depth data for captured images. Triangulation based one-shot structured light systems are similar to passive stereo systems, except one-shot structured light systems rely on the use of projectors for the reconstruction of depth data for captured images. Furthermore, many structured light systems rely on the generation of multiple patterns, and are unable to detect motion for a scene when the patterns are projected.

Phase shifting systems emit a series of phase shifted sinusoidal patterns. Increasing the number of stripes in the patterns can improve measurement accuracy. However, when sets of patterns are emitted by phase shifting systems, the scene is assumed to be static. This assumption is not valid in many practical scenarios. Furthermore, phase shifting systems also rely on the use of projectors for the reconstruction of depth data, as the sinusoidal patterns are grayscale.

Therefore, embodiments described herein provide for the determination of depth data for captured images using an infrared (IR) camera and a number of IR lasers including diffraction grates. Specifically, the IR lasers are used to emit density modulated binary patterns onto a scene, and depth data for the scene are reconstructed based on the density of the light spots in the density modulated binary patterns, which corresponds to particular phase information.

According to embodiments described herein, the density modulated binary patterns are designed to carry sufficient phase information without compromising the ability to reconstruct the depth data from a single captured image. However, because the carried phase information is not strictly sinusoidal, the depth data reconstructed from the phase information may contain a systematic error. Therefore, according to embodiments described herein, a pixel based phase matching technique is used to reduce the error in the depth data.

As a preliminary matter, some of the figures describe concepts in the context of one or more structural components, variously referred to as functionality, modules, features, elements, or the like. The various components shown in the figures can be implemented in any manner, such as via software, hardware (e.g., discrete logic components), firmware, or any combinations thereof. In some embodiments, the various components may reflect the use of corresponding components in an actual implementation. In other embodiments, any single component illustrated in the figures may be implemented by a number of actual components. The depiction of any two or more separate components in the figures may reflect different functions performed by a single actual component.FIG. 1, discussed below, provides details regarding one system that may be used to implement the functions shown in the figures.

Other figures describe the concepts in flowchart form. In this form, certain operations are described as constituting distinct blocks performed in a certain order. Such implementations are exemplary and non-limiting. Certain blocks described herein can be grouped together and performed in a single operation, certain blocks can be broken apart into plural component blocks, and certain blocks can be performed in an order that differs from that which is illustrated herein, including a parallel manner of performing the blocks. The blocks shown in the flowcharts can be implemented by software, hardware, firmware, manual processing, or the like. As used herein, hardware may include computer systems, discrete logic components, such as application specific integrated circuits (ASICs), or the like.

As to terminology, the phrases “configured to” and “adapted to” encompass any way that any kind of functionality can be constructed to perform an identified operation. The functionality can be configured (or adapted) to perform an operation using, for instance, software, hardware, firmware, or the like.

The term “logic” encompasses any functionality for performing a task. For instance, each operation illustrated in the flowcharts corresponds to logic for performing that operation. An operation can be performed using, for instance, software, hardware, firmware, or the like.

As used herein, the terms “component,” “system,” and the like are intended to refer to a computer-related entity, either hardware, software (e.g., in execution), or firmware, or any combination thereof. For example, a component can be a process running on a processor, an object, an executable, a program, a function, a library, a subroutine, a computer, or a combination of software and hardware.

By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process, and a component can be localized on one computer and/or distributed between two or more computers. The term “processor” is generally understood to refer to a hardware component, such as a processing unit of a computer system.

Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable storage device or media.

Computer-readable storage media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, and magnetic strips, among others), optical disks (e.g., compact disk (CD) and digital versatile disk (DVD), among others), smart cards, and flash memory devices (e.g., card, stick, and key drive, among others). In contrast, computer-readable media (i.e., not storage media) generally may additionally include communication media such as transmission media for wireless signals and the like.

FIG. 1is a block diagram of a computing system100that may be used to determine depth data for captured images using density modulated binary patterns according to embodiments described herein. The computing system100may include a processor102, e.g., a central processing unit (CPU), that is adapted to execute stored instructions, as well as a memory device104that stores instructions that are executable by the processor102. Such instructions may be used to implement a method for reconstructing depth data for captured images. The processor102can be a single core processor, multi-core processor, computing cluster, or any number of other configurations. The memory device104can include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory systems.

The processor102may be connected through a bus106to a storage device108adapted to store a depth reconstruction module110and depth data112generated by the computing system100. The storage device108can include a hard drive, an optical drive, a thumbdrive, an array of drives, or any combinations thereof. A network interface controller114may be adapted to connect the processor102through the bus106to a network116. Through the network116, electronic text and imaging input documents118may be downloaded and stored within the computer's storage system108. In addition, the computing system100may transfer depth data112over the network116.

The processor102may be linked through the bus106to a display interface120adapted to connect the system100to a display device122. The display device122can include a computer monitor, camera, television, projector, virtual reality display, three-dimensional (3D) display, or mobile device, among others. A human machine interface124within the computing system100may connect the processor102to a keyboard126and a pointing device128. The pointing device128can include a mouse, trackball, touchpad, joy stick, pointing stick, stylus, or touchscreen, among others.

The processor102may also be linked through the bus106to an input/output interface130adapted to connect the computing system100to any number of additional input/output devices. In particular, according to embodiments described herein, the input/output interface130may connect the computing system100to an IR camera132and a number of IR lasers134. For example, the input/output interface130may connect the computing system100to three IR lasers134. Each IR laser134may also include an associated diffraction grate that provides for the generation of a unique binary pattern.

In some embodiments, the IR camera132and IR lasers134may be included within a single imaging device136. The imaging device136may be a 3D camera, gaming system, computer, or the like. In other embodiments, all or a portion of the IR lasers134may be externally connected to an imaging device including the IR camera132. Further, in some embodiments, the computing system100itself may be an imaging device. In such embodiments, the IR camera132and the IR lasers134may reside within the computing system100, rather than being externally connected to the computing system100via the input/output interface130.

Further, the computing system100may include a graphics processing unit (GPU)138. The GPU138may be linked through the bus106to the processor102, the memory device104, the storage device108, the input/output interface130, and any number of other components of the computing system100. In various embodiments, the GPU138is adapted to execute instructions, such as the instructions stored in the memory device104, either in conjunction with or independently of the processor102. For example, the GPU138may execute all or a portion of the instructions that are used to implement the method for reconstructing depth data for captured images. For example, in some embodiments, the processor102and the GPU138may be used in parallel for the reconstruction of depth data for captured images. In such embodiments, the depth data may be reconstructed at a rate of around 20 frames per second (fps).

The block diagram ofFIG. 1is not intended to indicate that the computing system100is to include all the components shown inFIG. 1. Further, the computing system100may include any number of additional components not shown inFIG. 1, depending on the details of the specific implementation.

FIG. 2is a schematic of an imaging device200that may be used to capture images according to embodiments described herein. In some embodiments, the imaging device200is a device that is externally connected to a computing system, such as the imaging device136described with respect to the computing system100ofFIG. 1. In other embodiments, the imaging device200is included directly within a computing system, such as the computing system100ofFIG. 1.

The imaging device200may include an IR camera202and a number of IR lasers204. For example, in various embodiments, the imaging device200includes three IR lasers204. Each IR laser204may include a diffraction grate206. The diffraction grates206may allow each IR laser204to emit a unique density modulated binary pattern. Further, the imaging device200may include a synchronized circuit for controlling the functioning of the IR camera202and the IR lasers204.

In the embodiment shown inFIG. 2, the IR camera202is vertically aligned with the central IR laser204. However, it is to be understood that the imaging device200is not limited to the configuration shown inFIG. 2. For example, in some embodiments, the IR camera202may be located in line with and directly next to one of the outer IR lasers204.

In various embodiments, the imaging device200may be used to capture images of a scene208. In addition, the imaging device200may be used to determine depth data for one or more objects210within the scene208, thus providing for the construction of a 3D image of the scene208. Specifically, the IR lasers204may be used to recursively emit three unique density modulated binary patterns onto the scene208, and the IR camera202may capture one image corresponding to each density modulated binary pattern. In other words, the first IR laser204may be activated, and the IR camera202may capture an image of the scene208as the first IR camera202emits its unique density modulated binary pattern onto the scene208. The first IR laser204may then be deactivated, and this process may be repeated for the second and third IR lasers204. The captured images may then be analyzed to determine depth data for the one or more objects201in the scene208, as discussed further below.

The schematic ofFIG. 2is not intended to indicate that the imaging device200is to include all the components shown inFIG. 2. Further, the imaging device200may include any number of additional components not shown inFIG. 2, depending on the details of the specific implementation.

FIG. 3is a schematic showing density modulated binary patterns300A-C that may be used according to embodiments described herein. In various embodiments, the density of the light spots for each density modulated binary pattern300A-C may be modulated such that each density modulated binary pattern300A-C carries phase information. A pattern may be defined as P(r,c), where row r=0, . . . , R−1 and column c=0, . . . , C−1. With some existing systems, such as the Kinect™ system by Microsoft Corporation, the light spots are randomly and uniformly distributed in P(r,c). However, according to embodiments described herein, the numbers of light spots in different rows of the density modulated binary patterns300A-C are determined according to a sinusoidal function, as shown below in Eq. (1).

k⁡(r)=Round⁢{[sin⁡(2⁢π⁢⁢rT+θ)+1]×α+1}(1)
In Eq. (1), Round( ) is a function for rounding a floating number to an integer. The term r is the row index. The term T is the number of rows in a sinusoidal period. The term α is a scaling factor to control k(r) as an integer from 1 to K. The three density modulated patterns300A-C may be generated by setting θ to −2π/3,0, or +2π/3, respectively.

In various embodiments, the pixels may be determined such that all the pixels in the same row have the same intensity. This may be accomplished using a pattern generation technique for which 1×N pixels is defined as the basic unit for pattern generation. The term N is larger than the maximum k(r). The positions of the light spots are random in a basic unit, but are the same for all basic units in the same row. This ensures that every slide window located in the same row has the same average intensity. In addition, since the number of light spots and their positions are different in different rows, the positions of light spots in every block are still unique. The pattern generation technique may then be defined according to the following pseudocode.

Require: The number of rows in one period is T, the scalingfactor is α, and the initial phase is θ.for r = 1,...,R doCalculate k(r) according to the Eq. (1).Separate the row into M non-overlapping basic units.for m = 1,..., M doRandomly select k(r) positions from 1 to N. Thepixels at the selected positions are light spots.end forend for
In various embodiments, the scaling factor α may be determined based on the term N and the range of k(r), where N is an empirical parameter. The larger the value of N is, the greater number of different values k(r) can have. If the value of N is too large, e.g., when k(r) is a small integer, the density k(r)/N will be too small to establish the correspondences. Thus, in some embodiments, N may be set to a value of 8. When the value of N is decided, the maximum value of k (r) can be selected as large as 5 in order to have more densities in a period. Several different approaches may be used to generate patterns with N=8 and k(r)ε{1, . . . , 5}. For example, a pattern in which every other row contains the number of light spots calculated by Eq. (1) and the other rows are black may be used.

The smaller the value of the period T is, the more accurate the depth measurement will be. However, according to embodiments described herein, T may also have a minimum acceptable value. For N=8 and k(r)ε{1, . . . , 5}, if T is smaller than 32, not every density k(r) appears due to a rounding error. In other words, the range of k(r) is not fully used. Therefore, in some embodiments, the period T may be set to 32.

In some cases, it may be desirable to evaluate whether the densities of the generated density modulated binary patterns300A-C can approximate the sinusoidal fringe well. The approximation is completed by the average energy in a N×N slide window. For simplicity, the case for which the signal k(r) is continuous may be considered, as shown below in Eq. (2).

E=1N2⁢∫r-N/2r+N/2⁢k⁡(r)⁢ⅆr(2)
If Eq. (1) is substituted into Eq. (2), and the rounding and the constant term are ignored, Eq. (2) may be rewritten as shown below in Eq. (3).

E=1N2⁢∫r-N/2r+N/2⁢α⁢⁢sin⁡(2⁢π⁢⁢rT+θ)=β⁢⁢sin⁢⁢(π⁢⁢NT)⁢sin⁡(2⁢π⁢⁢rT+θ)(3)
In Eq. (3), the terms β and

Therefore, the energy E in the proposed density modulated binary patterns300A-C is a sinusoidal function mathematically. However, since the proposed density modulated binary patterns300A-C are binary, k(r) in Eq. (1) has to be rounded to an integer. When approximating sinusoidal fringe, such rounding may result in obvious stair-wise errors in the approximation. If the errors are not handled carefully during reconstruction of the depth data, a systematic error will be introduced to the reconstructed depth data.

FIG. 4is a graph400showing timing circuit402A-C for controlling the emission of the density modulated binary patterns by the three IR lasers according to embodiments described herein. An x-axis404of the graph400may represent time. A y-axis406of the graph may represent the timing circuits402A-C for controlling the emission of the density modulated binary patterns by the three IR lasers, as well as an image capture timing circuit408for the IR camera.

As shown inFIG. 4, each IR laser includes a different timing circuit402A-C for emitting its respective density modulated binary pattern. Therefore, the density modulated binary patterns may be recursively emitted by the three infrared lasers. An IR camera may be used to capture each density modulated binary pattern as it is emitted by one of the IR lasers, as shown by the image capture timing circuit408for the IR camera.

FIG. 5Ais a schematic showing a captured image500with an emitted pattern. Since the positions of the light spots in every small block is still unique, a block matching technique may be used to determine the disparity of every pixel between the reference image Ī(r,c) and the captured image I(r,c). The reference image Ī(r,c) is the captured image in a vertical plane with the known distance. Zero-normalized cross-correlation (ZNCC) over a block may be used as the measurement. The disparity at (r,c) may be calculated as shown below in Eq. (4).

D1⁡(r,c)=maxr′,c′⁢∑i⁢∑j⁢A⁡(r,c,i,j)⁢B⁡(r′,c′,i,j)∑i⁢∑j⁢A2⁡(r,c,i,j)⁢Σi⁢Σj⁢B2⁡(r′,c′,i,j)(4)
In Eq. (4), A(r,c,i,j)=I(r+i,c+j)−I0and B(r′,c′,i,j)=Ī(r′+i,c′+j)−Ī0. The terms I0and Ī0are the average intensities of I and Ī, respectively. The term D1(r,c) is the row and column disparity with the maximum ZNCC. Every pixel belongs to multiple overlapping blocks for calculating ZNCC and, thus, has multiple disparities calculated by Eq. (4). The disparity of the pixel may be decided by the block with the largest ZNCC.

FIG. 5Bis a schematic showing an image502including the reconstructed depth data for the captured image500ofFIG. 5Athrough the block matching technique. According to the image502ofFIG. 5B, the depth data is reconstructed using the block matching technique described above. The discontinuity in the smooth surface of the image502can be clearly observed fromFIG. 5B. For every captured image, an energy image may be calculated using the discrete version of Eq. (2).

FIG. 5Cis a schematic showing an energy image504generated from the captured image500ofFIG. 5A. The energy images of the reference image and the captured images may be defined as Ēi(r,c) and E(r,c), respectively, wherein the term i indicates different θ. The three energy images may have the relationship shown below in Eq. (5).
Ei−1(r,c)=E′(r,c)+E″(r,c)sin [φ(r,c)−2π/3],
Ei(r,c)=E′(r,c)+E″(r,c)sin [φ(r,c)],
Ei+1(r,c)=E′(r,c)+E″(r,c)sin [φ(r,c)+2π/3]  (5)
In Eq. (5), the term E′(r,c) is the background intensity; the term E″(r,c) is the sinusoidal amplitude; and the term φ(r,c) is the phase image to be solved. In addition, the term Ei−1(r,c)−Ei+1(r,c) is the average intensity in a small area. The phase φ(r,c) can be obtained by solving Eq. (6).

For typical phase shifting systems, the depth data can be directly calculated from φ(r,c). However, since the pattern used according to embodiments described herein includes a stair-wise error for approximating the sinusoidal phase, the depth data may not be calculated directly from φ(r,c). Instead, a pixel based phase matching technique may be used to calculate the depth data. First,φ(r,c) may be calculated from the reference energy images Ēi(r,c). For every phase φ(r,c), the most matchedφ(r−Δr,c) within one period may be determined. The disparity d2(r,c) in one period may then be calculated according to Eq. (7).

d2⁡(r,c)={Δ⁢⁢r+ϕ_⁡(r-Δ⁢⁢r,c)-ϕ⁡(r,c)ϕ_⁡(r-Δ⁢⁢r,c)-ϕ_⁡(r-Δ⁢⁢r-1,c),ϕ⁡(r,c)≤ϕ_⁡(r-Δ⁢⁢r,c)Δ⁢⁢r-ϕ⁡(r,c)-ϕ_⁡(r-Δ⁢⁢r,c)ϕ_⁡(r-Δ⁢⁢r+1,c)-ϕ_⁡(r-Δ⁢⁢r,c),ϕ⁡(r,c)>ϕ_⁡(r-Δ⁢⁢r,c)(7)
In Eq. (7), Δr is the integer row disparity. The other term in Eq. (7) is the fractional row disparity by the linear interpolation.

The ambiguity problem may also be solved. If there are M periods in the captured images, the period with the disparity d2(r,c) may be identified. Identifying the period with the disparity d2(r,c) may be relatively easy since the positions of the light spots are different for every period. The ZNCC values for m=1, . . . , M can be determined, and the period m with the largest ZNCC may be selected. Finally, the disparity can be reconstructed according to Eq. (8).
D2(r,c)=d2(r,c)+m×L(8)
In Eq. (8), the term L is the number of rows in one period in the captured images.

FIG. 5Dis a schematic showing an image506including depth data for the image500ofFIG. 5Athat may be reconstructed from three energy images according to embodiments described herein. Specifically, the depth data may be reconstructed using the pixel based phase matching technique described above.

Although using the embedded phase to reconstruct the depth data for objects in a scene may produce high quality results, the technique utilizes at least three captured images and cannot handle moving objects in the scene. By contrast, the block matching technique for reconstructing depth data only utilizes one captured image and is able to handle moving objects in the scene. Therefore, according to embodiments described herein, the block matching technique may be used to determine depth data for a scene with moving objects.

According to the block matching technique, the depth data D1(r,c) and D2(r,c) may be integrated according to the motion detected in the scene. Changes in intensity may be used to detect if there is any motion in the scene. The current captured image may be compared with the previous third image because their patterns are the same. If the average intensity change in a region is larger than a threshold, the region may be marked as moving. Depth data D1(r,c) may then be adopted in the moving regions, while depth data D2(r,c) may be adopted in the stationary regions.

FIG. 6is a process flow diagram of a method600for depth acquisition from density modulated binary patterns. The method600may be implemented by the computing system100and/or the imaging device200discussed with respect toFIGS. 1 and 2, respectively. The method600begins at block602, at which a number of images for a scene are captured using an IR camera and a number of IR lasers including diffraction grates. Each image includes a density modulated binary pattern carrying phase information.

In various embodiments, three images are captured using the IR camera and three IR lasers including diffraction grates. However, it is to be understood that any suitable number of images may be captured using any suitable number of IR lasers according to embodiments described herein.

At block604, pixel based phase matching is performed for the images to determine depth data for the scene based on the phase information carried by the binary patterns. This may be accomplished by extracting the phase information from the binary patterns and reconstructing the depth data for the scene based on a combination of the phase information for the binary patterns. In addition, in various embodiments, phase ambiguity within the images is corrected prior to performing pixel based phase matching for the images. The phase ambiguity may be corrected based on a local uniqueness of each binary pattern.

In some embodiments, the scene includes one or more moving objects. In such embodiments, block matching is performed to determine depth data for the portion(s) of the scene including the one or more moving objects.

In various embodiments, the depth data is used to determine the absolute depth for the scene. In addition, the depth data may be used to generate a three-dimensional image (or video) of the scene.

The process flow diagram ofFIG. 6is not intended to indicate that the blocks of the method600are to be executed in any particular order, or that all of the blocks are to be included in every case. Further, any number of additional blocks not shown inFIG. 6may be included within the method600, depending on the details of the specific implementation.

The method600may be used for a variety of applications. In some embodiments, the method600may be used to provide 3D images (or videos) for gaming applications. For example, the method600may be implemented within the Kinect™ system by Microsoft Corporation. In addition, in some embodiments, the method600may be used to provide 3D images (or videos) for telepresence applications or other virtual reality applications.

FIG. 7is a block diagram of a computer-readable storage medium700that stores code adapted to determine depth data for captured images using density modulated binary patterns. The computer-readable storage medium700may be accessed by a processor702over a computer bus704. Furthermore, the computer-readable storage medium700may include code configured to direct the processor702to perform the steps of the current method.

The various software components discussed herein may be stored on the computer-readable storage medium700as indicated inFIG. 7. For example, an image capture module706may be adapted to capture images of a scene using an IR camera and a number of IR lasers including diffraction grates. In addition, a depth reconstruction module708may be adapted to reconstruct depth data for the captured images based on binary patterns within the images.

The block diagram ofFIG. 7is not intended to indicate that the computer-readable storage medium700is to include all the components shown inFIG. 7. Further, the computer-readable storage medium700may include any number of additional components not shown inFIG. 7, depending on the details of the specific implementation.