TQTQliu / MVSGaussian

[ECCV 2024] MVSGaussian: Fast Generalizable Gaussian Splatting Reconstruction from Multi-View Stereo
https://mvsgaussian.github.io/
MIT License
406 stars 21 forks source link

About the ply file #49

Open ZhenyuSun-Walker opened 2 months ago

ZhenyuSun-Walker commented 2 months ago

Hello sir, I'm sorry to bother you. But I found that it can be tricky to adjust the ply file format to match the dataset_reader of your model. Which kind of .ply file can be processed by MVSGS? I'm quite confused with that.

TQTQliu commented 1 month ago

Hi, the point cloud obtained by colmap can be also used as initialization. I'm not quite sure why your point cloud doesn't work, perhaps you could provide some additional information.

ZhenyuSun-Walker commented 1 month ago

Actually, I use the ply generated from the Dust3R, however, I cannot find the exact difference between its ply file and the ply file generated from your work.

TQTQliu commented 1 month ago

The dtype of a point cloud should contain the following items:

# Define the dtype for the structured array
    dtype = [('x', 'f4'), ('y', 'f4'), ('z', 'f4'),
            ('nx', 'f4'), ('ny', 'f4'), ('nz', 'f4'),
            ('red', 'u1'), ('green', 'u1'), ('blue', 'u1')]

I suspect that the point cloud obtained through Dust3R is missing certain properties, which you can check.

Or you can share the point cloud saving code of dust3r with me, and I'll be also happy to check it out for you.

ZhenyuSun-Walker commented 1 month ago

Thanks for your suggestions! Maybe we can have further communications by email.

TQTQliu commented 1 month ago

No problem, if you have further questions, feel free to contact me (tq_liu@hust.edu.cn).

ZhenyuSun-Walker commented 1 month ago

Actually, I used the InstantSplat to help convert the pointcloud file (which is glb. format) from Dust3R into ply format, but things went strange when it comes to read the ply file with dataset_reader of mvsgs, but the ply file can be read by InstantSplat. And I have checked the dataset_reader code of InstantSplat, and the following part `

Define the dtype for the structured array

dtype = [('x', 'f4'), ('y', 'f4'), ('z', 'f4'),
        ('nx', 'f4'), ('ny', 'f4'), ('nz', 'f4'),
        ('red', 'u1'), ('green', 'u1'), ('blue', 'u1')]

·

is actually the same.

ZhenyuSun-Walker commented 1 month ago

No problem, if you have further questions, feel free to contact me (tq_liu@hust.edu.cn).

OK, I'll contact you through that .

TQTQliu commented 1 month ago

Actually, I used the InstantSplat to help convert the pointcloud file (which is glb. format) from Dust3R into ply format, but things went strange when it comes to read the ply file with dataset_reader of mvsgs, but the ply file can be read by InstantSplat. And I have checked the dataset_reader code of InstantSplat, and the following part `

Define the dtype for the structured array

dtype = [('x', 'f4'), ('y', 'f4'), ('z', 'f4'),
        ('nx', 'f4'), ('ny', 'f4'), ('nz', 'f4'),
        ('red', 'u1'), ('green', 'u1'), ('blue', 'u1')]

·

is actually the same.

Okay, I'll check it out later.