【ORB-SLAM3】鲁棒核函数的阈值设置

news/2025/2/23 13:32:33

问题背景

阈值 δ \delta δ 是 Huber 鲁棒核函数的重要参数。首先给出结论,在ORB-SLAM系列中,该阈值选取的原则为:

  • 单目情况下,根据95%置信水平下两自由度卡方检验的临界值, δ \delta δ 设置为 5.991 \sqrt{5.991} 5.991
  • 双目情况下,根据95%置信水平下三自由度卡方检验的临界值, δ \delta δ 设置为 7.815 \sqrt{7.815} 7.815

下面详细描述了以这种方式设置Huber损失函数的原因。

Huber鲁棒核函数

使用的Huber鲁棒核函数定义如下:

在这里插入图片描述
当误差 e e e 超过阈值 δ \delta δ 时,函数的增长从二次型变为线性型。在构建视觉重投影误差的背景下,我们假设当重投影误差超过某个阈值时,有95%的置信度认为是由于错误匹配导致的离群点,从而以线性的方式添加到代价函数中;否则,以二次函数方式计算误差。通过这样的方式,限制了错误匹配对优化算法的影响。

单目相机分析

接下来,我们首先分析单目相机配置中的重投影误差。令 u ∈ R 2 \mathbf{u} \in \mathbb{R}^2 uR2 表示图像特征点的二维(2D)像素位置,并令 u ‾ ∈ R 2 \overline{\mathbf{u}} \in \mathbb{R}^2 uR2 表示从三维点 P ∈ R 3 \bm{P} \in \mathbb{R}^3 PR3 重投影到图像上的2D像素位置,则重投影误差 e v \bm{e}_v ev 为:

在这里插入图片描述
在这里插入图片描述
其中 ( f x , f y ) (f_x, f_y) (fx,fy) 是相机焦距, ( c x , c y ) (c_x, c_y) (cx,cy)是主点,均从标定过程已知。 Π m ( ⋅ ) \Pi_m(\cdot) Πm() 是单目相机投影模型。我们假设重投影误差遵循高斯分布:

在这里插入图片描述
然后利用协方差对重投影误差进行归一化,得到:
在这里插入图片描述
这意味着它遵循二维标准正态分布,因此由其各分量的平方和相加得到的统计量服从自由度为2的卡方分布

双目相机分析

对于双目配置的情况,我们令观测量为 3 维,即由左相机图像的特征点横纵坐标 + 右相机特征点的横坐标组成(在双目立体相机配置下,左右图像特征点的纵坐标就是相同的)。令 u z ∈ R 3 \mathbf{u}_z \in \mathbb{R}^3 uzR3 为双目立体相机的特征点观测量, u ‾ z ∈ R 3 \overline{\mathbf{u}}_z \in \mathbb{R}^3 uzR3 表示从三维地图点 P ∈ R 3 \bm{P} \in \mathbb{R}^3 PR3 重投影到图像上的像素位置,则重投影误差 e v \bm{e}_v ev 为:

在这里插入图片描述
其中 Π s ( ⋅ ) \Pi_s(\cdot) Πs() 为双目相机投影模型。 ( f x , f y ) (f_x, f_y) (fx,fy) 是相机焦距, ( c x , c y ) (c_x, c_y) (cx,cy)是主点, b b b 是基线长度,均从内参标定中已知。与单目配置情况类似,利用协方差对双目重投影误差进行归一化,其服从三维标准正态分布,因此由其各分量的平方和相加得到的统计量服从自由度为3的卡方分布


http://www.niftyadmin.cn/n/5863438.html

相关文章

Qt中QRadioButton的样式设置

在 Qt 中,可以使用 Qt 样式表(QSS) 来自定义 QRadioButton 的外观。样式表类似于 CSS,允许你设置控件的颜色、字体、边框、背景等属性。 以下是如何为 QRadioButton 设置样式表的详细说明和示例。 1. 基本样式设置 你可以通过 s…

基于SpringBoot的线上汽车租赁系统的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

React - ajax 配置代理

React 本身只关注于界面,并不包含发送 ajax 请求的代码;前端应用需要通过 ajax 请求与后台进行交互(json 数据);React 应用中需要集成第三方 ajax 库(或者自己封装)。 方法一 在 package.json …

【JT/T 808协议】808 协议开发笔记 ② ( 终端注册 | 终端注册应答 | 字符编码转换网站 )

文章目录 一、消息头 数据1、消息头拼接2、消息 ID 字段3、消息体属性 字段4、终端手机号 字段5、终端流水号 字段 二、消息体 数据三、校验码计算四、最终计算结果五、终端注册应答1、分解终端应答数据2、终端应答 消息体 数据 六、字符编码转换网站 一、消息头 数据 1、消息头…

大模型安全问题详解(攻击技术、红队测试与安全漏洞)

文章目录 大模型攻击技术提示注入攻击(Prompt Injection)数据投毒攻击(Data Poisoning)模型克隆攻击(Model Cloning)拒绝服务攻击(DoS)和拒绝钱包攻击(DoW)插…

OpenHarmony构建系统-GN与子系统、部件、模块理论与实践

理论 OpenHarmony源码体系 OpenHarmony的源码架构基于模块化设计,为了方便系统的功能的增加和裁剪,设计了基于GN构建的模块系统。整个模块可从大到小划分为产品(product)、领域/子系统集(domain)、子系统(sub system)、部件(component)、模块/组件(modu…

TensorFlow 是一个由 Google 开发的开源机器学习库

TensorFlow 是一个由 Google 开发的开源机器学习库,被广泛应用于深度学习和人工智能领域。它的基本概念包括以下几点: 张量(Tensors):在 TensorFlow 中,数据的基本单位是张量,它类似于多维数组或…

JVM预热

阿里电商平台每年的各种大促活动,对于Java技术来说,其中重要一个操作环节就是预热操作。 目录 预热是什么?为什么要预热? java 程序不预热和预热的调用对比 预热是什么? 预热是指,在 JVM 启动后&#xff0…