亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
Simultaneous Localization And Mapping
Computer Vision and Robotics Platform
SLAM Benchmarks
#Framework Overview
Basic Interface Classes
Estimator
Optimizer
Vocabulary
Datasets
SLAM Implementations
Evaluation
首頁 科技週邊 人工智慧 GSLAM | 一個通用的SLAM架構(gòu)和基準

GSLAM | 一個通用的SLAM架構(gòu)和基準

Oct 20, 2023 am 11:37 AM
ai 科技

突然發(fā)現(xiàn)了一篇19年的論文

GSLAM:A General SLAM Framework and Benchmark

開源程式碼:https://github.com/zdzhaoyong/GSLAM

#直接上全文,感受這項工作的品質(zhì)吧~

1 摘要

SLAM技術(shù)最近取得了許多成功,並吸引了高科技公司的關注。然而,如何同一現(xiàn)有或新興演算法的介面,一級有效地進行關於速度、穩(wěn)健性和可移植性的基準測試仍然是問題。本文,提出了一個名為GSLAM的新型SLAM平臺,它不僅提供評估功能,也為研究人員提供了快速開發(fā)自己的SLAM系統(tǒng)的有用工具。 GSLAM的核心貢獻是一個通用的??缙脚_的、完全開源的SLAM接口,旨在處理輸入資料集、SLAM實現(xiàn)、可視化和應用程式的統(tǒng)一框架中的互動。透過這個平臺,使用者可以以插件形式實現(xiàn)自己的功能,以提高SLAM的效能,並進一步將SLAM的應用推向?qū)嶋H應用。

2 介紹

自1980年代以來,同時定位與地圖建構(gòu)(SLAM)一直是電腦視覺和機器人領域的熱門研究主題。 SLAM為許多需要即時導航的應用提供了基本功能,如機器人技術(shù)、無人機(UAVs)、自動駕駛、以及虛擬實境和擴增實境。近年來,SLAM技術(shù)得到了迅速發(fā)展,提出了各種SLAM系統(tǒng),包括單目SLAM系統(tǒng)(基於特徵點,直接和半直接方法)、多感測器SLAM系統(tǒng)(RGBD、雙眼和慣性輔助的方法)以及基於學習的SLAM系統(tǒng)(有監(jiān)督和無監(jiān)督方法)。

然而,隨著SLAM技術(shù)的迅速發(fā)展,幾乎所有的研究人員都集中精力於自己的SLAM系統(tǒng)的理論和實施,這使得難以交流思想,並且不容易實現(xiàn)遷移到其他系統(tǒng)。這妨礙了SLAM技術(shù)快速應用於各種產(chǎn)業(yè)領域。此外,目前存在許多SLAM系統(tǒng)的不同實現(xiàn)版本,如何有效地進行速度、穩(wěn)健性和可移植性的基準測試仍然是一個問題。最近,Nardi等人和Bodin等人提出了統(tǒng)一的SLAM基準測試系統(tǒng),以進行定量、可比較和可驗證的實驗研究,也探討各種SLAM系統(tǒng)之間的權(quán)衡。透過這些系統(tǒng),可以使用資料集和度量評估模組輕鬆進行評估實驗。

由於現(xiàn)有的系統(tǒng)僅提供評估基準,該論文認為有可能建立一個平臺,以服務SLAM演算法的整個生命週期,包括開發(fā)、評估和應用階段。此外,近年來深度學習基礎的SLAM已取得顯著進展,因此有必要創(chuàng)建一個平臺,不僅支援C ,還支援Python,以更好地支援幾何和深度學習基礎的SLAM系統(tǒng)的整合。因此,在本文中,介紹了一個新型的SLAM平臺,不僅提供評估功能,還為研究人員提供了有用的工具,以快速開發(fā)自己的SLAM系統(tǒng)。透過這個平臺,常用功能以插件形式提供,因此使用者可以直接使用它們或創(chuàng)建自己的功能以實現(xiàn)更好的效能。希望這個平臺能進一步推動SLAM系統(tǒng)的實際應用??偠灾?,本文的主要貢獻如下:

  1. 本文提出了一個通用的、跨平臺的、完全開源的SLAM平臺,旨在用於研究和商業(yè)用途,超越了以往的基準測試系統(tǒng)。 SLAM介面由多個輕量級、無依賴的頭檔組成,這使得在統(tǒng)一框架中以插件形式與不同資料集、SLAM演算法和應用程式進行互動變得容易。此外,還提供了JavaScript和Python,以支援基於Web和深度學習的SLAM應用。在
  2. 提出的GSLAM平臺中,引入了三個經(jīng)過最佳化的模組作為實用工具類,包括Estimator、Optimizer和Vocabulary。 Estimator旨在提供一組封閉形式的求解器,涵蓋所有情況,具有強大的樣本一致性(RANSAC);Optimizer旨在提供流行的非線性SLM問題的統(tǒng)一介面;Vocabulary旨在提供高效且可移植的詞袋實現(xiàn),用於多線程和SIMD優(yōu)化的地點識別。
  3. 受益於上述接口,該工作在一個統(tǒng)一的框架中實現(xiàn)並評估了現(xiàn)有數(shù)據(jù)集、SLAM實現(xiàn)和可視化應用的插件,未來出現(xiàn)的基準測試或應用也可以輕鬆地進行進一步集成。

