国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ORB-SLAM內(nèi)的卡方檢驗

這篇具有很好參考價值的文章主要介紹了ORB-SLAM內(nèi)的卡方檢驗。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


Reference:
  1. 卡方檢驗(Chi-square test/Chi-Square Goodness-of-Fit Test)
  2. 卡方檢驗詳解分析與實例

1. 概念

  • 卡方值: χ 2 \chi^2 χ2 值表示觀察值與理論值之間的偏離程度。計算這種偏離程度的基本思路如下:

    1. 設(shè) O O O 代表某個類別的觀察頻數(shù) E E E 代表基于某個假設(shè) H 0 H_0 H0? 計算出的期望頻數(shù), O O O E E E 之差稱為殘差;
    2. 殘差可以表示某一個類別觀察值和理論值的偏離程度,但如果將殘差簡單相加以表示各類別觀察頻數(shù)與期望頻數(shù)的差別,則有一定的不足之處。因為殘差有正有負,相加后會彼此抵消,綜合仍然為 0 0 0,為此可以將殘差平方后求和;
    3. 另一方面,殘差大小是一個相對概念,相對于期望頻數(shù)為 10 10 10 時,期望頻數(shù)為 20 20 20 的殘差非常大,但相對于期望頻數(shù)為 1000 1000 1000 20 20 20 的殘差就很小了??紤]到這一點,人們又將殘差平方除以期望頻數(shù)再求和,以估計觀察頻數(shù)與期望頻數(shù)的差別。

    進行上述操作之后,就得到了常用的 χ 2 \chi^2 χ2 統(tǒng)計量,其計算公式為:
    χ 2 = ∑ ( O ? E ) 2 E = ∑ i = 1 k ( O i ? E i ) 2 E i = ∑ i = 1 k ( O i ? n p i ) 2 n p i ( i = 1 , 2 , 3 , . . . , k ) \chi^{2}=\sum{\frac{(O-E)^{2}}{E}}=\sum_{i=1}^{k}{\frac{(O_{i}-E_{i})^{2}}{E_{i}}}=\sum_{i=1}^{k}{\frac{(O_{i}-n p_{i})^{2}}{n p_{i}}}\quad{\mathrm{(i=1,2,3,...,k)}} χ2=E(O?E)2?=i=1k?Ei?(Oi??Ei?)2?=i=1k?npi?(Oi??npi?)2?(i=1,2,3,...,k)其中, O i O_i Oi? i i i 水平的觀察頻數(shù), E i E_i Ei? i i i 水平的期望頻數(shù), n n n 為總頻數(shù), p i p_i pi? i i i 水平的期望概率, i i i 水平的期望頻數(shù) E i E_i Ei? 等于總頻數(shù) n × i n\times i n×i 水平的期望概率 p i p_i pi? k k k 為單元格數(shù)。當 n n n 比加大時, χ 2 \chi^2 χ2 統(tǒng)計量近似服從 k ? 1 k-1 k?1(計算 E i E_i Ei? 時用到的參數(shù)個數(shù))個自由度的卡方分布。

    由卡方的計算公式可知,當觀察頻數(shù)與期望頻數(shù)完全一致時, χ 2 \chi^2 χ2 值為 0 0 0;觀察頻數(shù)與期望頻數(shù)越接近,兩者之間的差異越小, χ 2 \chi^2 χ2 值越?。环粗?,觀察頻數(shù)與期望頻數(shù)差別越大,兩者之間的差異越大, χ 2 \chi^2 χ2 值越大。換言之,大的 χ 2 \chi^2 χ2 值表明觀察頻數(shù)遠離期望頻數(shù),即表明遠離假設(shè)。小的 χ 2 \chi^2 χ2 值表明觀察頻數(shù)接近期望頻數(shù),接近假設(shè)。因此, χ 2 \chi^2 χ2 是觀察頻數(shù)與期望頻數(shù)之間距離的一種度量指標,也是假設(shè)成立與否的度量指標。如果 χ 2 \chi^2 χ2 值小,研究者就傾向于不拒絕 H 0 H_0 H0?;如果 χ 2 \chi^2 χ2 值大,就傾向于拒絕 H 0 H_0 H0?。至于 χ 2 \chi^2 χ2 在每個具體研究中究竟要達到什么程度才能拒絕 H 0 H_0 H0?,則要借助于卡方分布求出所對應(yīng)的 P P P 來確定,這就引出了顯著性水平的概念。

  • 顯著性水平: 顯著性水平是估計總體參數(shù)落在某一區(qū)間內(nèi)可能犯錯的概率,用 α \alpha α 表示,即當原假設(shè)為正確時,卻把它濾掉了的概率或風(fēng)險,通常取 α = 0.05 \alpha=0.05 α=0.05 α = 0.01 \alpha=0.01 α=0.01。這表明當做出接受原假設(shè)的決定時,其正確的可能性(概率)為 95 % 95\% 95% 99 % 99\% 99%。

