Computer Vision/SLAM

[Lie Algebra/01] Lie Group & Algebra란;SO(3), so(3), SE(3), se(3)

YoungJ 2023. 8. 2. 00:31
728x90
반응형

Introduction


 

 

앞선  포스트들에서 회전(rotation)과 이동(translation)을 포함한 3차원 변환(3D transformation)을 다루었습니다. 그러면서 SO(3)와 SE(3)라는 낯선 이름들을 중간에 언급했었는데요. 이번 시리즈에서는 이들이 속한 군(Lie group)의 개념과 각각의 정의들, 그리고 실전에서 사용하기 위한 테크닉(Lie algebra)을 다루겠습니다.

 

 

Group


수학적으로 군(group)은 집합(A)과 두 원소 간의 이항 연산(binary operation, *)으로 이루어진 대수적 구조를 의미합니다. 표현으로는 G(A, *)로 나타낼 수 있습니다. 군이 되기 위해서는 몇 가지 조건을 만족해야 하는데요. 아래 그 조건들을 나열해 봤습니다.

 

A. Closure (Composition)

우선 군은 연산 *에 대해 닫혀있습니다. 수학적으로 표현하면 아래와 같으며, 일반적으로 연산 *에 대해 교환 법칙은 성립하지 않을 수 있습니다.

 

$$ \forall a_1, a_2 \in A \mapsto a_1 * a_2 \in A$$

 

B. Combination (Associativity)

군을 이루는 원소들에 대해서 결합 법칙이 적용됩니다. 수학적으로 표현하면 아래와 같습니다.

 

$$\forall a_1, a_2, a_3 \in A \mapsto a_1 * (a_2 * a_3) = (a_1 * a_2) * a_3$$

 

C. Identity element (Unit element)

군에 속한 원소에는 항등원이 반드시 존재하게 됩니다. 이를 수학적으로 표현하면 아래와 같습니다.

 

$$\exists\ a_0\in A, \forall\ a \in A \mapsto a_0 * a = a * a_0 = a$$

 

D. Inverse element

군에 속한 원소에는 역원 역시 반드시 존재하게 됩니다. 이를 수학적으로 표현하면 아래와 같습니다.

 

$$\forall\ a \in A, \exists\ a_{-1}\in A \mapsto a_{-1} * a = a * a_{-1} = a_0$$

 

이 네 가지 특징을 가지고 앞서 살펴본 회전 변환을 비롯한 3차원 변환이 군을 이루는지 확인해 보도록 하겠습니다. 우선 회전 변환을 나타내는 SO(3)부터 살펴보겠습니다. SO(3)의 정의를 수식적으로 보면 아래와 같습니다.

 

$$SO(3)=\left\{\mathbf{R}\in \mathbb{R}^{3 \times 3}|\mathbf{RR}^T=\mathbf{I},det(\mathbf{R})=1 \right\}$$

 

이제 군을 만족하기 위한 네 가지 성질을 SO(3)가 만족하는지 살펴봅시다. 앞서 회전 변환을 다루며 연속적인 회전은 곱으로 표현한다고 했었습니다. 이를 통해 곱에 대한 연산에 대해 SO(3)는 닫혀있음을 알 수 있습니다. 또한, $0^{\circ}$ 회전을 임의의 회전 변환에 추가로 해준다고 해서 값이 변하지 않기에 항등원($3\times 3$인 $I$) 역시 존재하게 됩니다. 반대로 항등원인 $0^{\circ}$ 회전을 만들기 위해서는 임의의 $\theta$ 회전 변환에 대해 $-\theta$ 회전 변환을 곱해주면 됩니다. 그렇기에 역원 역시 존재함을 알 수 있습니다. 마지막으로 결합 법칙의 경우 직접 계산을 해보면 성립함을 알 수 있습니다. 결과적으로 SO(3)는 군임을 알 수 있습니다.

 

$$SE(3)=\left\{ \mathbf{T}=\begin{bmatrix}
\mathbf{R} & \mathbf{t} \\
0^T & 1 \\
\end{bmatrix} \in \mathbb{R}^{4 \times 4}|\mathbf{R} \in SO(3),\mathbf{t} \in \mathbb{R}^3 \right\}$$

 

위 식은 3차원 변환을 나타내는 SE(3)의 수학적 정의입니다. 이번에는 SE(3)가 군의 성질을 만족하는지 살펴보겠습니다. 우선 항등원은 회전 변환과 마찬가지로 아무런 변환을 하지 않은 상태($4\times 4$인 $I$)를 추가해 주면 되기에 존재합니다. 역원의 경우 앞선 포스트에서 언급한 바 있어 생략하도록 하겠습니다. 결합 법칙은 직접 곱셈을 진행해 보면 성립함을 알 수 있습니다. 마지막으로 SE(3) 역시 곱셈에 대해 닫혀있으며, 아래와 같이 확인할 수 있습니다.

 

