Closed Li0317 closed 12 months ago
还有readme文档中的gif图片是如何生成的
抱歉忘记回了。 Mean absolute depth error先计算估计的depth map和GT depth map的median offset,对估计的depth map用这个offset纠正后再计算其和GT depth map的made。 参考代码如下
offset = np.nanmedian(depth_gt - depth_est)
offset_depth = depth_est + offset
absolute_difference_map = np.abs(offset_depth - depth_gt)
made = np.nanmean(absolute_difference_map)
gif图片我是用Pyvista这个包对迭代中每一步出来的mesh从固定视角渲染后拼起来的。
谢谢您的回复,我发现DiLiGenT数据集中并没有相关的GT depth map 同时我注意到代码中给出的K矩阵和DiLiGenT中给出的K矩阵的数据位置不一样,(上为您代码中的K矩阵,下为DiLiGenT中的K矩阵),请问为何要这样处理
你可以在这里下载GT depth map。 https://www.dropbox.com/scl/fi/uhg8538lr43h2g2arim2l/diligent_depth_GT.zip?rlkey=4qdmse25e0lmrtbo9bsfvifk1&dl=0 并参考以下代码读取
xyz = scipy.io.loadmat(“*.mat")["XYZ”]
depth_gt = xyz[..., 2]
depth_gt[depth_gt > 2000] = np.nan
K不一样是因为Diligent的相机坐标系和我们有区别。 Diligent 是x右y下。 在积分的时候我们用的是x上y右。 严格来讲还需要对255.875那一项变成(511-255.875), 因为竖直方向的坐标轴方向变了,principle point的坐标也要相应变换。 这个是写代码时粗糙了,不过出来的结果几乎没有区别。
另外在diligent这个perspective情况下,evaluation代码需要变更为
scale = np.nanmedian(depth_gt / depth_est)
scaled_depth = depth_est * scale
absolute_difference_map = np.abs(scaled_depth - depth_gt)
made = np.nanmean(absolute_difference_map)
刚更新了diligent上的evaluation代码。参考文档 https://github.com/xucao-42/bilateral_normal_integration#evaluation-on-diligent-benchmark
希望有帮助。
我想知道MADEs计算的细节,以及是如何进行计算的