2. 卡方檢驗的基本思想

卡方檢驗是以 χ 2 \chi^2 χ2 分布為基礎(chǔ)的一種常用假設(shè)檢驗方法,它的無效建設(shè) H 0 H_0 H0? 是:觀察頻數(shù)與期望頻數(shù)沒有差別。

該檢驗的基本思想是:首先假設(shè) H 0 H_0 H0? 成立,基于此前提計算出 χ 2 \chi^2 χ2 的值,它表示觀察值與理論值之間的偏離程度。根據(jù) χ 2 \chi^2 χ2 分布及自由度可以確定在 H 0 H_0 H0? 假設(shè)成立的情況下獲得當前統(tǒng)計量及更極端情況的概率 P P P。如果 P P P 值很小,說明觀察值與理論值偏離程度太大,應(yīng)當拒絕無效假設(shè),表示比較資料之間有顯著差異;否則就不能拒絕無效假設(shè),尚不能認為樣本所代表的實際情況和理論假設(shè)有差別。

根據(jù)自由度和顯著性水平查詢檢驗統(tǒng)計量臨界值,其中縱軸為自由度,橫軸為顯著性水平閾值。比如檢查單應(yīng)陣的函數(shù),點到點的重投影誤差自由度為 2 2 2,在顯著性水平為 0.05 0.05 0.05 時通過查表得閾值為 5.99 5.99 5.99
ORB-SLAM內(nèi)的卡方檢驗

3. 卡方檢測示例

為了驗證肺癌與吸煙的關(guān)系,我們得到如下數(shù)據(jù):

是否肺病患者 吸煙 不吸煙 合計 吸煙比例
158 169 327 48%
82 311 393 20%
合計 240 480 720 33%

首先假設(shè)吸煙與肺癌兩者之間沒有關(guān)系(這里應(yīng)該不用先假設(shè)有沒關(guān)系,越大就是越有關(guān)系,越小就是越?jīng)]有關(guān)系,根據(jù)數(shù)值判斷相關(guān)性),我們計算期望值(因為上面吸煙的比例為33%,因此在吸煙與肺癌沒有關(guān)系的時候,肺癌患者吸煙與不吸煙的比例應(yīng)該是33%,沒有得肺癌的吸煙與不吸煙的比例也應(yīng)該是33%):

是否肺病患者 吸煙 不吸煙 合計 吸煙比例
109 218 327 33%
131 262 393 33%
合計 240 480 720 33%

帶入卡方計算公式:
χ 2 = ( 158 ? 109 ) 2 109 + ( 169 ? 218 ) 2 218 + ( 82 ? 131 ) 2 131 + ( 311 ? 262 ) 2 262 = 60.53 \chi^2=\frac{(158-109)^2}{109}+\frac{(169-218)^2}{218}+\frac{(82-131)^2}{131}+\frac{(311-262)^2}{262} =60.53 χ2=109(158?109)2?+218(169?218)2?+131(82?131)2?+262(311?262)2?=60.53自由度的計算方法,可以簡單抽象成:(行數(shù)-1)*(列數(shù)-1),所以這里的自由度為 1 1 1

通過查表可得自由度為 1 1 1 時,顯著性水平為 0.05 0.05 0.05,當卡方值小于 3.84 3.84 3.84 時,可以接受原假設(shè),即變量之間沒有相關(guān)性??ǚ街翟叫?,不相關(guān)的概率越大?,F(xiàn)在卡方值遠大于 3.84 3.84 3.84,說明兩者不相關(guān)的概率很小,即抽煙與肺癌有關(guān)。

