没有合适的资源?快使用搜索试试~ 我知道了~
视觉SLAM整理,是视觉SLAM14讲的一些总结内容,用于自己归纳整理
需积分: 0 5 下载量 17 浏览量
2023-07-19
15:23:02
上传
评论
收藏 145KB PPTX 举报
温馨提示
试读
1页
这个博客算是自己四个月入门slam的所有学习路线,我依稀记得有位大佬说自己入门一年多,也有大佬半个月看完14讲的,但是就像当初考研捣鼓高数那样:研究难不难屁用没有,学到手的才是真实。 虽然我也不清楚那些学一年的人到底是在学啥,但是研究四个月发现SLAM内容非常丰富,如果你研究其中一个库甚至花一个月都不一定能研究明白。对于硕士来说,能看懂代码改改能用就行了。
资源推荐
资源详情
资源评论
视觉SLAM
参考资料
0准备
ubuntu系统
cmake工程
vim
1了解SLAM的基础知识
14讲
g++
16
18
20
能够在ubunu系统环境下使用C++来进行开发
目前已经完善的主体框架
前端:跟的上
后端:优化得到更准确的位姿
建立地图最差的点云地图就可以
回环用于降低整个过程的累计误差
主要的单目、双目、还有深度相机原理单目存在尺度不确定性
由两张图片进行对极几何求本质矩阵E,再从E中恢复R,t,但是由于这个t仅仅是个单
位向量所以对于任意的t极限约束都成立,后续就不需要堆积约束,但是这个不确定的
约束会对后续的BA有一定的影响
初始化也是个大问题(旋转+平移)
视觉的工作范围并不大
一般都在20m以内
2三维空间 的刚体运动
欧拉角、方向余弦、等效旋转矢量、四元素一般使用的就是旋转矩阵
还涉及到一个重点问题:向量通过旋转,知道前后坐标,求旋转
即AX=b矩阵分解问题
直接法
QR分解
LU分解
和惯性有区别所在
奇异值分解
3李群李代数基础
李群李代数主要是用来做运动矩阵的求导运算而引入的概念
三维旋转矩阵叫做特殊正交群SO(3)
变化矩阵(包含三维旋转矩阵,此外还有平移t)叫做特殊欧式群SE(3)
李群(矩阵)
李代数(向量)
认为是光滑的——所以可以求导数
知道三维矩阵经过时间的导数是有效的+与自己的转置乘就是单位矩阵
看书可以推出三维旋转矩阵其实是某个向量的指数映射
即李群可以看出是李代数的指数映射
由上面推三维矩阵的方法其实也就能够推出se(3)
这样就能够推出so(3)
这里还存在一个误区
Z是真实位姿,p是上一次位姿,w是扰动,T是变量表示变换
我们目的就是估计出一个合适的T实现某次的最小
从而整体最小
直接积分要计算雅可比(复杂),所以用了左扰动模型得出最后的对变化矩阵的倒数
4相机模型
最复杂的是几个坐标系之间的定义以及转化
5非线性优 化
主要是对现有的位姿来估计变化矩阵(有点像离散的众多点来画曲线)
非线性优化主要是ceres还有g20
相机的模型比较简单就不细说了
优化一直都是一个大的问题,有早期的滤波到现在的非线性优化
主要研究的就是g20
也比较简单,我们只要添加结点(实际的位姿)还有线(变化矩阵)就能够进行优化
ceres暂不介绍
6视觉 里程计1-间接(特征点)法
前端部分:要求跟的上 从每次的帧中提取特征点,然后匹配特征点即可
特征点很多种,但是经过验证ORB效果最好
特征点主要是关键点(点)还有描述子(用于匹配点)组成
ORB的关键点是FAST角点,主要是根据周边亮度的差异提取,描述子主要是比较角点
周边的像素点之间的亮度差异计算出向量,然后用于匹配该点
一开始使用对极约束:用特征点提取以及特征点的匹配来恢复变化矩阵
这种方法比较复所以旨在一开始使用 单目有一定的尺度误差
利用变化矩阵变化对向量的变化前后的对应关系,左乘运算可以得到对及约束公式
然后利用八点法经过SVD分解可以求出本质矩阵
平面之间的变化使用单应矩阵 实际这两种方式都是要使用的,最后谁占比较大就用谁
对本质矩阵还有单应矩阵进行分解,就能够得到RT(会有错误的解,但是带入深度可
以剔除)
三角法求距离
之后使用pnp来求解变化矩阵
p3p
DLT
BA
3D到2D
特征点投影在新帧后与理论计算的位置进行最小误差分析
g2o优化
ICP
直接线性变化
3D到2D
直接推导向量经过矩阵的变化
使用投影将2D点“延申”(投影)到3D空间中 然后在用ICP
3D到3D
3D到3D
后续使用的是SVD以及非线性优化(类似BA)解
7视觉 里程计2-直接法
匹配的是具有一定辨识度的像素点,利用光度变化小的假设进行建模分析
这部分没有更加深入的研究 但是听说直接法相对于间接法速度更快,更加适合用于快速移动的相机(高速公路)
8后端
不管是直接发还是间接法都是在前端要求的是跟的上,基本上对精度要求比较低 但是在后端就要求更高的定位精度了
从一开始初始化定位之后,每次帧变化的变化矩阵都是一次更新量,通过滤波、BA的
方法实现更精确的定位
这里BA最主要是想将每次坐标变化后的3D点回投的相机光心集中在一个点中(每帧
都会对应一个相机光心,要做的就是收束该帧对应的3D点进行集中)
这是一个比较复杂的步骤,因为一个相机对应多个点,在滤波的公式所反映的矩阵比
较复杂——庆幸的是这个矩阵具有稀疏性(大体上是说不是每个相机光心都能看到所有
的点,所以对一些点的偏导就是0)
表现得就是一个斧头的形状
说到这里就比较明朗了
滤波的方式就可以使用ceres继续求解
还有一个鲁棒核函数的概念
大体上说滤波的数据中如果出现了一组比较尼普(或者说就是错误的数据),这组数
据的误差就比其他组数据要大得多,对最后的结果损失函数的影响也比较大。为了减
少这个问题,使用的就是鲁棒核函数,让超过一定范围的误差减少对最后误差函数的
影响
非线性的方法据可以使用g2o继续
后端还有一个注意事项就是规模不能过大
所以使用的是滑动窗口+关键帧的模式来减少计算的规模
9回环检 测
相机是由累计误差的,这和惯性是一样的 但是相机有一点比较特殊,它能够实现图像的相似度检测 换句话说就是能够识别曾经来过这里
利用相机检测出相似图片这一概念就能够进行闭环
简单来说就是说定位开始还有结束是同一个位置,一但相机识别到了,就会对全局定
位进行修正,来减少误差
具体的Bow2、3我是没有研究过,挺玄学的
10建图
视觉SLAM没有那么多讲究,建立一个最差的点云地图就行了
稠密点云,栅格就需要自己非一些心思
11整体系统
这里最后对整个流程整理一下
简单来说前后端回环,建图是一个多线程的任务,对于时间的分配比较复杂不建议自
己设计系统
资源评论
灵性花火
- 粉丝: 60
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功