多视图几何的数学基础知识的掌握(2)--李群李代数

前言

  本次博文讲述关于如何对运动的场景进行表达【一般用于SLAM和SFM】,其中包括了李群李代数的数学知识,对于完全的描述李群和李代数,会考虑一篇博文去描述。

多视图几何的数学基础知识的掌握(2)–李群李代数

三维重建的起源

  在计算机视觉中,从一组二维视图重建世界三维结构的目标具有悠久的历史。 这是一个经典的不适定问题(ill-posed problem),因为与给定的一组观察/图像一致的重建通常不是唯一的。

  图像处理中不适定问题(ill posed problem)或称为反问题(inverseProblem)的研究从20世纪末成为国际上的热点问题,成为现代数学家、计算机视觉和图像处理学者广为关注的研究领域。

  数学和物理上的反问题的研究由来已久,法国数学家阿达马早在19世纪就提出了不适定问题的概念:称一个数学物理定解问题的解存在、唯一并且稳定的则称该问题是适定的(Well-Posed).如果不满足适定性概念中的上述判据中的一条或几条,称该问题是不适定的。典型的图像处理不适定问题包括:图像去噪(ImageDe-nosing),图像恢复(Image Restorsion),图像放大(Image Zooming),图像修补(ImageInpainting),图像去马赛克(image Demosaicing),图像超分辨(Image super-resolution)等。

  图像重建问题是不适定问题,因此,人们需要施加额外的假设。 在数学上,3D场景和观察到的2D投影之间的几何关系的研究基于两种类型的变换,即:

  • 欧几里德运动(Euclidean motion)或刚体运动(rigid-body motion)表示摄像机从一帧到下一帧的运动。
  • 透视投影以考虑图像形成过程(参见针孔相机等)。

  透视投射的概念源于古希腊人(亚历山大的欧几里德,公元前400年)和文艺复兴时期(布鲁内莱斯基和阿尔贝蒂,1435年)。 透视投影的研究导致投影几何领域(Girard Desargues 1648,Gaspard Monge 18th)。

  关于多视图几何问题的第一个工作是Erwin Kruppa(1913),它表明两个五点的视图足以确定两个视图之间的相对变换(运动)和三个位置(结构)。 指出有限的许多解决方案。

  Longuet-Higgins于1981年提出了一种基于极线约束从两个视图中恢复结构和运动的线性算法。

  Spetsakis和Aloimonos '87,'90以及Shashua '94和Hartley '95开发了三视图的扩展。 Tomasi和Kanade 1992开发了多视图和正交投影的分解技术。

  相机运动和3D位置的联合估计称为运动结构重建视觉SLAM

三维欧式空间

  三维欧几里德空间 E 3 {\mathbb{E}}^3 E3由用坐标表示的所有点 ρ ∈ E 3 \rho \in \mathbb{E}^3 ρE3组成

X ≡ ( x 1 , x 2 , x 3 ) T ∈ R 3 X \equiv (x_1,x_2,x_3)^T\in \mathbb{R}^3 X(x1,x2,x3)TR3

  这样可以用 R 3 \mathbb{R}^3 R3代替 E 3 \mathbb{E}^3 E3。 这意味着我们谈论点( E 3 \mathbb{E}^3 E3)和坐标( R 3 \mathbb{R}^3 R3),好像它们是相同的东西。 给定两个点 X X X Y Y Y,可以将有界向量(bound vector)定义为

v = Y − X ∈ R 3 v=Y-X\in \mathbb{R}^3 v=YXR3

  考虑到该矢量独立于其基点Y使其成为自由矢量(free vector)。 该组自由向量 v ∈ R 3 v\in \mathbb{R}^3 vR3形成线性向量空间。 通过代替 E 3 \mathbb{E}^3 E3,使得 R 3 \mathbb{R}^3 R3可以赋予 E 3 \mathbb{E}^3 E3标量乘积,范数和度量。 这允许计算距离,曲线长度,区域(Area)或体积(volumes)。

l ( γ ) ≡ ∫ 0 1 ∣ γ ˙ ( s ) ∣ d s l(\gamma)\equiv \int_0^1|\dot{\gamma}(s)|ds l(γ)01γ˙(s)ds

  其中曲线 γ \gamma γ [ 0 , 1 ] → R 3 [0,1]\rightarrow \mathbb{R}^3 [0,1]R3

叉乘与反对称阵

  在 R 3 \mathbb{R}^3 R3上可以定义叉积:

× : R 3 × R 3 → R 3 : u × v = ( u 2 v 3 − u 3 v 2 u 3 v 1 − u 1 v 3 u 1 v 2 − u 2 v 1 ) ∈ R 3 \times:\mathbb{R}^3\times \mathbb{R}^3\rightarrow \mathbb{R}^3:u\times v=\begin{pmatrix}u_2v_3-u_3v_2\\u_3v_1-u_1v_3\\u_1v_2-u_2v_1\end{pmatrix}\in \mathbb{R}^3 ×:R3×R3R3:u×v=u2v3u3v2u3v1u1v3u1v2u2v1R3

  这是一个与 u u u v v v正交的向量。

