경희대학교 황효석 교수님의 2021-1학기 로봇 프로그래밍 수업을 듣고 공부한 것입니다.
Homogeneous Coordinate (Homogeneous 좌표) 는 주로 컴퓨터 비전이나 3D 그래픽스에서 많이 쓰입니다.
수학에서는 유클리디안 좌표계를 쓰지만, 영상이나 SLAM 에서는 projective 좌표계 (사형 좌표계) 를 사용합니다.
카메라는 projective (투영) image 를 만들어 내는 것입니다. 투영하게 되면 차원의 축소가 일어납니다. 3차원 공간에서는 2차원밖에 sensing 을 할 수 없습니다.
이것은 차원을 확장하여 표현하는 방식입니다.
(3,4) 라는 점이 있을때 Homogeneous Coordinate 에서는 [3,4,1] 로 나타낼 수 있다.
(3,4,1) 과 (6,4,2) 는 에서 같다.
Homogeneous 는 동차라는 뜻으로,
람다 배 한 것을 다 동일하게 취급하겠다는 뜻입니다.
3차원 상에서 z 값이 1인 plain 을 image plain 이라고 하면, 2차원 상에 있는 어떤 점은 3차원 상에서의 하나의 벡터로 표현이 되고, 이 벡터라고 하는 것이 어디에서 오던지 간에 동일한 위치에 투영된다고 하는 것입니다.
카메라가 있을 때 1m 앞에 지름 50cm 동그라미, 2m 앞에 지름 70cm 동그라미가 다 동일한 사진으로 찍힌다는 것과 같습니다.
같은 선 상에 있는 점은 다 같은 위치에 투영되기 때문에 다 같은 값으로 봅니다.
2차원에서 Homogeneous Coordinate 을 사용하는 이유가 실제로는 3차원이기 때문인 것과 다르게,
3차원에서 Homogeneous Coordinate 를 사용해 4차원으로 바꾸는 것은
계산이 쉬워지기 때문입니다.
기존 방법의 경우 rotation 과 translation 을 한 번에 할 수 없고 각각 따로 분리시켜서 해 줘야 합니다.
그런데 Homogeneous Coordinate 의 경우 한 번에 rotation 과 translation 을 할 수 있습니다.