Geometric Image Mappings
![](https://velog.velcdn.com/images/dbgpwl34/post/9d0cdd5d-de9a-4ae2-af76-0b09289b462d/image.png)
given 2 images
- 2개의 이미지 사이에 어떤 transformation이 일어났을까?
→ correspondence point를 찾고, SPARSE한 각각의 point를 가지고 매핑 관계를 알아내자.
![](https://velog.velcdn.com/images/dbgpwl34/post/21d86a26-061f-40a8-b77f-4a4cd0a9becf/image.png)
Translation
![](https://velog.velcdn.com/images/dbgpwl34/post/fd3f316c-27ef-4fc2-b28a-a1889a743294/image.png)
equation:
- x' = x + t'x
- y' = y + t'y
Matrix form
![](https://velog.velcdn.com/images/dbgpwl34/post/b2e551df-b9c3-4572-a19d-c6840d1b02aa/image.png)
A Simple Stereo System
- Left Camera
![](https://velog.velcdn.com/images/dbgpwl34/post/e15d3e68-6c6a-4d33-adf1-96b668060e96/image.png)
- Right Camera
![](https://velog.velcdn.com/images/dbgpwl34/post/3238e8d9-4f7c-4465-9336-6d545992955c/image.png)
- General Strategy
Least-Square estimation from point correspondences
- Two important(related) questions:
- How many degrees of freedom?
- How many point correspondences are needed?
- Example: Translation estimation
![](https://velog.velcdn.com/images/dbgpwl34/post/8894eef6-4086-4d20-a26c-31843e3ed911/image.png)
- How many degrees of freedom?
: How many independent variables are there? Two
- How many point correspondences are need?
: Each Correspondence (x, y) => (x', y') provides two equations.
DoF / 2 = 2 / 2 = 1
![](https://velog.velcdn.com/images/dbgpwl34/post/ea7144de-c283-4457-a1cd-d1bae46f7180/image.png)
수식적으로는 correspondence point pair 하나만 있으면 되지만, 여러 개의 correspondence point가 발견될 수 있다.
→ 이는 over-determined 문제를 일으킨다.
→ 그렇다면, 여러 개의 points 중 error가 가장 적은 point를 사용해야 할 것이다.
![](https://velog.velcdn.com/images/dbgpwl34/post/32309292-3c3b-4d55-a9aa-6b478a43302b/image.png)
우리가 correspondence points를 찾아 추정하기 위한 transformation들은, 이 transformation group에 속해야 한다는 전제가 있다.
1. The set is closed under operator .
_A ∈ G and B ∈ G → A B ∈ G
2. There exists an identity element I such that
_A I = I A = A
3. Each element A has an inverse A^-1 such that
A^-1 A = A A^-1 = I
Why does it matter?
Grous are very well-behaved. When doing computations with groups we can freely compose transformations and assume inverses exist.
![](https://velog.velcdn.com/images/dbgpwl34/post/741ae607-9bf9-4a21-94dc-9678d861076b/image.png)
T'1과 T'2 transformation을 했다. T'1^-1, T'2^-1를 통해 state3에서 state2를 거쳐 state1으로 역추적했다. 이를 T'1^-1 * T'2^-1를 통해 한 번에 transformation estimating할 수 있다. 이렇게 composition을 통해서 state1으로 돌아갈 수 있다면, 이 transformation은 closed하다고 이야기한다.
Overview
아래 그림에 존재하는 transformation이 transformation group에 속하는 transformation의 전부다.
![](https://velog.velcdn.com/images/dbgpwl34/post/2ae5d74b-d15f-45be-b7de-c4a5edc5ef6b/image.png)
- Euclidean: rigid transformation(translation + rotation)
- similarity: rotation + translation + scaling
- affine: rotation + translation + 부분적으로 scaling
- projective: 3D to 2D transformation
Scale
![](https://velog.velcdn.com/images/dbgpwl34/post/c8b80f1f-4d2c-44d0-88fe-718bb23a45cf/image.png)
scaling은 좌표축 전에에 있는 것들을 전부 scale한다는 의미임. 그래서 원하는 일을 못할 수도 있는데, 정확히 내가 원하는 만큼 크기를 키우고 싶다면, 원점으로 이동시켜준 뒤에 scaling 진행해야 함.
위 matrix form을 확인해보면, scalability가 같아야 하므로 동일하게 s를 곱해주는 것을 확인할 수 있음.
- DoF: 1
- 구하기 위한 최소 correspondence point pair: 1
Rotation
![](https://velog.velcdn.com/images/dbgpwl34/post/8d1b440b-afda-4886-b351-fac2cd01d31a/image.png)
- 2차원
- DoF: 1
- 구하기 위한 최소 correspondence point pair: 1
- 3차원
- DoF: 3
- 구하기 위한 최소 correspondence point pair: 1 (← 하나의 point pair에 3개의 좌표가 나오므로)
![](https://velog.velcdn.com/images/dbgpwl34/post/8c686b6b-fad6-4dd9-8a74-eae6d05c5686/image.png)
- DoF: 3
- 구하기 위한 최소 correspondence point pair: 2
Partitioned Matrices
![](https://velog.velcdn.com/images/dbgpwl34/post/2db600ce-7708-4b83-aeac-9f5b8ed12352/image.png)
Similarity (scaled Euclidean)
![](https://velog.velcdn.com/images/dbgpwl34/post/a3174c8c-07d4-4f9d-839d-75b8fceea683/image.png)
여기에서는 similarity transformation한 p와 p'를 잘 설명하는 parameter를 찾아도 끝이 아니다. 그러한 parameter를 가지는 θ를 찾아야 함.
- DoF: 4 (x, θ, t'x, t'y)
- correspondence point pair 최소 2개 필요
Affine
![](https://velog.velcdn.com/images/dbgpwl34/post/58222bd7-817f-440c-8d7e-30a15a1dfcc6/image.png)
affine은 A와 b에 아무 값이나 다 들어갈 수 있다. 단순히 p'와 p를 잘 설명하는 A와 b를 찾기만 하면 된다.
- DoF: 6
- correspondence point pair 최소 3개 필요
Projective
![](https://velog.velcdn.com/images/dbgpwl34/post/c59a28d3-a9dd-4e8f-9214-07f53d9110a2/image.png)
matrix form에서 ~인 이유: scale값은 변형됨. 사실상 scale이 의미 없이 proportional하기 때문
3차원이라면 unknown parameter 15개
- DoF: 8
- correspondence point pair 최소 4개 필요
- Euclidean: rotation + translation
- Similarity: rotation + translation + scaling
- Affine: rotation + translation + aspect ratio + skew
- Projective: rotation + translation + aspect ratio + skew + perspective wrap
![](https://velog.velcdn.com/images/dbgpwl34/post/1b1ebf0b-b508-468c-9e13-744c537d7833/image.png)