chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

ORB-SLAM2的變量命名規(guī)則代碼運(yùn)行流程簡(jiǎn)析

工程師鄧生 ? 來(lái)源:CSDN ? 作者:ncepu_Chen ? 2022-09-29 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

運(yùn)行官方Demo

以TUM數(shù)據(jù)集為例,運(yùn)行Demo的命令:

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE

rgbd_tum.cc的源碼:

poYBAGM0-gOAXumXAAGdQ4YQ8ns561.jpg
pYYBAGM0-gyAehCOAAEtp0ovUKg988.jpg

運(yùn)行程序rgbd_tum時(shí)傳入了一個(gè)重要的配置文件TUM1.yaml,其中保存了相機(jī)參數(shù)和ORB特征提取參數(shù):


poYBAGM0-jyAI7fXAAELEC16DeQ600.jpgpoYBAGM0-kaAJXHhAABrtvyeWDY012.jpg閱讀代碼之前你應(yīng)該知道的事情 變量命名規(guī)則 ORB-SLAM2中的變量遵循一套命名規(guī)則: 1、變量名的第一個(gè)字母為m表示該變量為某類(lèi)的成員變量. 2、變量名的第一、二個(gè)字母表示數(shù)據(jù)類(lèi)型: ·p表示指針類(lèi)型 ·n表示int類(lèi)型 ·b表示bool類(lèi)型 ·s表示std::set類(lèi)型 ·v表示std::vector類(lèi)型 ·l表示std::list類(lèi)型 ·KF表示KeyFrame類(lèi)型 這種將變量類(lèi)型寫(xiě)進(jìn)變量名的命名方法叫做匈牙利命名法. 理解多線程 為什么要使用多線程? 1、加快運(yùn)算速度: 

poYBAGM0-nyAJcUxAABrR2C_b6Y862.jpg

開(kāi)兩個(gè)線程同時(shí)計(jì)算兩個(gè)矩陣,在多核處理器上會(huì)加快運(yùn)算速度 2. 因?yàn)橄到y(tǒng)的隨機(jī)性,各步驟的運(yùn)行順序是不確定的 . Tracking線程不產(chǎn)生關(guān)鍵幀時(shí),LocalMapping和LoopClosing線程基本上處于空轉(zhuǎn)的狀態(tài) . 而Tracking線程產(chǎn)生關(guān)鍵幀的頻率和時(shí)機(jī)不是固定的,因此需要3個(gè)線程同時(shí)運(yùn)行,LocalMapping和LoopClosing線程不斷循環(huán)查詢(xún)Tracking線程是否產(chǎn)生關(guān)鍵幀,產(chǎn)生了的話就處理.

406907ac-3f83-11ed-9e49-dac502259ad0.png


poYBAGM0-siAG2huAAEV_81wYwY762.jpgpYYBAGM0-tCARGafAACXQYjc83I836.jpg多線程中的鎖 為防止多個(gè)線程同時(shí)操作同一變量造成混亂,引入鎖機(jī)制: 將成員函數(shù)本身設(shè)為私有變量(private或protected),并在操作它們的公有函數(shù)內(nèi)加鎖. 

pYYBAGM0-uyAbZBtAACaF0bno9M743.jpg

一把鎖在某個(gè)時(shí)刻只有一個(gè)線程能夠拿到,如果程序執(zhí)行到某個(gè)需要鎖的位置,但是鎖被別的線程拿著不釋放的話,當(dāng)前線程就會(huì)暫停下來(lái);直到其它線程釋放了這個(gè)鎖,當(dāng)前線程才能拿走鎖并繼續(xù)向下執(zhí)行. 什么時(shí)候加鎖和釋放鎖? unique_lock lockCon(mMutexConnections);這句話就是加鎖,鎖的有效性?xún)H限于大括號(hào){}之內(nèi),也就是說(shuō),程序運(yùn)行出大括號(hào)之后就釋放鎖了.因此可以看到有一些代碼中加上了看似莫名其妙的大括號(hào).

poYBAGM0-xiABa0JAACNoQ9tg8M303.jpg

SLAM主類(lèi)System System類(lèi)是ORB-SLAM2系統(tǒng)的主類(lèi),先分析其主要的成員函數(shù)和成員變量:

409ead8a-3f83-11ed-9e49-dac502259ad0.png

40bfc844-3f83-11ed-9e49-dac502259ad0.png

構(gòu)造函數(shù) System(const string &strVocFile, string &strSettingsFile, const eSensor sensor, const bool bUseViewer=true): 構(gòu)造函數(shù)

poYBAGM0-1yAe5G5AAH7Aw9eI_U257.jpgpYYBAGM0-2OAT08BAABoaeVDoMs467.jpg

