Camera Calibration
앞에서 intrinsic, extrinsic parameter 를 알아야 정확한 transformation이 가능하다고 했다.
하지만 임의의 카메라를 처음 쓰게 되면, parameter들에 대한 정보가 없다.
하지만 그 카메라로 image를 촬영할 수는 있다.
따라서 해당 image를 이용해 extrinsic, intrinsic camera parameter들을 추정하는 것이 바로 camera calibration이다.

위의 사진은 calibration rig 를 보여준다.
이 rig는 보통 그림처럼 차원을 가진 simple한 패턴으로 구성되고,
더 나아가 rig는 world reference를 원점 와 로 정의한다.
이 때, world reference frame에서 우리가 알고있는 점들 이 주어지고,
해당 점들에 상응하는 image의 점들 을 직접 찾아준다.
그 후, n개의 3D, 2D 포인트 쌍으로부터 아래와 같이 linear system of equations을 유도해낸다.
( 는 matrix 의 각 행을 의미)
위의 식에서 각 쌍으로부터 2개의 equations를 얻을 수 있다.
따라서 의 parameter를 풀기위한 2개의 constraint도 얻을 수 있다.
앞에서 camera matrix 는 11개의 unknown parameter가 있다고 했었다.
따라서 6개의 correspondence만 있으면 이 matrix를 찾을 수 있다.
하지만 실제 세상에서는, 정확하게 측정되기 어렵기 때문에 noise가 있을 수 밖에 없다.
개의 correspondence가 주어졌을 때, 전체 linear system of equation은 다음과 같다.
이걸 matrix-vector product 형태로 바꾸면,
(위의 벡터는 행렬의 모든 행을 열로 펴서 한 열로 만들어 놓은 열벡터이다.)

그런데 일 때, 위에서 세운 homongeneous linear system은 overdetermined(미지수보다 방정식이 더 많음)하고,
은 항상 trivial solution이 된다.
뿐만 아니라 nonzero solution이 아닌 에 대해서, 인 이 solution 으로 가능하다.
따라서 solution에 constraint을 줘야한다.
따라서 minimization을 완성시켜보면 다음과 같다.
위의 minimization problem을 풀려면, 그냥 singular value decomposition(SVD)를 이용하면 된다.
라 했을 때, solution은 의 마지막 column이다. (이 의 마지막 column과 같음)
이렇게 얻은 은 벡터이므로 다시 matrix 으로 바꿔야한다.
이 은 true matrix가 아니라 의 scalar multiple이다.
즉 실제 camera matrix는 였으므로
가 된다. (는 의 행들임)
이를 scaling parameter 로 나눠주면
이고, 는 다음과 같다.

전개해서 풀면 intrinsic parameter는

이고, extrinsic parameter는

과 같다. (유도 과정은 강의 범위를 벗어나므로 생략)
유의할 점으로는, 위의 과정에서 degenerate case가 발생할 수도 있는데,
예를 들어, 모든 들이 같은 평면 위에 있으면 안 된다.
이와 같은 점들을 degenerate configurations라고 부른다.
'3D\Multiview Geometry > CS231A' 카테고리의 다른 글
CH02. Single View Metrology (2) (0) | 2023.02.09 |
---|---|
CH02. Single View Metrology (1) (0) | 2023.02.08 |
CH01. Camera Models (4) (0) | 2023.02.06 |
CH01. Camera Models (2) (0) | 2023.02.05 |
CH01. Camera Models (1) (0) | 2023.02.05 |