我正在使用具有以下信息的对象细分数据集:
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
我正在尝试使用数据集提供的深度图。但是,深度图似乎是完全黑色的。
上面的深度图的原始图像
我尝试进行一些预处理并对图像进行归一化,以便可以以灰色图像的形式可视化深度图。
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)
进行此预处理的结果是:
在stackoverflow的其中一篇文章中,我读到这些黑色补丁是未定义深度图的区域。
如果必须使用此深度图,填充这些未定义区域的最佳方法是什么? (我正在考虑用K近邻来填充这些区域,但感觉可能有更好的方法)。
是否存在不存在此类问题的RGB-D数据集,或者始终存在此类问题?解决此类问题的最佳方法是什么?
提前致谢!
最佳答案
几乎每种3d成像技术都会产生具有无效或缺失点的数据。缺乏质感,过于陡峭的坡度,遮盖力,透明性,反射……等等。
填补这些漏洞并没有神奇的解决方案。您将需要某种插值,或者您可能基于某种模型来替换缺失点。
互联网充满了填补漏洞的方法。大多数用于强度图像的技术都可以成功地应用于深度图像。
这将取决于您的应用程序,您的要求以及您对对象的了解。
3d中的数据质量是时间,金钱以及对象和技术的正确组合的问题。