컴퓨터 비전

[컴퓨터 비전] Lie Group

🐋 Growth Whale 2025. 3. 6. 15:43

1. Lie Group 이란?

Lie Group은 군(Group)다양체(Manifold)의 성질을 동시에 갖고 있는 수학적 구조

 

군(Group) : 어떤 연산을 해도 일정한 규칙을 따르는 대상들의 모임

- 닫힘성 (Closure) : 두 원소를 더해도 같은 집합에 존재

- 결합법칙 (Associativity) : (a + b) + c = a + (b+c)

- 항등원 (Identity element) : 연산을 해도 변화지 않는 원소가 존재

- 역원 (Inverse element) : 연산시 항등원이 되는 원소가 존재

 

다양체(Manifold) : 어떤 차원을 가진 공간이지만, 작은 영역에서 보면 유클리드 공간처럼 보이는 구조

- 즉, 국소적으로 미분이 가능한 구조를 말한다. 

 

이 두 조건을 만족하는 공간으로 연속적인 변환이 가능하고 미분 가능한 함수로 표현이 되는 그룹을 의미한다.

 

Lie Group에는 다양한 군이 있는 데 SLAM에서 중요하게 사용되는 SO(3), SE(3) 그룹이 많이 사용되는 그룹이다. 회전을 예로 들어보면 어떤 물체에 대한 회전을 행렬이나 함수로 표현하려면 연속적인 곱이 가능(Group)해야 되며, 각속도와 같은 값을 얻기 위해서 미분 가능한(Manifold) 체계가 필요하다. Lie Group의 특징은 이런 점을 만족하기 때문에 3차원 비전에서 회전을 표현할 때 주로 사용된다.

 

2. SO(3), SE(3) 이란 ?

이제 3차원 지번에서 많이 사용되는 Lie Group인 SO(3), SE(3)에 대해서 알아보자. 해당 Group은 각각 회전과 이동을 표현하는 데에 많이 사용된다. 

 

SO(3) - Special Orthogonal Group 

SO(3)는 3차원 회전을 표현할 때 주로 사용되는 Lie group 이다. 

3 x 3 회전 행렬의 집합으로 아래처럼 정의된다.

SO(3) 정의

해당 식을 하나 하나 뜯어보면서 이야기 해보자.

 

1. 직교 행렬 특징 : (회전 변화후 크기가 변화하지 않음)

 

해당 특징은 회전을 할 때, 벡터의 크기가 변하지 않는 것을 보장해주는 특징이다. 어떤 물건에 회전을 적용하면 물건의 모양이 바뀌지는 않을 것이다. 이런 특징을 반영하기 위해서 직교 행렬이 되도록 했다. 그렇다면 왜 직교 행렬이 벡터가 크기가 변하지 않는 다는 것을 보장할까?

 

회전 변화후 크기이 변화하지 않는 게 직교 행렬인 이유

 

특정 벡터 x에 회전행렬 R를 곱해서 변환된 벡터 y를 구한다고 예를 들어보자. 해당 내용은 아래처럼 표현할 수 있을 것이다. 

여기서 y 의 크기를 구하는 식을 표현하면 아래 처럼 표현된다. 

 

처음의 식을 y의 크기를 구하는 식에 대입을 하게 되면 아래와 같은 식을 얻을 수 있을 것이다. 

 

해당 식을 보면 y와 x의 크기가 같아지려면 회전 행렬 R이 직교 행렬이 되어야 만족하는 것을 볼 수 있다.

 

 

2. Determinant 가 1 인 특징 (공간의 변화하지 않음)

 

해당 특징들은 회전시 공간이 변화하지 않는 걸 의미한다. Determinant가 의미하는 건 어떤 변환이 공간의 부피, 방향을 얼마나 변환하는 지를 나타내는 것이다.

 

이 때 det(R) < 0 보다 작은 경우에는 공간의 축이 바뀌어 버린다. 

 

 

직교행렬이여도 det(R) = -1 인 경우가 있다. 이런 경우에는 공간이 반사되어서 회전이 제대로 반영되지 않는 문제를 가질 것이다. 아래의 그림을 보면 공간이 반사되어 초록색 선과 빨간색 선의 위치가 뒤바뀌는 모습을 볼 수 있다. 이런 문제를 방지하기 위해서 det(R) = 1 이 되도록 조건을 추가한 것이다. 

 

SE(3) - Special Euclidean Group 

SE(3)는 3차원 공간의 회전(Rotation)과 이동(Translation)으로 표현되는 Lie Group이다. 

수학적으로 정의하면 아래와 같이 4x4 행렬로 표현할 수 있다. 

하나 하나 보면 

 

1. R : 회전 변환을 의미하며, 3 x 3 행렬로 좀 전에 설명한 SO(3)에 속한다.

2. t : 이동 변환을 의미하며, 3 x 1 벡터를 나타낸다.

3. [0, 0, 0, 1] : 동차 좌표(Homogeneous Coordinates)로 표현하기 위해서 나타는 값. 보통 3차원 비전에서는 동차 좌표계를 사용하여 3차원 좌표를 4개의 벡터로 표현하다. 이렇게 마지막 행에 해당 값을 추가하여 회전과 이동을 단순 행렬의 곱으로 표현하기 위해서 해당 행을 추가해준다. 

 

해당 행렬을 사용하게 되면 기존 회전과 이동을 하나의 행렬 곱으로 표현가능 하게 도와주는 장점을 가지고 있다. 

 

3. 정리 

 - Lie Group :  연속적인 변환이 가능하고 미분 가능한 함수로 표현할 수 있는 Group으로, 3차원 비전에서는 회전, 이동을 표현할 때 많이 쓰인다. 

 

- SO(3) : 회전를 표현하는 3x3 행렬

- SE(3) : 회전과 이동을 표현하는 4x4 행렬

 

다음에는 Lie Group를 배우면 같이 알아야 하는 Lie Algebra에 대해서 알아보겠다.