【视觉SLAM:八、后端Ⅰ】

视觉SLAM的后端主要解决状态估计问题,它是优化相机轨迹和地图点的过程,从数学上看属于非线性优化问题。后端的目标是结合传感器数据,通过最优估计获取系统的状态(包括相机位姿和场景结构),在状态估计过程中通常引入概率模型,以最大化后验概率或最小化代价函数的方式求解。以下从概述、BA(Bundle Adjustment,捆绑调整)与图优化的角度,全面介绍视觉SLAM的后端实现。

概述

状态估计的概率解释

SLAM问题本质上是一个状态估计问题,常用贝叶斯滤波进行建模: p ( x t ∣ z 1 : t , u 1 : t ) ∝ p ( z t ∣ x t ) ∫ p ( x t ∣ x t − 1 , u t ) p ( x t − 1 ∣ z 1 : t − 1 , u 1 : t − 1 ) d x t − 1 p(\mathbf{x}_t|\mathbf{z}_{1:t},\mathbf{u}_{1:t})\propto p(\mathbf{z}_t|\mathbf{x}_t)\int p(\mathbf{x}_t|\mathbf{x}_{t-1},\mathbf{u}_t)p(\mathbf{x}_{t-1}|\mathbf{z}_{1:t-1},\mathbf{u}_{1:t-1})d\mathbf{x}_{t-1} p(xtz1:t,u1:t)p(ztxt)p(xtxt1,ut)p(xt1z1:t1,u1:t1)dxt1

  • x t \mathbf{x}_t xt :系统状态(如相机位姿)。
  • z t \mathbf{z}_t zt :观测(如图像特征点)。
  • u t \mathbf{u}_t ut :控制量或运动模型。

该公式表明,状态估计是基于当前观测、运动模型和历史状态的一种递归估计。

线性系统和卡尔曼滤波(KF)

  • 线性系统模型:卡尔曼滤波假设状态转移方程和观测方程是线性关系:
    x t = A t x t − 1 + B t u t + w t \mathbf{x}_t=\mathbf{A}_t\mathbf{x}_{t-1}+\mathbf{B}_t\mathbf{u}_t+\mathbf{w}_t xt=Atxt1+Btut+wt
    z t = H t x t + v t \mathbf{z}_t=\mathbf{H}_t\mathbf{x}_t+\mathbf{v}_t zt=Htxt+vt
    其中, w t \mathbf{w}_t wt v t \mathbf{v}_t vt是噪声,通常服从高斯分布。
  • 卡尔曼滤波提供了最优状态估计:
    • 预测:基于运动模型预测当前状态。
    • 更新:结合观测数据修正状态。

卡尔曼滤波具有很高的计算效率,但只能处理线性系统。

非线性系统和扩展卡尔曼滤波(EKF)

  • 在实际SLAM中,状态转移方程和观测方程通常是非线性的: x t = f ( x t − 1 , u t ) + w t \mathbf{x}_t=f(\mathbf{x}_{t-1},\mathbf{u}_t)+\mathbf{w}_t xt=f(xt1,ut)+wt
    z t = h ( x t ) + v t \mathbf{z}_t=h(\mathbf{x}_t)+\mathbf{v}_t zt=h(xt)+vt
  • EKF通过对非线性函数进行一阶线性化,将非线性问题近似为线性问题:
    • 使用雅可比矩阵线性化 𝑓(⋅) 和 ℎ(⋅)
    • 在每一步更新中,使用卡尔曼滤波进行递归估计。

EKF的讨论

  • 优点:
    • EKF可以处理非线性系统,适用于SLAM问题。
  • 局限性:
    • 一阶线性化导致近似误差,特别是在非线性程度较高时效果较差。
    • 计算复杂度较高,不适合大规模SLAM系统。

因此,在实际的视觉SLAM中,后端更多使用非线性优化方法,如捆绑调整(BA)与图优化。

BA与图优化

投影模型与BA代价函数

  • 投影模型
    在视觉SLAM中,2D观测点 z i \mathbf{z}_i zi 与3D地图点 P j \mathbf{P}_j Pj 的关系由投影模型描述: z i = π ( K [ R ∣ t ] P j ) \mathbf{z}_i=\pi(\mathbf{K}[\mathbf{R}|\mathbf{t}]\mathbf{P}_j) zi=π(K[Rt]Pj)
    • K:相机内参矩阵。
    • [ R ∣ t ] [\mathbf{R}|\mathbf{t}] [Rt]:相机位姿。
    • π(⋅):将3D点投影到图像平面。
  • BA代价函数
    BA的目标是最小化重投影误差,代价函数为: E = ∑ i , j ρ ( ∥ z i − π ( K [ R i ∣ t i ] P j ) ∥ 2 ) E=\sum_{i,j}\rho\left(\|\mathbf{z}_i-\pi(\mathbf{K}[\mathbf{R}_i|\mathbf{t}_i]\mathbf{P}_j)\|^2\right) E=i,jρ(ziπ(K[Riti]Pj)2)
    • ρ ( ⋅ ) \rho(\cdot) ρ():鲁棒核函数,用于减小异常值的影响。

