
(멀티플 뷰 지오메트리) Lecture 6. Single view metrology
2022, Apr 20
- 참조 : https://youtu.be/D6Pm5id_LK4?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
- 참조 : https://youtu.be/XSflleJr4qM?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
- 참조 : https://youtu.be/9TuPY67JBpo?list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz
- 참조 : Multiple View Geometry in Computer Vision

















- 이번 챕터의 이름은
The Importance of the Camera Centre
로 카메라 센터점에 관하여 다룹니다. - 앞에서 다룬
cone
은 이상적인 기하 형태의cone
을 나타내므로 하나의 꼭지점과 매끈한 면을 가진을cone
을 생각하게 할 수 있습니다. - 반면 위 슬라이드에서 보여주는 형태의
cone
은 실제 이미지가 형성되는 형태와 연관되어 있습니다. - 카메라 센터점 CC 를 꼭지점으로 시작하여
ray
를 쏘았을 때, 형성되는cone
과 같은 형태를 위 슬라이드에서는cone of rays
라고 표현하며 위 슬라이드의 그림과 같습니다.cone of rays
는 실제object
가 존재하는 위치 까지 형성됩니다. - 이 때, 이미지는
cone of rays
에서 어떤 위치에 어떤 방향으로 교차하도록 평면을 위치시키면ray
들이 평면에 투영되는 데, 그 결과를 이미지 라고 볼 수 있습니다. - 위 슬라이드에서 표시된 것 처럼 같은
cone of rays
에 표시되어 있으나focal length
의 차이를 통하여 물체를 점점 더 확대하여 표현할 수 있음을 보여줍니다.

- 같은 카메라 센터점을 통하여 얻어진 이미지들은 어떤 평면에서 다른 평면으로의
projective transformation (Homography)
관계를 가집니다. 예를 들어 이전 슬라이드에서 집 형태의 물체를 다양한 위치 및 방향으로 평면을 집어 넣어서 조금씩 다른 형상의 집 형태의 상이 맺히도록 이미지를 형성하였습니다. - 이 때, 서로 다른 형태의 집은
projective transformation
관계를 가지게 되고 그 관계만 알 수 있다면 같은 형태로 만들 수 있습니다.projective transformation
관계이기 때문에line
은 그대로line
으로 유지됩니다. - 서로 다른 평면의 이미지 간에는
projective transformation
관계를 가지므로projective properties
는 유지 됩니다. 이와 관련된 속성으로는incidence
,cross ratio
,conic section
이 있습니다. (이전 글에서 다룬 내용입니다.)incidence
는 2개의 점이 하나의 선에 있었다면projective transformation
을 하더라도 2개의 점은 같은 하나의 선에 있다는 것입니다. 즉, 선은 그대로 선으로 유지됨을 의미합니다.cross ratio
: 4개의 동일 선상에 존재하는 점들 간의 거리 비율은projective transformation
을 하더라도 유지됨을 의미합니다.conic section
: 어떤 이미지 상에서의conic section
은projective transformation
을 하더라도conic section
으로 유지된다는 점입니다. 물론 어떤 변환 관계인 지에 따라서 다른 형태의conic section
이 됩니다.

- 같은 카메라 센터점에서 촬영한 2개의 이미지 II 와 I′ 에 대하여
projective transformation
즉,homography
관계를 가짐을 앞에서 살펴보았습니다. 이번 슬라이드에서는 이 부분에 대하여 좀 더 수식적으로 살펴봅니다. - 위 슬라이드에서 K 는
intrinsic parameter
( 3×3 크기의 행렬)을 의미하고 R 은extrinsic parameter
( 3×3 크기의 행렬)을 의미합니다. −˜C 는 원점에서 카메라 중점 까지의 거리를 나타냅니다. (translation
의미로 이 부분도 이전 강의에서 다루었습니다.) - 같은 카메라 중점을 고려하기 때문에 P 와 P′ 모두 −˜C 을 사용하였습니다. 나머지 K,R 은 서로 다른 카메라를 고려하였기 때문에 K,R 과 K′,R′ 로 구분하였습니다.
- 이미지에 표현된 3D 공간 상에서의 점 X 는 위 슬라이드에 있는 식을 통하여 2개의 카메라에서 다음과 같은 관계로 표현됩니다.
- x′=P′X=(K′R′)(KR)−1PX=(k′R′)(KR)−1x
- 따라서 앞에서 언급한
homography
H 는 H=(K′R′)(KR)−1 로 정의할 수 있습니다. - 3D 공간 상의 점들을 변환하는 관계이지만 2D 이미지 상에서 변환이 발생하므로
planar homography
라는 용어로 표현합니다.

