0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

視覺里程計的詳細(xì)介紹和算法過程

tUM2_ADA ? 來源:djl ? 作者:ADAS ? 2019-08-08 14:21 ? 次閱讀

視覺里程計(Visual Odometry)

機器人學(xué)與計算機視覺領(lǐng)域,視覺里程計是一個通過分析相關(guān)圖像序列,來確定機器人位置和朝向的過程。

在導(dǎo)航系統(tǒng)中,里程計(odometry)是一種利用致動器的移動數(shù)據(jù)來估算機器人位置隨時間改變量的方法。例如,測量輪子轉(zhuǎn)動的旋轉(zhuǎn)編碼器設(shè)備。里程計總是會遇到精度問題,例如輪子的打滑就會導(dǎo)致產(chǎn)生機器人移動的距離與輪子的旋轉(zhuǎn)圈數(shù)不一致的問題。當(dāng)機器人在不光滑的表面運動時,誤差是由多種因素混合產(chǎn)生的。由于誤差隨時間的累積,導(dǎo)致了里程計的讀數(shù)隨著時間的增加,而變得越來越不可靠。

視覺里程計是一種利用連續(xù)的圖像序列來估計機器人移動距離的方法。視覺里程計增強了機器人在任何表面以任何方式移動時的導(dǎo)航精度。

視覺里程計的詳細(xì)介紹和算法過程

視覺里程計算法:

大多數(shù)現(xiàn)有的視覺里程計算法都是基于以下幾個步驟:

1、圖像獲?。簡文空障鄼C、雙目照相機或者全向照相機;

2、圖像校正:使用一些圖像處理技術(shù)來去除透鏡畸變;

3、特征檢測:確定感興趣的描述符,在幀與幀之間匹配特征并構(gòu)建光流場;

(1)、使用相關(guān)性來度量兩幅圖像間的一致性,并不進行長時間的特征跟蹤;

(2)、特征提取、匹配(Lucas–Kanade method);

(3)、構(gòu)建光流場;

4、檢查光流場向量是否存在潛在的跟蹤誤差,移除外點;

5、由光流場估計照相機的運動;

(1)、可選方法1:使用卡爾曼濾波進行狀態(tài)估計;

(2)、可選方法2:查找特征的幾何與3D屬性,以最小化基于相鄰兩幀之間的重投影誤差的罰函數(shù)值。這可以通過數(shù)學(xué)上的最小化方法或隨機采樣方法來完成;

6、周期性的重定位跟蹤點;


視覺里程計算法(基本知識):

大多數(shù)現(xiàn)有的視覺里程計算法都是基于以下幾個步驟:

1、圖像獲?。簡文空障鄼C、雙目照相機或者全向照相機;

2、圖像校正:使用一些圖像處理技術(shù)來去除透鏡畸變;

3、特征檢測:確定感興趣的描述符,在幀與幀之間匹配特征并構(gòu)建光流場;

(1)、使用相關(guān)性來度量兩幅圖像間的一致性,并不進行長時間的特征跟蹤;

(2)、特征提取、匹配(Lucas–Kanade method);

(3)、構(gòu)建光流場;

4、檢查光流場向量是否存在潛在的跟蹤誤差,移除外點;

5、由光流場估計照相機的運動;

(1)、可選方法1:使用卡爾曼濾波進行狀態(tài)估計;

(2)、可選方法2:查找特征的幾何與3D屬性,以最小化基于相鄰兩幀之間的重投影誤差的罰函數(shù)值。這可以通過數(shù)學(xué)上的最小化方法或隨機采樣方法來完成;

6、周期性的重定位跟蹤點;

我選擇的視覺里程計算法是:“ sift特征匹配點——基本矩陣——R和T”。

第一步:由特征點計算基本矩陣F。

一般而言,sift點是存在誤匹配的情況,因此,采用ransac魯棒方法計算基本矩陣F。這個過程已經(jīng)實現(xiàn),但是還有一個小問題:同樣的一組sift點,進行兩次基本矩陣計算,得到的基本矩陣差異很大,因此,我在ransac方法的基礎(chǔ)上,根據(jù)得到的inliers點,采用常規(guī)的8點基本矩陣計算方法,這樣得到的基本矩陣能保持不變

第二步:由基本矩陣計算R和T

方法1:奇異值分解

E = KK'*F*KK; %%這是真實的本質(zhì)矩陣E

[U,S,V] = svd(E); %奇異值分解。
T_nonscale = U(:,3); %% 不含有刻度因子的平移向量
D= [0 1 0 ;-1 0 0; 0 0 1];
Ra = U*D*V';或者Rb = U*D'*V';

方法2:非線性優(yōu)化解迭代求解。我嘗試了三種不同的目標(biāo)函數(shù)形式:

