視覺slam中相鄰幀特徵點匹配時,動輒上千個特徵點,匹配錯誤的是難免的,而誤匹配勢必會對位姿精度以及建圖精度造成影響,那麼如何分辨哪些是誤匹配的點對兒呢?如果已知兩幀的的單應矩陣,假設單應矩陣是沒有誤差的,那麼兩幀中匹配正確的特徵點通過單應矩陣是重投影是不應該有誤差的或者誤差十分小,而誤匹配的特徵點的重投影誤差一定十分顯著。那麼我們是不是可以設定乙個誤差門限,從而甄別出這些誤匹配點?可是這個誤差門限該設定為多少?
假設影象金字塔第n層中乙個特徵點\(\mathbf=\beginu \\ v\end\)以及其對應的世界座標系位置\(\mathbf=\beginx \\ y \\ z\end\)和轉換矩陣\(t_\),將空間點重投影到影象中為\(\mathbf=\beginu' \\ v'\end\)。那麼x軸的重投影誤差\(e_x=u-u'\),假設變換矩陣沒有誤差,實際中由於不同時刻拍攝以及成像原因,會給重投影誤差帶來雜訊,不妨假設\(e_x\sim n(0,\sigma_x^2)\),同理假設\(e_y\sim n(0,\sigma_y^2)\),並假設雜訊方差\(\sigma_x^2=\sigma_y^2=(s^n\times n\_pixels)^2\),\(n\_pixels\)為雜訊所帶來的的畫素誤差數,這裡取值1,s為影象金字塔的縮放因子,通常取1.2,有\(\sigma_x^2=\sigma_y^2=(s^n)^2\)顯然方差與特徵點所處的層數有關。這裡面表達了特徵點所處的金字塔層數越高,重投影誤差的方差就越大。因此有\(\frac e_x\sim n(0,1),\frac e_y\sim n(0,1)\)。
若k個隨機變數\(z_1,z_2,...,z_k\)是相互獨立,符合標準正態分佈的隨機變數(數學期望為0、方差為1),則隨機變數z的平方和\(x=\sum_^z_i^2\)被稱為服從自由度為 k 的卡方分布,記作\(x\sim\chi^2(k)\)。
令\(z_1=\frac e_x,z_2=\frac e_y,x=z_1^2+z_2^2\),根據卡方分布的定義,\(x\sim\chi^2(2)\),即2自由度的卡方分布。對於雙目匹配到的特徵點在右圖中的x座標為\(u_r'\),重投影後計算得到特徵點左圖的x座標\(u_l\),根據\(視差d=\frac \),可以計算出視差從而得到重投影後右圖中特徵點x座標\(u_r=u_l-d\),得\(e_r=u_r'-u_r\)。同理\(\frac e_r\sim n(0,1)\),可構成卡方分布的另乙個自由度,而\(x\)的物理意義就是各項誤差的平方和。
下圖為不同自由度卡方分布的概率密度函式和累積分布函式,分布函式記為\(f(x\leqslant x)=\alpha\),\(\alpha\)就是乙個概率值,表示如果\(x\)服從卡方分布,那麼\(x\)就有\(\alpha\)的概率值在\([0,x]\)中。如果已知\(\alpha\)的值,通過查表的方法我們可以找到對應的\(x\)值。比如2自由度的卡方分布,\(x\in [0,5.99]\)時,我們有95%的把握認為\(x\)是服從該分布的,以此將\(x>5.99\)的時候將該特徵點排除。
下圖為卡方閾值與對應p值的查詢表,可以簡單的認為\(p值=1-\alpha\)。具體解釋可以參考如何理解假設檢驗、p值?。
}上面的**reproject_to_image就是將3d點重投影回影象中,reproj_err就是上文中的\(\begine_x \\ e_y\end,sigma\_sq=(s^n)^2\),reproj_err.squarednorm()/sigma_sq就是\((\frac )^2(e_x^2+e_y^2)=z_1^2+z_2^2=x\sim\chi^2(k)\)。
[orb-slam2]卡方分布(chi-squared)外點(outlier)剔除
卡方分布 卡方分布與擬合優度的卡方檢驗是什麼關係?
在分類資料擬合優度的 該統計量 服從 的 分布。其中,為某分類實際頻數,為零假設中的期望頻數,為分類類別的數量。對於分類資料的擬合優度 檢驗,很多統計教科書介紹完上面這些就結束了。但相信初學者,尤其是非統計專業的初學者會和我一樣,都存在乙個疑問,式1中的檢驗統計量 為什麼會服從 分布呢?這個疑問非常...
slam中的卡爾曼濾波的推到及應用
參考 卡爾曼的核心思想是 測量反饋,卡爾曼濾波主要是用在估計線性系統的狀態過程,以最小均方差為目的推導出的幾個數學推導公式。從概率論貝葉斯模型的觀點來看前面 的結果就是先驗,測量出的結果就是後驗 幾個概念 均方差 誤差的平方的期望值,誤差就是每個估計值與 真實值的差 也就是多個樣本的時候,均方差等於...
統計學中的卡方檢驗講解
我們前面講過方差分析,方差分析的應用場景是什麼樣子的呢?不記得同學可以翻回去看看。當我們要比較兩組或者多組均值有沒有顯著性差異的時候,我們可以用方差分析。請注意,這裡面我們提到是兩組或者多組之間的均值比較時,我們用方差分析,想一下什麼型別的資料可以求均值呢?是不是只有數值型別的資料才可以求均值。也就...