高斯牛頓法求解三維變換矩陣的數學推導

目錄

  • 一、問題定義
  • 二、李代數基礎
  • 三、雅可比矩陣推導
  • 四、高斯牛頓迭代
    • 1. 整體雅可比矩陣
    • 2. 正規方程構建
    • 3. 參數更新
    • 4. 李代數更新
  • 五、理論優勢分析

一、問題定義

??給定兩組三維點云:源點云 P={pi∈R3}i=1NP = \{p_i \in \mathbb{R}^3\}_{i=1}^NP={pi?R3}i=1N?,目標點云 Q={qi∈R3}i=1NQ = \{q_i \in \mathbb{R}^3\}_{i=1}^NQ={qi?R3}i=1N?

求解變換矩陣 T=[Rt01]T = \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix}T=[R0?t1?] (其中 R∈SO(3)R \in SO(3)RSO(3), t∈R3t \in \mathbb{R}^3tR3),最小化殘差:
ri(θ)=qi?(Rpi+t)∈R3(1)r_i(\theta) = q_i - (Rp_i + t) \in \mathbb{R}^3 \tag{1}ri?(θ)=qi??(Rpi?+t)R3(1)
參數向量 θ=[ω?,t?]?∈R6\theta = [\omega^\top, t^\top]^\top \in \mathbb{R}^6θ=[ω?,t?]?R6ω\omegaω 為旋轉向量(李代數 so(3)\mathfrak{so}(3)so(3) 元素)。

目標函數:
min?θ12∑i=1N∥ri(θ)∥2(2)\min_\theta \frac{1}{2} \sum_{i=1}^N \| r_i(\theta) \|^2 \tag{2}θmin?21?i=1N?ri?(θ)2(2)

二、李代數基礎

旋轉矩陣 RRR 與李代數 ω\omegaω 通過指數映射關聯:
R=exp?([ω]×)(3)R = \exp([\omega]_\times) \tag{3}R=exp([ω]×?)(3)
其中 [?]×[\cdot]_\times[?]×? 為反對稱矩陣算子:
[ω]×=[0?ωzωyωz0?ωx?ωyωx0](4)[\omega]_\times = \begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{bmatrix} \tag{4}[ω]×?=?0ωz??ωy???ωz?0ωx??ωy??ωx?0??(4)

對擾動 δω\delta\omegaδω 的一階近似:
exp?([δω]×)≈I+[δω]×(5)\exp([\delta\omega]_\times) \approx I + [\delta\omega]_\times \tag{5}exp([δω]×?)I+[δω]×?(5)

三、雅可比矩陣推導

雅可比矩陣 Ji=?ri?θ∈R3×6J_i = \frac{\partial r_i}{\partial \theta} \in \mathbb{R}^{3\times6}Ji?=?θ?ri??R3×6 分為旋轉和平移部分:
Ji=[?ri?ω?ri?t]J_i = \begin{bmatrix} \frac{\partial r_i}{\partial \omega} & \frac{\partial r_i}{\partial t} \end{bmatrix} Ji?=[?ω?ri????t?ri???]

  1. 平移部分導數
    直接微分得:
    ?ri?t=?I3×3(6)\frac{\partial r_i}{\partial t} = -I_{3\times3} \tag{6}?t?ri??=?I3×3?(6)

  2. 旋轉部分導數
    考慮左擾動模型 δω\delta\omegaδω
    ?ri?ω=lim?δω→0qi?exp?([δω]×)Rpi?t?擾動后殘差?(qi?Rpi?t)?原殘差δω\frac{\partial r_i}{\partial \omega} = \lim_{\delta\omega \to 0} \frac{ \overbrace{ q_i - \exp([\delta\omega]_\times)Rp_i - t }^{\text{擾動后殘差}} - \overbrace{ (q_i - Rp_i - t) }^{\text{原殘差}} }{\delta\omega} ?ω?ri??=δω0lim?δωqi??exp([δω]×?)Rpi??t?擾動后殘差??(qi??Rpi??t)?原殘差??

代入一階近似:
exp?([δω]×)R≈(I+[δω]×)R\exp([\delta\omega]_\times)R \approx (I + [\delta\omega]_\times)R exp([δω]×?)R(I+[δω]×?)R

殘差變化量:
Δri≈?[δω]×Rpi\Delta r_i \approx -[\delta\omega]_\times Rp_i Δri??[δω]×?Rpi?

