MoGe icon indicating copy to clipboard operation
MoGe copied to clipboard

train.md要求准备的深度图是png格式,但是我运行train.py后却显示因为png格式没有"near""far"出错了

Open lzppp-zsq opened this issue 4 months ago • 2 comments

感谢开源,作者你好~ 我下载的TUM数据集,后按照训练要求做好了数据集的格式,但是在运行train.py之后,却因为读不到深度图的“near”和“far”属性,导致读取深度图失败了,请问这是我数据集来源的问题吗? 另外我还想请问一下,我的meta.json文件中,内参矩阵中带负数,对于运行代码有影响吗?因为我在运行train的dataloader的板块

6.1 The image and depth are resized first to approximately the same pixel size as the target image with PIL's antialiasing resampling下的代码

image = np.array(Image.fromarray(image).resize((rescaled_w, rescaled_h), Image.Resampling.LANCZOS))的时候,它如此提示 Exception has occurred: ValueError height and width must be > 0

望您回复,谢谢。若我提问并不清楚,也请您联系我。

lzppp-zsq avatar Aug 26 '25 08:08 lzppp-zsq

您好!训练使用的深度图是特定格式的16bit png,存储的是缩放到了 1~65534 之间的log(depth)值,同时将 near 和 far 存储到png的元数据中用于恢复线性深度。您可以参考moge/utils/io.py中的 read_depth 和 write_depth 函数。确保得到(H, W)float32线性深度,无效的深度值填np.nan,无穷远深度填np.inf,再用write_depth保存,即可存成对应的格式。 一般内参矩阵的参数都是正的。如果是cx cy 有负数的话,大概只是光轴比较极端,不在图像内了,这种问题不大。fx fy是负数会出问题,这一般不太可能,除非图像坐标的原点没有定义在左上角,或是外参的旋转被混入到了内参中,这种情况可以尝试直接对fx fy取反,再反投影成点云检查一下。

EasternJournalist avatar Sep 20 '25 08:09 EasternJournalist

感谢回复!谢谢!

lzppp-zsq avatar Oct 11 '25 04:10 lzppp-zsq

您好,请问如何制作深度图数据呢?这部分代码有没有开源哇

zzh-yun avatar Dec 12 '25 07:12 zzh-yun