@
誤差定義
outlier、外點、野值會嚴重影響SLAM的精度,因此必須把它們剔除。常用的做法是,計算一個誤差,當這個誤差大於設定閾值的時候就認為其為外點。
就特征點法的視覺SLAM而言,一般會計算重投影誤差。具體而言,記 \(\mathbf u\)為特征點的2D位置,\(\overline{\mathbf{u}}\)為由地圖點投影到圖像上的2D位置。重投影誤差為
重投影誤差服從高斯分布
其中,協方差\(\sigma\)一般根據特征點提取的金字塔層級確定。具體的,記提取ORB特征時,圖像金字塔的每層縮小尺度為\(s\) (ORB-SLAM中為1.2)。在ORB-SLAM中假設第0層的標准差為1個pixel (ORB-SLAM中設為了1個pixel);那么,一個在金字塔第n層提取的特征的重投影誤差的協方差為:
式(1)中的誤差是一個2維向量,閾值不好設置。那就把它變成一個標量,計算向量的內積\(r\) (向量元素的平方和)。但是,不同金字塔層的特征點都用同一個閾值,不合理呢。於是,在計算內積的時候,利用協方差進行加權(協方差表達了不確定度)。那么就有了
利用協方差加權,起到了歸一化的作用。具體的(4)式,可以變為
而
為多維標准正態分布
閾值選取
式(5)可以看做兩個獨立的服從標准正太分布隨機變量的平方和,它服從2個自由度的\(Chi-squared distribution\)卡方分布。
卡方分布的自由度即為向量的維度。不同的自由度卡方分布的概率密度函數和概率分布函數如下:
取\(\alpha=0.05, F(x)=1-\alpha=0.95\) 可以得到95%置信度的置信區間為\((0,F^{-1}(\alpha))\),即
查卡方分布表可得
對應的單目投影為2自由度,因此閾值為5.99;對應的雙目投影為3個自由度,因此閾值為7.81。