OKVIS 里的 marginalization

来源:互联网 发布:java时间戳是什么 编辑:程序博客网 时间:2024/05/22 01:48

个人看法,很可能是错的
待优化问题通过化简:Hδχ=b
定义将被边缘化掉的变量:xμ
和将被边缘化变量关联的变量:xλ
其余变量:xp
原文如下:
Due to conditional independence, we can simplify the marginalization step and only apply it to a sub-problem。这里不管 xp ,待优化问题写成关于 xλxμ 表达式:
这里写图片描述

执行舍而补边缘化消去 xμ
这里写图片描述

作者原话:
In our keyframe-based approach, we must apply the marginalization step repeatedly and incorporate the resulting information as a prior in our optimization while our state estimate continues to change. Hence, we fix the linearization point around x0 , the value of x at the time of marginalization.
因为在边缘化的时候为了提高效率需要将 pose 和 landmark 分开,边缘化操作迭代进行,在分开边缘化的时候采用first estimate Jacobians算法,对全部将被边缘化掉的变量和边缘化变量牵扯到的变量,只在迭代的最开始计算一次雅各比矩阵,后续边缘化的时候都用这个雅各比矩阵,不再会因变量值改变重新计算雅各比矩阵。

关于 marginalization 和 Schur complement 建议阅读贺一家大神的博客:
http://blog.csdn.net/heyijia0327/article/details/52822104

定义执行边缘化变量更新值: Δχ:=Φ1(log(x¯x10),这里 x¯ 是当前变量的估计值。

所以优化和边缘化整个过程变量更新如下:
这里写图片描述

上式中 Δχ 表示整个边缘化操作更新(实际 marginalize 是迭代进行的),δχ 表示优化对变量的更新。

对于 b 近似:
这里写图片描述

边缘化后对 b 更新(这里因为 xμ 被边缘化掉,公式 25 中的 xμ 代指下一次将会被边缘化掉的变量)。
这里写图片描述

按照公式 24 执行公式 25 更新的过程,就是根据边缘化变量的更新,更新 b 的过程。

所以 b 总的更新表达式为:
这里写图片描述

其中 bλ1,0 是边缘化时消去 xμb 的更新,后面 Hλ1λ1Δχλ1 是根据边缘化结果按照公式 24 对 b 做更新。其中:Δχλ1Hλ1λ1Δχλ1=bλ1 计算得到。

由于雅各比矩阵只会计算一次,在后续边缘化时保持不变,所以 H 矩阵在边缘化后根据变量更新 b 值时,H 矩阵仍然保持边缘化消去 xμ 时的值。

所以整个 marginalization 的过程如下所示:

边缘化掉 xμ
Hλ1λ1:=Hλ1λ1Hλ1μH1μμHμλ1

bλ1,0:=bλ1Hλ1μH1μμbμ

计算边缘化变量更新:Hλ1λ1Δχλ1=bλ1,0

将变量更新作用到 b:bλ1:=bλ1,0Hλ1λ1Δχλ1

边缘化后新的 H 矩阵和 bHλ1λ1bλ1

版权声明:本文为博主原创文章,未经博主允许不得转载。

0 0
原创粉丝点击