동차 좌표
일반 좌표에 스케일 성분을 추가하여, 같은 점으로 투영되는 좌표들을 하나의 표현 체계 안에서 다루는 방법.
가정
컴퓨터 비전에서 카메라 영상은 3차원 공간의 점을 2차원 이미지 평면에 투영한 결과.
투영 과정에서는 서로 다른 3차원 점들이 같은 이미지 점으로 보일 수 있음. 예를 들어 카메라 중심에서 이미지 평면의 한 점을 지나는 투영선 위의 모든 점은 이미지에서는 같은 점으로 나타남.
동차 좌표는 이런 투영 관계를 다루기 위해 좌표에 스케일 값을 하나 더 붙여 표현함.
2차원 점의 경우:
3차원 점의 경우:
즉, 동차 좌표에서는 스케일이 달라도 같은 점을 나타낼 수 있음.
Homogeneous Coordinates
일반적인 2차원 좌표 는 동차 좌표로 다음과 같이 표현할 수 있음.
하지만 동차 좌표에서 마지막 성분은 실제 좌표축이 아니라 스케일을 나타내는 보조 성분. 따라서 다음 좌표들은 모두 같은 2차원 점을 의미함.
일반적으로 동차 좌표가 다음과 같을 때,
이면 실제 2차원 좌표는 마지막 성분으로 나누어 얻음.
즉, 동차 좌표를 일반 좌표로 바꾸는 과정은 마지막 성분이 이 되도록 스케일을 정규화하는 과정.
3차원 좌표도 같은 방식으로 표현됨.
그리고 일반적인 동차 좌표는 다음과 같음.
이면 실제 3차원 좌표는 다음과 같이 복원됨.
Projection
동차 좌표가 투영과 연결되는 이유는 같은 이미지 점으로 투영되는 점들의 집합을 자연스럽게 표현할 수 있기 때문.
정규 이미지 평면 위의 한 점을 다음과 같이 두자.
이 점의 동차 좌표 표현은 다음과 같음.
카메라 좌표계에서 보면, 카메라 중심과 이 점을 잇는 투영선 위의 3차원 점들은 다음과 같이 표현됨.
여기서 는 카메라 중심에서 해당 점까지의 스케일 또는 깊이 방향 거리로 볼 수 있음. 즉, 가 달라져도 이미지 평면에서는 같은 점 로 투영됨.
따라서 카메라 좌표계의 3차원 점이 다음과 같을 때,
이미지 평면으로의 투영은 마지막 성분으로 나누는 형태가 됨.
반대로 이미지 평면의 점 에서 출발하여 그 점으로 투영될 수 있는 3차원 점들을 표현하면 다음과 같음.
즉,
- 동차 좌표에서 마지막 성분으로 나누는 과정은 projection
- 이미지 점에 임의의 스케일을 곱하는 과정은 inverse projection
Matrix Representation
동차 좌표를 사용하는 중요한 이유는 이동, 회전, affine 변환, perspective 변환을 하나의 행렬 곱으로 표현할 수 있기 때문.
2차원 affine 변환은 다음과 같이 쓸 수 있음.
일반 좌표만 사용하면 이동 는 행렬 곱 안에 넣기 어렵지만, 동차 좌표에서는 마지막 성분 을 이용해 이동까지 하나의 행렬로 처리할 수 있음.
3차원 카메라 좌표 변환도 같은 방식으로 표현됨.
- : 회전 행렬
- : 이동 벡터
- : 회전과 이동을 합친 외부 행렬
Perspective 변환도 동차 좌표 형태로 표현한 뒤 마지막 성분으로 나누어 실제 좌표를 얻음.
여기서 는 2차원 평면 사이의 projective 변환을 나타내는 행렬로 볼 수 있음.
Projective Geometry
동차 좌표는 사영 기하학(projective geometry)에서 사용하는 좌표계. 그래서 동차 좌표를 projective coordinate라고도 부름.
사영 기하학은 투영 변환에서 유지되는 기하적 성질을 다루는 기하학. 컴퓨터 비전에서는 주로 3차원 공간의 점들이 2차원 이미지 평면에 투영되는 상황과 연결됨.
유클리드 기하학에서는 길이, 각도, 평행성과 같은 개념이 중요함. 하지만 3차원 장면을 2차원 이미지로 투영하면 다음 성질들은 일반적으로 보존되지 않음.
- 길이
- 각도
- 평행성
반면 다음 성질은 투영 후에도 의미 있게 유지됨.
- 점은 점으로 투영됨
- 직선은 직선으로 투영됨
- 점이 직선 위에 있다는 포함 관계는 유지됨
평행성이 보존되지 않는다는 점은 이미지에서 소실점(vanishing point)으로 나타남. 실제 3차원 공간에서는 평행한 직선들이 만나지 않지만, 이미지에서는 한 점으로 모이는 것처럼 보일 수 있음.
동차 좌표에서는 무한대의 점도 유한한 좌표로 표현할 수 있음. 예를 들어 방향의 무한대 점은 다음과 같이 표현됨.
마지막 성분이 이면 일반 좌표로 복원할 수 없지만, 사영 기하학에서는 이것을 특정 방향의 무한원점으로 해석함.
Line Representation
2차원 직선의 일반적인 방정식은 다음과 같음.
동차 좌표 를 사용하면 직선 방정식은 다음과 같이 표현됨.
직선을 벡터로 표현하면 다음과 같음.
점을 동차 좌표로 표현하면 다음과 같음.
그러면 점 가 직선 위에 있다는 조건은 내적으로 간단히 표현됨.
즉,
Cross Product
동차 좌표에서는 직선과 점 사이의 관계를 외적(cross product)으로 계산할 수 있음.
두 직선 , 의 교점은 다음과 같음.
왜냐하면 외적 결과는 두 벡터 , 에 모두 수직이기 때문. 따라서 다음 조건을 동시에 만족함.
이는 점 가 두 직선 위에 모두 놓인다는 뜻.
반대로 두 점 , 를 지나는 직선은 다음과 같이 구할 수 있음.
즉,
- 두 직선의 교점:
- 두 점을 지나는 직선:
두 직선이 다음과 같다고 하자.
그러면 교점의 동차 좌표는 다음과 같음.
마지막 성분이 이 아니면 실제 교점은 다음과 같이 얻음.
마지막 성분이 이면 일반적인 유클리드 좌표로는 교점이 없음. 이 경우 사영 기하학에서는 두 직선이 무한대에서 만난다고 해석함.
핵심 정리
동차 좌표는 일반 좌표에 스케일 성분을 추가한 표현. 스케일이 다른 동차 좌표라도 마지막 성분으로 나누었을 때 같은 일반 좌표가 되면 같은 점을 나타냄.
카메라 기하학에서는 하나의 이미지 점이 하나의 3차원 점이 아니라 투영선 위의 모든 점에 대응됨. 동차 좌표는 이 관계를 처럼 자연스럽게 표현함.
또한 동차 좌표를 사용하면 이동과 투영을 행렬 곱으로 통합할 수 있고, 직선과 점의 관계도 , , 처럼 간단하게 다룰 수 있음.