alvinliu0/HumanGaussian

Why the skeleton image and the image rendered by gassian are in different camera view?

y6216886 opened this issue · 3 comments

To be clear, when i use the code
viewpoint_cam = Camera(c2w = batch['c2w'][id],FoVy = batch['fovy'][id],height = batch['height'],width = batch['width']) render_pkg = render(viewpoint_cam, self.gaussian, self.pipe, renderbackground) image, viewspace_point_tensor, radii = render_pkg["render"], render_pkg["viewspace_points"], render_pkg["radii"]

I will get a image like this
it0_train_pose

However, when I use pyrender to generate image using code
self.nc.camera.yfov=batch['fovy'][id] self.scene_smplx.set_pose(self.nc, pose=batch['c2w'][id].cpu().numpy()) depth_smplx = self.renderer_smplx.render(self.scene_smplx, flags=pyrender.RenderFlags.DEPTH_ONLY)

or using MVP matrix to project 3d points to image directly using code
points = self.points3D @ mvp.T # [18, 4] points = points[:, :3] / points[:, 3:] # NDC in [-1, 1] xs = (points[:, 0] + 1) / 2 * H # [18] ys = (points[:, 1] + 1) / 2 * W # [18]
I get images like this,
it0_depth_smplx
it0_skeleton
It is clear that, unlike the first image, the second and third images seem to move horizontally.
Do you have any idea what is happening? thanks a lot!

Yeah, I guess this might be caused by a similar issue. Will rotate back to check this issue later.

Hi, have you solved this problem?

Hi, have you solved this problem?