Subjects 10

Euler angles

Terminology Euler axis 회전의 기준이 되는 축 Euler pole Euler axis가 가르키는 방향 Euler angle Euler axis를 기준으로 한 rotation의 변화량 Sign convention clock-wise counter clock-wise (Usally used) Composition convention As matrix multiplication does not commute, order or rotation axes will affect the result Two successive rotations must be performed with different axes. There are 12 conventions for the combination of th..

Singular value decomposition

SVD는 정말 유용하게 쓰이는 matrix decomposition 기법 중 하나이다. 특히나 over-determined system의 해를 구할 때 많이 사용된다. SVD란, 어떤 square matrix $A$ 행렬이 주어졌을 때 $A$를 $UDV^T$로 factorization하는 과정을 의미한다. (이 때 $U, V$는 orthogonal matrix 이며, $D$는 non-negative entry를 갖는 diagonal matrix이다.) 또한 D의 대각 성분들은 descending order를 따른다. (descending order가 아닌 방법으로 factorization 하는 방법도 있지만 여기서는 항상 descending order를 따른다고 가정한다.) SVD는 non-square ..

[Introduction] Projective geometry in camera models

Chapter1. Introduction. A tour of Multiple View Geometry 해당 챕터는 MVG를 공부하기에 앞서서 어떤 내용들이 다루어지는지에 대한 brief sketch를 보여준다. Projective transformation Camera는 실제 3차원 물체를 2차원 이미지로 투영시켜서 보여준다. 이 과정은 projective transformation의 한 예라고 할 수 있다. 그런데 반듯한 직사각형 모양의 피사체도 카메라가 어디서 촬영했는지에 따라 제각각의 모양으로 투영된다. 이 projective transformation에서 변환 전 후가 동일하게 보장되는 것은 무엇일까? 모양은 확실하게 아님을 위의 예시로부터 알 수 있었다. 길이 또한 제각각 달라지는 것으로 보아 ..

Subjects/MVG 2022.04.24

[Camera model] Camera calibration

3차원 물체를 카메라로 관측하고, 이미지로 투영되는 과정을 생각해보자. 동일한 3차원 물체를 카메라로 촬영해서 나오는 결과 이미지가 모두 같을까? 절대 그렇지 않다. 동일한 3차원 물체를 관측해도 대포 카메라로 촬영하는 것과 고프로를 사용해서 촬영하면 결과 이미지가 다르다. 동일한 카메라를 사용한다 하더라도 사진을 어디서 찍느냐에 따라서 결과 이미지가 달라질 수 있다. 이것을 수학적으로 모델링 한 것이 바로 camera parameter이다. camera parameter는 또 다시 2가지로 구분 될 수 있는데, 카메라 자체에서 결정되는 intrinsic parameter와, 카메라의 자세를 통해 결정되는 extrinsic parameter로 구분할 수 있다. 위와 같은 camera parameter를 ..

[Camera model] Lens distortion

Pinhole 카메라에서는 straight line은 straight line으로 투영된다. 하지만 우리가 실제 사용하는 카메라는 pinhole 카메라와 다르게 렌즈를 통해 반사된 빛을 받는다. 따라서 우리가 사용하는 카메라는 렌즈에 의한 왜곡을 받게 된다. 왜곡은 straight line이 실제로 투영되었을 때 약간의 휘어짐을 갖는 채로 투영되게끔 한다. Distortion types 일반적인 왜곡의 종류는 크게 두 가지로 나눌 수 있다. Radial distortion Tangential distortion Radial distortion은 가장 일반적으로 나타나는 왜곡의 형태이다. Radial distortion은 카메라 렌즈의 굴절률에 의해 발생하고, 그렇기 때문에 principal point과의..

[Camera model] Pinhole camera

우리가 computer vision을 이해하기 위해서는 카메라의 동작에 대한 이해가 필수적이다. 카메라는 3D 공간의 물체를 투영하여 2D 카메라 센서에 상을 맺히게 한다. 우리는 그 과정을 이해하기 위해서 가장 기초적이고 ideal 한 경우인 pinhole 카메라 모델에 대해서 알아본다. Pinhole 카메라 모델이 가장 ideal 하다고 이야기 하는 것은 카메라 렌즈에 의한 왜곡이 고려되지 않기 때문이다. 렌즈로 인한 왜곡은 다음 포스트에서 살펴 보도록 한다. 그림에서 먼저 봐야 할 것은 카메라의 위치와 그 좌표축이다. 그림에는 카메라의 중심과, 중심을 기준으로 한 x, y, z축의 양의 방향이 표현되어 있다. 카메라 중심에서 정면 방향이 z축, 우측 방향이 x축, 하단 방향이 y축이다. 대부분의 일..

[Geometric primitives] 2D points, 2D lines, 2D conics

Computer vision을 잘 하기 위해서는 먼저 그 기초부터 탄탄해야 한다. 아쉽게도 그 과정에는 머리가 지끈거리는 수식들도 포함된다... zero-base로 시작하는 것이 마음이 착잡하지만... 한 번 해보자! 컴퓨터 비젼 하면 다들 카메라를 떠올릴 것이고, 카메라로부터 얻게된 이미지를 떠올린다. 실제로 존재하는 어떤 3차원 공간의 물체가 카메라를 통해 2차원 공간의 이미지에 투영되는 과정을 이해하기 위해서는 먼저 그들을 구성하는 geometric primitives에 대한 이해를 하고 있어야 한다. 이들은 앞으로 우리가 공부할 3차원 구조물들을 설명하기 위한 building block이 될 것이다. 먼저, 이번에는 그 중에 2D geometric primitives에 대해서 알아본다. 2D Po..

[선형대수학] Eigen Vector / Value

선형대수학의 핵심 중 하나인 eigen vector와 eigen value에 대한 포스팅이다. Why eigen value? 세상에 쓸모 없이 만들어 진 것은 없다. eigen vector와 eigen value는 왜 필요할까? 가장 단순한 이유는, 행렬의 거듭제곱을 쉽게 계산하기 위해서이다. 어떤 행렬 $A$의 거듭제곱을 계산한다고 했을 때, 행렬의 size가 크면 클 수록 연산량은 많아지게 된다. 그러면 어떻게 해야 연산량을 줄일 수 있을까? 사람들은 diagonal matrix는 제곱의 계산이 간편하다는 사실을 이용해서 $A$의 거듭제곱을 쉽게 하려는 시도를 한다. 그런데 $A$행렬이 diagonal matrix가 아니라면 어떻게 diagonal matrix의 특징을 이용한다는 거지? 물론 임의의 ..