LocalMapping和LoopClosing線程在System類(lèi)中有對(duì)應(yīng)的std::thread線程成員變量,為什么Tracking線程沒(méi)有對(duì)應(yīng)的std::thread成員變量? 因?yàn)門(mén)racking線程就是主線程,而LocalMapping和LoopClosing線程是其子線程,主線程通過(guò)持有兩個(gè)子線程的指針(mptLocalMapping和mptLoopClosing)控制子線程. (ps: 雖然在編程實(shí)現(xiàn)上三大主要線程構(gòu)成父子關(guān)系,但邏輯上我們認(rèn)為這三者是并發(fā)的,不存在誰(shuí)控制誰(shuí)的問(wèn)題).

跟蹤函數(shù)

System對(duì)象所在的主線程就是跟蹤線程,針對(duì)不同的傳感器類(lèi)型有3個(gè)用于跟蹤的函數(shù),其內(nèi)部實(shí)現(xiàn)就是調(diào)用成員變量mpTracker的GrabImageMonocular(GrabImageStereo或GrabImageRGBD)方法.

40df2ee6-3f83-11ed-9e49-dac502259ad0.png

傳感器類(lèi)型用于跟蹤的成員函數(shù) pYYBAGM0-36ASEIEAACHrnznLmI311.jpg

審核編輯:劉清

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

    關(guān)注

    2573

    文章

    54375

    瀏覽量

    786093
  • SLAM
    +關(guān)注

    關(guān)注

    24

    文章

    456

    瀏覽量

    33187

原文標(biāo)題:ORB-SLAM2代碼運(yùn)行流程