利用叉積性質 [a]×b=?[b]×a[a]_\times b = -[b]_\times a[a]×?b=?[b]×?a
[δω]×(Rpi)=?[Rpi]×δω[\delta\omega]_\times (Rp_i) = -[Rp_i]_\times \delta\omega [δω]×?(Rpi?)=?[Rpi?]×?δω

因此:
?ri?ω=[Rpi]×\frac{\partial r_i}{\partial \omega} = [R p_i]_\times ?ω?ri??=[Rpi?]×?

精確化處理(引入右雅可比矩陣)
∥ω∥\|\omega\|ω 較大時,需引入右雅可比矩陣 Jr(ω)J_r(\omega)Jr?(ω) 修正:
Jr(ω)=I3×3+1?cos?∥ω∥∥ω∥2[ω]×+∥ω∥?sin?∥ω∥∥ω∥3[ω]×2J_r(\omega) = I_{3\times3} + \frac{1-\cos\|\omega\|}{\|\omega\|^2}[\omega]_\times + \frac{\|\omega\|-\sin\|\omega\|}{\|\omega\|^3}[\omega]_\times^2 Jr?(ω)=I3×3?+ω21?cosω?[ω]×?+ω3ω?sinω?[ω]×2?
最終導數形式:
?ri?ω=R[pi]×Jr(ω)\frac{\partial r_i}{\partial \omega} = R [p_i]_\times J_r(\omega) ?ω?ri??=R[pi?]×?Jr?(ω)


四、高斯牛頓迭代

1. 整體雅可比矩陣

對于 NNN 個點,整體雅可比矩陣 J∈R3N×6J \in \mathbb{R}^{3N\times6}JR3N×6
J=[J1?J2??JN?]?J = \begin{bmatrix} J_1^\top & J_2^\top & \cdots & J_N^\top \end{bmatrix}^\top J=[J1???J2?????JN???]?
其中 Ji=[[Rpi]×?I3×3]J_i = \begin{bmatrix} [R p_i]_\times & -I_{3\times3} \end{bmatrix}Ji?=[[Rpi?]×???I3×3??](簡化形式)

2. 正規方程構建

近似 Hessian 矩陣:
H≈J?J∈R6×6H \approx J^\top J \in \mathbb{R}^{6\times6} HJ?JR6×6

梯度向量:
g=J?r∈R6g = J^\top r \in \mathbb{R}^6 g=J?rR6

解線性系統:
(J?J)Δθ=?J?r(J^\top J) \Delta\theta = -J^\top r (J?J)Δθ=?J?r

3. 參數更新

θk+1=θk+Δθ\theta_{k+1} = \theta_k + \Delta\theta θk+1?=θk?+Δθ
其中 Δθ=[δω?,δt?]?\Delta\theta = [\delta\omega^\top, \delta t^\top]^\topΔθ=[δω?,δt?]?

4. 李代數更新

對旋轉部分執行流形上的更新:
Rk+1=exp?([δω]×)RkR_{k+1} = \exp([\delta\omega]_\times) R_k Rk+1?=exp([δω]×?)Rk?
平移更新:
tk+1=tk+δtt_{k+1} = t_k + \delta t tk+1?=tk?+δt


五、理論優勢分析

  1. 約束處理:李代數 so(3)\mathfrak{so}(3)so(3) 將旋轉矩陣優化轉化為無約束問題
    dim?(so(3))=3?避免?SO(3)的9參數過參數化\dim(\mathfrak{so}(3)) = 3 \implies \text{避免 } SO(3) \text{ 的9參數過參數化} dim(so(3))=3?避免?SO(3)?9參數過參數化

  2. 導數一致性:右雅可比矩陣 Jr(ω)J_r(\omega)Jr?(ω)∥ω∥→0\|\omega\| \to 0ω0 時滿足:
    lim?∥ω∥→0Jr(ω)=I3×3\lim_{\|\omega\|\to 0} J_r(\omega) = I_{3\times3} ω0lim?Jr?(ω)=I3×3?
    保證小角度近似與大角度精確的統一

  3. 收斂性保障:局部滿足
    ∥r(θk+1)∥2<∥r(θk)∥2(當初始估計接近真值)\|r(\theta_{k+1})\|_2 < \|r(\theta_k)\|_2 \quad \text{(當初始估計接近真值)} r(θk+1?)2?<r(θk?)2?(當初始估計接近真值)


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

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