可以想象这个向量相当于由 u u u v v v构成的平面的平面法向量

  由于 u × v = − v × u u\times v=-v\times u u×v=v×u,叉积引入了一个方向

   固定 u u u诱导出一个线性映射 v ↦ u × v v \mapsto u\times v vu×v,这个映射可以被斜对称矩阵表示:

u ^ = ( 0 − u 3 u 2 u 3 0 − u 1 − u 2 u 1 0 ) ∈ R 3 × 3 \hat{u}=\begin{pmatrix}0&-u_3&u_2\\u_3&0&-u_1\\-u_2&u_1&0\end{pmatrix}\in \mathbb{R}^{3\times 3} u^=0u3u2u30u1u2u10R3×3

  反过来,每个斜对称矩阵 M = − M T ∈ R 3 × 3 M=-M^T\in \mathbb{R}^{3\times 3} M=MTR3×3可以用向量 u ∈ R 3 u\in \mathbb{R}^3 uR3来代替。 运算符 ∧ \land 定义了 R 3 \mathbb{R}^3 R3和由所有 3 × 3 3\times 3 3×3的斜对称矩阵构成的 s o ( 3 ) \mathfrak{so}(3) so(3)空间之间的同构【从向量到矩阵】。 它的反函数(inverse)用 ∨ : s o ( 3 ) → R 3 \vee:\mathfrak{so}(3)\rightarrow \mathbb{R}^3 :so(3)R3表示【从矩阵到向量】。

刚体运动

  刚体运动(或刚体变换)是一系列映射:

g t : R 3 → R 3 ; X ↦ g t ( X ) , t ∈ [ 0 , T ] g_t:\mathbb{R}^3\rightarrow \mathbb{R}^3;X \mapsto g_t(X),t\in[0,T] gt:R3R3;Xgt(X),t[0,T]

这保留任何两个向量的范数和叉积:

  • g t ( v ) = ∣ ∣ v ∣ ∣ , ∀ v ∈ R 3 g_t(v)=||v||,\forall v\in \mathbb{R}^3 gt(v)=v,vR3
  • g t ( u ) × g t ( u ) = g t ( u × v ) , ∀ u , v ∈ R 3 g_t(u)\times g_t(u)=g_t(u\times v),\forall u,v \in \mathbb{R}^3 gt(u)×gt(u)=gt(u×v),u,vR3

  而范数和内积通过极化恒等式(Polarization Identity)而相关。

&lt; u , v &gt; = 1 4 ( ∣ u + v ∣ 2 − ∣ u − v ∣ 2 ) &lt;u,v&gt;=\frac{1}{4}(|u+v|^2-|u-v|^2) <u,v>=41(u+v2uv2)

  我们还可以说刚体运动是保留内积和叉积的映射。 因此,刚体运动也保留了三重积,三重积(Triple Product)的几何意义是三个向量表示的平行六面体的体积,所以刚体运动保持体积不变。

&lt; g t ( u ) , g t ( v ) × g t ( w ) &gt; = &lt; u , v × w &gt; , ∀ u , v , w ∈ R 3 &lt;g_t(u),g_t(v)\times g_t(w)&gt;=&lt;u,v\times w&gt;,\forall u,v,w \in \mathbb{R}^3 <gt(u),gt(v)×gt(w)>=<u,v×w>,u,v,wR3

  这意味着它们是保持体积的。

刚体运动的表示

  上述定义是否导致刚体运动的数学表示?

  由于它保留了长度和方向,因此通过指定附着在物体上的笛卡尔坐标系的运动(由原点和标准正交定向矢量 e 1 , e 2 , e 3 ∈ R 3 e_1,e_2,e_3\in \mathbb{R}^3 e1,e2,e3R3给出)来充分定义刚体的运动 g t g_t gt。 原点的运动可以由平移 T ∈ R 3 T\in\mathbb{R}^3 TR3表示,而矢量 e i e_i ei的变换由新的矢量 r i = g t ( e i ) r_i=g_t(e_i) ri=gt(ei)给出。

  这些向量的内积和叉积性质被保留:

r i T r j = g t ( e i ) T g t ( e j ) = e i T e j = δ i j , r 1 × r 2 = r 3 r_i^Tr_j=g_t(e_i)^Tg_t(e_j)=e_i^Te_j=\delta_{ij},r_1\times r_2=r_3 riTrj=gt(ei)Tgt(ej)=eiTej=δij,r1×r2=r3

  第一个约束相当于矩阵 R = ( r 1 , r 2 , r 3 ) R=(r_1,r_2,r_3) R=(r1,r2,r3)是正交(旋转)矩阵的陈述:

R T R = R R T = I R^TR=RR^T=I RTR=RRT=I

  而第二个属性意味着

det ⁡ ( R ) = ± 1 \det(R)=\pm1 det(R)=±1

  换句话说:

  R是群 S O ( 3 ) = { R ∈ R 3 × 3 ∣ R R T = I , det ⁡ ( R ) = ± 1 } SO(3)=\{R\in \mathbb{R}^{3\times 3}|RR^T=I,\det(R)=\pm 1\} SO(3)={RR3×3RRT=I,det(R)=±1}中的元素。

  因此,刚体运动 g t g_t gt可以写成:

g t ( x ) = R x + T g_t(x)=Rx+T gt(x)=Rx+T

