SLAM中的因子图

2023-05-16

看论文,发现很多SLAM方面的文章都涉及图优化,其中更包含有因子图。正好前段时间看了PRML,将其进行整理。

(诶,果然理论的内容就是得及时用起来,现在又记不太清楚了)

因子图

来自于PRML第八章“图模型”

  1. 有向图和无向图都使得若干个变量的一个全局函数能够表示为这些变量的子集上的因子的乘积。由因子图表示这个分解
  2. 因子图表示分解的方法:在表示变量的结点的基础上,引入额外的结点表示因子本身
  3. 将一组变量上的联合概率分布写成因子的乘积形式:其中xs表示变量的一个子集。每个因子fs是对应的变量集合xs的函数联合概率分布
  4. 因子图:在因子图中,概率分布中的每个变量都有一个结点(有向图、无向图的情形相同)。还存在其他结点,表示联合概率分布中的每个因子。最后,在每个因子结点和因子所依赖的变量结点之间,存在无向链接。因此,因子图能够表达出关于分解本身的更加细节的信息
    在这里插入图片描述
  5. 因子结点:对于因子结点,对应于最大团块xs,fs(xs)被设置为与团块势函数相等
  6. 将有向图转化为因⼦图:构造变量结点(有向图中的结点),然后构造因⼦结点(对应于条件概率分布),最后添加上合适的链接。与之前⼀样,同⼀个有向图可能对应于多个因⼦图。

SLAM中用到的因子图

