Keyframe
- 別名: key frame, KF
- カテゴリ: State estimation & navigation › Localisation
- タグ: slam, visual-odometry, mapping, state-estimation, bundle-adjustment
SLAM やマッピングのシステムが、後の最適化のために姿勢と観測とともに保持する選ばれたフレーム。その他の大半のフレームは一時的に使われて破棄される。
定義
キーフレーム(Keyframe)は、SLAM、オドメトリ、マッピングのシステムが保持すると決めた、少数のカメラ画像やセンサスキャンの 1 つである。入ってくるフレームはすべてセンサの動きの追跡に使われるが、推定された姿勢と、画像特徴、深度、LiDAR 点群などの観測とともに保存されるのはキーフレームだけである。その後、地図と軌道は、すべてのフレームではなくこれらのキーフレームを使って精緻化される。この方式は、Georg Klein と David Murray が 2007 年に発表した PTAM によってリアルタイムのビジュアル SLAM の手法として確立された。PTAM はトラッキングとマッピングを別々のスレッドに分け、この方式はその後 ORB-SLAM などのシステムでさらに発展した。
新しいキーフレームを作る規則は、設計上の中心的な選択である。一般的な基準には、直前のキーフレームからの時間や距離、新しい点を三角測量できるだけの視差、そして現在の視野と直前のキーフレームとの重なりの減少(たとえば共有する特徴や、共有する地図のボクセルで測る)がある。システムは、冗長になったキーフレームを間引く(cull)こともする。キーフレームが少なすぎるとトラッキングが失われたり地図が疎になったりし、多すぎると情報は増えないまま最適化が遅くなる。
最適化ベースの SLAM を計算的に現実的なものにしているのがキーフレームである。バンドル調整や姿勢グラフ最適化はキーフレーム上で、多くの場合は局所的なウィンドウ内のキーフレームだけで実行され、ループクロージャの探索は新しいフレームを保存済みのキーフレームと比較する。ニューラル暗黙的マッピングや密なマッピングのシステムでは、地図の学習中にキーフレームの集合をリプレイし、ネットワークや特徴グリッドを新しいフレームで更新しても、以前に観測した領域が忘れられないようにする。
重要な理由
センサが生み出すフレームは、ロボットがリアルタイムで最適化できる量をはるかに超える。キーフレームの選択はどの情報を残すかを決めるので、それに基づくあらゆる SLAM システムの地図の品質、トラッキングのロバスト性、メモリ使用量、計算予算に直接影響する。
主な用途
- ビジュアル SLAM とビジュアル・慣性 SLAM における局所バンドル調整
- 保存済みキーフレームのデータベースに対するループクロージャ検出
- ニューラル暗黙的マッピングや密なマッピングにおける過去の観測のリプレイ
- トラッキングを失った後の再位置推定
- 長期的な自己位置推定のための軽量な地図の構築
実際の使われ方
毎秒 30 フレームで動く手持ちリグでビジュアル・慣性 SLAM システムを動かしているチームは、歩いているときには毎秒数個のキーフレームしか作られず、立ち止まっているときにはほとんど作られないことに気づく。特徴の乏しい廊下に入るとトラッキングが不安定になる。重なりのしきい値を下げてキーフレームを早めに挿入すると、三角測量された点を十分に保ちやすくなる。ニューラル LiDAR マッピングのシステムでは、新しいスキャンと直前のキーフレームとの重なりがしきい値を下回ったときにそのスキャンを保持するようにキーフレームの規則を設定し、各最適化ステップでは現在のフレームと、選んだ保存済みキーフレームからレイをサンプリングする。上限のない集合はいずれ最適化を遅くするため、長時間の実行ではキーフレームの数を見守る。
よくある誤解
- すべてのフレームが地図の一部になる — ほとんどのフレームはトラッキングにしか使われず、保存されて最適化されるのは選ばれたキーフレームだけである
- キーフレームが多いほど地図は必ずよくなる — 冗長なキーフレームは新しい情報をほとんど加えずに計算を増やすため、システムはそれらを間引く
- SLAM のキーフレームはアニメーションのキーフレームと同じものである — SLAM では姿勢付きで保存されたセンサの観測であり、補間に使う手作業で設定した姿勢ではない
知っておくべき人
- SLAM とビジュアルオドメトリのエンジニア
- ニューラルな 3D マッピングや密な 3D マッピングのシステムの開発者
- ドローンと移動ロボットのナビゲーションチーム
- Structure from Motion を学ぶコンピュータビジョンの学生
関連技術
- ORB-SLAM
- PTAM
- バンドル調整(Bundle Adjustment)
- ビジュアル・慣性オドメトリ(Visual-Inertial Odometry)
- Bag of Visual Words
関連用語
- SLAM
- Visual Odometry
- Pose Graph Optimization
- Neural Implicit Representation
- Neural Radiance Field
- Loop Closure
関連プロジェクト
- 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