旋转的指数坐标

  我们现在将得出一个无穷小旋转(infinitesimal rotation)的表示。 为此,考虑一系列旋转矩阵 R ( t ) R(t) R(t),其连续地将点从其原始位置( R ( 0 ) = I R(0)=I R(0)=I)变换为不同的点。

X t r a n s ( t ) = R ( t ) X o r i g X_{trans}(t)=R(t)X_{orig} Xtrans(t)=R(t)Xorig

  其中 R ( t ) ∈ S O ( 3 ) R(t)\in SO(3) R(t)SO(3)

  由于 R ( t ) R ( t ) T = I , ∀ t R(t)R(t)^T=I,\forall t R(t)R(t)T=I,t,我们有

d d t ( R R T ) = R ˙ R T + R R ˙ T = 0 ⇒ R ˙ R T = − ( R ˙ R T ) T \frac{d}{dt}(RR^T)=\dot{R}R^T+R\dot{R}^T=0 \Rightarrow \dot{R}R^T = -(\dot{R}R^T)^T dtd(RRT)=R˙RT+RR˙T=0R˙RT=(R˙RT)T

  因此, R ˙ R T \dot{R}R^T R˙RT是斜对称矩阵。

  正如前面关于 ∧ \land 运算符的描述时所述,这意味着存在向量 w ( t ) ∈ R 3 w(t)\in \mathbb{R}^3 w(t)R3,使得:

R ˙ ( t ) R T ( t ) = w ^ ( t ) ⇔ R ˙ ( t ) = w ^ R ( t ) \dot{R}(t)R^T(t)=\hat{w}(t) \Leftrightarrow \dot{R}(t)=\hat{w}R(t) R˙(t)RT(t)=w^(t)R˙(t)=w^R(t)

  由于 R ( 0 ) = I R(0)=I R(0)=I,这就意味着 R ˙ ( 0 ) = w ^ ( 0 ) \dot{R}(0)=\hat{w}(0) R˙(0)=w^(0)

  因此,斜对称矩阵 w ^ ( 0 ) ∈ s o ( 3 ) \hat{w}(0)\in \mathfrak{so}(3) w^(0)so(3)给出了旋转的一阶近似:

R ( d t ) = R ( 0 ) + d R = I + w ^ ( 0 ) d t R({\rm d} t)=R(0)+{\rm d}R=I+\hat{w}(0){\rm d}t R(dt)=R(0)+dR=I+w^(0)dt

这是让 R ( t ) R(t) R(t) t = 0 t=0 t=0处进行了一阶泰勒展开

  接下来我们说说李群和李代数,不过这里是简单的介绍一下,以后会详细介绍。怕篇幅太多,这篇博文就失去了性质,后面更新,这里就放上编写好的博客的链接。

李群 S O ( 3 ) SO(3) SO(3)

李群与李代数

  上述计算表明,任何无穷小旋转 R ∈ S O ( 3 ) R\in SO(3) RSO(3)的作用可以通过斜对称矩阵空间中的元素来近似。

s o ( 3 ) = { w ^ ∣ w ∈ R 3 } \mathfrak{so}(3)=\{\hat{w}|w\in \mathbb{R}^3\} so(3)={w^wR3}

  旋转群 S O ( 3 ) SO(3) SO(3)称为李群。 空间 s o ( 3 ) \mathfrak{so}(3) so(3)称为李代数。

李群定义

  李群(或无穷小群)是一个光滑的流形,也是一个群,这样群运算乘法和逆就是平滑的映射(maps)。

  要知道李群(Lie Group)指连续可微的群,而且三维空间的旋转是连续的,所以特殊正交群 S O ( 3 ) SO(3) SO(3)是三维旋转李群对应的矩阵表示。

  如上所示:李代数 s o ( 3 ) \mathfrak{so}(3) so(3)是旋转群 S O ( 3 ) SO(3) SO(3)的在同一处的切空间。

  在域K上的代数是 K K K上的向量空间 V V V,向量空间 V V V上定义乘法。李代数的元素 w ^ \hat{w} w^ v ^ \hat{v} v^通常不可交换。

  可以定义李氏括号(Lie bracket):

[ ⋅ , ⋅ ] : s o ( 3 ) × s o ( 3 ) → s o ( 3 ) ; [ w ^ , v ^ ] ≡ w ^ v ^ − v ^ w ^ [\cdot,\cdot]:\mathfrak{so}(3)\times \mathfrak{so}(3) \rightarrow \mathfrak{so}(3);[\hat{w},\hat{v}]\equiv\hat{w}\hat{v}-\hat{v}\hat{w} [,]:so(3)×so(3)so(3);[w^,v^]w^v^v^w^

指数映射

  给定关于斜对称矩阵 w ^ \hat{w} w^的无穷小的旋转公式,是否可以确定旋转 R ( t ) R(t) R(t)的有用表示 w ^ \hat{w} w^让我们假设 w ^ \hat{w} w^在时间上是恒定的。

微分方程组

