reduced-3dgs 1.10.8__tar.gz → 1.10.13__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.
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/PKG-INFO +1 -1
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/train.py +26 -6
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs.egg-info/PKG-INFO +1 -1
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/setup.py +1 -1
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/LICENSE.md +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/README.md +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/__init__.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/combinations.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/importance/__init__.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/importance/combinations.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/importance/trainer.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/prepare.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/pruning/__init__.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/pruning/combinations.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/pruning/trainer.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/quantization/__init__.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/quantization/abc.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/quantization/exclude_zeros.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/quantization/quantizer.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/quantization/wrapper.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/quantize.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/shculling/__init__.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/shculling/gaussian_model.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs/shculling/trainer.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs.egg-info/SOURCES.txt +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs.egg-info/dependency_links.txt +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs.egg-info/requires.txt +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/reduced_3dgs.egg-info/top_level.txt +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/setup.cfg +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/diff_gaussian_rasterization/__init__.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/ext.cpp +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/rasterize_points.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/reduced_3dgs/kmeans.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/reduced_3dgs/redundancy_score.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/reduced_3dgs/sh_culling.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/reduced_3dgs.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/gaussian-importance/cuda_rasterizer/backward.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/gaussian-importance/cuda_rasterizer/forward.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/gaussian-importance/cuda_rasterizer/rasterizer_impl.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/gaussian-importance/diff_gaussian_rasterization/__init__.py +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/gaussian-importance/ext.cpp +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/gaussian-importance/rasterize_points.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/simple-knn/ext.cpp +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/simple-knn/simple_knn.cu +0 -0
- {reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/simple-knn/spatial.cu +0 -0
|
@@ -14,8 +14,12 @@ from reduced_3dgs.quantization import AbstractQuantizer
|
|
|
14
14
|
from reduced_3dgs.prepare import modes, prepare_gaussians, prepare_trainer
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
def prepare_training(
|
|
18
|
-
|
|
17
|
+
def prepare_training(
|
|
18
|
+
sh_degree: int, source: str, device: str, mode: str,
|
|
19
|
+
trainable_camera: bool = False, load_ply: str = None, load_camera: str = None,
|
|
20
|
+
load_mask=True, load_depth=True,
|
|
21
|
+
with_scale_reg=False, quantize: bool = False, load_quantized: str = None, configs={}):
|
|
22
|
+
dataset = prepare_dataset(source=source, device=device, trainable_camera=trainable_camera, load_camera=load_camera, load_mask=load_mask, load_depth=load_depth)
|
|
19
23
|
gaussians = prepare_gaussians(sh_degree=sh_degree, source=source, device=device, trainable_camera=trainable_camera, load_ply=load_ply)
|
|
20
24
|
trainer, quantizer = prepare_trainer(gaussians=gaussians, dataset=dataset, mode=mode, with_scale_reg=with_scale_reg, quantize=quantize, load_quantized=load_quantized, configs=configs)
|
|
21
25
|
return dataset, gaussians, trainer, quantizer
|
|
@@ -23,26 +27,39 @@ def prepare_training(sh_degree: int, source: str, device: str, mode: str, traina
|
|
|
23
27
|
|
|
24
28
|
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):
|
|
25
29
|
shutil.rmtree(os.path.join(destination, "point_cloud"), ignore_errors=True) # remove the previous point cloud
|
|
26
|
-
pbar = tqdm(range(1, iteration+1))
|
|
30
|
+
pbar = tqdm(range(1, iteration+1), dynamic_ncols=True, desc="Training")
|
|
27
31
|
epoch = list(range(len(dataset)))
|
|
28
32
|
epoch_psnr = torch.empty(3, 0, device=device)
|
|
33
|
+
epoch_maskpsnr = torch.empty(3, 0, device=device)
|
|
29
34
|
ema_loss_for_log = 0.0
|
|
30
35
|
avg_psnr_for_log = 0.0
|
|
36
|
+
avg_maskpsnr_for_log = 0.0
|
|
31
37
|
for step in pbar:
|
|
32
38
|
epoch_idx = step % len(dataset)
|
|
33
39
|
if epoch_idx == 0:
|
|
34
40
|
avg_psnr_for_log = epoch_psnr.mean().item()
|
|
41
|
+
avg_maskpsnr_for_log = epoch_maskpsnr.mean().item()
|
|
35
42
|
epoch_psnr = torch.empty(3, 0, device=device)
|
|
43
|
+
epoch_maskpsnr = torch.empty(3, 0, device=device)
|
|
36
44
|
random.shuffle(epoch)
|
|
37
45
|
idx = epoch[epoch_idx]
|
|
38
46
|
loss, out = trainer.step(dataset[idx])
|
|
39
47
|
if empty_cache_every_step:
|
|
40
48
|
torch.cuda.empty_cache()
|
|
41
49
|
with torch.no_grad():
|
|
50
|
+
ground_truth_image = dataset[idx].ground_truth_image
|
|
51
|
+
rendered_image = out["render"]
|
|
52
|
+
epoch_psnr = torch.concat([epoch_psnr, psnr(rendered_image, ground_truth_image)], dim=1)
|
|
53
|
+
if dataset[idx].ground_truth_image_mask is not None:
|
|
54
|
+
ground_truth_maskimage = ground_truth_image * dataset[idx].ground_truth_image_mask
|
|
55
|
+
rendered_maskimage = rendered_image * dataset[idx].ground_truth_image_mask
|
|
56
|
+
epoch_maskpsnr = torch.concat([epoch_maskpsnr, psnr(rendered_maskimage, ground_truth_maskimage)], dim=1)
|
|
42
57
|
ema_loss_for_log = 0.4 * loss.item() + 0.6 * ema_loss_for_log
|
|
43
|
-
epoch_psnr = torch.concat([epoch_psnr, psnr(out["render"], dataset[idx].ground_truth_image)], dim=1)
|
|
44
58
|
if step % 10 == 0:
|
|
45
|
-
|
|
59
|
+
postfix = {'epoch': step // len(dataset), 'loss': ema_loss_for_log, 'psnr': avg_psnr_for_log, 'masked psnr': avg_maskpsnr_for_log, 'n': gaussians._xyz.shape[0]}
|
|
60
|
+
if avg_maskpsnr_for_log <= 0:
|
|
61
|
+
del postfix['masked psnr']
|
|
62
|
+
pbar.set_postfix(postfix)
|
|
46
63
|
if step in save_iterations:
|
|
47
64
|
save_path = os.path.join(destination, "point_cloud", "iteration_" + str(step))
|
|
48
65
|
os.makedirs(save_path, exist_ok=True)
|
|
@@ -68,6 +85,7 @@ if __name__ == "__main__":
|
|
|
68
85
|
parser.add_argument("-l", "--load_ply", default=None, type=str)
|
|
69
86
|
parser.add_argument("--load_camera", default=None, type=str)
|
|
70
87
|
parser.add_argument("--quantize", action='store_true')
|
|
88
|
+
parser.add_argument("--no_image_mask", action="store_true")
|
|
71
89
|
parser.add_argument("--no_depth_data", action='store_true')
|
|
72
90
|
parser.add_argument("--with_scale_reg", action="store_true")
|
|
73
91
|
parser.add_argument("--load_quantized", default=None, type=str)
|
|
@@ -83,7 +101,9 @@ if __name__ == "__main__":
|
|
|
83
101
|
configs = {o.split("=", 1)[0]: eval(o.split("=", 1)[1]) for o in args.option}
|
|
84
102
|
dataset, gaussians, trainer, quantizer = prepare_training(
|
|
85
103
|
sh_degree=args.sh_degree, source=args.source, device=args.device, mode=args.mode, trainable_camera="camera" in args.mode,
|
|
86
|
-
load_ply=args.load_ply, load_camera=args.load_camera,
|
|
104
|
+
load_ply=args.load_ply, load_camera=args.load_camera,
|
|
105
|
+
load_mask=not args.no_image_mask, load_depth=not args.no_depth_data,
|
|
106
|
+
with_scale_reg=args.with_scale_reg,
|
|
87
107
|
quantize=args.quantize, load_quantized=args.load_quantized, configs=configs)
|
|
88
108
|
dataset.save_cameras(os.path.join(args.destination, "cameras.json"))
|
|
89
109
|
torch.cuda.empty_cache()
|
|
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
|
|
File without changes
|
|
File without changes
|
{reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/diff-gaussian-rasterization/reduced_3dgs.cu
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reduced_3dgs-1.10.8 → reduced_3dgs-1.10.13}/submodules/gaussian-importance/rasterize_points.cu
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|