baidu / ICE-BA

Apache License 2.0
705 stars 232 forks source link

how to deal with the ill-conditioned Hession matrix #15

Open lfy-gogogo opened 5 years ago

lfy-gogogo commented 5 years ago

Thank you for sharing! I read your code, and I saw that you use GN or DL to solve the optimization problem. As I know, GN and DL method are not stable, we use LM in a general way. What extra work do you make to solve this problem to use GN or DL happily?

liuhaomin commented 5 years ago

Generally camera blocks are invertible, only some points without sufficient parallax have ill-conditioned Hessian. If the information garthered on a inverse depth is too small (less than the threshold epsdST), it will be treated as a fixed point and not be marginalized during Schur complement construction. https://github.com/baidu/ICE-BA/blob/b004bb5afc0d554d49742aae8503d231213f7e6d/Backend/BundleAdjustment/GlobalBundleAdjustorGN.cpp#L765