kinect中的深度相机有多精确?
特别是我想知道:
我现在正在收集大约一天的数据,但大部分作者都没有说明他们的来源,而且价值似乎差别很大......
答案 0 :(得分:24)
传感器开发人员有官方规格,而不是微软。还没有我知道的科学论文。大量的调查和实验(见谷歌)。 OpenKinect目前对这些内容的讨论比这个网站要多得多。
答案 1 :(得分:12)
Kinect for Windows SDK提供了一些我一直在使用并且似乎一致的常量。对于范围和分辨率,这些值为:
在默认模式下:
近距离模式:
对于彩色相机,您可能具有以下任一分辨率:
对于深度相机,您可能具有以下任一分辨率:
面对来自Avada Kedavra(以及大多数来源)的信息,API提供的视野的值如下:
对于彩色相机:
对于深度相机:
答案 2 :(得分:7)
这里真正的问题是关于分辨率和精确度。我在这里筹码,因为我发现分辨率和精度不如说明的那么好。深度分辨率的最大输出确实是640x480,然而,这不是有效的分辨率,而且这并不完全是多么精确。
kinect工作的方法基于结构光投影。发光并在相机看到的表面上投射光线,然后将来自原点的每条光线三角测量,从物体反射回相机。
问题在于,这种模式仅包含34.749个可以三角测量的亮点(http://azttm.wordpress.com/2011/04/03/kinect-pattern-uncovered/)。如果我们将其与640x480 = 307.200数据点的分辨率联系起来,我们会发现一个很大的区别。问问自己,数据量是源数据点数量的10倍,是否有效,并且有效采样。我对此表示怀疑。如果你问我kinect的有效分辨率是什么,我猜它是 240x180 的诚实和非常好的数据。
答案 3 :(得分:5)
根据Kinect tech spec finally revealed深度字段的规格(这些匹配也在Mannimarco发布的官方节目指南中确认):
* Horizontal field of view: 57 degrees
* Vertical field of view: 43 degrees
* Physical tilt range: ± 27 degrees
* Depth sensor range: 1.2m - 3.5m
* Resolution depth stream: 320x240 pixels
* Resolution color stream: 640x480 pixels
但根据我自己的经验,深度传感器范围更像是0.8m-4.0m
,至少我在这个范围内读得很好。此范围与mankoff在下面的评论中发布的Primesense数据表相匹配。
同样重要的是要记住,靠近传感器的深度分辨率远远高于远处。在3-4米处,分辨率不如1.5米那么好。例如,如果您想要计算曲面的法线,这就变得很重要。结果将更接近传感器而不是更远。
自己不难测试范围。当您超出范围时,官方SDK(当前测试版)将为您提供零(0)深度。所以,你可以用一个简单的标尺对它进行测试,并测试你得到的距离/没有任何大于零的读数。我不知道OpenKinect SDK如何处理超出范围的读数。
关于噪音的评论:我会说深度流中存在相当多的噪音,这使得它更难以使用。例如,如果您计算表面法线,您可以预期它们会有点“跳跃”,这当然会对假照明等产生负面影响。此外,由于红外发射器之间的距离,您在深度流中会出现视差问题和接收器。这也很难处理,因为它在深度数据中留下了一个大的“阴影”。 This youtube video演示了该问题,并讨论了使用着色器解决问题的方法。这是一个值得关注的视频。
答案 4 :(得分:2)
我认为值得一提的是Khoshelham和Elbernik的论文,他在12年2月提出了kinects深度传感器的理论随机误差模型。它被称为“室内地图应用的Kinect深度数据的精度和分辨率”。 可以找到该论文here。
答案 5 :(得分:1)
如果您正在寻找Microsoft发布的内容,请查看Kinect Programming Guide的第11页。它说的几乎每个人都已经提到了这一点。
我没有看到任何提及噪音的东西,但我可以说这是非常小的,除了表面边缘,它可以变得更加明显。
答案 6 :(得分:1)
我的经验是,它不是那么精确。 它非常好,但是当你把它与卷尺比较时 然后它不完全匹配。 我做了一个Excel,测量每10毫米,它只是没有保持,特别是超过2500毫米的东西,但更接近。 还要记住,实际深度像素比广告要低很多。内部的电子元件充满了喘气,这就是为什么你会看到小区域的伪像,而不是像素数据。实质上,这意味着320x240具有由“实际”测量覆盖的1/8像素,计算其他像素。所以你可以使用640x480;但它只会占用CPU / UBS资源,不会让你的应用程序看得更清楚。
好吧,这只是我2美分的经验,我正在编程机器人。