從零實戰SLAM-第八課(非特征點的視覺里程計)

?在七月算法報的班,老師講的蠻好。好記性不如爛筆頭,關鍵內容還是記錄一下吧,課程入口,感興趣的同學可以學習一下。

-------------------------------------------------------------------------------------------------------------------------------

特征點法流程:

1.在圖像中提取特征點并計算特征描述????非常耗時約10ms ORB

2.在不同圖像中尋找特征匹配????????? ??? ??? 非常耗時𝑂(𝑛∧2) 暴力匹配

3.利用匹配點信息計算相機位姿?????? ??? ??? 比較快速<1ms

是否可以不使用特征匹配計算VO?

光流法:最小化重投影誤差 Reprojection error

直接法:最小化光度誤差 Photometric error

光流: 追蹤源圖像某個點在其他圖像中的運動。本質→估計像素在不同時刻圖像中的運動。

光流法又分為兩大類,每一類的計算方法也不同。

? 稀疏光流:計算部分像素運動 ---- Lucas Kanade

? 稠密光流:計算全部像素運動 ---- Horn Schunck

光流法的前提假說:灰度不變。

光流法的數學基礎

光流法中的L-K方法

LK光流的結果依賴于圖像梯度

? 但梯度不夠平滑,可能劇烈變化

? 局部的梯度不能用于預測長期圖像走向

解決方式:多層光流

光流法的總結:

? 可以看成最小化像素誤差的非線性優化

? 每次使用了 Taylor 一階近似,在離優化點較遠時效果不佳,往往需要迭代多次

? 運動較大時要使用金字塔

? 可以用于跟蹤圖像中的稀疏關鍵點的運動軌跡

? 得到配對點后,后續計算與特征法VO中相同

光流法的缺點:

? 沒有用到相機本身的幾何結構

? 沒有考慮到相機的旋轉和圖像的縮放

? 對于邊界上的點,光流不好追蹤

直接法:

通過相機模型對相機位姿變化進行估計

建立目標函數

計算過程

左擾動分解中三項的物理意義

根據使用的圖像信息不同,可分為:

? 稀疏直接法:只處理稀疏角點或關鍵點

? 稠密直接法:使用所有像素

? 半稠密直接法:使用部分梯度明顯的像素

直接法的直觀解釋:

? 像素灰度引導著優化的方向

? 要使優化成立,必須保證從初始估計到最優估計中間的梯度一直下降

? 這很容易受到圖像非凸性的影響

直接法的優勢與劣勢

優勢:

? 省略特征提取的時間

? 只需有像素梯度而不必是角點(對白墻等地方有較好效果)

? 可稠密或半稠密

劣勢:

? 灰度不變難以滿足(易受曝光和模糊影響)

? 單像素區分性差

? 圖像非凸性

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43641.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43641.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43641.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

centos下使用jemalloc解決Mysql內存泄漏問題

參考&#xff1a; MySQL bug&#xff1a;https://bugs.mysql.com/bug.php?id83047&tdsourcetags_pcqq_aiomsg https://github.com/jemalloc/jemalloc/blob/dev/INSTALL.md &#xff08;1&#xff09;ptmalloc 是glibc的內存分配管理 &#xff08;2&#xff09;tcmalloc…

【設計模式】模板方法模式(Template Method Pattern)

23種設計模式之模板方法模式&#xff08;Template Method Pattern&#xff09; 基本概念 模板方法模式是一種行為型設計模式&#xff0c;它定義了一個算法骨架&#xff0c;將某些算法步驟的實現延遲到子類中。 這樣可以使得算法的框架不被修改&#xff0c;但是具體的實現可以…

Django

一 django 安裝 1. **安裝 Django&#xff1a;** 首先&#xff0c;確保您已經安裝了 Python 和 pip&#xff08;Python 包管理器&#xff09;。然后&#xff0c;在命令行中運行以下命令來安裝 Django&#xff1a; bashpip install Django 2. **創建項目&#xff1a;** …

Electron-builder打包和自動更新

前言 文本主要講述如何為 electron 打包出來軟件配置安裝引導和結合 github 的 release 配置自動更新。 electron-builder 是將 Electron 工程打包成相應平臺的軟件的工具&#xff0c;我的工程是使用 electron-vite 構建的&#xff0c;其默認集成了 electron-builder &#x…

中大型無人機遠程VHF語音電臺系統方案

方案背景 中大型無人機在執行飛行任務時&#xff0c;特別是在管制空域飛行時地面航管人員需要通過語音與無人機通信。按《無人駕駛航空器飛行管理暫行條例》規定&#xff0c;中大型無人機應當進行適航管理。物流無人機和載人eVTOL都將進行適航管理&#xff0c;所以無人機也要有…

Unity 工具 之 Azure 微軟SSML語音合成TTS流式獲取音頻數據的簡單整理

Unity 工具 之 Azure 微軟SSML語音合成TTS流式獲取音頻數據的簡單整理 目錄 Unity 工具 之 Azure 微軟SSML語音合成TTS流式獲取音頻數據的簡單整理 一、簡單介紹 二、實現原理 三、實現步驟 四、關鍵代碼 一、簡單介紹 Unity 工具類&#xff0c;自己整理的一些游戲開發可…

