Main Content

카메라 보정이란?

기하 카메라 보정카메라 절제(camera resectioning)라고도 하며, 영상 또는 비디오 카메라의 렌즈 및 영상 센서에 대한 파라미터를 추정합니다. 이러한 파라미터를 사용하여 렌즈 왜곡을 수정하거나, 세계 단위로 객체의 크기를 측정하거나, 장면에서 카메라의 위치를 결정할 수 있습니다. 이러한 작업은 객체를 검출하고 측정하는 머신 비전과 같은 응용 사례에 사용됩니다. 또한 로보틱스, 내비게이션 시스템 및 3차원 장면 복원에도 사용됩니다.

카메라를 보정한 후 수행할 수 있는 작업의 예는 다음과 같습니다.

Examples

카메라 파라미터로는 내부 파라미터, 외부 파라미터, 왜곡 계수가 있습니다. 카메라 파라미터를 추정하려면 3차원 세계 좌표 점과 그에 대응되는 2차원 영상 점이 있어야 합니다. 체커보드와 같이 보정 패턴을 나타내는 여러 영상을 사용하여 이러한 대응점을 얻을 수 있습니다. 대응점을 사용하면 카메라 파라미터를 구할 수 있습니다. 카메라를 보정한 후 추정된 파라미터의 정확도를 평가하기 위해 다음 작업을 수행할 수 있습니다.

  • 카메라의 상대적 위치와 보정 패턴을 플로팅

  • 재투영 오차 계산

  • 파라미터 추정 오차 계산

카메라 보정기를 사용하여 카메라 보정을 수행하고 추정된 파라미터의 정확도를 평가합니다.

카메라 모델

Computer Vision Toolbox™에는 핀홀 카메라 모델과 어안 카메라 모델을 위한 보정 알고리즘이 포함되어 있습니다. 카메라에 최대 195도의 시야각(FOV)을 갖는 어안 모델을 사용할 수 있습니다.

핀홀 보정 알고리즘은 Jean-Yves Bouguet [3]가 제안한 모델을 기반으로 합니다. 모델에는 핀홀 카메라 모델 [1] 및 렌즈 왜곡 [2]이 포함됩니다. 이상적인 핀홀 카메라에는 렌즈가 없기 때문에 핀홀 카메라 모델은 렌즈 왜곡을 고려하지 않습니다. 실제 카메라를 정확하게 나타내기 위해 이 알고리즘에서 사용되는 전체 카메라 모델에는 방사형 및 접선 렌즈 왜곡이 포함됩니다.

어안 렌즈가 생성하는 과도한 왜곡으로 인해 핀홀 모델은 어안 카메라를 모델링할 수 없습니다. 어안 모델을 사용한 카메라 보정에 대한 자세한 내용은 어안 보정 기본 사항 항목을 참조하십시오.

핀홀 카메라 모델

핀홀 카메라는 렌즈가 없고 작은 개구를 갖는 단순한 카메라입니다. 광선은 개구를 통과하여 카메라의 반대쪽에 반전된 영상을 투영합니다. 카메라 앞에, 수직 방향의 장면 영상을 포함하는 가상의 영상 평면이 있다고 생각해 보겠습니다.

Labeled pinhole camera showing image of tree as 2-D image, image plane, focal point (the pinhole), the virtual plane in front of the camera, and the 3-D object beyond that. Also, the focal length is labeled from the 2-D image in camera to the pinhole and showing that same distance to image plane.

핀홀 카메라 파라미터는 카메라 행렬이라고 하는 3×4 행렬로 표현됩니다. 이 행렬은 3차원 세계 장면을 영상 평면에 매핑합니다. 보정 알고리즘은 외부 파라미터와 내부 파라미터를 사용하여 카메라 행렬을 계산합니다. 외부 파라미터는 3차원 장면 내 카메라의 위치를 나타냅니다. 내부 파라미터는 카메라의 광학적 중심과 초점 거리를 나타냅니다.

Matrix operations showing w, (the scale factor) times the column vector x,y,1 (the image points) equal to P times times the column vector x,y,z,1 (the world points). Also, P, (the camera matrix) equal to K, (the intrinsics matrix) times the row vector R, t,(the extrinsics, rotation and translation).

세계 좌표 점은 외부 파라미터를 사용하여 카메라 좌표로 변환됩니다. 카메라 좌표는 내부 파라미터를 사용하여 영상 평면에 매핑됩니다.

World to camera to image, line of site showing that extrinsic vector [Rt] used for world to camera transformation, and intrinsics K is used for the camera to image transformation.

카메라 보정 파라미터

