The present disclosure relates to the field of integrated circuits, in particular to circuits for time-of-flight depth imaging.
Depth imaging techniques are implemented in time-of-flight cameras and range finders. Depth imaging techniques include pulsing light sources, and measuring reflected light to sense the presence, distance information, depth information, and/or speed information of an object. These optical systems have a wide range of uses, such as security systems, medical systems, automotive systems, aerospace systems, consumer electronic devices, etc.
Depth imagers can include a light source (e.g., light emitting diodes, lasers, etc.). Depth imagers can also include an array of sensors that create a depth image of a scene, where each pixel stores the distance to the object in the field of view of that pixel. Such imagers may also simultaneously output a regular image of the scene, such as a red-green-blue (RGB) image or infrared image.
An example of a depth imaging technique for creating depth images is time-of-flight imaging. Time-of-flight operates by having a light source emit light onto the scene. Light is then reflected off the objects in the scene. Reflected light hits the array of sensors. The signals generated by the array of sensors can be used to calculate distance information and form a depth image.
To provide a more complete understanding of the present disclosure and features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying figures, wherein like reference numerals represent like parts, in which:
Overview
Depth imagers can implement time-of-flight operations to measure depth or distance of objects. A depth imager can emit light onto a scene and sense light reflected back from the objects in the scene using an array of sensors. Timing of the reflected light hitting the array of sensors gives information about the depth or distance of objects in the scene. In some cases, corrupting light that is outside of a field of view of a pixel in the array of sensors can hit the pixel due to internal scattering or internal reflections occurring in the depth imager. The corrupting light can corrupt the depth or distance measurement. To address this problem, an improved depth imager can isolate and measure the corrupting light due to internal scattering or internal reflections occurring in the depth imager, and systematically remove the measured corrupting light from the depth or distance measurement.
Sources which can Corrupt Time-of-Flight Measurements
Typically, a light source of a depth imager is close to (or adjacent to) the array of sensors and moves along with the array of sensors if the array of sensors is mobile (e.g., the light source has a fixed position with respect to the array of sensors). For simplicity, the array of sensors is sometimes herein referred to as “sensor”. In some other cases, one could consider a static light source as well, or any light source whose position is known over time.
Referring to the case with the light source of a depth imager close to the sensor, it can be understood that the time it takes for the light to return and hit the sensor is proportional to the distance to the object. More precisely, the depth D of an object is given by the equation:
where c is the speed of light, tR is the time it takes for the light to travel to the object, return, and hit the sensor. The factor of 2 in equation (1) is due to the light having to travel to the object and return from the object. The relationship between tR and D can be different, in some cases more complicated, than equation (1) depending on the location of the light source relative to the sensor.
The emitted light bounces off the objects, and can return and hit the array of sensors 104. Besides the return light from the objects, the array of sensors 104 can further receive other extraneous light which may corrupt the time-of-flight measurement. One form of extraneous light is background (BG) light. BG light may come from other sources such as sunlight, other light sources not associated with the system, and light sources associated with other depth imagers. It is desirable to design time-of-flight depth imagers which have some tolerance for BG light.
Depth imagers can have an operating depth range defined by a minimum distance Dmin and a maximum distance Dmax. Outside of the operating depth range, the depth imager does not report distance. One reason for Dmin not being zero could be that the return light for objects of a certain reflectivity closer than Dmin is so strong that the return light saturates the array of sensors 104. Dmax is typically the distance beyond which not enough light returns to the array of sensors 104 to determine the distance. In one example, suppose a depth imager has a minimum distance Dmin for its operating depth range, and the minimum time tmin for light to travel to and back from the minimum distance Dmin is thus
Dmin and tmin can depend on the individual depth imager.
To obtain a depth for each pixel in the array of sensors 104, a set of measurements are carried out at each pixel. The set of measurements provide information to compute a depth. Each pixel can enable a respective depth to be computed or estimated; the array of sensors 104 can generate a depth image based on the respective depths.
The notation for a measurement done by a pixel is M(X,Y,Z), where X specifies the time when the light source 102 turns off (or duration of emitted light from t=0), Y specifies the start time when the pixel begins sensing light, and Z specifies the duration of the time interval where the pixel is sensing light. The measurement illustrated in
To achieve accurate measurements, it is desirable to have precise control of the light source 102 and be capable of turning light source 102 on or off. For example, it is desirable to have driver 180 in the depth imager to be able to turn on the light source 102 at t=0 and turn off the light source at t=TL. The driver 180 preferably can generate a signal to drive the light source 102 with sufficiently short rise and fall times.
Referring back to
In some cases, depth can be estimated from three light measurements collected by three charge storage units. The depth can be estimated based on a scheme that is tolerant to BG light. A pixel can include three charge storage units, S0, S1, and S2, which can store different collected light measurements. The light source 102 can be on from times t=0 to t=TL. S0 can collect light from times t=t0 to t=t0+TL. The measurement being made by S0 is M(TL,t0,TL). S1 can collect light from times t=t1 to t=t1+TL. The measurement being made by S1 is M(TL,t1,TL). In one case, t1=t0+TL. S2 can collect BG light for a time TL with the light source 102 off. S2 can collect light from times t=−t2 to t=−t2+TL. The measurement being made by S2 is M(TL,−t2,TL). In one case, t2=TL, and thus S2 can collect light from times t=−t2=−TL to t=0. In another case, S2 is M(0,0,TL), and the light source is kept off during the measurement, thus S2 is only capturing BG light. Because the light source is not emitting light, the S2 does not collect any reflected light. Generally speaking, the measurement S2 collects BG light for a period of time before the light source is on. A depth D for the pixel can be obtained by computing the following exemplary equation:
which is obtained when t1=t0+Ts,
Equation (2) is obtained when the durations of the time interval where the pixel is sensing light for the three charge storage is the same TL for all three measurements, which need not be the case in general.
The collected light by S0 and S1 are individually adjusted for BG light by subtracting the BG light collected by S2. The depth is computed based on the ratio of collected light by S1 over the total amount of collected light by S0 and S1, after the adjustment for BG light S2 is performed. Accordingly, the depth D computed with equation (2) and the described measurements has the advantage of being tolerant/insensitive to background light, since S2 measuring BG light is subtracted from the measurements done by S0 and S1.
Measurements made by charge storage units S0, S1, and S2 can be repeated a plurality of times and the collected light can be added/accumulated in the respective charge storage units (or in other circuitry) to increase signal strength. The added repeated measurements in a charge storage unit can be used for the depth calculation. If the number of repetitions is different for each charge storage unit, which can be advantageous in some cases to increase the signal-to-noise ratio, the values in the storage units may be divided by the number of repetitions, and the resulting values can be used for depth estimation.
The charge storage units can perform the addition or accumulation of repeated measurements in hardware, using suitable sensor signals. The same charge storage unit can be turned on multiple times with an appropriate sensor signal to make multiple measurements without dumping the electrons or resetting the charge storage unit in between the measurements. As the measurements are repeated, the electrons continue to be added/accumulated in the same charge storage unit.
Referring back to
S0 is controlled by sensor signal (e.g., plot 406), which is represented by gT
S1 is controlled by sensor signal (e.g., plot 408), which is represented by gT
S2 can collect BG light for a time TS with the light source 102 off. S2 sensor signal (e.g., plot 410) is represented by gT
The charge storage units do not all necessarily turn on for the same amount of time TS, and the durations can differ from each other. In some cases, one or more of the durations TS can equal to TL. Before computing a ratio for the depth estimation, the measurement by S2 is subtracted from S0 and S1 to remove the contribution from BG light to the measurements. If S0 and S1 are controlled by sensor signals that do not have the same pulse shape, which in some cases may be the case if they are not pulses of the same width, then the amount of background light they capture may differ, in which case S2 may be multiplied by a factor which is different for S0 and S1 respectively, and subsequently subtracted from S0 and S1 respectively to subtract the correct amount of background light.
To take into account that the plots do not have perfect square pulses and obtain accurate depth estimates, it is possible to measure the ratio
as a function of depth and store the values in a lookup table. Different values of the ratio serves as the index of the lookup table. The lookup table implements a function H(x) such that
and allows the estimated depth to be adjusted for the non-ideal pulse shapes. In other words, the result from the lookup table based on the ratio
can output a corrected depth estimate. Values for H(x) can be extrapolated between the values of x for which H(x) is known. The depth equation becomes:
Internal Reflections Corrupt the Measurements
One of the issues with time-of-flight imagers is the following: the assumption is that each pixel receives light only from the part of the scene that corresponds to its field of view. Phrased differently, the assumption is that each pixel captures light from objects within its field of view. All the light that enters the lens from objects in its field of view are focused onto that pixel alone. However, if light from an object somewhere else in the scene undergoes multiple internal scattering events or multiple internal reflections, then this light can end up hitting a pixel whose field of view it is not in. Accordingly, it is possible for light from one part of the scene to corrupt measurements from pixels whose field of view corresponds to a different part of the scene.
This means that, besides BG light, the light arriving at a pixel can include other extraneous light, such as light due to internal scattering events or multiple internal reflections. This light, i.e., a corrupting light or extraneous light, can significantly impact the depth estimate of the pixel that the light ends up hitting. This effect can be strong for objects nearby the camera, where the amount of light hitting the sensor is large. For a handheld device, fingers or other parts of a hand can be very close to the camera (unintentionally), where the effect can be strong. In a scenario where a pixel's field of view is pointing at a faraway object, and in another part of the scene outside of the pixel's field of view is an object very close to the array of sensors 104, the effect can be pronounced. The amount of light returning to the sensor can decay quadratically with distance, i.e., the light hitting a pixel whose field of view is a given object is proportional to 1/D2 where D is the distance to the object. Therefore, the nearby object may lead to a large amount of light coming back to the sensor relative to light returning from the faraway object. Since the amount of signal from the faraway object is relatively low in comparison, the corrupting light could significantly impact the depth estimate. Multiple internal reflections can lead to an object corrupting many or all of the pixels in the sensor.
Note that this internal reflections problem is not the same as the multipath problem, where the reflections are from multiple objects in the scene that may be centimeters or meters away from each other. The internal reflection problem is quite a different challenge from the multipath problem because the assumed reflections can happen at much closer distances (within centi- or milli-meters) to the depth imager. This difference makes most approaches for the multipath problem impractical for addressing internal reflections, in some cases, those approaches can potentially requiring far more measurements than the methods described herein.
In
It is advantageous to ensure that the corrupting light from internal reflections does not affect the depth estimates.
Separately Measure Corrupting Light and Remove its Impact on the Depth Estimation
As discussed previously the internal reflection problem is most serious when there are objects close to the sensor. Such nearby objects are closer than a distance DIR (IR stands for internal reflection). DIR can be on the order of centimeters. Typically, the minimum distance Dmin of the operational range of the depth imager is larger than DIR.
One technique for making sure that the corrupting light does not affect the depth calculation is to separately measure the corrupting light and removing its impact or contribution to the depth estimation.
The emitted light (e.g., plot 802) by light source 102 is represented by fT
The collected signal (e.g., plot 812), which is a result of the corrupting light and BG light, is represented by (aR fT(t−tR)+aB fT
A given measurement M, depending on its parameters, can have a certain contribution due to corrupting light: αFC (the contribution is C multiplied by a gain factor αF). Fortunately, the impact/contribution from the corrupting light αFC can be removed by subtracting the measurement M by αFC. C can be derived by the technique illustrated in
Determining the gain factor αF corresponding to the corrupting light C is not trivial. For example, if the light source pulse and the sensor signal pulse are perfectly square, then the amount of corrupting light in a given measurement M would be proportional to the amount of time that M is collecting corrupting light. For example if M(TL,0,TS) and TL<TS then M(TL,0,TS) can collect corrupting light from time
to TL where Dc is the distance between the corrupting object and the sensor. If
is negligible compared to TL, then the amount of corrupting light in a given measurement M is approximately proportional to TL.
Referring back to
then the quantity M−αFC would be a quantity in sensitive to corrupting light, if the pulses were perfectly square. The ratio effectively finds a gain factor αF that accounts for the contribution from the corrupting light captured in a given measurement M relative to the amount of corrupting light captured in C. The gain factor αF is thus a multiplier multiplying the amount of corrupting light captured in C, and the result of the multiplication yields an approximation of the amount of corrupting light captured in a given measurement M(TL,0,TS). If the pulses are not perfectly square the quantity M−αFC may, to some satisfactory level of accuracy, still be approximately insensitive to corrupting light, for an appropriately chosen gain factor αF. If fC,M is the amount of corrupting light collected by a given measurement M, and fC is the amount of corrupting light collected by F (as illustrated by the scheme seen in
would lead to M−αFC being insensitive to corrupting light.
It is possible to use the measurement illustrated in
If there is no BG light (BG=0), then the measurement F includes the corrupting light due to internal reflections only (e.g., F=C+BG=C+0=C). S0 can be adjusted by computing S0′=S0−αFF=S0−αFC. The measurement by S0 is subtracted by F=C multiplied by a gain factor αF for the corrupting light. The resulting quantity S0′ can be insensitive to corrupting light. Measurement by S1 can be less affected by corrupting light, and adjustment for the corrupting light may not be necessary to reach a satisfactory degree of accuracy. When the measurements are applied to equation (2) or equation (3), S0′ replaces S0. The equation can be applied in the same manner without further adjustments, if there is no BG light.
The depth estimation calculation can be different, if there is BG light (BG≠0). When there is BG light, then measurement F is a combination of corrupting light C and BG light BG, e.g., F=C+BG. To obtain a measurement Si that is insensitive to corrupting light C and BG light, the measurement Si can remove contribution from the corrupting light αFC and BG light S2 through subtraction: Si−αF,iC−S2. This setup ensures that the corrupting light due to internal reflections is removed once (through −αF,iC) and the BG light is removed once (through −S2). Plugging in equation C=F−BG, and assuming BG=S2, S1−αF,iC−S2 can be rewritten as Si−αF,iC−S2=Si−αF,i(F−BG)−S2=S1−αF,i(F−S2)−S2=S1-αF,iF+αF,iS2−S2=Si−αF,iF+(αF,i−1)S2. Equation (3) with S0 adjusted for corrupting light and BG light can become the following, where S0−αF,iF+(αF,i−1)S2 replaces S0−S2:
This adjusted ratio
for depth calculation can grow with depth, and can be provided as input to a lookup table implementing H(x) to obtain an actual depth D.
More generally, for different depth estimation equations and techniques for measuring light, some contribution by the corrupting light measurement αF,iF can be subtracted from a measurement made by a given charge storage unit Si, as seen in Si−αF,iF+(αF,i−1)S2. The adjusted measurement St is thus equal to Si−αF,iF+(αF,i−1)S2, where the corrupting light measurement F multiplied by a gain factor αF,i is subtracted from the original measurement S and background measurement S2 multiplied by a gain factor (αF,i−1) is added to the original measurement Si. A specific gain factor αF,i for the corrupting light corresponding to the measurement can be determined and used. For example, it can be determined that the amount of corrupting light in Si is equal to fc,i and the amount of corrupting light in F is equal to fC, in which case
For measurement S0, the gain factor αF,0, can thus be a ratio between the amount of corrupting light captured in S0 and an amount of corrupting light captured in measurement F. For measurement S1, the gain factor αF,1, can thus be a ratio between the amount of corrupting light captured in S1 and an amount of corrupting light captured in measurement F. When the measurements are applied to equation (2) or equation (3), Si′ replaces Si−S2 for measurements which can be impacted by a component of the corrupting light. Measurement Si′ is uncorrupted by the corrupting light and BG light and can be used directly in a depth estimation equation, such as equation (3).
To compute the depth equation seen in equation 4, it is possible to utilize one charge storage unit for S0, one charge storage unit for S1, one charge storage unit for S2, and one charge storage unit for F. In other words, the technique illustrated by
In some embodiments, both the measurement S0 and the measurement S1 are impacted by some amount of corrupting light. Accordingly, both the measurement S0 and the measurement S1 are adjusted for both corrupting light and background light. In other words, in equation (3), S0′ replaces S0−S2, and S1′ replaces S1−S2.
In some embodiments, the start time of the measurement S1, i.e., t1, is set to begin collecting charge when no more corrupting light is hitting the pixel (or is expected to hit the pixel). Accordingly, the measurement S0 is impacted by corrupting light and background light, and the measurement S1 is impacted by background light and not by corrupting light. Accordingly, the measurement S0 is adjusted for both corrupting light and background light, and the measurement S1 is adjusted only for background light. In other words, in equation (3), S0′ replaces S0−S2, and S1−S2 stays as S1−S2. Note that the gain factor αF,1 in S1′, which is a ratio between the amount of corrupting light captured in S1 and an amount of corrupting light captured in measurement F, is zero if no amount of corrupting light is captured in S1, which effectively makes S1′=S1−αF,1F+(αF,1−1)S2=S1−0*F+(0−1)S2=S1−S2.
To Avoid Having to Add Additional Charge Storage Units to the Hardware for Measuring the Corrupting Light
In some cases, it is possible to avoid the need to have an additional charge storage unit. Note that [Si−αF,iF+(αF,i−1)S2] (a quantity seen in equation (4)) can be rewritten as (Si+(αF,i−1)S2)−αF,iF. Assuming αF,i−1>0, it is possible to perform the measurement (Si+(αF,i−1)S2) in hardware. As mentioned previously, the charge storage units in a pixel can be controlled to make and accumulate multiple measurements performed over time. In some cases, the measurements can be repeated based on different light pulse widths of the light source 102 and/or different sensor signal pulse widths/durations using a same charge storage unit. Specifically, the same charge storage unit can perform the addition of measurements, by letting the same charge storage unit continue to collect and accumulate electrons (e.g., an amount of charge) for all the measurements, and not reset the charge storage unit after each measurement).
A same charge storage unit can be used to make a measurement corresponding to Si and the measurement is stored in the charge storage unit. The same charge storage unit can make the BG measurement S2, αF,i−1 number of times, and add/accumulate the αF,i−1 number of BG measurements in the same charge storage unit. αF,i−1 is equal to the gain factor αF,i for the corrupting light measurement corresponding to a given measurement S1 minus 1. The measurements can be made in any suitable order. Effectively, a single charge storage unit can accumulate charge that correspond to (Si+(αF,i−1)S2). If αF,i−1 is not an integer, it is possible to change the pulse width (or duration) of the BG measurements S2 to produce a αF,i−1 multiple of a single BG measurement S2. The pulse width can be pre-determined and programmed based on the gain factor αF,i. By manipulating the sensor signal for the same charge storage unit to perform and accumulate the measurement Si done once and the BG measurement S2 done αF,i−1 number of times, the same charge storage unit can make the measurement equivalent to (Si+(αF,i−1)S2). A separate charge storage unit is no longer needed for separately making the BG measurement S2. This frees up a “free” charge storage unit (or eliminates the need for an additional charge storage unit) that can be used to isolate and measure the corrupting light F as illustrated by
Using various techniques described herein, a measurement S0 can be adjusted for corrupting light and BG light. Moreover, a pixel can make measurement S0 (or any measurement Si that is impacted by corrupting light), a BG measurement S2, and a corrupting light measurement F, by utilizing one charge storage unit for S0 and S2, and one charge storage unit for F.
Applying the same techniques, a measurement S1 can also be adjusted for corrupting light and BG light. Specifically, the quantity S1−αF,iF+(αF,1−1)S2 can be free of corrupting light and BG light. Note that the gain factor αF,1, in this case, can be a ratio between the amount of corrupting light captured in S1 and an amount of corrupting light captured in measurement F. The need to have three separate charge storage units for S1, S2 and F is obviated, since S1+(αF,1−1)S2 can be performed in hardware (i.e., using the same charge storage unit). Accordingly, the pixel can make measurement S1 (which can also be impacted by corrupting light), a BG measurement S2, and a corrupting light measurement F, by utilizing one charge storage unit for S1 and S2, and one charge storage unit for F.
Equation (4) can be modified as follows, to ensure that both measurement S0 and measurement S1 can be insensitive to corrupting light and BG light:
This adjusted ratio
for depth calculation can grow with depth, and can be provided as input to a lookup table implementing H(x) to obtain an actual depth D.
The result is a pixel which can account for corrupting light and BG light with three charge storage units: one charge storage unit for [S0+(αF,0−1)S2], one charge storage unit for [S1+(αF,1−1)S2], and one charge storage unit for F. The three charge storage units are sufficient to measure the quantities for computing depth based on equation 5. The result is a pixel which can advantageously remove the contributions from corrupting light and BG light, and enable more accurate depth estimates to be computed.
Technique for Isolating and Measuring Corrupting Light without Requiring a Nanosecond Pulse
In the technique illustrated by
which gives TC˜1 ns. Some drivers for driving light source 102 or the light source 102 itself cannot achieve a nanosecond width pulse of emitted light. Even if the driver can generate a short nanosecond pulse, it is possible that the output power of the emitted light is too low at that short light pulse width to get much signal back.
To address this issue, the charge storage units can be controlled in such a way to still isolate and measure the corrupting light.
The emitted light (e.g., plot 902) by light source 102 is represented by fT
As illustrated by the collected signal in
This technique is effective if the corrupting object is known, e.g., at some fixed distance. For instance, the corrupting object could be a screen 704 at some fixed distance from the pixel. In another instance, the corrupting object can be at a distance short enough that it can be approximated to be zero distance. Otherwise, the effective pulse width captured from the corrupting object or objects would depend on the distance to the corrupting object.
For example, if the corrupting object is at a distance DC, and the emitted light pulse is active for a time interval TL, then the return light from the corrupting object would be active from time 2DC/c to TL+2DC/c. If the sensor is active from time −t1 to td with
then the sensor would be collecting light between times
and td. Therefore the time interval during which the sensor collects light has a width of td−2DC/c. This quantity depends on the distance Dc between sensor and corrupting object. If DC is negligible compared to td, as could be the case for corrupting objects very near the camera compared to c td/2, then this quantity would be only weakly dependent on 2DC. Another case would be a corrupting object such as a screen where DC is constant, therefore there is no variation of td−2DC/c with DC since DC is constant. In both these cases, the effective pulse width can be determined a priori. If the quantity DC varies to the point where the amount of corrupting light depends strongly on DC, then it may be the case that a gain factor for removing the corrupting light cannot be determined a priori.
Obtaining Measurements with Simulated Short Light Pulse Widths
When the distance to the corrupting object can vary, a different technique can be used to effectively achieve short light pulse without having to generate one.
This simulation technique may use two charge storage units to obtain the first and the second measurement, which may require an additional charge storage unit for the pixel. However, one can remove the need to include an additional charge storage unit by recognizing that part of the subtraction can be reformulated as addition. A given charge storage unit can be operated with a proper sensor signal such that the charge storage unit can be reused to make multiple measurements and implement addition/accumulation of the measurements. Suppose the first measurement is denoted as F1 and the second measurement is denoted as F2. The resulting corrupting light measurement after subtraction, each capturing corrupting light and BG light, is denoted as F1−F2. Because both the first measurement F1 and the second measurement F2 include a component of BG light, the subtraction of F1 by F2 removes/cancels out the common component of BG light, leaving just the component of corrupting light. To ensure that the depth estimation can be tolerant to corrupting light (i.e., F1−F2) and BG light (i.e., S2), it is possible to remove or adjust for the corrupting light and BG light by subtracting a measurement Si by the resulting corrupting light measurement F1−F2 multiplied by a gain factor αF,i and by a BG light measurement S2, that is: Si′=S1−αF,i(F1−F2)−S2. A depth D for the pixel can be obtained by computing the following exemplary equation:
This ratio
for depth calculation can grow with depth, and can be provided as input to a look up table implementing H(x) to obtain an actual depth D.
Note that Si′=Si−αF,i(F1−F2)−S2 can be rewritten as Si′=(Si+αF,iF2)−(αF,iF1+S2). Equation 6 can be rewritten as follows:
With this rewritten quantity, Si′=(S1+αF,iF2)−(αF,iF1+S2), it is possible to use a first charge storage unit to obtain (Si+αF,iF2) and second charge storage unit to obtain (αF,iF1+S2). Specifically, to form a depth estimate that is tolerant to corrupting light (i.e., F1−F2) and BG light (i.e., S2), the depth imager can use a total of four charge storage units to obtain the quantities used in equation (7). A first charge storage unit can obtain (S1+αF,1F2). A second charge storage unit can obtain (αF,1F+S2). A third charge storage unit can obtain (S0+αF,0F2). A fourth charge storage unit can obtain (αF,0F1+S2).
The quantity Si+αF,iF2 can be stored in the charge storage unit that was originally used for Si. Accordingly, Si+αF,iF2 can be implemented by controlling a first charge storage unit for measuring Si in a suitable manner to make and add the αF,iF2 measurement directly in the same charge storage unit. αF,iF2 can be added directly to the same charge storage unit in hardware. The same charge storage unit can be used to make a measurement corresponding to Si and the measurement is stored in the charge storage unit. The same charge storage unit can make the second measurement F2, αF,i number of times, and add/accumulate the αF,i number of measurement F2 in the same charge storage unit. In this case, the gain factor αF,i can be a ratio between the amount of corrupting light captured in Si and an amount of corrupting light captured in measurement F1−F2. Effectively, a single charge storage unit can make the measurement Si+αF,iF2. If αF,i is not an integer, it is possible to change the pulse width (or duration) of the second measurement F2 to produce a integer multiple of a single second measurement F2. An exemplary approach would be to simply approximate αF,i to the nearest integer. The pulse width, associated with the gain factor αF,i can be pre-determined and programmed by determining the amount of corrupting light captured in Si, the amount of corrupting light captured in F1−F2, and taking ratio of the two amounts. Manipulating the sensor signal for the same charge storage unit to perform and accumulate the measurement Si done once and the second measurement F2 done αF,i number of times, the same charge storage unit can make the measurement equivalent to Si+αF,iF2. A separate charge storage unit is no longer needed for separately making the corrupting light measurement F2.
The quantity αF,iF1+S2 can be stored in the charge storage unit that was originally used for S2, once again by altering the pulse width of the F1 measurement and repeating its measurement an integer number of times such that its contribution being accumulated in the charge storage unit is approximately αF,iF1. Accordingly, αF,iF1+S2 can be implemented by controlling a second charge storage unit for measuring S2 in a suitable manner to make and add the αF,iF1 measurement directly in the same charge storage unit. αF,iF1 can be added directly to the same charge storage unit in hardware. The same charge storage unit can be used to make a measurement corresponding to S2 and the measurement is stored in the charge storage unit. The same charge storage unit can make the second measurement F1, αF,i number of times, and add/accumulate the αF,i number of measurement F1 in the same charge storage unit. In this case, the gain factor αF, can be a ratio between the amount of corrupting light captured in Si and an amount of corrupting light captured in measurement F1−F2. Effectively, a single charge storage unit can make the measurement αF,iF1+S2. If αF is not an integer, it is possible to change the pulse width (or duration) of the first measurement F1 to produce a integer multiple of a single first measurement F1. An exemplary approach would be to simply approximate αF,i to the nearest integer. The pulse width, associated with the gain factor αF,i can be pre-determined and programmed by determining the amount of corrupting light captured in Si, the amount of corrupting light captured in F1−F2, and taking ratio of the two amounts. Manipulating the sensor signal for the same charge storage unit to perform and accumulate the measurement S2 done once and the first measurement F1 done αF,i number of times, the same charge storage unit can make the measurement equivalent to αF,iF1+S2. A separate charge storage unit is no longer needed for separately making the corrupting light measurement F1.
In some embodiments, the measurement S0 has some amount of corrupting light or is significantly affected by the corrupting light, and the measurement S1 does not have any corrupting light, or is minimally affected by the corrupting light. For example, the measurement S0 can begin to collect charge at t=t0, and the measurement S1 can begin to collect charge much later, at t=t1. The start time of the measurement S1 can be set to ensure that the measurement S1 does not collect any corrupting light. The gain factor αF,1, seen in equations (6) and (7), is thus zero. If the measurement S1 has no contribution from corrupting light, then equation (6) and (7) can be formulated as follows:
Equation (8) can be rewritten as:
With this rewritten equation, to form a depth estimate where the measurement S0 is tolerant to corrupting light (i.e., F1−F2) and BG light (i.e., S2), and the measurement S1 is tolerant to BG light, the depth imager can use a total of three charge storage units to obtain the quantities used in equation (9). A first charge storage unit can obtain (S0+αF,0F2). A second charge storage unit can obtain (S1+αF,0F1). A third charge storage unit can obtain (S2+αF,0F1).
Approaches to Remove a Contribution from Corrupting Light
As explained herein, it is possible to adjust measurements by measuring the corrupting light through the use of short light pulses as seen in
can be free of corrupting light, as the amount of corrupting light in the first term is C0, and the amount of corrupting light in the second term is
thus they cancel out. The quantity is equal to the measurement S0 subtracted by the measurement S1 multiplied by a ratio of the corrupting light C0 and the corrupting light C1. The ratio is between an amount of corrupting light collected in S0 and an amount of corrupting light collected in S1. With the appropriate ratio, the contribution from corrupting light can be removed from the measurement S0 by subtracting
from S0. Based on the shape pulses, it is possible to know or estimate corrupting light C0 and C1 a priori, thus the ratio can be determined a priori. The amount of corrupting light captured can, in some cases, depend on the amount of time that both the sensor signal and return corrupting light are on at the same time. The ratio of corrupting light captured in the two measurements S0 and S1 can thus be used as the gain factor in many of the operations described herein.
For example, if S0 corresponds to the measurement M(TL
If, for example
then the sensor and return corrupting light are both on from times
If, furthermore, S1 corresponds to the measurement M(TL
If, for example
then the sensor and corrupting light are both on from time t1 to
If, all the pulses are square, then the amount of corrupting light captured in S0 is proportional to the time amount of time
that both the sensor and return corrupting light are active during the S0 measurement, while the amount of corrupting light in S1 is proportional to the amount of time
that both the corrupting light and sensor are active during the S1 measurement. In that case,
is a quantity where the corrupting light has been removed.
If, the pulses are not exactly square but approximately square, then this equation may still be approximately insensitive to corrupting light. If the pulses deviate significantly from square, then the amount of corrupting light will be a function of the shape of the pulses. By determining the shape of the pulses, or by empirically adding a corrupting object in the scene, performing a measurement, then removing the corrupting object in the scene and performing the same measurement, and subtracting the first measurement from the second measurement, one obtain purely the corrupting light. By performing this scheme for the S0 measurement one obtains C0, and by performing this scheme for S1 one obtains C1. Then the gain factor or ratio
can be stored. For example, if the distance to the corrupting object is known a priori this scheme for obtaining gain factor α is carried out with the corrupting object at the known distance to the corrupting object.
If the effect of corrupting light is to be removed for corrupting objects in a pre-determined interval of distances then a can be obtained for different distances to corrupting objects within the pre-determined interval of distances, and it can be verified whether a varies a small enough amount in the interval, in which case, one would choose for a a value that is close to the values obtained in the interval. Once gain factor α is pre-determined, and new S0 and S1 measurements are performed, then the quantity S0−αS1 can be obtained, which will be either fully or approximately free of corrupting light.
Accordingly, it is possible to form quantities which are uncorrupted and use the uncorrupted quantities for uncorrupted depth estimates. If it is possible additional charge storage unit(s) can be used to store the corrupted light. Alternatively, whenever there is a quantity in the depth estimation equation of the form A−B+C−D+ . . . , the depth estimation equation can be rewritten as (A+C+ . . . )−(B+D+ . . . ), and the summations can be performed directly in hardware (i.e., by reusing the same charge storage unit to make multiple measurements). As a result, additional charge storage units to make and store the corrupting light measurement are no longer needed.
Avoiding Corruption of Time-of-Flight Depth Images Due to Internal Scattering
One other possible way of making sure that the depth images are not corrupted by internal scattering or diffraction is to turn on sensor(s) past the point where the last corrupting light (due to internal scattering) is hitting the sensor, or at a point where the last corrupting light hitting the sensor is negligible. This methodology avoids the corrupting light altogether, by design, and the resulting depth estimate computed from the sensor measurements would be uncorrupted.
If tB,max is the maximum travel time of a pulse going to a nearby corrupting object and returning to the sensor, a measurement S0=M(TL,t1,TS)=M(TL,tB,max,TS) would not collect any light from the nearby corrupting object, as long as t1≥TL+tB,max. The quantity tB,max can be determined to be either a time after light reflecting off object(s) with a known distance to sensor, such as a glass cover, returns to the sensor, or a time such that object(s) that contribute to corruption do so in a small enough amount so as not to significantly affect depth estimates. If the distance dB,max is the largest distance between the object(s) and sensor for which the object(s) can still lead to significant corruption, then setting tB,max to 2 dB,max/C or larger, where c is the speed of light, will lead to S0 not having significant contribution from corrupting light. For example if objects further than 10 centimeters away from the sensor do not lead to significant corruption due to internal reflection, then setting tB,max≥2*10 cm/c will lead to S0 being approximately free of corruption. To make the measurement S0, a charge storage unit can start collecting light after the amount of time TL the light source 102 is on, plus the maximum travel time tB,max, and capture light for a duration of TS.
If tmin is the travel time for a pulse to travel to object(s) at the minimum distance Dmin at which the depth camera would begin to report depths (e.g., Dmin=20 cm), another measurement S1 can be made where t1=TL+tmin. That is, S1=M(TL,TL+tmin,TS). To make the measurement S1, a charge storage unit can start capturing light after the amount of time TL the light source 102 is on plus the travel time tmin, and capture light for a duration of TS. tB,max is shorter than tmin, which means that the charge storage unit making the measurement S1 starts collecting light after the charge storage unit making the measurement S0 starts collecting light. This also means that the measurement S1 would also not collect any light from the nearby corrupting object.
A further measurement S2 can be made to capture BG light. S2 can collect BG light for a time TS with the light source 102 off. S2 can collect light from times t=−t2 to t=−t2+TS. The measurement being made by S2 is M(TL,−t2,TS). In one case, t2=TS, and thus S2 can collect light from times t=−t2=−TS to t=0. In another case, S2 is M(0,0,TS), and the light source is kept off during the S2 measurement, thus only capturing BG light. Generally speaking, the measurement S2 collects BG light for a period of time where no light is received from the light source the light source 102.
To illustrate measuring distance using the technique for turning on the sensor after the light pulse is off to avoid corrupting light,
Based on these measurements, the amount of time for the light to return from the object can be derived based on tmin, tB,max, S0, S1, and S2 according to the following equation.
Moreover, the depth of the object of interest can then given by
Note that the numerator of the ratio, S1−S2, is a quantity that represents the measurement S1 with the contribution from BG light subtracted out. The quantity S1 or S1−S2, would get larger as the distance/depth of the object grows. Note that the denominator of the ratio, S0−S1, is a quantity that represents a difference between the measurement S0 and the measurement S1. S0−S1=Ceff(aR(tR−tB,max)+bTS)−Ceff(aR(tR−tmin)+bTS)=Ceff (aR(−tB,max+tmin)). Note that this quantity is independent of tR, which means that this quantity is independent of the distance/depth of the object. Accordingly, the ratio
is positively related to the distance/depth of the object grows.
In the case where the pulses are not perfectly square, it is possible to measure the ratio (S1−S2)/(S0−S1) as a function of depth and store the values in a lookup table. The lookup table implements a function H(x) such that
and can convert the ratio into a depth estimate. In other words, the result from the lookup table based on the ratio (S1−S2)/(S0−S1) can output a corrected depth estimate. Values for H(x) can be extrapolated between the values of x for which H(x) is known. The depth equation becomes:
Example 1 is a method to measure depth that is insensitive to corrupting light due to internal reflections, the method comprising: emitting light by a light source onto a scene; making a corrupting light measurement (e.g., F) by controlling a first charge storage unit of a pixel to collect charge based on light hitting the pixel during a first time period where the corrupting light hits the pixel but no return light from an object within a field of view of the pixel hits the pixel; removing a contribution (e.g., αFC, or αF,iF) from the corrupting light from one or more measurements affected by the corrupting light (e.g., S0 or S1) based on the corrupting light measurement; and determining the depth based on the one or more measurements with the contribution from the corrupting light removed. Exemplary embodiments are illustrated in
In Example 2, the method of Example 1 can optionally include the light being emitted onto the scene for a duration that is short enough to separate (1) the corrupting light hitting the pixel, and (2) reflected light from the object hitting the pixel, in time. Exemplary embodiments are illustrated in
In Example 3, the method of Example 1 or 2 can optionally include the first time period ending after all corrupting light is collected and before the return light from the object hits the pixel. Exemplary embodiments are illustrated in
In Example 4, the method of Example 1 can optionally include the first time period ending after a portion of the corrupting light is collected and before the return light from the object hits the pixel. Exemplary embodiments are illustrated in
In Example 5, the method of Example 4 can optionally include determining the contribution from the corrupting light by scaling the corrupting light measurement by a gain factor. Exemplary embodiments are illustrated in
In Example 6, the method of any one of Examples 1-5 can optionally include the corrupting light measurement including a contribution from background light and a contribution from the corrupting light. For example, the measurement F equals to BG plus C.
In Example 7, the method of any one of Examples 1-6 can optionally include: making a background light measurement (e.g., S2); and removing a contribution from the background light (e.g., BG) from the corrupting light measurement based on the background light measurement (e.g., S2) to obtain the contribution from the corrupting light (e.g. C). For example, C can be obtained from F minus BG.
In Example 8, the method of Example 7 can optionally include making the background light measurement comprising: controlling a second charge storage unit (e.g., S2) of the pixel to collect charge based on the background light hitting the pixel during a second time period when the light source is not emitting light (or only background light is hitting the pixel, or no reflected light from objects is hitting the pixel).
In Example 9, the method of any one of Examples 1-8 can optionally include: removing the contribution from the corrupting light (e.g., αFC) from one or more measurements affected by the corrupting light comprises: scaling the contribution from the corrupting light (e.g., C) by a gain factor (e.g., αF); and removing a scaled contribution from the corrupting light from the one or more measurements affected by the corrupting light. For instance, if M is the measurement affected by the corrupting light, the contribution from the corrupting light is removed by determining the quantity: M−αFC.
In Example 10, the method of Example 9 can optionally include the gain factor (e.g., αF) being based on a ratio of a duration of emitted light (e.g., TL) used in the one or more measurement and a duration of emitted light (e.g., TC) used in the corrupting light measurement. For instance, the gain factor αF can equal to
In Example 11, the method of Example 9 or 10 can optionally include the gain factor (e.g., αF) being based on a ratio of an amount of corrupting light (e.g., fC,M) collected in the one or more measurement and an amount of corrupting light (e.g., fC) collected in the corrupting light measurement. For instance, the gain factor αF can equal to
In Example 12, the method of any one of Examples 1-11 can optionally include removing the contribution from the corrupting light (e.g., αFC) from one or more measurements affected by the corrupting light comprising: scaling the corrupting light measurement by a first gain factor (e.g., F is scaled by αF,i); and subtracting a scaled corrupting light measurement from the one or more measurements affected by the corrupting light (e.g., determining Si−αF,iF).
In Example 13, the method of Example 12 can optionally include: making a background light measurement (e.g., S2); and scaling the background light measurement by a second gain factor (e.g., (αF,i−1)); adding a scaled background light measurement to the one or more measurements affected by the corrupting light (e.g., perform S1+(αF,i−1)S2).
In Example 14, the method of Example 13 can optionally include the second gain factor being equal to the first gain factor subtracted by 1 (e.g., (αF,i−1)).
For instance, an adjusted measurement St, where the corruption from the corrupting light is removed, can be equal to Si−αF,iF+(αF,i−1)S2. The adjusted measurement Si′ can be obtained by performing the method in Example 12, 13, or 14.
In Example 15, the method of any one of Examples 1-14 can optionally include: adding a first one of the one or more measurements and a background light measurement by accumulating charge for the first one of the one or more measurements and charge for the background light measurement in a same charge storage unit. For example, a same charge storage unit can be used to determine/perform S1+(αF,i−1)S2.
Example 16 is a method to measure depth that is insensitive to corrupting light due to internal reflections and background light, the method comprising: emitting light by a light source onto a scene; adding, by a first charge storage unit of a pixel, a first measurement (e.g., S0) and a first background light measurement (e.g., (αF,0−1)S2); adding, by a second charge storage unit of the pixel, a second measurement (e.g., S1) and the second background light measurement (e.g., (αF,1−1)S2); making a corrupting light measurement (e.g., F) by third charge storage unit; and determining the depth based on charge collected in the first charge storage unit, the second charge storage unit, and the third charge storage unit. For example, measurements usable for determining depth can be performed with just three charge storage units: one charge storage unit for measuring/performing S0+(αF,0−1)S2, one charge storage unit for measuring/performing S1+(αF,1−1)S2, and one charge storage unit for measuring F.
In Example 17, the method of Example 16 can optionally include adding by the first charge storage unit comprising: accumulating, in the first charge storage unit, (1) charge for the first measurement (e.g., S0) and (2) charge for the first background light measurement (e.g., (αF,0−1)S2), wherein the first background light measurement is based on only background light hitting the pixel. For instance, the first charge storage unit can accumulate measurements and determine/perform S0+(αF,0−1)S2.
In Example 18, the method of Example 17 can optionally include the first background light measurement representing background light collected over a first pre-determined duration. For instance, the first background light measurement is a background light measurement done over a duration that corresponds to (αF,0−1).
In Example 19, the method of Example 18 can optionally include the first pre-determined duration is based on a first ratio (e.g., αF,0) between an amount of corrupting light captured in the first measurement (e.g., S0) and an amount of corrupting light captured in the corrupting light measurement (e.g., F).
In Example 20, the method of any one of Examples 16-19 can optionally include adding by the second charge storage unit comprising: accumulating, in the second charge storage unit, (1) charge for the second measurement (e.g., S1) and (2) charge for the second background light measurement (e.g., (αF,0−1)S2), wherein the second background light measurement is based on only background light hitting the pixel. For instance, the second charge storage unit can accumulate measurements and determine/perform S1+(αF,1−1)S2.
In Example 21, the method of Example 20 can optionally include the second background light measurement represents background light collected over a second pre-determined duration. For instance, the second background light measurement is a background light measurement done over a duration that corresponds to (αF,1−1).
In Example 22, the method of Example 21 can optionally include the second pre-determined duration being based on a second ratio (e.g., αF,1) between an amount of corrupting light captured in the second measurement (S1) and an amount of corrupting light captured in the corrupting light measurement (F).
In Example 23, the method of any one of Examples 16-22 can optionally include making a corrupting light measurement comprising: controlling the third charge storage unit of a pixel to collect charge based on light hitting the pixel during a time period where the corrupting light hits the pixel but no return light from an object within a field of view of the pixel hits the pixel. Exemplary embodiments are illustrated in
In Example 24, the method of Example 23 can optionally include the time period ending after all corrupting light is collected and before the return light from an object within hits the pixel. Exemplary embodiments are illustrated in
In Example 25, the method of any one of Examples 16-24 can optionally include the light being emitted onto the scene for a duration that is short enough to separate (1) the corrupting light hitting the pixel and (2) reflected light from an object within a field of view of the pixel hitting the pixel in time. Exemplary embodiments are illustrated in
In Example 26, the method of any one of Examples 16-22 can optionally include: the time period ending after a portion of the corrupting light is collected and before the return light from the object hits the pixel. Exemplary embodiments are illustrated in
In Example 27, the method of any one of Examples 16-22 and 26 can optionally include: determining the contribution from the corrupting light by scaling the corrupting light measurement by a gain factor; and removing the contribution from the corrupting light from the first and second measurements. Exemplary embodiments are illustrated in
Example 28 is a method to measure depth that is insensitive to corrupting light due to internal reflections and background light, the method comprising: making a first corrupting light measurement (e.g., F1) with a first emitted light pulse having a first start time, making a second corrupting light measurement (e.g., F2) with a second emitted light pulse, wherein the second emitted light pulse has a same pulse shape as the first emitted light pulse, and the second emitted light pulse has a second start time that offset by a pre-determined amount of time (e.g., td) relative to the first start time; determining the depth based on one or more measurements (e.g., S0, S1) with the contribution from the corrupting light removed, wherein the contribution from the corrupting light is based on the first corrupting light measurement and the second corrupting light measurement (e.g., F1−F2). Exemplary embodiments are illustrated in
In Example 29, the method of Example 28 can optionally include the second emitted light pulse having a same duration as the first emitted light pulse. Exemplary embodiments are illustrated in
In Example 30, the method of Example 28 or 29 can optionally include making the first corrupting light measurement comprising: controlling a first charge storage unit of a pixel to collect charge using a first sensor signal; and making the second corrupting light measurement comprising controlling a second charge storage unit of the pixel to collect charge using a second sensor signal having a same start time, a same shape, and a same duration as the first sensor signal. Exemplary embodiments are illustrated in
In Example 31, the method of any one of Examples 28-30 can optionally include: making the first corrupting light measurement comprising controlling a first charge storage unit of a pixel to start collecting charge at or before the first start time (e.g., −t1) and stop collecting charge after the second start time (e.g., after td); and making the second corrupting light measurement comprises controlling a second charge storage unit of the pixel to start collecting charge at or before the first start time (−t1) and stop collecting charge after the second start time (e.g., after td). Exemplary embodiments are illustrated in
In Example 32, the method of any one of Examples 28-31 can optionally include a difference between the first corrupting light measurement (e.g., F1) and the second corrupting light measurement (e.g., F2) yielding the contribution from the corrupting light. For instance, the measurement of corrupting light based on a simulated short light pulse can be obtained by determining/performing: F1−F2.
In Example 33, the method of any one of Examples 28-32 can optionally include a difference between the first corrupting light measurement (e.g., F1) and the second corrupting light measurement (e.g., F2) is equivalent to a corrupting light measurement made with an emitted light pulse having a pulse width corresponding to the pre-determined amount of time. For instance, the quantity F1−F2 is equivalent to a measurement done with a pulse having a duration of td).
In Example 34, the method of any one of Examples 28-33 can optionally include removing the contribution from the corrupting light from a given measurement of the one or more measurements by subtracting the given measurement (e.g., Si) by a difference between the first corrupting light measurement and the second corrupting light measurement scaled by a gain factor (e.g., αF,i(F1−F2)). For instance, removing the contribution from corrupting light can include determining/performing: Si−αF,i(F1−F2).
In Example 35, the method of Example 34 can optionally include the gain factor (αF,i) being a ratio of corrupting light captured in the given measurement and an amount of corrupting light captured in the difference.
In Example 36, the method of any one of Examples 28-35 can optionally include: making a third measurement (e.g., S2) without any emitted light pulse to measure background light; and removing a contribution from background light from a given measurement of the one or more measurements by subtracting the given measurement by the third measurement (e.g., performing/determining Si−S2.
For instance, an adjusted measurement Si′, where the corruption from the corrupting light is removed, can be equal to Si−αF,i(F1−F2)−S2. The adjusted measurement Si′ can be obtained by performing the method in Example 34, 35, or 36.
In Example 37, the method of any one of Examples 28-26 can optionally include: adding (1) the first measurement (e.g., F1) scaled by a gain factor (e.g., αF,i) and (2) a third measurement of background light (e.g., S2), in a first charge storage unit of a pixel (e.g., the first charge storage unit can accumulate measurements and perform (αF,iF1+S2)); and adding (1) the second measurement (e.g., F2) scaled by the gain factor (e.g., αF,i) and (2) a given measurement (e.g., Si) of the one or more measurements, in a second charge storage unit of the pixel (e.g., the second charge storage unit can accumulate measurements and perform (Si+αF,iF2)). For instance, the adjusted measurement Si′=Si−αF,i(F1−F2)−S2 can be reformulated into two additions, e.g., Si′=(Si+αF,iF2)−(αF,iF1+S2), that can be done by two charge storage units.
Example 38 is a depth imager that is insensitive to corrupting light due to internal reflections and background light, the depth imager comprising: an array of sensors, wherein a first sensor of the array of sensors comprises: a first charge storage unit controllable to make a first measurement (e.g., S0), a second charge storage unit controllable to make a second measurement (e.g., Si), a third charge storage unit controllable to make a background light measurement (e.g., S2); and a fourth charge storage unit controllable to make a corrupting light measurement (e.g., F); and a processing circuit to receive and process signals from the array of sensors to form depth estimates. For instance, four charge storage units can be used to make the measurements to be used in determining a depth estimate that is insensitive to corrupting light and background light.
In Example 39, the depth imager of Example 38 can optionally include the processing circuit being to: remove contribution from the background light and contribution from the corrupting light from at least one of: the first measurement and the second measurement based on background light measurement and the corrupting light measurement.
In Example 40, the depth imager of Example 39 can optionally include the processing circuit being to: form depth estimates based on a ratio of the second measurement and a sum of the first measurement and the second measurement after removing the contribution from the background light and the contribution from the corrupting light from at least one of: the first measurement and the second measurement. Examples of the depth estimates equations are illustrated by equations shown herein.
Example 41 is a depth imager that is insensitive to corrupting light due to internal reflections and background light, the depth imager comprising: an array of sensors, wherein a first sensor of the array of sensors comprises: a first charge storage unit controllable to make and accumulate a first measurement and a first background light measurement (e.g., accumulate measurements and perform: S0+(αF,0−1)S2); a second charge storage unit controllable to make and accumulate a second measurement and a second background light measurement (e.g., accumulate measurements and perform: S1+(αF,1−1)S2); and a third charge storage unit controllable to measure the corrupting light (e.g., F); and processing circuit to receive and process signals from the array of sensors to form depth estimates. For instance, three charge storage units can be used to make the measurements to be used in determining a depth estimate that is insensitive to corrupting light and background light.
In Example 42, the depth imager of Example 41 can optionally include the first charge storage unit being controllable to collect background light for a first duration that is defined by a first gain factor (e.g., (αFr,−1)); and the second charge storage unit being controllable to collect background light for a second duration that is defined by a second gain factor (e.g., (αF,1−1)).
In Example 43, the depth imager of Example 41 or 42 can optionally include the processing circuit being to: compute, for the first sensor, a ratio based on charge collected by the first charge storage unit, charge collected by the second charge storage unit, and charge collected by the third charge storage unit. For instance, the ratio can be based on
In Example 44, the depth imager of Example 43 can optionally include the processing circuit being to: form depth estimates based on a lookup table indexed by values of the ratio. For instance, the lookup table can implement the function D=H(x) where x represents the ratio.
Example 45 is a depth imager that is insensitive to corrupting light due to internal reflections and background light, the depth imager comprising: an array of sensors, wherein a first sensor of the array of sensors comprises: a first charge storage unit controllable to make and accumulate a first measurement (e.g., S1) and a first corrupting light measurement (e.g., αF,1F2); a second charge storage unit controllable to make and accumulate a second corrupting light measurement (e.g., αF,1F) and a background light measurement (e.g., S2); a third charge storage unit controllable to make and accumulate a second measurement (e.g., S0) and a third corrupting light measurement (e.g., αF,0F2); and a fourth charge storage unit controllable to make and accumulate a fourth corrupting light measurement (e.g., αF,0F1) and the background light measurement (e.g., S2); and processing circuit to receive and process signals from the array of sensors to form depth estimates. For instance, four charge storage units can be used to make the measurements to be used in determining a depth estimate that is insensitive to corrupting light and background light. Additionally, a short light pulse is simulated for the measurements of the corrupting light. Exemplary embodiments are illustrated in
In Example 46, the depth imager of Example 45 can optionally include: a driver to control a light source to: emit a first light pulse having a first start time for the first corrupting light measurement (e.g., αF,1F2) and the third corrupting light measurement (e.g., αF,0F2); and emit a second light pulse for the second corrupting light measurement (e.g., αF,1F) and the fourth corrupting light measurement (e.g., αF,0F); wherein the second emitted light pulse has a same pulse shape as the first emitted light pulse, and the second emitted light pulse has a second start time that offset by a pre-determined amount of time relative to the first start time. Exemplary embodiments are illustrated in
In Example 47, the depth imager of Example 45 or 46 can optionally include: each one of the first, second, third, and fourth corrupting light measurement comprising a respective number of repeated measurements, and the number corresponds to a respective gain factor (e.g., αF,0 and αF,1). For instance, the respective gain factors αF,0 and αF,1 can be achieved by performing repeated measurements of F1 or F2.
In Example 48, the depth imager of any one of Examples 45-47 can optionally include the processing circuit being to: compute, for the first sensor, a ratio based on charge collected by the first charge storage unit, charge collected by the second charge storage unit, charge collected by the third charge storage unit, and charge collected by the fourth charge storage unit. For instance, the ratio can be based on
In Example 49, the depth imager of Example 48 can optionally include the processing circuit being to: form depth estimates based on a lookup table indexed by values of the ratio. For instance, the lookup table can implement the function D=H(x) where x represents the ratio.
Example 50 is a depth imager that is insensitive to corrupting light due to internal reflections and background light, the depth imager comprising: an array of sensors, wherein a first sensor of the array of sensors comprises: a first charge storage unit controllable to make and accumulate a first measurement (e.g., S0) and a first corrupting light measurement (e.g., αF,0F2); a second charge storage unit controllable to make and accumulate a second measurement (e.g., S1) and a second corrupting light measurement (e.g., αF,0F); and a third charge storage unit controllable to make and accumulate a background light measurement (e.g., S2) and the second corrupting light measurement (e.g., αF,0F1); and processing circuit to receive and process signals from the array of sensors to form depth estimates. For instance, three charge storage units can be used to make the measurements to be used in determining a depth estimate that is insensitive to corrupting light and background light. Additionally, a short light pulse is simulated for the measurements of the corrupting light. The second measurement S1 is done in a way to not capture any or very little corrupting light. Exemplary embodiments are illustrated in
In Example 51, the depth imager of Example 50 can optionally include: a driver to control a light source to: emit a first light pulse having a first start time for the first corrupting light measurement (e.g., αF,0F2); and emit a second light pulse for the second corrupting light measurement (e.g., αF,0F1); wherein the second emitted light pulse has a same pulse shape as the first emitted light pulse, and the second emitted light pulse has a second start time that offset by a pre-determined amount of time relative to the first start time. Exemplary embodiments are illustrated in
In Example 52, the depth imager of Example 50 or 51 can optionally include: each one of the first corrupting light measurement and the second corrupting light measurement comprise a number of repeated measurements; and the number corresponds to a gain factor (e.g., αF,0). For instance, the gain factors αF,0 can be achieved by performing repeated measurements of F1 or F2.
In Example 53, the depth imager of Example 52 can optionally include the gain factor depending on an amount of corrupting light captured in the first measurement (e.g., S0) and an amount of corrupting light captured in the first and second corrupting light measurements (e.g., F1−F2).
In Example 54, the depth imager of any one of Examples 50-53 can optionally include the processing circuit being to: compute, for the first sensor, a ratio based on charge collected by the first charge storage unit, charge collected by the second charge storage unit, and charge collected by the third charge storage unit. For instance, the ratio can correspond to
In Example 55, the depth imager of Example 54 can optionally include the processing circuit being to: form depth estimates based on a lookup table indexed by values of the ratio. For instance, the lookup table can implement the function D=H(x) where x represents the ratio.
Example A is an apparatus comprising means for implementing and/or carrying out any one of the methods described herein.
Generally speaking, the embodiments disclosed herein are applicable to depth imagers which suffer from the internal reflection problem. These depth imagers can be found in optical systems include time-of-flight, and range finding systems. Optical systems designed for determining depth, distance, and/or speed can also be found in many applications, including sports electronics, consumer electronics, medical equipment, aerospace/military equipment, automotive electronics, security systems, etc.
The present disclosure includes apparatuses which can include means to implement any one or more parts of the various techniques disclosed herein.
The embodiments described herein (e.g., illustrated in
The embodiments described herein (e.g., illustrated in
In some cases, the charge storage unit that makes a measurement F of corrupting light can be used as a corrupting light detector. The detector can provide useful information to the user, if sufficient corrupting light is collected by the pixels in the sensor. The depth imager can cause an output to be generated to notify the user that there is corrupting light, and ask the user to remove the cause for the internal reflections (e.g., smudge, finger, dust, condensation, etc.).
Moreover, the detector can modify the operating mode of the depth imager to account for corrupting light. For instance, if no corrupting light is detected, the depth imager can compute depth estimates based on any one or more exemplary embodiments accompanying equation (2) or (3). If corrupting light is detected, the depth imager can be configured to make measurements and compute depth estimates based on any one or more exemplary embodiments accompanying equations (4)-(10).
For detecting whether there is sufficient corrupting light, it is possible to sense corrupting light hitting any of the pixels based on the techniques described herein and sense all light hitting the pixels. If the ratio of the corrupting light and all light hitting the pixels is greater than a threshold, the corrupting light detector can output a signal indicating that there is sufficient corrupting light. If it is less than the threshold, there is insufficient corrupting light.
To sum all the corrupting light hitting an array of sensors, electrons from a group of charge storage units measuring the corrupting light can be collected (e.g., by columns) so that it is not necessary to read out each pixel. Similarly, to sum all the light hitting the pixels, electrons from a group of charge storage units measuring all the light can be collected (e.g., by columns) so that it is not necessary to read out each pixel.
It is also imperative to note that all of the specifications, dimensions, and relationships outlined herein (e.g., circuit components) have only been offered for purposes of example and teaching only. Such information may be varied considerably without departing from the spirit of the present disclosure, or the scope of the appended claims and/or examples. The specifications apply only to one non-limiting example and, accordingly, they should be construed as such. In the foregoing description, example embodiments have been described with reference to particular component arrangements. Various modifications and changes may be made to such embodiments without departing from the scope of the appended claims and/or examples. The description and drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense.
Note that with the numerous examples provided herein, interaction may be described in terms of two, three, four, or more electrical components. However, this has been done for purposes of clarity and example only. It should be appreciated that the system can be consolidated in any suitable manner. Along similar design alternatives, any of the illustrated components of the FIGURES may be combined in various possible configurations, all of which are clearly within the broad scope of this Specification. In certain cases, it may be easier to describe one or more of the functionalities of a given set of flows by only referencing a limited number of electrical elements. It should be appreciated that the electrical circuits of the FIGURES and its teachings are readily scalable and can accommodate a large number of components, as well as more complicated/sophisticated arrangements and configurations. Accordingly, the examples provided should not limit the scope or inhibit the broad teachings of the electrical circuits as potentially applied to a myriad of other architectures.
Note that in this Specification, references to various features (e.g., elements, structures, modules, components, steps, operations, characteristics, etc.) included in “one embodiment”, “example embodiment”, “an embodiment”, “another embodiment”, “some embodiments”, “various embodiments”, “other embodiments”, “alternative embodiment”, and the like are intended to mean that any such features are included in one or more embodiments of the present disclosure, but may or may not necessarily be combined in the same embodiments.
It is also important to note that the functions related to making measurements and depth estimation illustrate only some of the possible functions that may be carried out by the circuits illustrated in the FIGURES. Some of these operations may be deleted or removed where appropriate, or these operations may be modified or changed considerably without departing from the scope of the present disclosure. In addition, the timing of these operations may be altered considerably. The operational flows have been offered for purposes of example and discussion. Substantial flexibility is provided by embodiments described herein in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the teachings of the present disclosure.
Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained to one skilled in the art and it is intended that the present disclosure encompass all such changes, substitutions, variations, alterations, and modifications as falling within the scope of the disclosure. Note that all optional features of the apparatus described herein may also be implemented with respect to the method or process described herein and specifics in the examples may be used anywhere in one or more embodiments.
This patent application claims priority to and receives benefit from U.S. Provisional Application, Ser. No. 62/687,851, titled “MEASURING AND REMOVING THE CORRUPTION OF TIME-OF-FLIGHT DEPTH IMAGES DUE TO INTERNAL SCATTERING”, filed on Jun. 21, 2018, which is hereby incorporated in its entirety. This patent application also claims priority to and receives benefit from U.S. Provisional Application, Ser. No. 62/715,695, titled “AVOIDING THE CORRUPTION OF TIME-OF-FLIGHT DEPTH IMAGES DUE TO INTERNAL SCATTERING”, filed on Aug. 7, 2018, which is also hereby incorporated in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
6373557 | Mengel et al. | Apr 2002 | B1 |
8405821 | Rieme | Mar 2013 | B2 |
1010377 | Thompson et al. | Oct 2018 | A1 |
20130208257 | Dyer | Aug 2013 | A1 |
20140078488 | Hoashi | Mar 2014 | A1 |
20160178734 | Kawamura et al. | Jun 2016 | A1 |
20170343675 | Oggier et al. | Nov 2017 | A1 |
20170366726 | Yanagida | Dec 2017 | A1 |
20180053799 | Otani | Feb 2018 | A1 |
20180120423 | Nishikawa | May 2018 | A1 |
20180167562 | Suzuki | Jun 2018 | A1 |
20190086521 | Boutaud | Mar 2019 | A1 |
20190391266 | Mori et al. | Dec 2019 | A1 |
20200025894 | Van Dyck | Jan 2020 | A1 |
Number | Date | Country |
---|---|---|
106772265 | May 2017 | CN |
3301479 | Apr 2018 | EP |
3550330 | Oct 2019 | EP |
2002-500367 | Jan 2002 | JP |
2008-145237 | Jun 2006 | JP |
2013-003071 | Jan 2013 | JP |
2014-059223 | Apr 2014 | JP |
2014-228304 | Dec 2014 | JP |
2018-101187 | Jun 2018 | WO |
2018101187 | Jun 2018 | WO |
Entry |
---|
English Translation of Bibliographic Data, Description and Claims (using Patent Translate) of JP 2008-145237, 8 pages. |
English Translation of Bibliographic Data, Description and Claims (using Patent Translate) of JP 2013-003071A, 28 pages. |
English Translation of Bibliographic Data, Description and Claims (using Patent Translate) of JP 2014-228304A, 13 pages. |
JP Office Action issued in JP 2019-115672 dated Aug. 11, 2020, 8 pages [includes EN Summary of Relevance, plus List of Citations]. |
EP Search Opinion dated Oct. 24, 2019 in EP Application No. 19180686.8. |
Mure-Dubois et al., Real-Time Scattering Compensation for Time-of-Flight Camera, Proceedings of the 5th International Conference on Computer Vision Systems (ICCVS 2007), 10 pages. |
Mure-Dubois et al., Optimized Scattering Compensation for Time-of-Flight Camera, Proceedings of the SPIE Three-Dimensional Methods for Inspection and Metrology V, 6762 (SPIE 2007), 10 pages. |
Jamtsho et al., Modeling Scattering Distortion in 3D Range Camera, International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences, vol. XXXVIII, Part 5, Commission V Symposium, Newcastle upon Tyne, UK, 2010, 6 pages. |
Shäfer et al., Model Based Scattering Correction in Time-of-Flight Cameras, © 2014 Optical Society of America, 12 pages. |
Dorrington et al., Separating True Range Measurement From Multi-Path and Scattering Interference in Commercial Range Cameras, Proc. SPIE 7864, Three-Dimensional Imaging, Interaction and Measurement, 786404, Jan. 27, 2011, 11 pages. |
Fuchs, Calibration and Multipath Mitigation for Increased Accuracy of Time-of-Flight Camera Measurements in Robotic Applications, Dissertation, Berlin 2012, 174 pages. |
Kadambi et al., Coded Time of Flight Cameras: Sparse Deconvolution to Address Multipath Interference and Recover Time Profiles, ACM Transaction on Graphics, vol. 32, No. 6, Article 167, Nov. 2013, 10 pages. |
Karel et al., Modelling and Compensating Internal Light Scattering in Time of Flight Range Cameras, The Photogrammetric Record, 27(138): 155-174 (Jun. 2012), 20 pages. |
Karel et al., Quantifying the Distortion of Distance Observations Caused by Scatting in Time-of-Flight Range Cameras, International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences, vol. XXXVIII, Part 5, Commission V Symposium, Newcastle upon Tyne, UK, 2010, 6 pages. |
Lefloch et al., Technical Foundation and Calibration Methods for Time-of-Flight Cameras, Germany, Sep. 23, 2013, 20 pages. |
Naik et al., Single View Reflectance Capture using Multiplexed Scattering and Time-of-Flight Imaging, ACM Transaction on Graphics, vol. 30, No. 6, Article 171, Dec. 2011. 10 pages. |
Number | Date | Country | |
---|---|---|---|
20190391238 A1 | Dec 2019 | US |
Number | Date | Country | |
---|---|---|---|
62715695 | Aug 2018 | US | |
62687851 | Jun 2018 | US |