|
@@ -84,7 +84,7 @@ class GaussianModel:
|
|
|
self.active_sh_degree += 1
|
|
self.active_sh_degree += 1
|
|
|
|
|
|
|
|
def create_from_pcd(self, pcd : BasicPointCloud, spatial_lr_scale : float):
|
|
def create_from_pcd(self, pcd : BasicPointCloud, spatial_lr_scale : float):
|
|
|
- self.spatial_lr_scale = 5#spatial_lr_scale
|
|
|
|
|
|
|
+ self.spatial_lr_scale = 5
|
|
|
fused_point_cloud = torch.tensor(np.asarray(pcd.points)).float().cuda()
|
|
fused_point_cloud = torch.tensor(np.asarray(pcd.points)).float().cuda()
|
|
|
fused_color = RGB2SH(torch.tensor(np.asarray(pcd.colors)).float().cuda())
|
|
fused_color = RGB2SH(torch.tensor(np.asarray(pcd.colors)).float().cuda())
|
|
|
features = torch.zeros((fused_color.shape[0], 3, (self.max_sh_degree + 1) ** 2)).float().cuda()
|
|
features = torch.zeros((fused_color.shape[0], 3, (self.max_sh_degree + 1) ** 2)).float().cuda()
|
|
@@ -98,7 +98,7 @@ class GaussianModel:
|
|
|
rots = torch.zeros((fused_point_cloud.shape[0], 4), device="cuda")
|
|
rots = torch.zeros((fused_point_cloud.shape[0], 4), device="cuda")
|
|
|
rots[:, 0] = 1
|
|
rots[:, 0] = 1
|
|
|
|
|
|
|
|
- opacities = inverse_sigmoid(0.5 * torch.ones((fused_point_cloud.shape[0], 1), dtype=torch.float, device="cuda"))
|
|
|
|
|
|
|
+ opacities = inverse_sigmoid(0.1 * torch.ones((fused_point_cloud.shape[0], 1), dtype=torch.float, device="cuda"))
|
|
|
|
|
|
|
|
self._xyz = nn.Parameter(fused_point_cloud.requires_grad_(True))
|
|
self._xyz = nn.Parameter(fused_point_cloud.requires_grad_(True))
|
|
|
self._features_dc = nn.Parameter(features[:,:,0:1].transpose(1, 2).contiguous().requires_grad_(True))
|
|
self._features_dc = nn.Parameter(features[:,:,0:1].transpose(1, 2).contiguous().requires_grad_(True))
|
|
@@ -170,7 +170,7 @@ class GaussianModel:
|
|
|
PlyData([el]).write(path)
|
|
PlyData([el]).write(path)
|
|
|
|
|
|
|
|
def reset_opacity(self):
|
|
def reset_opacity(self):
|
|
|
- opacities_new = inverse_sigmoid(torch.ones_like(self.get_opacity)*0.01)
|
|
|
|
|
|
|
+ opacities_new = inverse_sigmoid(torch.min(self.get_opacity, torch.ones_like(self.get_opacity)*0.01))
|
|
|
optimizable_tensors = self.replace_tensor_to_optimizer(opacities_new, "opacity")
|
|
optimizable_tensors = self.replace_tensor_to_optimizer(opacities_new, "opacity")
|
|
|
self._opacity = optimizable_tensors["opacity"]
|
|
self._opacity = optimizable_tensors["opacity"]
|
|
|
|
|
|