티스토리 뷰
Euclidean coordinate vs Homogeneous coordinate
(평행이동 변환 예시)
유클리드 좌표 상 2차원의 한 point는 실수 쌍 (x, y)로 표현된다.
Homogeneous 좌표는 쉽게 말해 하나의 좌표를 추가해 (x,y,1) 와 같이 표현하는 것이다.
homogeneous 좌표에서 scale은 무시되기에
(x,y,1)과 (2x,2y,2)는 같은 point를 의미하며 더 나아가 (kx,ky,k) 또한 같은 point를 표현한다.
때문에 역으로 유클리드 좌표를 구하기 위해서는 (x,y,w) 형태의 좌표를
끝 자리 수인 1로 나누어 (x/w,y/w,1) 형태로 만들고 유클리드 좌표인 (x/w,y/w)를 도출할 수 있다.
이처럼 2차원 공간에 대한 좌표를 투영(사영) 공간(projective space)?으로 확장시킬 수 있따.
유클리드 공간
2차원 투영(사영) 공간의 무한대에 있는 point는 line을 형성함을 알 수 있다. (이는 line at infinity 로 불린다.)
3차원 공간에서는 평면을 형성할 것이다.
컴퓨터 비전에서 투영(사영) 공간은 실제 세계를 표현하는 방법으로 사용된다.
이미지에서는 실제 세계를 2차원으로 투영함으로써
평행이동 변환은 유클리드 좌표계에서 행렬로 표현하기 어렵지만 Homogeneous 좌표계에서는 행렬로 표현할 수 있다.
2차원의 한 point를 예시로 들면 유클리드 좌표에서는 (x,y), Homogeneous 좌표에서는 (x,y,1)이라 할 수 있다.
동차 좌표에서 평행이동을 행렬곱으로 표현할 수 있고 평행이동 행렬은 다음과 같다.
Homogeneous coordinate에서의 직선의 방정식
일반적으로 직선의 방정식은 ax+by+c=0 으로 나타낼 수 있다.
homogeneous좌표에서 직선은 2차원 동차 좌표계에서 직선은 ax+by+cw=0 이며
좌표(x,y,w)가 만족해야하는 직선인 것이다.
혹은
이와 같이 직선을 표현하면 아래처럼 두 직선의 교차점 등의 연산을 할 수 있다.
- 두 직선의 교차점
두 직선의 교차점은 다음과 같이 구할 수 있다.
X 는 벡터의 외적을 의미하며 두 직선의 cross product를 구하면
이유는
- 두 점을 지나는 직선
반대로 두 점을 지나는 직선은
두 점의 cross product로 구할 수 있다.
- 무한대 점
유클리드 좌표계로 변환할 때 w로 나누는데 이 경우에는 무한대로 가기때문에
유클리드 좌표에서 무한대에 위치한다고 볼 수도 있다.
예를 들어서 평행선의 교차점을 외적을 통해 구할 때
위와 같은 무한대의 점이 나오게 되는데 평행선은 무한히 먼 곳에서 교차한다고 해석할 수 있다.
핀홀 카메라 모델
핀홀 카메라 모델은 카메라의 이미지 형성과정을 단순화한 모델로
3차원 공간의 점을 이상적인 핀홀 카메라의 이미지 평면에 투영하는 수학적 관계를 설명한다.

이해를 위한 구성으로는
- 핀홀: 빛이 통과하는 구멍으로 모든 빛이 해당 점(핀홀)을 지난다.
- 이미지평면: 빛이 핀홀을 통과해 이미지가 형성되는 평면이다.
- 초점거리(focal length): 핀홀과 이미지 평면 사이 거리이다.
가 있다.
핀홀카메라 모델은 이상적인 모델이기에 실제 세계에 적용하기에는 한계가 있다.
- 실제 카메라는 렌즈를 사용하지만 이 모델에는 렌즈가 없어 왜곡을 고려하지 않는다.
- 핀홀이 작으면 빛의 회절이 발생하지만 이를 무시한다.
- 초점 거리가
- 카메라 투영 과정
- Euclidean coordinate
핀홀(centre of projection)을 유클리드 좌표계의 원점이라 생각해보자.
보통 생각하는 핀홀 카메라는 핀홀을 지나 상이 거꾸로 맺히지만
image plane을 광선이 초점을 지나기 전에 위치시켰다.
때문에 아래 그림처럼 반전이 되지 않은 상으로 생각할 수 있다.