文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    代碼里的命名規(guī)則:錯(cuò)誤的和正確的對(duì)比

    命名規(guī)則。這樣做的主要作用就是使源代碼更易讀易懂。所以,也就更容易維護(hù)和擴(kuò)展。這篇文章里,我將舉出一些例子,說(shuō)明什么是“不好的代碼”,什么是“清楚的
    發(fā)表于 06-13 22:33

    請(qǐng)問(wèn)用樹(shù)莓派運(yùn)行ORB-SLAM2算法可行嗎?

    最近想用樹(shù)莓派3B跑ORB-SLAM2,現(xiàn)在的問(wèn)題就是Pangolin無(wú)法執(zhí)行,每次執(zhí)行都報(bào)錯(cuò) Pangolin X11: Unable to retrieve framebuffer
    發(fā)表于 03-15 22:30

    變量命名應(yīng)簡(jiǎn)單清晰

    代碼中使用了超長(zhǎng)的命名會(huì)影響代碼的清晰性。同時(shí),超長(zhǎng)的變量命名會(huì)造成換行,這會(huì)影響代碼的結(jié)構(gòu),不
    發(fā)表于 09-26 11:48 ?14次下載

    javascript變量命名規(guī)則與規(guī)范

    JavaScript 變量與代數(shù)一樣,JavaScript 變量可用于存放值(比如 x=2)和表達(dá)式(比如 z=x+y)。變量可以使用短名稱(chēng)(比如 x 和 y),也可以使用描述性更好的
    發(fā)表于 12-05 10:03 ?4254次閱讀
    javascript<b class='flag-5'>變量</b><b class='flag-5'>命名</b><b class='flag-5'>規(guī)則</b>與規(guī)范

    Python公認(rèn)的命名規(guī)則總結(jié)

    對(duì)于模塊名/包名、函數(shù)名、變量名、類(lèi)名、常量名的命名,Python有一些公認(rèn)的規(guī)則,具體如下。
    的頭像 發(fā)表于 01-23 11:25 ?2212次閱讀

    編程代碼的書(shū)寫(xiě)規(guī)則

    為大家搜集到編程代碼的書(shū)寫(xiě)規(guī)則,小伙伴們千萬(wàn)要記住這些規(guī)則。 如果對(duì)現(xiàn)在的工作不滿意,掌握這些技巧也是可以順利離職的小竅門(mén)哦~ 01 以一種代碼已經(jīng)被混淆的方式
    的頭像 發(fā)表于 11-12 18:03 ?2874次閱讀

    簡(jiǎn)獲取單片機(jī)代碼運(yùn)行時(shí)間的方法資料下載

    電子發(fā)燒友網(wǎng)為你提供簡(jiǎn)獲取單片機(jī)代碼運(yùn)行時(shí)間的方法資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考
    發(fā)表于 04-24 08:49 ?12次下載
    <b class='flag-5'>簡(jiǎn)</b><b class='flag-5'>析</b>獲取單片機(jī)<b class='flag-5'>代碼</b><b class='flag-5'>運(yùn)行</b>時(shí)間的方法資料下載

    ORB SLAM中涉及的一些基礎(chǔ)概念

    ORB-SLAM 3提供了多地圖的存儲(chǔ)和拼接功能,在跟蹤丟失后可以嘗試將現(xiàn)有地圖和歷史地圖進(jìn)行匹配、融合,并更新當(dāng)前的活躍地圖(Active Map)
    的頭像 發(fā)表于 10-28 14:28 ?1838次閱讀

    ORB-SLAM3與ORB-SLAM2相比有哪些優(yōu)勢(shì)呢?

    自主導(dǎo)航是機(jī)器人基礎(chǔ)性和關(guān)鍵性技術(shù),是機(jī)器人實(shí)現(xiàn)其他更高級(jí)任務(wù)的前提。視覺(jué) SLAM (Simultaneous Localization And Mapping) 利用視覺(jué)傳感器獲取環(huán)境圖像信息,基于多視圖幾何算法構(gòu)建環(huán)境地圖。
    的頭像 發(fā)表于 01-16 10:58 ?4113次閱讀

    OV2SLAM(高速視覺(jué)slam)簡(jiǎn)

    視覺(jué)里程計(jì)最近幾年越來(lái)越受到學(xué)術(shù)界以及工業(yè)界的認(rèn)可,以ORB和VINS為代表的視覺(jué)SLAM已經(jīng)可以滿足絕大多數(shù)場(chǎng)景,而OV2SLAM在其他VSLAM中脫穎而出,其實(shí)時(shí)性以及具體的回環(huán)性能在測(cè)試中都得到了認(rèn)可。
    的頭像 發(fā)表于 03-21 17:16 ?2580次閱讀

    ORB-SLAM3整體流程詳解

    ORB-SLAM2相比,ORB-SLAM3在處理大視差和長(zhǎng)時(shí)間未觀測(cè)到的場(chǎng)景時(shí)效果更好。它還提供了更準(zhǔn)確的幀間運(yùn)動(dòng)估計(jì)和更快的處理速度。
    的頭像 發(fā)表于 06-19 09:28 ?6051次閱讀
    <b class='flag-5'>ORB-SLAM</b>3整體<b class='flag-5'>流程</b>詳解

    python變量命名規(guī)則

    規(guī)則和約定。本文將詳盡、詳實(shí)、細(xì)致地探討Python變量命名規(guī)則,幫助讀者了解如何正確命名變量
    的頭像 發(fā)表于 11-23 15:44 ?2717次閱讀

    工程實(shí)踐中VINS與ORB-SLAM的優(yōu)劣分析

    ORB-SLAM是一種基于特征的單目視覺(jué)SLAM系統(tǒng),廣泛用于實(shí)時(shí)三維地圖構(gòu)建和機(jī)器人定位。該系統(tǒng)使用ORB特征進(jìn)行高效的視覺(jué)識(shí)別和地圖重建,支持關(guān)鍵幀技術(shù)和回環(huán)檢測(cè)來(lái)優(yōu)化地圖的準(zhǔn)確性。
    的頭像 發(fā)表于 04-08 10:17 ?5246次閱讀
    工程實(shí)踐中VINS與<b class='flag-5'>ORB-SLAM</b>的優(yōu)劣分析

    基于多攝像頭的高魯棒性視覺(jué)SLAM系統(tǒng)設(shè)計(jì)

    本文的主要目標(biāo)是通過(guò)擴(kuò)展ORB-SLAM2的功能來(lái)增強(qiáng)準(zhǔn)確性,從多個(gè)攝像頭中的姿態(tài)估計(jì)和地圖重用開(kāi)始。所有這些多攝像頭的圖像特征將被合并到跟蹤模塊中進(jìn)行特征匹配,以及在閉環(huán)檢測(cè)期間進(jìn)行位置識(shí)別。
    發(fā)表于 04-20 17:51 ?1755次閱讀
    基于多攝像頭的高魯棒性視覺(jué)<b class='flag-5'>SLAM</b>系統(tǒng)設(shè)計(jì)

    基于深度學(xué)習(xí)的增強(qiáng)版ORB-SLAM3詳解

    ORB-SLAM3雖是當(dāng)前最先進(jìn)的SLAM之一,但由于使用傳統(tǒng)的ORB(定向FAST和旋轉(zhuǎn)BRIEF)特征,在尺度、旋轉(zhuǎn)和光照發(fā)生顯著變化時(shí)可能會(huì)表現(xiàn)出局限性。
    的頭像 發(fā)表于 07-14 17:21 ?1272次閱讀
    基于深度學(xué)習(xí)的增強(qiáng)版<b class='flag-5'>ORB-SLAM</b>3詳解