4. ORB-SLAM2中卡方檢測剔除外點的策略

就特征點法的視覺SLAM而言,一般會計算重投影誤差。具體而言,記 u \mathbf{u} u 為特征點的 2 D 2D 2D 位置, u ˉ \bar{\mathbf{u}} uˉ 為由地圖點投影到圖像上的 2 D 2D 2D 位置。重投影誤差為:
e = u ? u ˉ \mathbf{e}=\mathbf{u}-\mathbf{\bar{u}} e=u?uˉ重投影誤差服從高斯分布:
e ~ N ( 0 , Σ ) \mathbf{e}\sim\mathcal{N}(\mathbf{0},\mathbf{\Sigma}) eN(0,Σ)其中,協(xié)方差 Σ \mathbf{\Sigma} Σ 一般根據(jù)特征點提取的金字塔層級決定。具體的,記提取ORB特征時,圖像金字塔的每層縮小尺度為 s s s(ORB-SLAM中為1.2)。在ORB-SLAM中假設(shè)第 0 0 0 層的標準差為 p p p 個pixel(ORB-SLAM中設(shè)為了1個pixel);那么,一個在金字塔第 n n n 層提取的特征的重投影誤差的協(xié)方差為:
Σ = ( s n × p ) 2 [ 1 0 0 1 ] \boldsymbol{\Sigma}=(s^n\times p)^2\begin{bmatrix}1&0\\ 0&1\end{bmatrix} Σ=(sn×p)2[10?01?] e = u ? u ˉ \mathbf{e}=\mathbf{u}-\mathbf{\bar{u}} e=u?uˉ 中的誤差是一個 2 2 2 維向量,這里閾值不好設(shè)置,就把它變成一個標量,計算向量的內(nèi)積 r r r(向量元素的平方和)。但是,這又有一個問題,不同金字塔層的特征點都用同一個閾值,是不是不合理呢?于是,在計算內(nèi)積的時候,利用協(xié)方差進行加權(quán)(協(xié)方差表達了不確定度)。金字塔層級越高特征點提取精度越低,協(xié)方差 Σ \mathbf{\Sigma} Σ 越大,那么就有了:
r = e T Σ ? 1 e r=\mathbf{e}^{T}\mathbf{\Sigma}^{-1}\mathbf{e} r=eTΣ?1e利用協(xié)方差加權(quán),起到了歸一化的作用,具體如上式,可以變?yōu)椋?br> r = ( Σ ? 1 2 e ) T ( Σ ? 1 2 e ) r=(\boldsymbol{\Sigma}^{-\frac{1}{2}}\mathbf{e})^T(\boldsymbol{\Sigma}^{-\frac{1}{2}}\mathbf{e}) r=(Σ?21?e)T(Σ?21?e)而:
( Σ ? 1 2 e ) ~ N ( 0 , I ) (\mathbf\Sigma^{-\frac{1}{2}}\mathbf e)\sim\mathcal N(\mathbf0,\mathbf I) (Σ?21?e)N(0,I)為多維標準正態(tài)分布,也就是說不同金字塔層提取的特征,計算的重投影誤差都被歸一化了,或者說去量綱化了,那么,我們只用一個閾值就可以了。

4.1 示例,卡方檢驗計算置信度得分: CheckFundamental()、CheckHomography()

根據(jù)重投影誤差構(gòu)造統(tǒng)計量 χ 2 \chi^2 χ2,其值越大,觀察結(jié)果和期望結(jié)果之間的差別越顯著,某次計算越可能用到了外點:文章來源地址http://www.zghlxwxcb.cn/news/detail-460064.html