BA的求解

BA是一个非线性最小二乘优化问题,通常使用高斯-牛顿法或列文伯格-马夸尔特(LM)法求解:

  • 高斯-牛顿法:直接使用二阶近似求解非线性问题,收敛快但对初值敏感。
  • LM方法:在梯度下降和高斯-牛顿之间平衡,鲁棒性更好。

具体流程:

  • 初始化相机位姿和地图点坐标。
  • 计算雅可比矩阵,并构造稀疏的线性方程。
  • 迭代更新位姿和地图点,直至误差收敛。

稀疏性与边缘化

  • 稀疏性
    BA问题的雅可比矩阵具有稀疏性,因为每个观测点仅依赖于特定的相机位姿和地图点。利用稀疏矩阵计算,可以显著提高优化效率。
  • 边缘化
    在SLAM中,为了减小计算量,会将旧的状态变量边缘化:
    • 将不再需要优化的变量(如历史关键帧)边缘化。
    • 通过边缘化保持稀疏结构,并降低优化问题的维度。

鲁棒核函数

实际观测中常有异常值(outliers),如错误匹配的特征点。为减小异常值对优化的影响,BA中引入鲁棒核函数:

  • 常见核函数有Huber核、Cauchy核等。
  • 核函数通过降低异常值的权重,使得优化结果更加鲁棒。

总结

视觉SLAM后端通过概率模型和非线性优化方法实现状态估计和地图构建。其核心任务是通过最大化后验概率或最小化重投影误差,优化相机轨迹和地图点位置。

  • 状态估计:从卡尔曼滤波(KF)到扩展卡尔曼滤波(EKF),提供递归的状态更新方案。
  • BA与图优化:通过非线性最小二乘优化(如BA),实现全局优化。
  • 鲁棒性和效率:利用稀疏矩阵计算、边缘化和鲁棒核函数,提升系统的计算效率和鲁棒性。

这种多层次的优化体系是视觉SLAM后端的核心,也是其能在复杂环境中实现鲁棒性能的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/946010.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3D数学基础2

矩阵的行列式 在任意方阵中都存在至少一个标量,称作该方阵的行列式。在线性代数中,行列式有很多有用的性质 线性运算法则 方阵 M M M的行列式记作 ∣ M ∣ |M| ∣M∣或“det M”。非方阵矩阵的行列式是未定义的。 注意,在书写行列式时&…

2024国产化信创产品名录

文章目录 一、JDK/OpenJDK替代品1、龙芯JDK2、阿里巴巴Dragonwell3、毕昇JDK4、腾讯 Kona 二、Tomcat替代品1、东方通TongWeb2、宝兰德Web服务器软件3、普元信息Primeton AppServer4、金蝶天燕AAS应用服务器 三、Nginx替代品1、宝兰德WebServer2、东方通TongHttpServer3、Tengi…

OpenCV-Python实战(11)——边缘检测

一、Sobel 算子 通过 X 梯度核与 Y 梯度核求得图像在,水平与垂直方向的梯度。 img cv2.Sobel(src*,ddepth*,dx*,dy*,ksize*,scale*,delta*,borderType*)img:目标图像。 src:原始图像。 ddepth:目标图像深度,-1 代表…

基于微博热搜评论的情感分析与热点主题挖掘研究

目录 1、绪论 1.1 研究背景与研究意义 1.2 数据来源 1.3 技术路线 2、数据预处理 2.1 数据清洗与准备 2.2 导入必要库与加载数据 2.3 加载停用词表与分词处理 2.4 统计词频与高频词分析 3、情感分析与主题建模 3.1 情感分析 3.2 主题建模 3.3 热点主题识别 4、数据可视…

【毕业设计选题】目标检测方向毕业设计选题推荐 2025

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整…

Windows onnxruntime编译openvino

理论上来说,可以直接访问 ONNXRuntime Releases 下载 dll 文件,然后从官方文档中下载缺少的头文件以直接调用,但我没有尝试过。 1. 下载 OpenVINO 包 从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下,例如…

PCB设计检查助手——焊盘中间丝印检查

焊盘中间丝印检查功能用于检查双引脚元件中间是否有垂直两个焊盘连线的元件,由于较大双贴片引脚不用考虑中间的丝印,在检查时会自动过滤两个引脚大于1mm以上的元件,此功能在检查时,两个引脚的间距小于等于1mm,且元件的…

