1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        SLAM和三維重建有什么區(qū)別?

        共 2531字,需瀏覽 6分鐘

         ·

        2021-05-16 07:07

        點擊上方小白學視覺”,選擇加"星標"或“置頂

        重磅干貨,第一時間送達

        本文轉自:新機器視覺Qiang


        Qiang


        回答中很多人提SLAM比三維重建多了一個L(location),我想也許可以稍微深入一點。

        我們看一下定義:

        (1)SLAM:同步定位與地圖構建;定誰的位?相機的位,相機在機器人身上,就是定機器人的位。建誰的地圖?相機經過地方的地圖。二者結合,才能確定機器人在某個地圖中的具體位置,和這個場景(地圖)下的連續(xù)運動軌跡。

        (2)三維重建(SFM):從運動恢復結構。我覺得更像是構建目標的三維模型。然后,我們看一下流行算法的效果:

        SLAM:藍色表示運動位置。

        圖1:LSD-SLAM-運動軌跡和稀疏的場景地圖,黃色表示位置之間的約束,這是優(yōu)化問題,不展開。

        圖2:ORBSLAM2-運動軌跡和稠密(Dense)地圖

        SFM:

        圖3:KinectFusion-構建目標三維地圖

        圖4:ElasticFusion-構建場景地圖

        我們可以看出,SFM中構建的三維模型是很漂亮的,目標是人,就構建人,目標是是物,就構建人,目標是地圖,就構建地圖的三維模型,所以我更愿意定義SFM:構建目標的三維模型。

        SLAM(側重定位)和SFM(側重建圖)聯(lián)系很大的,大佬們?yōu)槭裁匆堰@兩個東西分開?既估計出相機的運動軌跡,又把經過所有的地方(整個場景包括人,桌子,椅子)都構建出來,這不是更perfect的方案嗎?

        因為.....做不到,計算量達不到。

        在SLAM中,現(xiàn)有方法可以做到小場景下的“相對”稠密化建圖(圖2),而在大場景下(圖1)是難以實現(xiàn)的。當你的目標是導航,就需要實時性的定位,大場景稠密地圖的讀取和儲存,現(xiàn)有硬件條件是不可能達到的,但是,越稠密的地圖才能更好的幫助機器人進行自主定位。所以,現(xiàn)在發(fā)展二十年之久的SLAM的遺留問題就有,稀疏地圖稠密化(我構建了稀疏地圖,但是為了自主導航,這個地圖不夠用),或者稠密地圖的稀疏表達(典型工作octotree)。

        SLAM中的M什么時候能變成,真正能用做語義分割和識別的dense mapping,機器人的自主性會得到極大的進步

        akkaze-鄭安坤

        稍微修改一下這個回答,準確點說slam應該去和sfm比較,不能直接和三維重建比較。

        slam最重要的作用是定位,相機要知道自己的姿態(tài),因為需要的姿態(tài)通常都是3d的,所以在恢復3d姿態(tài)的時候,使用pnp方法能得到不少3d點,這些3d點也能成為新的地圖,但是多半是稀疏的,當然這是非直接法,直接法會計算圖像梯度變換比較大的地方的深度,所以最終能得到半稀疏的地圖。slam屬于稀疏重建的范疇,它也沒有刻意要去重建某個目標,并且要求運行速度很快,通常是在線的,否則在某些場景里面就要出事故,slam要求速度大于精度,所以slam只會在關鍵幀間做BA,非關鍵幀都會使用基于filter的方法。

        然后是sfm,structure from motion,它和slam的功能其實是最像的,它的目的也是為了求解相機姿態(tài),同樣也能得到3d的稀疏點,它和slam最大的不同在于它要求精度更高,能做BA的地方通常都會做BA。

        三維重建是密集重建,它和前面兩個算法最大的區(qū)別在于它需要恢復深度圖出來,至少是關鍵幀的深度圖出來?;謴蜕疃葓D的通常是立體匹配,如果是rgbd的話能直接從sensor得到。

        立體匹配也有兩種主流方法。我個人認為可以分為sgm一類,patchmatch一類。個人覺得最主要的區(qū)別在于patchmatch能利用前面slam或者sfm解算出來那些稀疏的3d點,然后在全圖像平面?zhèn)鞑?。sgm只能從頭開始做匹配。

        當然恢復出來深度圖以后還有各種深度圖融合算法。因為對三維模型的表示也有好幾種方式,基于三角網(wǎng)的,基于voxel的,基于tsdf的。每一種的融合方法都不一樣。這是一個大的課題。總的來說,到這里,三維重建和slam已經完全不一樣了。

        育心

        針對這個問題,專門請教了視覺SLAM和三維重建方面的大佬,整理如下:

        區(qū)別

        (1)SLAM要求實時,數(shù)據(jù)是線性有序的,無法一次獲得所有圖像,部分SLAM算法會丟失過去的部分信息;基于圖像的SfM不要求實時,數(shù)據(jù)是無序的,可以一次輸入所有圖像,利用所有信息。

        (2)SLAM是個動態(tài)問題,會涉及到濾波,運動學相關的知識,而SfM主要涉及的還是圖像處理的知識。

        聯(lián)系

        (1)基本理論是一致的,都是多視角幾何;

        (2)傳統(tǒng)方法都需要做特征值提取與匹配;

        (3)都需要優(yōu)化投影誤差;

        (4)回環(huán)矯正和SfM的全局注冊方法是同一件事情。


        下載1:OpenCV-Contrib擴展模塊中文版教程
        在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。

        下載2:Python視覺實戰(zhàn)項目52講
        小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

        下載3:OpenCV實戰(zhàn)項目20講
        小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

        交流群


        歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~


        瀏覽 43
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            女人露胸视频 | 新婚之夜无奈张开双腿被蹂躏 | 国产精品V无码A片在线看吃奶 | 动漫八尺大人被吸乳视频 | 日本在线视频不卡 | 美女18隐私视频网站动漫 | 黄 色 视 频在线观看 五月天婷婷激情视频 | 91丨九色丨蝌蚪最新地址 | 午夜福利成人 | 同性恋啪啪|