Qt creator之對齊參考線——新增可視化縮進功能

Qt creator隨著官方越來越重視&#xff0c;更新頻率也在不斷加快&#xff0c;今天無意中發現qt creator新版有了對齊參考線&#xff0c;也稱可視化縮進Visualize Indent&#xff0c;默認為啟用狀態。 下圖為舊版Qt Creator顯示設置欄&#xff1a; 下圖為新版本Qt Creator顯示設…

Day14 01-Shell腳本編程詳解

文章目錄 第一章 Shell編程【重點】1.1. Shell的概念介紹1.1.1. 命令解釋器4.1.1.2. Shell腳本 1.2. Shell編程規范1.2.1. 腳本文件的結構1.2.2. 腳本文件的執行 1.3. Shell的變量1.3.1. 變量的用法1.3.2. 變量的分類1.3.3. 局部變量1.3.4. 環境變量1.3.5. 位置參數變量1.3.6. …

Python入門【內存管理機制、Python緩存機制、垃圾回收機制、分代回收機制】(三十二)

&#x1f44f;作者簡介&#xff1a;大家好&#xff0c;我是愛敲代碼的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列專欄&#xff1a;python入門到實戰、Python爬蟲開發、Python辦公自動化、Python數據分析、Python前后端開發 &#x1f4e7;如果文章知識點有錯誤…

LeetCode150道面試經典題-- 存在重復元素 II(簡單)

1.題目 給你一個整數數組 nums 和一個整數 k &#xff0c;判斷數組中是否存在兩個 不同的索引 i 和 j &#xff0c;滿足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 2.示例 示例 1&#xff1a; 輸…

CSS中的字體屬性有哪些值,并分別描述它們的作用。

聚沙成塔每天進步一點點 ? 專欄簡介? font-style? font-weight? font-size? font-family? font-variant? line-height? letter-spacing? word-spacing? font? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專…

JS中對象數組深拷貝方法

structuredClone() JavaScript 中提供了一個原生 API 來執行對象的深拷貝&#xff1a;structuredClone。它可以通過結構化克隆算法創建一個給定值的深拷貝&#xff0c;并且還可以傳輸原始值的可轉移對象。 當對象中存在循環引用時&#xff0c;仍然可以通過 structuredClone()…

過濾字符,繞過

構造不包含字母和數字的webshell <?phpecho "A"^""; ?>運行結果為! 代碼中對字符"A"和字符”"進行了異或操作。在PHP中&#xff0c;兩個變量進行異或時&#xff0c;先會將字符串轉換成ASCII值&#xff0c;再將ASCII值轉換成二進制…

容器docker安裝及應用

目錄 二進制安裝docker應用啟動docker拉取鏡像查看當前主機鏡像查看鏡像詳細信息運行容器 二進制安裝docker 環境 centos 7 [rootlocalhost ~]# mkdir /data [rootlocalhost ~]# wget -P /data/ https://download.docker.com/linux/static/stable/x86_64/docker-18.03.1-ce.t…

【聲波】聲波在硼酸、硫酸鎂 (MgSO4) 和純水中的吸收研究(Matlab代碼實現)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

MAC 命令行啟動tomcat的詳細介紹

MAC 命令行啟動tomcat MAC 命令行啟動tomcat的詳細介紹 一、修改授權 進入tomcat的bin目錄,修改授權 1 2 3 ? bin pwd /Users/yp/Documents/workspace/apache-tomcat-7.0.68/bin ? bin sudo chmod 755 *.sh sudo為系統超級管理員權限.chmod 改變一個或多個文件的存取模…

2.js中attr()用來修改或者添加屬性或者屬性值

attr()可以用來修改或者添加屬性或者屬性值 例&#xff1a;<input type"button" class"btn btn-info" id"subbtn" style"font-size:12px" value"我也說一句"/>1.如果想獲取input中value的值 $(#subbtn).attr(value);…

ASP.NET Core中路由規則匹配

RESTful約束&#xff0c;如果在一個控制器里面有多個Get、Post...的操作 1、在一個控制器里面可以定義多個API方法 2、通過路由規則來區分 /// <summary> /// 獲取用戶信息 /// </summary> /// <param name"user"></param> /// <returns…

c++ | 字節轉換 | 字長 | 機器位數

為什么有的時候腦子轉不過來&#xff1f;&#xff1f; 為什么要對字節、機器長啊、位啊都要門清 位數 一般的就是指計算機的位數&#xff0c;比如64位/32位&#xff0c;更簡單的理解&#xff0c;計算機就是在不停的做二進制的計算&#xff0c;比如32位計算機&#xff0c;在長…

[保研/考研機試] KY26 10進制 VS 2進制 清華大學復試上機題 C++實現

題目鏈接&#xff1a; 10進制 VS 2進制http://www.nowcoder.com/share/jump/437195121691738172415 描述 對于一個十進制數A&#xff0c;將A轉換為二進制數&#xff0c;然后按位逆序排列&#xff0c;再轉換為十進制數B&#xff0c;我們稱B為A的二進制逆序數。 例如對于十進制…