英特尔
直播中

叶冬琳

7年用户 233经验值
私信 关注
[问答]

D435系统地高估了Z-Depth

我试图通过测量已知距离的目标范围(Y = 100mm,200mm,300mm和390mm)来校准我的D435:
相机距离地平面390mm,水平(顶部目标是所有距离的像素行240),我的水平仪告诉我,我的地板是平的,目标是垂直的。
对于Z = 500mm,1m,1.5m,2m,2.5m和3m,我将Z距离(从相机深度图的原始范围,没有后处理)到4个目标中的每一个,平均超过100次测量。
这是结果的Z-Y图(2'200次测量):
Y误差是由于垂直FOV中公布的±3%容差(我通过线性回归估计为56.1739°)。
真正的Z距离大致遵循二次方a * Z * Z + b * Z + c,a = -0.000039 b = 0.0375,c = -6.531(有趣的是这个线程中提到的7mm https://communities.intel
com / thread / 128141我应用它来获得更准确的结果没有问题。
现在我的设置可能有些偏差,但Z误差在3米处始终为+ 300mm(+ 10%)。
误差增加为距离的平方,我完全理解,但假设误差是高斯的,它应平均超过100次测量并且不作为Z的函数系统地增加。
我是否犯了另一个明显的错误?
-0.000039497035

以上来自于谷歌翻译


以下为原文

I am trying to calibrate my D435 by measuring the range to targets (Y=100mm, 200mm, 300mm and 390mm) at a known distances:

The camera is 390mm from the ground plane, horizontal (the top target is pixel row 240 at all distances), my spirit level tells me that my floor is flat and the targets are perpendicular.
I take the Z distance (the raw range from the camera depthmap, no post-processing) to each of the 4 targets, averaged over 100 measurements, for Z=500mm, 1m, 1.5m, 2m, 2.5m and 3m.
This is the Z-Y plot of the results (2'200 measurements):

The Y error is due due to the published +-3% tolerance in the vertical FOV (which I estimate by linear regression to be 56.1739°).
The true Z distance roughly follows the quadratic a*Z*Z+b*Z+c for a=-0.000039 b=0.0375 and c=-6.531 (which interestingly is the 7mm mentioned in this thread  https://communities.intel.com/thread/128141 and I have no problem applying that to get a more accurate result.
Now my setup may be a little off-kilter, but the Z error is consistently some +300mm (+10%) at 3 metres.

That the error increases as a square of the distance, I fully understand, but assuming that the error is gaussian it should average out over 100 measurements and not systematically increase as a function of Z.
Have I made another glaring blunder?






-0.000039497035

回帖(12)

卿洁

2018-11-20 11:36:14
你用的是什么分辨率?
由于分辨率降低,深度误差会增加,因此建议在D435上使用至少848x480的分辨率,在D415上使用1280x720(请参阅下面英特尔调谐指南中的图像 - 左键单击它以全尺寸查看)


以上来自于谷歌翻译


以下为原文

What resolution are you using please?  Depth error can increase as resolution reduces, so it is recommended that a resolution of at least 848x480 is used on D435 and 1280x720 on D415 (see the image below from Intel-s tuning guide - left-click on it to view in full size).
 
举报

叶冬琳

2018-11-20 11:46:26
嗨Marty,谢谢你的及时跟进。
我遵循Intel-RealSense-Depth-PostProcess.pdf和BKMs-For-Tuning-RealSense_D4xx_Cameras_WP_1.7.pdf中的建议。
默认视觉预设英特尔.Realsense.CustomRW.exe -g重置为黄金标准工厂848x480没有后期处理。
我已经尝试打开所有后处理器(除了抽取),没有任何变化。由于我的应用程序需要识别薄的障碍(花茎),我宁愿尽可能避免抽取。
我从BKM得知,3米处的误差约为35毫米,但Z系统地高估了,当我预计读数会在3米左右(上下)时徘徊。
这本身不是问题;
如果所有相机都像这样,那很容易纠正。
我担心的是我的设置在某些方面是不正确的。

以上来自于谷歌翻译


以下为原文

Hi Marty, thanks for the prompt follow-up.
I'm following the recommendations in Intel-RealSense-Depth-PostProcess.pdf and BKMs-For-Tuning-RealSense_D4xx_Cameras_WP_1.7.pdf.
 

  • Default visual preset
  • Intel.Realsense.CustomRW.exe -g to reset to golden standard factory
  • 848x480
  • No post-processing. I've tried turning all the post-processors on (except decimation), nothing changes.
As my application needs to recognise thin obstacles (flower stalks), I'd prefer to avoid decimation if at all possible.
I know from the BKM that the error at 3m is around 35mm but the Z is systematically over-estimated, when I would have expected the readings to wander around 3m (above and below).
This isn't a problem per se; if all cameras behave like this it's easily corrected. My worry is that my setup is incorrect in some way.
举报

卿洁

2018-11-20 12:00:52
引用: YY599566 发表于 2018-11-20 18:57
嗨Marty,谢谢你的及时跟进。
我遵循Intel-RealSense-Depth-PostProcess.pdf和BKMs-For-Tuning-RealSense_D4xx_Cameras_WP_1.7.pdf中的建议。
默认视觉预设英特尔.Realsense.CustomRW.exe -g重置为黄金标准工厂848x480没有后期处理。

你确定你有100个测量值吗?
如果您进行了少于或超过100次测量并且将所有测量值相加,然后将总和除以固定值100以获得距离的平均值,则会使结果偏斜。

以上来自于谷歌翻译


以下为原文

Are you sure you have 100 measurements?  If you had less or more than 100 measurements and were adding up all the measurements and then dividing the total by a fixed value of 100 to get the average of the distance, that would skew the result.
举报

叶冬琳

2018-11-20 12:15:57
我重复了实验,记录了每个测量的时间戳,参见附件.XLS。
真实距离500,1,000,1,500等是从相机的玻璃上用钢尺测量的。
这是我的测试安全带的屏幕截图,同时测量为1'500mm:
仅供参考,在底部,您可以看到第424列的值在1'000mm;
地板平坦到1米,然后Y按预期几乎垂直增加,表明木制目标。
红十字表示障碍物的位置,I.E。
下一个像素高出30mm的第一个像素。
测量值是行240列424处的原始范围值,摄像机的中心(真实摄像机中心实际上是239.5,423.5但是半个像素是无关紧要的)。
出乎意料的大错误似乎呈指数级增长:
有趣的是,红色趋势线的截距非常接近零,这意味着Z焦点离玻璃不远。
所以,将这个问题与我的相关焦点问题合并,https://communities.intel.com/thread/128141
根据这些数据,Z焦点在哪里?为什么误差随距离增加?     
D435RangeProblem.xlsx 
32.0 K.

以上来自于谷歌翻译


以下为原文

I've repeated the experiment, logging every measurement, with its timestamp, see attached .XLS.
The true distances 500, 1'000, 1'500 etc are measured from the camera's glass, with a steel ruler.
Here's a screenshot of my test harness whilst measuring at 1'500mm:

FYI, at the bottom, you can see the values for column 424 at 1'000mm; the floor is flat out to 1 metre and then the Y increases almost vertically as expected, indicating the wooden target.
The red cross indicates where the obstacle is, I.E. the first pixel where the next pixel is >30mm higher.
 
The measurements are the raw range values at row 240 column 424, the centre of the camera (the true camera centre is actually 239.5, 423.5 but half a pixel is insignificant).
 
The unexpectedly large error seems to increase exponentially:

Interestingly, the intercept of the red trend line is very close to zero, which implies that the Z focal point isn't far from the glass.
 
So, merging this question with my related focal-point question, https://communities.intel.com/thread/128141
 

  • From this data, where is the Z focal point?
  • Why does the error increase with range?


举报

更多回帖

发帖
×
20
完善资料,
赚取积分