SLAM中的BA优化

SLAM中的BA优化,先根据相机模型和A,B图像特征匹配好的像素坐标,求出A图像上的像素坐标对应的归一化的空间点坐标,然后根据该空间点的坐标计算重投影到B图像上的像素坐标,重投影的像素坐标(估计值)与匹配好的B图像上的像素坐标(测量值),不会完全重合,BA的目的就是每一个匹配好的特征点建立方程,然后联立,形成超定方程,解出最优的位姿矩阵或空间点坐标(两者可以同时优化)。

根据相机模型求出空间点坐标

​ 相机模型–像素坐标与空间点坐标的对应关系

​ 相机使用前先进行相机标定得到相机的内参K,通过特征点匹配可以得到,特征点的像素坐标,根据上述模型就可以得到像素像素点对应的归一化后的空间坐标,即:
X/Z=X=(u−cx)/fxX/Z=X=(u-cx)/fx X/Z=X=(u−cx)/fx

Y/Z=Y=(v−cy)/fyY/Z=Y=(v-cy)/fy Y/Z=Y=(v−cy)/fy

Z=1Z=1 Z=1

​ 为什么是归一化后的空间坐标,由上面的公司可以看出,Z=1,所以是归一化后的坐标。

​ 若相机为深度相机可以得到深度信息
X=Z∗(u−cx)/fxX=Z*(u-cx)/fx X=Z∗(u−cx)/fx

Y=Z∗(v−cy)/fyY=Z*(v-cy)/fy Y=Z∗(v−cy)/fy

Z=depth/sZ=depth/s Z=depth/s

depth为与之对应的深度值,s为深度值与实际距离的转换参数。

PnP中的BA优化

PnP是求解3D点到2D点的运动方法,它描述的是在已知n个3D点的空间坐标以及他们的投影位置时,如何估计相机的位姿。特征点的3D位置可以由三角化或者RGB-D相机的深度图确定

当相机移动后,相机模型变为

T=(R|t)用李代数的形式表示,则


注意:exp(.)Pi结果为[4X1],而K为[3X3],为了保证维数相同,取exp(.)Pi的前三维,变成三维的非其次坐标

则整体的优化方程为:

​ 很方便地通过 G-N, L-M 等优化算法进行求解。不过,在使用 G-N 和 L-M 之前,我们需
要知道每个误差项关于优化变量的导数,也就是线性化:

由前面的内容可知
u=fx∗X′/Z′+cxu=fx*X'/Z'+cx u=fx∗X′/Z′+cx

v=fy∗Y′/Z′+cyv=fy*Y'/Z'+cy v=fy∗Y′/Z′+cy

然后就是求出误差对位姿的雅克比和误差对空间点的雅克比,具体求导参考《视觉SLAM14讲》P166-P167.

SLAM中的BA优化相关推荐

  1. SLAM后端:BA优化(Bundle Adjustment)

    BA是一种优化方法,最小化重投影误差优化PnP得到的R.t 应用场景:利用共视点的3D坐标与相机内参矩阵,根据PnP计算位姿R.t(有误差).利用R.t及相机的投影模型可以计算出这些特征点在第二帧图像 ...

  2. 视觉SLAM中的BA

    利用三角定位和P点在图像a中的投影ua(可检测到)计算P在空间中的位置(非真实),再利用相机数学模型获得P在b图像中的位置ub'. 不断减少 |ub' - ub |的差叫做优化(ub是P在第二幅图中的 ...

  3. EKF优化:协方差coff公式、意义、SLAM中的Code优化

    1.代码:Matlab相关系数的意义: Eigen::MatrixXf correlation_matrix = corrcoef( LocM ); 对行向量求相关系数 , 与列数无关,返回 cols ...

  4. 深蓝学院-视觉SLAM课程-第7讲作业:SLAM中g2o入门详解,直接法BA

    1. 引言 在SLAM中,BA是个重要的部分,前后端很多地方都用得到,而g2o是一个很重要的使用图优化求解优化问题的库,所以有必要熟练掌握,尽管有了些C++的底子,但是看g2o的代码还是比较吃力,所以 ...

  5. 视觉SLAM总结——LSD SLAM中关键知识点总结

    视觉SLAM总结--LSD SLAM中关键知识点总结 视觉SLAM总结--LSD SLAM中关键知识点总结 1. LSD SLAM的创新点/关键点是什么? 2. LSD SLAM的整体框架是怎样的? ...

  6. SLAM中的marginalization 和 Schur complement

    在视觉SLAM的很多论文中,会大量或者偶尔出现marginalization这个词(翻译为边缘化),有的论文是特地要用它,比如sliding window slam [2], okvis [3], d ...

  7. SLAM | 视觉SLAM中的后端:后端优化算法与建图模板

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 前面系列一中我们介绍了,VSLAM 是利用多视图几何理论,根据相机拍摄的图像信息 ...

  8. 论文精读 | slam中姿态估计的图优化方法比较

    一. 摘要 对于位置环境中的自主导航问题,同步定位与建图(Simultaneous localization and mapping, SLAM)是一个非常重要的工具框架.根据SLAM字面含义可以得知 ...

  9. SLAM中姿态估计的图优化方法比较(g2o/Ceres/GTSAM/SE-Sync)

    编辑 | 深蓝AI 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 后台回复[SLAM综述]获取视觉SLAM.激光SLAM.RGBD-SLAM等多篇综述! 本 ...

最新文章

  1. 定义一个属性_Python property属性
  2. 2015人脸检测研究进展
  3. POJ 3276 枚举+差分?
  4. 力扣- - 最短回文串(KMP算法)
  5. 计算机图形学考研学校深圳大学,厉害了!深大计算机图形学在亚洲排第三!
  6. 微博抽奖贴为什么到时间了不开奖_热搜第一!微博闹剧,锦鲤“信小呆”被这样处罚...
  7. python Supervisor
  8. c++中char * 和 char []的区别-转
  9. c ++创建二维数组_C ++中的二维数组
  10. 拓端tecdat|R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
  11. 高盛的合伙人是如何选出来的?
  12. Amos实操教程|调节效应检验
  13. 服务器开机显示密码过期,Windows server提示密码过期 更改密码使用期限方法
  14. 一维码与二维码对比介绍
  15. 医院信息管理系统有哪些功能?
  16. 世界杯要来了,先跟梅西来个热身吧_数字体验_新浪博客
  17. AttributeError: module ‘win32com.gen_py.00020905-0000-4B30-A977-D214852036FF
  18. JS字符(字母)与ASCII码转换
  19. 在使用计算机结束时,计算机使用完毕后应将显示器的电源关闭对吗?
  20. 杰里之开立体声左右声道数据对调---【篇】

热门文章

  1. 【SQLAlchemy】第2节:模型类的定义与创建
  2. 第4章第2节:如何往幻灯片中使用Excel电子表格 [PowerPoint精美幻灯片实战教程]
  3. Fl Studio 20.8英文切换中文正式版下载及新增功能介绍说明
  4. android easyplayer截屏,EasyWasmPlayer H265播放器是如何实现视频截图功能的?
  5. 【U3D入门小白教程——案例篇】之二:全民打飞机
  6. 分布式锁的实现- mysql
  7. 《进击吧!Blazor!》第一章 3.页面制作
  8. 迅雷链技术沙龙第一站:百万级TPS是怎样炼成的
  9. Android 12 预览版发布,64G手机用户:我又活了 #IT资讯# #Android# #手机系统#
  10. Lucene4.10使用教程(六):Lucene的过滤器