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

问题背景

阈值 δ \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 u∈R2 表示图像特征点的二维(2D)像素位置,并令 u ‾ ∈ R 2 \overline{\mathbf{u}} \in \mathbb{R}^2 u∈R2 表示从三维点 P ∈ R 3 \bm{P} \in \mathbb{R}^3 P∈R3 重投影到图像上的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 uz∈R3 为双目立体相机的特征点观测量, u ‾ z ∈ R 3 \overline{\mathbf{u}}_z \in \mathbb{R}^3 uz∈R3 表示从三维地图点 P ∈ R 3 \bm{P} \in \mathbb{R}^3 P∈R3 重投影到图像上的像素位置,则重投影误差 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的卡方分布

相关推荐
摘星编程7 分钟前
深入浅出 Tokio 源码:掌握 Rust 异步编程的底层逻辑
网络·算法·rust·系统编程·tokio
Hard_Liquor33 分钟前
Datawhale秋训营-“大运河杯”数据开发应用创新大赛
人工智能·深度学习·算法
liu****34 分钟前
笔试强训(八)
开发语言·算法·1024程序员节
草莓工作室38 分钟前
数据结构14:查找
数据结构·算法
Wnq100721 小时前
巡检机器人户外视觉识别困境剖析与自动优化模式构建
图像处理·目标检测·低代码·计算机视觉·目标跟踪·机器人·需求分析
屈冠成2 小时前
C语言数组:编辑世界的坚固桥梁
c语言·开发语言·算法
应用市场2 小时前
STM32卡尔曼滤波算法详解与实战应用
人工智能·stm32·算法
启诚科技2 小时前
树上二分(树的重心)
c++·算法·二分·树的重心
风筝在晴天搁浅3 小时前
代码随想录 617.合并二叉树
数据结构·算法
AICodeThunder3 小时前
【S组篇】C++知识点总结(1):并查集基础
c语言·数据结构·c++·算法·图论