首页 > 解决方案 > 如何从嵌入 iphone 肖像图片的深度数据中计算距离值?

问题描述

我正在开发一个从深度数据重建点云的应用程序。我尝试使用一些智能手机拍摄的人像图像中嵌入的深度数据。

到目前为止,我在 Google 相机应用照片方面取得了进展。它具有详细记录的深度格式(https://developer.android.com/training/camera2/Dynamic-depth-v1.0.pdf)。

我还可以通过将 ios 肖像图片上传到https://www.photopea.com/或使用 exiftool 来提取与深度相关的数据。这是嵌入数据的预览:

嵌入深度图像

不幸的是,我无法确定编码到该嵌入图像的实际距离值。

xmp 元数据中似乎有编码相关信息,例如

Stored Format = 'L008' // one component 8 bit
Native Format = 'hdis' // half precision floating point disparity
Depth Data Version = 125537 // varies
Int min value = 0
Int max value = 255
Float Min Value // for example 1.23
Float Max Value // for example 2.12

我尝试插入图像数据值并将其用作差异,就像谷歌相机一样

distance_to_camera = constant * 1.0 / (Float_Max_Value * pixel / 255 + Float_Min_Value * (1 - pixel / 255))

但它会导致点云严重失真。我认为这很可能是不正确的深度数据解释。

标签: iosiphonecomputer-visionpoint-cloudsdepth

解决方案


如果您仅在深度图上获取点云,那么您不需要实际的相机-物体距离。您可以使用一些可视化库直接生成点云。我推荐Vedo

然后,如果您需要该距离信息,则需要获取您的相机参数。查看OpenCV 关于相机校准的教程


推荐阅读