下面首先介紹GSLAM框架的接口,並解釋GSLAM的工作原理。其次,介紹三個實用元件,即Estimator, Optimizer和Vocabulary。然後,使用幾個典型的公共資料集,使用GSLAM框架來評估不同流行的SLAM實作。最後,總結(jié)這些工作,並展望未來的研究方向。

3 相關工作

Simultaneous Localization And Mapping

SLAM技術(shù)用於在未知環(huán)境中建立地圖,並將感測器在地圖中進行定位,主要側(cè)重於即時操作。早期的SLAM主要基於擴展卡爾曼濾波(EKF)。將6自由度的運動參數(shù)和3D地標以機率方式表示為單一狀態(tài)向量。經(jīng)典EKF的複雜度隨著地標數(shù)量的增加呈二次增長,限制了其可拓展性。近年來,SLAM技術(shù)已經(jīng)快速發(fā)展,提出了許多單目視覺SLAM系統(tǒng),包括基於特徵點、直接法和半直接方法。然而,單目SLAM系統(tǒng)缺乏尺度訊息,無法處理純旋轉(zhuǎn)情況,因此一些其他多感測器SLAM系統(tǒng),包括RGBD,雙眼和慣性輔助方法出現(xiàn),以提高穩(wěn)健性和精度。

儘管提出了大量的SLAM系統(tǒng),但在統(tǒng)一這些演算法的介面方面幾乎沒有工作,也沒有對它們的性能進行全面的比較。此外,這些SLAM演算法的實作通常以獨立的可執(zhí)行檔的形式發(fā)布,而不是以庫的形式,而且往往不符合任何標準結(jié)構(gòu)。

最近,基於深度學習的有監(jiān)督和無監(jiān)督的視覺里程計(VO)與傳統(tǒng)的基於幾何的方法相比,提出了新穎的思路。但是,進一步優(yōu)化多個關鍵影格的一致性仍然不容易。 GSLAM提供的工具可以幫助獲得更好的全域一致性。透過該框架,更容易可視化或評估結(jié)果,並進一步應用於各種行業(yè)領域。

Computer Vision and Robotics Platform

在機器人技術(shù)和電腦領域,機器人系統(tǒng)(ROS)提供了節(jié)點之間非常便捷的通訊方式,受到大多數(shù)機器人研究人員的青睞。許多SLAM實作提供了ROS包裝器,以訂閱感測器資料並發(fā)布視覺化結(jié)果。但它並未統(tǒng)一SLAM實現(xiàn)的輸入與輸出,難以進一步評估不同SLAM系統(tǒng)。

受ROS訊息架構(gòu)的啟發(fā),GSLAM實作了一個類似的進程間通訊實用類,稱為Messenger。這為替代SLAM實現(xiàn)內(nèi)部的ROS提供了另一種選擇,並保持了相容性,也就是說,該框架內(nèi)支援所有ROS定義的訊息,並自然地??實現(xiàn)了ROS包裝器。由於採用了進程內(nèi)設計,訊息傳遞時沒有序列化和資料傳輸,訊息可以無延遲和額外成本地發(fā)送。同時,訊息的有效載荷不僅限於ROS定義的訊息,還可以是任何可複製的資料結(jié)構(gòu)。此外,不僅提供評估功能,還為研究人員提供了有用的工具,以快速開發(fā)和整合自己的SLAM演算法。

SLAM Benchmarks

