TQTQliu / MVSGaussian

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

train colmap data? #14

Closed chenqi13814529300 closed 4 months ago

chenqi13814529300 commented 4 months ago

image After the demo (Custom Data), I obtained the following data. How do I execute train_net.cy? Your subsequent examples are a bit unclear

TQTQliu commented 4 months ago

We only provide commands in the readme to inference on custom data using our pre-trained model, if you need training, you can execute the following commands:

python train_net.py --cfg_file configs/mvsgs/colmap_eval.yaml train_dataset.data_root examples/scene1 test_dataset.data_root examples/scene1

You can also specify batchsize:

python train_net.py --cfg_file configs/mvsgs/colmap_eval.yaml train_dataset.data_root examples/scene1 test_dataset.data_root examples/scene1 train.batch_size 2

Note that we updated the lib/datasets/colmap/mvsgs.py file by adding two lines of code to ensure that the test view is not visible when training.

chenqi13814529300 commented 4 months ago

image image I followed your method, but there were some errors. I hope you can give me some help.

chenqi13814529300 commented 4 months ago

image I only changed this sentence in the entire source code.Because my image suffix is JPG.

TQTQliu commented 4 months ago

Your modification may be inappropriate, consider replacing it with:

img_paths = sorted([item for item in os.listdir(os.path.join(self.data_root, 'images')) if ('.png' in item) or ('.jpg' in item) or ('.JPG' in item)])
TQTQliu commented 4 months ago

('.JPG' or '.png'or '.jpg') is equivalent to '.JPG', but your image suffix is indeed JPG, so I suspect this error may be caused by environmental issues, can you successfully run our data?

chenqi13814529300 commented 4 months ago

scene2 is your data (images) python lib/colmap/imgs2poses.py -s examples/scene2 Running successfully python run.py --type evaluate --cfg_file configs/mvsgs/colmap_eval.yaml test_dataset.data_root examples/scene2 Running successfully python train_net.py --cfg_file configs/mvsgs/colmap_eval.yaml train_dataset.data_root examples/scene2 test_dataset.data_root examples/scene2 Running fail

TQTQliu commented 4 months ago

We re-clone the repo and can run the above three commands successfully. Can you post your environment (Python version, pip/conda environment, etc.)? That might help narrow down the issue.

chenqi13814529300 commented 4 months ago

Name Version Build Channel

av 10.0.0 pypi_0 pypi backcall 0.2.0 pypi_0 pypi ca-certificates 2024.3.11 haa95532_0
certifi 2022.12.7 py37haa95532_0
charset-normalizer 3.3.2 pypi_0 pypi colorama 0.4.6 pypi_0 pypi cycler 0.11.0 pypi_0 pypi decorator 5.1.1 pypi_0 pypi diff-gaussian-rasterization 0.0.0 pypi_0 pypi fonttools 4.38.0 pypi_0 pypi idna 3.7 pypi_0 pypi imageio 2.27.0 pypi_0 pypi imageio-ffmpeg 0.5.1 pypi_0 pypi imgaug 0.4.0 pypi_0 pypi ipdb 0.13.13 pypi_0 pypi ipython 7.34.0 pypi_0 pypi jedi 0.19.1 pypi_0 pypi kiwisolver 1.4.5 pypi_0 pypi kornia 0.6.12 pypi_0 pypi lpips 0.1.4 pypi_0 pypi matplotlib 3.5.3 pypi_0 pypi matplotlib-inline 0.1.6 pypi_0 pypi networkx 2.6.3 pypi_0 pypi numpy 1.21.6 pypi_0 pypi opencv-python 4.10.0.84 pypi_0 pypi openssl 1.1.1w h2bbff1b_0 packaging 24.0 pypi_0 pypi parso 0.8.4 pypi_0 pypi pickleshare 0.7.5 pypi_0 pypi pillow 9.5.0 pypi_0 pypi pip 22.3.1 py37haa95532_0 plyfile 0.9 pypi_0 pypi prompt-toolkit 3.0.47 pypi_0 pypi protobuf 4.24.4 pypi_0 pypi psutil 6.0.0 pypi_0 pypi pygments 2.17.2 pypi_0 pypi pyparsing 3.1.2 pypi_0 pypi python 3.7.13 h6244533_1 python-dateutil 2.9.0.post0 pypi_0 pypi pywavelets 1.3.0 pypi_0 pypi pyyaml 6.0.1 pypi_0 pypi requests 2.31.0 pypi_0 pypi scikit-image 0.19.0 pypi_0 pypi scipy 1.7.3 pypi_0 pypi setuptools 65.6.3 py37haa95532_0 shapely 2.0.4 pypi_0 pypi simple-knn 0.0.0 pypi_0 pypi six 1.16.0 pypi_0 pypi sqlite 3.45.3 h2bbff1b_0 tensorboardx 2.6.2.2 pypi_0 pypi termcolor 2.3.0 pypi_0 pypi tifffile 2021.11.2 pypi_0 pypi tomli 2.0.1 pypi_0 pypi torch 1.13.1+cu116 pypi_0 pypi torchaudio 0.13.1+cu117 pypi_0 pypi torchvision 0.14.1+cu116 pypi_0 pypi tqdm 4.66.4 pypi_0 pypi traitlets 5.9.0 pypi_0 pypi typing-extensions 4.7.1 pypi_0 pypi urllib3 2.0.7 pypi_0 pypi vc 14.2 h2eaa2aa_4 vs2015_runtime 14.29.30133 h43f2093_4 wcwidth 0.2.13 pypi_0 pypi wheel 0.38.4 py37haa95532_0 wincertstore 0.2 py37haa95532_2

image image

chenqi13814529300 commented 4 months ago

I have reproduced Gaussian, AtomGS, 2DGS, Gaussian Pro, and others before, all of which can run normally. I am not sure why I was unable to successfully reproduce this excellent paper.I hope you can give me some advice.

chenqi13814529300 commented 4 months ago

image

TQTQliu commented 4 months ago

Hello, I have carefully looked at your environment and found that there is no problem.

The cause of this error may be that multiprocessing is not supported on Windows. You can: 1) Set num_workers = 0. You can modify num_workers here, which will slow down training compared to multiple num_workers. 2) Use Linux.

chenqi13814529300 commented 4 months ago

Thank you very much. I can train normally by setting numw_workers= 0.

chenqi13814529300 commented 4 months ago

image It's strange, I've been training scenario 2 for 4 hours. Is this normal? If it's not normal, what's going on?

TQTQliu commented 4 months ago

This is because the default number of epoches for training is 300. You can modify it here. In addition, we noticed that you did not modify exp_name, using the default 'dtu_pretrain', during training, the code will first check whether there is checkpoint in trained_model/mvsgs/exp_name, if there is, it will load latest.pth. So if your exp_name is 'dtu_pretrain', the model will load the weight of trained_model/mvsgs/dtu_pretrain/latest.pth, and then continue training. If you want to train our model on your own data from scratch, you will need to change exp_name to something else. Of course, if you just want to fine-tune model, it's fine to do so. Just a reminder ~

Maxwell2016LeChouchou commented 2 months ago

image image I followed your method, but there were some errors. I hope you can give me some help.

I have same issues when I was using windows, can you share how did you solve the problem?