SLAM
SLAM
Simultaneous Localization And Mapping, 同步定位与构图
简述
-
Simultaneous Localization And Mapping, 同步定位与构图, 参考链接bilibili
-
输入
- 可见光视觉
- IMU, 用于 VR
- 激光雷达
- 声呐, 水下
-
应用领域
- 无人驾驶
- 虚拟现实(VR)
- 增强现实(AR)
- 无人机
- 自主服务机器人
-
算法
- EKF-SLAM
- FAST-SLAM, 需要现有常见的地图
- Graph-SLAM
- Scan matching
- RGTBD-SLAM
- ORB-SLAM
- LSD-SLAM
- LOAM, Ji Zhang
-
数据集
- KITTI
刚体运动
1. 相机位姿 1. 平移 2. 旋转
-
3D 坐标系的平移和旋转
-
原点的平移, 本质上就是两个坐标系原点的向量 tt
-
X, Y, Z 轴的旋转, 在坐标系中的同一个向量左乘一个旋转矩阵(RR)得到
-
旋转矩阵的定义
-
RR 的特性
-
角轴/旋转向量
另外一种表示旋转的方式
上图中, 红色的 w 为角轴, 向量 a 绕轴 n 旋转 theta 角度之后, 变换到了向量 b, w 称之为角轴或者旋转向量, n 表示旋转的方向, theta 表示旋转的大小
-
旋转向量与旋转矩阵的区别
-
四元数
另外一种表示旋转的方法, 在实际应用中比较广泛
a 与 b 向量的叉乘为, a 与 b 组成的平面的法向量的方向, 而长度是 a 与 b 向量组成的平行四边形的面积, 虚部之间的关系在上面的图片中有介绍到
-
-
刚体运动表示为: a′=Ra+ta′=Ra+t
-
再高一层次, 如果遇到多次变换, 则 3 会显得复杂繁琐, 可以将平移和旋转放到一个矩阵中, 这个矩阵称之为变换矩阵 (T), 之后就可以在两个坐标系中通过 a=Tb 计算
- 变换矩阵
-
反向计算 T
- 在实际应用中, 总是先得到世界坐标, 再通过计算得到相机位姿
-
群
一个集合再加上一个运算符且满足如下性质即为一个群
-
相机模型
- 相机记录的是真实世界在成像平面上的投影
- 在投影的过程中, 丢失了距离, 深度的信息
物理平面到像素平面
-
相机在拍摄图片的时候, 得到的是图像是在物理成像平面上的, 如果要得到其像素坐标(一般图像的基本单位是像素), 需要对单位进行映射
- P 为实际的点, P' 为成像平面上的点
- 以相机光心为原点的相机坐标系, 一般 Z 轴指向相机的正前方
- f 为 focal length, 表示焦距
- 通过三角形的相似公式可以得到像素平面的坐标, 但是因为是单目的, 无法得到几何信息
- Alpha 和 beta 表示比率, cx 和 cy 表示偏移量, 最终得到的 u 和 v 就是新的坐标系下的 P' 的坐标
- 最后一个公式, fx 和 fy 分别为 alpha 和 beta 与 f 混合的数
-
对上面的公式进行变换得到相机的内参数
一般相机的内参数在生成之后就已经固定了, 一般来说可以将其当做已知条件, 但是如果对图片进行 resize, clip, 或者 copy 等操作可能导致内参数改变
内参数包括
1. 相机成像平面在 x 和 y 轴方向上到像素平面的比率 2. 相机物理平面到像素平面的偏移量 上面的内参数可以简单的理解为相机的分辨率
-
相机的外参数
相机的外参数, 即相机的位姿(camera poses)
- 平移
- 旋转
双目模型
模拟人眼两只眼睛的工作
双目模型下 3D 坐标计算
- 参考链接
特征匹配
特征点
一般角点是特征点
FAST 与 SIFT 算法十分类似
FAST 计算特征点的方法
- 在 4x4 的区域内选择一个像素作为中心点, 如果在该区域内的像素值 P 与中心像素点 C 的差的绝对值大于一个阈值 T, 则认为该中心点可能为角点, 只要出现连续的 N 个这样的点, 就认为该中心点为角点, 这里的计算的实质就是计算像素的差, 判断是否为边界
- 对原图进行多尺度变换构成图像金字塔, 在重复 1 步骤, 得到 FAST 的多尺度信息
- 为每一个特征点计算出质心, 一般来说, 选取一块区域, 根据该区域的零阶矩和一阶距计算出质心, 几何中心到质心的方向就是该特征点的方向, 可以定义为 theta
- 计算 BRIEF 描述符
- 用来描述一个特征点额外的信息
- 将每张图片中的每一个特征点的特征点领域中的随机像素进行比较, 比如选出 128 对(a, b), 每一对比较大小, 如果 a>b 则输出1, 如果 a<b 则输出0, 最后每一个特征点会得到一个 1x128 维度的向量, 对另外一张图也是如此, 每一个特征点得到一个 1x128 的向量, 比较他们的汉明距离
- 参看链接ORB 特征提取、匹配及实现
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
2018-07-09 网页URLs