目錄
- 一、問題定義
- 二、李代數基礎
- 三、雅可比矩陣推導
- 四、高斯牛頓迭代
- 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)R∈SO(3), t∈R3t \in \mathbb{R}^3t∈R3),最小化殘差:
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=1∑N?∥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???]
-
平移部分導數
直接微分得:
?ri?t=?I3×3(6)\frac{\partial r_i}{\partial t} = -I_{3\times3} \tag{6}?t?ri??=?I3×3?(6) -
旋轉部分導數
考慮左擾動模型 δω\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}J∈R3N×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} H≈J?J∈R6×6
梯度向量:
g=J?r∈R6g = J^\top r \in \mathbb{R}^6 g=J?r∈R6
解線性系統:
(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
五、理論優勢分析
-
約束處理:李代數 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參數過參數化 -
導數一致性:右雅可比矩陣 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?
保證小角度近似與大角度精確的統一 -
收斂性保障:局部滿足
∥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?(當初始估計接近真值)