- 이번 슬라이드에서는
focal length
의 증가에 따라서 이미지 평면에서의 변화와 관련된 내용을 다룹니다.


- 슬라이드의 K′K−1 의 행렬에서 (1−k)˜x0 가 사용된 이유를 살펴보면 다음과 같습니다.

- 위 그림과 같이 ˜x0 는
principal point
를 뜻하고magnification factor
인 k=f′/f 가 됩니다. - 위 그림에서 ˜x′ 는 다음과 같이 정의할 수 있습니다.
- ˜x′=f′f(˜x−˜x0)+˜x0=f′f˜x+(1−f′f)˜x0=k˜x+(1−k)˜x0
- 따라서 ˜x′=k˜x+(1−k)˜x0 로 표현할 수 있음을 확인하였습니다. 즉, I 이미지에서의 점 ˜x 를 I′ 이미지의 점 ˜x′ 로 변환하기 위해서는 k 배를 한 후 (1−k)˜x0 만큼 이동해 주면 됩니다.
- 이 내용을 이미지의 u,v 방향에 대하여 모두 적용해 주면
focal length
의 차이를 반영하는 행렬 K′K−1 은 다음과 같이 정의할 수 있습니다.
- K′K−1=[k0(1−k)cx0k(1−k)cy001]=[kI(1−k)˜x00T1]




- 이전 강의에서는 카메라의 센터점이 동일한 상태에서의 서로 다른 상태로 취득한 이미지에 대하여
homography
를 이용하면 이론적으로 이미지들을 서로 복원할 수 있음을 확인하였습니다. - 이번 슬라이드에서 부터는 그 이론적인 내용을 이용하여 적용할 수 있는 대표적인 Application인
Synthetic Views
와Planar Panoramic Mosaicing
입니다.
- 먼저
Synthetic Views
는 위 그림과 같이source image
로 부터planar homography
를 이용하여 새로운 형태의target image
로 생성하는 것을 의미합니다.planar homography
를 이용한 이미지 변환은 카메라 센터점은 고정한 상태에서 카메라의 촬영 방향을 변화하는 효과를 줄 수 있도록 할 수 있습니다. planar homography
는 3 x 3 크기의 행렬로 어떤 이미지의 점들을 다른 이미지의 점들로 변환할 수 있도록 하며 3 x 3 행렬의 성분을 통하여rotation
,translation
,scale
및perspective distortion
이 이미지 변환 시 어떻게 바뀌는 지 설명해 줄 수 있습니다.systhetic view
를 생성하기 위해서는 기본적으로 다음의 절차를 따릅니다.- ①
source image
와target image
에 서로 대응되는 (같은 위치를 가리키는) 점들을 확인합니다. - ② 이 점들 쌍을 이용하여
homograpy matrix
를 계산합니다. - ③
homography
를 적용하여source image
를target image
로 생성합니다. (synthetic view
)

- 앞에서 설명한 바와 같이
source image
에서 임의의 사각형을 지정하고target image
에서 이 사각형이 어디에 위치해 있는 지 알 수 있으면homography
를 계산할 수 있습니다.homography
를 계산하는 일반적인 방법은source image
와target image
에 대응되는 점들의 쌍을 선형 방정식의 해를 푸는 방식으로 구합니다. 자세한 내용은 아래 글을 참조하시면 됩니다.
- 이와 같은 방법은 통해 H 를 구하면
source image
에서 x 점을target image
에서 x′=Hx 로 변환할 수 있으며 필요한 영역의 모든 점을 이와 같이 변환하면 필요한 영역의 이미지를 구할 수 있습니다. 이와 같은 작업은warping
이라고 하기도 합니다.




