日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opengl 日地月运动模型_MaskFusion: 多运动目标实时识别、跟踪和重建

發布時間:2024/4/13 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opengl 日地月运动模型_MaskFusion: 多运动目标实时识别、跟踪和重建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊“計算機視覺life”關注,置頂更快接收消息!

本文經知乎作者原野尋蹤授權轉載

原文:https://zhuanlan.zhihu.com/p/62059382

近期在調研關于RGBD在室內移動機器人下的語義導航的研究。目前帝國理工的Andrew Davison在這邊有兩個團隊在研究,目前最新的分別是Fusion++ 和 這篇 MaskFusion( 還有MID-Fusion, 之前的SemanticFusion 以及各類Fusion屬于這倆分支) 。這篇是我閱讀文章時的筆記,整理一下發上來和大家一起分享。文章末尾有關于到移動機器人應用rgbd語義slam的一些小想法,有想法歡迎在評論區一起探討.

這篇文章在上傳到axiv的時候即被Fusion++引用,并被其做了一些蒼白的比較:"雖然其能支持動態環境,但該文章并沒有完成精細的物體重建,未來二者融合會是不錯的方向。"

這句話也可以表述為,支持動態環境的定位系統,畢竟重建不是slam的目的,所以這篇或許更適合來做室內rgbd語義導航。

發表在ISMAR2018. 帝國理工.

本文之前作者還有一篇 《Co-fusion》在ICRA2017. (本文提到帶分割的co-fusion無法實時)

Abstract

輸出純幾何的靜態場景地圖。

前端使用了image-based的instance-level語義分割。

與之前的recoginition-based slam系統不同,它不需要任何已知模型,而且可以處理多個獨立運動。

