Camera models beyond pinhole

방사-접선 왜곡을 포함한 핀홀 모델은 좁거나 중간 정도의 화각에서는 잘 동작하지만, 많은 SLAM 플랫폼은 그 가정을 깨는 렌즈와 센서를 사용합니다. 넓은 화각의 렌즈는 장면을 더 많이 보게 되며---이는 더 많은 시차, 더 많은 추적 가능한 특징점, 빠른 회전에 대한 더 나은 강건성을 의미합니다---다른 투영 모델이 필요하다는 대가를 치르게 됩니다.

투영 함수 한눈에 보기

모든 중심 카메라 모델은 이미지 반경 rr이 입사각 θ\theta(들어오는 광선과 광학 축 사이의 각도)에 따라 어떻게 증가하는지로 비교할 수 있습니다:

모델r(θ)r(\theta)θ90°\theta \to 90°일 때의 거동
원근(핀홀)ftanθf\tan\theta발산---화각 180° 이상을 표현할 수 없음
등거리 어안fθf\theta유한
등면적 어안2fsin(θ/2)2f\sin(\theta/2)유한
스테레오그래픽2ftan(θ/2)2f\tan(\theta/2)유한

핀홀 투영은 광선이 축으로부터 90°에 가까워지면 폭발적으로 커지는데, 이것이 어안 렌즈가 계속 더 높은 차수의 왜곡 다항식이 아니라 그들만의 고유한 모델을 필요로 하는 근본적인 이유입니다.

어안: Kannala-Brandt

어안 렌즈는 180° 이상의 화각에 도달하는데, 이때 핀홀 원근 투영(r=ftanθr = f\tan\theta)은 발산합니다. Kannala-Brandt 모델은 대신 이미지 반경을 입사각의 다항식으로 직접 표현합니다:

r(θ)=k1θ+k2θ3+k3θ5+k4θ7r(\theta) = k_1\theta + k_2\theta^3 + k_3\theta^5 + k_4\theta^7

이 범용 모델은 등거리, 등면적을 비롯한 다른 어안 투영에도 적합하며, OpenCV(cv::fisheye)에 구현된 어안 모델이자 ORB-SLAM3와 같은 시스템이 광각 카메라에 사용하는 모델입니다. 그 구조에 주목하세요: 이는 투영 함수 자체를 대체하는 것으로, 홀수 차수 급수가 핀홀 카메라의 왜곡 다항식과 같은 역할을 합니다.

Double-sphere와 전방위 모델

Double-sphere 모델은 3D 점을 두 개의 단위 구를 거쳐 핀홀 투영으로 투영합니다. Kannala-Brandt와 비슷한 정확도로 어안 렌즈에 적합하면서도, 폐형식이고 계산이 저렴한 역투영(unprojection)을 가집니다---실시간 VIO에서 실용적인 장점인데, 역투영(픽셀에서 광선으로)은 매 프레임의 모든 특징점에서 실행되기 때문입니다. Kannala-Brandt 같은 다항식 모델은 동일한 연산에 반복적인 근 찾기가 필요합니다. 이 모델은 Basalt VIO 시스템을 만든 그룹에서 유래했습니다.

전방위 모델(예: 미러/구 오프셋 파라미터 ξ\xi를 가진 단일 구를 통해 투영하는 통합 카메라 모델, 그리고 Scaramuzza의 다항식 모델)은 카타디옵트릭 카메라(미러가 있는 카메라)와 매우 넓은 어안을 다룹니다. 이들은 Kalibr와 OpenCV의 omnidir 모듈 같은 보정 도구에서 지원됩니다.

롤링 셔터 인지

대부분의 저가 CMOS 카메라는 롤링 셔터를 사용합니다: 이미지 행들이 동시가 아니라 순차적으로 노출됩니다. 카메라나 장면이 빠르게 움직이면, 각 행은 서로 약간 다른 포즈에서 촬영되어 왜곡과 흔들림을 만듭니다. 프레임당 하나의 포즈를 가정하는 기하 모델은 이때 틀리게 됩니다: 행 vv에서 관측된 점은 실제로 다음 시간에 촬영되었습니다:

t(v)=t0+vHtreadoutt(v) = t_0 + \frac{v}{H}\,t_{\text{readout}}

여기서 t0t_0은 프레임 리드아웃 시작 시각, HH는 이미지 높이, treadoutt_{\text{readout}}은 전체 리드아웃 시간입니다. 고속 SLAM은 글로벌 셔터 하드웨어를 사용하거나, 리드아웃 전체에 걸쳐 카메라 포즈를 보간하며 행별 촬영 시간을 명시적으로 모델링합니다. 최소한, 기하학을 신뢰하기 전에 자신의 카메라가 어떤 셔터를 가지고 있는지는 알아야 합니다.

흔한 함정

SLAM에서의 의미

어안 이미지를 핀홀+왜곡 모델에 입력하거나, 빠른 플랫폼에서 롤링 셔터를 무시하면 파이프라인의 모든 측정값이 조용히 오염됩니다. 올바른 카메라 모델을 선택하고---그 모델을 지원하는 도구로 보정하는 것은 드론, AR 헤드셋, 자동차 서라운드 뷰 리그처럼 거의 항상 광각이나 어안 광학계를 사용하는 플랫폼에서 정확한 추적을 위한 전제조건입니다.

관련 문서