SLAM中的塊矩陣與schur補

文章目錄

    • SLAM中的塊矩陣與schur補
      • Schur補的另一種解釋
      • 對角塊矩陣的逆為各個塊的逆的組合

SLAM中的塊矩陣與schur補

Schur補的另一種解釋

Schur從概率角度來解釋是比較常見的一種推導,可以參考博客https://blog.csdn.net/weixin_41469272/article/details/121994485,此外也可以通過消元與回代的基本原理得到相同的結論。

首先設我們需要求解以下問題:
[ A B C D ] [ x 1 x 2 ] = [ v w ] \begin{bmatrix}A&B\\C&D\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\end{bmatrix}=\begin{bmatrix}v\\w\end{bmatrix} [AC?BD?][x1?x2??]=[vw?]
通常對于SLAM問題,信息矩陣中的{ B = C T B=C^T B=CT}, A , D A,D AD為可逆(對稱)方陣

可以得到:
A x 1 + B x 2 = v C x 1 + D x 2 = w Ax_{1}+Bx_{2}=v\\Cx_{1}+Dx_{2}=w Ax1?+Bx2?=vCx1?+Dx2?=w
設我們需要marg掉 x 2 x_2 x2?,或者先求解 x 1 x_1 x1? H Δ x = b H\Delta x=b HΔx=b問題),

我們對第一行左右兩側均乘以 B D ? 1 BD^{-1} BD?1,繼而可以得到:
B D ? 1 C x 1 + B D ? 1 D x 2 = B D ? 1 w ? B x 2 = B D ? 1 w ? B D ? 1 C x 1 BD^{-1}Cx_{1}+BD^{-1}Dx_{2}=BD^{-1}w \Rightarrow Bx_{2}=BD^{-1}w-BD^{-1}Cx_{1} BD?1Cx1?+BD?1Dx2?=BD?1w?Bx2?=BD?1w?BD?1Cx1?

帶入 C x 1 + D x 2 = w Cx_{1}+Dx_{2}=w Cx1?+Dx2?=w得:
( A ? B D ? 1 C ) x 1 = v ? B D ? 1 w (A-BD^{-1}C)x_{1}=v-BD^{-1}w (A?BD?1C)x1?=v?BD?1w

從而可以看出,我們通過回代同樣得到了Schur補的情況。從而,我們可以知道無論是邊緣化變量,還是更新參數的 H Δ x = b H\Delta x=b HΔx=b的分塊求解問題,歸根到底都可以理解為變量的消元問題。

對角塊矩陣的逆為各個塊的逆的組合

對于給定的 ( 9 × 9 9 \times 9 9×9) 矩陣:

B = [ A 1 0 0 0 A 2 0 0 0 A 3 ] B = \begin{bmatrix} A_{1} & 0 & 0 \\ 0 & A_{2} & 0 \\ 0 & 0 & A_{3} \end{bmatrix} B= ?A1?00?0A2?0?00A3?? ?

其中 A 1 A_1 A1?, A 2 A_2 A2?, 和 A 3 A_3 A3? 均為可逆的 3 × 3 3 \times 3 3×3 矩陣,可以通過求解塊對角矩陣的逆來找到 B B B的逆。

1. 塊對角矩陣的逆

對于一個塊對角矩陣:

B = [ A 1 0 0 0 A 2 0 0 0 A 3 ] B = \begin{bmatrix} A_{1} & 0 & 0 \\ 0 & A_{2} & 0 \\ 0 & 0 & A_{3} \end{bmatrix} B= ?A1?00?0A2?0?00A3?? ?

其逆矩陣也是一個塊對角矩陣,其形式為:

B ? 1 = [ A 1 ? 1 0 0 0 A 2 ? 1 0 0 0 A 3 ? 1 ] B^{-1} = \begin{bmatrix} A_{1}^{-1} & 0 & 0 \\ 0 & A_{2}^{-1} & 0 \\ 0 & 0 & A_{3}^{-1} \end{bmatrix} B?1= ?A1?1?00?0A2?1?0?00A3?1?? ?