来自于《视觉SLAM十四讲》第十一讲

  1. SLAM可以表示成一个动态的贝叶斯网络,SLAM中的运动和观测方程可以表示状态变量之间的条件概率
    在这里插入图片描述其中,箭头表示依赖关系,依赖也就代表着条件概率
  2. 后端优化的目标:在既有约束之上,通过调整贝叶斯网络中随机变量的取值,使整个后验概率达到最大
    在这里插入图片描述
  3. 将SLAM转化成为因子图:此时,优化变量只有相机位姿和路标,观测和输入是给定量,不需要对其进行优化
    在这里插入图片描述
  4. 对于因子图的优化,就是调整各变量的值,使它们的因子之乘积最大化,通常做法是将各因子的条件概率取高斯分布的形式,然后使用最小二乘法进行求解
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SLAM中的因子图 的相关文章

  • SLAM笔记(四)运动恢复结构的几何数学(本征矩阵、单应矩阵、基础矩阵)

    1 间接法进行运动恢复的前提假设 对于结构与运动或视觉三维重建中 通常假设已经通过特征匹配等方法获取了匹配好的点对 先求出匹配点对再获取结构和运动信息的方法称作间接法 间接法最重要的三个假设是 1 拥有一系列两帧之间的匹配点对 但同时假设匹
  • Ubuntu20.04编译安装opencv3.2和opencv_contrib-3.2

    图像特征提取中需要用到SIFT等算法 因此不得不安装从源码编译安装opencv contrib 网上有很多教程 但是在不同的环境下多少会出现一些错误 针对Ubuntu20 04 gcc 7环境下对opencv opencv contrib编
  • 三维刚体变换

    欢迎访问我的博客首页 三维刚体变换 1 坐标系 1 1 空间坐标系 1 2 右手坐标系与像素坐标系 2 旋转与平移 2 1 推导旋转 2 2 推导平移 2 3 推导变换 2 4 刚体变换 2 5 坐标系旋转与向量旋转 3 链式变换 4 Ei
  • ROS STAGE教程2(地图定义和GMAPPING建图)

    目前用在ROS Kinetic上的stage版本为4 1 官方教程http rtv github io Stage modules html 用户可以用stage或者gazebo来创建地图和机器人 传感器模型来进行仿真 并与自己的SLAM模
  • 微信小程序SLAM AR零基础入门教程

    鬼灭之刃花街篇 开播在即 今天带大家零基础使用Kivicube制作一个炭治郎的SLAM AR云手办 可以通过微信小程序将AR版的炭治郎放置在家中 提前感受鬼灭的氛围 先上个GIF大家看看动态的展示效果 在这里先科普一下本次教程使用到的AR技
  • np.meshgrid()函数 以及 三维空间中的坐标位置生成 以及 numpy.repeat()函数介绍

    一 np meshgrid 函数 1 np meshgrid 介绍 X Y np meshgrid x y 代表的是将x中每一个数据和y中每一个数据组合生成很多点 然后将这些点的x坐标放入到X中 y坐标放入Y中 并且相应位置是对应的 下面是
  • 视觉SLAM实践入门——(20)视觉里程计之直接法

    多层直接法的过程 1 读图 随机取点并计算深度 2 创建图像金字塔 相机内参也需要缩放 并计算对应点的像素坐标 3 应用单层直接法 使用G N L M等方法 或者使用g2o ceres库 进行优化 源码中有一些地方会引起段错误 修改方法见下
  • 对最小二乘法的一点理解 - slam学习笔记

    我对最小二乘法的理解 在给定参数个数和函数模型之后 根据测试数据 找出与所有测试数据的偏差的平方和最小的参数 这里面应该有两个问题 1 为什么选取与真实数据平方和最小的拟合函数 2 如何求参数 为什么选取与真实数据平方和最小的拟合函数 极大
  • 经典坐标变换案例代码剖析

    题目 设有小萝卜一号和小萝卜二号位于世界坐标系中 记世界坐标系为W 小萝卜们的坐标系为R1和 R2 小萝卜一号的位姿为q2 0 35 0 2 0 3 0 1 T t1 0 3 0 1 0 1 T 小萝卜二号的位姿为q2 0 5 0 4 0
  • 视觉SLAM漫谈(二):图优化理论与g2o的使用

    视觉SLAM漫谈 二 图优化理论与g2o的使用 1 前言以及回顾 各位朋友 自从上一篇 视觉SLAM漫谈 写成以来已经有一段时间了 我收到几位热心读者的邮件 有的希望我介绍一下当前视觉SLAM程序的实用程度 更多的人希望了解一下前文提到的g
  • 关于GPS、惯导、视觉里程计的几个定义

    1 首先写几个定义 惯性导航系统 Inertial Navigation System INS 全球定位卫星系统 Global Navigation Satellite System GNSS GNSS 包括全球定位系统 Global Po
  • 视觉SLAM技术及其应用(章国锋--复杂环境下的鲁棒SfM与SLAM)

    SLAM 同时定位与地图构建 机器人和计算机视觉领域的基本问题 在未知环境中定位自身方位并同时构建环境三维地图 应用广泛 增强现实 虚拟现实 机器人 无人驾驶 SLAM常用的传感器 红外传感器 较近距离感应 常用与扫地机器人 激光雷达 单线
  • 1-如何安装ROS

    如何安装ROS 大家好 我是如何 今天尝试在Ubantu下安装ROS Robot Operating System 测试环境 虚拟机VMware Ubantu20 04 准备步骤 添加ROS软件源 sudo sh c echo deb ht
  • 快看!那个学vSLAM的上吊了! —— (一)综述

    不同于之前发布的文章 我将使用一种全新的方式 iPad Notability Blog的方式打开这个板块的大门 原因有两个 1 Notability更方便手写长公式 也方便手绘坐标系变换等等 2 之前Apple Pencil找不到了新破费买
  • 无人车

    1 无人车四大核心技术 自动驾驶实际包含三个问题 一是我在哪 二是我要去哪 三是如何去 第一个问题是环境感知和精确定位 无人车需要的是厘米级定位 厘米级定位是无人驾驶的难点之一 不光是车辆本身的语义级定位 还有一个绝对坐标定位 第二个问题是
  • 【Pytorch论文相关代码】使用SOLD2预训练好的模型检测与匹配线段(自己的数据集)

    文章目录 前言 使用流程 检测与匹配结果 前言 论文链接 SOLD2 Self supervised Occlusion aware Line Description and Detection 论文源码 https github com
  • LOAM算法详解

    激光SLAM 帧间匹配方法 Point to Plane ICP NDT Feature based Method 回环检测方法 Scan to Scan Scan to Map LOAM创新点 定位和建图的分离 里程计模块 高频低质量的帧
  • ORB-SLAM2:基于可识别特征的自主导航与地图构建

    ORB SLAM2 基于可识别特征的自主导航与地图构建 ORB SLAM Tracking and Mapping Recognizable Features 转自 http blog csdn net cicibabe article d
  • LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题

    LIO SAM 成功适配自己数据集 注意本文测试环境 Ubuntu18 04 ROS melodic版本 笔者用到的硬件以简单参数 激光雷达 速腾聚创16线激光雷达 RS Lidar 16 IMU 超核电子CH110型 9轴惯导 使用频率1
  • 高翔博士Faster-LIO论文和算法解析

    说明 题目 Faster LIO 快速激光IMU里程计 参考链接 Faster LIO 快速激光IMU里程计 iVox Faster Lio 智行者高博团队开源的增量式稀疏体素结构 Faster Lio是高翔博士在Fast系列的新作 对标基

