运动一致性判断

2023-05-16

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

运动一致性判断

基于聚类将图片分割之后获得的区域需要判断其运动一致性以分离动态物体和静态背景。

目的:对图片中各部分进行运动一致性判断以分离出目标和背景。

下面介绍各个论文中的判断方法

Nonparametric Statistical and Clustering Based RGB-D Dense Visual Odometry in a Dynamic Environment

该论文将RGB图片与深度图结合后进行k均值聚类以实现图片分割

过程:

  1. 进行k-means聚类
  2. 计算每一个簇的残差
  3. 根据计算出的残差建立非参数统计模型

聚类的好处有两点:

  1. 能够将非刚体场景表示基于聚类的刚体场景
  2. 可有效增强密集运动的分割效果,从而支持场景流估计和避障。

本文使用了一个残差模型。该模型基于一个假设:

若图片对齐,则基于静态背景的聚类将会有一个很小的残差。

光照强度残差:
$$
r^p_I(\xi)= I_k(W(x^p_{k-n},\xi^k_{k-n}))-I_{k-n}(x^p_{k-n})
$$
图像扭曲,Warp函数:
$$
W(x^p_{k-n},\xi^k_{k-n})=\pi(T^k_{k-n}\pi^{-1}(x^p_{k-n},Z_{k-n}(x^p_{k-n})))
$$

第i个聚类的残差计算方法如下所示:
$$
\delta^{k,i}{k-n}=\cfrac{\sum^{S_i-O_i}{p=1}\alpha_Ir^p_I+r^P_Z/\hat Z_i}{S_i-O_i}
$$
其中,$S_i$是第i类的像素大小。$O_i$是第i类遮挡的区域大小。

$\hat Z_i$是第i类的平均深度,$\alpha_I$是平衡深度和广度的权重。
$$
r_Z^P(\Chi)=Z_k(W(x^p_{k-n},\Chi^k_{k-n}))-|T^k_{k-n}|_Z
$$

非参数统计模型

该模型的用途是为了你和实际实验残差的直方图,为每个聚类提供权重以估计相机运动

静态背景部分的运动始终与相机运动具有双重关系。因此,静态簇的残差通常会很小或接近零,因为它们会完美对齐,而这些动态簇的残差通常是较大的值,由于动态对象的独立运动,它们的值会很明显的偏移于零。

对于不同的场景,残差分布并不总是相同的。应该探索聚类残差的分布特征。图2是高动态场景的统计残差直方图示例。

image-20200316123237971

在概率论和统计学中,t-分布(t-distribution)用于根据小样本来估计呈正态分布且方差未知的总体的均值。

受[14,23]的启发,基于t分布的非参数统计模型构造如下:
$$
w_i = \cfrac{v_0+1}{v_0+((\delta’_i-\mu))^2}
$$

$$
\delta = 1.4826 Median {|\delta’_i-\mu|}
$$

其中,$v_0$是t分布的自由度,决定了分布曲线的陡峭程度。

实验中,$v_0$被设置为10,$\mu$是样本均值,设为0;

$\delta$是样本方差,即基于中位数绝对偏差的非参数统计。

由于统计模型的概率表示簇的运动可能性,因此它可以指导场景运动分割,并为每个聚类提供权重以估计自我运动。