보정 알고리즘은 외부 파라미터와 내부 파라미터를 사용하여 카메라 행렬을 계산합니다. 외부 파라미터는 3차원 세계 좌표계에서 3차원 카메라 좌표계로의 강체 변환을 나타냅니다. 내부 파라미터는 3차원 카메라 좌표에서 2차원 영상 좌표로의 사영 변환을 나타냅니다.

외부 파라미터

외부 파라미터는 회전 R과 평행 이동 t로 구성됩니다. 카메라 좌표계의 원점은 광학적 중심에 놓이며 카메라 좌표계의 x-축과 y-축에 따라 영상 평면이 정의됩니다.

내부 파라미터

내부 파라미터에는 초점 거리, 주점(principal point)이라고도 부르는 광학적 중심 , 그리고 왜도 계수가 포함됩니다. 카메라 내부 행렬 K는 다음과 같이 정의됩니다.

[fxscx0fycy001]

픽셀 왜도는 다음과 같이 정의됩니다.

[cxcy] — 광학적 중심(주점)으로, 단위는 픽셀입니다.
(fx,fy) — 초점 거리(단위: 픽셀)입니다.
fx=F/px
fy=F/py
F — 초점 거리(세계 단위)로, 일반적으로 밀리미터로 표현됩니다.
(px,py) — 픽셀 크기(세계 단위)입니다.
s — 왜도 계수로, 영상 좌표축이 수직이 아닌 경우 0이 아닙니다.
s=fxtanα

카메라 보정에서의 왜곡

이상적인 핀홀 카메라에는 렌즈가 없기 때문에 카메라 행렬은 렌즈 왜곡을 고려하지 않습니다. 실제 카메라를 정확하게 나타내기 위해 카메라 모델에는 방사형 및 접선 렌즈 왜곡이 포함됩니다.

방사형 왜곡

광선이 광학적 중심에서보다 렌즈의 가장자리 근처에서 더 많이 휘는 경우 방사형 왜곡이 발생합니다. 렌즈가 작을수록 왜곡이 커집니다.

Three grids that each represent a type of distortion. One with pincushion distortion (positive radial displacement), one with no distortion, and one with barrel distortion (negative radial displacement)

방사형 왜곡 계수는 이러한 유형의 왜곡을 모델링합니다. 왜곡된 점은 (xdistorted, ydistorted)로 표기합니다.

xdistorted = x(1 + k1*r2 + k2*r4 + k3*r6)

ydistorted= y(1 + k1*r2 + k2*r4 + k3*r6)

  • x, y — 왜곡되지 않은 픽셀 위치입니다. x 및 y는 정규화된 영상 좌표에 있습니다. 정규화된 영상 좌표는 픽셀 좌표를 광학적 중심으로 평행 이동하고 초점 거리(단위: 픽셀)로 나누는 방법으로 계산됩니다. 따라서 x 및 y에는 차원이 없습니다.

  • k1, k2 및 k3 — 렌즈의 방사형 왜곡 계수입니다.

  • r2 = x2 + y2

일반적으로, 두 계수로 충분히 보정이 가능합니다. 광각 렌즈에서와 같이 심각한 왜도가 발생하는 경우에는 k3를 포함하여 3개 계수를 선택할 수 있습니다.

접선 왜곡

접선 왜곡은 렌즈와 영상 평면이 평행이 아닌 경우에 발생합니다. 접선 왜곡 계수는 이러한 유형의 왜곡을 모델링합니다.

Comparison of zero tangential distortion and tangential distortion

왜곡된 점은 (xdistorted, ydistorted)로 표기합니다.

xdistorted = x + [2 * p1 * x * y + p2 * (r2 + 2 * x2)]

ydistorted = y + [p1 * (r2 + 2 *y2) + 2 * p2 * x * y]

  • x, y — 왜곡되지 않은 픽셀 위치입니다. x 및 y는 정규화된 영상 좌표에 있습니다. 정규화된 영상 좌표는 픽셀 좌표를 광학적 중심으로 평행 이동하고 초점 거리(단위: 픽셀)로 나누는 방법으로 계산됩니다. 따라서 x 및 y에는 차원이 없습니다.

  • p1 및 p2 — 렌즈의 접선 왜곡 계수입니다.

  • r2 = x2 + y2

참고 문헌

[1] Zhang, Z. “A Flexible New Technique for Camera Calibration.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 22, No. 11, 2000, pp. 1330–1334.

[2] Heikkila, J., and O. Silven. “A Four-step Camera Calibration Procedure with Implicit Image Correction.” IEEE International Conference on Computer Vision and Pattern Recognition.1997.

[3] Bouguet, J. Y. “Camera Calibration Toolbox for Matlab.” Computational Vision at the California Institute of Technology.

[4] Bradski, G., and A. Kaehler. Learning OpenCV: Computer Vision with the OpenCV Library. Sebastopol, CA: O'Reilly, 2008.

참고 항목

관련 항목