2. 證明

X X X B B B 的逆矩陣,即 B X = I BX = I BX=I,其中 I I I 9 × 9 9 \times 9 9×9 的單位矩陣。

考慮以下矩陣乘法:

[ A 1 0 0 0 A 2 0 0 0 A 3 ] [ A 1 ? 1 0 0 0 A 2 ? 1 0 0 0 A 3 ? 1 ] = [ A 1 A 1 ? 1 0 0 0 A 2 A 2 ? 1 0 0 0 A 3 A 3 ? 1 ] = [ I 3 0 0 0 I 3 0 0 0 I 3 ] \begin{bmatrix} A_{1} & 0 & 0 \\ 0 & A_{2} & 0 \\ 0 & 0 & A_{3} \end{bmatrix} \begin{bmatrix} A_{1}^{-1} & 0 & 0 \\ 0 & A_{2}^{-1} & 0 \\ 0 & 0 & A_{3}^{-1} \end{bmatrix} = \begin{bmatrix} A_{1}A_{1}^{-1} & 0 & 0 \\ 0 & A_{2}A_{2}^{-1} & 0 \\ 0 & 0 & A_{3}A_{3}^{-1} \end{bmatrix} = \begin{bmatrix} I_{3} & 0 & 0 \\ 0 & I_{3} & 0 \\ 0 & 0 & I_{3} \end{bmatrix} ?A1?00?0A2?0?00A3?? ? ?A1?1?00?0A2?1?0?00A3?1?? ?= ?A1?A1?1?00?0A2?A2?1?0?00A3?A3?1?? ?= ?I3?00?0I3?0?00I3?? ?

這里的 I 3 I_{3} I3? 3 × 3 3 \times 3 3×3 的單位矩陣。

可以看到,右邊的矩陣確實是 9 × 9 9 \times 9 9×9 的單位矩陣 I I I。因此,

[ A 1 ? 1 0 0 0 A 2 ? 1 0 0 0 A 3 ? 1 ] \begin{bmatrix} A_{1}^{-1} & 0 & 0 \\ 0 & A_{2}^{-1} & 0 \\ 0 & 0 & A_{3}^{-1} \end{bmatrix} ?A1?1?00?0A2?1?0?00A3?1?? ?

是 B$ 的逆矩陣。

因而型如以下的SLAM求解問題,可以使用schur補+對角塊矩陣逆的特性,高效求解
[ B E E T C ] [ Δ x c Δ x p ] = [ 2 20 ] \left[\begin{matrix}B&E\\E^{T}&C\end{matrix}\right]\left[\begin{matrix}\Delta x_{c}\\\Delta x_{p}\end{matrix}\right]=\left[\begin{matrix}2\\20\end{matrix}\right] [BET?EC?][Δxc?Δxp??]=[220?]
其中, Δ x c \Delta x_{c} Δxc?對應傳感器位姿變量的更新量; Δ x c \Delta x_{c} Δxc?特征點位置對應的更新量。SLAM問題中的信息矩陣的結構對應如下圖所示,其中關于特征點的部分(該矩陣中的C塊矩陣)為對角塊矩陣。

Schur補得到:
[ B ? E C ? 1 E T 0 E T C ] [ Δ x c Δ x p ] = [ v ? E C ? 1 w w ] . \begin{bmatrix}B-EC^{-1}E^T&\mathbf{0}\\E^T&C\end{bmatrix}\left[\begin{array}{c}\Delta\boldsymbol{x}_c\\\Delta\boldsymbol{x}_p\end{array}\right]=\left[\begin{array}{c}\boldsymbol{v}-\boldsymbol{E}C^{-1}\boldsymbol{w}\\\\\boldsymbol{w}\end{array}\right]. [B?EC?1ETET?0C?][Δxc?Δxp??]= ?v?EC?1ww? ?.

從而可以將求逆問題簡化為對角塊矩陣求逆的問題,先得到 Δ x c \Delta\boldsymbol{x}_c Δxc?
[ B ? C ? 1 E T ] Δ x c = v ? E C ? 1 w . [B-C^{-1}E^T]\Delta\boldsymbol{x}_c=\boldsymbol{v}-EC^{-1}\boldsymbol{w}. [B?C?1ET]Δxc?=v?EC?1w.

