使用G2O拟合曲线
来源:互联网 发布:js确认密码与密码验证 编辑:程序博客网 时间:2024/05/17 03:58
这是参考自清华大学的高翔所著的《视觉SLAM十四讲》读后感,笔记和摘要。
使用G2O拟合曲线
首先,将曲线拟合问题抽象成图优化。在该问题中,只要记住节点为优化变量,边为误差项即可。
- 在曲线拟合问题中,整个问题只有一个定点:曲线模型的参数a,b,c;而各个噪声的数据点,构成了一个个误差项,也就是图优化的边。我们把边称为Hyper Edge,整个图叫做Hyper Graph 。
优化步骤
弄清楚这个模型后,接下来就是在G2O中建立该模型,进行优化了
- 定义顶点和边的类型
- 构建图
- 选择优化算法
- 调用g2o进行优化,返回结果
下面演示一下程序 std::cout<<"Hello World"<<std::endl;
在这个程序中,从g2o派生出了用于曲线拟合的图优化顶点和边:CurveFittingVertex和CurveFittingEdge,这实质上扩展了g2o的使用方式。在这两个派生类中,重写了重要的虚函数:
- 顶点的更新函数:oplusImpl。我们知道优化过程中最重要的是增量
Δx 的计算,而该函数处理的是xk+1=xk+Δx 的过程。在曲线拟合的过程中,由于优化变量本身位于向量空间中,这个更新计算确实就是简单的加法。但是,当优化变量不在向量空间中,比如说x 是相机位姿,它本身不一定有加法运算。这时,就需要重新定义增量如何加到现有的估计上的行为。 - 顶点的重置函数:setToOriginImpl。这是平凡的,把估计值置0.
- 边的误差函数计算:computerError。该函数需要去除边所连接的顶点的当前估计置,根据曲线模型,与它的观测值比较。这和最小二乘问题中的误差模型是一致的。
- 存盘和读数函数:read和write。由于并不像进行读/写操作,所以留空。
在定义了顶点和边之后,在main函数里声明了一个图模型,然后按照生成的噪声数据,往图模型中添加顶点和边,最后调用优化函数进行优化。g2o会给出优化的结果。
Code:
- Red
+ Green
* Blue
阅读全文
0 0
- 使用G2O拟合曲线
- g2o拟合曲线
- 拟合曲线
- 基于canvas使用贝塞尔曲线平滑拟合折线段
- g2o: 如何使用g2o的例子
- 最小二乘法拟合曲线
- MATLAB拟合曲线
- 拟合二元多次曲线
- 多项式拟合曲线
- tensorflow拟合曲线
- TensorFlow拟合曲线
- Matlab拟合曲线
- 最小二乘法拟合二元多次曲线
- 用最小二乘法构造拟合曲线
- 最小二乘法求多项式拟合曲线
- 【matlab】拟合曲线 polyfit set
- Matlab拟合曲线小例子
- 最小二乘法拟合多项式曲线原理
- Python3学习笔记:基本数据类型
- MyEclipse 的注册码 破解步骤
- java学习笔记(二十九)java中的i/o流
- zTree:实现单选/取消父子关联等
- python3版本安装
- 使用G2O拟合曲线
- js各种验证文本框输入格式
- oracle行级锁和表级锁
- 欧几里德算法与扩展欧几里德算法
- ADO.Net对Oracle数据库的操作(转载:自备学习)
- 【R的网络提取】CSDN博客列表和url的提取
- Android中使用ViewStub提高布局性能
- json-lib 和 jackson 性能对比
- 【effective java读书笔记】泛型(一)