目前有幾個SLAM基準測試系統(tǒng),包括KITTI基準測試、TUM RGB-D基準測試和ICL-NUIM RGB-D基準資料集,這些系統(tǒng)僅提供評估功能。此外,SLAMBench2將這些基準測試擴展為演算法和資料集,要求使用者將已發(fā)布的實作與SLAMBench2相容,以進行評估,這難以擴展到更多應用領域。與這些系統(tǒng)不同,本文提出的GSLAM平臺提供了一個解決方案,可為SLAM實現(xiàn)的整個生命週期提供服務,從開發(fā)、評估到應用。為研究人員提供了有用的工具,以快速開發(fā)自己的SLAM系統(tǒng),並進一步基於統(tǒng)一介面開發(fā)視覺化、評估和應用程式。

4 通用SLAM架構(gòu)

#Framework Overview

GSLAM的架構(gòu)如圖所示??偟膩碚f,介面旨在處理三個部分的互動。

  1. 處理SLAM實作的輸入。運行SLAM時,需要感測器數(shù)據(jù)和一些參數(shù)。對於GSLAM,使用Svar類別進行參數(shù)配置和命令處理。所有SLAM實作所需的感測器資料都由Dataset實作提供,並使用Messenger進行傳輸。 GSLAM實現(xiàn)了幾個流行的視覺SLAM資料集,用於可以自由實現(xiàn)自己的資料集插件。
  2. SLAM實作。 GSLAM將每個實作視為插件庫。開發(fā)人員可以非常容易地基於GSLAM介面和實用類別設計一個SLAM實作。開發(fā)人員還可以使用介麵包裝實現(xiàn),而無需引入額外的依賴。使用者可以專注於核心演算法的開發(fā),而無需關心SLAM實現(xiàn)外部需要處理的輸入和輸出。
  3. 視覺化部分或使用SLAM結(jié)果的應用。在SLAM實現(xiàn)處理輸入幀後,使用者可能希望展示或利用結(jié)果。為了通用性,SLAM結(jié)果應以標準格式發(fā)布。預設情況下,GSLAM使用Qt進行視覺化,但使用者可以自由實現(xiàn)自訂的視覺化工具,並添加應用程式插件,如評估應用程式。

GSLAM | 一個通用的SLAM架構(gòu)和基準

#

該框架被設計為與各種不同類型的SLAM實現(xiàn)相容,包括但不限於單目、雙眼、RGBD和多相機視覺慣性里程計與多感測器融合?,F(xiàn)代深度學習平臺和開發(fā)人員更喜歡使用Python進行編碼,因此GSLAM提供了Python綁定,開發(fā)人員能夠使用Python實現(xiàn)SLAM,並使用GSLAM呼叫它,或使用Python呼叫基於C 的SLAM實作。此外,也支援JavaScript用於基於Web的用途。

Basic Interface Classes

SLAM介面通常使用的一些資料結(jié)構(gòu)包括參數(shù)設定/讀取、影像格式、姿態(tài)變換、相機模型和地圖資料結(jié)構(gòu)。以下是一些基本介面類別的簡要介紹。

Paramter Setting

GSLAM使用一個小巧的參數(shù)解析和參數(shù)設定類別Svar,它只包含一個頭文件,依賴C 11,並具有以下特點:

a.參數(shù)解析和配置載入以及幫助資訊。類似於流行的參數(shù)解析工具,如Google gflags,變數(shù)配置可以從命令列參數(shù)、檔案和系統(tǒng)環(huán)境載入。使用者還可以定義不同類型的參數(shù),並提供介紹信息,這些信息將顯示在幫助文件中。

b.一個小型腳本語言,支援變數(shù)、函數(shù)和條件語句,使設定檔更加強大。

c.線程安全的變數(shù)綁定和共享。建議將使用頻率非常高的變數(shù)綁定到指標或引用上,這不僅提供了高效性,還提供了便利性。

d,簡單的函數(shù)定義和從C 或純腳本進行呼叫。命令和函數(shù)之間的綁定有助於開發(fā)人員解耦檔案依賴關係。

e.支援樹形結(jié)構(gòu)表示,這意味著可以輕鬆地使用XML、JSON和YAML格式載入或儲存設定。

Intra-Process Messaging

由於ROS提供了一個非常便捷的節(jié)點間通訊方式,受到大多數(shù)機器人研究人員的青睞。受到ROS2訊息架構(gòu)的啟發(fā),GSLAM實作了一個類似的進程間通訊實用類,稱為Messenger。這為替代SLAM實現(xiàn)內(nèi)部的ROS提供了另一種選擇,並保持了相容性。由於採用了進程間設計,Messenger能夠發(fā)布和訂閱任何類,而無需額外成本。以下是更多功能的介紹:

a.此介面採用了ROS的風格,對用來說容易上手。而且支援所有ROS定義的訊息,這意味著只需要很少的工作就能取代原來的ROS訊息傳遞系統(tǒng)。

