SLAM 中的三角测量

三角测量是SLAM中,利用相机运动估计特征点空间位置的过程。

本节旨在解决以下问题:

  1. 三角测量的概念
  2. 三角测量的过程及代码实现;
  3. 三角测量有哪些不确定性
  4. 如何提高三角测量的精度

本文学习 SLAM 中的三角测量,即已知相机运动 R、t 后,利用两帧特征点的归一化坐标求解地图点的深度与空间位置。文章给出三角化的数学推导与基于 OpenCV 的代码实现,并分析了三角化的不确定性来源以及提高精度的措施。

三角测量,由视差求深度

阅读更多...

SLAM 初始化

本节的学习要点:

  1. 初始化的目的(单目/双目)
  2. 初始化的两种方法
  3. 初始化过程

本文学习 SLAM 初始化,阐明单目初始化构建初始三维点云并为后续估计提供初始值的目的,介绍了追踪已知物体、计算单应矩阵与基础矩阵三种常用方法。文章重点梳理 ORB-SLAM2 单目初始化的完整流程——初始帧匹配、位姿计算(八点法与 RANSAC 模型选择)、三角测量与地图创建、BA 优化,并简述双目与 RGB-D 的初始化。

初始化定根基,后续估计方有所依

阅读更多...

KMP 字符串匹配算法

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。

本文讲解 KMP 字符串匹配算法的原理与实现,从暴力匹配的回溯缺陷出发,引入 next 数组记录模式串前缀后缀的最长公共长度,将时间复杂度从 O(nm) 优化到 O(m+n),并给出完整的 next 数组构造与匹配源代码。

利用失配信息,让匹配不再回溯

阅读更多...

运动一致性判断

直至以来,SLAM的研究共朝着三个方向努力:精度、速度、鲁棒性。尤以鲁棒性居多。通常动态场景中,根据IMU测量值与视觉测量值分别进行计算得到的结果会有所不同。因此需要进行一致性的检测,以得到真值。本文将主要讲运动一致性检测。

本文介绍 SLAM 动态场景下的运动一致性检测方法,分别梳理基于聚类残差的非参数统计模型、基于 IMU 与视觉重投影残差的冲突判断,以及基于光流的动态区域检测等几类论文方法,用于分离动态物体与静态背景。

动静分离,方能求得位姿真值

阅读更多...

粒子滤波器

粒子滤波(Particle Filter)通过一组带权重的随机粒子近似状态的后验分布,适用于非线性非高斯系统的状态估计,是 EKF 之外的另一大类滤波方法。

以粒子之众,逼近状态之真

阅读更多...

高斯混合模型

高斯混合模型

本文学习高斯混合模型(GMM):先给出由多个高斯分模型线性组合的概率分布定义与模型形式,再推导用 EM 算法估计模型参数的 E 步(求各分模型对观测数据的响应度)与 M 步(更新参数),最后介绍 GMM-HMM 及其在语音识别中的应用。

简单分布叠加,拟合复杂世界

阅读更多...

概率图模型

概率图模型( probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即“变量关系图”.根据边的性质不同,概率图模型可大致分为两类:第一类是使用有向无环图表示变量间的依赖关系,称为有向图模型或贝叶斯网( Bayesian network);第二类是使用无向图表示变量间的相关关系,称为无向图模型或马尔可夫网( Markovnetwork)

本节将用来介绍概率图模型。

本文介绍概率图模型的基础知识:以结点表示随机变量、边表示变量间关系的核心思想,有向图(贝叶斯网)与无向图(马尔可夫网)两类模型的区别,条件独立性在降低计算复杂度中的作用,以及因子分解、道德图与因子图等关键概念。

用图言变量,依赖一目了然

阅读更多...

隐马尔可夫模型

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态的序列,再由各个状态随机生成一个观测而产生观测的序列的过程。

隐马尔可夫模型是可用于标注问题的统计学习模型,描述有隐藏的马尔科夫链随机生成观测序列的过程,属于生成模型。本文将学习隐马尔可夫模型,着重介绍掌握HMM的模型、应用、及理论推导过程。

来源:李航的《统计学习方法》

本文依据李航《统计学习方法》系统学习隐马尔可夫模型:阐述 HMM 的三要素定义、两个基本假设与观测序列生成过程,推导直接计算法与前向-后向算法的概率计算、Baum-Welch 学习算法和维特比预测算法,并介绍其在语音识别、自然语言处理与词性标注中的应用。

看不见的状态,可观测的序列

阅读更多...

Kalman 滤波器学习

概率图+时间=动态系统

​ 对概率图模型考虑其时间序列,可以得到动态系统。根据动态系统的隐状态的连续性和分布可以把系统大致分为三类:

  1. 若隐状态离散,不要求分布,则为隐马尔可夫模型
  2. 如果隐状态连续、线性且服从高斯分布,则为Kalman滤波器(线性高斯模型)
  3. 如果隐状态连续且非线性,作为得到粒子滤波器

本节主要来介绍kalman滤波器。

本文系统学习卡尔曼滤波器:从动态系统分类引出线性高斯系统,给出 KF 的前提假设与算法流程,并结合代码样例与基于后验概率的推导加深理解,最后介绍扩展卡尔曼滤波(EKF)的应用场景与局限性及其与 HMM 的关系。

预测加修正,噪声终让路

阅读更多...

经典聚类算法调研

本文将盘点六个经典的聚类算法,以便于后续研究。经典的聚类算法主要包括以下六种:

  1. Means-shift聚类
  2. k-means聚类
  3. Fuzzy C means聚类
  4. Medoid shift算法
  5. Turbopixel算法
  6. SLIC算法

本文盘点六个经典聚类算法:均值漂移(Means-shift)、k-means、模糊 C 均值、Medoid shift、Turbo Pixel 与 SLIC,逐一介绍各算法的核心思想、实现步骤与优缺点,为后续图像分割等研究做算法选型准备。

物以类聚,算法以分见真章

阅读更多...
  • © 2019-2026 guoben

微信