对齐捕获的深度和rgb图像

时间:2013-02-27 13:26:30

标签: matlab alignment kinect rgb depth

之前有一些问题(hereherehere)与我的问题相关,但我的问题有不同的方面,我在其中没有看到过之前提出的问题。

我使用Kinect深度传感器为我的研究获得了一个数据集。此数据集的格式为.png图像,用于特定时刻的深度和rgb流。为了让您更多地了解下面的框架:

RGB Image

Depth Image

编辑: 我在这里添加边缘检测输出。

Sobel Edge检测输出:

  1. RGB图像 Edge RGB

  2. 深度图片 Edge Depth

  3. 现在我要做的是对齐这两个帧以给我一个组合的RGBZ图像。

    我不了解潜在的相机特性或rgb和红外传感器之间的距离。

    是否有一种方法可用于将RGB值与相应的Z值相匹配?

    我的一个想法是在两个图像中使用边缘并尝试匹配它们。

2 个答案:

答案 0 :(得分:4)

这适用于遇到同样问题的人。我认为分享我发现的内容可能会有所帮助。

根据Bill的通知,相机校准是解决此问题的最佳方法。

然而我发现,使用单应性和极线可以使图像对齐。这需要两个图像中至少8个匹配功能。处理深度图像时这是一个难题。

有几次尝试校准这些图像,herehere都需要校准图案进行校准。我试图实现的是对齐已经捕获的深度和rgb图像,这可以通过我从我用来记录的同一个kinect传感器校准参数来完成。

我发现解决此问题的最佳方法是使用OpenNIKinect SDK中的内置库函数对齐两个图像。

答案 1 :(得分:1)

一般来说,你想要从一对RGB和深度图像中做的事情是非平凡的和不明确的。作为人类,我们识别RGB图像中的手臂,并且能够将其与更靠近相机的深度图像区域相关联。但是,计算机没有预先知道RGB图像的哪些部分与深度图像的哪些部分相对应。

这种对齐的大多数算法使用相机校准的原因是这个过程允许这个不适定的问题变得适当。

然而,可能仍有办法找到对应关系,特别是如果您有来自同一Kinect的大量图像对。然后,您只需要搜索一组转换参数。我不知道有任何现有算法可以做到这一点,但正如您在问题中所指出的那样,您可能会发现在两个图像上进行边缘检测并尝试将边缘图像对齐起点的好地方。

最后,请注意,当物体接近Kinect时,即使在校准了图像之后,RGB和深度图像之间的对应也会变差。您可以在图像中看到一些此效果 - 手在示例深度图像中显示的“阴影”在某种程度上表明了这一点。