Why do we need marginalization in BA?

1 minute read

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.

e=zijπ(Tjpi)

where TjSE(3),piR3 are the states we want to estimate and zij is the observed feature in R2.

And just optimize the pose related terms only.

[HccHcsHscHss][ξcps]=[gcgs]
ˉHcc=HccHcsHss1Hsc
ˉgc=gcHcsHss1gs
ˉHccξc=ˉgc

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 HcsHss1Hsc and HcsHss1gs 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. 1

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.

2

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 HcsHss1Hsc.

The benefit are faster convergence and low final error in optimization.