반응형

https://darkpgmr.tistory.com/32

 

카메라 캘리브레이션 (Camera Calibration)

카메라 캘리브레이션 (camera calibration)은 영상처리, 컴퓨터 비전 분야에서 번거롭지만 꼭 필요한 과정중의 하나입니다. 본 포스팅에서는 카메라 캘리브레이션의 개념, 카메라 내부 파라미터, 외부 파라미터,..

darkpgmr.tistory.com

 

 

우리가 실제 눈으로 보는 세상은 3차원이다.

3차원 공간에 한 물체가 있다고 하자.

하지만 이를 카메라로 찍으면 2차원을 나타내어지게 되고

기하학적으로 보면 사진을 찍을 때 카메라의 위치 및 방향을 고려하면

해당 물체의 3차원에서의 위치를 알 수 있다.

 

하지만 실제 이미지는 사용되는 렌즈, 렌즈와 이미지센서와의 거리, 렌즈와 이미지 센서와의 각도 등

카메라의 내부적인 부분에 의해 크게 영향을 받게되고 이러한 내부적인 요인들을 제거해야

정확한 계산이 가능해진다.

 

이렇게 내부 파라미터 값을 구하는 과정을 카메라 캘리브레이션이라고 한다.

 

 

 

카메라 영상은 3차원 공간상의 점들을 2차원 이미지 평면에 투사함으로서 얻어지는데

핀홀(pinhole)카메라 모델에서 이러한 변환 관계는 다음과 같이 모델링됩니다.

 

여기서 (X, Y, Z)는 월드좌표계 에서의 3D상의 물체의 좌표, [R|t] 는 월드 좌표계를

카메라 좌표계로 변환시키기 위한 회전/이동변환 행렬(외부 파라미터)이며

A는 intrinsic camera matrix 즉 카메라의 내부 파라미터에 대한 행렬이다.

 

 

 

즉 3D의 공간좌표와 2D 영상좌표 사이의 변환관계를 나타내는 파라미터를 찾는 과정을

캘리브레이션 과정이라 할 수 있다.

 

내부 파라미터의 fx, fy 값들은 초점거리를 나타내고

cx, cy는 주점(principle point)

skew_x = tan(alpha) 로 비대칭계수를 나타내게 된다.

 

 

 

1.  초점거리(focal length)

          : 렌즈 중심과 이미지센서(CCD, CMOS 등)와의 거리를 의미하며 카메라 모델에서 초점거리(f)는

픽셀단위로 표현되게 된다.

컴퓨터 비전 분야에서 초점거리를 픽셀단위로 나타내는 이유는 이미지픽셀과 동일한 단위로 초점거리를

표현함으로서 영상에서의 기하학적 해석을 용이하게 하기 위함이다.

 

그럼 초점거리는 위의 그림과 같이 길이로 나타내어지는데 왜 값이 fx, fy로 표현되는 것일까

길이는 하나의 값만 갖게 되는데 왜 fx와 fy의 2개로 나뉘게 되는 것인가.

 

위에서 얘기하였듯 초점 거리는 이미지센서의 픽셀에 대하여 상대적으로 나타내기 위하여 단위를 픽셀로

나타내게 된다.

 

이는 이미지센서가 정확히 정사각형이 아닐 수 있기 때문이다.

따라서 이미지 센서의 픽셀 가로 세로 크기가 다르다면 이에 맞추어 상대적으로 초점거리를 나타내게 된다.

(아직 확실하진 않지만 fx는 이미지 픽셀의 가로에 대하여 초점거리가 몇 픽셀인지

fy는 이미지 센서 픽셀의 세로에 대하여 초점거리가 몇 픽셀인지 나타내어지는 것 같다.)

하지만 요즘 카메라는 정사각형의 픽셀을 갖기 떄문에 f=fx=fy로 볼 수 있다고 한다.

 

 

추가적으로 카메라 좌표예 위의 한 점 (Xc, Yc, Zc)를 영상좌표에 투영해주게 되는 과정에서

 

위의 그림과 같이 초점에서 부터 길이가 1인(이때의 단위는 상대적인 것이다) normalized image plane을 생성하게 되면

(이떄의 normalized image plane은 실제로 존재하는 것이 아닌 계산을 위한 가상의 면이다)

카메라 좌표계에서의 좌표 (Xc, Yc) 를 Zc의 값으로 나눠주게 된다.

 

따라서 x와 y의 비율은 동일하지만 더 작아진 값이 투영되게 된다.

그리고 여기에 초점거리 f를 곱해주게 되면 우리가 원하는 이미지 평면에서의 영상좌표가 나오게 된다.

 

그런데 이미지에서 픽셀의 좌표는 이미지 중심이 아닌 이미지의 좌상단 모서리를 기준(원점)으로 하기 때문에 최종적인

영상 좌표는 여기에 (cx, cy)값을 더해주게 된다.

 

동일한 장면을 동일한 위치에서 동일한 각도로 찍더라도 사용한 카메라, 카메라의 셋팅에 따라서 서로 다른 영상을

얻게 된다. 이러한 카메라간의 차이는 일관적인 기하학적(geometry) 해석을 하는데 불필요한 요소가 되고 따라서

이러한 요소들을 제거하여 정규화된 이미지 평면에서 공통된 기하학적 특성을 분석하기 위해 카메라의 내부 파라미터들의 영향을 없애주기 위해 위와 같은 normalized plane을 통해 작업을 진행한다.

 

 

 

 

2. 주점(principle point)

 

        주점 cx와 cy는 카메라 렌즈의 중심 즉, 핀홀에서 이미지 센서에 내린 수선의 발의 영상좌표로서 일반적으로 

얘기하는 영상의 중심점(image center)과는 다른 의미입니다.

 

 

 

3. 비대칭 계수(skew coefficient)

 

      비대친계수 skew_c  는 이미지 센서의 cell array의 y축이 기울어진 정도를 나타낸다.

 

 

 

위의 사진에서 alpha값에 해당하고 (skew_c = tan(alpha) 가 된다.

 

하지만 요즘의 카메라는 비대칭계수가 거의 없기 떄문에 카메라 모델에서 보통 비대칭 계수까지 고려하지 않는다고 한다.(skew_c=0)

 

 

 

캘리브레이션 결과

반응형

+ Recent posts