본문 바로가기
[Public] 신호처리/기초 영상처리

[OpenCV] 카메라 보정 (#1 핀홀 카메라 모델)

by 차출발 2011. 12. 21.
반응형

핀홀카메라 모델에 대해서 알아보자!
핀홀이란 종이에 핀으로 뚫은 구멍 같이 매우 작은 구멍을 뜻한다.



핀홀카메라가 왜 중요한가요 ?
일반적으로 바늘구멍 사진기라 하며
물체에 반사된 빛이 우리 수정체를 거쳐서 망막에 도달하는 구조를 가장 잘나타내기 때문에
핀홀 카메라 모델에 대해서 알아보려고 한다.




일반 카메라와 핀홀카메라는 무슨차이가 있죠?

핀홀카메라는
빛이 아주 작은 구멍을 거쳐서 들어오기 때문에 빛을 모으기에는 부적합 하다.
하지만  정확한 영상을 얻을 수 있다.

일반적인 카메라는
핀홀 부분 즉 작은 구멍부분에 렌즈를 사용한다. 그래서 빛을 모으기 적합하다.
하지만 렌즈를 사용함으로써 렌즈 자체에 왜곡으로 인하여 영상이 손상된다.

그래서 우리는 일반 카메라에서 이 렌즈의 왜곡을 줄여주는 작업이 필요한 것이다.



아 그럼 핀홀카메라가 어떻게 생겼는지 알아야 겠네영 모델에 대해 설명해주세요 !

핀홀 카메라 모델은 아래 그림과 같다.



 3차원 실세계 객체 위의 한 점에서 빛이 발산 되면 그 중 하나의 광선만이 핀홀을 통과하게 된다.
 이렇게 핀홀을 통과한 광선은 영상평면에 투영이 되어
영상평면 또는 투영 평면이라 불리는 곳에 영상이 맺히게 되다. 

 여기서 객체가 영상에서 얼마만한 크기로 상이 맺히는 지는
핀홀 카메라의 초점 거리에 의해 결정되게 된다.
이상적인 핀홀 카메라일수록 핀홀구멍으로 부터 영상 평면까지의 거리가 초점거리가 되는 것이다.

핀홀카메라의 초점거리(f)
카메라와 물체 사이의 거리 (z)
실제 객체의 크기 (X)
영상 내의 객체크기 (x)

삼각형의 성질에 의해서  -x / f = X / z
위의 식인  -x  = f * (X / z) 를 구할수가 있다.




실제로는 구성할 수 없지만 수학적인 성질을 이용하여 핀홀과 영상 평면의 위치를 바꿔보자 !

그럼 아래 그림과 같이 핀홀의 오른편에 상이 맺히게 되고 역상이 아닌 똑바로의 선형태의 영상이 형성된다.
바늘 구멍은 투영중심의 역할을 하게 된다.

 



그러면 삼각형의 관계를 이용하면 x/f = X /Z 의 수식을 얻을 수가 있다.
3차원 공간상의 한 점 Q = (X, Y, Z)에서 출발한 빛은 투영 중심을 향해 직진하면서 영상 평면을 만들어 낸다.
그때 이점을 q = (x, y, f)로 표현을 하게되며 영상의 평면이 핀홀 앞으로 이동하기 때문에 음수는 사라진다.


여기 그림에서 광축과 영상의 평면이 만나는 주점(Principle Point )가 항상 카메라 센서의 중심에 위치 할 수 없다.
실제적으로 이는 1/100만분 정도로 중심을 맞추기 어렵기 때문이다.
그래서 투영 평면에서 좌표중심의 이동 변위를 표현하기위해서는 새로운 매개변수인 (Cx, Cy) 를 사용해야한다.
새로운 매겨변수를 추가하여 영상 평면에 맺히는 좌표는 다음을 통하여 표현을 할 수 있다.

 여기서 두 개의  초점 거리(fx, fy)를 사용한 이유는 대다수의 영상 센서의 개별 픽셀들이 정사각형이 아니기 때문이다.


예를 들어보면
 초점 거리 fx 와 fy 는 렌즈의 실제 초점 거리에 영상 센서의 개별 요소의 크기인 Sx Sy를  각각 곱한 값이다.
여기서 Sx, Sy의 단위는 픽셀 / 밀리미터 이다
fx 와 fy 역시 F 는 밀리미터를 사용하기 때문에 픽셀단위를 가지게 된다.
Sx 가 카메라 보정과정에서 직접적으로 측정을 할 수 없다.

여기서 중요한건 Sx, Sy 가 카메라 보정 과정에서 직접적으로 구할수 없다는것
그리고 물리적 초점 거리 F 또한 직접적으로 측정할 수 없다는 것이다.






도움이 되셨다면 리플 하나 달아주는 센스 !
리플 하나가 큰 힘이 된답니다 ^^