reduced-3dgs 1.9.5__tar.gz → 1.10.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reduced-3dgs might be problematic. Click here for more details.
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/PKG-INFO +1 -1
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/quantization/quantizer.py +5 -3
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/train.py +20 -15
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs.egg-info/PKG-INFO +1 -1
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/setup.py +1 -1
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/LICENSE.md +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/README.md +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/__init__.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/combinations.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/importance/__init__.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/importance/combinations.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/importance/trainer.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/pruning/__init__.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/pruning/combinations.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/pruning/trainer.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/quantization/__init__.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/quantization/abc.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/quantization/exclude_zeros.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/quantization/wrapper.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/quantize.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/shculling/__init__.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/shculling/gaussian_model.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs/shculling/trainer.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs.egg-info/SOURCES.txt +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs.egg-info/dependency_links.txt +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs.egg-info/requires.txt +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/reduced_3dgs.egg-info/top_level.txt +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/setup.cfg +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/diff_gaussian_rasterization/__init__.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/ext.cpp +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/rasterize_points.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/reduced_3dgs/kmeans.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/reduced_3dgs/redundancy_score.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/reduced_3dgs/sh_culling.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/reduced_3dgs.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/cuda_rasterizer/backward.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/cuda_rasterizer/forward.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/cuda_rasterizer/rasterizer_impl.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/diff_gaussian_rasterization/__init__.py +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/ext.cpp +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/rasterize_points.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/simple-knn/ext.cpp +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/simple-knn/simple_knn.cu +0 -0
- {reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/simple-knn/spatial.cu +0 -0
|
@@ -119,10 +119,12 @@ class VectorQuantizer(AbstractQuantizer):
|
|
|
119
119
|
return self.one_nearst(model._opacity.detach(), codebook)
|
|
120
120
|
|
|
121
121
|
def produce_clusters_scaling(self, model: GaussianModel, *args, **kwargs):
|
|
122
|
-
|
|
122
|
+
centers, ids = self.generate_codebook(model.get_scaling.detach(), self.num_clusters_scaling, *args, **kwargs)
|
|
123
|
+
centers_log = model.scaling_inverse_activation(centers)
|
|
124
|
+
return centers_log, ids
|
|
123
125
|
|
|
124
126
|
def find_nearest_cluster_id_scaling(self, model: GaussianModel, codebook: torch.Tensor):
|
|
125
|
-
return self.one_nearst(model.get_scaling.detach(), codebook)
|
|
127
|
+
return self.one_nearst(model.get_scaling.detach(), model.scaling_activation(codebook))
|
|
126
128
|
|
|
127
129
|
def produce_clusters(self, model: GaussianModel, init_codebook_dict={}):
|
|
128
130
|
codebook_dict: Dict[str, torch.Tensor] = {}
|
|
@@ -163,7 +165,7 @@ class VectorQuantizer(AbstractQuantizer):
|
|
|
163
165
|
|
|
164
166
|
def dequantize(self, model: GaussianModel, ids_dict: Dict[str, torch.Tensor], codebook_dict: Dict[str, torch.Tensor], xyz: torch.Tensor = None, replace=False) -> GaussianModel:
|
|
165
167
|
opacity = codebook_dict["opacity"][ids_dict["opacity"], ...]
|
|
166
|
-
scaling =
|
|
168
|
+
scaling = codebook_dict["scaling"][ids_dict["scaling"], ...]
|
|
167
169
|
|
|
168
170
|
rotation = torch.cat((
|
|
169
171
|
codebook_dict["rotation_re"][ids_dict["rotation_re"], ...],
|
|
@@ -4,13 +4,13 @@ import shutil
|
|
|
4
4
|
from typing import List, Tuple
|
|
5
5
|
import torch
|
|
6
6
|
from tqdm import tqdm
|
|
7
|
-
from argparse import Namespace
|
|
8
7
|
from gaussian_splatting import GaussianModel
|
|
9
|
-
from gaussian_splatting.dataset import CameraDataset
|
|
8
|
+
from gaussian_splatting.dataset import CameraDataset
|
|
10
9
|
from gaussian_splatting.utils import psnr
|
|
11
|
-
from gaussian_splatting.dataset.colmap import
|
|
10
|
+
from gaussian_splatting.dataset.colmap import colmap_init
|
|
12
11
|
from gaussian_splatting.trainer import AbstractTrainer
|
|
13
12
|
from gaussian_splatting.trainer.extensions import ScaleRegularizeTrainerWrapper
|
|
13
|
+
from gaussian_splatting.train import prepare_dataset, save_cfg_args
|
|
14
14
|
from reduced_3dgs.quantization import AbstractQuantizer, VectorQuantizeTrainerWrapper
|
|
15
15
|
from reduced_3dgs.shculling import VariableSHGaussianModel, SHCullingTrainer
|
|
16
16
|
from reduced_3dgs.pruning import PruningTrainer
|
|
@@ -81,17 +81,20 @@ def prepare_quantizer(
|
|
|
81
81
|
return trainer, trainer.quantizer
|
|
82
82
|
|
|
83
83
|
|
|
84
|
-
def
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
def prepare_gaussians(sh_degree: int, source: str, device: str, trainable_camera: bool = False, load_ply: str = None) -> Tuple[CameraDataset, GaussianModel, AbstractTrainer]:
|
|
85
|
+
if trainable_camera:
|
|
86
|
+
gaussians = CameraTrainableVariableSHGaussianModel(sh_degree).to(device)
|
|
87
|
+
gaussians.load_ply(load_ply) if load_ply else colmap_init(gaussians, source)
|
|
88
|
+
else:
|
|
87
89
|
gaussians = VariableSHGaussianModel(sh_degree).to(device)
|
|
88
90
|
gaussians.load_ply(load_ply) if load_ply else colmap_init(gaussians, source)
|
|
89
|
-
|
|
91
|
+
return gaussians
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def prepare_trainer(gaussians: GaussianModel, dataset: CameraDataset, mode: str, with_scale_reg=False, quantize: bool = False, load_quantized: str = None, configs={}) -> AbstractTrainer:
|
|
95
|
+
if mode in basemodes:
|
|
90
96
|
modes = basemodes
|
|
91
97
|
elif mode in cameramodes:
|
|
92
|
-
gaussians = CameraTrainableVariableSHGaussianModel(sh_degree).to(device)
|
|
93
|
-
gaussians.load_ply(load_ply) if load_ply else colmap_init(gaussians, source)
|
|
94
|
-
dataset = (TrainableCameraDataset.from_json(load_camera, load_depth=load_depth) if load_camera else ColmapTrainableCameraDataset(source, load_depth=load_depth)).to(device)
|
|
95
98
|
modes = cameramodes
|
|
96
99
|
else:
|
|
97
100
|
raise ValueError(f"Unknown mode: {mode}")
|
|
@@ -114,13 +117,15 @@ def prepare_training(sh_degree: int, source: str, device: str, mode: str, load_p
|
|
|
114
117
|
dataset=dataset,
|
|
115
118
|
**configs
|
|
116
119
|
)
|
|
117
|
-
|
|
120
|
+
quantizer = None
|
|
121
|
+
return trainer, quantizer
|
|
118
122
|
|
|
119
123
|
|
|
120
|
-
def
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
def prepare_training(sh_degree: int, source: str, device: str, mode: str, load_ply: str = None, load_camera: str = None, load_depth=False, with_scale_reg=False, quantize: bool = False, load_quantized: str = None, configs={}) -> Tuple[CameraDataset, GaussianModel, AbstractTrainer]:
|
|
125
|
+
dataset = prepare_dataset(source=source, device=device, trainable_camera=mode in cameramodes, load_camera=load_camera, load_depth=load_depth)
|
|
126
|
+
gaussians = prepare_gaussians(sh_degree=sh_degree, source=source, device=device, trainable_camera=mode in cameramodes, load_ply=load_ply)
|
|
127
|
+
trainer, quantizer = prepare_trainer(gaussians=gaussians, dataset=dataset, mode=mode, with_scale_reg=with_scale_reg, quantize=quantize, load_quantized=load_quantized, configs=configs)
|
|
128
|
+
return dataset, gaussians, trainer, quantizer
|
|
124
129
|
|
|
125
130
|
|
|
126
131
|
def training(dataset: CameraDataset, gaussians: GaussianModel, trainer: AbstractTrainer, quantizer: AbstractQuantizer, destination: str, iteration: int, save_iterations: List[int], device: str, empty_cache_every_step=False):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/diff-gaussian-rasterization/reduced_3dgs.cu
RENAMED
|
File without changes
|
|
File without changes
|
{reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/cuda_rasterizer/forward.cu
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reduced_3dgs-1.9.5 → reduced_3dgs-1.10.1}/submodules/gaussian-importance/rasterize_points.cu
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|