b.由於沒有序列化和資料傳輸,訊息可以無延遲和額外成本地發(fā)送。同時,訊息的有效載荷不僅限於ROS定義的訊息,還支援任何可複製的資料結(jié)構(gòu)。

c.原始碼只包括基於C 11的頭文件,沒有額外的依賴,使其具有可移植性。

d.API是執(zhí)行緒安全的,並在列隊大小大於零時支援多執(zhí)行緒條件通知。在發(fā)布者和訂閱者相互連接之前,會對主題名稱和RTTI資料結(jié)構(gòu)進行檢查,以確保正確地呼叫。

3D Transforamtion

GSLAM | 一個通用的SLAM架構(gòu)和基準

GSLAM | 一個通用的SLAM架構(gòu)和基準

#對於旋轉(zhuǎn)部分,有幾種表示方式可供選擇,包括矩陣、歐拉角、單位四元數(shù)和李代數(shù)so(3)。對於給定的變換,可以使用其中任何一種來表示,並且可以相互轉(zhuǎn)換。但是,當考慮多個變換和流形最佳化時,需要密切注意所選的表示方式。矩陣表示法使用9個參數(shù)進行過度參數(shù)化,而旋轉(zhuǎn)只有3個自由度(DOF)。歐拉角表示使用3個變量,易於理解,但面臨萬向鎖的問題,而且不方便進行多重變換。單位四元數(shù)是執(zhí)行多次旋轉(zhuǎn)的最高效方式,而李代數(shù)則是執(zhí)行流行優(yōu)化的常見表示方法。

GSLAM | 一個通用的SLAM架構(gòu)和基準

類似地,定義了剛體和相似性轉(zhuǎn)換的李代數(shù)se(3)和sim(3)。 GSLAM使用四元數(shù)來表示旋轉(zhuǎn)部分,並提供了一種表示形式轉(zhuǎn)換為另一種表示形式的函數(shù)。表格1展示了變換實現(xiàn),並於另外三種流形的實現(xiàn)(Sophus, TooN和Ceres)進行了比較。由於Ceres實現(xiàn)使用角軸表示,因此不需要旋轉(zhuǎn)的指數(shù)和對數(shù)。如表格所示,GSLAM的實現(xiàn)性能更佳,因為它使用四元數(shù)並具有更好的優(yōu)化,而TooN使用矩陣實現(xiàn),在點變換方面性能更好。

GSLAM | 一個通用的SLAM架構(gòu)和基準

Image format

影像資料的儲存和傳輸是視覺SLAM中最重要的功能之一。為了提高效率和便利性,GSLAM使用了一個資料結(jié)構(gòu)GImage,它與cv::Mat相容。它具有智慧指標計數(shù)器,以確保記憶體安全釋放,並且可以在不進行記憶體複製的情況下輕鬆傳輸。資料指針對齊,以便更容易進行單指令多資料(SIMD)加速。使用者可以在GImage和cv::Mat之間無縫、安全地進行轉(zhuǎn)換,而無需進行記憶體複製。

Camera Models

GSLAM | 一個通用的SLAM架構(gòu)和基準

#由於SLAM可能包含因製造不完美而引起的徑向和切向畸變,或者是由魚眼或全景相機捕捉的影像,因此提出了不同的相機模型來描述投影。 GSLAM提供了包括OpenCV(ORB-SLAM使用)、ATAN(PTAM使用)和OCamCalib(MultiCol-SLAM使用)在內(nèi)的實作。用戶也可以輕鬆繼承這些類別並實現(xiàn)其他相機模型,如Kannala-Brandt和等距全景模型。

Map Data Structure

對於SLAM實現(xiàn),其目標是即時定位並產(chǎn)生地圖。 GSLAM建議使用一個統(tǒng)一的地圖資料結(jié)構(gòu),有多個地圖幀和地圖點組成。這個資料結(jié)構(gòu)適用於大多數(shù)現(xiàn)有的視覺SLAM系統(tǒng),包括基於特徵或直接方法。

地圖幀用於表示不同時間的位置狀態(tài),包括由感測器捕捉的各種資訊或估算結(jié)果,包括IMU或GPS原始資料、深度資訊和相機模型。 SLAM實現(xiàn)估算它們之間的關係,它們之間的連接形成了一個姿勢圖。

地圖點用於表示由幀觀察到的環(huán)境,通常由基於特徵的方法使用。但是,一個地圖點不僅可以表示一個關鍵點,還可以表示一個GCP(地面控制點)、邊緣線或3D物件。它們與地圖幀的對應關係形成了一個觀察圖,通常被稱為捆綁圖。

