chenhsuanlin / bundle-adjusting-NeRF

BARF: Bundle-Adjusting Neural Radiance Fields 🤮 (ICCV 2021 oral)
MIT License
793 stars 114 forks source link

Confused about get_pose() #84

Closed TwiceMao closed 1 year ago

TwiceMao commented 1 year ago

Could you please take a look at my question at your convenience? Thank you for your time.

The get_pose() function in the Garph class in the barf.py file caused my confusion. First, self.graph.se3_refine should be the optimized variable used in the network to express the camera pose. But in the get_pose() function, its connotation does not seem to be the camera pose.

In the get_pose() function

1. If it is the llff data set pose_for_render = pose_refine $\circ$ pose_eye

2. If it is a blender data set: pose_for_render = pose_refine $\circ$ pose_noise $\circ$ pose_GT

In the above equation, pose_refine is the 4*4 matrix corresponding to self.graph.se3_refine. I don't quite understand what it means. It doesn't seem to be about the camera pose. How can such pose_refine calculate the error with pose_GT? According to my understanding, pose_for_render should be the same variable as pose_refine. If it is a blender data set, pose_refine is initialized to pose_eye. If it is the llff data set, pose_refine is initialized to pose_noise pose_GT.

Thx for your reply~