聚类标签根据如下给出:
$$
\Beta_i=\left{
\begin{array}{l}
1,&\delta’_i\leq1/(\min(10,\max(3.\alpha_Bv_c\delta)))
\0,&\delta’_i\geq1/(\min(10,\max(3,\alpha_Bv_c\delta)))
\end{array}
\right.
$$
Bi表示第i个簇的聚类标签。1表示该类属于静态背景。

0表示该类属于动态部分。$\alpha_B$是一个用来调节独立变量和残差的维度协方差,计算方法为:
$$
\alpha_B=10^3\times\min(10^3,10^{N_d})
$$
$N_d$是标记为移动部分的聚类数。

聚类权重参考聚类的残差来给出,如下所示:
$$
w_i^p=\left{
\begin{array}{}
w_i, &Meadian(\delta’_i)>0.02\or N_d>5\
1-\delta’_i,&Others
\end{array}
\right.
$$
其中,$w_i$是第i类的权重。Median($\delta’_i$)是聚类残差的中位数。

最后将运动标记和权重模型添加到稠密视觉里程计的能量优化函数中。优化函数是根据Kerl的工作[9]基于深度和强度构建的,具有很高的稳定性,而Jaimez的工作[15]的方法表明优化过程可以在Cauchy M估计器中获得良好的结果。自运动通过以下等式估算:
$$
\Chi = \arg \min_{\Chi}{\sum^M_{m=1}\Beta_i[F(w^P_i)r^P_Z(\Chi)+F(\alpha_I)w^p_ir^p_I(\Chi)]
$$

$$
F(r)=\cfrac{c^2}{2}\log(1+(\cfrac{r}{c})^2)
$$

此外,基于能量函数的视觉里程计方法只有在运动较小时才能收敛到真实值,而较大的运动通常会将收敛收敛到局部最小值。因此,我们使用金字塔模型来解决此优化问题,以获得更准确的自我运动估计。

Dection and Resolution of Motion Conflict Inertial Odometry

判断路标点间一致性的策略:

  1. 基于IMU判断的运动对每一个特征点计算重投影残差
    $$
    \delta_{l_j}=\sum_{i\in S}(z_ij-h(\hat X^I_j,l_j))
    $$

  2. 计算当前帧中特征点的残差不一致点的个数,如果不一致点的个数超过了一定比例,则判断发生了运动冲突。
    $$
    Mr:=\cfrac{landmarkswihtoutconfilt}{landmarks}
    $$

  3. 另一方面,分别根据基于IMU和视觉的运动计算重投影误差,再计算二者的分歧度,再根据分歧度计算当前帧是否发生了冲突。
    $$
    \delta_{MC}=||{\hat p_k^V-\hat p_k^I}||_{\sum}
    $$

On Exploting Per-Pixel Conflict to Extract Secondary Motions

基于DNN训练一个概率图,提取出概率图(Mask)

然后基于该概率图分别计算主要运动和次要运动。

A Compatible Framework for RGB-D in Dynamic Scenes

  1. 首先利用CNN提取出图像中潜在的动态区域

  2. 运动检测方法

    ​ 本文采用基于光学流的方法来检查潜在动态区域和背景区域的一致性。光学流算法[30]在该领域已被广泛研究,该算法在运动检测中表现出色。该算法的总体思想是在两个图像的时空一致性假设下,从两个连续的图像中确定点的对应关系。提出了两种针对光流问题的解决方法,分别称为稀疏法和稠密法。稠密解决方案逐像素计算图像中的光学流值。但稀疏解决方案仅在这些兴趣点上计算流量矢量。可以通过以下公式获得一个像素的光学流值:
    $$
    \tau(\Chi,u)=\sum_{\Chi_i\in S}[I_{l-1}(X_i)-I_l(X_i+u(X_i))]^2
    $$
    ​ 对于每一个2D再集合$S\subset R^2$的点$X_i$,$I_{l-1}(X_i)$是第l-1帧的$X_i$的雄塑强度。$I_l(X_i+u(X_I))$表示相应的第l帧中的光照强度。

    $u(X_i)$是第l-1和第l帧的相应点的变化,该项根据局部窗口中基于重心$X_i$的变化而来,是使函数达到最小的变量。

    为了减少上面所说的损失函数,$X_i$点的光流向量$(\frac{u_x(X_i)}{dt},\frac{u_y(X_i)}{dt})$。$\frac{u_x(X_i)}{dt}$是其沿x轴的时间随时间变化的导数,$\frac{u_y(X_i)}{dt}$是其沿y轴方向变化的倒数。沿y轴的时间。利用广泛使用的Lucas-Kanade光流法用于跟踪潜在动态对象内部和外部的稀疏点。

    对于光学流向量$p =(u,v)$,其方向$\Phi$和大小$ρ$表示如下:
    $$
    \phi=\left{
    \begin{array}{}
    atan2(\frac{v}{u})180/\pi,&if~atan2(\frac{v}{u})>0\
    (360+atan2(\frac{v}{u}))
    180/\pi,&otherwise
    \end{array}
    \right.
    $$

    $$
    \rho = \sqrt2{u^2+v^2}
    $$

    然后,类似于[15],将为潜在的动态区域和背景区域构建标准化的直方图,其中每个单元格的范围将由如下所示的公式确定:
    $$
    2\pi\frac{r-1}{R}<\psi<2\pi{\frac{r}{R}}
    $$
    其中,$\R$是bins的数目,r是从左到右的系列字母。所有的流向量将根据它们与水平轴的夹角划分为每个容器。此外,所有流向量将分配给不同的簇。每个bin的高度将如下计算:
    $$
    H=\frac{\sum_{\xi\in bin}\rho_\xi}{\sum_{\mu\in area}\rho_\mu}
    $$

其中$ρ_ξ$表示一个箱中流量矢量的大小,而$ρ_\mu$是势能动态区域或背景区域中流量矢量的大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运动一致性判断 的相关文章

  • ubuntu下编译报错:对‘cv::String::deallocate()’未定义的引用

    在编译包含opencv头文件的程序时报错1 xff0c 如下 xff1a home jie cadmus ws devel lib libdeebot slam so xff1a 对 cv String allocate span clas
  • MDK软件仿真使用

    开始仿真前需要先配置环境 xff0c 如果手动创建环境不能进入仿真要考虑去看一下工程配置选项的问题 xff0c 本次仿真使用AT32F403VGT7型号 xff0c 如图 xff1a 点击开始仿真 xff0c 下面对仿真工具栏的选项进行具体
  • SK6812驱动入门

    我看数据手册一般是特性 引脚定义 外围电路 时序图以及驱动代码 特性 Top SMD内部集成高质量外控单线串行级联恒流IC xff1b 控制电 与芯片集成在SMD 3528元器件中 xff0c 构成一个完整的外控像素点 色温效果均匀且一致性
  • ESD与TVS的区别

    概念 ESD全称是Electro Static discharge 意思就是 静电释放 国际上习惯将用于静电防护的器材统称为ESD 中文名称为静电阻抗器 TVS全称是Transient Voltage Suppressor 意思是 瞬间电压
  • 开关电源三种控制模式:PWM/PFM/PSM

    1 PWM PFM PSM 三种控制模式的定义 通常来说 开关电源 xff08 DC DC xff09 有三种最常见的调制方式分别为 xff1a 脉冲宽度调制 xff08 PWM xff09 脉冲频率调制 xff08 PFM xff09 脉
  • PCB布线走直角或锐角问题研究

    首先需要说明的一点 xff0c 在正常布线的过程中还是要尽量避免布线走直角和锐角 这里只是研究深入下布线走直角或锐角会有多大的危害性 xff0c 结尾给出答案 无论是教科书还是公司的技术规范都会强调布线避免出现走直角和锐角 xff0c 不过
  • 磁珠基本原理

    概念 磁珠的全称为铁氧体磁珠滤波器 xff0c 是一种抗干扰元件 xff0c 主要功能是滤除高频噪声 xff0c 消除存在于传输线结构 xff08 电路 xff09 中的噪声 工作原理 磁珠通过阻抗吸收并以发热的形式将不需要频段的能量耗散掉
  • BUCK型DC-DC变换器

    前述 DCDC从控制手段上来说分为PWM式 谐振式以及他们的结合式 每 一种方式中从输入与输出之间是否有变压器隔离又可以分为有隔离 无隔离两类 每一类有六种拓扑结构 BUCK Boost BUCK Boost Cuk Sepic和Zeat
  • dubbo服务超时导致的异常org.apache.dubbo.remoting.TimeoutException

    1 dubbo服务超时异常提示信息如下 xff1a cause org apache dubbo remoting TimeoutException Waiting server side response timeout by scan
  • 基于TCP/IP实现串口到网络的通讯转换

    工作模式 通过串口服务器 xff0c 采集到天平的称量值发送到PC端 操作步骤 1 软件测试 测试工具 xff1a USR M0 V2 2 5 8 基础设置 xff1a 模块静态IP 设置成服务器IP xff0c HTTP服务端口 设置成4
  • 结构体的对其规则以及为什么要对其

    结构体的内存对齐规则以及为什么要对齐 内存对齐规则 span class token number 1 span 第一个成员在与结构体变量偏移量为 span class token number 0 span 的地址处 span class
  • 宏定义参数

    宏定义的参数以逗号 xff08 作为分隔符 span class token macro property span class token directive keyword include span span class token s
  • [STM32]关于环形队列的实现

    在程序中使用环形队列判断接收数据格式 xff0c 避免在中断中处理造成程序响应速度慢的问题 直接贴代码 xff1a LoopRxCommu h ifndef LOOPRXCOMMU H define LOOPRXCOMMU H includ
  • C#旅程——串口发送数据

    串口发送数据时可以一个byte一个byte的发送数据 xff0c 也可以一次性丢出 xff0c 分多次丢出的话会导致一段数据被分成多段发出 xff0c 中间的延时可能会超过2ms xff0c 与FW通讯时会出现异常 span class t
  • 【记录】一次51单片机串口乱码问题排查

    记录 一次51单片机串口乱码问题排查 项目场景问题描述原因分析解决方案结语 项目场景 在51串口收发仿真实验中使用两个单片机互相通信 xff0c 程序设定A上电1s后通过串口以16进制给B发送AA 直到B收到AA后回复BB xff0c 当A
  • IO流java基础

    二十四 IO流 24 1 File 1 1 File 类概述和构造方法 File 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言 其封装的并不是一个真正存在的文件 仅仅是一个路径名而已 它可以是存
  • TX2上布置vins_fusion_gpu指南

    1 参考链接 如果初次安装 xff0c 新的TX2环境 xff0c 请参考文档 https github com arjunskumar vins fusion gpu tx2 nano 2 问题记录 1 xff0c 自己的环境情况 我的环
  • Ubuntu下安装cmake

    Ubuntu下安装cmake 今天因为项目的原因需要将cmake升级一下 xff0c 原来我是按照链接没有卸载旧版本 xff0c 直接升级 但是出现一些问题 xff0c 然后我全部卸载后 xff0c 重新安装 以下就是我的安装步骤 第一步
  • AUTH:basic认证和digest认证

    Http authentication BASIC In the context of an HTTP transaction basic access authentication is a method for a web browse

随机推荐

  • Quick Audience组织和工作空间功能解读

    简介 xff1a Quick Audience完成了权限系统全面升级 xff0c 可以解决集团企业不同品牌 不同运营组织 xff0c 不同消费者运营的诉求 xff0c 精细化保障企业数据访问安全 xff0c 提升管控的灵活度 更多关于数智化
  • Socket编程基础总结,全网最全

    IP地址 xff1a 可以在网络环境中 xff0c 唯一标识一台主机 端口号 xff1a 可以定位网络的一台主机上 xff0c 唯一标识一个进程 ip地址 43 端口号 xff1a 可以在网络环境中 xff0c 唯一标识一个进程 在TCP
  • 嵌入式开发--RS-485通讯的问题

    嵌入式开发 RS 485通讯的问题 RS 485说明接口芯片硬件连接CubeMX设置代码编写引脚定义使能串口中断函数发送数据接收数据 有一个问题 xff0c 多收了一个数数据线上的波形问题分析问题解决 RS 485说明 RS 485一般简称
  • UNIX网络编程卷1(第三版)字节排序函数测试

    内存中存储多字节有两种方法 xff0c 即小端字节序和大端字节序 xff0c Ubuntu10 04 是小端字节序 xff0c 网际协议所用的字节序为大端字节序 内存地址增长方向 低序字节 gt 高序字节 小端字节序 高序字节 gt 低序字
  • android非常好的在线视频播放器源码(包含在线音频播放源码)

    一 在线音频播放器 lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt LinearLayout xmlns android 61 34 http schemas androi
  • 深入理解任务堆栈

    先来看这一个小函数 xff0c 猜猜他的运行结果 VC6环境 xff1f include lt stdio h gt void b int data 10 printf 34 helloworld r n 34 data 11 61 5 i
  • Protel99seMEX3

    Protel99se的鼠标增强软件 xff0c 可以实现用鼠标放大与缩小电路图 xff0c 十分方便 xff01 文件 xff1a n459 com file 25127180 478161061 以下内容无关 xff1a 分割线 说起Al
  • 基于C++的http服务端开发

    1 同时支持get post接口请求 2 支持文件流下载接口 完整源代码下载地址 xff1a https download csdn net download GUMU12345 81103130 sample cc Copyright c
  • Psychtoolbox SYNCHRONIZATION FAILURE问题

    参考 xff1a http psychtoolbox org docs SyncTrouble 写这篇文章的原因是自己遇见了这个问题 xff0c 并且换了两台电脑都不行 xff0c 有点烦了 xff0c 决心把它弄清楚是怎么回事 因为我的主
  • vscode写python切换虚拟环境,解释器没有不变的问题

    在用vscode写python代码 xff0c 可以使用anaconda进行虚拟环境的管理 而在vscode中使用Ctrl 43 Shift 43 P的方式调出终端 搜索即可搜索到相关设置 xff0c vscode中的python插件会自动
  • MVVM WPF 绑定颜色

    lt Button Margin 61 34 2 34 Width 61 34 10 34 gt lt Button Background gt lt SolidColorBrush Color 61 34 Binding Path 61
  • Android Handler

    Handler 和 Looper关系 Handler是对我们需要线程执行的一类任务的处理管理类 xff0c 而Looper是android线程所拥有的循环心跳行为的管理类 xff0c 例如主线程就是在一开始就执行了Looper loop x
  • linux 编程 ———网络编程(Socket 编程)客户端与服务端实现源码

    文档声明 xff1a 以下资料均属于本人在学习过程中产出的学习笔记 xff0c 如果错误或者遗漏之处 xff0c 请多多指正 并且该文档在后期会随着学习的深入不断补充完善 感谢各位的参考查看 笔记资料仅供学习交流使用 xff0c 转载请标明
  • 使用vs生成C++动态链接库dll文件----使用C++和C#混合编程

    https blog csdn net qq 30139555 article details 103621955
  • 视觉SLAM作业(四) 相机模型与非线性优化

    视觉SLAM作业 xff08 四 xff09 相机模型与非线性优化 一 图像去畸变 现实生活中的图像总存在畸变 原则上来说 xff0c 针孔透视相机应该将三维世界中的直线投影成直线 xff0c 但是当我们使用广角和鱼眼镜头时 xff0c 由
  • 在TUMVI数据集上测试VINS-Fusion算法

    VINS Fusion算法是一个非常优秀的视觉惯性里程计 但原版VINS Fusion并没有提供与TUM数据集相应的配置文件 因此需要自己进行写yaml文件 修改配置文件 tum mono yaml span class token dir
  • SLAM中的三角测量

    来源 视觉SLAM十四讲 xff0c 作者 高翔 三角测量是SLAM中 xff0c 利用相机运动估计特征点空间位置的过程 本节旨在解决以下问题 xff1a 三角测量的概念三角测量的过程及代码实现 xff1b 三角测量有哪些不确定性如何提高三
  • SLAM 岗位求职与简历书写

    本文学习自B站计算机视觉Life的如何写简历 当前求职背景怎么样 2019计算机直觉算法岗的求职情况为 xff1a 候选人数很多 xff0c 优秀者极少找工作不仅需要实力 xff0c 也需要运气 原因 贸易战影响 xff1a 华为 海康 大
  • SLAM中的后端优化

    本节介绍SLAM中的后端优化过程 一 问题阐述 同时对三维点位置和相机参数进行非线性优化 二 LM法的原理与优势 原理 xff1a 是一种 信赖域 的方法 xff0c 当收敛速度较快时 xff0c 增大信赖域使算法趋向于高斯牛顿法 xff1
  • 运动一致性判断

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