ItG-GS
October 20, 2025 ยท View on GitHub
Our default installation method is based on Conda package and environment management, allowing you to install the dependencies by:
conda env create --file environment.yml
conda activate ItG-GS
Dataset Preparation and Initialization
In this work, we select the train/test set in LLFF and Mip-NeRF360 datasets. Of course, you can also use your own captured datasets. Following the conventions of sparse-view settings, Camera poses are assumed to be known based on full-view estimation or other methods, located in the directory corresponding to the dataset. Our experiments use community standards train-test split, i.e., select every eighth image as the testing view, and evenly sample sparse views from the remaining images for training.
Step 1
Download and place the dataset in <datadir>, copy the corresponding scenario's .json file from the /split directory into <datadir>, and prepare as follows:
<datadir>
|---<scene1>
| |---images
| | |---...
| |---sparse
| | |---0
| | |---...
| |---poses_bounds.npy
| |---split_index.json
|---<scene2>
|...
Step 2
Run augmentation.py to get frequency-aware regions, which are placed under <datadir>/images with the same naming convention as images:
python augmentation.py
Step 3
Combine images and frequency-aware regions with same poses, running run_colmap.py to generate a fine pointcloud, which is alse located in <datadir>/<scene>/sparse/0:
python run_colmap.py # 3 for LLFF, 12 for MipNeRF360
Step 4
Run trainmask_360.py to generate a 3DGS pointcloud:
python trainmask_360.py -s <datadir>/<scene> --model_path <datadir>/<scene>/output -r 4 --seed 3 --pc_name points3D_12views_aug --eval #12 for MipNeRF360
Step 5
Run pointfuse.py to merge and fuse the point clouds from COLMAP and 3DGS:
python pointfuse.py
Running
For training, we optimize for 5000 iterations, simply use:
python train.py -s <datadir>/<scene> --model_path <datadir>/<scene>/output -r 4 --seed 3 --pc_name points3D_12views_final --eval # Train with train/test set
Additionally, we could introduce depth regularization by adding --depth and --usedepthReg, which are the same as DRGS:
python train.py -s <datadir>/<scene> --model_path <datadir>/<scene>/output -r 4 --seed 3 --pc_name points3D_12views_final --eval
Acknowledgement
Our code is built upon the foundation of following works, and we would like to thank the team for their valuable contributions!