% RT_from_E_ydf.m; 物理意義不明顯!精度和速度都不如后面的好。
% RT_point_constraints_ydf.m 速度折中,精度較高
% RT_point_constraints_ydf02.m 速度最快,精度不夠高

發(fā)現(xiàn)的問題:特征點的誤匹配問題。

誤匹配對位姿解算結(jié)果影響分析:我們將手動選取的匹配點加上一個噪聲后(1-2個像素的噪聲),位姿誤差很大,也就是說,要得到精確的位姿解算結(jié)果,噪聲不能大于1個像素,即需要考慮亞像素級別的特征點匹配??!實驗表明,用sift特征是一種比較合理的方法,但是,sift特征容易出現(xiàn)誤匹配點的情況,將其進行剔除是很有意義的一件事情。

目前我采用的是手動選擇匹配好的區(qū)域,從而選擇比較好的匹配點,見hand_choose_sift_ydf.m。結(jié)果如下:

Image0053 & Image0056 (sift特征點誤匹配率較高) 備注
剔除前(°) 172.1492 178.2707 -133.4679 ×
剔除后(°) -0.0774 10.2036 0.0192
真實值(°) 0 10 0
Image0053 & Image0054 (sift特征點誤匹配率較低)
剔除前(°) 0.0780 -10.9056 -0.0013
剔除后(°) -0.0133 -10.7892 0.2188
真實值(°) 0 -10 0


下一步研究sift特征點的自動選擇算法。

一般而言,針對匹配點的魯棒算法有M-estimators等,我這里選擇的是最小中值法(least-median-squares)。程序見“RT_from_siftpoint_ydf03.m”,該方法運算量非常大,需要進行163(以保證能得到一組正確的樣本,假設(shè)sift誤匹配率為40%的情況下)組優(yōu)化求解計算。Very time consuming

疑問,為什么橫向選取特征點的時候,結(jié)算結(jié)果會出現(xiàn)很大的誤差呢?

【橫向選取Sift特征點和縱向選取sift特征點,會有不同。能不能進行分析,得到如下結(jié)論:如果關(guān)心的是航向角,則sift特征點集合呈豎狀比較好,即sift點集合和旋轉(zhuǎn)軸平行。

1×8選取特征點

表不同方向手動選取特征點

