重庆网站建设公司哪个最好,老家装设计网,梅江区建设局网站,做ppt好的模板下载网站有哪些内容「本文是之前学习VO 部分整理的思维导图#xff0c;笔记写入之后均折叠了起来#xff0c;正文中采用markdown格式展开#xff0c;可看到笔记内容」放上来的目的其实是方便自己查阅笔记#xff0c;同样给有需要的同学提供一点思路。整体上的结构分为5部分#xff0c;包括常…「本文是之前学习VO 部分整理的思维导图笔记写入之后均折叠了起来正文中采用markdown格式展开可看到笔记内容」放上来的目的其实是方便自己查阅笔记同样给有需要的同学提供一点思路。整体上的结构分为5部分包括常用特征点介绍、运动估计、深度估计、光流法、直接法。按照这个顺序可以比较好的回忆和串联内容建议的阅读方式为主要看思维导图遇到不清楚的地方去下文找笔记和具体内容。# 视觉里程计VO## 常见特征点### ORB- 关键点Oriented FAST - 检测亮度变化明显处 - 步骤 - ①像素p_{i}的亮度I_{p_{i}} - ②阈值T - ③半径316个像素点 - ④预处理1,5,9,13至少三个满足阈值条件 - ⑤连续12个像素点满足阈值条件 - ⑥灰度质心计算方向- 描述子BRIEF二进制- ORB特征点提取 - 1. 提取FAST角点 - 方向问题计算灰度质心 - 尺度问题构建图像金字塔 - 2. 计算BRIEF描述子- 特征点匹配 - 二进制描述子 - 汉明距离 2*最小距离 || 阈值 - 浮点类描述子 - 欧氏距离### SIFT尺度不变特征变换(Scale invariant feature Transform,SIFT)https://blog.csdn.net/songzitea/article/details/13627823- 原理相关 - 高斯差分 DOG - 对各层图像进行不同程度的高斯滤波后形成DOG金字塔 - 特征的特点 - 具有图像尺度 - 具有旋转不变形 对应着下方求关键点方向为每一个特征点都计算了方向后面的操作都在各个点的方向上进行保证了旋转不变形 - 对光照变化也具有一定程度的不变性 - 目标是解决低层次特征提取 - 可减少低由遮挡、杂乱和噪声引起的低提取概率 - 缺点 - ①实时性低 - ②特征点少 - ③对边缘光滑的图像有时无能为力- 步骤 可以看到计算量很大因此实时性不容易满足 SIFT算法建立一幅图像的金字塔在每一层进行高斯滤波并求取图像差(DOG)进行特征点的提取 - 1. 尺度空间极值检测 - ①由原图像生成图像金字塔 - ②关键点初步探查 非极大值抑制 通过检测不同层之间的图像的极值点来进行关键点的初步探查。 过程很简单就是与周围的像素点进行比较当大于或小于所有相邻点时即为极值点。下图中的X不仅要跟周围的O进行比较还要跟上一层和下一层的9x2个O进行比较才能确定是否是极值点。 - ③拟合真正极值点 使用泰勒展开式 - 2. 关键点定位 - ①去除低对比度特征点 - ②去除不稳定边缘相应点 - 3. 求取特征点方向 利用关键点邻域像素的梯度方向分布特性我们可以为每个关键点指定方向参数方向从而使描述子对图像旋转具有不变性我们通过求每个极值点的梯度来为极值点赋予方向。 对于在DOG金字塔检测到的关键点采集所在图像3σ邻域窗口内像素的梯度和方向特征并进行统计。取幅值最高的方向为主方向超过峰值百分之80的方向为辅方向。 - 4. 求描述子描述关键点 为了保证特征向量具有旋转不变性需要将坐标轴旋转到关键点的方向。 - 5. 生成特征匹配点 将特征点邻域分为几个区块计算八个方向的梯度方向直方图。这里有16个区域所以生成了16x8128个维度的数据。在进行统计之前还要进行一次高斯加权特征点附近的区域权值大相反权值小。### SURFSpeeded Up Robust Featureshttps://blog.csdn.net/songzitea/article/details/16986423- 与SIFT相似 - 是SIFT加强版同时加速的具有鲁棒性的特征 - SIFT较稳定检测特征点更多但复杂度较高 - SURF运算简单效率高运算时间短 - SIFT先利用非极大抑制再用到Hessian矩阵进行滤除SURF先用Hessian矩阵再进行非极大抑制。- 特征 - 采用了harr特征 - 采用了积分图像integral image概念- 步骤 SURF使用Hessian Matrix进行特征点的提取所以海塞矩阵是SURF算法的核心 - ①构建海塞矩阵 由于我们的特征点需要尺度无关性所以在进行Hessian矩阵构造前需要对其进行高斯滤波。 - ②尺度空间生成 图像的尺度空间是这幅图像在不同解析度下的表示。 在进行高斯模糊时SIFT的高斯模板大小是始终不变的只是在不同的octave之间改变图片的大小。 而在SURF中图片的大小是一直不变的不同的octave层得到的待检测图片是改变高斯模糊尺寸大小得到的同一octave中的图片用到的高斯模板尺度也不同。 - ③非极大抑制初步确定特征点和精确定位特征点 将经过hessian矩阵处理过的每个像素点与其3维领域的26个点进行大小比较如果它是这26个点中的最大值或者最小值则保留下来当做初步的特征点。 然后采用3维线性插值法得到亚像素级的特征点同时也去掉那些值小于一定阈值的点增加极值使检测到的特征点数量减少最终只有几个特征最强点会被检测出来。 - ④确定特征点主方向 在SURF中不统计其梯度直方图而是统计特征点领域内的Harr小波特征。 即以特征点为中心计算半径为6s(S为特征点所在的尺度值)的邻域内统计60度扇形内所有点在x(水平)和y(垂直)方向的Haar小波响应总和(Haar小波边长取4s)并给这些响应值赋高斯权重系数使得靠近特征点的响应贡献大而远离特征点的响应贡献小然后60度范围内的响应相加以形成新的矢量遍历整个圆形区域选择最长矢量的方向为该特征点的主方向。这样通过特征点逐个进行计算得到每一个特征点的主方向。 - ⑤构造描述子## 由匹配点估计相机运动### 单目相机2D-2D- 对极约束 - x_{2}^{T}*E*x_{1} p_{2}^{T}*F*p_{1} 0 - 本质矩阵 E t^R - ①内在性质奇异值为[σσ0] - ②不同尺度下等价尺度等价性 - ③由于②自由度为6-15个 - 基础矩阵 F K^{-T}*E *K^{-1} - 单应矩阵 H R - t*n^{T}/d - 描述两个平面映射关系 - 用于特殊情况特征点位于同一平面 - 求解方法直接线性变换 DLT- 求解步骤 - 1. 根据配对点计算 E 或者 F - 2. 根据 E or F or H 计算 R 和 t 实际中往往同时估计E/F/H选择重投影误差最小的作为最终的运动估计矩阵 - ①由于自由度为5最少用5对点求解 - ②常用8点法即8对点 - ③对 E 进行奇异值分解(SVD) - ④由于E的尺度不变形直接取奇异值矩阵Σdiag (1, 1, 0)- 存在问题 - 尺度不确定性 - 来源于对 t 归一化 这么做的起因是E具有尺度等价性因此 t 也具有尺度等价性令其为1即称为归一化。 - 初始化 以 t 为单位1计算相机运动和特征点的3D位置 - 纯旋转问题 - 单目SLAM初始化必须有平移 若平移t0那么E也将为0就没法求解了 - 多余8对点 - 最小二乘解决 - 随机采样一致性(实际中采用) 可处理带错误匹配的数据适用于误匹配时### 3D-2D最重要的姿态(运动)估计方法。3D位置可以由三角测量或者RGB-D深度图获得- 无需使用对极约束- PnP (Perspective-n-Point) - 使用情况 - 双目orRGB-D直接使用 - 单目必须经过初始化 - 求解方法 - DLT 直接线性变换 - ①使用齐次坐标P, x P(X, Y, Z, 1) x(u, v, 1)投影点用归一化坐标 - ②定义增广矩阵T T [ R | t] 显然包含了平移和旋转信息 - ③线性展开s*x T*P - ④对于R从上面求解的T中去除左边3*3矩阵块进行分解 - P3P 使用3对配对点估计位姿 注意: 3D点的坐标是在世界坐标系中 2D点坐标是在相机坐标系中 - ①三角形相似余弦定理 - ②求解方程组得到3D点在相机坐标系中的坐标 - ③利用3D-3D解法求解 - EPnP Efficient PnP - BA 非线性优化 Bundle Adjustment; 捆集调整/光束法平差 - 相机位姿与3D位置一起优化 优化变零即相机位姿(R, t)和特征点3D位置 - ①定义误差项 e e u - KTP/s 被称为重投影误差 - ②构建最小二乘问题 T arg min ||……||^{2} - ③获得误差对于优化变零的雅克比矩阵 误差对于相机位姿李代数的雅克比矩阵 误差对于特征点3D位置的雅克比矩阵 - ④选择优化算法求解GN/LM等 - 使用g2o实现BA优化 - ①声明图优化器 - ②配置优化求解器和梯度下降方法 - ③根据估计得到的特征点将位姿和空间点放入图中 - ④调用优化函数进行求解### 双目、RGB-D3D-3D- 使用情况匹配好的3D点对 未出现相机模型在3D-3D情况下与相机并没有关系- 求解ICP ICPIterative Closest Point 迭代最近点 这里说的ICP问题是指已有特征匹配的情况下进行位姿估计的问题 - 线性代数求解SVD - 推导定义误差项 e_{i} p_{i} - ( R*p_{i}^{ } t ) 注意这里不要使用李群中的变换矩阵T - 推导构建最小二乘问题 - 推导添项、展开、等价 - ICP的SVD求解步骤 - ①计算两组点质心位置再计算各点去质心坐标 质心位置p, p_{ } q_{i} p_{i} - p q_{i}^{ } p_{i}^{ } - p^{ } - ②根据最小二乘优化问题计算 R R^{*} arg min ∑||q_{i} - R*q_{i}^{ } ||^{2} - R的求解要用到SVD - ①令W ∑q_{i}*q_{i}^{ T } - ②对W进行SVDW U*∑*V^{T} - ③则R U*V^{T} - ③由得到的 R 计算 t t p - R*p^{ } - 非线性优化BA - 以迭代方式寻找最优 - 求解步骤类似PnP - ①以李代数表示位姿构建目标函数 - ②推导雅克比矩阵使用李代数扰动模型 - ③选择优化算法求解 - 求解特点 - 存在无穷多解情况失效 - 存在唯一解情况 - 极小值解即为全局最优解 - 意味着ICP求解可任意选定初值 - 实际使用中混用PnP和ICP - 特征点深度已知 - 建模3D-3D误差 - 特征点深度未知 - 建模3D-2D重投影误差## 由相机运动估计特征点空间位置### 三角测量- 思路来源 - 单目SLAM无法通过单张图像获得像素深度信息 - 三角测量用于估计点的深度 - 步骤 - ①由对极约束得到了相机运动后 - ②再由相机运动估计特征点空间位置- 定义 - ①在不同位置对同一个路标点进行观察 - ②从观察到的位置推断路标点深度- 求解 - ① s_{2}*x_{2} s_{1}*R*x_{1} t - ②已知R, t求解s_{1}, s_{2} - 两侧左乘x_{2}^{^} - ①式等于0求解s_{1}## 光流法### 光流- 描述了像素在图像中的运动- 分类 - 稠密光流 - 稀疏光流 - LK光流### 以LK光流为例- 灰度不变假设- 思路 - 下一时刻灰度等于之前的灰度 I(xdx, ydy, tdt) I(x, y, t) 进行一阶泰勒展开 frac{partial I}{partial x}*(dx) frac{partial I}{partial y}*(dy) frac{partial I}{partial t}*(dt) 0 写成矩阵形式 [I_x I_y] * [u v]_T -I_t - 某一窗口内的像素具有相同的运动- 用途效果 常用于追踪角点。可以加速基于特征点法的视觉里程计算法。- 多层光流法 构造图像金字塔从顶层向底层进行计算由粗至精的计算思路相当于是在顶层是粗略定位往下做是不断精细化像素点。## 直接法### 思路直接根据像素灰度信息获得相机运动和对应点的投影因此不知道在第二幅图像中哪个 p_2 对应着 p_1 。此时我们根据估计的相机位姿来找 p_2 当估计的位姿不好时 p_2 与 p_1 会有明显不同灰度不变假设这时我们通过构造优化问题不断调整位姿以减小像素灰度差别。### 分类- 稀疏直接法 速度最快只能计算稀疏的重构- 半稠密直接法 只是用带有梯度的像素点- 稠密直接法 计算所有像素点### 优缺点- 优点 - 无需计算特征点及描述子节省时间 - 只要求有像素梯度无需特征点 - 可构建(半)稠密地图- 缺点 - 非凸性问题带来的局部极小问题 - 单个像素不具备区分度 - 需要灰度不变假设实际难以满足