我正在使用具有以下信息的对象细分数据集:

Introduced: IROS 2012

Device: Kinect v1

Description: 111 RGBD images of stacked and occluding objects on table.

Labelling: Per-pixel segmentation into objects.

页面链接:http://www.acin.tuwien.ac.at/?id=289

我正在尝试使用数据集提供的深度图。但是,深度图似乎是完全黑色的。 python - 如何在kinect v1深度图像中填充黑色补丁-LMLPHP

上面的深度图的原始图像
python - 如何在kinect v1深度图像中填充黑色补丁-LMLPHP

我尝试进行一些预处理并对图像进行归一化,以便可以以灰色图像的形式可视化深度图。
img_depth = cv2.imread("depth_map.png",-1) #depth_map.png has uint16 data type
depth_array = np.array(img_depth, dtype=np.float32)
frame = cv2.normalize(depth_array, depth_array, 0, 1, cv2.NORM_MINMAX)
cv2.imwrite('capture_depth.png',frame*255)

进行此预处理的结果是:
python - 如何在kinect v1深度图像中填充黑色补丁-LMLPHP

在stackoverflow的其中一篇文章中,我读到这些黑色补丁是未定义深度图的区域。

如果必须使用此深度图,填充这些未定义区域的最佳方法是什么? (我正在考虑用K近邻来填充这些区域,但感觉可能有更好的方法)。

是否存在不存在此类问题的RGB-D数据集,或者始终存在此类问题?解决此类问题的最佳方法是什么?

提前致谢!

最佳答案

几乎每种3d成像技术都会产生具有无效或缺失点的数据。缺乏质感,过于陡峭的坡度,遮盖力,透明性,反射……等等。

填补这些漏洞并没有神奇的解决方案。您将需要某种插值,或者您可能基于某种模型来替换缺失点。

互联网充满了填补漏洞的方法。大多数用于强度图像的技术都可以成功地应用于深度图像。

这将取决于您的应用程序,您的要求以及您对对象的了解。

3d中的数据质量是时间,金钱以及对象和技术的正确组合的问题。

10-08 08:43