우리에게 익숙한 유클리드 좌표계로 생각한다면..
3차원 공간의 점(X,Y,Z)은 image plane의
이렇게 유클리드 3차원 공간
The centre of projection is called the camera centre. It is also known as the optical
centre. The line from the camera centre perpendicular to the image plane is called the
principal axis or principal ray of the camera, and the point where the principal axis
meets the image plane is called the principal point. The plane through the camera
centre parallel to the image plane is called the principal plane of the camera.
- Homogeneous coordinate
3차원에서 2차원으로 투영을 효과적으로 계산하기 위해서 homogeneous coordinate를 도입한다.
2차원은 z축이 추가되어 3차원 벡터 형태처럼 보이며, 3차원 벡터에도 한 차원을 추가한다.

동차 좌표계 (Homogeneous Coordinates)를 사용하면
행렬곱을 통한 선형 매핑으로 매우 쉽게 표현할 수 있다.
가장 기초적인 핀홀 카메라 모델은 다음과 같은 행렬곱으로 쓸 수 있다.
3차원에 2차원으로의 투영을 다음과 같이 표현할 수 있다.
이를
p 점이 축에 있지 않다면?
- 처음 핀홀카메라를 설명할 때 이미지 평면의 원점과 카메라 핀홀(원점)이 같은 축에 있다고 가정했다.
하지만 아래 사진처럼 p 점이 에 위치한다면?
즉 카메라 좌표계와 이미지평면의 좌표계가 다르다.


