Camera models beyond pinhole
半径方向・接線方向歪みを伴うピンホールモデルは、狭い〜中程度の視野角ではうまく機能するが、多くのSLAMプラットフォームはその前提を破るレンズやセンサーを使用している。広視野角レンズはより多くのシーンを見ることができ、それはより多くの視差、より多くの追跡可能な特徴点、そして高速な回転に対するより高い頑健性を意味する — その代償として異なる投影モデルが必要になる。
投影関数の概観
すべての中心射影カメラモデルは、画像半径 が入射角 (入射光線と光軸との間の角度)に対してどのように増加するかによって比較できる:
| モデル | での挙動 | |
|---|---|---|
| 透視投影(ピンホール) | 発散する — 視野角180°以上は表現不可能 | |
| 等距離魚眼 | 有限 | |
| 等立体角魚眼 | 有限 | |
| ステレオグラフィック | 有限 |
ピンホール投影は光軸から90°に近づくにつれて発散する。これが、魚眼レンズが際限のない高次歪み多項式ではなく、独自のモデルを必要とする根本的な理由である。
魚眼: Kannala-Brandt
魚眼レンズは180°以上の視野角に達し、そこではピンホールの透視投影()は発散してしまう。Kannala-Brandtモデルは代わりに、画像半径を入射角の多項式として直接表現する:
この汎用モデルは、等距離、等立体角、その他の魚眼投影に適合し、OpenCV(cv::fisheye)で実装されている魚眼モデルであり、広角カメラ向けにORB-SLAM3などのシステムで使用されている。その構造に注目したい。これは投影関数自体の置き換えであり、奇数乗の級数がピンホールカメラにおける歪み多項式と同じ役割を果たしている。
Double-sphereモデルと全方位モデル
double-sphereモデルは、3D点を2つの単位球を通して投影し、続いてピンホール投影を行う。このモデルは、Kannala-Brandtに匹敵する精度で魚眼レンズに適合しつつ、閉形式で計算コストの低い逆投影(unprojection)を持つ — これは、逆投影(ピクセルからレイへの変換)が毎フレーム・毎特徴点で実行されるリアルタイムVIOにおいて実用上の利点である。Kannala-Brandtのような多項式モデルは、同じ演算のために反復的な求根計算を必要とする。このモデルは、Basalt VIOシステムの開発チームによって考案された。
全方位モデル(例えば、鏡/球のオフセットパラメータ を持つ単一の球を通して投影する統一カメラモデルや、Scaramuzzaの多項式モデル)は、鏡を持つカメラ(カタディオプトリックカメラ)や非常に広い魚眼をカバーする。これらは、KalibrやOpenCVの omnidir モジュールなどのキャリブレーションツールによってサポートされている。
ローリングシャッターへの配慮
ほとんどの低コストCMOSカメラはローリングシャッターを使用する。画像の各行は同時ではなく、順次露光される。カメラやシーンが高速に動く場合、各行はわずかに異なるポーズから撮影されることになり、スキューやウォブルが生じる。1フレームに1つのポーズを仮定する幾何モデルはこの場合誤りとなる。行 で観測される点は、実際には次の時刻に撮影されている:
ここで はフレーム読み出しの開始時刻、 は画像の高さ、 は総読み出し時間である。高速SLAMでは、グローバルシャッターのハードウェアを使用するか、行ごとの撮影時刻を明示的にモデル化し、読み出し全体にわたってカメラポーズを補間する。少なくとも、幾何を信頼する前に自分のカメラがどちらのシャッターを持つかを知っておくべきである。
よくある落とし穴
- 魚眼レンズを半径方向・接線方向のピンホールモデルに強制的に当てはめること: 画像中心付近ではよく適合するが、境界付近では大きく失敗する — キャリブレーションの視点がエッジを避けていた場合、再投影誤差の統計は見かけ上良好に見えてしまう。
- 魚眼画像をピンホール表示に補正することは、広い視野角を失う(クロッピング)か、周辺部を大きく引き伸ばしてしまう。現代のシステムはネイティブモデルを保持し、代わりにソルバーを適応させる。
- ツール間で規約を混在させること: 同じレンズをKalibr、OpenCV、SLAMシステムの設定でキャリブレーションしても、パラメータの順序やモデル名が異なることがある。数値を目視で確認するのではなく、点を再投影して検証すること。
SLAMにおける意義
魚眼画像をピンホール+歪みモデルに入力すること、あるいは高速なプラットフォームでローリングシャッターを無視することは、パイプライン内のすべての計測を静かに損なう。適切なカメラモデルを選択し — そしてそのモデルをサポートするツールでキャリブレーションすること — は、ドローン、ARヘッドセット、自動車のサラウンドビューリグなど、広角レンズや魚眼光学系をほぼ常に使用するプラットフォームにおいて、正確な追跡のための前提条件である。