代碼開源:(https://github.com/martinruenz/maskfusion)

Introduction

還處于幼兒期的兩個slam方向:

  • slam的靜態假設。能夠處理任意動態運動和非剛體場景的魯棒slam系統仍然remain open challege.

  • 大部分slam系統輸出純幾何地圖。語義信息的添加大部分限制于少數已知物體的實例,需要提前建好它們的3D模型。或者將3D地圖點聚類成固定的語義類別,而不區分實例。

  • 本文貢獻 提出一種實時的SLAM系統,能夠提供物體級的場景描述。

    整合了兩個輸出:

  • Mask-RCNN. image-based的實例分割算法,能夠預測80多種物體類別。

  • 一種基于幾何的分割算法[ yeah!], 通過深度和表面法向量線索來生成物體邊界地圖(object edge map) 增加物體邊界的準確性。

  • 注意這里用的分割是實例級的,要比pixel-level還高一級。

    與其他實時slam系統的比較:

    [ related works的筆記,找一些系統特性然后從已有提出的系統中篩選一下即可。比如light-weight localization可以挑選地圖大小、定位精度、實時性等.]

    Related Works

    Dense RGB-D SLAM KinectFusion中提出 TSDF 模型。然而該模型在建圖和跟蹤之間轉換時需要開銷。而surfel-based的RGBD系統,每個element存儲了局部表面特征,即半徑和法向量,具有高效運算。

    Semantic SLAM 融合標記的圖像數據到分割的3D地圖中。由于沒有考慮物體實例,所以無法單獨跟蹤多個物體。

    Dynamic SLAM 動態SLAM中有兩個主要的場景:非剛體表面重建和多獨立運動剛體。

    值得注意的文獻:

    (表格居然無法粘過來..只好放圖)

    3 System Overview

    【圖片解析:即說明用一個隊列來解決mask network耗時較長的問題。讓整體系統相對實際世界的時間犧牲一定的延時來等待第一幀mask 產生】 ( 5hz說明200ms一幀 )

    每一幀獲取之后,執行下列步驟:

    跟蹤 以surfels表示每個物體的3D幾何。最小化一個energy,包括幀內物體和存儲的3D模型之間的ICP error,以及考慮光度一致性(類似直接法?),與前一幀的位姿聯合。為了高效運算,僅跟蹤非靜態物體。用兩個不同策略判斷是否為靜態:

  • 基于運動一致性,參考[39] Co-fusion.

  • 認為被人碰觸的物體為動態.

  • 分割 綜合了語義和幾何信息來做分割。Mask-RCNN有兩個缺點:

  • 無法實時:5Hz.

  • 物體邊界不完美,容易滲透到背景去

  • 用幾何分割來彌補,基于深度不連續和法向量。幾何分割可以實時,而且提供準確的物體邊界。

    幾何邊界和幾何成分圖。

    說說幾何分割缺點:它傾向于過分割物體。聯合兩個方法:每一幀進行幾何分割,而語義分割則盡量often,于是實現:

  • 完整系統實現實時。幾何分割用于沒有語義物體mask的幀,有語義mask的幀兩者都用。

  • 有了幾何分割,語義物體邊界更好了。

  • 融合 surfels會不斷隨時間融合。類似之前提出的幾套三維重建方法。如[23, 50 ElasticFusion]

    正文來了!

    4 Multi-object SLAM

    3d模型的表示用surfel模型。

    對于每個物體,即如上的u,其中包括位置,法向量,顏色,權重,半徑和兩個時間戳。此外,每個模型賦予一個類別ID( 0..80 ),以及一個物體標簽。對于每個時間戳,給定是否靜態的標簽,以及存儲剛體位姿R和t。

    4.1 Tracking

    幀間位姿跟蹤純粹基于Intensity以及ICP的幾何深度點云匹配。

    其中各誤差項的具體表述為:

    v表示各個節點,如何理解將上一幀的節點轉換到當前幀做空間差并投影到法向量位置呢。從目的上理解是不是要讓同一個物體的觀測距離盡量小?

    v應該是surfel模型中的v,對于每一個面盡量重疊,而重疊的方式則是讓面間距離最小。因此該公式就比較直觀了。

    即將上一幀對應位置的強度通過變換投影到當前幀,構造一個基于intensity的BA。(為何當前的BA過程都只考慮intensity呢。顏色都被壓縮為一個通道)

    CUDA加速的應用基于開源的codes of [ElasticFusion 和 Co-Fusion]

    4.2 Fusion

    該部分目的是更新surfels。通過與當前幀進行投影的數據關聯。該步驟來自[23],但基于分割的模具用于物體邊界。因而每個新增加的surfel屬于確定的一個模型。同時,對于模具之外的surfels我們引入了一個置信懲罰,對于不完美的分割是必須的。

    5 SEGMENTATION

    該部分是最重要的部分了。跟蹤是一板一眼毫無創新地解決了,即融合已有的ElasticFusion面元,結合surfel的表達和intensity構造優化。重建也可以按照elasticfusion和[23]的框架來做更新surfels。那么本文的重點,分割是如何實現的呢。

    數據關聯的構建 基于Co-Fusion,不是在3D完成數據關聯,而是在2D下進行model-to-segment的關聯。給定這些關聯后,新的幀被masked,僅僅數據的子集被fused到已有的模型中,

    pipeline的設計基于以下觀測:.. 復讀機了上面內容。

    RGBD的分割是基于object convexity假設的。

    雙線程的工程實現。由于分割平行與tracking和fusion線程,于是需要有同步機制。

    設計了一個隊列。最終有一個400ms delay。實現30fps。

    對于沒有語義分割的幀,用mask-less 幀的邊界與已有的模型做關聯,將在Section 5.3中討論。

    5.1 Semantic Instance segmentation

    Mask-rcnn等提供了專注于實例級別的物體分割算法。(非常好奇這類算法如何實現的分割,真實效果如何,以及背后理論的限制和前景如何,當前發展方向如何。——并不深入去工程細節,而是從數學宏觀上來理解這些東西,一定要不陷入天坑中去。)

    5.2 Geometric Segmentation

    基于幾何的分割感覺也很有前景。對于人類來說大部分的分割實際是幾何完成的。在人類知道該物體是獨立的物體之前,并不需要該物體的語義信息。相反,語義信息是建立在分割的基礎上的。

    [13, 22, 42, 45, 47] 專門研究了 RGBD幀的幾何分割問題。基本上在2013-2015年的文章。該部分已經成熟。

    即它與語義的結合才是現在比較好的方向,同時結合上動態過程。

    分割參考的論文

    [45] K. Tateno, F. Tombari, and N. Navab. Real-time and scalable incremental segmentation on dense slam. In IEEE/RSJ International Conference

    on Intelligent Robots and Systems, 2015

    分割過程如下,定義兩個參數分別考慮深度的連通和凹的程度,定義一個閾值和它們兩的權重:

    示例分割結果提出的邊界:

    然后對其去除back-ground得到

    5.3 Merged segmentation【該部分整體有點迷】

    當沒有語義masks的時候,幾何標簽直接與存在的模型做關聯,于是下面討論的會被跳過。

    5.3.1 Mapping geometric labels to masks

    即判斷二者重疊區域最高的作為關聯。在實驗里設定 65%的重復度。

    多個components可以被mapped到同一個mask,然而一個component只map到一個mask。

    5.3.2 Mapping masks to models

    將物體labels投影到相機視野中,如f)圖所示。然后將其與幾何分割的components之間做5.3.1中同樣的重合度比較。上圖通過OpenGL渲染所有模型來生成。( 如何渲染? ) 然后選取一個 5%的閾值( 為何這么小) ,驗證了物體模型的類別ID和mask是一致的。

    對于沒有成功匹配上的剩余的components,如5.3.1中直接與labels做overlap.

    此處特意設定了一個值255來去除如手臂一樣不想考慮的區域。

    (這里兩者分開考慮,很類似我的ob-map, map-ob的 pole data association, 所以我也應該分別考慮二者。)

    6 Evaluation

    評估部分。建圖和跟蹤部分都基于 co-fusion和elasticfusion. 專門挑選了動態環境,使用AT[全局]、RP[忽略drift] RMSE來評估。

    首先對比人多的環境。由于MaskFusion無法處理可變形部分,所以我們忽略掉有人的關聯。

    Co-Fusion的介紹是一種通過運動來分割物體的SLAM系統。可以仔細看看。

    基于rgbd的benchmark,提出文獻:

    [43] Jurgen Sturm, Nikolas Engelhard, Felix Endres, Wolfram Burgard, ¨

    and Daniel Cremers. A benchmark for the evaluation of rgb-d slam

    systems. In Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ

    International Conference on, pages 573–580. IEEE, 2012.

    實驗數據

    其實挑了三段 TUM數據集,用5個系統跑了一下,同時將其中部分人為拆成 slightly dynamic和highly dynamic。(這里是實驗者自己來規定的部分嗎?)

    6.1.2 Reconstruction

    感覺該文獻的核心還是重建。

    YCB Object and Model Set [4]里面提供了常用物體的數據庫,可以用來做重建的評估。(厲害了還有這種東西。或許可以3d打印再重建?)

    就找了個瓶子跑了一下試試,也沒有跟其他的比。

    6.1.3 Segmentation

    將重建的3D模型投回來作為groundtruth去與聯合方法得到的區域做IoU的比較。

    這里出現了一個ours和 geometry+semantic的兩個,不知道區別。

    6.2 Qualitative results

    這里三維重建能夠為機械手臂的抓持提供抓持點的分析。

    6.3 Performance

    2塊GPU Titan X+cpu core i7 3.5GHz!1塊做實時分割,一塊做slam。( 實際測試的時候可以先分割好然后跑數據集.. )

    Conclusion

    三個限制:recognition, reconstruction and tracking.

  • 限制于mask-rcnn識別物體的種類。

  • 限制于剛體的跟蹤

  • 過小的物體提供不了足夠的幾何信息。

  • 資源

    Mask-RCNN : https://github.com/matterport/Mask_RCNN

    思考

    整個系統某種程度上更專注于三維重建。它對多物體的跟蹤,不過是融合了icp和強度的增加誤差項的方式。

    這里將地圖中的物體存放了位置信息,那么跟蹤的時候若物體也在動,如何保證優化得到正確的相機和物體位姿?

    該系統在結果中在高動態環境下效果比較好,而在低動態環境下反而沒有staticFusion效果好,為何會有這種狀況出現?

    實驗部分考慮了多個應用:AR環境的示意、與人手的交互(顯示卡路里)、以及動態晃動瓶子狀態下對其的重建。而我認為更有用的定位部分評估不是很多,它并不是一個很合格的為移動機器人準備的動態語義slam系統。

    關于移動機器人與物體級語義SLAM的應用思路

    對于移動機器人來說,分割是很必要的東西,當在環境中發現了某種物體,應該附有基本屬性 ( static/not static ),若是 not static的,應該能對其運動進行跟蹤和預測。該部分的核心是能夠定位自身( 過濾掉動態之后 ), 然后對其進行跟蹤。作為機器人并不在乎其重建效果。所以機器人能夠在動態環境下在動態物體潛在運動軌跡上添加costfunction完成路徑規劃。

    對于室內環境,先完成分割。語義分割+幾何分割的點子是很好的。然后將該信息融合到已有的靜態地圖中去,輔助機器人完成路徑規劃。

    思考有沒有相關最新文章研究。語義級的slam(檢測人即可, 包括一些不在類別內的移動物體(球、機器人等) ),同時路徑規劃,路徑規劃的同時完成對動態物體的分割和追蹤。

    即該slam系統的目的,不再僅僅停留于剔除掉動態物體完成定位。而是將動態物體作為地圖的一個layer,即動態層。

    傳統靜態層用于定位,而動態層用于估計動態物體相對自身位置,并輔助路徑規劃。

    第一步、完成動態層的構建(即多物體跟蹤 - 深入,更多物體的跟蹤。(盡量收縮室內的定位要求,如天花板、線面等幾何信息)

    第二步、基于該系統完成路徑規劃(根據第一步地圖來高幀率預測動態物體的潛在路徑,建立路徑規劃模型)

    第三步、徹底意義的主動探索(挑選合適的下一步主動slam位置,并在高動態環境完成主動探索!)

    這三步完成之后,一個徹底的室內物流機器人就完成了,它可以在室內動態環境運動到任何地方去。

    認為這里準確的物體邊界非常重要。應用考慮目前2d圖像的檢

    測無法做到很準確的邊界提取,而3d下來做邊界提取則變得異常簡單。

    這也是傳感器融合的一個點。slam輔助語義識別。

    目前語義slam的點不是那么好找了,想在室內移動機器人上做一做,拋磚引玉吧。

    其他資料

    論文鏈接:MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects(http://visual.cs.ucl.ac.uk/pubs/maskfusion/)

    我之前寫的SemanticFusion的解析

    原野尋蹤:(https://zhuanlan.zhihu.com/p/42713034)[論文]SemanticFusion CNN稠密3D語義建圖

    推薦閱讀

    如何從零開始系統化學習視覺SLAM?

    從零開始一起學習SLAM | 為什么要學SLAM?

    從零開始一起學習SLAM | 學習SLAM到底需要學什么?

    從零開始一起學習SLAM | SLAM有什么用?

    從零開始一起學習SLAM | C++新特性要不要學?

    從零開始一起學習SLAM | 為什么要用齊次坐標?

    從零開始一起學習SLAM | 三維空間剛體的旋轉

    從零開始一起學習SLAM | 為啥需要李群與李代數?

    從零開始一起學習SLAM | 相機成像模型

    從零開始一起學習SLAM?|?不推公式,如何真正理解對極約束?

    從零開始一起學習SLAM | 神奇的單應矩陣

    從零開始一起學習SLAM | 你好,點云

    從零開始一起學習SLAM | 給點云加個濾網

    從零開始一起學習SLAM | 點云平滑法線估計

    從零開始一起學習SLAM | 點云到網格的進化

    從零開始一起學習SLAM | 理解圖優化,一步步帶你看懂g2o代碼

    從零開始一起學習SLAM | 掌握g2o頂點編程套路

    從零開始一起學習SLAM | 掌握g2o邊的代碼套路

    SLAM初識

    SLAM技術框架

    慣性導航系統簡介

    視覺里程計:起源、優勢、對比、應用

    視覺里程計:特征點法之全面梳理

    SLAM領域牛人、牛實驗室、牛研究成果梳理

    我用MATLAB擼了一個2D LiDAR SLAM

    可視化理解四元數,愿你不再掉頭發

    IMU標定 | 工業界和學術界有什么不同?

    匯總 | VIO、激光SLAM相關論文分類集錦

    最近一年語義SLAM有哪些代表性工作?

    視覺SLAM技術綜述

    研究SLAM,對編程的要求有多高?

    深度學習遇到SLAM | 如何評價基于深度學習的DeepVO,VINet,VidLoc?

    2018年SLAM、三維視覺方向求職經驗分享

    新型相機DVS/Event-based camera的發展及應用

    最近三年開源「語義SLAM/分割/建模」方案介紹超詳細干貨 | 三維語義分割概述及總結高翔:談談語義SLAM/地圖

    歡迎關注公眾號:計算機視覺life,一起探索計算機視覺新世界~

    覺得有用,給個好看啦~??

    總結

    以上是生活随笔為你收集整理的opengl 日地月运动模型_MaskFusion: 多运动目标实时识别、跟踪和重建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。