{ R ˙ ( t ) = w ^ R ( t ) R ( 0 ) = I \begin{cases}\dot{R}(t)=\hat{w}R(t)\\ R(0)=I\end{cases} {R˙(t)=w^R(t)R(0)=I

其解为:

R ( t ) = e w t = ∑ n = 0 ∞ ( w ^ t ) n n ! = I + w ^ t + ( w ^ t ) 2 2 ! + ⋯ R(t)=e^{wt}=\sum\limits_{n=0}^{\infty}\frac{(\hat{w}t)^n}{n!}=I+\hat{w}t+\frac{(\hat{w}t)^2}{2!}+\cdots R(t)=ewt=n=0n!(w^t)n=I+w^t+2!(w^t)2+

  这是围绕轴 w ∈ R 3 w\in \mathbb{R}^3 wR3旋转角度为 t t t(如果 ∣ ∣ w ∣ ∣ = 1 ||w||=1 w=1 )。 或者,可以将标量 t ∈ R t\in \mathbb{R} tR吸收到斜对称矩阵 w w w中以获得 R ( t ) = e v ^ R(t)= e^{\hat{v}} R(t)=ev^,其中 v ^ = w ^ t \hat{v} = \hat{w}t v^=w^t。 因此,矩阵指数定义了从李代数到李群的映射:

exp ⁡ : s o ( 3 ) → S O ( 3 ) ; w ^ ↦ e w ^ \exp: \mathfrak{so}(3)\rightarrow SO(3);\hat{w} \mapsto e^{\hat{w}} exp:so(3)SO(3)w^ew^

S O ( 3 ) SO(3) SO(3)的对数

  与实际分析的情况一样,可以通过对数定义指数映射的反函数(inverse function)。 在李群的上下文中,这将导致从李群到李代数的映射。

  对于任何旋转矩阵 R ∈ S O ( 3 ) R\in SO(3) RSO(3),存在 w ∈ R 3 w\in \mathbb{R}^3 wR3,使得 R = exp ⁡ ( w ^ ) R=\exp(\hat{w}) R=exp(w^)。 这样的元素用 w ^ = log ⁡ ( R ) \hat{w}=\log (R) w^=log(R)表示。

  如果 R = ( r i j ) ≠ I R=(r_{ij})\ne I R=(rij)̸=I,则由下式给出 w w w:

∣ w ∣ = cos ⁡ − 1 ( t r a c e ( R ) − 1 2 ) , w ∣ w ∣ = 1 2 s i n ( ∣ w ∣ ) ( r 32 − r 23 r 13 − r 31 r 21 − r 12 ) |w|=\cos^{-1}\left(\frac{{\rm trace}(R)-1}{2}\right),\frac{w}{|w|}=\frac{1}{2 sin(|w|)}\begin{pmatrix}r_{32}-r_{23}\\ r_{13}-r_{31}\\r_{21}-r_{12} \end{pmatrix} w=cos1(2trace(R)1),ww=2sin(w)1r32r23r13r31r21r12

  对于 R = I R = I R=I,我们有 ∣ w ∣ = 0 |w|= 0 w=0,即旋转角度为 0 0 0

  由上述可知:任何正交变换 R ∈ S O ( 3 ) R\in SO(3) RSO(3)都可以通过绕着旋转轴 w ∣ w ∣ \frac{w}{|w|} ww旋转 ∣ w ∣ |w| w角度来实现,其中旋转轴和旋转角在上面公式已定义。 这里我们就不证明。

  显然,上述表示并不是唯一的,因为将角度增加 2 π 2\pi 2π的倍数的角度,会给出相同的旋转 R R R

李群与李代数的图解可视化

  定义:李群是一个光滑的流形,也是一个群,这样群运算乘法和逆(inversion)就是平滑的映射。

  李代数定义:在同一元素处李群的切空间称为关联的李代数。

  从李群到李代数的映射称为指数映射。 它的反函数为对数

罗德里格斯的公式

  我们已经看到通过计算 E = e w ^ E=e^{\hat{w}} E=ew^可以实现任何旋转。 类似于众所周知的欧拉方程:

e i ϕ = c o s ( ϕ ) + i s i n ( ϕ ) , ∀ ϕ ∈ R e^{i\phi}=cos(\phi)+i sin(\phi),\forall \phi \in \mathbb{R} eiϕ=cos(ϕ)+isin(ϕ),ϕR

  我们有一个斜对称矩阵 w ^ ∈ s o ( 3 ) \hat{w}\in \mathfrak{so}(3) w^so(3)的表达式:

e w ^ = I + w ^ ∣ w ∣ s i n ( ∣ w ∣ ) + w ^ 2 ∣ w ∣ 2 ( 1 − c o s ( ∣ w ∣ ) ) e^{\hat{w}}=I+\frac{\hat{w}}{|w|}sin(|w|)+\frac{\hat{w}^2}{|w|^2}(1-cos(|w|)) ew^=I+ww^sin(w)+w2w^2(1cos(w))

  这被称为罗德里格斯的公式

证明

  让 t = ∣ w ∣ t=|w| t=w v = w / ∣ w ∣ v=w/|w| v=w/w,则

v ^ 2 = v v T − I , v ^ 3 = − v ^ , ⋯ \hat{v}^2=vv^T-I,\hat{v}^3=-\hat{v},\cdots v^2=vvTI,v^3=v^,

  而且

e w ^ = e v ^ t = I + ( t − t 3 3 ! + t 5 5 ! − ⋯ &ThinSpace; ) ⎵ sin(t) v ^ + ( t 2 2 ! − t 4 4 ! + t 6 6 ! − ⋯ &ThinSpace; ) ⎵ 1-cos(t) v ^ 2 e^{\hat{w}}=e^{\hat{v}t}=I+\underbrace{(t-\frac{t^3}{3!}+\frac{t^5}{5!}-\cdots)}_\text{sin(t)} \hat{v}+\underbrace{(\frac{t^2}{2!}-\frac{t^4}{4!}+\frac{t^6}{6!}-\cdots)}_\text{1-cos(t)}\hat{v}^2 ew^=ev^t=I+sin(t) (t3!t3+5!t5)v^+1-cos(t) (2!t24!t4+6!t6)v^2

S E ( 3 ) SE(3) SE(3)李群

表示刚体运动 S E ( 3 ) SE(3) SE(3)

  我们已经看到,通过指定任何给定点的平移 T T T和定义给定点处的定向笛卡尔坐标系的变换的旋转矩阵 R R R来唯一地确定刚体的运动。 因此,由特殊欧氏变换群给出的刚体运动空间

S E ( 3 ) ≡ { g = ( R , T ) ∣ R ∈ S O ( 3 ) , T ∈ R 3 } SE(3)\equiv \{g=(R,T)|R \in SO(3),T\in \mathbb{R}^3\} SE(3){g=(R,T)RSO(3),TR3}

  在齐次坐标系中,我们有:

S E ( 3 ) ≡ { g = ( R T 0 1 ) ∣ R ∈ S O ( 3 ) , T ∈ R 3 } SE(3)\equiv \left\{g=\begin{pmatrix}R &amp;T\\0&amp;1\end{pmatrix}|R\in SO(3),T\in \mathbb{R}^3\right\} SE(3){g=(R0T1)RSO(3),TR3}

  在刚性运动的情况下,人们可以看到 E 3 \mathbb{E}^3 E3中的点(可以旋转和平移)与 R 3 \mathbb{R}^3 R3中的矢量(只能旋转)之间的差异。

运动旋量(twist)的李代数(The Lie Algebra of Twists)

  给定一系列连续的刚体变换

g : R → S E ( 3 ) ; g ( t ) = ( R ( t ) T ( t ) 0 1 ) ∈ R 4 × 4 g:\mathbb{R}\rightarrow SE(3);g(t)=\begin{pmatrix}R(t)&amp;T(t)\\ 0&amp;1 \end{pmatrix}\in \mathbb{R}^{4\times 4} g:RSE(3);g(t)=(R(t)0T(t)1)R4×4

  我们考虑:

g ˙ ( t ) g − 1 ( t ) = ( R ˙ R T T ˙ − R ˙ R T T 0 0 ) ∈ R 4 × 4 \dot{g}(t)g^{-1}(t)=\begin{pmatrix}\dot{R}R^T&amp;\dot{T}-\dot{R}R^TT\\ 0&amp;0\end{pmatrix}\in \mathbb{R}^{4\times 4} g˙(t)g1(t)=(R˙RT0T˙R˙RTT0)R4×4

  与 S O ( 3 ) SO(3) SO(3)的情况一样, R ˙ R T \dot{R}R^T R˙RT对应于一些斜对称矩阵 w ^ ∈ s o ( 3 ) \hat{w}\in \mathfrak{so}(3) w^so(3)。 定义一个向量 v ( t ) = T ˙ ( t ) − w ^ ( t ) T ( t ) v(t)=\dot{T}(t)-\hat{w}(t)T(t) v(t)=T˙(t)w^(t)T(t),我们得到:

g ˙ ( t ) g − 1 ( t ) = ( w ^ ( t ) v ( t ) 0 0 ) ≡ ξ ^ ( t ) ∈ R 4 × 4 \dot{g}(t)g^{-1}(t)=\begin{pmatrix}\hat{w}(t)&amp;v(t)\\0&amp;0\end{pmatrix}\equiv\hat{\xi}(t)\in \mathbb{R}^{4\times 4} g˙(t)g1(t)=(w^(t)0v(t)0)ξ^(t)R4×4

  乘以右边的 g ( t ) g(t) g(t),我们得到:

g ˙ = g ˙ g − 1 g = ξ ^ g \dot{g}=\dot{g}g^{-1}g=\hat{\xi}g g˙=g˙g1g=ξ^g

   4 × 4 4\times 4 4×4矩阵 ξ ^ \hat{\xi} ξ^可以看作沿曲线 g ( t ) g(t) g(t)的切线向量。 ξ ^ \hat{\xi} ξ^被称为运动旋量(twist)。 与 s o ( 3 ) \mathfrak{so}(3) so(3)的情况一样,所有运动旋量的集合形成切线空间:

s e ( 3 ) ≡ { ξ ^ = ( w ^ v 0 0 ) ∣ w ^ ∈ s o ( 3 ) , v ∈ R 3 } ⊂ R 4 × 4 \mathfrak{se}(3)\equiv \left\{\hat{\xi}=\begin{pmatrix}\hat{w}&amp;v\\0&amp;0\end{pmatrix}\Bigg|\hat{w}\in \mathfrak{so}(3),v\in \mathbb{R}^3\right\}\sub \mathbb{R}^{4\times 4} se(3){ξ^=(w^0v0)w^so(3),vR3}R4×4

  该切线空间是李群 s e ( 3 ) \mathfrak{se}(3) se(3)的李代数

  和以前一样,我们可以定义运算符 ∧ \land ∨ \vee 来转换运动旋量 ξ ^ ∈ s e ( 3 ) \hat{\xi}\in \mathfrak{se}(3) ξ^se3和 它的运动旋量坐标 ξ ∈ R 6 \xi \in \mathbb{R}^6 ξR6之间的转换。

ξ ^ ≡ ( v w ) ∧ ≡ ( w ^ v 0 0 ) ∈ R 4 × 4 \hat{\xi}\equiv \begin{pmatrix} v\\w\end{pmatrix}^{\land} \equiv \begin{pmatrix} \hat{w} &amp;v \\ 0 &amp; 0\end{pmatrix}\in \mathbb{R}^{4\times 4} ξ^(vw)(w^0v0)R4×4

( w ^ v 0 0 ) ∨ = ( v w ) ∈ R 6 \begin{pmatrix} \hat{w} &amp;v \\ 0 &amp; 0\end{pmatrix}^{\vee}=\begin{pmatrix} v\\w\end{pmatrix} \in \mathbb{R}^6 (w^0v0)=(vw)R6

S E ( 3 ) SE(3) SE(3)的指数坐标

  运动旋量 ξ = ( w ^ v 0 0 ) \xi= \begin{pmatrix} \hat{w} &amp;v \\ 0 &amp; 0\end{pmatrix} ξ=(w^0v0) 通过堆叠(stacking,组成列向量)线速度 v ∈ R 3 v\in \mathbb{R}^3 vR3 (与平移相关)和角速度 w ∈ R 3 w\in \mathbb{R}^3 wR3(与旋转相关)形成。

微分方程组

{ g ˙ ( t ) = ξ ^ g ( t ) , ξ ^ = c o n s t g ( 0 ) = I , \begin{cases}\dot{g}(t)=\hat{\xi}g(t),\hat{\xi}={\rm const}\\g(0)=I,\end{cases} {g˙(t)=ξ^g(t),ξ^=constg(0)=I,

其解为:

g ( t ) = e ξ ^ t = ∑ n = 0 ∞ ( ξ ^ t ) n n ! g(t)=e^{\hat{\xi}t}=\sum\limits_{n=0}^{\infty}\frac{(\hat{\xi}t)^n}{n!} g(t)=eξ^t=n=0n!(ξ^t)n

  对于 w = 0 w=0 w=0,我们有

e ξ ^ = ( I v 0 1 ) ​ e^{\hat{\xi}}=\begin{pmatrix} I &amp;v \\ 0 &amp; 1\end{pmatrix}​ eξ^=(I0v1)

  如果 w ≠ 0 w\ne 0 w̸=0,我们有:

e ξ ^ = ( e w ^ ( 1 − e w ^ ) w ^ v + w w T v ∣ w ∣ 0 1 ) e^{\hat{\xi}}=\begin{pmatrix} e^{\hat{w}} &amp;\frac{(1-e^{\hat{w}})\hat{w}v+ww^Tv}{|w|} \\ 0 &amp; 1\end{pmatrix} eξ^=(ew^0w(1ew^)w^v+wwTv1)

  上面显示指数映射定义了从李代数 s e \mathfrak{se} se到李群 S E ( 3 ) SE(3) SE(3)的变换:

exp ⁡ : s e ( 3 ) → S E ( 3 ) ; ξ ^ ↦ e ξ ^ \exp:\mathfrak{se}(3)\rightarrow SE(3);\hat{\xi}\mapsto e^{\hat{\xi}} exp:se(3)SE(3);ξ^eξ^

  元素 ξ ^ ∈ s e ( 3 ) \hat{\xi}\in \mathfrak{se}(3) ξ^se(3)被称为 S E ( 3 ) SE(3) SE(3)指数坐标

  反之,对于每个 g ∈ S E ( 3 ) g\in SE(3) gSE(3),存在运动旋量坐标 ξ = ( v , w ) ∈ R 6 \xi =(v,w)\in \mathbb{R}^6 ξ=(v,w)R6使得 g = exp ⁡ ( ξ ^ ) g=\exp(\hat{\xi}) g=exp(ξ^)

证明

  给定 g = ( R , T ) g=(R,T) g=(R,T),我们知道存在 w ∈ R 3 w\in \mathbb{R}^3 wR3 e w ^ e^{\hat{w}} ew^。如果 ∣ w ∣ ≠ 0 |w|\ne 0 w̸=0,上面引入的 g g g的指数形式表明我们只需要求解方程

( 1 − e w ^ ) w ^ v + w w T v ∣ w ∣ = T \frac{(1-e^{\hat{w}})\hat{w}v+ww^Tv}{|w|}=T w(1ew^)w^v+wwTv=T

  对于速度矢量 v ∈ R 3 v\in \mathbb{R}^3 vR3 。 正如在 S O ( 3 ) SO(3) SO(3)的情况下,这种表示通常不是唯一的,即存在许多运动旋量 ξ ^ ∈ s e ( 3 ) \hat{\xi}\in \mathfrak{se}(3) ξ^se(3)可以表示相同的刚体运动 g ∈ S E ( 3 ) g\in SE(3) gSE(3)

相机运动的表示

  当从移动的摄像机观察场景时,摄像机坐标中的点的坐标和速度将改变。 我们将使用刚体转换

g ( t ) = ( R ( t ) T ( t ) 0 1 ) ∈ S E ( 3 ) g(t)=\begin{pmatrix} R(t) &amp;T(t) \\ 0 &amp; 1\end{pmatrix}\in SE(3) g(t)=(R(t)0T(t)1)SE(3)

  来表示在时间 t t t从固定世界坐标系到相机坐标系的运动。

   特别地,我们假设在时间 t = 0 t = 0 t=0时相机坐标系与世界坐标系重合,即 g ( 0 ) = I g(0)=I g(0)=I.对于世界坐标中的任何点 x 0 x_0 x0,其在时间 t t t的相机坐标系中的坐标是:

x ( t ) = R ( t ) x 0 + T ( t ) x(t)=R(t)x_0+T(t) x(t)=R(t)x0+T(t)

  或者是齐次表示为:

x ( t ) = g ( t ) x 0 x(t)=g(t)x_0 x(t)=g(t)x0

在坐标系上运动的连接(Concatenation of Motions over Frames)

  给定两个不同的时间 t 1 t_1 t1 t 2 t_2 t2,我们用 g ( t 2 , t 1 ) g(t_2,t_1) g(t2,t1)表示从帧 t 1 t_1 t1中的点到帧 t 2 t_2 t2中的点的变换:

x ( t 2 ) = g ( t 2 , t 1 ) x ( t 1 ) x(t_2)=g(t_2,t_1)x(t_1) x(t2)=g(t2,t1)x(t1)

  显然我们有:

x ( t 3 ) = g ( t 3 , t 2 ) x 2 = g ( t 3 , t 2 ) g ( t 2 , t 1 ) x ( t 1 ) = g ( t 3 , t 1 ) x ( t 1 ) x(t_3)=g(t3,t2)x_2=g(t_3,t_2)g(t_2,t_1)x(t_1)=g(t_3,t_1)x(t_1) x(t3)=g(t3,t2)x2=g(t3,t2)g(t2,t1)x(t1)=g(t3,t1)x(t1)

  因此

g ( t 3 , t 1 ) = g ( t 3 , t 2 ) g ( t 2 , t 1 ) g(t_3,t_1)=g(t_3,t_2)g(t_2,t_1) g(t3,t1)=g(t3,t2)g(t2,t1)

  通过将帧 t 1 t_1 t1的坐标传递到第 t 2 t_2 t2帧和后面的坐标,我们看到:

x ( t 1 ) = g ( t 1 , t 2 ) x ( t 2 ) = g ( t 1 , t 2 ) g ( t 2 , t 1 ) x ( t 1 ) x(t_1)=g(t_1,t_2)x(t_2)=g(t_1,t_2)g(t_2,t_1)x(t_1) x(t1)=g(t1,t2)x(t2)=g(t1,t2)g(t2,t1)x(t1)

  适用于任何点坐标 x ( t 1 ) x(t_1) x(t1),因此:

g ( t 1 , t 2 ) g ( t 2 , t 1 ) = I ⇔ g − 1 ( t 2 , t 1 ) = g ( t 1 , t 2 ) g(t_1,t_2)g(t_2,t_1)=I \Leftrightarrow g^{-1}(t_2,t_1)=g(t_1,t_2) g(t1,t2)g(t2,t1)=Ig1(t2,t1)=g(t1,t2)

速度变换规则

  帧 t t t中的点 x 0 x_0 x0的坐标由 x ( t ) = g ( t ) x 0 x(t)=g(t)x_0 x(t)=g(t)x0给出。 因此速度由下式给出

x ˙ ( t ) = g ˙ ( t ) x 0 = g ˙ ( t ) g − 1 ( t ) x t \dot{x}(t)=\dot{g}(t)x_0=\dot{g}(t)g^{-1}(t)x_t x˙(t)=g˙(t)x0=g˙(t)g1(t)xt

  通过引入运动旋量坐标

v ^ ( t ) ≡ g ˙ ( t ) g − 1 ( t ) = ( w ^ ( t ) v ( t ) 0 0 ) ∈ s e ( 3 ) \hat{v}(t)\equiv \dot{g}(t)g^{-1}(t)=\begin{pmatrix}\hat{w}(t)&amp;v(t)\\ 0&amp;0\end{pmatrix}\in \mathfrak{se}(3) v^(t)g˙(t)g1(t)=(w^(t)0v(t0)se(3)

  我们得到表达式:

x ˙ ( t ) = v ^ x ( t ) \dot{x}(t)=\hat{v}x(t) x˙(t)=v^x(t)

  在简单的3D坐标系中,这给出了如下关系:

x ˙ ( t ) = w ^ ( t ) x ( t ) + v ( t ) \dot{x}(t)=\hat{w}(t)x(t)+v(t) x˙(t)=w^(t)x(t)+v(t)

  因此,符号 v ^ ( t ) \hat{v}(t) v^(t)表示从相机坐标系观察的世界坐标系的相对速度。

帧间迁移:伴随映射

  假设另一帧 A A A中的观察者相对于当前帧位移了变换 g x y : y = g x y x ( t ) g_{xy}:y=g_{xy}x(t) gxy:y=gxyx(t)。 然后,这个新帧中的速度由下式给出:

y ˙ ( t ) = g x y x ˙ ( t ) = g x y v ^ ( t ) x ( t ) = g x y v ^ g − 1 y ( t ) \dot{y}(t)=g_{xy}\dot{x}(t)=g_{xy}\hat{v}(t)x(t)=g_{xy}\hat{v}g^{-1}y(t) y˙(t)=gxyx˙(t)=gxyv^(t)x(t)=gxyv^g1y(t)

  这表明从相机坐标系下A观察到的点的相对速度由运动旋量表示

v ^ y = g x y v ^ g x y − 1 ≡ a d g x y ( v ^ ) \hat{v}_y=g_{xy}\hat{v}g^{-1}_{xy}\equiv {\rm ad}_{g_{xy}}(\hat{v}) v^y=gxyv^gxy1adgxy(v^)

  其中我们引入了在 s e ( 3 ) \mathfrak{se}(3) se(3)上的伴随映射:

a d g : s e ( 3 ) → s e ( 3 ) ; ξ ^ ↦ g ξ ^ g − 1 {\rm ad}_g:\mathfrak{se}(3)\rightarrow \mathfrak{se}(3);\hat{\xi}\mapsto g\hat{\xi}g^{-1} adg:se(3)se(3);ξ^gξ^g1

总结

旋转 S O ( 3 ) SO(3) SO(3)刚体运动 S E ( 3 ) SE(3) SE(3)
矩阵表示 R ∈ G L ( 3 ) R\in GL(3) RGL(3)
R T R = I R^TR=I RTR=I
det ⁡ ( R ) = 1 \det(R)=1 det(R)=1
g = ( R T 0 1 ) g=\begin{pmatrix}R&amp;T\\0&amp;1\end{pmatrix} g=(R0T1)
三维坐标 x = R x 0 x=Rx_0 x=Rx0 x = R x 0 + T x=Rx_0+T x=Rx0+T
R − 1 = R T R^{-1}=R^T R1=RT g − 1 = ( R T − R T T 0 1 ) g^{-1}=\begin{pmatrix}R^T&amp;-R^TT\\0&amp;1\end{pmatrix} g1=(RT0RTT1)
指数表示 R = exp ⁡ ( w ^ ) R=\exp(\hat{w}) R=exp(w^) g = exp ⁡ ( ξ ^ ) g=\exp(\hat{\xi}) g=exp(ξ^)
速度 x ˙ = w ^ x \dot{x}=\hat{w}x x˙=w^x x ˙ = w ^ x \dot{x}=\hat{w}x x˙=w^x+v
伴随映射 w ^ ↦ R w ^ R T \hat{w}\mapsto R\hat{w}R^T w^Rw^RT ξ ^ ↦ g ξ ^ g − 1 \hat{\xi}\mapsto g\hat{\xi}g^{-1} ξ^gξ^g1

替代表示:欧拉角

  除了指数参数化之外,还存在可选的数学表示来参数化由欧拉角给出的旋转矩阵 R ∈ S O ( 3 ) R\in SO(3) RSO(3)。 这些是局部坐标,即参数化仅对 S O ( 3 ) SO(3) SO(3)的一部分是正确的。

  给定李代数 s o ( 3 ) \mathfrak{so}(3) so(3)的基 ( w ^ 1 , w ^ 2 , w ^ 3 ) (\hat{w}_1,\hat{w}_2,\hat{w}_3) (w^1,w^2,w^3),我们可以定义从 R 3 \mathbb{R}^3 R3到李群 S O ( 3 ) SO(3) SO(3)的映射:

α : ( α 1 , α 2 , α 3 ) ↦ exp ⁡ ( α 1 w ^ 1 + α 2 w ^ 2 + α 3 w ^ 3 ) \alpha:(\alpha_1,\alpha_2,\alpha_3) \mapsto \exp(\alpha_1\hat{w}_1+\alpha_2\hat{w}_2+\alpha_3\hat{w}_3) α:(α1,α2,α3)exp(α1w^1+α2w^2+α3w^3)

  坐标 ( α 1 , α 2 , α 3 ) (\alpha_1,\alpha_2,\alpha_3) (α1,α2,α3)相对于上述基被称为第一类的Lie-Cartan坐标

  第二类Lie-Cartan坐标定义为:

β : ( β 1 , β 2 , β 3 ) ↦ exp ⁡ ( β w ^ 1 ) exp ⁡ ( β w ^ 2 ) exp ⁡ ( β w ^ 3 ) \beta:(\beta_1,\beta_2,\beta_3)\mapsto \exp(\beta\hat{w}_1)\exp(\beta\hat{w}_2)\exp(\beta\hat{w}_3) β:(β1,β2,β3)exp(βw^1)exp(βw^2)exp(βw^3)

  对于表示围绕z轴,y轴,x轴旋转的基:

w 1 = ( 0 , 0 , 1 ) T , w 2 = ( 0 , 1 , 0 ) T , w 3 = ( 1 , 0 , 0 ) T w_1=(0,0,1)^T,w_2=(0,1,0)^T,w_3=(1,0,0)^T w1=(0,0,1)T,w2=(0,1,0)T,w3=(1,0,0)T

  坐标 β 1 , β 2 , β 3 \beta_1,\beta_2,\beta_3 β1,β2,β3被称为欧拉角

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuYunTan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值