카메라의 초점거리(focal length)

영상처리 2013. 10. 23. 11:06

예전에 카메라 캘리브레이션에 관한 글([영상처리] - 카메라 캘리브레이션 (Camera Calibration))을 쓰면서 카메라의 초점거리(focal length)를 렌즈초점에서 이미지 센서까지의 거리라고 설명했는데 최근 이게 아님을 깨닫게 되었습니다.


새로 깨닫게 된 것은 카메라 초점거리(focal length)는 렌즈에서 이미지 센서까지의 거리라는 것입니다.


왜 그런지 간단히 설명해 보겠습니다.


먼저, 컴퓨터 비전에서 말하는 카메라의 기본모델은 아래 그림과 같은 핀홀(pinhole) 카메라 모델입니다.


<그림 1> pinhole 카메라 모델 (그림출처: 위키피디아)


핀홀 카메라 모델은 말 그대로 외부의 상이 하나의 바늘구멍을 직선으로 통과하여 반대편 벽(이미지 센서)에 맺힌다는 모델입니다. 그리고 여기서 카메라 초점거리(focal length)는 바늘구멍에서 뒷 벽면까지의 거리로 정의됩니다.


이제 핀홀 카메라 모델을 렌즈-이미지센서로 대응시켜 생각해 보겠습니다.


볼록렌즈의 기본 성질은 렌즈에 수평으로 들어온 빛은 모두 렌즈 초점(focus)을 통과한다는 것입니다. 또한 렌즈의 중심(center)을 통과하는 빛은 굴절없이 그대로 직진하게 되며 렌즈 중심에서 멀어질수록 굴절이 심해진다는 점입니다. 이러한 내용을 그림으로 나타내 보면 아래와 같습니다.


<그림 2> 렌즈-이미지센서 투영


그림을 잘 보면(특히 나무의 위 끝부분) 렌즈에 수평으로 들어온 빛은 렌즈의 초점을 통과하여 이미지 센서에 투영되고 렌즈의 중심을 지나는 빛은 그대로 투과하여 이미지 센서에 맺힙니다. 그런데 빛은 모든 방향으로 퍼져 나가기 때문이 이 두 방향뿐 아니라 그림의 빨간색 선들처럼 다양한 방향으로 렌즈를 투과하여 상이 맺히게 됩니다. 그런데, 중요한 점은 이들 빛들이 모두 한점 (렌즈 수평한 빛과 렌즈 중심 통과한 빛이 만나는 점)으로 모이게 되며 이 만나는 점에 이미지 센서가 위치하면 가장 선명한 상을 얻을 수 있다는 점입니다 (제가 물리쪽에는 자신이 없어서 확신은 못하지만 대략 이럴 것이라 추정하고 있습니다). 위 그림에서 이미지 센서를 좀더 앞으로 이동시키거나 뒤로 빼면 빛이 흩어지기 때문에 블러링(blurring)이 생김을 쉽게 상상할 수 있습니다.


우리가 보통 선명한 이미지를 얻기 위해 카메라의 초점거리를 조절하는 것이 이 원리라고 생각하면 됩니다.


원래 문제로 돌아가서,

<그림 1>의 핀홀 카메라 모델과 <그림 2>를 비교해 보면 핀홀 모델에서는 빛이 바늘구멍을 직선으로 투과하여 반대편에 상이 맺힙니다. 그런데, <그림 2>를 보면 빛이 렌즈초점을 직선으로 지나는 것이 아니라 렌즈중심을 직선으로 투과하여 이미지 센서에 맺히는 것을 알 수 있습니다. 따라서, 렌즈중심이 핀홀에 대응되기 때문에 카메라의 초점거리는 렌즈중심에서 이미지센서까지의 거리로 정의하는 것이 맞겠습니다.


by 다크 프로그래머