@

outlier、外点、野值会严重影响SLAM的精度,因此必须把它们剔除。常用的做法是,计算一个误差,当这个误差大于设定阈值的时候就认为其为外点。

就特征点法的视觉SLAM而言,一般会计算重投影误差。具体而言,记 \(\mathbf u\)为特征点的2D位置,\(\overline{\mathbf{u}}\)为由地图点投影到图像上的2D位置。重投影误差为
卡方分布(Chi-squared)外点(outlier)剔除
重投影误差服从高斯分布
卡方分布(Chi-squared)外点(outlier)剔除
其中,协方差\(\sigma\)一般根据特征点提取的金字塔层级确定。具体的,记提取ORB特征时,图像金字塔的每层缩小尺度为\(s\) (ORB-SLAM中为1.2)。在ORB-SLAM中假设第0层的标准差为1个pixel (ORB-SLAM中设为了1个pixel);那么,一个在金字塔第n层提取的特征的重投影误差的协方差为:
卡方分布(Chi-squared)外点(outlier)剔除
式(1)中的误差是一个2维向量,阈值不好设置。那就把它变成一个标量,计算向量的内积\(r\) (向量元素的平方和)。但是,不同金字塔层的特征点都用同一个阈值,不合理呢。于是,在计算内积的时候,利用协方差进行加权(协方差表达了不确定度)。那么就有了
卡方分布(Chi-squared)外点(outlier)剔除
利用协方差加权,起到了归一化的作用。具体的(4)式,可以变为
卡方分布(Chi-squared)外点(outlier)剔除

卡方分布(Chi-squared)外点(outlier)剔除
为多维标准正态分布

阈值选取

式(5)可以看做两个独立的服从标准正太分布随机变量的平方和,它服从2个自由度的\(Chi-squared distribution\)卡方分布。
卡方分布的自由度即为向量的维度。不同的自由度卡方分布的概率密度函数和概率分布函数如下:
卡方分布(Chi-squared)外点(outlier)剔除卡方分布(Chi-squared)外点(outlier)剔除
\(\alpha=0.05, F(x)=1-\alpha=0.95\) 可以得到95%置信度的置信区间为\((0,F^{-1}(\alpha))\),即
卡方分布(Chi-squared)外点(outlier)剔除
查卡方分布表可得
卡方分布(Chi-squared)外点(outlier)剔除
对应的单目投影为2自由度,因此阈值为5.99;对应的双目投影为3个自由度,因此阈值为7.81。

相关文章:

  • 2022-01-28
  • 2021-10-05
  • 2022-01-02
  • 2021-05-25
  • 2021-11-24
  • 2021-08-06
  • 2021-08-27
猜你喜欢
  • 2021-11-04
  • 2021-12-14
  • 2022-12-23
  • 2021-11-09
  • 2021-11-20
  • 2021-08-06
  • 2021-08-29
相关资源
相似解决方案