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点を2つの単位球を通して投影し、続いてピンホール投影を行う。このモデルは、Kannala-Brandtに匹敵する精度で魚眼レンズに適合しつつ、閉形式で計算コストの低い逆投影(unprojection)を持つ — これは、逆投影(ピクセルからレイへの変換)が毎フレーム・毎特徴点で実行されるリアルタイムVIOにおいて実用上の利点である。Kannala-Brandtのような多項式モデルは、同じ演算のために反復的な求根計算を必要とする。このモデルは、Basalt VIOシステムの開発チームによって考案された。

全方位モデル(例えば、鏡/球のオフセットパラメータ ξ\xi を持つ単一の球を通して投影する統一カメラモデルや、Scaramuzzaの多項式モデル)は、鏡を持つカメラ(カタディオプトリックカメラ)や非常に広い魚眼をカバーする。これらは、KalibrやOpenCVの omnidir モジュールなどのキャリブレーションツールによってサポートされている。

ローリングシャッターへの配慮

ほとんどの低コストCMOSカメラはローリングシャッターを使用する。画像の各行は同時ではなく、順次露光される。カメラやシーンが高速に動く場合、各行はわずかに異なるポーズから撮影されることになり、スキューやウォブルが生じる。1フレームに1つのポーズを仮定する幾何モデルはこの場合誤りとなる。行 vv で観測される点は、実際には次の時刻に撮影されている:

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

ここで t0t_0 はフレーム読み出しの開始時刻、HH は画像の高さ、treadoutt_{\text{readout}} は総読み出し時間である。高速SLAMでは、グローバルシャッターのハードウェアを使用するか、行ごとの撮影時刻を明示的にモデル化し、読み出し全体にわたってカメラポーズを補間する。少なくとも、幾何を信頼する前に自分のカメラがどちらのシャッターを持つかを知っておくべきである。

よくある落とし穴

SLAMにおける意義

魚眼画像をピンホール+歪みモデルに入力すること、あるいは高速なプラットフォームでローリングシャッターを無視することは、パイプライン内のすべての計測を静かに損なう。適切なカメラモデルを選択し — そしてそのモデルをサポートするツールでキャリブレーションすること — は、ドローン、ARヘッドセット、自動車のサラウンドビューリグなど、広角レンズや魚眼光学系をほぼ常に使用するプラットフォームにおいて、正確な追跡のための前提条件である。

関連ノート