5 SLAM實作工具

為了更容易實作一個SLAM系統(tǒng),GSLAM提供了一個實用類別。本節(jié)將簡單介紹三個經(jīng)過最佳化的模組,分別是Estimator, Optimizer和Vocabulary。

Estimator

純幾何計算仍然是需要強大且準確的即時解決方案的基本問題。傳統(tǒng)的視覺SLAM演算法或現(xiàn)代的視覺慣性解決方案都依賴幾何視覺演算法來進行初始化、重定位和回環(huán)閉合。 OpenCV提供了多個幾何演算法,Kneip提供了一個用於幾何視覺的工具箱OpenGV,該工具箱僅限於相機姿態(tài)計算。 GSLAM的Estimator旨在提供一系列包含所有情況的封閉形式解算器,並使用了穩(wěn)健的隨機取樣一致性方法(RANSAC)。

表2列出了Estimator支援的演算法。根據(jù)給定的觀測數(shù)據(jù),它們被分成三類。 2D-2D匹配用於估計極線或單應約束,並且可以從中分解相對姿態(tài)。 2D-3D對應於估計單目或多攝影機系統(tǒng)的中心或非中心絕對位姿,這是著名的PnP問題。也支援3D幾何函數(shù),如平面擬合,以及估算兩個點雲(yún)的SIM變換。大多數(shù)演算法都依賴與開源線性代數(shù)庫Eigen,它是一個僅包含頭文件的庫,並且適用於大多數(shù)平臺。

GSLAM | 一個通用的SLAM架構(gòu)和基準

Optimizer

非線性最佳化是現(xiàn)代幾何SLAM系統(tǒng)的核心部分。由於Hessian矩陣的高緯度和稀疏性,圖結(jié)構(gòu)被用來建模SLAM的複雜估計問題。提出了幾種框架,包括Ceres、G2O和GTSAM,用於解決一般的圖優(yōu)化問題。這些框架在不同的SLAM系統(tǒng)中廣泛使用。 ORB-SLAM、SVO使用G2O進行BA與位姿圖最佳化。 OKVIS、VINS使用Ceres進行帶IMU因子的圖優(yōu)化,滑動視窗用於控制計算複雜度。 Forster等人提出了一種基於SVO的視覺初始化方法,並使用GTSAM實現(xiàn)後端。

GSLAM的Optimizer旨在為大多數(shù)非線性SLAM問題提供一個統(tǒng)一的接口,如PnP求解器,BA,姿態(tài)圖優(yōu)化?;禖eres庫實現(xiàn)了這些問題的通用插件。對於特定問題,如BA,還可以提供一些更有效率的實現(xiàn),例如PBA和ICE-BA作為插件。使用優(yōu)化器工具,開發(fā)人員可以使用統(tǒng)一的介面存取不同的實現(xiàn),特別是用於基於深度學習的SLAM系統(tǒng)。

Vocabulary

地點辨識是SLAM系統(tǒng)中最重要的部分之一,用於重新定位和回環(huán)偵測。詞袋(BoW)方法在SLAM系統(tǒng)中廣泛使用,因為它高效且性能出色。 FabMap提出了一種基於外觀的地點識別的機率方法,該方法用於RSLAM、LSD-SLAM等系統(tǒng)。由於它使用了像SIFT和SURF這樣的浮點描述子,DBoW2為訓練和偵測建構(gòu)了一個詞彙樹,支援二元和浮點描述子。 Refael提出了DBoW2的兩個改進版本,DBoW3和FBoW,它們簡化了介面並加快了訓練和載入速度。之後,ORB-SLAM採用了ORB描述子,並使用DBoW2進行回環(huán)檢測、重定位和快速匹配。隨後,一系列SLAM系統(tǒng),如ORB-SLAM2、VINS-Mono和LDSO,使用DBoW3進行回環(huán)檢測。它已經(jīng)成為實現(xiàn)SLAM系統(tǒng)地點識別的最受歡迎工具。

受上述工作的啟發(fā),GSLAM對DBoW3詞彙進行了僅包含頭檔的實現(xiàn),具有以下特點:

  1. 去除了對OpenCV的依賴,所有函數(shù)都在一個僅依賴C 11的頭檔中實作。
  2. 結(jié)合DBoW2/3和FBoW的優(yōu)點,具有極快的速度和易於使用。提供了類似於DBoW3的接口,並使用SSE和AVX指令加速了二進制和浮點描述子。
  3. 改進了記憶體使用和加速了載入、保存或訓練詞彙以及從圖像特徵到BoW向量轉(zhuǎn)換的速度。

