-
앞 강의를 통해 우리는 3D world에서 digital image로 변환을 위해서는 카메라의 intrinsic, extrinsic parameter을 알아야 함을 배웠다.
-
하지만 파라미터를 알 수 없는 임의의 카메라로 찍은 이미지에서 이러한 파라미터를 유추할 수 있는 방법이 있을까?
- camera calibration이 바로 파라미터를 추정하는 방법임.
-
Camera Calibration을 위해 체커보드와 같은 calibration rig를 사용하며 원점 Ow와 축 iw,jw,kw를 가짐.

- 실제 세계의 rig에 점 P1,….Pn의 정보를 알고 있으므로 image에서 이에 해당하는 점 p1,…pn을 얻을 수 있음.
-
이러한 n개의 Pi, pi의 대응 관계가 있을 때, 각 행 m1,m2,m3를 가지는 Camera Matrix M와의 선형 방정식을 만들 수 있음.
pi=[uivi]=MPi=[m3Pim1Pim3Pim2Pi]
- 식 풀이
M=⎣⎢⎡m1m2m3⎦⎥⎤일 때,MPi=⎣⎢⎡m1Pim2Pim3Pi⎦⎥⎤ 이고, 벡터와 homogeneous coordinate 간의 equality(동일성)은 마지막 좌표가 1일 때만 성립하므로 m3Pi를 각 벡터에 나누면MPi=⎣⎢⎡m3Pim1Pim3Pim2Pi⎦⎥⎤
- 각 Pi, pi는 두 개의 방정식을 제공하며, 이를 통해 m을 풀기 위한 두 가지 constraints(제약 조건)을 제공함.
-
따라서 앞에서 배웠던 것처럼 Camera Matrix에 11가지의 파라미터가 필요하므로 최소한 6개의 대응 관계를 알아야 함.
-
이를 행렬-벡터 곱으로 표현하면
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡PT0TPnT0T0TP1T...0TPnT−u1P1T−v1P1T−unP1T−unP1T⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎡m1Tm2Tm3T⎦⎥⎤=Pm=0
-
하지만, 2n>11일 때, trivial solution(자명한 해)는 m1=m2=m3=0 임. (homongeneous linear system이므로)
-
비자명한 해(nonzero solution = nontrivial solution)가 있다고 가정하면, 행렬 P의 열들이 선형종속일 때이므로 비자명한 해 m에 ∀k∈R 즉, 모든 실수 k를 곱해도 비자명한 해에 속함.
- 따라서 해를 제한하기 위해 다음과 같은 최소화를 수행함.
mminimize ∣∣Pm∣∣2subject to ∣∣m∣∣2=1
- 위 식을 풀기 위해 SVD (특이값 분해)를 사용함. P=UDVT일 때, |∣Pm∣∣2을 최소화하기 위한 m은 m = V의 마지막 열(벡터)임.
- 증명 (Section 5.3 of Hartley & Zisserman on pages 592-593)

-
이 벡터 m을 행렬 M으로 재구성하면, 이 M은 실제 카메라 행렬의 스칼라 배수임.
ρM=⎣⎢⎢⎢⎢⎢⎡αr1T−αcot(θ)r2T+cxr3Tsinθβr2T+cyr3Tr3Tαtx−αcot(θ)ty+cxtzsinθβty+cytztz⎦⎥⎥⎥⎥⎥⎤
- 식 유도
- 우리는 이전 시간에 Full projection matrix M이 K[R T]라는 것을 배웠다.
- 여기서
K=⎣⎢⎡α00−αcot(θ)sinθβ0cxcy1⎦⎥⎤,R=⎣⎢⎡r11r21r31r12r22r32r13r23r33⎦⎥⎤=⎣⎢⎡r1r2r3⎦⎥⎤,T=⎣⎢⎡txtytz⎦⎥⎤ 라고 할 때, [R T]는 다음과 같으므로[R T]=⎣⎢⎡r11r21r31r12r22r32r13r23r33⎦⎥⎤=⎣⎢⎡−−r1−−−−r2−−−−r3−−txtytz⎦⎥⎤ M=K[R T]은 다음과 같음.M=K[R T]=⎣⎢⎡α00−αcot(θ)sinθβ0cxcy1⎦⎥⎤⎣⎢⎡−−r1−−−−r2−−−−r3−−txtytz⎦⎥⎤=⎣⎢⎢⎢⎢⎢⎡αr1T−αcot(θ)r2T+cxr3Tsinθβr2T+cyr3Tr3Tαtx−αcot(θ)ty+cxtzsinθβty+cytztZ⎦⎥⎥⎥⎥⎥⎤
-
여기서 scaling parameter ρ로 나누면
M=ρ1⎣⎢⎢⎢⎢⎢⎡αr1T−αcot(θ)r2T+cxr3Tsinθβr2T+cyr3Tr3Tαtx−αcot(θ)ty+cxtzsinθβty+cytztZ⎦⎥⎥⎥⎥⎥⎤=[Ab]=⎣⎢⎡a1Ta2Ta3T⎦⎥⎤⎣⎢⎡b1b2b3⎦⎥⎤

-
여기서 주의해아 할 점은 degenerate 경우 즉, Pi들이 같은 plane에 있는 경우, 이 시스템을 풀 수 없음. 이러한 점들을 degenerate configurations라고 함.