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

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

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

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

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

視覺里程計(jì)(Visual Odometry)

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

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

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

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

視覺里程計(jì)算法:

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

1、圖像獲取:?jiǎn)文空障鄼C(jī)、雙目照相機(jī)或者全向照相機(jī);

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

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

(1)、使用相關(guān)性來度量?jī)煞鶊D像間的一致性,并不進(jìn)行長(zhǎng)時(shí)間的特征跟蹤;

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

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

4、檢查光流場(chǎng)向量是否存在潛在的跟蹤誤差,移除外點(diǎn);

5、由光流場(chǎng)估計(jì)照相機(jī)的運(yùn)動(dòng);

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

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

6、周期性的重定位跟蹤點(diǎn);


視覺里程計(jì)算法(基本知識(shí)):

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

1、圖像獲?。?jiǎn)文空障鄼C(jī)、雙目照相機(jī)或者全向照相機(jī);

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

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

(1)、使用相關(guān)性來度量?jī)煞鶊D像間的一致性,并不進(jìn)行長(zhǎng)時(shí)間的特征跟蹤;

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

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

4、檢查光流場(chǎng)向量是否存在潛在的跟蹤誤差,移除外點(diǎn);

5、由光流場(chǎng)估計(jì)照相機(jī)的運(yùn)動(dòng);

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

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

6、周期性的重定位跟蹤點(diǎn);

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

第一步:由特征點(diǎn)計(jì)算基本矩陣F。

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

第二步:由基本矩陣計(jì)算R和T

方法1:奇異值分解

E = KK'*F*KK; %%這是真實(shí)的本質(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)的問題:特征點(diǎn)的誤匹配問題。

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

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

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


下一步研究sift特征點(diǎn)的自動(dòng)選擇算法

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

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

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

1×8選取特征點(diǎn)

表不同方向手動(dòng)選取特征點(diǎn)

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
真實(shí)值(°) 0 10 0


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

    關(guān)注

    210

    文章

    28103

    瀏覽量

    205845
  • adas
    +關(guān)注

    關(guān)注

    309

    文章

    2161

    瀏覽量

    208480
  • 快速視覺里程計(jì)

    關(guān)注

    0

    文章

    2

    瀏覽量

    1550
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于自行車速度里程計(jì)的設(shè)計(jì)?求大神指點(diǎn)?。。?/a>

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

    求大神幫忙用c語(yǔ)言編寫一個(gè)自行車速度計(jì)里程計(jì)

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

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

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

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

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

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

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

    基于全景視覺里程計(jì)的移動(dòng)機(jī)器人自定位方法

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

    視覺里程計(jì)的研究和論文資料說明免費(fèi)下載

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

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

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

    計(jì)算機(jī)視覺方向簡(jiǎn)介之視覺慣性里程計(jì)

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

    基于單個(gè)全景相機(jī)的視覺里程計(jì)

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

    輪式移動(dòng)機(jī)器人里程計(jì)分析

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

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

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

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

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

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

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

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

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