表3展示了四個詞袋庫的比較。在實驗中,每個父節(jié)點有10個子節(jié)點,ORB特徵偵測使用ORB-SLAM,SIFT偵測使用SiftGPU。實現(xiàn)結(jié)果中使用了ORB詞彙,分別有4級和6級,以及一個SIFT詞彙。 FBoW和GSLAM都使用多執(zhí)行緒進行詞彙訓練。 GSLAM的實現(xiàn)在幾乎所有項目中的表現(xiàn)都優(yōu)於其他實現(xiàn),包括載入和保存詞彙、訓練新詞彙、將描述符列表轉(zhuǎn)換為用於地點識別的BoW向量和用於快速特徵匹配的特徵向量。此外GSLAM實現(xiàn)使用更少的內(nèi)存,並分配了更少的動態(tài)內(nèi)存塊,因為DBoW2需要大量內(nèi)存的主要原因是碎片問題。

GSLAM | 一個通用的SLAM架構(gòu)和基準

6 SLAM評估基準

現(xiàn)有的基準需要使用者下載測試資料集並上傳結(jié)果以進行精確性評估,這不足以統(tǒng)一運行環(huán)境並評估公平的性能比較。得益於GSLAM的統(tǒng)一接口,SLAM系統(tǒng)的評估變得更加優(yōu)雅。在GSLAM的幫助下,開發(fā)人員只需上傳SLAM插件,便可以在一個使用固定資源的docker化環(huán)境中進行速度、運算成本和準確性的各種評估。在本節(jié)中,將首先介紹一些資料集和已實現(xiàn)的SLAM插件。然後,對速度、準確性、記憶體和CPU使用率進行三個代表SLAM實現(xiàn)的評估。此評估旨在展示具有不同SLAM插件的統(tǒng)一SLAM基準實現(xiàn)的可能性。

Datasets

運行SLAM系統(tǒng)通常需要感測器資料流和對應的配置。為了讓開發(fā)人員專注於核心SLAM插件的開發(fā),GSLAM提供了一個標準的資料集接口,開發(fā)人員不需要關心SLAM的輸入。透過不同的數(shù)據(jù)集插件,提供了線上感測器輸入和離線數(shù)據(jù),正確地插件會根據(jù)給定的數(shù)據(jù)集路徑後綴動態(tài)載入。資料集的實作應該提供所有請求的感測器流以及相關配置,因此不需要為不同的資料集進行額外設定。所有不同的感測器串流透過Messenger發(fā)布,使用標準的主題名稱和資料格式。

GSLAM已經(jīng)實現(xiàn)了幾個流行的視覺SLAM資料集插件,如表4所示。用戶也可以非常輕鬆地基於僅包含頭檔的GSLAM核心來實現(xiàn)一個資料集插件,並將其發(fā)佈為插件並與應用程式一起進行編譯。

GSLAM | 一個通用的SLAM架構(gòu)和基準

SLAM Implementations

#圖2展示了一些使用內(nèi)建Qt視覺化器運行的開源SLAM和SfM插件的螢幕截圖。此框架支援不同體系結(jié)構(gòu)的SLAM系統(tǒng),包括直接法、半直接法、基於特徵的方法,甚至SfM方法。 DSO實現(xiàn)需要發(fā)布結(jié)果,例如點雲(yún)、相機姿勢、軌跡和姿態(tài)圖,以便像基於ROS的實現(xiàn)一樣進行視覺化。使用者可以使用統(tǒng)一的框架存取不同的SLAM插件,根據(jù)C 、Python和Node-JS介面開發(fā)基於SLAM的應用程式非常方便。由於許多研究人員在開發(fā)中使用ROS,GSLAM還提供了ROS視覺化插件,以無縫傳輸ROS定義的訊息,並使開發(fā)人員可以利用Rviz進行顯示或繼續(xù)開發(fā)其他基於ROS的應用程式。

GSLAM | 一個通用的SLAM架構(gòu)和基準

Evaluation

由於大多數(shù)現(xiàn)有的基準只提供資料集,或者沒有g(shù)roundtruth供用戶自行評估,GSLAM提供了一個內(nèi)建插件和一些腳本工具,用於計算性能和精度評估。