float Initializer::CheckHomography(const cv::Mat &H21, const cv::Mat &H12, vector<bool> &vbMatchesInliers, float sigma) {
  const int N = mvMatches12.size();

  //取出單應(yīng)矩陣H各位上的值
  const float h11 = H21.at<float>(0, 0);
  const float h12 = H21.at<float>(0, 1);
  const float h13 = H21.at<float>(0, 2);
  const float h21 = H21.at<float>(1, 0);
  const float h22 = H21.at<float>(1, 1);
  const float h23 = H21.at<float>(1, 2);
  const float h31 = H21.at<float>(2, 0);
  const float h32 = H21.at<float>(2, 1);
  const float h33 = H21.at<float>(2, 2);

  const float h11inv = H12.at<float>(0, 0);
  const float h12inv = H12.at<float>(0, 1);
  const float h13inv = H12.at<float>(0, 2);
  const float h21inv = H12.at<float>(1, 0);
  const float h22inv = H12.at<float>(1, 1);
  const float h23inv = H12.at<float>(1, 2);
  const float h31inv = H12.at<float>(2, 0);
  const float h32inv = H12.at<float>(2, 1);
  const float h33inv = H12.at<float>(2, 2);

  vbMatchesInliers.resize(N);//標記是否是內(nèi)點
  float score = 0;//置信度得分
  const float th = 5.991;//<---自由度為2(u,v),顯著性水平為0.05的卡方分布對應(yīng)的臨界閾值
  const float invSigmaSquare = 1.0 / (sigma * sigma);//信息矩陣,方差平方的倒數(shù)

  for (int i = 0; i < N; i++) {//雙向投影,計算加權(quán)投影誤差
    bool bIn = true;

    //step1. 提取特征點對
    const cv::KeyPoint &kp1 = mvKeys1[mvMatches12[i].first];
    const cv::KeyPoint &kp2 = mvKeys2[mvMatches12[i].second];

    const float u1 = kp1.pt.x;
    const float v1 = kp1.pt.y;
    const float u2 = kp2.pt.x;
    const float v2 = kp2.pt.y;

    // Reprojection error in first image
    // x2in1 = H12*x2
    //step2. 計算img2到img1的重投影誤差
    const float w2in1inv = 1.0 / (h31inv * u2 + h32inv * v2 + h33inv);
    const float u2in1 = (h11inv * u2 + h12inv * v2 + h13inv) * w2in1inv;
    const float v2in1 = (h21inv * u2 + h22inv * v2 + h23inv) * w2in1inv;
    const float squareDist1 = (u1 - u2in1) * (u1 - u2in1) + (v1 - v2in1) * (v1 - v2in1);
    const float chiSquare1 = squareDist1 * invSigmaSquare;

    //step3. 離群點標記上,非離群點累加計算得分
    if (chiSquare1 > th)
      bIn = false;
    else
      score += th - chiSquare1;

    // Reprojection error in second image
    // x1in2 = H21*x1
    //step4. 計算img1到img2的重投影誤差
    const float w1in2inv = 1.0 / (h31 * u1 + h32 * v1 + h33);
    const float u1in2 = (h11 * u1 + h12 * v1 + h13) * w1in2inv;
    const float v1in2 = (h21 * u1 + h22 * v1 + h23) * w1in2inv;
    const float squareDist2 = (u2 - u1in2) * (u2 - u1in2) + (v2 - v1in2) * (v2 - v1in2);
    const float chiSquare2 = squareDist2 * invSigmaSquare;

    //step5. 離群點標記上,非離群點累加計算得分
    if (chiSquare2 > th)
      bIn = false;
    else
      score += th - chiSquare2;

    if (bIn)
      vbMatchesInliers[i] = true;
    else
      vbMatchesInliers[i] = false;
  }

  return score;
}

