LSD-SLAM深入學習(2)-演算法解析
前言
在LSD-SLAM深入學習(1)中我們已經完成基本的安裝與測試,在此我們繼續解析演算法與程式碼,由於lsd-slam本身利用了一部分李群與李代數的知識,需要一定的數學功底。
預備知識-李群與李代數
下面需要形成一個最基礎的概念,就是李群與對應的李代數的對映關係。不然很難理解lsd-slam中的一部分內容。
演算法的整體框架
如下所示,整個演算法分為三部分。
Tracking演算法
寫到這裡,有三個問題我們忽略了,下面列舉如下
Mapping演算法
主要包括三部分的工作,1是當前幀如何refine關鍵幀的深度資訊,2是關鍵幀之間的深度資訊是如何傳遞的,3是每次迭代過程中都需要的規範化以及異常點的處理。
Constraint Acquisition
此處主要解決的是Key之間的變換,是在sim(3)上解決的。
Optimization
G2o演算法。自行補充。
相關推薦
LSD-SLAM深入學習(2)-演算法解析
前言 在LSD-SLAM深入學習(1)中我們已經完成基本的安裝與測試,在此我們繼續解析演算法與程式碼,由於lsd-slam本身利用了一部分李群與李代數的知識,需要一定的數學功底。 預備知識-李群與李代數 下面需要形成一個最基礎的概念,就是李群與對應的李代數的對映關係。不然很
LSD-SLAM深入學習(3)-程式碼解析
前言 在LSD-SLAM深入學習(2)中我們已經對演算法進行分析,此處假設讀者對於ros的基本操作都已經很熟悉,而且已經編寫了一定量的的程式碼,我們直接上乾貨。此處分析的程式如下 main_live_odometry.cpp,這個可以實時讀取視訊的主函式 主函式 XIni
LSD-SLAM深入學習(1)-基本介紹與ros下的安裝
前言 借鑑來自RGB-D資料處理的兩種方法-基於特徵與基於整體的,同樣可以考慮整個圖片的匹配,而不是隻考慮特徵點的…… 主要介紹 主要參考一下幾篇文章,都是來自tum的。以後演算法與程式碼介紹都是基於這幾篇文章的,建議仔細研究,必定受益匪淺。
LSD-SLAM深入學習(4)-非ROS改造
前言 沒錯,距離上一次部落格的釋出已經倆月了,今天是聖誕節,聖誕快樂。 在前幾篇中已經完成了ROS下面的一系列操作。如有任何問題,feel free to contact me at [email protected] 基本工作 主要的改造工作如
dubbo的深入學習(2)
繼續上一篇寫了dubbo深入學習(1),主要介紹了dubbo是什麼、這一篇主要是寫dubbo能幹什麼? 2.dubbo能幹什麼? 當在小規模的服務的時候,應用通過RMI(遠端方法呼叫)和Hessi
ASP.NET Core on K8S深入學習(2)部署過程解析與Dashboard
上一篇《K8S叢集部署》中搭建好了一個最小化的K8S叢集,這一篇我們來部署一個ASP.NET Core WebAPI專案來介紹一下整個部署過程的執行機制,然後部署一下Dashboard,完成視覺化管理。本篇已加入了《.NET Core on K8S學習實踐系列文章索引》,更多內容請到索引中檢視。 一、部署示
腦皮層學習演算法 ---nupic的深入學習(一)
1.nupic簡介 1.1 背景 說到AI,我們首先就會想到深度學習,tensorflow等。目前以深層的神經網路佔據了AI的半壁江山。從本質上來說,深度學習所表述的神經網路,其實是源自於一個“類腦”的想法—通過模仿人類大腦的神經元的相互連線,結合權重,反向
機器學習(2):DBSCAN聚類演算法
一、DBSCAN演算法基本概念 1.全稱:Density-Based Spatial Clustering of Applications with Noise 基於密度帶有噪聲聚類 2.核心物件:若某個點的密度達到演算法設定的閾值則其為核心點。 (即某點的r 鄰域內,點的數量不小於設定閾值 m
python_機器學習(2)聚類演算法
K-means聚類演算法 k-means演算法以k為引數,把n個物件分成k個簇,使簇內具有較高的相似度,而簇間的相似度較低。 其處理過程如下: 1.隨機選擇k個點作為初始的聚類中心; 2.對於剩下的點,根據其與聚類中心的距離,將其歸入最近的簇 3.對每個簇,計算所有點的均
Java學習(2):將鍵盤錄入的內容保存到指定文件中
stream exce 創建 txt 關閉 如果 下午 line 再次 要求:保存鍵盤錄入的內容,當鍵盤輸入end時,錄入結束。 1 /** 2 * 保存鍵盤輸入,並以end結束 3 * 4 * @author xcx 5 * @time 2017年6
javascript學習(2)循環
src .cn tin asc for循環 循環 分享 ava bre 一、for循環 1、for(i=1;i<6;i++)循環 2、for(x in arrayA)循環 二、while循環 1、while循環 2、do。。while循環 三、continue
嵌入式開發學習(2)<S5PV210啟動過程詳解>
nan ios eight img 啟動方式 margin 需要 外部 啟動 基本概念: 內存: SRAM 靜態內存 特點:容量小、價格高,優點:不需要軟件初始化,上電就能用。 DRAM 動態內存 特點:容量大、價格低,缺點:上電不能用,需要軟件初始化。
JS函數學習(2)
有一個 關鍵字 引入 apply() call() get error 方法 version JavaScript的函數不但是“頭等公民”,而且可以像變量一樣使用,具有非常強大的抽象能力 函數體內部的語句在執行時,一旦執行到return時,函數就執行完畢,並將結果返回。
IDEA 學習筆記之 Java項目開發深入學習(1)
java項目 bsp 重構 str 代碼提示 log pan ora tro Java項目開發深入學習(1): 定義編譯輸出路徑: 繼承以上工程配置 重新定義新的項目編譯路徑 添加source目錄:點擊添加,再點擊移除: 編譯項目: 常用快捷鍵總結: Ctr
vue2.0基礎學習(2)
center itl put keyword example 周期 med 移除監聽器 博客 (三)Vue2.0-選項 選項就是在Vue構造器裏的配置功能的前綴 propsData 只用於 new 創建的實例中。 var Comp = Vue.extend({ pr
shell腳本學習(2)比較兩個數字大小
$1 num centos7 錯誤 you equal shel 腳本 語句 註意:shell中對比字符串只能使用==、<、>、!=、-z、-n。對比字符串時,末尾一定要加上x(或者a、b等)一個字符,因為if [ $1x == "ab"x ]時如果沒有了x
docker 學習(2)
ins -s line 分配 table date world color not found docker容器中安裝vim ubuntu 中默認未裝vim,docker run ubuntu vim 出現: container_linux.go:247: starting
機器學習基石筆記6——為什麽機器可以學習(2)
bsp jin cas htm tor 分享 ase psi ant 網友杜少的筆記 Lecture 6: Theory of Generalization 6.1 Restriction of Break Point
RCP學習(2)
版本 iso gef sys 可能 final eat shel 中修改 1)使用第三方Jar 1.向構建路徑中添加jar 創建一個新文件夾,命名為 lib,或者使用已經存在的目錄; 選擇 import->file syste
java入門學習(2)—基本數據類型
堆內存 類指針 erl 相互 lean 就是 沒有初始化 true ++ 1、變量:定義變量:【數據類型】 變量名 = 賦值(這樣定義的變量一般屬於局部變量,放置在棧內存中); 2、標識符:可以有字母(可以使任意文字),數字,下劃線,$等組成;但是不能以數字開頭,不能是保留