前言
无位姿的GS都已经更新第二轮了,我才开始看最开始的SOTA
代码
顺序差不多是:更新GS,修改优化列表,放入位姿,更新位姿,再修改优化列表,更新Global GS.
# 1000 更新local GS
self.gs_render_local.gaussians.training_setup(optim_opt, fix_pos=True,)
self.gs_render_local.gaussians.update_learning_rate(iteration)
# 300 iters 开始更新位姿
self.gs_render_local.gaussians.init_RT(None) # 初始化位姿
self.gs_render_local.gaussians.training_setup_fix_position() # 重新定义优化器,只放入位姿
# 500 更新Global GS
pcd = self.gs_render_local.gaussians._xyz.detach()
rel_pose = self.gs_render_local.gaussians.get_RT().detach()
pose = rel_pose @ self.gs_render.gaussians.get_RT(view_idx_prev).detach()
self.gs_render.gaussians.update_RT_seq(pose, view_idx)
training_setup()
开启GS优化器,training_setup_fix_position
开启位姿优化器,get_RT()