ROS-3DSLAM(12):视觉部分visual estimator第六节:initial5

2021@SDUSC2021年11月29日星期一——2021年12月2日星期四附:12月1日typora更新了,新版本要收费,我回退到旧的0.9.8版本之后,发现旧的版本有个致命的bug,会丢失对代码的注释…本来已经读完了代码的,结果下午打开一看注释全没了。幸好时间不算长,还能挽救。一、背景简介:这篇博客分为三部分,第一部分是对于上次的代码分析的补全,结束initial_sfm中最后一部分的问题。第二部分是对于数学知识的补充,类似于上上一次对于代码的分析一样,这一次是对于数学部分的原理加深理解。
摘要由CSDN通过智能技术生成

2021@SDUSC

2021年11月29日星期一——2021年12月2日星期四

附:12月1日typora更新了,新版本要收费,我回退到旧的0.9.8版本之后,发现旧的版本有个致命的bug,会丢失对代码的注释…本来已经读完了代码的,结果下午打开一看注释全没了。

幸好时间不算长,还能挽救。

一、背景简介:

这篇博客分为三部分,第一部分是对于上次的代码分析的补全,结束initial_sfm中最后一部分的问题。

第二部分是对于数学知识的补充,类似于上上一次对于代码的分析一样,这一次是对于数学部分的原理加深理解。

最后就是对于initial文件夹的小结,借助于这部分的内容结束,开启下一步的计划。

二、代码分析:

说明:

  • ceres 同OpenCV、Eigen一样,也是一款第三方的库函数,他的作用是用来处理非线性优化。

    该库由Google开发,在Google的SLAM项目cartographer中被大量使用。

    官网中给出了详细说明。

  • full BA 是

在SFM(structure from motion)的计算中BA(Bundle Adjustment)作为最后一步优化具有很重要的作用,在近几年兴起的基于图的SLAM(simultaneous localization and mapping)算法里面使用了图优化替代了原来的滤波器,这里所谓的图优化其实也是指BA。

  • 为了学习BA,需要有以下知识储备:

    • 射影相机集合模型
    • 对极几何
    • 凸优化
    • 矩阵理论

    除了凸优化似乎都稍微学过了…

  • 凸优化:这个概念实际上机器学习中经常提到的,不过没有指出来这个名词而已。

    总的来说,凸优化是最优化问题中重要的组成部分之一。

    凸优化是来解决全局最小值的,他对于问题加以限制,对于目标函数限定为凸函数;对于优化变量的可行域限定为凸集。

    这样就能够使得的局部最优解一定是全局最优解。

    凸函数的概念好说,凸集的概念我还是第一次见到:

    在凸几何中,凸集(convex set)是在凸组合下闭合的仿射空间的子集。更具体地说,在欧氏空间中,凸集是对于集合内的每一对点,连接该对点的直线段上的每个点也在该集合内。例如,立方体是凸集,但是任何中空的或具有凹痕的例如月牙形都不是凸集。 [1]

    特别的,凸集,实数R上(或复数C上)的向量空间中,如果集合S中任两点的连线上的点都在S内,则称集合S为凸集。

    其中,对于凸函数而言,也有一定的扩展。

    对于多元函数,如果它是凸函数,则其Hessian矩阵为半正定矩阵。如果Hessian矩阵是正定的,则函数是严格凸函数。

//full BA
//首先是参数的初始化,调用了ceres中的方法
	ceres::Problem problem;
	ceres::LocalParameterization* local_parameterization 
				= new ceres::QuaternionParameterization();
	//cout << " begin full BA " << endl;
   //向矩阵当中填入对应的数值,包括位置信息、旋转信息
	for (int i = 0; i < frame_num; i++)
	{
   
		//double array for ceres
		c_translation[i][0] = c_Translation[i].x();
		c_translation[i][1] = c_Translation[i].y();
		c_translation[i][2] = c_Translation[i].z();
		c_rotation[i][0] = c_Quat[i].w();
		c_rotation[i][1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值