而后,再帶入 B Δ x c + E Δ x p = v B\Delta\boldsymbol{x}_c+E\Delta\boldsymbol{x}_p=\boldsymbol{v} BΔxc?+EΔxp?=v計算得到 Δ x p \Delta\boldsymbol{x}_p Δxp?

此外,也可以利用SAM的方法參考鏈接,經過因式分解,得到上三角陣,而后使用回代的方法進行求解。

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

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

相關文章

若依搭建 帝可得 售貨機 筆記

一、搭建項目 1.后端gitee鏈接: 啟動項目時記得修改mysql和redis的相關信息;創建項目相關數據庫,并導入初始化的SQL腳本 dkd-parent: 帝可得后臺管理系統 (gitee.com) 2.前端gitee鏈接: 啟動項目時記得安裝依賴:np…

Github Action 自動部署更新靜態網頁服務

本文首發于 Anyeの小站,點擊跳轉 獲得更優質的閱讀體驗 前言 貼一段胡話 在用過 應用:靜態網頁服務 之后,事實證明: 總而言之,自動化是一個很令人著迷的東西,擺脫重復繁瑣的工作,解放了雙手的…

JCR一區 | Matlab實現GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征輸入數據分類預測/故障診斷

JJCR一區 | Matlab實現GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征輸入數據分類預測/故障診斷 目錄 JJCR一區 | Matlab實現GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征輸入數據分類預測/故障診斷分類效果格拉姆矩陣圖GAF-PCNN-MATTGASF-CNNGADF-CNN 基本介紹程序設計參考資料 分…

【45 Pandas+Pyecharts | 去哪兒海南旅游攻略數據分析可視化】

文章目錄 🏳??🌈 1. 導入模塊🏳??🌈 2. Pandas數據處理2.1 讀取數據2.2 查看數據信息2.3 日期處理,提取年份、月份2.4 經費處理2.5 天數處理 🏳??🌈 3. Pyecharts數據可視化3.1 出發日期_…

華南師范大學“大學生校外實踐教學基地”授牌儀式暨見習參觀活動圓滿結束

為促進校企合作的深入發展,培育出具有實際應用技能的人才,7月9日,華南師范大學數學科學院與廣東泰迪智能科技股份有限公司聯合開展“大學生校外實踐教學基地”授牌儀式暨見習參觀活動。華南師范大學數學科學院數據科學系主任陳艷男、副主任陳…

深入理解model.eval()與torch.no_grad()

model.eval() 使用model.eval()切換到測試模式,不會更新模型的w(權重),b(偏置)參數通知dropout層和batchnorm層在train和val中間進行切換: 在train模式,dropout層會按照設定的參數p…

Idea 2023 使用GitLab提交代碼提示輸入Token

項目場景: 今天電腦換硬盤了,安裝了 IDEA2023 款的社區版開發工具,下載代碼后,提交并推送代碼到遠程服務器的時候,提示輸入Token,并不是用戶名和密碼。 問題描述 推送代碼到遠程GitLab本地倉庫的時候&…

單鏈表--續(C語言詳細版)

2.6 在指定位置之前插入數據 // 在指定位置之前插入數據 void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x); 分為兩種情況:1. 插入的數據在鏈表中間;2. 插入的數據在鏈表的前面。 // 在指定位置之前插入數據 void SLTInsert(SLTNode** …

AI繪畫何以突飛猛進? 從歷史到技術突破, 一文讀懂火爆的AI繪畫發展史

前言 自從前段時間偶然間被當下AI繪畫的水平震住之后(超越一切的AI作畫神器,和它創作的234個盔甲美女未來戰士) ,作者深感當今AI繪畫的飛速進展或許已遠超所有人的預期。 而這里的前因后果,包括AI繪畫的歷史&#xff…

十九.升職加薪系列-JVM優化-解決JVM性能瓶頸的JIT即時編譯器