- 이번에는 카메라 캘리브레이션을 통해 어떤 정보를 얻을 수 있는 지 살펴보도록 하겠습니다.
- 이전 강의에서 다루었듯이 카메라 캘리브레이션을 통하여 카메라의
intrinsic
와extrinsic
파라미터를 얻을 수 있었고intrinsic
파라미터를 통해focal length
,optical center
,lens distortion
등을 구할 수 있으며extrinsic
파라미터를 통하여 카메라와 world의 관계를 구할 수 있었습니다. - 이전 강의에서는 이와 같은 의미를 가지는
intrinsic
과extrinsic
파라미터를 이용하여 2D 이미지와 3D 공간 상의 정보를 변환하는projection matrix
를 구하여 사용하였고 이 행렬은 3×4 크기를 가졌습니다. 또한projection matrix
를 역으로 분해를 하면intrinsic
과extrinsic
을 구할 수 있었습니다.
- 위 슬라이드에서의 ˜X=λd 는 카메라 좌표계 상의 3D 점을 의미하고 d 는 카메라 센터점으로 부터 뻗어나가는 방향 벡터에 해당하며 λ 는 그 방향의
depth
를 의미합니다. - 위 슬라이드의 x=K[I|0](λdT,1)T=Kd 식은 카메라 좌표계의 3D 포인트가 어떻게 2D 이미지에 투영되는 지 나타냅니다. 여기서 K 는 카메라
intrinsic
파라미터이고 [I|0] 은extrinsic
파라미터를 나타내며 여기서는 world의 원점에서 간단히z
축을 바라보는 카메라를 의미하도록 하여 간략하게 나타내었습니다. - 식 d=K−1x 를 통하여 이미지의 점 x 는 다시 d 벡터로 나타낼 수 있으며 이와 관련된 내용은 앞선 강의에서 다루었습니다.
homogeneous
좌표계로 나타내고 있기 때문에 d 는 반드시unit vector
일 필요는 없으며 scale은 달라질 수 있습니다. - 정리하면 카메라 캘리브레이션 정보는 2D 이미지와 3D 공간 상의 정보를 연결해 주는 역할을 하고 있으며 이 정보는 다양한 task에 사용될 수 있습니다.

- 2D 이미지의 두 점 x1,x2 는 d1=K−1x1 과 d2=K−1x2 로 변형하여 두 벡터 간의 사이각을 구할 수 있습니다. 다음과 같습니다.
- cosθ=dT1d2√dT1d1√dT2d2=(K−1x1)T(K−1x2)√(K−1x1)T(K−1x1)√(K−1x2)T(K−1x2)=xT1(K−TK−1)x2√x1(K−TK−1)x1√xT2(K−TK−1)x2
- 이 방법은 두 카메라 간의 상대적인
pose
를 구하거나multiple view
를 고려한 3D 점의triangulation
을 구할 때 사용되곤 합니다.

- 카메라 캘리브레이션을 통하여 카메라
intrinsic
파라미터 K 를 알게 되었다면 K−TK−1 또한 알 수 있습니다. - 이 값은 꽤 유용하게 사용될 수 있는데 이 값을 통하여 이미지의 점들을 3D 공간 상의
ray
로 보낼 수 있으며 반대로도 적용할 수 있습니다. - 정리하면 파라미터 K 만 알 수 있으면 이미지 상의 점들 만으로도 3D 공간 상의
ray
의 방향 또한 알 수 있고 이미지 점들 사이의각도
또한 알 수 있습니다.