随机推荐

  • SpringMVC(二)

    SpringMVC xff08 二 xff09 响应数据和结果视图 返回值分类 xff1a 字符串voidModelAndView 对象 xff1a 是 spring 提供的一个对象 xff0c 可以用来调整具体的 JSP 视图 span
  • SpringMvc(三)

    SpringMvc xff08 三 xff09 SSM 整合可以使用多种方式 xff0c 一般会选择 XML 43 注解 的方式 整合的思路 xff1a 搭建整合环境先把spring 的配置搭建完成再使用 spring 整合SpringMV
  • 工厂方法模式(Factory Method)--多态工厂的实现

    工厂方法模式 xff08 Factory Method xff09 多态工厂的实现 定义 xff1a 定义一个用于创建对象的接口 xff0c 让子类决定实例化哪一个类 xff0c 工厂方法使一个类的实例化延迟到其子类 类图 xff1a 外链
  • 无人机自主定位导航避障VINS+fast_planner实测~

    厦大研一研究的一个项目 xff0c 将项目开发用到的技术和难点在这记录一下 常更新 xff0c 先把框架写好 xff0c 有空的时候就过来更新 xff0c 要是有漏的或者有错误的地方 xff0c 请大佬指点 因为采用的是TX2 xff0c
  • rs_D455相机内外参标定+imu联合标定

    IMU标定 lt launch gt lt node pkg 61 34 imu utils 34 type 61 34 imu an 34 name 61 34 imu an 34 output 61 34 screen 34 gt lt
  • GVINS论文简明解读

    VIN与GNSS融合的必要性 VIN系统只工作在局部坐标系下 x y z yaw不可观 里程计存在不可避免的漂移 而GNSS系统可提供无漂移的全局定位 VIN与GNSS融合的难点 不同于cmaera与imu此类的外参标定 GNSS坐标与VI
  • onos2.5.2编译安装

    onos编译安装 Ubuntu18 04 1 前置下载安装 1 1 前置包安装 参考docker file sudo apt get install y ca certificates zip python python3 git bzip
  • C++和C的区别(汇总)

    1 C是面向过程的语言 xff0c 而C 43 43 是面向对象的语言 2 C和C 43 43 动态管理内存的方法不一样 xff0c C是使用malloc free函数 xff0c 而C 43 43 除此之外还有new delete关键字
  • PX4学习笔记—通过串口发送自定义数据

    最近因为项目需要实现一个通过pixhawk串口收发自定义数据的功能 搜索发现 xff0c 博客上大神们FantasyJXF FreeApe的博文已经详细介绍了通过pixhawk串口读取自定义数据 xff0c 这部分功能实现后就可以将自己开发
  • 一步步入门搭建SpringSecurity OAuth2(密码模式)

    什么是OAuth2 xff1f 是开放授权的一个标准 xff0c 旨在让用户允许第三方应用去访问改用户在某服务器中的特定私有资源 xff0c 而可以不提供其在某服务器的账号密码给到第三方应用 大概意思就是比如如果我们的系统的资源是受保护的
  • STM32驱动SG90舵机与HC_SR04超声波模块

    前言 一 项目涉及的内容 项目简介 二 模块实操 1 SysTick系统定时器模块 2 SG90 舵机模块 3 HC SR04 超声波模块 4 main函数 总结 前言 这篇文章的内容主要对一个超声波 43 舵机小项目进行总结 xff0c
  • STM32基于IIC协议的OLED模块的使用

    前言 一 项目涉及的内容 项目简介 二 模块实操 1 IIC模块 1 1 IIC协议格式 1 2 开始信号与停止信号 1 3 写数据 1 3 1 硬件IIC代码编写 1 3 2 软件模拟IIC代码编写 2 OLED板块 前言 本篇文章对使用
  • STM32DMA功能详解

    目录 一 DMA的基本介绍 1 什么是DMA xff08 DMA的基本定义 xff09 2 DMA传输参数 3 DMA的主要特征 二 DMA功能框图 1 DMA请求 2 通道 3 仲裁器 三 DMA 数据配置 1 从哪里来到哪里去 外设到存
  • STM32对FreeRTOS单片机实时操作系统的移植

    前言 一 FreeRTOS是什么 二 FreeRTOS的移植 1 资料下载 2 开始移植 2 1 移植Source源码文件 2 2 添加 FreeRTOSConfig h 2 3 添加SYSTEM文件夹 2 4 复制 main c 文件进行
  • C语言 指针中的常见名称与用法

    目录 前言 一 指针是什么 二 指针与数组 数组指针 指针数组 三 指针与常量 指针常量 常量指针 四 指针与函数 指针函数 函数指针 前言 指针是C语言中大家接触的比较早但是也是内容比较多和实用的一块知识点 xff0c 之前虽然也大概知道
  • 过拟合及常见处理办法整理

    过拟合及常见处理办法整理 jingbo18的博客 CSDN博客 模型过拟合如何解决 判断方法 过拟合 xff08 over fitting xff09 xff0c 机器学习模型或者是深度学习模型在训练样本中表现得过于优越 xff0c 导致在
  • OBS 安装与考试参数设置及屏幕无法完全捕获、录屏不完整的解决方法

    目录 一 OBS 的下载与安装 二 OBS 考试参数设置 三 问题解决 xff08 1 xff09 屏幕无法完全捕获 xff08 2 xff09 录屏不完整 一 OBS 的下载与安装 官网 xff08 Open Broadcaster So
  • kube-proxy源码阅读(iptables实现)

    Reference 文章目录 1 入口2 ProxyServer创建及调用3 ProxyServer 核心调用流程3 1 func o Options Run err3 2 func o Options runLoop error3 3 f
  • TypeError: Expected Ptr<cv::UMat> for argument ‘image‘

    python3 43 opencv TypeError Expected Ptr xff1c cv UMat xff1e for argument image 输入的不是UMat格式 xff0c 使用cv2 UMat img get 转化一
  • SLAM中的因子图

    看论文 xff0c 发现很多SLAM方面的文章都涉及图优化 xff0c 其中更包含有因子图 正好前段时间看了PRML xff0c 将其进行整理 xff08 诶 xff0c 果然理论的内容就是得及时用起来 xff0c 现在又记不太清楚了 xf