Bundle Adjustment
- 別名: BA
- カテゴリ: State estimation & navigation › Localisation
- タグ: slam, nonlinear-optimization, computer-vision, 3d-reconstruction, state-estimation
カメラ姿勢と 3D ランドマークの位置、場合によってはカメラパラメータも同時に、観測されたすべての特徴の再投影誤差を最小化するように洗練する非線形最小二乗法。
定義
バンドル調整(BA)(bundle adjustment)は、カメラの姿勢と 3D 点の位置を同時に調整し、各画像に投影した点が、特徴が実際に観測された位置にできるだけ近くなるようにすることで、3D 再構成を洗練する。最小化される量は再投影誤差、すなわち予測された特徴位置と測定された特徴位置の間のピクセル距離の二乗和であり、通常は測定の不確かさで重み付けされ、誤った対応の影響を抑えるために Huber や Cauchy などのロバスト損失で包まれる。名前は、各 3D 点とそれを観測するカメラ中心とを結ぶ光線の束(バンドル)に由来し、最適化はこれらの束が一致するまで調整する。この手法は写真測量に由来し、広く引用される現代的な解説として Triggs、McLauchlan、Hartley、Fitzgibbon によるサーベイ(2000)がある。
回転と透視投影のためにこの問題は非線形であり、通常は Levenberg-Marquardt 法で反復的に解かれる。その構造により大規模でも扱いやすい。各残差は 1 台のカメラと 1 つの点だけに関わるのでシステムは疎であり、シューア補行列で点を消去すると、カメラ変数だけのはるかに小さなシステムが残る。解はゲージ自由度、すなわち全体の回転と並進、さらに他のセンサーをもたない単一カメラの場合は全体のスケールを除いてしか定まらないため、一部の変数を固定するか事前分布を加える。カメラ内部パラメータと歪みがよくキャリブレーションされていない場合は、それらを同時に洗練することもできる。
ロボティクスでは、BA は Structure from Motion とキーフレームベースの視覚 SLAM の中核である。グローバル BA は地図全体を最適化し、オフラインで、あるいはループクロージャの後に実行される。ローカル BA またはスライディングウィンドウ BA は、最新のキーフレームとそれらから見えるランドマークだけを最適化し、古い状態は固定または周辺化するので、リアルタイムで実行できる。視覚慣性システムは IMU プリインテグレーションのファクターでこれを拡張し、他のセンサーのファクターも同じファクターグラフに加えられる。BA がポーズグラフ最適化と異なるのは、ランドマークを変数として残し、生の画像測定を用いる点である。ポーズグラフは姿勢と相対制約だけを保持するため、より高速で小さいが、情報を捨ててしまう。
重要な理由
バンドル調整は、ノイズを含む特徴の追跡を、正確なカメラ軌跡と 3D 地図に変えるものである。ほとんどの視覚オドメトリ、視覚 SLAM、写真測量のパイプラインがこれに依存しており、グローバル、ローカル、スライディングウィンドウの BA のどれを選ぶかが、これらのシステムにおける精度とリアルタイム性能のトレードオフをおおむね決める。
主な用途
- Structure from Motion と写真測量
- キーフレームベースの視覚 SLAM と視覚慣性 SLAM のバックエンド
- ドローン、車両、水中ロボットでのスライディングウィンドウ型の視覚オドメトリ
- マルチカメラおよびカメラ・LiDAR キャリブレーションの精緻化
- 点検、マッピング、デジタルツインのための 3D 再構成
実際の使われ方
水中ロボットや空中ロボットに載せた視覚慣性 SLAM システムでは、カメラが十分に移動するたびに新しいキーフレームが作られる。続いてスライディングウィンドウ型の最適化器が、追跡した特徴による再投影ファクターと、キーフレーム間のプリインテグレーション済み IMU ファクターを用いて、最新のキーフレームの姿勢、それらの速度と IMU バイアス、そしてそれらのキーフレームで見えるすべてのランドマークを洗練する。古いキーフレームは事前分布へと周辺化され、ウィンドウは一定の大きさに保たれる。Huber 損失は、移動物体や反射による誤対応の特徴の影響を抑える。ループクロージャが検出されると、ポーズグラフ最適化または完全なグローバル BA が軌跡全体のドリフトを補正する。これは通常、バックグラウンドのスレッドで行われる。
よくある誤解
- バンドル調整はポーズグラフ最適化と同じである — BA は画像の測定値に対してランドマークの位置も最適化するが、ポーズグラフは姿勢と相対制約だけを保持する
- BA は悪い初期値を修正してくれる — BA は局所的な最適化手法であり、正しい答えに収束するには姿勢と点の妥当な初期推定が必要である
- 単眼の BA で真のスケールが復元できる — 他のセンサーや既知の寸法がなければスケールは観測不能であり、ドリフトしうる
- BA はオフラインの再構成専用である — ローカルとスライディングウィンドウの変種は、多くの SLAM システムでリアルタイムに動作する
知っておくべき人
- 視覚 SLAM と視覚オドメトリのエンジニア
- コンピュータビジョンと写真測量のエンジニア
- カメラと他のセンサーを融合する状態推定エンジニア
- マッピングと自己位置推定を学ぶロボティクスの学生
関連技術
- Structure from Motion
- Levenberg-Marquardt 法(Levenberg-Marquardt Algorithm)
- Ceres Solver
- g2o
- GTSAM
- COLMAP
関連用語
関連プロジェクト
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
動画
- Bundle Adjustment - 5 Minutes with Cyrill: Cyrill Stachniss
- The Basics about Bundle Adjustment (Cyrill Stachniss): Cyrill Stachniss