Questions about calculating projection matrices
Closed this issue · 4 comments
Hi, I noticed that your CUDA code uses full_proj_transform
, which is derived from projection_matrix
gaussian_surfels/scene/cameras.py
Line 97 in c1cbb40
but you does not take into account the principal point when calculating projection_matrix
gaussian_surfels/scene/cameras.py
Line 72 in c1cbb40
gaussian_surfels/utils/graphics_utils.py
Line 66 in c1cbb40
So even though you used the principal point in the CUDA code, using the full_project_matrix may still result in imprecise results
Is what I am considering correct?
Hi, yes the projection matrix is imprecise as we consider the principal point here, but it seems better to do it in projection matrix.
Hi, I also noticed that you use principal point to recover point_image, my point is that the input p_proj is calculated from full_proj_transform, and full_proj_transform is not suitable for the imperfect pinhole camera, so the recovered point_image is still not accurate.
Hi, I think you are right. I didn't think deep here. I refered to this and updated the projection matrix. The previous modification in CUDA is now reversed. Thank you very much for your remider! I am not very sure if this is properly fixed now, please feel free to get in touch.
That's a good idea!