Kudos to the authors and their great work!
I ran this repository on my gpu (RTX 5000 Ada) and found result mismatches.
Could you please provide me some advice for this issue? @cskrren
I reproduced following result using the following commands, which are simply flattened script from train_mipnerf360, train_db, and train_tandt:
CUDA_VISIBLE_DEVICES=0 python train.py -s data/mipnerf360/bicycle -m output/Octree-GS/mipnerf360/bicycle --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=0 python train.py -s data/mipnerf360/flowers -m output/Octree-GS/mipnerf360/flowers --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=0 python train.py -s data/mipnerf360/garden -m output/Octree-GS/mipnerf360/garden --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=1 python train.py -s data/mipnerf360/stump -m output/Octree-GS/mipnerf360/stump --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=1 python train.py -s data/mipnerf360/treehill -m output/Octree-GS/mipnerf360/treehill --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=1 python train.py -s data/mipnerf360/room -m output/Octree-GS/mipnerf360/room --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/mipnerf360/counter -m output/Octree-GS/mipnerf360/counter --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/mipnerf360/kitchen -m output/Octree-GS/mipnerf360/kitchen --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/mipnerf360/bonsai -m output/Octree-GS/mipnerf360/bonsai --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold -1 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/tandt/truck -m output/Octree-GS/tandt/truck --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=3 python train.py -s data/tandt/train -m output/Octree-GS/tandt/train --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 10 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=3 python train.py -s data/db/drjohnson -m output/Octree-GS/db/drjohnson --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=3 python train.py -s data/db/playroom -m output/Octree-GS/db/playroom --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
| Name |
anchors |
PSNR |
SSIM |
LPIPS |
| bicycle (-1/10) |
726881 |
25.046 |
0.749 |
0.244 |
| bicycle (readme) |
701000 |
25.140 |
0.753 |
0.238 |
| bicycle delta |
25881 |
-0.094 |
-0.004 |
0.006 |
| bonsai (-1/10) |
174325 |
31.855 |
0.936 |
0.194 |
| bonsai (readme) |
474000 |
33.410 |
0.953 |
0.169 |
| bonsai delta |
-299675 |
-1.555 |
-0.017 |
0.025 |
| counter (-1/10) |
207241 |
29.703 |
0.916 |
0.183 |
| counter (readme) |
457000 |
30.300 |
0.926 |
0.166 |
| counter delta |
-249759 |
-0.597 |
-0.010 |
0.017 |
| flowers (-1/10) |
515652 |
21.272 |
0.585 |
0.358 |
| flowers (readme) |
726000 |
21.470 |
0.598 |
0.342 |
| flowers delta |
-210348 |
-0.198 |
-0.013 |
0.016 |
| garden (-1/10) |
651150 |
27.473 |
0.856 |
0.123 |
| garden (readme) |
1344000 |
27.690 |
0.860 |
0.119 |
| garden delta |
-692850 |
-0.217 |
-0.004 |
0.004 |
| kitchen (-1/10) |
174431 |
31.101 |
0.923 |
0.130 |
| kitchen (readme) |
793000 |
31.760 |
0.933 |
0.115 |
| kitchen delta |
-618569 |
-0.659 |
-0.010 |
0.015 |
| room (-1/10) |
235299 |
32.299 |
0.933 |
0.179 |
| room (readme) |
377000 |
32.530 |
0.937 |
0.171 |
| room delta |
-141701 |
-0.231 |
-0.004 |
0.008 |
| stump (-1/10) |
432509 |
26.492 |
0.763 |
0.256 |
| stump (readme) |
467000 |
26.610 |
0.763 |
0.265 |
| stump delta |
-34491 |
-0.118 |
0.000 |
-0.009 |
| treehill (-1/10) |
493958 |
23.018 |
0.649 |
0.323 |
| treehill (readme) |
545000 |
23.190 |
0.645 |
0.347 |
| treehill delta |
-51042 |
-0.172 |
0.004 |
-0.024 |
| drjohnson (0.9/12) |
206328 |
29.576 |
0.902 |
0.252 |
| drjohnson (readme) |
132000 |
29.890 |
0.911 |
0.234 |
| drjohnson delta |
74328 |
-0.314 |
-0.009 |
0.018 |
| playroom (0.9/12) |
150971 |
30.687 |
0.907 |
0.253 |
| playroom (readme) |
93000 |
31.080 |
0.914 |
0.246 |
| playroom delta |
57971 |
-0.393 |
-0.007 |
0.007 |
| train (0.9/10) |
279722 |
22.953 |
0.836 |
0.184 |
| train (readme) |
446000 |
23.040 |
0.837 |
0.184 |
| train delta |
-166278 |
-0.087 |
-0.001 |
0.000 |
| truck (0.9/10) |
242863 |
26.088 |
0.887 |
0.129 |
| truck (readme) |
401000 |
26.170 |
0.892 |
0.127 |
| truck delta |
-158137 |
-0.082 |
-0.005 |
0.002 |
(-1/10) means --visible_threshold -1 --base_layer 10, which is default values in train_mipnerf360.sh. When comparing the results with those reported in this repo's readme, most scenes fail to match the #Anchors/PSNR/SSIM/LPIS.
I also tried another hyperparameter setting, where visible_threshold=0.9 and base_layer=12. This brings better rendering quality but still have a gap compared to the reported in the paper.
CUDA_VISIBLE_DEVICES=0 python train.py -s data/mipnerf360/bicycle -m output/Octree-GS/mipnerf360/bicycle --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=0 python train.py -s data/mipnerf360/flowers -m output/Octree-GS/mipnerf360/flowers --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=0 python train.py -s data/mipnerf360/garden -m output/Octree-GS/mipnerf360/garden --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=1 python train.py -s data/mipnerf360/stump -m output/Octree-GS/mipnerf360/stump --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=1 python train.py -s data/mipnerf360/treehill -m output/Octree-GS/mipnerf360/treehill --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=1 python train.py -s data/mipnerf360/room -m output/Octree-GS/mipnerf360/room --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/mipnerf360/counter -m output/Octree-GS/mipnerf360/counter --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/mipnerf360/kitchen -m output/Octree-GS/mipnerf360/kitchen --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/mipnerf360/bonsai -m output/Octree-GS/mipnerf360/bonsai --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=2 python train.py -s data/tandt/truck -m output/Octree-GS/tandt/truck --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=3 python train.py -s data/tandt/train -m output/Octree-GS/tandt/train --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=3 python train.py -s data/db/drjohnson -m output/Octree-GS/db/drjohnson --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
CUDA_VISIBLE_DEVICES=3 python train.py -s data/db/playroom -m output/Octree-GS/db/playroom --eval -r -1 --fork 2 --ratio 1 --iterations 40_000 --appearance_dim 0 --visible_threshold 0.9 --base_layer 12 --dist2level round --update_ratio 0.2 --progressive --levels -1 --init_level -1 --dist_ratio 0.999 --extra_ratio 0.25 --extra_up 0.01
| Name |
anchors |
PSNR |
SSIM |
LPIPS |
| bicycle (0.9/12) |
940442 |
25.069 |
0.753 |
0.232 |
| bicycle (readme) |
701000 |
25.140 |
0.753 |
0.238 |
| bicycle delta |
239442 |
-0.071 |
0.000 |
-0.006 |
| bonsai (0.9/12) |
298633 |
33.302 |
0.951 |
0.172 |
| bonsai (readme) |
474000 |
33.410 |
0.953 |
0.169 |
| bonsai delta |
-175367 |
-0.108 |
-0.002 |
0.003 |
| counter (0.9/12) |
384784 |
30.266 |
0.925 |
0.165 |
| counter (readme) |
457000 |
30.300 |
0.926 |
0.166 |
| counter delta |
-72216 |
-0.034 |
-0.001 |
-0.001 |
| flowers (0.9/12) |
701459 |
21.423 |
0.596 |
0.347 |
| flowers (readme) |
726000 |
21.470 |
0.598 |
0.342 |
| flowers delta |
-24541 |
-0.047 |
-0.002 |
0.005 |
| garden (0.9/12) |
849367 |
27.637 |
0.860 |
0.116 |
| garden (readme) |
1344000 |
27.690 |
0.860 |
0.119 |
| garden delta |
-494633 |
-0.053 |
0.000 |
-0.003 |
| kitchen (0.9/12) |
416990 |
31.823 |
0.933 |
0.115 |
| kitchen (readme) |
793000 |
31.760 |
0.933 |
0.115 |
| kitchen delta |
-376010 |
0.063 |
0.000 |
0.000 |
| room (0.9/12) |
361641 |
32.555 |
0.937 |
0.171 |
| room (readme) |
377000 |
32.530 |
0.937 |
0.171 |
| room delta |
-15359 |
0.025 |
0.000 |
0.000 |
| stump (0.9/12) |
583172 |
26.592 |
0.766 |
0.248 |
| stump (readme) |
467000 |
26.610 |
0.763 |
0.265 |
| stump delta |
116172 |
-0.018 |
0.003 |
-0.017 |
| treehill (0.9/12) |
721607 |
22.862 |
0.649 |
0.314 |
| treehill (readme) |
545000 |
23.190 |
0.645 |
0.347 |
| treehill delta |
176607 |
-0.328 |
0.004 |
-0.033 |
| drjohnson (0.9/12) |
213596 |
29.590 |
0.902 |
0.250 |
| drjohnson (readme) |
132000 |
29.890 |
0.911 |
0.234 |
| drjohnson delta |
81596 |
-0.300 |
-0.009 |
0.016 |
| playroom (0.9/12) |
151638 |
30.740 |
0.907 |
0.253 |
| playroom (readme) |
93000 |
31.080 |
0.914 |
0.246 |
| playroom delta |
58638 |
-0.340 |
-0.007 |
0.007 |
| train (0.9/12) |
618073 |
23.087 |
0.851 |
0.154 |
| train (readme) |
446000 |
23.040 |
0.837 |
0.184 |
| train delta |
172073 |
0.047 |
0.014 |
-0.030 |
| truck (0.9/12) |
507930 |
26.196 |
0.894 |
0.110 |
| truck (readme) |
401000 |
26.170 |
0.892 |
0.127 |
| trcuk delta |
106930 |
0.026 |
0.002 |
-0.017 |
In this case, the result values are quite close to the values in readme, but still some scenes have big gap, such as treehill, drjohnson, and playroom. Moreover, some scenes (bicycle, stump, treehill, drjohnson, playroom, train, truck) produce more anchors.
Could you please let me know exact hyperparameter sets for reproducing the result reported in the readme?
Kudos to the authors and their great work!
I ran this repository on my gpu (RTX 5000 Ada) and found result mismatches.
Could you please provide me some advice for this issue? @cskrren
I reproduced following result using the following commands, which are simply flattened script from train_mipnerf360, train_db, and train_tandt:
(-1/10) means --visible_threshold -1 --base_layer 10, which is default values in train_mipnerf360.sh. When comparing the results with those reported in this repo's readme, most scenes fail to match the #Anchors/PSNR/SSIM/LPIS.
I also tried another hyperparameter setting, where visible_threshold=0.9 and base_layer=12. This brings better rendering quality but still have a gap compared to the reported in the paper.
In this case, the result values are quite close to the values in readme, but still some scenes have big gap, such as treehill, drjohnson, and playroom. Moreover, some scenes (bicycle, stump, treehill, drjohnson, playroom, train, truck) produce more anchors.
Could you please let me know exact hyperparameter sets for reproducing the result reported in the readme?