camera matrix의 일반화
또한 실세계(World) 좌표와 카메라 좌표가 다르기 때문에 변환이 필요하다.
- 기존의
에서 이 아닌 으로 볼 수 있다. - 즉 우측 World 좌표에서의 좌표를 회전과 이동 변환으로 카메라 좌표축으로 변환하고
투영 matrix가 필요하다. 으로 나타낼 수 있으
- 즉 ①카메라, ②이미지, ③월드 좌표계가 다른 것을 전부 고려하면 다음과 같은 식을 도출해낼 수 있다.
- 다시 보면 matrix
이 image to image Transformation을 수행하며 내부 파라미터(intrinsic parameter)라 한다.
외부 파라미터 extrinsic parameter
내부파라미터 뒤에 있는 행렬은 다음과 같이 쓸 수도 있다.
카메라 파라미터 K[R|-RC] 는
여기서 외부 파라미터 행렬(3 x 4)는
Calibration (DLT, Zhang’s method)
카메라의 파라미터를 구하는 과정을 Geometry Calibration이라 한다.
예를 들어 점들의 집합
각
필요한 변수의 수
matrix H를 구하기 위해 필요한 대응점
DoF(Degrees of Freedom) 자유도라고 부르며 Transform 시 필요한 독립변수의 수
translation 의 DoF는 2
이동 후 회전 3
이동,회전,축소 4
affine 6
projective 8
2차원 변환은 8의 자유도를 가진다. 첫 번째 점은 두번 째 이미지에서 자유도 2를 가진다? 때문에 H를 결정하려면 4개의 점 대응이 필요하다
- Direct Linear Transformation (DLT)
각 대응점 (
카메라 투영 행렬 3 x 4 크기로
여기서 i~n 까지 모든 대응점을 넣고 결합하면
행렬 A에 SVD를 적용하여
V의 마지막 열이 최소 특이값에 대응하는 해
SVD(Singular Value Decomposition)
특이값 분해 방법?
m x n 행렬 A가 있을에서 U (m x m)와 V (n x n)는 직교행렬이고 (m x n)대각행렬이다.
때문에 Ax는 x를에 의해 회전시키고, 로 스케일을 조정한 다음, 다시 U로 회전시키는 것이다. 의 고유벡터가 V의 열벡터 의 고유벡터가 U의 열벡터
고유값의 제곱근이의 특이값이다.
V의 마지막 열이에서 0에 가장 가까운 특이값에 대응한다.
구한 행렬
그러면
이전에 설명했다시피 R은 rotation matrix이고
QR 분해로
- QR분해란?
[선형대수] Gram-Schmidt process와 QR 분해
컴퓨터 비전에서 DLT를 수행하기 위해서는 QR 분해가 뭔지 알아야 하더라.. 그래서 공부해본다.QR 분해 A=QR 에서 Q는 A의 열벡터의 그람 슈미트 정규직교화Gram-Schmidt orthonormalization, R은 A의 열벡터의
studentstory.tistory.com
2차원에서 2차원으로의 대응에서
변환은
(같은 벡터가 아닌 방향이 같은 것이다)
matrix H 를 다음과 같이 표기할 수도 있다.
이때 조금 헷갈리는데
때문에
1. 방정식 설정
~ 이므로 ??? 다음과 같은 세 개의 방정식을 얻을 수 있다.
앞의 행렬은 3 x 9 행렬이고
방정식이 세 개지만 두 개만 선형 독립이기에 H 원소에 대한 방정식 두 개를 얻을 수 있다. 이후 방정식은 다음과 같다.
이 행렬은 2 x 9 크기를 가지며 matrix
2. 해법
점 대응쌍 네 개에서 연립방정식을 풀어야하며 trivial sol. 인
- 위 처럼 행렬
를 만든다. - 대응되는 쌍이 n개라면 n개의 2 x 9 행렬
를 모아 하나의 2n x 9 행렬 A를 만든다. - A의 SVD를 구한다. 가장 작은 특이값에 해당하는 단위 특이 벡터가 해
가 된다.
( 이며 는 마지막 행이다??? 에서 행렬로 재구성한다.
- Zhang’s method
앞서 DLT에서는 내부 파라미터와 외부 파라미터 모두 구할 수 있었다.
이번에 알아볼 Zhang's method에서는 5개의 파라미터만 구할 수 있다.
이 방법에서는 체커보드를 이용해 캘리브레이션을 진행하는데 체커보드 평면을 z=0인 평면이라 가정한다.
때문에 체커보드 위의 모든 point의 z좌표가 0이며 외부파라미터 matrix의 3번째 열을 삭제할 수 있다.
이 식을 해결하기위해 DLT와 같은 과정으로 matrix를 추정한다.
각 point 당 2개의 선형방정식이 만들어지기에 파라미터를 추정하기 위해서는
최소 4개의 point가 필요하다.
DLT 방법처럼 파라미터를 구하고 마찬가지로 분해를 해야 3 x 3 행렬 K를 알아낼 수 있다.
방법은 우선 H=K[r1, r2, t] 형태에 K^{-1} 을 곱한다.
r1 r2는 orthonormal basis 이므로 아래 식을 만들 수 있다.
r1과 r2의 크기가 1이므로
이 식들에서
Vb=0 을 구성하고 이를 구하기 위해 여러 이미지가 필요하다.
여러 이미지로 해당 식을 구성하고 Trivial sol을 갖지 않도록 b의 크기가 1이라는 조건을 추가한다.
현실에서 측정에서 노이즈를 최소화하기 위해 square 에러를 최소화 하는 해를 찾아야한다.
이는 다음과 같다.
b*= arg min ||Vb|| with ||b||=1
DLT와 같이 풀고 B를 얻은 후 내부 파라미터를 구할 수 있다.
'Computer Science > vision&ai' 카테고리의 다른 글
스테레오 비전 stereo vision 개념 및 활용 (0) | 2025.03.02 |
---|
- Total
- Today
- Yesterday
- 티스토리챌린지
- 배송기간
- 알뜰폰요금제
- mealy
- 알뜰 요금제
- 계산방법
- 알리익스프레스
- a모바일
- 경북대
- 타란튤라
- 북문
- 카카오페이
- f-94w
- 10만포인트
- 맛집
- 교체
- 오블완
- 방어동작
- 문서 스캔
- Liiv M
- 할인
- 시계 줄
- 리브엠
- 방향장
- 카시오
- 네이버페이
- 파스타
- f-91w
- 리브모바일
- 메쉬 밴드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |