다음은 Homogeneous coordinate와 transformation에 대해 정리해보려고 한다. 아마 한동안은 카메라 관련 게시글을 업로드하지 않을까 싶다 ㅎㅎ 그래도 블로그에 정리해보니 생각 정리가 잘 된다.
Transformation(변환)
일단 점 x를 점 x'에 매핑(매칭)하는 함수를 transformation(변환)이라고 한다. 그리고 점과 점을 매핑하는 행위를 확장하면 이미지와 이미지 사이의 매칭 관계를 모델링하는 함수를 나타내는 것이라고 이해할 수 있겠다. 아래와 같이 말이다. 이러한 정의를 잘 이해하는 것이 아래 개념이 와닿는 데에 도움이 많이 될 것 같다.
변환의 종류에는 다음과 같이 여러개의 종류가 있다. 하지만 이 게시글에서는 Translation(평행이동)과 Rotation(회전이동)에 집중하기로 한다. (이 둘을 합쳐서 크기, 각도가 보존된다는 점에서 Rigid transformation이라고 부르는 듯하다)
2D Transformation
그럼 먼저 2D에서의 변환에 대해 살펴보자. 본 게시글에서는 Rigid한 상황을 가정하고 이에 대한 변환만 살펴본다는 것을 유의하자!
2D Translation
첫 번째로 translation(평행이동)에 대해 살펴보겠다. 단순히 (x, y) 좌표를 (1, 1)만큼 움직였다고 가정해보자. 그럼 움직인 다음 좌표인 (x', y')는 그냥 (x+1, y+1)로 구할 수 있다는 사실을 직관적으로 알 수 있을 것이다. 따라서 translation은 이렇게 크기도 고정이고, 회전도 하지 않고 그냥 움직이는 것이다. 수식으로 나타내면 다음과 같다.
여기서 얼만큼 움직였는지를 더해주는 저 t 벡터를 행렬 T라고 나타낸다. 그리고 t 값은 아래와 같이 구할 수 있다. x'-x 들의 평균과 y'-y들의 평균으로 말이다.
2D Rotation
다음은 rotation(회전이동)이다. 회전이동은 각에 대한 회전이동으로, 좌표계의 원점을 기준으로 돈다. (x, y)를 원점을 기준으로 라디안(radian)만큼 회전한 뒤 점의 위치(x', y')는 다음과 같이 구할 수 있다. cos, sin으로 이루어진 회전 행렬을 곱하는 것이다.
위 회전행렬을 R이라고 보통 나타낸다.
2D Rigid Linear Transformation
위에서 소개한 평행이동과 회전이동을 하나의 선형 행렬식으로 나타내면 다음과 같다. 아래 선형 행렬식만 있다면, 어느 좌표든 평행 & 회전이동 후 다음 위치를 결정할 수 있게된다. 즉, linear form으로 항상 다음 위치 좌표(x', y')를 나타낼 수 있다는 뜻이다.
위 식을 간단히 나타내면 Y = RX + T가 된다. (회전행렬을 R, T만큼 이동했다고 할 때)
3D Transformation
다음으로는 3D transformation에 대해 살펴보려고 한다. 사실 영상처리의 관심사는 3D일 것이다. 또한 컴퓨터 비전에서 관심있는 것은 주로 rigid 변환이다. 하지만 3D라고 해서 다른게 아니라, 위 내용과 비슷하게 2D와 비슷한 원리로 해결할 수 있다.
3D Translation
2D와 마찬가지로 평행이동은 그냥 변화량 만큼 벡터를 더해주면 된다. 아주 easy!
3D Rotation
3D 변환에서 중요한 것은 회전변환이다. 사실 위에서 정의한 회전행렬은 2D 환경이기 때문에 간단했던 것이지만, 3D 환경에서는 다음과 같이 3개의 회전(Roll, Pitch, Yaw)이 존재할 수 있다. 축이 3개이기 때문!
따라서 이러한 3개의 회전을 고려해 회전행렬을 만들어 주어야 할 것임은 자명하다. 각 x, y, z축을 중심으로 라디안(radian) 만큼 회전시키는 행렬은 다음과 같다.
그리고 위 3개의 행렬을 조합하면, 임의의 3D 회전을 모두 표현할 수 있다. 하나의 회전이 3개의 축으로 decompose 되는 느낌이라고 이해하면 편하다.
3D Rigid Linear Transformation
위에서 살펴본 평행, 회전이동을 2D와 같은 방식으로 선형으로 표현할 수 있다. 이는 다음과 같다. 역시 선형적으로 표현되는 모습이다!
References
[0] https://blog.daum.net/shksjy/228
[1] https://darkpgmr.tistory.com/79?category=460965
'Autonomous Driving 🚙 > Geometry' 카테고리의 다른 글
[영상 Geometry] FOV(Field Of View)에 대해 (0) | 2022.07.20 |
---|---|
[영상 Geometry] Homogeneous Coordinate에 대해 (0) | 2022.07.20 |
[영상 Geometry] 핀홀 카메라 모델과 좌표계에 대해 (0) | 2022.07.19 |