相關文章

JAVA 商城系統為什么受歡迎?ZKmall開源商城靈活定制 + 插件接入適配市場

在電商系統開發這塊&#xff0c;技術選得好不好&#xff0c;直接關系到平臺穩不穩定、能不能擴展、適配能力強不強。JAVA 語言因為 “跨平臺性突出、安全性高、可擴展性好” 這些特點&#xff0c;成了企業級電商系統的首選技術。而 ZKmall 商城基于 JAVA 開發的商城系統&#x…

【數據結構之哈夫曼樹與編碼實現】

文章目錄 前言一、哈夫曼樹與哈夫曼編碼簡介1. 什么是哈夫曼樹&#xff1f;2. 為什么需要哈夫曼編碼&#xff1f; 二、哈夫曼編碼原理三、哈夫曼樹的構建步驟詳解1. 統計字符頻率2. 定義哈夫曼樹節點3. 最小堆&#xff08;優先隊列&#xff09;的構造4. 合并節點&#xff0c;構…

基于Hadoop的京東廚具商品數據分析及商品價格預測系統的設計與實現

文章目錄有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主項目介紹數據采集用戶界面系統展示管理員界面每文一語有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主 項目介紹 本項目圍繞“京東廚具數據分析系統的設計與實…

深入解析TCP:可靠傳輸的核心機制與實現邏輯(三次握手、四次揮手、流量控制、滑動窗口、擁塞控制、慢啟動、延時應答、面向字節流、粘包問題)

Linux系列 文章目錄 Linux系列一、TCP連接的建立與斷開1.1 TCP 三次握手1.2 TCP四次揮手1. TCP連接的本質是應用層間的通信通道2. 斷開連接的核心是終止應用層通信3. 常見誤解澄清 二、TCP協議的機制2.1 流量控制2.2 滑動窗口2.2.1 滑動窗口的工作原理2.2.2 基于滑動窗口快重傳…

基于開源AI智能客服、AI智能名片與S2B2C商城小程序的微商服務質量提升路徑研究

摘要&#xff1a;在科技飛速發展的背景下&#xff0c;產品技術含量與復雜度顯著提升&#xff0c;客戶正確使用產品并體驗其價值愈發依賴代理的專業指導與服務。本文聚焦開源AI智能客服、AI智能名片與S2B2C商城小程序在微商服務中的應用&#xff0c;通過分析其技術原理與實踐案例…

[netty5: HttpHeaders HttpHeadersFactory]-源碼分析

HttpHeaders HttpHeaders 是用于存儲和操作HTTP請求或響應頭部字段的接口。 // DefaultHttpHeaders, HttpHeadersFactory.TrailingHttpHeaders public interface HttpHeaders extends Iterable<Entry<CharSequence, CharSequence>> {static HttpHeaders emptyHead…

基于Flink 1.20、StarRocks與TiCDC構建高效數據處理鏈路教程

在大數據處理領域&#xff0c;實現高效、實時的數據處理與分析至關重要。Flink作為強大的流批一體化計算框架&#xff0c;結合StarRocks這一高性能的實時分析型數據庫&#xff0c;再搭配TiCDC&#xff08;TiDB Change Data Capture&#xff09;用于捕獲數據變更&#xff0c;能夠…

便捷的Office批量轉PDF工具

軟件介紹 本文介紹的軟件是一款能實現Office批量轉換的工具&#xff0c;名為五五Excel word批量轉PDF。 軟件小巧 這款五五Excel word批量轉PDF軟件大小不到2M。 操作步驟一 使用該軟件時&#xff0c;只需把軟件和需要轉換的Word或Excel文件放在同一個文件夾里。 操作步驟…

tcp長連接與短連接

TCP連接本身是一個傳輸層協議&#xff0c;它既可以實現長連接&#xff0c;也可以實現短連接。這取決于應用層的使用方式。 短連接&#xff08;Short Connection&#xff09; 特點&#xff1a;每次請求都建立新的TCP連接&#xff0c;完成后立即關閉流程&#xff1a;建立連接 →…

llvm polly,親自測試