- 위 슬라이드에서는 이미지 상의 선 l 을 구성하기 위해 카메라 센터 c 로 부터 나온
ray
인 d 전체와 직교한 방향의 벡터 n 은 n=KTl 로 정의 됨을 보여줍니다.
- 먼저 앞에서 살펴본 바와 같이 이미지 상의 선 l 의 점을 x 는 다음과 같이
back-project
됩니다.
- d=K−1x
ray
d 는 위 그림과 같이 n 벡터에 직교하므로 다음과 같이 전개할 수 있습니다. 아래 식은 직교한 벡터의dot product
는 0임을 이용한 것입니다.
- dTn=xTK−Tn=0
- 선 l 상에 존재하는 점 x 에 대하여 xTl=0 을 만족합니다. 따라서 식을 다음과 같이 전개할 수 있습니다.
- xTK−Tn=xTl=0
- K−Tn=l
- ∴n=KTl
- 따라서 2D 이미지에서 선을 찾았을 때, 그 선을 구성하는 ray 전체와 직교하는 3D 공간상의
normal vector
를 찾는 데 K 를 사용할 수 있음을 확인하였습니다. 이와 같은 정보를 이용하면2D 이미지 상의 선
을 통해 3D 공간 상의 기하 정보를 추정할 수 있습니다.









- 지금부터는
Vanishing Points
와Vanishing Lines
에 대하여 살펴보도록 하겠습니다. - 위 그림에서 C 는 카메라의 중심으로 C 의 위치는 움직이지 않고 카메라가 바라보는 방향만 위 아래로 움직이는 것을 나타냅니다.
- 또한 위 그림에서 가로 방향의 X 축은
world
상의 3D 공간 좌표를 의미하고 D 축은 2D 공간 상의 무한 (infinity
) 평면에 해당합니다. world
상의 점 X1,X2,X3,X4 는 동일한 간격을 두고 점점 멀어지도록 표현되어 있습니다.- 위 그림에서 X 와 직교하는 실선의 세로 축과 비스듬한 점선의 세로 축 2개가 표현되어 있습니다. 카메라 중심 C 로부터 X1,X2,X3,X4 까지 뻗은 직선과 세로 축의 교점들이 이미지에서의 X1,X2,X3,X4 의 위치를 나타냅니다.
world
상에서 X1,X2,X3,X4 는 등간격으로 나타내어진 반면에 이미지 상에서는 점점 간격이 좁아지게 되는데 이는원근법(Perspective View)
이 적용되었기 때문입니다. 따라서world
상에서 멀리 존재하는 점들이 빽빽하게 모여있게 됩니다. vanishing point
는world
상의 점 X∞ 가 무한히 먼 곳에 존재할 때 이미지에 대응되는 점을 의미합니다. 위 그림에서는 v 와 v′ 가 각각vanishing point
에 해당합니다.- 위 그림에서 주목할 점은 같은 점이라도 카메라가 바라보는 방향에 따라 vanishing point의 위치가 다르다는 점입니다.

vanishing point
는 위 그림과 같이direction of a line
에 의해 영향을 받는 것이지line
의 위치 (position)와는 무관합니다.

- 위 그림과 같이
line
의 위치는 다르더라도line
이world
상에서 모두 평행하다면 같은vanishing point
를 가지게 됨을 알 수 있습니다. - 54 페이지에서는 같은
world
상에서의 점에 대해서 카메라가 바라보는 위치가 달라지면vanishing point
의 위치가 바뀌는 것을 보여주었고 55 페이지에서는 평행한 선의vanishing point
가 모두 같은것을 보여주었습니다. 둘 다 같은 의미를 다른 방식으로 보여준 것이며 중요한 것은vanishing point
의direction of a line
에 의해 결정된다는 것입니다. - 55 페이지에서의 l 은
vanishing line
을 의미합니다. 2개의vanishing point
를 구하면 그 점을 이용하여vanishing line
을 구할 수 있습니다.

- 이번 슬라이드에서는 대수적으로
vanishing point
에 대한 정의를 내려 보도록 하겠습니다. - 위 그림에서 C 는 카메라의 중심이고 3D 공간상의 어떤 점 X(λ) 는 X(λ)=A+λD 로 정의 됩니다. 임의의 점 A 에서 D 의 방향과 크기 만큼 이동하였을 때 생기는 점을 의미합니다.
- 위 식에서 D=(dT,0)T 에서 d 는 3D 벡터를 의미합니다. homogeneous coordinate에서 벡터를 나타내므로 마지막 차원의 값이 0이 되어 homogeneous 상의 벡터로 나타낼 수 있습니다.
- 따라서 임의의 3D 상의 점 X(λ)=A+λD 로 나타낼 수 있습니다.