Image0053 & Image0054 備注
1×8 -96.0655 14.8033 -11.8376 ×
-168.9075 35.7764 -17.7804 ×
0.4452 -19.4641 -1.7153 ×
8×1 0.0554 -10.8175 -0.0209
0.0904 -10.8215 -0.0115
0.5212 -10.8057 0.2690
真實值(°) 0 10 0


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    210

    文章

    28003

    瀏覽量

    205564
  • adas
    +關(guān)注

    關(guān)注

    309

    文章

    2152

    瀏覽量

    208438
  • 快速視覺里程計
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1548
收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于自行車速度里程計的設(shè)計?求大神指點?。?!

    誰能幫幫小弟我! 十分感謝! 要求:用c語言編寫一個自行車速度里程計! 基于芯片AT89C51,用霍爾元件測速度!用lcd1602顯示最好!不要求報警!能有一個開關(guān)暫停顯示!小弟的qq1252295329??!求大神高手指點一個
    發(fā)表于 04-16 20:01

    求大神幫忙用c語言編寫一個自行車速度里程計

    誰能幫幫小弟我! 十分感謝! 要求:用c語言編寫一個自行車速度里程計! 基于芯片AT89C51,用霍爾元件測速度!用lcd1602顯示最好!小弟的qq411694253?。∏蟠笊窀呤种更c一個
    發(fā)表于 05-17 20:47

    如何去提高汽車里程計電路的抗干擾能力?

    里程計工作原理是什么?汽車里程計的受擾現(xiàn)象有哪些?
    發(fā)表于 05-19 07:26

    如何理解SLAM用到的傳感器輪式里程計IMU、雷達(dá)、相機的工作原理與使用場景?精選資料分享

    視覺慣性里程計 綜述 VIO Visual Inertial Odometry msckf ROVIO ssf msf okvis ORB-VINS VINS-Mono gtsam目錄里程計
    發(fā)表于 07-27 07:21

    請問如何理解SLAM用到的傳感器輪式里程計IMU、雷達(dá)、相機的工作原理?

    請問如何理解SLAM用到的傳感器輪式里程計IMU、雷達(dá)、相機的工作原理?
    發(fā)表于 10-09 08:52

    基于全景視覺里程計的移動機器人自定位方法

    通過分析全景視覺里程計傳感器的感知模型的不確定性,提出了一種基于路標(biāo)觀測的 移動機器人 自定位算法. 該算法利用卡爾曼濾波器,融合多種傳感器在不同觀測點獲取的觀測數(shù)據(jù)完
    發(fā)表于 06-28 10:58 ?41次下載
    基于全景<b class='flag-5'>視覺</b>與<b class='flag-5'>里程計</b>的移動機器人自定位方法

    視覺里程計的研究和論文資料說明免費下載

    使用幾何假設(shè)和測試架構(gòu)從特征軌跡產(chǎn)生相機運動的魯棒估計。這就產(chǎn)生了我們稱之為視覺測徑法,即僅從視覺輸入的運動估計。沒有事先知道的場景或運動是必要的。視覺里程計還可以結(jié)合來自其他來源的信
    發(fā)表于 12-03 08:00 ?1次下載

    視覺語義里程計詳細(xì)資料說明

    魯棒數(shù)據(jù)關(guān)聯(lián)是視覺里程計的核心問題,圖像間的對應(yīng)關(guān)系為攝像機姿態(tài)和地圖估計提供了約束條件。目前最先進的直接和間接方法使用短期跟蹤來獲得連續(xù)的幀到幀約束,而長期約束則使用循環(huán)閉包來建立。在這篇論文
    發(fā)表于 10-28 08:00 ?0次下載
    <b class='flag-5'>視覺</b>語義<b class='flag-5'>里程計</b>的<b class='flag-5'>詳細(xì)</b>資料說明

    計算機視覺方向簡介之視覺慣性里程計

    實現(xiàn)SLAM的算法,根據(jù)融合框架的不同又分為松耦合和緊耦合。 其中VO(visual odometry)指僅視覺里程計,T表示位置和姿態(tài)。松耦合中視覺運動估計和慣導(dǎo)運動估計系統(tǒng)是兩個
    的頭像 發(fā)表于 04-07 16:57 ?2472次閱讀
    計算機<b class='flag-5'>視覺</b>方向簡介之<b class='flag-5'>視覺</b>慣性<b class='flag-5'>里程計</b>

    基于單個全景相機的視覺里程計

    本文提出了一種新的直接視覺里程計算法,利用360度相機實現(xiàn)魯棒的定位和建圖。本系統(tǒng)使用球面相機模型來處理無需校正的等距柱狀圖像,擴展稀疏直接法視覺里程計(DSO,direct spar
    的頭像 發(fā)表于 12-14 14:53 ?772次閱讀

    輪式移動機器人里程計分析

    但凡涉及到可移動的機器人的導(dǎo)航系統(tǒng),大概率會涉及到里程計的計算,比如輪式移動機器人、無人機、無人艇,以及多足機器人等,而計算里程計的方案也有很多種,比如基于編碼器合成里程計的方案、基于視覺
    的頭像 發(fā)表于 04-19 10:17 ?1759次閱讀

    介紹一種基于編碼器合成里程計的方案

    摘要:本文主要分析輪式移動機器人的通用里程計模型,并以兩輪差速驅(qū)動機器人的里程計計算為案例,給出簡化后的兩輪差速驅(qū)動機器人里程計模型。
    的頭像 發(fā)表于 04-19 10:16 ?2046次閱讀

    介紹一種新的全景視覺里程計框架PVO

    論文提出了PVO,這是一種新的全景視覺里程計框架,用于實現(xiàn)場景運動、幾何和全景分割信息的更全面建模。
    的頭像 發(fā)表于 05-09 16:51 ?1727次閱讀
    <b class='flag-5'>介紹</b>一種新的全景<b class='flag-5'>視覺</b><b class='flag-5'>里程計</b>框架PVO

    基于相機和激光雷達(dá)的視覺里程計和建圖系統(tǒng)

    提出一種新型的視覺-LiDAR里程計和建圖系統(tǒng)SDV-LOAM,能夠綜合利用相機和激光雷達(dá)的信息,實現(xiàn)高效、高精度的姿態(tài)估計和實時建圖,且性能優(yōu)于現(xiàn)有的相機和激光雷達(dá)系統(tǒng)。
    發(fā)表于 05-15 16:17 ?653次閱讀
    基于相機和激光雷達(dá)的<b class='flag-5'>視覺</b><b class='flag-5'>里程計</b>和建圖系統(tǒng)

    在城市地區(qū)使用低等級IMU的單目視覺慣性車輪里程計

    受簡化慣性傳感器系統(tǒng)(RISS)[23]的啟發(fā),我們開發(fā)了視覺慣性車輪里程計(VIWO)。具體而言,我們將MSCKF中的系統(tǒng)模型重新設(shè)計為3DRISS,而不是INS,使用里程表、3軸陀螺儀和2軸(向前和橫向)加速
    的頭像 發(fā)表于 06-06 14:30 ?1436次閱讀
    在城市地區(qū)使用低等級IMU的單目<b class='flag-5'>視覺</b>慣性車輪<b class='flag-5'>里程計</b>