1&#xff09;下載并安裝 Polly - Getting Started git clone https://github.com/llvm/llvm-project.git 大概需要半個小時&#xff0c;有時候被墻掉就打不開 2&#xff09; mkdir build && cd build cmake -DLLVM_ENABLE_PROJECTSclang;polly ../llvm cmake --b…

Spring AI 項目實戰(十四):Spring Boot + Vue3 +AI + DeepSeek 實現空氣質量智能預測系統(附完整源碼)

系列文章 序號文章名稱1Spring AI 項目實戰(一):Spring AI 核心模塊入門2Spring AI 項目實戰(二):Spring Boot + AI + DeepSeek 深度實戰(附完整源碼)3Spring AI 項目實戰(三):Spring Boot + AI + DeepSeek 打造智能客服系統(附完整源碼)4

騰訊云 CDN 不支持 WebSocket 的現狀與華為云 CDN 的替代方案-優雅草卓伊凡

騰訊云 CDN 不支持 WebSocket 的現狀與華為云 CDN 的替代方案-優雅草卓伊凡 問題背景 卓伊凡今天發現&#xff0c;騰訊云 CDN 不支持 WebSocket 協議&#xff0c;而公司的部分業務&#xff08;如實時聊天、在線協作、游戲互動、股票行情推送等&#xff09;依賴長連接通信。昨…

MybatisPlus(一)擴展功能

擴展功能 一、靜態工具二、邏輯刪除三、通用枚舉1、定義枚舉2、配置枚舉處理器3、測試 四、JSON類型處理器1、定義實體2、使用類型處理器 五、分頁1、配置分頁插件2、分頁API3、示例 一、靜態工具 有的時候Service之間也會相互調用&#xff0c;為了避免出現循環依賴問題&#…

Redis哨兵模式之Sentinel模式(二)

一、多節點哨兵如何配置&#xff1f; 哨兵配置原理圖 注意&#xff1a;sentinel哨兵模式的搭建是建立在redis主從復制節點配置基礎而搭建&#xff0c;在主從配置中從庫需要配置好replicaof關聯上主庫并關閉安全模式&#xff0c;然后設置好bind端口才能關聯上機器&#xff0c;而…

基于Excel的數據分析思維與分析方法

數據分析一定要會Excel、SQL和Python&#xff1f;非常肯定地回答您&#xff0c;Python、R語言、Excel函數和VBA&#xff0c;以及高級數據分析軟件&#xff0c;都學不到&#xff0c;您將學到&#xff1a;5個有效的數據分析利器&#xff0c;以及分析思維 一、描述性統計分析 在…

計算機網絡筆記(不全)

一、計算機網絡體系結構1.計算機網絡的概念計算機網絡&#xff1a;由若干結點和連接這些結點的鏈路組成。結點可以是計算機、集線器、交換機、路由器等。互連網(internet)&#xff1a;多個計算機網絡通過路由器互相連接而成&#xff0c;可用任意協議通信。互聯網(因特網Interne…

XML Schema 復合元素

XML Schema 復合元素 引言 XML(可擴展標記語言)作為一種靈活的標記語言,廣泛應用于數據交換和存儲。XML Schema 是一種用于描述和定義 XML 文檔結構的語言,它定義了 XML 文檔的元素、屬性、類型和約束。本文將詳細介紹 XML Schema 中的復合元素,并探討其在實際應用中的重…

華為云Flexus+DeepSeek征文 | 彈性算力實戰:Flexus X實例自動擴縮容策略優化

華為云FlexusDeepSeek征文 | 彈性算力實戰&#xff1a;Flexus X實例自動擴縮容策略優化 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者…

【倉頡】運行環境配置VSCode + Win11

作者&#xff1a;大李子 團隊&#xff1a;堅果派 十年iOS&#xff0c;All in轉鴻蒙 前言 “倉頡編程語言是一款面向全場景智能的新一代編程語言&#xff0c;主打原生智能化、天生全場景、高性能、強安全。融入鴻蒙生態&#xff0c;為開發者提供良好的編程體驗。” ——摘自倉…

【K線訓練軟件研發歷程】【日常記錄向】1.K線滑動窗口

文章目錄 當前效果未來發展思路技術選型值得分享的技術點數據加載、解析的代碼echats的代碼當前效果 ??相當于有個hello world了。 未來發展思路 開源 技術選型 界面直接采用electron,等開源后,可以直接掛release,用戶下載安裝包后,一鍵安裝,一鍵運行,降低使用門檻…