- 앞에서 정의한 X(λ) 에
Projection Matrix
인 P 를 적용해 보도록 하겠습니다. - 앞에서 다루온 바와 같이 P=K[I|0]


회전행렬의 자유도는 3이므로 2개 이상의 vanishing point
쌍을 사용하면 회전행렬을 복원할 수 있습니다.








metric rectification
은 이미지에서perspective view
로 인하여 수직 성분이 왜곡되어 이미지 상에서 형성된 것을 다시 수직 형태로 복원하는 과정을 의미합니다.

- 앞에서 다룬 그림을 다시 살펴보겠습니다. 위 그림에서 (b), (c)가 (a)를
metric rectification
하여 수직 성분을 복원한 예시입니다. 그림에서도 (b), (c)를Front-Parallel
로 표현할 것을 확인할 수 있습니다.



- 지금까지 살펴본
vanishing point
와vanishing line
에 대하여 정리해 보면 다음과 같습니다. vanishing point
와vanishing line
3D 공간 상의 위치와는 무관하고 방향에만 관계가 있습니다.vanishing point
는 3D 공간 상의 평행한 선들 (parallel scene lines
)을 알 수 있으면 이미지 상에서 구할 수 있습니다.vanishing point
를 활용하는 대표적인 예시로 ①intrinsic
이 같은 2개의 카메라의Rotation
을 구하는 것과 ② 2개의scene lines
사이의 각을 구하는 것이 있었습니다.vanishing lines
은 2개의vanishing point
를 연결하여 구할 수 있고 ( l=v1×v2) 또는 3D 공간 상의 평면과 π∞ 의 교차선을 통하여 구할 수도 있습니다.- 특히 두번째 방법에서 3D 공간 상의 평면인
scene plane
의normal vector
인 n 을 n=KTl 으로 구할 수 있습니다. 이 때, 어떤 n 값을 가지는scene plane
들 중에서 카메라 센터를 통과하는scene plane
이 이미지와 교차하는 선이vanishing line
이 되는 것을 확인하였습니다. vanishing line
을 이용하면 ①vanishing line
을 생성하는scene plane
의normal vector
를 알 수 있다는 것과 ②metric rectification
을 하는 데 이용할 수 있다는 점, ③ 2개의scene plane
사이의 각도를 확인할 때 사용할 수 있다는 것을 확인하였습니다.





- 75p의 슬라이드 하단의 이미지를 아래 좀 더 선명하게 표현하도록 하였습니다.

- 위 슬라이드에서는 H2×2 를 이용하여 오른쪽의
image
에 존재하는 ˜t1 와 t2 를 왼쪽의스케일 변환된 3D space
에서의 ˜T1 와 T2 로 대응 시키는 내용을 설명합니다. - 74p에서 정의된 H2×2 를 이용하면 이미지 상의 0≈v 범위의 높이 값을
3D space
상에서 0 1 사이의 값으로 스케일 변환하여 대응시킬 수 있습니다. 즉image
의 지면 점 b2 는 그대로 스케일 변환된 3D 공간 상에서 0 이 되고image
상의 무한이 높이 있는 점 v 는 스케일 변환된 3D 공간 상에서 1 이 됩니다. - 따라서
image
상의 점 ˜t1 과 H2×2 를 통해스케일 변환된 3D space
에서의 ˜T1 의 값과 t2 와 H2×2 를 통하여스케일 변환된 3D space
에서의 T2 의 값을 구하면 다음과 같습니다.
- ˜T1=[101−v][˜t11]=[˜t1˜t1−v]
- T2=[101−v][t21]=[t2t2−v]
-
위 결과에서 ˜T1 과 T2 는 지면에서 (스케일 변환된) 수직으로 뻗은 위치입니다. 따라서
inhomogeneous
로 변환하면 (스케일 변환된)distance
가 됩니다. 다음과 같습니다. - d1=˜t1(˜t1−v)
- d2=t2(t2−v)
- 따라서
distance ratio
를 구하면 다음과 같습니다.
- d1 : d2=˜t1(˜t1−v) : t2(t2−v)
- ∴d1d2=˜t1(v−t2)t2(v−˜t1)




