《第11讲 后端2》 读书笔记

本文是《视觉SLAM十四讲》第11讲的个人读书笔记,为防止后期记忆遗忘写的。

本节知识脉络

BA的优缺点:BA 能精确地优化每个相机位姿与特征点 位置。不过在更大的场景中,大量特征点的存在会严重降低计算效率,导致计算量越来越 大以至于无法实时化。

本章的目的:本讲介绍在更大场景下使用的后端优化方法:位姿图。


11.1 位姿图(Pose Graph)

11.1.1 Pose Graph 的意义

BA是同时对相机位姿和空间点的同时进行图优化的 ,能够有效地求解大规模的定位与建图问题。但是,地图规模也将不断增长。像 BA 这样的方法,计算效率就会(令人担忧地)不断下降。因此,我们更倾向于在优化几次之后就把特征点固定住,只把它们看作位姿估计的约束,而不再实际地优化它们的位置估计。

我们完全 可以构建一个只有轨迹的图优化,而位姿节点之间的边,可以由两个关键帧之间通过特征 匹配之后得到的运动估计来给定初始值。不同的是,一旦初始估计完成,我们就不再优化 那些路标点的位置,而只关心所有的相机位姿之间的联系了。通过这种方式,我们省去了大 量的特征点优化的计算,只保留了关键帧的轨迹,从而构建了所谓的位姿图(Pose Graph)(只优化位姿,而不优化点)。


11.1.2 Pose Graph 的优化过程

Pose Graph 也得进行图优化的,其中节点表示相机位姿, 以 ξ1, . . . , ξn 来表达。而,则是两个位姿节点之间相对运动(R,t)的估计【回忆第7讲内容】,该估计可能来自于 特征点法或直接法。

假设ξi 和 ξj 之间的一个运动 ∆ξij,那么李代数的表示:

李群的表示:(Ti=*Tj  )

 

因为图优化需要构建最小二乘问题,并且通过求误差关于优化变量的倒数。那么,误差公式为:

优化变量有两个:ξi 和 ξj,因此我们求 eij 关于这两个变量的导数。按照李代数 的求导方式,给 ξi 和 ξj 各一个左扰动:δξi 和 δξj(BCH近似)。于是误差变为:

通过引入伴随项公式: 

那么有:

可以得到:误差关于两个位姿的雅可比矩阵。

                                             

由于 se(3) 上的左右雅可比 J r 形式过于复杂,我们通常取它们 的近似。如果误差接近于零,我们就可以设它们近似为 I 或:

误差通常也不见得近似于零,所以简单地把这里的 J r 设置为 I 会有一定的损失。

了解雅可比求导后,剩下的部分就和普通的图优化一样了。简而言之,所有的位姿顶 点和位姿——位姿边构成了一个图优化,本质上是一个最小二乘问题,优化变量为各个顶 点的位姿,边来自于位姿观测约束。那么总体目标函数为:

我们依然可以用 Gauss-Newton、Levenberg-Marquardt 等方法求解此问题,自然可以用 Ceres 或 g2o 进行求解。


关于代码部分,书上举了一个球体误差优化的例子。理解难度大,需要结合网上其他位姿优化的博客理解。

总结前后端程序运行的特点,有:

后端的优化没必要实时地响应前端 的图像数据。人们倾向于把前端和后端分开,运行于两个独立线程之中,历史上称为跟踪 (Tracking)和建图(Mapping)——虽然如此叫,建图部分主要是指后端的优化内容。通俗 地说,前端需要实时响应视频的速度,例如每秒 30Hz;而优化可以慢悠悠地运行,只要在 优化完成时把结果返回给前端即可。所以我们通常不会对后端优化提出很高的速度要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值