SuLvXiangXin / multinerf-pytorch

30 stars 8 forks source link

internal/dataset.py #1

Open Miner-AI opened 1 year ago

Miner-AI commented 1 year ago

hi! Appreciate your implementation!

I have a question about the dataset.py: in class LLFF: method _load_renderings, the following codes would cause error:Image folder images_4 does not exist.

colmap_image_dir = os.path.join(self.data_dir, 'images')
            image_dir = os.path.join(self.data_dir, 'images' + image_dir_suffix)
            for d in [image_dir, colmap_image_dir]:
                if not utils.file_exists(d):
                    raise ValueError(f'Image folder {d} does not exist.')

To run the code, I delete the image_dir in code, and the training render result is poor, does it related to the image_4?

Thanks a lot!

SuLvXiangXin commented 1 year ago

@Miner-AI If you want to train your model with images which are downsampled by 4, you need to have images_4 exists. You can checkout https://github.com/SuLvXiangXin/multinerf-pytorch/blob/main/scripts/local_colmap_and_resize.sh for preparing your own dataset. Or you can simply specify --gin_bindings="Config.factor = 0" to run without downsampling.

SuLvXiangXin commented 1 year ago

By the way, I have implemented another powerful method called "Zipnerf", which is available at https://github.com/SuLvXiangXin/zipnerf-pytorch

Miner-AI commented 1 year ago

Thank u for reply! I have another question about internal/coord.py. When I try to use llff_raw.gin to train on rawnerf's data, I met an error about the method construct_ray_warps(internal/coord.py), it is caused by missing definition of Model.raydist_fn in configs/llff_raw.gin(which in 360.gin, Model.raydist_fn = @torch.reciprocal). How can I solve this problem?

appreciate your reply!thanks a lot!

SuLvXiangXin commented 1 year ago

I tested rawnerf can run through. Because this repo simply translates the official jax version into pytorch for implementing zipnerf, it has not studied the principle of rawnerf in depth. It is okay to not define model.raydist_fn in llff_raw.gin, which means that sampling on rays is simply equidistant sampling instead of reciprocal. If you are interested in this project, you can also pull request to improve it. If you encounter any other errors , please post the error message in the issue