Keyframe
- 又稱: key frame, KF
- 類別: State estimation & navigation › Localisation
- 標籤: slam, visual-odometry, mapping, state-estimation, bundle-adjustment
SLAM 或建圖系統選出並連同其姿態與觀測資料一起保留、供之後最佳化使用的影格,而其他大多數影格只會短暫使用後便被捨棄。
定義
關鍵影格(Keyframe)是 SLAM、里程計或建圖系統決定保留的一小組相機影像或感測器掃描中的一個。每個傳入的影格都會用來追蹤感測器的運動,但只有關鍵影格會連同其估測姿態與觀測資料(例如影像特徵、深度或光達點)一起儲存。接著,地圖與軌跡會使用這些關鍵影格、而非每一個影格來加以精修。這種做法由 Georg Klein 與 David Murray 於 2007 年提出的 PTAM 確立為即時視覺 SLAM 的方法,PTAM 把追蹤與建圖拆成不同的執行緒;之後在 ORB-SLAM 等系統中又有進一步的發展。
建立新關鍵影格的規則是核心的設計選擇。常見的條件包括距上一個關鍵影格的時間或距離、足以三角量測新點的視差,以及目前視野與上一個關鍵影格重疊程度的下降,例如以共有特徵或共有的地圖體素來衡量。系統也會剔除(cull)已經變得多餘的關鍵影格。關鍵影格太少,追蹤會遺失或地圖會稀疏;太多,最佳化會變慢卻不會增加資訊。
關鍵影格讓以最佳化為基礎的 SLAM 在運算上負擔得起。光束法平差與姿態圖最佳化都在關鍵影格上執行,通常只用一個局部視窗內的關鍵影格;迴圈閉合搜尋則把新影格與儲存的關鍵影格比較。在神經隱式與稠密建圖系統中,訓練地圖時會重播一組關鍵影格,讓網路或特徵網格以新影格更新時,先前觀測到的區域不會被遺忘。
為何重要
感測器產生的影格,遠多於機器人能即時最佳化的數量。關鍵影格的選擇決定要保留哪些資訊,因此會直接影響以它為基礎的每個 SLAM 系統的地圖品質、追蹤穩健性、記憶體用量與運算預算。
主要應用
- 視覺 SLAM 與視覺慣性 SLAM 中的局部光束法平差
- 比對已儲存關鍵影格資料庫的迴圈閉合偵測
- 在神經隱式與稠密建圖中重播過去的觀測
- 追蹤遺失後的重新定位
- 為長期定位建立輕量化地圖
實際應用
一個團隊在以每秒 30 個影格運作的手持裝置上執行視覺慣性 SLAM 系統,發現走動時每秒只會建立幾個關鍵影格,站著不動時則幾乎不建立。走進特徵稀少的走廊時,追蹤變得不穩;降低重疊門檻、讓關鍵影格更早插入,有助於維持足夠的三角量測點。對於一個神經光達建圖系統,他們設定的關鍵影格規則是:當新的掃描與上一個關鍵影格的重疊低於門檻時就保留它;每個最佳化步驟都從目前影格與一部分選出的已儲存關鍵影格中取樣光線。長時間運作時,他們會留意關鍵影格的數量,因為沒有上限的集合最終會拖慢最佳化。
常見誤解
- 每個影格都會成為地圖的一部分 — 大多數影格只用於追蹤;只有選出的關鍵影格會被儲存與最佳化
- 關鍵影格越多,地圖一定越好 — 多餘的關鍵影格會增加運算,卻幾乎沒有新資訊,這就是系統要剔除它們的原因
- SLAM 中的關鍵影格與動畫中的關鍵影格是同一回事 — 在 SLAM 中,它是帶有姿態、被儲存起來的感測器觀測,而不是用來內插的手動設定姿勢
誰需要了解
- SLAM 與視覺里程計工程師
- 神經與稠密 3D 建圖系統的開發者
- 無人機與移動機器人導航團隊
- 研讀運動恢復結構的電腦視覺學生
相關技術
- 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