[컴퓨터 비전] Rodrigues' Rotatoin Formula
1. Rodrigues' Rotation Formula 란?
계산이 어려운 Exponential Map
저번 글을 통해서 Lie Algebra의 적분을 Exponential Map을 이용해서 구할 수 있음을 알 수 있었다. 그럼 어떻게 Exponential Map을 수행해 3 x 3 Matrix 인 Lie Group으로 표현할 수 있을까?
Expoential Map의 정의를 알아보자. 해당 연산은 멱급수의 형태로 구성되어 있다.
컴퓨터 비전에서는 이런 계산을 한정된 자원을 가지고 있는 컴퓨터에서 계산해야 된다. 그렇기에 무한대의 덧셈으로 이루어진 식 계산도 어렵고, 또한 해당 급수는 행렬식이다. 스칼라 계산보다 더 많은 계산이 필요하는 문제를 가지고 있다.
이런 문제를 해결하기 위해서 Rodrigues's Rotation Formula가 나오게 되었다.
Rodrigues' Rotation Formula
회전축 k와 회전 각도 theta가 주어졌을 때, 회전 행렬 R은 아래와 같이 표현할 수 있다.
이렇게 계산하게 되면 컴퓨터에서 3항의 덧셈으로 Exponential Map을 계산할 수 있게 된다.
2. Rodrigues' Rotation Formula 유도 과정
이제 어떻게 Exponential Map에서 Rodrigues' Rotation Formula가 유도되는 지 알아보자
회전 축 k이고 회전 각도 theta가 있을 때, 이에 대한 Lie Group 변환식인 Exponential Map은 아래와 같다.
이 때, K는 반대칭 행렬로 변환된 것이다.
해당 행렬 지수를 급수로 표현하면 아래와 같다.
반대칭 행렬의 거듭제곱 특성
반대칭 행렬의 거듭제곱은 아래와 특징을 가지고 있다. (직접 계산하면 알 수 있을 것이다...)
이에 홀수 차수의 거듭제곱은 K에 대해서 표현이 가능하고, 짝수 차수의 거듭제곱은 K2으로 표현이 가능하다.
반대칭 행렬의 거듭제곱 특성을 이용해서 급수를 K와 K2으로 정리하면 아래와 같이 표현할 수 있다.
sin과 cos의 멱급수 표현
sin과 cos도 멱급수로 표현할 수 있는데 이를 살펴보면 아래와 같다.
이를 아까 수식에 대입하면 된다. 이 때 sin은 그대로 넣으면 되지만 cos은 살짝 다르기 때문에 아래의 수식을 대입해서 넣어주면 된다.
그럼 아래의 Rodrigues' Rotation Formula로 표현할 수 있다.
3. 정리
- Rodrigues' Rotation Formula는 Exponential Map의 계산이 어려울 걸 쉽게 계산하기 위해서 사용되는 공식이다.