$$\begin{equation}
  \begin{aligned}
    \mathbf{T}_{1} \cdot \mathbf{T}_{2} & = \begin{bmatrix} \mathbf{R}_{1} & \mathbf{t}_{1} \\ \mathbf{0} & 1 \end{bmatrix} \cdot \begin{bmatrix} \mathbf{R}_{2} & \mathbf{t}_{2} \\ \mathbf{0} & 1 \end{bmatrix} \\
    & = \begin{bmatrix} \mathbf{R}_{1}\mathbf{R}_{2} & \mathbf{R}_{1}\mathbf{t}_{2} + \mathbf{t}_{1} \\ \mathbf{0} & 1 \end{bmatrix} \in SE(3)
  \end{aligned}
\end{equation}$$

 

 

Lie Group


이제 우리는 SO(3)와 SE(3)가 군임을 알 수 있습니다. 그러나 이전 포스트들에서 SO(3)와 SE(3) 모두 그냥 군이 아닌 리 군에 속한다고 말했는데요. 그렇다면 Lie Group은 일반적인 군과 무엇이 다른 걸까요? Lie 군의 가장 중요한 성질은 미분 가능한 manifold에 형성된다는 점입니다. 이를 위해서는 군에 속한 모든 원소가 연속적(continuous)이어야 하며, 이는 모든 원소가 edge나 spike 없이 smooth (differentiable) manifold 내에 존재해야 합니다.

 

위 내용에 대한 완전한 의미를 파악하기란 어려운 일이지만, 우선 SLAM에서 적용을 위해 필요한 만큼만 알아보도록 합시다. 자세한 내용은 정말 잘 정리된 블로그가 있어서 링크 남기니 참고 바랍니다. Manifold의 기하학적 의미는 그 내부에 있는 임의의 점에 대해 euclidean 구조를 갖는 기하학적 공간을 의미합니다. 사실 이렇게 말해도 어렵기는 마찬가지라 예시를 들자면, 사원수에서의 제약(constraint) $|q|=1$이 사원수의 manifold를 결정하고 이는 구의 표면의 형태로 나타납니다.

 

지금까지 간단하게 Lie 군에 대해 살펴보았습니다. 그렇다면 실전에서는 Lie 군이 직접적으로 사용될까요? SLAM에서 $R, T$는 구해야 할 대상입니다. 많은 노이즈와 부정확한 알고리즘을 갖고 정답을 향해 나아가야 하는데요. 그렇기에 많은 최적화 과정을 거치며 근사하게 다가갑니다. 하지만 SO(3), SE(3) 모두 유감스럽게도 $+, -$에 대해 닫혀있지 않습니다. 또한, non-linear 하기에 계산량과 난이도 역시 높아 오버헤드가 크다는 문제가 있습니다. 이를 해결하기 위해서는 추가로 알아야 하는 테크닉이 있는데요. Lie 대수(Lie algebra)가 그 정답이며, 아래에서는 간단하게 이에 대해 설명하도록 하겠습니다.

 

 

Lie Algebra


기하학적으로 Lie 대수는 Lie 군이 형성된 smooth manifold의 항등원에서의 접평면(tangent space)입니다. 수학적으로는 매우 중요한 내용이지만 이해를 위한 사전 지식과 난도가 높아, 엔지니어로서 필요한 부분만 빠르게 짚고 넘어가도록 하겠습니다. 앞서 말한 것처럼 Lie 대수는 Lie 군에서의 연산이 가진 단점들을 해결할 수 있습니다. 우선, linear vector space(tangent space)로 존재하기 때문에 계산에 필요한 연산량과 난이도가 크지 않습니다.

 

또한, Lie 군이 가지고 있는 여러 제약 사항들을 매번 확인할 필요가 없어져 오버헤드가 크게 줄게 된다는 장점도 있습니다. 반대로 말하면 Lie 군에서 최적화를 진행한다면 iteration을 돌 때마다 군의 기본 성질과 각각의 Lie 군의 특징들 역시 만족하는지를 검증하는 과정이 필요합니다. 결론적으로 SLAM에서의 포즈($R, T$)에 대한 최적화는 Lie 군과 1대 1 매칭되는 Lie 대수에서 이루어지며, 최적화가 끝난 후 다시 Lie 군으로 변환해 최종 포즈를 결정하게 됩니다.

 

이러한 과정이 쉽게 가능한 이유는 Lie 군과 대수 간 변환이 매우 쉽기 때문인데요. 로그 변환을 통해 군에서 대수로, 지수 변환을 통해 대수에서 군으로 쉽게 변환할 수 있습니다.

 

Conversion between Lie group and Lie algebra

 

 

세 줄 요약


1. SLAM의 pose estimation에서 최적화 대상은 Lie group의 ($R, T$)이나, non-linear 하고 constraint 만족하는지 매 연산마다 확인해야 함
2. 이를 1대 1 매칭되는 Lie algebra에서 구해 다시 변환하면, linear vector space이기에 linear 하고 constraint 역시 없는 상태에서 연산 수행
3. Lie group과 algebra 간 변환은 logarithm mapping과 exponential mapping을 통해 쉽게 이루어져 실전에 사용됨

 

Reference


 

 

GitHub - gaoxiang12/slambook-en: The English version of 14 lectures on visual SLAM.

The English version of 14 lectures on visual SLAM. - GitHub - gaoxiang12/slambook-en: The English version of 14 lectures on visual SLAM.

github.com

 

728x90
반응형