Camera calibration

카메라 보정은 알려진 보정 타겟의 이미지에서 내부 파라미터 행렬 K\mathbf{K}와 렌즈 왜곡 파라미터를 복원합니다. 정확한 보정 없이는, 삼각측량, 포즈 추정, 에피폴라 탐색을 포함한 모든 후속 기하 연산이 체계적으로 잘못됩니다.

Zhang 방법

Zhang 방법(1999)은 표준 보정 절차입니다. 여러 시점에서 촬영한 평면 체커보드 이미지를 사용합니다. 각 이미지는 알려진 3D 보드 코너와 검출된 2D 이미지 코너 사이의 대응을 제공하여, 호모그래피(이미지-보드 간)와 내부 파라미터 양쪽에 제약을 줍니다. 절차:

  1. 서로 다른 방향으로 촬영한 N3N \geq 3개의 이미지에서 체커보드 코너 검출.
  2. 보드 평면과 각 이미지 사이의 호모그래피 HiH_i 계산.
  3. H=λK[r1,r2,t]H = \lambda\mathbf{K}[r_1, r_2, \mathbf{t}]이고 r1r2r_1 \perp r_2, r1=r2\|r_1\| = \|r_2\|라는 조건을 이용해 각 HiH_i에서 K\mathbf{K}에 대한 제약 추출.
  4. 내부 파라미터에 대한 선형 시스템 풀기.
  5. 비선형 최소제곱으로 모든 파라미터(내부 + 외부 + 왜곡) 세밀화.

제약이 어디서 오는가. H=[h1,h2,h3]H = [\mathbf{h}_1, \mathbf{h}_2, \mathbf{h}_3]라 씁시다. h1Kr1\mathbf{h}_1 \propto \mathbf{K}r_1이고 h2Kr2\mathbf{h}_2 \propto \mathbf{K}r_2이며 r1,r2r_1, r_2가 정규직교이므로, 각 시점은 대칭 행렬 B=KTK1B = \mathbf{K}^{-T}\mathbf{K}^{-1}의 원소에 대한 두 개의 선형 방정식을 제공합니다:

h1TBh2=0,h1TBh1=h2TBh2\mathbf{h}_1^T B\, \mathbf{h}_2 = 0, \qquad \mathbf{h}_1^T B\, \mathbf{h}_1 = \mathbf{h}_2^T B\, \mathbf{h}_2

BB는 6개의 미지수를 가지므로(스큐가 0이라고 가정하면 5개) 3개의 시점으로 충분합니다. K\mathbf{K}는 이후 Cholesky 방식의 분해를 통해 BB로부터 복원됩니다. 이것이 보드를 서로 다른 방향으로 보여줘야 하는 이유입니다---평행한 시점들은 중복된 제약만 제공합니다.

렌즈 왜곡 모델

실제 렌즈는 이상적인 핀홀 모델에서 벗어납니다. 두 가지 표준 모델이 있습니다:

방사형 왜곡은 직선이 곡선으로 보이게 만듭니다:

xd=x(1+k1r2+k2r4+k3r6),yd=y(1+k1r2+k2r4+k3r6)x_d = x'(1 + k_1 r^2 + k_2 r^4 + k_3 r^6), \qquad y_d = y'(1 + k_1 r^2 + k_2 r^4 + k_3 r^6)

여기서 r2=x2+y2r^2 = x'^2 + y'^2는 주점(principal point)으로부터의 거리의 제곱입니다. k1>0k_1 > 0은 배럴 왜곡을, k1<0k_1 < 0은 핀쿠션 왜곡을 만듭니다. 광각 렌즈는 k1|k_1|이 큽니다.

접선형 왜곡은 렌즈가 이미지 평면과 완벽히 평행하지 않을 때 발생합니다:

xd=x+2p1xy+p2(r2+2x2),yd=y+p1(r2+2y2)+2p2xyx_d = x' + 2p_1 x'y' + p_2(r^2 + 2x'^2), \qquad y_d = y' + p_1(r^2 + 2y'^2) + 2p_2 x'y'

실무에서는 k1,k2k_1, k_2(그리고 때로는 k3,p1,p2k_3, p_1, p_2)를 K\mathbf{K}와 함께 동시에 추정합니다. OpenCV는 이를 cv::calibrateCamera()에서 직접 구현합니다.

보정 품질 판단

표준 품질 지표는 보정에서 반환되는 RMS 재투영 오차입니다: 추정된 파라미터로 보드 코너를 재투영하고 픽셀 잔차를 측정합니다. 단일 수치를 넘어서, 다음을 확인해야 합니다:

흔한 함정

SLAM에서의 의미

SLAM 시스템은 왜곡이 제거되고 보정된 관측값이 기하 solver에 입력된다고 가정합니다. 이미지 경계에서 몇 픽셀의 보정되지 않은 왜곡만으로도 재투영 오차를 지배하여 지도를 오염시킬 수 있습니다. 보정은 이후 만나게 될 더 어려운 문제들의 템플릿이기도 합니다---카메라-IMU와 카메라-LiDAR 외부 파라미터 보정은 동일한 “알려진 타겟 + 비선형 세밀화” 패턴을 따릅니다. 실무적으로, 체커보드로 직접 카메라를 보정하는 것은 이 분야에서 가장 좋은 첫 번째 연습 중 하나입니다.

관련 문서