前言 在很多年以前,做C或者C的程序員經常說Java語言的運行速度不如C或C,Java運行速度慢主要是因為它是解釋執行的,而C或C是編譯執行的,解釋執行需要通過JVM虛擬機將字節碼實時翻譯成機器碼(邊翻譯邊執行)&…

Rust 版本升級:rustup update stable 報錯

Rust 版本升級 rustup update stable 報錯 一、報錯內容 error: could not download file from ‘https://static.rust-lang.org/dist/channel-rust-stable.toml.sha256’ to ‘/Users/xxx/.rustup/tmp/rv6vdfu3eupwo64m_file’: failed to make network request: error sendi…

【實戰場景】@Transactional中使用for update的注意點

【實戰場景】Transactional中使用for update的注意點 開篇詞:干貨篇:知識回顧注意點1.鎖的范圍和粒度:2.事務的隔離級別:3.死鎖:4.性能影響:5.事務的邊界:6.異常處理:7. 數據庫和存儲…

【漏洞復現】網神 SecGate 3600 防火墻 sys_export_conf_local_save 任意文件讀取

免責聲明: 本文內容旨在提供有關特定漏洞或安全漏洞的信息,以幫助用戶更好地了解可能存在的風險。公布此類信息的目的在于促進網絡安全意識和技術進步,并非出于任何惡意目的。閱讀者應該明白,在利用本文提到的漏洞信息或進行相關測…

javaweb學習day5--《HTML篇》Springboot的模塊創建、HTML的相關知識點詳解

一、前言 從今天開始,就要啟動后端的學習了,Springboot會貫穿到底,一定要跟著小編嚴謹的去搭建Springboot環境,依賴添加的過程可能需要2分鐘左右,讀者們要耐心等待一下,搭建好Springboot之后才算正式的開始…

算力革命:彈性租賃,解鎖無限可能

華為創始人任正非曾在一場程序設計競賽中說道,我們即將進入第四次工業革命,基礎就是大算力。事實上,隨著5G、人工智能等信息技術的迅猛發展,算力需求持續增長,但高昂的成本和快速的技術迭代讓許多中小企業和個人開發者…

Covalent Network(CXT)通過社區投票將代幣遷移并更名為 CXT,以推動人工智能更深層次的創新

專注于人工智能和 Web3 的模塊化數據基礎設施 Covalent Network(CXT)宣布,其治理提案已通過社區投票并順利實施,即將原生代幣 CQT 遷移為新的 CXT 代幣,并部署至新的合約。這一關鍵性轉變標志著 Covalent Network&…

git刪除提交記錄,并使用idea將代碼重新提交到gitee倉庫

git 新建分支將之前的記錄刪除重新提交 轉載鏈接 https://blog.csdn.net/qq_37142541/article/details/139860956

03-NoSQL之Redis配置與優化

一、redis與memcache總體對比 1.性能 Redis:只使用單核,平均每一個核上Redis在存儲小數據時比Memcached性能更高。 Memcached:可以使用多核,而在100k以上的數據中,Memcached性能要高于Redis。 2.內存使用效率 MemC…

springboot文達辦公物資管理系統-計算機畢業設計源碼51191

摘要 本文介紹了一種名為"文達辦公物資管理系統"的基于JAVA語言、基于Springboot框架和MYSQL數據庫開發的管理系統。該系統主要分為管理員和員工用戶兩個角色,以滿足不同用戶的需求。 對于管理員用戶,系統提供了儀器設備管理、設備借用管理、設…

【大數據技術】換新電腦了,如何快速遷移MySQL到新電腦上(含程序+數據),這樣既快速又高效,省去了“各種安裝+各種配置+各種遷移數據”帶來的麻煩和時間

【大數據技術】換新電腦了,如何快速遷移MySQL到新電腦上(含程序數據 背景步驟總結 背景 很久沒有寫博文了哦,最近我換了新的筆記本,于是需要在新筆記本電腦上搭建MySQL環境,因為我原電腦上是安裝的MySQL解壓版,故我想偷偷懶&…