Lie group & Lie algebra
Last updated
Last updated
還記得我們要求 Graph Optimization for 2D Pose 的時候,需要計算 rotation
這個 Rotation 在 2D 時可以用 簡單表示就好,但在 3D 時會變得非常複雜,且無法簡單求導數 (原因是 rotation matrix 是無法使用加法運算的)
換句話說,在 3D 時我們只可以在 manifold space 解決 rotation matrix 的最佳化
Rotation 有很多種表達方式
Rotation matrix
Euler Angles
Axis-angle
Quaternion
Etc.
最後可以得到 rodrigues rotation 公式: 在 axis-angle 下用舊的向量來取得新的旋轉向量
把所有合法的 rotation matrix 集合起來稱為 Special Orthogonal Group (SO),其中 R 要是 orthogonal 且 det = 1
例如當 R 在三維空間時為 SO(3):
當你不只描述 rotation 還想描述 translation 時就要加入 t
因為連續的轉換太麻煩,用更簡潔的方式 T 來表達整個 transformation
合法的 T 一樣可以組成 group,稱為 Special Euclidean group (SE),必須滿足 R 在 SO 且 t 為合法向量
例如當 T 在三維空間時為 SE(3):
Group 的基本定義,必須滿足以下四點:
closure: 進行 binary operation 還在同空間
identity
inverse
associativity: 結合律
因為用簡單的三維矩陣來表達 rotation matrix,加法不滿足 group 的定義,無法進行導數,所以必須尋找替代方案
Lie Group 裡的每個元素都是連續的,要解 manifold space 的最佳化,就要了解 lie group 和 mapping 對應的 lie algebra
因為知道怎麼求 R(t) 微分,就可以求 R(t)
Lie algebra 代表的就是 Lie group 的切線空間,也要滿足一些特性,其中的 binary operation 為 Lie bracket (外積可以是其中一種)
closure
bilinearity
alternativity
jacobi identity
這個對 A 取 exp 就像在 Axis-Angle 的 Rodrigues Rotation 一樣在做 rotation 的描述
Rotation matrix 是特殊的 lie group
Rotation matrix 會有一個對應的 lie algebra (R的切線空間)
可以用 exponential, logarithmic 來做 mapping
上圖顯示 lie group, lie algebra 的對應關係
Lie group = manifold space
沿著時間 rotation 會不斷改變
因為對 lie algebra 求導太複雜,有比較簡單的做法稱為 perturbation model
最後可以得到更新 R 的方法
用 Axis-angle 舉例,定義旋轉軸 跟旋轉角度
其中 是 延著旋轉軸 進行 度旋轉後的向量,可拆成平行和垂直於 的向量 (水平不會改變,可以沿用舊的)
現在有一個任意的 rotation matrix 滿足 orthogonal (),且跟著時間 t 改變 ()
我們發現對 中的 t 做導數,會得到一個反對稱矩陣
代表建構反對稱 (antisymmetric) 矩陣
代表從反對稱矩陣中,推回三維向量矩陣
對 t 做導數,得到的反對稱矩陣記為
可以從 推回得到 的一階導數結果
而 其實就是 SO(3) 在原點附近的正切空間
很多個 可以組成 Lie algebra,這些 必須可以形成反對稱矩陣
對 Lie algebra 中由 而來的反對稱矩陣 A 取 exp 就可以對應回 lie group 的某個 R
在時間 t 可以找到切平面 (lie algebra 裡的一個元素)
用 求反對稱矩陣,就能求得新的 rotation matrix