論文中使用TUM RGBD資料集中的序列nostructure-texture-near-withloop來示範評估的執(zhí)行情況。接下來的實驗採用三個開源的單眼SLAM插件DSO, SVO和ORB-SLAM。在所有實驗中,使用一臺搭載i7-6700 CPU、GTX 1060 GPU和16GB RAM的計算機,運行64位元Ubuntu 16.04。

計算效能評估包括記憶體使用、分配記憶體區(qū)塊數(shù)量、CPU使用率、統(tǒng)計每幀所用的時間,如圖3所示。結(jié)果表明,SVO使用的記憶體和CPU資源最少,並獲得了最快的速度。而且由於SVO只是一個視覺里程計,在實現(xiàn)內(nèi)部只維護了一個本地地圖,所以成本保持穩(wěn)定。 DSO分配的內(nèi)存區(qū)塊數(shù)較少,但消耗了100MB以上的內(nèi)存,且增長較慢。 DSO的一個問題是當幀數(shù)低於500時,處理時間會急劇增加,此外,關鍵影格的處理時間甚至更長。 ORB-SLAM使用了最多的CPU資源,計算時間穩(wěn)定,但記憶體使用快速增加,並且它分配和釋放了大量的記憶體區(qū)塊,因為其BA使用了G2O庫,沒有使用增量最佳化方法。

GSLAM | 一個通用的SLAM架構(gòu)和基準

圖4展示了里程計軌跡的評估結(jié)果。如圖所示,SVO速度較快,但漂移較大,而ORBSLAM在絕對姿態(tài)誤差(APE)方面達到了最高的精度。由於綜合評估是一個可插拔的插件應用程序,可以重新實施更多的評估指標,例如點雲(yún)的精確度。

GSLAM | 一個通用的SLAM架構(gòu)和基準

7 總結(jié)

#本文介紹了一個名為GSLAM的新通用SLAM平臺,該平臺提出了從開發(fā)、評估到應用的支持。透過這個平臺,常用的工具包以插件形式提供,使用者還可以輕鬆地開發(fā)自己的模組。為了使平臺易於使用,使介面只依賴C 11。此外,還提供了Python和JavaScript接口,以更好地整合傳統(tǒng)SLAM和基於深度學習的SLAM,或在Web上進行分散式操作。

在接下來的研究中,會提供更多的SLAM實作、文件和簡報程式碼,以便學習和使用。此外,還將提供傳統(tǒng)SLAM和基於深度學習的SLAM的集成,以進一步探索SLAM系統(tǒng)的未知可能性。

這項工作的首頁如下:

GSLAM: Main Page

感覺是可學習SLAM各部分原理的框架~

GSLAM | 一個通用的SLAM架構(gòu)和基準

原文連結(jié):https://mp.weixin.qq.com/s/PCxhqhK3t1soN5FI0w9NFw

以上是GSLAM | 一個通用的SLAM架構(gòu)和基準的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) 如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態(tài)生成符合各平臺要求的分享鏈接。 1.首先獲取當前頁面或指定的URL及文章信息;2.使用urlencode對參數(shù)進行編碼;3.根據(jù)各平臺協(xié)議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態(tài)生成頁面OG標籤優(yōu)化分享內(nèi)容展示;6.務必對用戶輸入進行轉(zhuǎn)義以防止XSS攻擊。該方法無需複雜認證,維護成本低,適用於大多數(shù)內(nèi)容分享需求。

如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 Jul 25, 2025 pm 08:57 PM

要實現(xiàn)PHP結(jié)合AI進行文本糾錯與語法優(yōu)化,需按以下步驟操作:1.選擇適合的AI模型或API,如百度、騰訊API或開源NLP庫;2.通過PHP的curl或Guzzle調(diào)用API並處理返回結(jié)果;3.在應用中展示糾錯信息並允許用戶選擇是否採納;4.使用php-l和PHP_CodeSniffer進行語法檢測與代碼優(yōu)化;5.持續(xù)收集反饋並更新模型或規(guī)則以提升效果。選擇AIAPI時應重點評估準確率、響應速度、價格及對PHP的支持。代碼優(yōu)化應遵循PSR規(guī)範、合理使用緩存、避免循環(huán)查詢、定期審查代碼,並藉助X

PHP調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 PHP調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 Jul 25, 2025 pm 08:45 PM

用戶語音輸入通過前端JavaScript的MediaRecorderAPI捕獲並發(fā)送至PHP後端;2.PHP將音頻保存為臨時文件後調(diào)用STTAPI(如Google或百度語音識別)轉(zhuǎn)換為文本;3.PHP將文本發(fā)送至AI服務(如OpenAIGPT)獲取智能回復;4.PHP再調(diào)用TTSAPI(如百度或Google語音合成)將回復轉(zhuǎn)為語音文件;5.PHP將語音文件流式返回前端播放,完成交互。整個流程由PHP主導數(shù)據(jù)流轉(zhuǎn)與錯誤處理,確保各環(huán)節(jié)無縫銜接。

PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機制 PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機制 Jul 25, 2025 pm 08:30 PM

PHP通過數(shù)據(jù)庫事務與FORUPDATE行鎖確保庫存扣減原子性,防止高並發(fā)超賣;2.多平臺庫存一致性需依賴中心化管理與事件驅(qū)動同步,結(jié)合API/Webhook通知及消息隊列保障數(shù)據(jù)可靠傳遞;3.報警機制應分場景設置低庫存、零/負庫存、滯銷、補貨週期和異常波動策略,並按緊急程度選擇釘釘、短信或郵件通知責任人,且報警信息需完整明確,以實現(xiàn)業(yè)務適配與快速響應。

如何用PHP結(jié)合AI做圖像生成 PHP自動生成藝術(shù)作品 如何用PHP結(jié)合AI做圖像生成 PHP自動生成藝術(shù)作品 Jul 25, 2025 pm 07:21 PM

PHP不直接進行AI圖像處理,而是通過API集成,因為它擅長Web開發(fā)而非計算密集型任務,API集成能實現(xiàn)專業(yè)分工、降低成本、提升效率;2.整合關鍵技術(shù)包括使用Guzzle或cURL發(fā)送HTTP請求、JSON數(shù)據(jù)編解碼、API密鑰安全認證、異步隊列處理耗時任務、健壯錯誤處理與重試機制、圖像存儲與展示;3.常見挑戰(zhàn)有API成本失控、生成結(jié)果不可控、用戶體驗差、安全風險和數(shù)據(jù)管理難,應對策略分別為設置用戶配額與緩存、提供prompt指導與多圖選擇、異步通知與進度提示、密鑰環(huán)境變量存儲與內(nèi)容審核、雲(yún)存

PHP集成AI語音識別與轉(zhuǎn)寫 PHP會議記錄自動生成方案 PHP集成AI語音識別與轉(zhuǎn)寫 PHP會議記錄自動生成方案 Jul 25, 2025 pm 07:06 PM

選擇合適AI語音識別服務並集成PHPSDK;2.用PHP調(diào)用ffmpeg將錄音轉(zhuǎn)為API要求格式(如wav);3.上傳文件至雲(yún)存儲並調(diào)用API異步識別;4.解析JSON結(jié)果並用NLP技術(shù)整理文本;5.生成Word或Markdown文檔完成會議記錄自動化,全過程需確保數(shù)據(jù)加密、訪問控制與合規(guī)性以保障隱私安全。

如何用PHP搭建在線客服機器人 PHP智能客服實現(xiàn)技術(shù) 如何用PHP搭建在線客服機器人 PHP智能客服實現(xiàn)技術(shù) Jul 25, 2025 pm 06:57 PM

PHP在智能客服中扮演連接器和大腦中樞角色,負責串聯(lián)前端輸入、數(shù)據(jù)庫存儲與外部AI服務;2.實現(xiàn)時需構(gòu)建多層架構(gòu):前端接收用戶消息,PHP後端預處理並路由請求,先匹配本地知識庫,未命中則調(diào)用外部AI服務如OpenAI或Dialogflow獲取智能回復;3.會話管理由PHP寫入MySQL等數(shù)據(jù)庫,保障上下文連續(xù)性;4.集成AI服務需用Guzzle發(fā)送HTTP請求,安全存儲APIKey,做好錯誤處理與響應解析;5.數(shù)據(jù)庫設計需包含會話、消息、知識庫、用戶表,合理建索引、保障安全與性能,支撐機器人記憶

如何用PHP調(diào)用AI寫作輔助工具 PHP提升內(nèi)容產(chǎn)出效率 如何用PHP調(diào)用AI寫作輔助工具 PHP提升內(nèi)容產(chǎn)出效率 Jul 25, 2025 pm 08:18 PM

選擇AI寫作API需考察穩(wěn)定性、價格、功能匹配度及是否有免費試用;2.PHP用Guzzle發(fā)送POST請求並用json_decode處理返回的JSON數(shù)據(jù),注意捕獲異常和錯誤碼;3.將AI內(nèi)容融入項目需建立審核機制並支持個性化定制;4.優(yōu)化性能可採用緩存、異步隊列和限流技術(shù),避免高並發(fā)下瓶頸。

See all articles