이번에는 Homogeneous Coordinate에 대해 포스팅해보려고 한다.
서론
이전 게시글 2022.07.19 - [Computer Vision💖/영상처리] - [영상 Geometry] 2D & 3D Transformation(변환)에 대해 에서 2D/3D transformation에 대해 포스팅했다. 이를 통해 우리는 평행이동/회전이동 등의 rigid 변환이 linear하게 나타내질 수 있음을 알았다! 즉, Y=RX+T 형태로 말이다. 하지만 이러한 식 형태에서 +T를 해주는 대신 하나의 행렬 곱으로 나타낼 순 없을까?
당연히 나타낼 수 있다. Homogeneous Coordinate를 이용하면 된다 ~
Homogeneous Coordinate
Homogeneous Coordinate는 위 그림처럼 쉽게 말해서 (x, y)를 (x, y, 1)로 표현하는 것이다. 좀 더 일반적으로는 (x, y)를 (wx, wy, w)로 표현하는 것이라고 한다. 따라서 Homogeneous 좌표에서 원래 좌표를 구하려면 맨 끝에 scale을 1로 만든 후 마지막 숫자를 떼주면 된다. 이러한 Homogeneous 좌표는 projection 과정에서 꽤 필수적이다.
Transformation 나타내기
그럼 이러한 Homogeneous 좌표를 이용해 앞서 포스팅했던 transformation을 행렬곱으로 나타내보자. 일단 (x, y, z)를 평행/회전이동해 (x', y', z')를 만드는 상황을 가정해보자. 이러한 두 좌표들 사이를 매핑할 수 있는 함수식은 다음과 같이 나타낼 수 있다. (R은 회전행렬, T는 평행이동 행렬이다.)
위 Linear 식을 Homogeneous 좌표 표현으로 나타내면 다음과 같다.
즉, 아래 좌표를 1로 추가함으로써 R과 T를 행렬 곱으로 한번에 나타낼 수 있다는 것이다. (형태만 다른 것이지 위 linear 표현과 전개하면 완전히 같은 식이 나온다) 조금 더 예쁜 식으로 보면 아래와 같다.
이러한 식으로 표현하면, 회전이 계속 추가될 때 앞에 회전행렬을 계속 붙여가면서 계산하기만 하면 돼서 편리하게 계산할 수 있다.
References
'Autonomous Driving 🚙 > Geometry' 카테고리의 다른 글
[영상 Geometry] FOV(Field Of View)에 대해 (0) | 2022.07.20 |
---|---|
[영상 Geometry] 2D & 3D Transformation(변환)에 대해 (0) | 2022.07.19 |
[영상 Geometry] 핀홀 카메라 모델과 좌표계에 대해 (0) | 2022.07.19 |