anton
泡芙1级
泡芙1级
  • UID1297
  • 粉丝0
  • 关注0
  • 发帖数1
阅读:675回复:8

为什么使用pose graph优化时,认为相对位姿态是正确的?

楼主#
更多 发布于:2019-03-04 21:09
最近在看LSD SLAM的论文和代码,已经看得差不多了,但是对pose graph的优化的原理不是很清楚。


构建pose graph时,将相机的绝对位姿构建成g2o优化图的顶点(待优化变量),将相机之间的相对位姿构建成边(约束条件),然后进行优化。


我的问题是为什么认为相机之间的相对位姿是对的呢??? 由于累计误差的存在,相机的绝对位姿越来越不准我是理解的,那么应该也导致了所求的3D点是不准的, 又因为相对位姿是使用3D点求的,那么相对位姿也应该是不准的,那么为什么pose graph优化时认为相对位姿是准的呢???

最新喜欢:

flowclflowcl
fzheng
论坛版主
论坛版主
  • UID234
  • 粉丝2
  • 关注0
  • 发帖数2
沙发#
发布于:2019-04-11 17:30
3D点的全局座标是不准的,但是 3D 点相对于相机的座标是准的,也就是说相机和 3D 之间的几何关系是准的。可以找找某些 SLAM 论文里未闭环的图例体会一下
xiaoC
论坛版主
论坛版主
  • UID231
  • 粉丝9
  • 关注9
  • 发帖数51
  • 社区居民
板凳#
发布于:2019-04-15 15:57
我说说我的拙见:
第一,在没有优化的情况下,相机的位姿是会有累计误差的,就是您所说的越来越偏;
第二,在有优化的时候,点相对于相机是固定的,而基于图像纹理重叠(即特征点的重复性),从初始化的第一帧开始,我们就不断的在跟踪点了。所以将重叠区域的点全部关联在一起,很明显,这种方法可以不用忽略相机的累计误差。然后我们再用这个定下来的约束来修正偏差太大的位姿,最后就可以把位姿矫正回来了。
我个人的愚见,欢迎交流。
flowcl
泡芙3级
泡芙3级
  • UID2221
  • 粉丝0
  • 关注0
  • 发帖数4
地板#
发布于:2019-04-26 10:44
xiaoC:我说说我的拙见:
第一,在没有优化的情况下,相机的位姿是会有累计误差的,就是您所说的越来越偏;
第二,在有优化的时候,点相对于相机是固定的,而基于图像纹理重叠(即特征点的重复性),从初始化的第一帧开始,我们就不断的在跟踪点了。所以将重叠区域...
回到原帖
我也有些不太理解这种做法,如果相对位姿都可以认为是一定的,那么最后相对测量是准确的,初始变换与最终结果用一个刚体变换就可以度量。我倒是就单纯的认为相邻的变换的误差是较小的,没有其他更精确的数据就默认为正确数据,当有一个误差较大的数据引入时(回环),通过优化(梯度?)将误差又分摊到相关联的所有帧。使得整体的结果尽量符合初始观测?
xiaoC
论坛版主
论坛版主
  • UID231
  • 粉丝9
  • 关注9
  • 发帖数51
  • 社区居民
4楼#
发布于:2019-05-02 18:14
flowcl:我也有些不太理解这种做法,如果相对位姿都可以认为是一定的,那么最后相对测量是准确的,初始变换与最终结果用一个刚体变换就可以度量。我倒是就单纯的认为相邻的变换的误差是较小的,没有其他更精确的数据就默认为正确数据,当有一个误差较大的数据引入时(...回到原帖
嗯,我同意你的观点。两帧之间的误差确实是相对比较小的,但是传递到整个轨迹上,误差就会非常大,所以默认相邻帧的数据是正确数据。非常感谢你的指正。
恰同学少年
泡芙1级
泡芙1级
  • UID1886
  • 粉丝0
  • 关注0
  • 发帖数2
5楼#
发布于:2019-05-03 09:04
xiaoC:嗯,我同意你的观点。两帧之间的误差确实是相对比较小的,但是传递到整个轨迹上,误差就会非常大,所以默认相邻帧的数据是正确数据。非常感谢你的指正。回到原帖
表示也是这样理解的
lalalaGiraffe
泡芙1级
泡芙1级
  • UID2787
  • 粉丝0
  • 关注0
  • 发帖数1
6楼#
发布于:2019-05-21 07:13
没有认为相对位姿是对的吧?
每一个约束(里程约束,或者回环约束),都有各自的信息矩阵,信息矩阵决定了约束的可信度,优化中计算残差会用到这个矩阵。
相对位姿(用里程约束来代指吧)的漂移一般不是很大,这会反映到信息矩阵上,或者是协方差矩阵上。
xiaozhao
泡芙1级
泡芙1级
  • UID3163
  • 粉丝0
  • 关注0
  • 发帖数1
7楼#
发布于:2019-06-09 16:47
我还没看过LSD,所以只能结合orb说说我的理解.
在orb中消处累计误差主要有两个步骤,
1.使用pose graph通过图优化将累计误差分摊到每一帧得keyframe的pose上,之所以认为相对位姿是准确的,是因为相对位姿拥有较少的累计误差,且可以使用信息矩阵进行衡量(orb中优化的时候信息矩阵置1了)
2. 进行全局BA优化,这里的优化对对整个地图进行全局优化
感觉pose graph 只是在分摊累计误差,它只是用帧与帧的可视关系进行约束,约束并不够多,所以经过pose graph之后还需要用一个全局BA优化进行最终的调优,全局BA使用大量的observation关系进行约束,约束够多够强
--------------------------
菜鸟~
shen338
泡芙1级
泡芙1级
  • UID3339
  • 粉丝0
  • 关注0
  • 发帖数1
8楼#
发布于:2019-06-30 11:40
新人第一次发言,有不对的地方欢迎指正

在g2o里面,把相对位姿作为边不是认为相对位姿就是真实值,因为整个优化系统是超定的,只有最小二乘解,没有确切解(loss = 0)。 如果用最后的优化结果算相对位姿,这个算出来的相对位姿也跟观测值有些许不同。

非常同意楼上说的累积误差分摊,我也觉得pose graph estimation的核心就是将回检测的误差均摊,从而实现最小总误差。
游客

返回顶部