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!

Citation