到了這里,關(guān)于ORB-SLAM內(nèi)的卡方檢驗的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SLAM ORB-SLAM2(20)查找基礎(chǔ)矩陣

    在 《SLAM ORB-SLAM2(12)估算運動并初始地圖點》 的 2.3. 計算H矩陣和F矩陣過程 中

    2024年03月17日
    瀏覽(29)
  • SLAM ORB-SLAM2(22)分解基礎(chǔ)矩陣

    在 《SLAM ORB-SLAM2(12)估算運動并初始地圖點》 中了解到 估算兩幀間相對運動過程: 記錄特征點對的匹配關(guān)系 RANSAC 采樣準備 計算H矩陣或者F矩陣 判斷并選取模型求位姿過程 在

    2024年04月15日
    瀏覽(22)
  • ORB-SLAM3跑本地視頻

    ORB-SLAM3跑本地視頻

    把錄制的視頻放入ORB-SLAM3文件夾內(nèi),文件命名為:myvideo.mp4 在同一目錄下添加myvideo.yaml、myvideo.cc 重新編譯ORB-SLAM3 會出現(xiàn)myvideo執(zhí)行文件 在此文件夾打開終端輸入: ./myvideo 即可運行視頻

    2023年04月22日
    瀏覽(21)
  • ORB-SLAM3整體流程詳解

    ORB-SLAM3整體流程詳解

    在之前,作者曾經(jīng)轉(zhuǎn)過一篇《一文詳解ORB-SLAM3》的文章。那篇文章中提到了ORB-SLAM3是一個支持視覺、視覺加慣導(dǎo)、混合地圖的SLAM系統(tǒng),可以在單目,雙目和RGB-D相機上利用針孔或者魚眼模型運行。與ORB-SLAM2相比,ORB-SLAM3在處理大視差和長時間未觀測到的場景時效果更好。它還

    2024年02月06日
    瀏覽(19)
  • ORB-SLAM2環(huán)境配置及運行

    ORB-SLAM2環(huán)境配置及運行

    本文是基于Ubuntu 20.04及OpenCV 4.6.0成功運行ORB-SLAM2,并在開源數(shù)據(jù)集上進行了測試。由于OpenCV和其他依賴庫的版本較新,編譯過程會出現(xiàn)一些問題,需要修改部分代碼和CMakeLists.txt文件,這里做一個記錄,也希望能幫到有需要的小伙伴。 開始嘗試安裝Eigen3.4.0和Pangolin-0.8版本,后

    2024年02月03日
    瀏覽(23)
  • SLAM ORB-SLAM2(21)基礎(chǔ)矩陣的計算和評分

    SLAM ORB-SLAM2(21)基礎(chǔ)矩陣的計算和評分

    在 《SLAM ORB-SLAM2(20)查找基礎(chǔ)矩陣》 中了解到 查找基礎(chǔ)矩陣主要過程: 特征點坐標歸一化 Normalize 函數(shù) Normalize 參考 《SLAM ORB-SLAM2(14)特征點坐標歸一化》 選擇歸一化之后的特征點 八點法計算基礎(chǔ)矩陣 ComputeF21 評分并評優(yōu) CheckFundamental 現(xiàn)在來看看基礎(chǔ)矩陣如何計算和評分

    2024年03月09日
    瀏覽(27)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI開源數(shù)據(jù)集運行ORB-SLAM3生成軌跡并用evo工具評估軌跡

    ORB-SLAM3算法1 已成功編譯安裝ORB-SLAM3到本地,本篇目的是用 EuRoc 開源數(shù)據(jù)來運

    2024年02月08日
    瀏覽(39)
  • ORB-SLAM3 數(shù)據(jù)集配置與評價

    ORB-SLAM3 數(shù)據(jù)集配置與評價

    在ORB-SLAM3運行EuRoC和TUM-VI數(shù)據(jù)集并作以評價。EuRoC利用微型飛行器(MAV ) 收集的視覺慣性數(shù)據(jù)集,TUM-VI 是由實驗人員手持視覺-慣性傳感器收集的數(shù)據(jù)集。這兩個是在視覺SLAM中比較常用的公開數(shù)據(jù)集,所以測試并加以記錄。 1、EuRoC官網(wǎng)下載 從官網(wǎng)下載Euroc數(shù)據(jù)集,ASL格式 2、新

    2024年02月15日
    瀏覽(25)
  • 實操指南:ORB-SLAM3的編譯運行

    實操指南:ORB-SLAM3的編譯運行

    前面我們提到,ORB-SLAM3作為常用的機器人建圖與定位技術(shù),是當前最優(yōu)秀的基于特征點的視覺SLAM系統(tǒng)之一。 它支持單目、雙目、單目慣導(dǎo)、雙目慣導(dǎo)、RGB-D等多種相機模式,兼具精度和魯棒性,是機器人SLAM算法工程師的一項「必備技能」。 為了更好地幫助大家學(xué)習(xí)和理解

    2024年02月13日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包