LiteFlow 流程引擎引入Spring boot项目集成pg数据库

文章目录 官网地址简要项目引入maven 所需jar包配置 PostgreSQL 数据库表使用LiteFlow配置 yml 文件通过 代码方式使用 liteflow数据库sql 数据在流程中周转 官网地址 https://liteflow.cc/ 简要 如果你要对复杂业务逻辑进行新写或者重构,用LiteFlow最合适不过。…

MATLAB学习-1 蚁群算法解决TSP问题

matlab安装可以在网上找一个安装教程,我安装的是R2020a版本的。 学习解决该问题 利用蚁群算法对给定的TSP问题进行求解,求出一条最短路径。 用的是194个城市的TSPLIB数据集,如果需要TSPLIB数据集可点击 tsp、添加了可视化,迭代400次,目前最短路径为10576.5454,实现效果如…

IP寻址映射与网络通信互联

IP寻址映射 IP寻址映射能够让数据准确传输的重要部分。在网络之中,所有联网的设备都具有一个IP地址,而IP寻址映射就是负责将IP地址与设备位置或其他相关标识相联系起来,确保数据找到正确的路径传输,保障网络能够畅通。 动态主机配…

IO Virtualization with Virtio.part 1 [十二]

久等了各位! 本篇开始讲解 IO 虚拟化中的 virtio,我会以 Linux 的 IIC 驱动为例,从 IIC 驱动的非虚拟化实现,到 IIC 驱动的半虚拟化实现,再到最后 X-Hyper 中如何通过 virtio 来实现前后端联系,一步步把 v…

ITOM系统在IT运维中的作用

在企业IT运维中,ITOM系统(IT运营管理)通过整合、自动化和监控,能够帮助企业有效管理IT基础设施,提高运维效率和系统的可靠性。本文将从多个角度探讨ITOM系统在IT运维中的作用及其功能。 提升运维效率:统一平…

水上救命稻草,充气救生板的关键救援效能|深圳鼎跃

当今社会,突发事件如影随形,其诱因常隐匿于生活细微之处。就像我们在户外游玩时,水域周边看似风平浪静,实则暗藏危机,稍有疏忽便可能失足落水。此类意外的发生毫无征兆,往往令人在瞬间陷入危险境地&#xf…

Mac M2 Pro安装MySQL 8.4.3

絮絮叨叨 MacBook Pro,芯片:Apple M2 Pro, macOS: Sonoma 14.0一直知道很多软件对Mac M1或M2的支持不好,但没想到在安装MySQL 8.x上也让我吃尽了苦头本文除了介绍如何安装MySQL 8.4.3外,还会记录笔者遇到的一些问题以及解决方法 …

Leecode刷题C语言之切蛋糕的最小总开销②

执行结果:通过 执行用时和内存消耗如下: int compare(const void* a, const void* b) {return (*(int*)b - *(int*)a); }long long minimumCost(int m, int n, int* horizontalCut, int horizontalCutSize, int* verticalCut, int verticalCutSize) {qsort(horizon…

FreeRTOS的内存管理(选择heap4.c文件的理由)

目录 1. 了解FreeRTOS内存管理 2. 了解内存碎片 3.了解各个heap.c的内存分配方法 1.heap1.c 2.heap2.c 3.heap3.c 4.heap4.c 5.heap5.c 总结: 内存管理是一个系统基本组成部分,FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量…

[服务器][教程]Ubuntu24.04 Server开机自动挂载硬盘教程

1. 查看硬盘ID ls -l /dev/disk/by-uuid可以看到对应的UUID所对应的分区 2. 创建挂载文件夹 创建好文件夹即可 3. 修改配置文件 sudo vim /etc/fstab把对应的UUID和创建的挂载目录对应即可 其中# Personal mount points下面的是自己新添加的 :分区定位&#xff…

Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享...

全文链接:https://tecdat.cn/?p38708 分析师:Yuling Fang 信息时代的来临使得企业营销焦点从产品中心转向客户中心,客户关系管理成为企业的核心问题(点击文末“阅读原文”获取完整代码数据)。 客户关系管理的关键是客…

HTML——46.制作课程表

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>课程表</title></head><body><h3>课程表</h3><table border"1" cellspacing"0"><tr><th colspan"…

强化学习(1)

Reinforcement Learning Goal-directed learing from ineraction with the environment. 1. Basic Element 基本元素 1.1 Agent 玩家 1.2 Environment 1.3 Goal 2. Main Element 主要元素 2.1 State 2.2 Action 状态与行为往复 2.3 Reward 目标&#xff1a;最大化总…