Why do we need marginalization in BA?
Published:
A common practice in Bundle Adjustment is to reduce the state dimension by marginalizing structure or pose states to improve the optimization speed.
In case 3d points(structure) pi are marginalized out as follows, pi are triangulated to calculate residual e.
where Tj∈SE(3),pi∈R3 are the states we want to estimate and zij is the observed feature in R2.
And just optimize the pose related terms only.
Here my question arises. If we can calculate 3d points pi by the triangulation, only Tj are the state variable to be estimated.
Then, why are we bothered to calculate marginalization related terms −HcsHss−1Hsc and −HcsHss−1gs instead of optimizing only poses by Hccξc=gc (note that H and g are without bar).
I guess Hccξc=gc is enough to find the optimal poses Tj.
So, my question was why do we use ˉHccξc=ˉgc instead of Hccξc=gc?
Answer is simple.
Let’s have a look at the Hessian H of simulated BA.
Yello represents non zero element and upper 60 by 60 matrix represent Hcc. When a structure is observed over multiple poses, Hessian make correlation terms.
Obiously, Hccξc=gc ignores the correlation terms. Therefore, each poses loose information of linkage, whereas in ˉHccξc=ˉgc off diagonal terms are added to Hessian which represents the rumped relationship miginalized from −HcsHss−1Hsc.
The benefit are faster convergence and low final error in optimization.