Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Visual SLAM入門 〜発展の歴史と基礎の習得〜

Avatar for Ken Sakurada Ken Sakurada
November 06, 2021

Visual SLAM入門 〜発展の歴史と基礎の習得〜

2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル (2022年12月更新)

Visual SLAM入門 〜発展の歴史と基礎の習得〜

1.画像を用いた空間認識の必要性
2.Visual SLAMの概要
3.3次元復元の予備知識
4.特徴点ベースのVisual SLAMの基礎
5.今後の展開

Avatar for Ken Sakurada

Ken Sakurada

November 06, 2021
Tweet

Other Decks in Research

Transcript

  1. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 講演者プロフィール 2 櫻田 健 京都大学

    大学院情報学研究科 准教授 学位取得や共同研究、その他連携にご興味がある方は気軽に ご連絡ください。 Ken Sakurada
  2. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 自己位置推定と地図構築 Simultaneous Localization and Mapping

    (SLAM) 意味的な理解と合わせてSpatial AI へ発展 7 [1] A. J Davison, “FutureMapping: The Computational Structure of Spatial AI Systems”, arXiv, 2018 [2] A. J Davison et al., “FutureMapping 2: Gaussian Belief Propagation for Spatial AI”, arXiv, 2019 一般的なSpatial AIシステムの構成 (文献[1]の図を引用)
  3. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 自己位置推定と地図構築 Simultaneous Localization and Mapping

    (SLAM) 鶏と卵の関係にある未知変数を同時に解く枠組み • Localization • 既知:マップ → センサ姿勢 • Mapping • 既知:センサ姿勢 → マップ 8
  4. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 自己位置推定と地図構築 Simultaneous Localization and Mapping

    (SLAM) 広義 • センサの位置姿勢とマップを同時推定 • Structure from Motion (SfM) やVisual Odometry (VO)も含む 狭義 • リアルタイムで逐次的に位置姿勢とマップを推定 • カメラの場合は動画を対象とするVisual SLAM 9
  5. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 自己位置推定と地図構築 10 本講演ではカメラを利用するVisual SLAMを解説 LiDAR

    SLAM (文献[4]のFig.10.aを引用) Visual SLAM (文献[36]の図を引用) RADAR SLAM (文献[6]の図を引用) WiFi SLAM (文献[7]の図を引用) Simultaneous Localization and Mapping (SLAM) 多様なセンサを利用したSLAMが存在 • カメラ,LiDAR,Radar,WiFi 等のセンサの位置姿勢とマップを同時推定 • Structure from Motion (SfM) やVisual Odometry (VO)も含む
  6. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Visual SLAMの応用例 • ロボットの行動計画 •

    拡張現実(AR) • 現実の映像に対してCGを適切に配置・表示 • 定規,家具レイアウトシミュレータ • 加速度センサを利用して実スケール推定 11
  7. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 画像を用いた3次元地図構築の必要性 カメラ(イメージセンサ) 長所 • 高い普及率

    • 高い空間・時間解像度 • 豊富な情報量 短所 • 照明条件の変化に対する脆弱性 • テクスチャの環境依存性 • 高い計算コスト 12 照明条件や視点の違いによる見えの変化 (文献[9]の図を引用) ☺ 
  8. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 2. Visual SLAMの概要 • SLAM問題の定式化

    • OdometryとSLAM • Visual SLAMの発展の歴史 • 特徴点ベースの手法(Feature-based method) • 直接法(Direct method) • 深層学習ベースの手法(CNN-based method) 14
  9. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) SLAM問題の定式化 16 SLAMは二つの要素から構成 • front-end(低レベルな処理)

    • センサデータから必要な情報を抽出(例:特徴点抽出,マッチング) • backend(高レベルな処理) • front-endが抽出した情報から状態を推定(例:バンドル調整) [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016 (図,画像を引用) まずはback-endの定式化について理解しSLAM問題を俯瞰 SLAM問題のFactor-graph SLAMのfront-endとback-end
  10. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) SLAM問題の定式化 17 最大事後確率推定 (Maximum a

    Posteriori (MAP) Estimation) ⇒ 𝐳 が与えられた時 𝐱 の事後確率𝑝(𝐱|𝐳)が最大となるො 𝐱を推定 • 𝐱 :推定したい状態変数 • センサ姿勢や3次元マップ等 • 𝐳 :観測情報 • カメラや距離センサ等 ො 𝐱 = argmax 𝑝(𝐱|𝐳) 𝐱 𝑝(𝐱|𝐳)の直接的なモデル化は難しい 画像を用いた3次元復元の場合 未知: 𝐱 = 𝐩𝐓, 𝐗𝐓 𝐓 , 既知: 𝐳 𝐩(1), 𝐩(2), 𝐗(1), 𝐗(2), 𝐗(3) 複雑な関数(処理)𝑓 𝒛(𝟏,𝟏) 𝒛(𝟏,𝟐) 𝒛(𝟐,𝟏) 𝒛(𝟐,𝟐) = 𝑝(𝐱|𝐳) [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016
  11. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) SLAM問題の定式化 ベイズの定理を利用して𝑝(𝐳|𝐱)から間接的に𝑝(𝐱|𝐳)を推定 • 𝑝(𝐱|𝐳):観測𝐳が得られ時に状態𝐱である確率 •

    直接的なモデル化が困難 • 𝑝(𝐳|𝐱):状態𝐱が得られ時に観測𝐳である確率 • 例:カメラの投影モデル • ベイズの定理 18 未知:𝐳, 既知:𝐱 = 𝐩𝐓, 𝐗𝐓 𝐓 𝐗(1) 𝐗(2) 𝐗(3) 𝐩(1) 𝐩(2) 𝒛 𝐩(1), 𝐗(2) 𝒛 𝐩(2), 𝐗(2) 𝒛 𝐩(2), 𝐗(3) 𝒛 𝐩(1), 𝐗(1) ※ 𝒇 𝐱(𝒊,𝒋) = 𝒛 𝐩(𝑖), 𝐗(𝑗) は単純な投影関数 = argmax 𝑝(𝐳|𝐱)𝑝(𝐱) 𝐱 ො 𝐱 = argmax 𝑝(𝐱|𝐳) 𝐱 𝑝 𝐱 𝐳 = 𝑝(𝐳|𝐱)𝑝(𝐱) 𝑝(𝐳) ( ∵ 𝑝(𝐳)は𝐱に依存しない定数 ) 画像を用いた3次元復元の場合 カメラの投影モデル = 𝑝 𝐳 𝐱 [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016
  12. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) SLAM問題の定式化 一般的なSLAM問題では以下を仮定 • 各観測𝒛𝑘 は独立かつ,一部の状態変数𝐱𝑘

    のみに依存 • 𝑝 𝐱 :状態 𝐱 の事前分布 • 𝐱について一切の事前知識が得られなければ𝑝 𝐱 は定数(一様分布) • 最大事後確率推定 ⇒ 最尤推定(Maximum Likelihood Estimation (MLE)) 19 ො 𝐱 = argmax 𝑝(𝐱) ෑ 𝑘=1 𝑚 𝑝(𝒛𝑘 |𝐱𝑘 ) 𝐱 [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016
  13. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) SLAM問題の定式化 𝑝(𝒛𝑘 |𝐱𝑘 )の具体的なモデル化 •

    状態𝐱𝑘 において観測𝒛𝑘 が得られる確率 • 観測誤差𝛜𝑘 を平均0 ,共分散行列Σ𝑘 のガウス分布と仮定 • 観測モデルと実際の観測の差分 • バンドル調整では再投影誤差(reprojection error, geometric error) • 観測尤度を𝐞𝑘 と精度行列W = Σ𝑘 −1で表現 20 𝑝 𝒛𝑘 𝐱𝑘 ∝ exp − 1 2 𝑓𝑘 𝐱𝑘 − 𝐳𝑘 Σ𝑘 2 𝑝 𝒛𝑘 𝐱𝑘 ∝ exp − 1 2 𝐞𝑘 TW𝑘 𝐞𝑘 ( ∙ Σ𝑘 2 はマハラノビス距離) 𝐞𝑘 = 𝑓𝑘 𝐱𝑘 − 𝐳𝑘 [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016
  14. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) SLAM問題の定式化 非線形最小二乗問題に帰着 • 事前分布を仮定 •

    負の対数尤度最小化として定式化 21 𝑝 𝒛𝟎 𝐱𝟎 ∝ exp − 1 2 𝐞0 TW0 𝐞0 ො 𝐱 = argmin − ln 𝑝(𝐱) ෑ 𝑘=1 𝑚 𝑝(𝒛𝑘 |𝐱𝑘 ) = argmin ෍ 𝑘=0 𝑚 𝐞𝑘 TW𝑘 𝐞𝑘 𝐱 𝐱 = argmin 𝐞TW𝐞 𝐱 (𝐞: 𝐞𝑘 を一列に並べたベクトル) (多くの問題で 𝐞𝑘 = 𝑓𝑘 𝐱𝑘 − 𝐳𝑘 の𝑓𝑘 は非線形関数) [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016
  15. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) OdometryとSLAM SLAMは正しいトポロジーの認識が可能 • Odometry •

    移動量のみ推定するため前後接続のみ認識 • SLAM • ループクロージングにより同一地点の接続を認識 23 ☺  [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016
  16. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) SfM vs Visual SLAM vs

    VO 基本的なカメラ幾何や最適化手法は共通 24 SfM,Visual SLAM,VOの関係性 (文献[19]の図を引用) 対象データ 最適化(誤差の修正) 特徴 SfM 未整列画像 (それ以外も可) 大域的バンドル調整 (全フレーム) オフライン処理による高精度な復元 (全画像対のマッチング等) Visual SLAM 動画 局所的バンドル調整 +ループクロージング (キーフレームのみ) 計算量削減によるリアルタイム処理 (微小移動仮定,キーフレーム導入, ループクロージング等)
  17. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Visual SLAMの発展の歴史 • 複数枚の画像からカメラの相対姿勢と3次元構造を推定 •

    古くからCV分野でSfMとして研究 • 画像のみから車両の移動量を推定 • 1980年代初頭にNASAの惑星探査ローバーを対象として開始 • リアルタイムにカメラ姿勢とマップを推定 • 2003年にEKFベースのmonoSLAMが提案 • 様々なデバイスを対象とした手法 • 単眼,ステレオ,RGB-D,イベントカメラ, etc. 26 本講演では単眼Visual SLAMについて解説します [19] D. Scaramuzza, “Tutorial on Visual Odometry”, http://mrsl.grasp.upenn. edu/loiannog/tutorial_ICRA2016/VO_Tutorial.pdf Mars Exploration Rovers https://mars.nasa.gov/mars- exploration/missions/mars- exploration-rovers から画像を引用
  18. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Visual SLAMの分類 • 特徴点ベースの手法 (Feature-based

    method) • 動画内で追跡しやすいコーナー点などを複数検出・対応付し,幾何的な誤差 geometric error を最小化 • 直接法 (Direct method) • 画像間の輝度値の誤差 photometric error を最小化 • 深層学習ベースの手法 (CNN-based method) • 従来手法の一部を置換または補完 • End-to-endで学習 • DNNで抽出・推定した特徴や奥行きを多視点最適化 • Neural Fieldsの導入 27
  19. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 28 Visual SLAMの発展の歴史(単眼カメラを用いた代表的な手法のみ掲載) ORB-SLAM LSD-SLAM

    2017 CNN-SLAM SuperPoint SuperGlue 2019 SfM-learner 2020 2018 深層学習 CodeSLAM D3VO DNNでモジュール置換 DNNによる特徴点検出 BANet 単眼デプス推定の導入 LSD-SLAM + CNNデプス推定 単眼デプスのslSL (連続画像で学習) 2016 monodepth 単眼デプスのslSL (ステレオで学習) 姿勢も推定 単眼デプスも多視点 最適化しながら学習 単眼デプス 特徴点 直接法 ≈ デプス次元圧縮+多視点最適化 DeepTAM End-to-endのトラッ キング&マッピング End-to-Endの(特徴点検出&)マッチング DVSOの改良版 (slSL) 数多の改良 + 焦点距離も同時推定 GNNによる特徴点マッチング ORB-SLAM 2003 2007 2014 DTAM SVO LSD-SLAM 2016 バイナリ特徴(ORB)の導入 Scale-drift aware MonoSLAM トラッキング&マッピング&ループ検出に同じ 特徴量(ORB)を利用,Essential Graphの導入 その他各種改良 PTAM + ループクロージング 高速,高精度,大規模 2010 直接法 2011 特徴点ベース&直接法 DSO 疎な直接法 大規模環境に対応 Semi-dense化 CPUリアルタイム GPUリアルタイム Sparse化 特徴点 非学習 DROID-SLAM 微分可能な形で再帰的に 姿勢とデプスを同時最適化 Optical Flow (OF) を利用したgeometric errorの導入 Dense BA層を導入しカメラ姿勢&各画素 のデプスをGNで直接的に多視点最適化 2021 * Self-supervised Learning (slSL) Parallel real-time VO PTAM + ORB + 各種並列化 2013 * Semi-supervised Learning (smSL) * Supervised Learning (SL) DeepFactor CodeSLAMの改良版 ループクロージングの追加 高精度化&リアルタイム化 DVSO DSOの改良版 (smSL) DSO ステレオ画像で学習した単眼デプス推定を導入 姿勢&輝度値の不確かさにもDNNを導入 (Stereo DSOで推定したデプスを教師として利用) (ステレオ動画のみから学習) DeMoN 2視点のデプス &姿勢の推定 動画へ対応 DEEPV2D OFのgeometric error による交互最適化 2004 MonoSLAM PTAM トラッキング・ マッピングの並列化 EKFベース スケールドリフト考慮の ループクロージング キーフレームの導入 非線形最適化 キーフレームシステムの継承 Visual Odometry SfMベース(非線形最適化) z レンズ歪み も同時推定 Neural Ray Surfaces ピンホールモデル 以外も対応 Youtubeのような 大量の動画から学習可 Depth from Video in the Wild
  20. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴点ベースの手法 (Feature-based method) 動画内で追跡しやすいコーナー点などを複数検出・対応付し,幾何的な誤 差を最小化

    • geometric error(再投影誤差:reprojection error ) • の和を最小化するカメラ姿勢 と 3D点の位置 を推定 29 ( ) ( ) ( ) ( , ) ( ) , ( ) ( ) ( ) ( ) ( , ) ( , ) ( , ) geometric error の模式図 𝒛 𝐩(𝑖), 𝐗(𝑗) :姿勢𝐩(𝑖) の画像平面に3D点𝐗(𝑗)を投影する関数 𝒛(𝒊,𝒋) :画像𝑖上で検出された2D点𝑗
  21. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 画像間の輝度値の誤差を最小化 • photometric error •

    の和を最小化するカメラ姿勢 と デプス𝐝を推定 直接法 (Direct method) 30 ( ) ( ) ( ) ( , ) ( ) , ( ) ( ) ( ) ( ) ( , ) ( , ) ( , ) ( , ) ( ) ( ) ( ) ( , , ) ( , , ) ( , , ) ( , , ) ( , ) ( ) , ( , ) photometric error の模式図 X(𝒑 𝑖 , 𝑑(𝑖,𝑗)):画像𝐼(𝑖)の𝑗番目の2D点𝐳(𝑖,𝑗)を𝑑(𝑖,𝑗)で投影した3D点 𝒛(𝑖,𝑗,𝑘) : X(𝒑 𝑖 , 𝑑(𝑖,𝑗))を観測する別の画像𝐼(𝑘)に投影した2D点 𝑑(𝑖,𝑗) :デプスの逆数(Inverse depth)
  22. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの手法 (DNN-based method) Visual SLAMに深層学習を導入する方法は多岐に渡る

    代表例 i. 従来手法の一部をDNNで置換または補完 ii. 全てNNで構成(End-to-endで学習) iii. DNNで抽出・推定した特徴や奥行きを多視点最適化 iv. Neural Fieldsの導入 31
  23. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴点ベースの手法の例 ① MonoSLAM [A. J.

    Davison, 2003] • 拡張カルマンフィルター(EKF)ベース • 単眼カメラでリアルタイムに3D点とカメラ姿勢を推定 • 3D点を追跡し統一的なマッピングを行うことで累積誤差の修正を可能 • 当時のコンピュータで約100個の特徴点に対して30Hzの処理を実現 32 カメラ姿勢,3D点(+不確かさ) 特徴パッチとその3Dマップ上の位置 [26] A. J. Davison et al., “Real-Time Simultaneous Localisation and Mapping with a Single Camera”, ICCV, 2003 [27] A. J. Davison et al., “MonoSLAM: Real-Time Single Camera SLAM”, TPAMI, 2007(画像を引用)
  24. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴点ベースの手法の例 ② PTAM [G. Klein,

    2007] • 姿勢の変化が激しい手持ちカメラに対応 • マルチコアCPUを活用しトラッキングとマッピングを並列処理 • ロバスト性の高いトラッキング手法の導入や,キーフレームのみを用いた効率的な マッピングが可能 • リアルタイムの数千点のマッピング,高精度なAR表示を実現 33 3Dマップと検出平面 PTAMを利用したAR表示 [29] G. Klein et al., “Parallel Tracking and Mapping for Small AR Workspaces”, ISMAR, 2007 (画像を引用)
  25. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴点ベースの手法の例 ③ ORB-SLAM [R. Mur-Artal,

    2014] • 各種計算の高精度化・効率化 • トラッキングやマッピングで利用したORB特徴量をリローカリゼーションやルー プクロージングでも活用 • ループクロージングを別スレッド化,Essential Graphによるポーズグラフ最適 化の高速化,F&H行列を用いたロバストな初期化 • ORB-SLAM2:ステレオ,RGB-D,ORB-SLAM3:VI-SLAM,マルチマップ 34 ループクロージングによる累積誤差の修正 ORB-SLAM2のシステム構成図 [35] R. Mur-Artal et al., “ORB-SLAM: Tracking and Mapping Recognizable Features”, RSS, MVIGRO , 2014 [36] R. Mur-Artal et al., “ORB- SLAM: A Versatile and Accurate Monocular SLAM System”, TRO, 2015 (画像を引用) [37] R. Mur-Artal et al., “ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras ”, TRO, 2017 (図を引用) [38] C. Campos et al., “ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM”, TRO, 2021
  26. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 35 Visual SLAMの発展の歴史(単眼カメラを用いた代表的な手法のみ掲載) ORB-SLAM LSD-SLAM

    2017 CNN-SLAM SuperPoint SuperGlue 2019 SfM-learner 2020 2018 深層学習 CodeSLAM D3VO DNNでモジュール置換 DNNによる特徴点検出 BANet 単眼デプス推定の導入 LSD-SLAM + CNNデプス推定 単眼デプスのslSL (連続画像で学習) 2016 monodepth 単眼デプスのslSL (ステレオで学習) 姿勢も推定 単眼デプスも多視点 最適化しながら学習 単眼デプス 特徴点 直接法 ≈ デプス次元圧縮+多視点最適化 DeepTAM End-to-endのトラッ キング&マッピング End-to-Endの(特徴点検出&)マッチング DVSOの改良版 (slSL) レンズ歪み も同時推定 Neural Ray Surfaces ピンホールモデル 以外も対応 Youtubeのような 大量の動画から学習可 数多の改良 + 焦点距離も同時推定 GNNによる特徴点マッチング ORB-SLAM 2003 2007 2014 DTAM SVO LSD-SLAM 2016 バイナリ特徴(ORB)の導入 Scale-drift aware MonoSLAM トラッキング&マッピング&ループ検出に同じ 特徴量(ORB)を利用,Essential Graphの導入 その他各種改良 PTAM + ループクロージング 高速,高精度,大規模 2010 直接法 2011 特徴点ベース&直接法 DSO 疎な直接法 大規模環境に対応 Semi-dense化 CPUリアルタイム GPUリアルタイム Sparse化 特徴点 非学習 DROID-SLAM 微分可能な形で再帰的に 姿勢とデプスを同時最適化 Optical Flow (OF) を利用したgeometric errorの導入 Dense BA層を導入しカメラ姿勢&各画素 のデプスをGNで直接的に多視点最適化 2021 * Self-supervised Learning (slSL) Parallel real-time VO PTAM + ORB + 各種並列化 2013 * Semi-supervised Learning (smSL) * Supervised Learning (SL) DeepFactor CodeSLAMの改良版 ループクロージングの追加 高精度化&リアルタイム化 DVSO DSOの改良版 (smSL) DSO ステレオ画像で学習した単眼デプス推定を導入 姿勢&輝度値の不確かさにもDNNを導入 (Stereo DSOで推定したデプスを教師として利用) (ステレオ動画のみから学習) DeMoN 2視点のデプス &姿勢の推定 動画へ対応 DEEPV2D OFのgeometric error による交互最適化 2004 MonoSLAM PTAM トラッキング・ マッピングの並列化 EKFベース スケールドリフト考慮の ループクロージング キーフレームの導入 非線形最適化 キーフレームシステムの継承 Visual Odometry SfMベース(非線形最適化) z Neural Fields NeRF 姿勢既知の多視点画像から MLPを用いて新規視点画像 合成(デプスも推定) 2022 NeRF-SLAM DROID-SLAM + Instant NGP iMAP 単一MLPでシーンを表現 デプス入力で高速化 ※iMAPとNICE-SLAMはデプス画像を必要とするRGB-D SLAM NICE-SLAM Instant NGP iMAPのMLPを階層化し 効率性・ロバスト性を向上 複数解像度のハッシュエン コーディングによりNeRFを 大幅に高速化 Depth from Video in the Wild
  27. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 直接法の例 ① Dense Tracking and

    Mapping (DTAM) [R. A. Newcombe, 2011] • 全ピクセルの画素値を利用しリアルタイムにシーンの密な形状を復元 • Photometric errorが最小となるデプスを推定 • Graphics Processing Unit(GPU)を利用して並列処理 36 Photometricコストボリューム 推定したInverse depth map(左)とPTAM(右)の結果 [40] R. A Newcombe et al., “DTAM: Dense Tracking and Mapping in Real-Time”, ICCV, 2011 (図を引用)
  28. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 直接法の例 ② Large-Scale Direct Monocular

    SLAM (LSD-SLAM) [J. Engel, 2014] • 直接法のみを用いて大規模な環境の3次元マップ構築が可能 • SVOのように直接法を局所的なカメラのトラッキングに用いるだけでなく,大域的 に整合性の取れた3次元マップの構築に利用 • ループクロージングも含めてCPUでリアルタイム処理を実現 37 [41] J. Engel et al., “LSD-SLAM: Large-Scale Direct Monocular SLAM”, ECCV, 2014(図,画像を引用) 推定したカメラ軌跡と3Dマップ アルゴリズムの概要
  29. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 直接法の例 ③ Direct Sparse Odometry

    (DSO) [J. Engel, 2016] • カメラの露光時間やセンサ特性などのキャリブレーションを統合 • 最適化のためのヘッセ行列がブロック対角行列を保つように寄与が小さい変数を除外 • 疎な直接法として従来よりも高速かつ高精度なSLAMシステムを実現 38 [42] J. Engel et al., “Direct Sparse Odometry”, arXiv, 2016 (画像を引用) https://www.youtube.com/watch?v=C6-xwSOOdqQ&t= 130s (画像を引用) 推定したカメラ軌跡と3Dマップ (青枠内は始点と終点) DSO,LSD-SLAM,ORB-SLAMの比較
  30. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 39 Visual SLAMの発展の歴史(単眼カメラを用いた代表的な手法のみ掲載) ORB-SLAM LSD-SLAM

    2017 CNN-SLAM SuperPoint SuperGlue 2019 SfM-learner 2020 2018 深層学習 CodeSLAM D3VO DNNでモジュール置換 DNNによる特徴点検出 BANet 単眼デプス推定の導入 LSD-SLAM + CNNデプス推定 単眼デプスのslSL (連続画像で学習) 2016 monodepth 単眼デプスのslSL (ステレオで学習) 姿勢も推定 単眼デプスも多視点 最適化しながら学習 単眼デプス 特徴点 直接法 ≈ デプス次元圧縮+多視点最適化 DeepTAM End-to-endのトラッ キング&マッピング End-to-Endの(特徴点検出&)マッチング DVSOの改良版 (slSL) レンズ歪み も同時推定 Neural Ray Surfaces ピンホールモデル 以外も対応 Youtubeのような 大量の動画から学習可 数多の改良 + 焦点距離も同時推定 GNNによる特徴点マッチング ORB-SLAM 2003 2007 2014 DTAM SVO LSD-SLAM 2016 バイナリ特徴(ORB)の導入 Scale-drift aware MonoSLAM トラッキング&マッピング&ループ検出に同じ 特徴量(ORB)を利用,Essential Graphの導入 その他各種改良 PTAM + ループクロージング 高速,高精度,大規模 2010 直接法 2011 特徴点ベース&直接法 DSO 疎な直接法 大規模環境に対応 Semi-dense化 CPUリアルタイム GPUリアルタイム Sparse化 特徴点 非学習 DROID-SLAM 微分可能な形で再帰的に 姿勢とデプスを同時最適化 Optical Flow (OF) を利用したgeometric errorの導入 Dense BA層を導入しカメラ姿勢&各画素 のデプスをGNで直接的に多視点最適化 2021 * Self-supervised Learning (slSL) Parallel real-time VO PTAM + ORB + 各種並列化 2013 * Semi-supervised Learning (smSL) * Supervised Learning (SL) DeepFactor CodeSLAMの改良版 ループクロージングの追加 高精度化&リアルタイム化 DVSO DSOの改良版 (smSL) DSO ステレオ画像で学習した単眼デプス推定を導入 姿勢&輝度値の不確かさにもDNNを導入 (Stereo DSOで推定したデプスを教師として利用) (ステレオ動画のみから学習) DeMoN 2視点のデプス &姿勢の推定 動画へ対応 DEEPV2D OFのgeometric error による交互最適化 2004 MonoSLAM PTAM トラッキング・ マッピングの並列化 EKFベース スケールドリフト考慮の ループクロージング キーフレームの導入 非線形最適化 キーフレームシステムの継承 Visual Odometry SfMベース(非線形最適化) z Neural Fields NeRF 姿勢既知の多視点画像から MLPを用いて新規視点画像 合成(デプスも推定) 2022 NeRF-SLAM DROID-SLAM + Instant NGP iMAP 単一MLPでシーンを表現 デプス入力で高速化 ※iMAPとNICE-SLAMはデプス画像を必要とするRGB-D SLAM NICE-SLAM Instant NGP iMAPのMLPを階層化し 効率性・ロバスト性を向上 複数解像度のハッシュエン コーディングによりNeRFを 大幅に高速化 Depth from Video in the Wild
  31. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例①(従来手法の一部を置換・補完) SuperGlue [P. Sarlin ,

    2019] • Graph Neural Network を用いた特徴点マッチングの教師あり学習 • Superpoint と組みわせて End-to-end に学習可 • 非常にロバストな特徴点マッチングを実現 • SfM や Visual SLAMにおける特徴点抽出とマッチングのモジュールを置き換え精度 向上可能 40 SuperGlueによる特徴点マッチングの概要 従来手法が失敗するシーンの結果 [46] D. DeTone et al., “SuperPoint: Self- Supervised Interest Point Detection and Description”. arXiv, 2017 [47] P. Sarlin et al., “SuperGlue: Learning Feature Matching with Graph Neural Networks”, arXiv, 2019 (図,画像を引用)
  32. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例②(全てNNで構成) 単眼デプスと相対姿勢の推定 • 二枚の連続画像から単眼画像のデプス推定と画像間の相対姿勢を自己 教師あり学習

    [T. Zhou , 2017] • 直接法と同様に画像間のphotometric errorを最小化するように学習 • ラベルなしの動画から内部パラメータを同時に学習・推定 [A. Gordo, 2019] • 魚眼カメラ,反射屈折撮像系,水中カメラなどにも対応 [I. Vasiljevic, 2020] 41 ラベルなし動画から学習した結果 魚眼カメラ,反射屈折撮像系,水中カメラの結果 [49] T. Zhou et al., “Unsupervised Learning of Depth and Ego-Motion From Video”, CVPR, 2017 [51] A. Gordon et al. “Depth from videos in the wild: Unsupervised monocular depth learning from unknown cameras”, ICCV, 2019(画像を引用) [52] I. Vasiljevic et al., “Neural Ray Surfaces for Self- Supervised Learning of Depth and Ego-motion”, 3DV, 2020 (画像を引用)
  33. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例③(全てNNで構成) Deep Tracking and Mapping

    (DeepTAM) [H. Zhou, 2018] • リアルタイムにカメラ姿勢とシーンの密な3次元形状を推定 • トラッキングとマッピングを各々End-to-endで学習・推定 • トラッキングネットワーク:仮想視点に対する姿勢を反復的に推定・累積 • マッピングネットワーク :coarse-to-fineにデプスを推定 42 [53] H. Zhou, “DeepTAM: Deep Tracking and Mapping”, ECCV, 2018 (画像を引用) https://lmb.informatik.uni-freiburg.de/people/zhouh/deeptam/deeptam_poster_final.pdf (画像を引用) トラッキング(上)とマッピング(下)のネットワーク構成図 キーフレームに対する姿勢の累積計算
  34. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例④(抽出した特徴を多視点最適化) CodeSLAM [M. Bloesch, 2018]

    • シーンデプスの事前知識を用いて密なデプスマップの多視点最適化 • シーン画像で条件付けたデプス画像の自己符号化器(Autoencoder)を用いてデプス 画像を低次元のコードに圧縮し,多視点最適化における探索空間を効率的に削減 DeepFactors [J. Czarnowski, 2020] • CodeSLAMを拡張しリアルタイム化 + ループクロージング 43 [55] M. Bloesch et al., “CodeSLAM ― Learning a Compact, Optimisable Representation for Dense Visual SLAM”, CVPR, 2018 [56] J. Czarnowski et al., “Deep-Factors: Real-Time Probabilistic Dense Monocular SLAM”. RAL, 2020 (図,画像を引用) デプス画像のコード圧縮ネットワーク 多視点最適化の結果
  35. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例⑤(全てNNで構成) DROID-SLAM [Z. Teed ,

    2021] • カメラ姿勢とオプティカルフローの教師あり学習 • 反復最適化Dense Bundle Adjustment層を導入 • 密なデプスとオプティカルフローから計算したGeometric errorを最小化 • BA-Netでは特徴空間のPhotometric errorを最小化 • ORB-SLAM3,SVO,DSO,DeepFactorsなどを上回る精度を達成 • 単眼,ステレオ,RGB-D に対応 • 推論時にGPU二台でトラッキング&Local BA,Global BA&ループクロージングを並 列処理 44 [44] Z. Teed et al., “DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras”, arXiv, 2021(画像を引用)
  36. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 45 Visual SLAMの発展の歴史(単眼カメラを用いた代表的な手法のみ掲載) ORB-SLAM LSD-SLAM

    2017 CNN-SLAM SuperPoint SuperGlue 2019 SfM-learner 2020 2018 深層学習 CodeSLAM D3VO DNNでモジュール置換 DNNによる特徴点検出 BANet 単眼デプス推定の導入 LSD-SLAM + CNNデプス推定 単眼デプスのslSL (連続画像で学習) 2016 monodepth 単眼デプスのslSL (ステレオで学習) 姿勢も推定 単眼デプスも多視点 最適化しながら学習 単眼デプス 特徴点 直接法 ≈ デプス次元圧縮+多視点最適化 DeepTAM End-to-endのトラッ キング&マッピング End-to-Endの(特徴点検出&)マッチング DVSOの改良版 (slSL) レンズ歪み も同時推定 Neural Ray Surfaces ピンホールモデル 以外も対応 Youtubeのような 大量の動画から学習可 数多の改良 + 焦点距離も同時推定 GNNによる特徴点マッチング ORB-SLAM 2003 2007 2014 DTAM SVO LSD-SLAM 2016 バイナリ特徴(ORB)の導入 Scale-drift aware MonoSLAM トラッキング&マッピング&ループ検出に同じ 特徴量(ORB)を利用,Essential Graphの導入 その他各種改良 PTAM + ループクロージング 高速,高精度,大規模 2010 直接法 2011 特徴点ベース&直接法 DSO 疎な直接法 大規模環境に対応 Semi-dense化 CPUリアルタイム GPUリアルタイム Sparse化 特徴点 非学習 DROID-SLAM 微分可能な形で再帰的に 姿勢とデプスを同時最適化 Optical Flow (OF) を利用したgeometric errorの導入 Dense BA層を導入しカメラ姿勢&各画素 のデプスをGNで直接的に多視点最適化 2021 * Self-supervised Learning (slSL) Parallel real-time VO PTAM + ORB + 各種並列化 2013 * Semi-supervised Learning (smSL) * Supervised Learning (SL) DeepFactor CodeSLAMの改良版 ループクロージングの追加 高精度化&リアルタイム化 DVSO DSOの改良版 (smSL) DSO ステレオ画像で学習した単眼デプス推定を導入 姿勢&輝度値の不確かさにもDNNを導入 (Stereo DSOで推定したデプスを教師として利用) (ステレオ動画のみから学習) DeMoN 2視点のデプス &姿勢の推定 動画へ対応 DEEPV2D OFのgeometric error による交互最適化 2004 MonoSLAM PTAM トラッキング・ マッピングの並列化 EKFベース スケールドリフト考慮の ループクロージング キーフレームの導入 非線形最適化 キーフレームシステムの継承 Visual Odometry SfMベース(非線形最適化) z Neural Fields NeRF 姿勢既知の多視点画像から MLPを用いて新規視点画像 合成(デプスも推定) 2022 NeRF-SLAM DROID-SLAM + Instant NGP iMAP 単一MLPでシーンを表現 デプス入力で高速化 ※iMAPとNICE-SLAMはデプス画像を必要とするRGB-D SLAM NICE-SLAM Instant NGP iMAPのMLPを階層化し 効率性・ロバスト性を向上 複数解像度のハッシュエン コーディングによりNeRFを 大幅に高速化 Depth from Video in the Wild
  37. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例⑥(Neural Fieldsの導入) iMAP [E. Sucar,

    2021] • NeRFを導入した初の(RGB-D)SLAM • シーン全体を単一のMLPで連続的に表現 • 未計測領域の色や形状も推定可能 • 精度同程度の設定でメモリ使用量はTSDF Fusionの1/60以下 • リアルタイム処理を実現(トラッキング:10Hz, マッピング:2Hz ) • シーンとカメラ姿勢を同時に最適化 • 3次元座標𝐩 = 𝑥, 𝑦, 𝑧 のみMLPへ入力(視線方向無視) 46 E. Sucar et al., “iMAP: Implicit Mapping and Positioning in Real-Time ”, ICCV, 2021(画像を引用) Width: ネットワーク幅、Res.: voxel解像度 iMAP TSDF Fusion
  38. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例⑦(Neural Fieldsの導入) NICE-SLAM [Z. Zhu,

    2021] • iMAPの拡張 • 階層的なシーン表現 • 幾何的な事前学習 • より高効率でロバストな推定を実現 47 Z. Zhu et al., “NICE-SLAM: Neural Implicit Scalable Encoding for SLAM ”, arXiv, 2022(画像を引用)
  39. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 深層学習ベースの例⑧(Neural Fieldsの導入) NeRF-SLAM [A. Rosinol,

    2022] • Dense monocular SLAMで推定したカメラ姿勢とデプスをInstant-NGPへ入力 • DROID-SLAM • 各カメラ姿勢と密なデプス(+不確実性)を推定 • Probabilistic Volumetric Fusion • 不確実性を考慮してデプスを統合し高精度化 • Instant-NGP • 各カメラ姿勢、高精度化された密なデプス(+不確実性)からシーンを学習 • Dense monocular SLAMとNeRFの学習を並列計算することでリアルタイム処理を実現 48 A. Rosinol et al., “NeRF-SLAM- Real-Time Dense Monocular SLAM with Neural Radiance Fields”, arXiv, 2022(画像を引用) NeRF-SLAM
  40. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 3. 3次元復元の予備知識 • キーポイント検出と特徴量記述 •

    座標変換とカメラの投影モデル • エピポーラ幾何 • 特徴点マッチングと幾何モデルの推定 • Perspective-n-Point (PnP)問題 • 三角測量による3D点の復元 • バンドル調整 • Structure from Motion (SfM) の概要 50
  41. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 多視点画像を用いた3次元復元 • 3次元から2次元の画像に投影することで失われたデプスの情報を複数視点の画像か らいかに求めるかという問題 •

    幾何学的・光学的変換(投影)の逆問題 • 基本事項に加え,各ステップの処理が独立でシンプルなSfMについても解説しマルチ スレッド処理により複雑化したVisual SLAMの理解をサポート 51 3. 3次元復元の予備知識
  42. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) キーポイント検出と特徴量記述 53 画像間の対応点の推定 • カメラ姿勢の推定と3D点の復元に必要

    • 二段階の処理 • キーポイント検出 • 特徴量記述 (Superpoint + SuperGlueはこの二段階の処理をEnd-to-endで学習) [59] 藤吉弘亘, 安倍満, ”局所勾配特徴抽出技術”, 精密工学会誌, 2011(図を引用) キーポイント検出,特徴量記述における変遷
  43. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) キーポイント検出 54 • Scale-Invariant Feature

    Transform (SIFT) • 複数のDifference of Gaussian (DoG)画像を用いて極値を探索 • 特徴量記述の範囲を表すスケールも検出 • Speed-Up Robust Features (SURF) • Hessian-Laplace検出器をBoxフィルタで近似して高速化 • Features from Accelerated Segment Test (FAST) • コーナーのみに限定し決定木により高速かつ効率的に検出 [59] 藤吉弘亘, 安倍満, ”局所勾配特徴抽出技術”, 精密工学会誌, 2011(図を引用) SIFT SURF FAST
  44. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴量記述 55 • 非バイナリ特徴 •

    識別性が高く,回転およびスケールの変化にも対応 • SfMなどのオフライン処理で利用 • SIFT, SURF, etc. • バイナリ特徴 • 高速性と省メモリ性(特徴量間の(非)類似度をハミング距離で計算可) • Visual SLAMなどのリアルタイムや大規模の処理で利用 • BRIEF, ORB, etc. [59] 藤吉弘亘, 安倍満, ”局所勾配特徴抽出技術”, 精密工学会誌, 2011
  45. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 座標変換とカメラの投影モデル 3D点を画像平面へ投影 • ワールド座標系→カメラ座標系→画像座標系 •

    座標系 • ワールド:全カメラ共通の座標系 • カメラ :任意のカメラに固定された座標系 • 画像 :任意の画像平面 〃 • 内部パラメータ • カメラ座標系→画像座標系の変換 • 外部パラメータ • ワールド座標系→カメラ座標系の変換 57 , ワールド座標系 カメラ座標系 R , R , , ワールド R , カメラ座標系と画像座標系の関係 ワールド座標系とカメラ座標系の関係
  46. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 座標変換とカメラの投影モデル 58 カメラは空間中の物体に反射した光が撮像素子に投影されることでシーン を記録 •

    この関係を表すのがカメラの内部パラメータK • 最も単純な透視投影モデル 𝑓𝑢 , 𝑓𝑣 :各軸の焦点距離 𝑐𝑢 , 𝑐𝑣 :光学中心 𝐗𝑐 = 𝑋𝑐 , 𝑌𝑐 , 𝑍𝑐 T:カメラ座標系の3D点 𝐳𝑐 = 𝑢, 𝑣 T :画像平面上の2D点 K′ ≔ 𝑓𝑢 0 𝑐𝑢 0 𝑓𝑣 𝑐𝑣 K ≔ 𝑓𝑢 0 𝑐𝑢 0 𝑓𝑣 𝑐𝑣 0 0 1 𝐳 = 1 𝑍𝑐 K′𝐗𝑐 , ワールド座標系 カメラ座標系 R , R , , ワールド R , カメラ座標系と画像座標系の関係 ワールド座標系とカメラ座標系の関係
  47. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 座標変換とカメラの投影モデル 59 カメラ座標系がワールド座標系と異なる場合,ワールド座標系からカメラ 座標系へ変換 •

    前ページの投影モデルに 𝐗𝑐 = R𝑐𝑤 𝐭𝑐𝑤 ] ഥ 𝐗𝑤 を代入 , ワールド座標系 カメラ座標系 R , R , , ワールド R , カメラ座標系と画像座標系の関係 ワールド座標系とカメラ座標系の関係 𝐳 = 1 𝑍𝑐 K′ R𝑐𝑤 𝐭𝑐𝑤 ] ഥ 𝐗𝑤 𝑢 𝑣 = 1 𝑍𝑐 𝑓𝑢 0 𝑐𝑢 0 𝑓𝑣 𝑐𝑣 𝑟𝑐𝑤 11 𝑟𝑐𝑤 12 𝑟𝑐𝑤 13 𝑡𝑐𝑤 1 𝑟𝑐𝑤 21 𝑟𝑐𝑤 22 𝑟𝑐𝑤 23 𝑡𝑐𝑤 2 𝑟𝑐𝑤 31 𝑟𝑐𝑤 32 𝑟𝑐𝑤 33 𝑡𝑐𝑤 3 𝑋𝑤 𝑌𝑤 𝑍𝑤 1 𝐗𝑐 = 𝑋𝑐 , 𝑌𝑐 , 𝑍𝑐 T :カメラ座標系の3D点 𝐗𝑤 = 𝑋𝑤 , 𝑌𝑤 , 𝑍𝑤 T :ワールド座標系の3D点 R𝑐𝑤 , 𝐭𝑐𝑤 :カメラの回転行列,並進ベクトル ഥ 𝐗𝑤 = 𝑋𝑤 , 𝑌𝑤 , 𝑍𝑤 , 1 T : 𝐗𝑤 の同次座標
  48. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) エピポーラ幾何 2つのカメラと3D点の空間的対応関係 • 3Dシーンを撮影した画像間の対応点における拘束条件 •

    基礎行列F:画像座標系(K が未知) • 基本行列E:カメラ座標系(K が既知) • F or Eからカメラ姿勢R𝑐𝑤 , 𝐭𝑐𝑤 を推定 61 エピポーラ平面 • カメラ中心𝐎𝟏 , 𝐎𝟐 ,3D点𝐗を通る平面 エピポーラ線𝐥 • エピポーラ平面と画像平面が交わる線 エピポール𝐞 • 𝐎𝟏 , 𝐎𝟐 を結んだ直線が画像平面と交わる点 (全ての𝐥は𝐞を通過) エピポーラ幾何の概要
  49. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 基礎行列F (Fundamental Matrix) カメラの内部パラメータKと2つのカメラ間の外部パラメータ(相対姿勢) R

    | 𝐭 の情報を含む行列 エピポーラ拘束 • 一方の画像上の点𝐳1 が決まれば,もう一方の画像上の対応点𝐳2 に関する制約を与える • 画像𝐼1 上の点𝐳1 に対応する画像𝐼2 上のエピポーラ線は 𝐥2 = F𝐳1 • これを先の式に代入すると 𝐳2 T 𝐥2 = 0 ⇒ 直線のベクトル方程式 62 𝑢2 𝑣2 1 𝑓11 𝑓12 𝑓13 𝑓21 𝑓22 𝑓23 𝑓31 𝑓32 𝑓33 𝑢1 𝑣1 1 = 𝐳2 TF𝐳1 = 0
  50. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 基礎行列F (Fundamental Matrix) 𝑛点のエピポーラ拘束を線型方程式で表現 •

    8個の対応点を用いてFを推定(8点アルゴリズム) • Fのスケールは不定 • 対応点が8つ以上ある場合 • 全ての対応点を利用して特異値分解(SVD)などの最小二乗法で計算 • 特徴点が同一平面上に分布する場合は行列Aが縮退 • 基本行列Eやホモグラフィ行列Hで R | 𝐭 を推定 63
  51. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 基本行列E (Essential Matrix) カメラ間の外部パラメータ(相対姿勢) R

    | 𝐭 の情報を含む行列 𝐳2 T F 𝐳1 = 0に代入すると 64 K1 ,K2 :各カメラの内部パラメータ E ≔ K2 T F K1 𝐳2 T K2 T −1 E K1 −1𝐳1 = 0 ො 𝐳2 T E ො 𝐳1 = 0 ො 𝐳1 = K1 −1𝐳1 ,ො 𝐳2 = K2 −1𝐳2 : 𝑍𝑐 =1の平面(正規化画像座標系)に射影した点
  52. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) A B (a) A B

    (b) A B’ (c) A B’ (d) ✔ × × × 基本行列E (Essential Matrix) Eと R | 𝐭 の計算 • Eは大きく分けて二通り • 8点アルゴリズムなどで先に求めたFに代入して基本行列E を推定 • 5点アルゴリズムのように直接Eを推定 • 5点アルゴリズムは8点アルゴリズムよりも必要な対応点数が少ない • RANSACでランダムサンプルした対応点に外れ値(誤対応)を含む確率が低く,少な い試行回数で正しい解を求めることが可能 • R | 𝐭 はEから4通りに分解(𝐭 はスケール不定) • 「3D点が両カメラの前方に復元」で選択 65 [60] R. Hartley, A. Zisserman, “Multiple View Geometry in Computer Vision”, Cambridge University Press, 2003(図を引用)
  53. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴点マッチングと幾何モデルの推定 相対姿勢を推定するためには複数の対応点が必要 • 二段階のマッチング •

    特徴量 𝐟 を用いた最近傍探索 • RANSACによる誤対応除去 • RANSAC • 外れ値を含む観測データから数理モデルのパラメータを推定する反復計算法の一つ • 観測データからインライアのみ選択,つまり正しい推定値を確率 𝐩 で得るために必要な 試行回数 𝑁 66 𝑁 = log(1 − 𝑝) log(1 − 𝑟𝑠) 𝑠 : モデル計算に観測データ数(以下の例では8) 𝑟 : 観測データのインライアの割合
  54. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴点マッチングと幾何モデルの推定 8点アルゴリズムの例 1. 仮の対応点からランダムに8個の対応点を選択し F

    を推定 2. 推定された F を用いて各対応点に対しエピポーラ線 𝐥 を計算 3. エピポーラ拘束を一定の誤差の範囲内で満たすか,つまり対応点がエピポーラ線 に十分近い(インライア)か否かを判定 4. 1〜3の計算を 𝑁 回試行した後,インライアが最も多い F の全インライアを用い た最小二乗法により最終的な推定値 ෠ F を推定 67 局所特徴量による最近傍探索 8点アルゴリズム+RANSACによる誤対応除去 マッチング結果の例(元画像はFountain-P11データセット[68]の画像を利用)
  55. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Perspective-n-Point (PnP)問題 68 3次元空間中のn点の座標とその画像中の対応点が与えらた時にカメラの位 置姿勢を推定する問題

    • PnPf,PnPfr問題 • カメラの位置姿勢に加えて,焦点距離やレンズ歪みを推定する問題 • Visual SLAMでは基本的にカメラの内部パラメータが既知 • P3P, EPnP, etc. + RANSAC で誤対応を除去しながらカメラ姿勢を推定 Perspective-n-Point (PnP)問題 PnP問題と派生問題における未知パラータと推定に必要な対応点の数 [70] 中野 学, “Perspective-n-point問題とその派生問題に対する安定かつ高速な解法に関する研究”, 博士論文, 2021(表を引用)
  56. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 三角測量による3D点の復元 69 相対姿勢と対応点から三角形の一辺と二角が既知となるため,三角測量に より3D点の位置を計算 •

    特徴点の座標 𝐳 や姿勢 𝐩 には誤差が存在し投影線が交差しない • 光線と3D点の距離 or 3D点を再投影した際の角度誤差 が最小となるような𝐗を推定 三角測量による3D点の復元 (透視投影行列)
  57. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) ( ) ( ) (

    ) ( , ) ( ) , ( ) ( ) ( ) ( ) ( , ) ( , ) ( , ) ( ) ( , , ) バンドル調整(Bundle adjustment (BA)) 再投影誤差が最小となるようにカメラ姿勢と3D点の位置を最適化 • イメージセンサの観測には誤差が存在 • 観測した2D点 𝐳 と3D点𝐗の間で 𝐳 = 1 𝑍𝑐 K′𝐗𝑐 が正確には満たされない • この誤差をガウス分布と仮定しMAP推定または最尤推定として解く方法論 • 𝑚個のカメラと𝑛個の3D点が与えられた時,各カメラで観測している3D点の再投影 点𝒛 𝐩, 𝐗 と対応する2D点𝒛との距離(geometric error)の総和が最小となるカメラ 姿勢𝐩 ,3D点𝐗を推定 71 geometric error の模式図(再掲) (再掲)
  58. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) バンドル調整(Bundle adjustment (BA)) • インターネット上の画像などを用いたSfM

    • 正確なカメラの内部パラメーター Kも未知であるため同時にBAで最適化 • Visual SLAM • 計算速度や処理の安定性を重視するため,事前にカメラキャリブレーションを行い 既知とするのが一般的 • 最適化変数 • Motion-only BA :カメラ姿勢 𝐩 • Structure-only BA:3D点 𝐗 • Full BA :カメラ姿勢 𝐩, 3D点 𝐗 • 最適化範囲 • Local BA :局所的 • Global BA:大域的 • photometric errorを最小化する場合は photometric bundle adjustment と呼ぶ 72
  59. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 回転行列と回転ベクトル カメラ姿勢の剛体変換T(6自由度)と相似変換S(7自由度)は回転行列R ∈ SO(3) と並進

    ベクトル𝐭 ∈ ℝ3,スケールパラメータ𝑠を用いてそれぞれ以下のように表現 SO 3 : 3次の特殊直交群(Special Orthogonal group) ⇒ 3次元の回転 SE(3) : 〃 特殊ユークリッド群(Special Euclidean group) ⇒ 〃 回転 + 並進 Sim(3): 〃 相似変換群(Similarity transformation group) ⇒ 〃 回転 + 並進 + スケール 上記のリー群に付随するリー代数(リー環) 𝔰𝔬 3 , 𝔰𝔢 3 , 𝔰𝔦𝔪 3 • Rは3自由度の座標変換であるにも関わらず9つのパラメータで表現 • 回転行列の条件(直交性と行列式が1)も満たす必要性 73 R(3 × 3の行列表現)は最適化変数として扱うには不適 [33] H. Strasdat et al., “Scale Drift-Aware Large Scale Monocular SLAM”, Robotics: Science and Systems VI, 2010
  60. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 回転行列と回転ベクトル Rを回転ベクトル表現 𝝎 = 𝜔1

    , 𝜔2 , 𝜔3 T ∈ 𝔰𝔬 3 で表現 • 𝔰𝔬 3 からSO 3 への指数写像 exp ∶ 𝔰𝔬 3 → SO 3 𝝎 → R • 𝜃 = 𝝎 2 : 𝝎の回転角 • ∙ 2 はL2ノルム(一般的な距離の概念であるユークリッド距離) • この写像の関係はロドリゲスの回転公式 (Rodrigues’ rotation formula)により以下 の式で表現 I𝑛 は𝑛 × 𝑛の単位行列I𝑛 , ∙ × は歪対称行列の作用素 • SO 3 から𝔰𝔬 3 への対数写像 log ∶ SO 3 → 𝔰𝔬 3 R → 𝝎 74 [33] H. Strasdat et al., “Scale Drift-Aware Large Scale Monocular SLAM”, Robotics: Science and Systems VI, 2010
  61. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 回転行列と回転ベクトル • 並進𝐯も含めたカメラ姿勢 𝐩 =

    𝝎T, 𝒗T T ∈ 𝔰𝔢 3 からSE(3)への写像 • スケール𝜎も含め𝐬 = 𝝎T, 𝜎, 𝒗T T ∈ 𝔰𝔦𝔪 3 からSim(3)への写像 75 [33] H. Strasdat et al., “Scale Drift-Aware Large Scale Monocular SLAM”, Robotics: Science and Systems VI, 2010
  62. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 再投影誤差の数値最小化 観測誤差を平均0,共分散行列∑のガウス分布と仮定した誤差関数を最小化 • は非線形関数のため,反復法による数値計算で最小値を与える を推定

    • エピポーラ幾何や三角測量などにより推定したカメラ姿勢と3D点の座標を初期値 • として更新することで を計算 76 :カメラ𝑖の姿勢 𝑖 = 1, … , 𝑚 :3D点𝑗の位置 𝑗 = 1, … , 𝑛 ∈ 𝔰𝔢 3 [77] B. Triggs et al., “Bundle Adjustment ― A Modern Synthesis”, International Workshop on Vision Algorithms, 1999
  63. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 再投影誤差の数値最小化 ニュートン法 • を現在の推定値回りで二次の項までテーラー展開 •

    右辺を𝛿𝐱に関して微分すると,極小値を与える𝛿𝐱は以下の式を満たす • ガウスニュートン法 • の第二項は第一項と比較して十分小さい,つまり, と近似 • レーベンバーグ・マーカート法 • 左辺にダンピングファクタ を導入 77 ヤコビ行列: 勾配(ベクトル): ヘッセ行列: (𝑘は𝐞の要素番号) [77] B. Triggs et al., “Bundle Adjustment ― A Modern Synthesis”, International Workshop on Vision Algorithms, 1999
  64. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) BAにおけるヤコビ行列の計算 : を全てのカメラ姿勢と3D点の座標 で微分 •

    問題設定 • カメラの視点と3D点が各々三つ(𝑚 = 𝑛 = 3) • 透視投影モデル • 内部パラメータは既知 • 観測 はカメラ𝑖の姿勢 と3D点 𝑗 の座標 にのみ依存 • それ以外で偏微分している多くの要素は零行列 78 ( ) ( ) ( ) ( , ) ( ) , ( ) ( ) ( ) ( ) ( , ) ( , ) ( , ) ( ) ( , 問題設定の例 𝑚 = 𝑛 = 3のヤコビ行列(灰色:零行列) [77] B. Triggs et al., “Bundle Adjustment ― A Modern Synthesis”, International Workshop on Vision Algorithms, 1999
  65. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) BAにおけるヤコビ行列の計算 • , :カメラ座標系とワールド座標系における3D点の関係 •

    連鎖律を用いて , を以下のように展開 • 投影式 を以下のように展開 • ,上式 を各々カメラ姿勢 とカメラ座標系における3D点 で微分 • は以下のように計算可能[76] 79 (∵ ) [76] G. Gallego et al., “A compact formula for the derivative of a 3-d rotation in exponential coordinates”, JMIV, 2015 [77] B. Triggs et al., “Bundle Adjustment ― A Modern Synthesis”, International Workshop on Vision Algorithms, 1999
  66. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 3. Structure from Motion (SfM)

    の概要 多視点画像を用いてカメラ姿勢と特徴点の3次元位置を同時に推定する手法 • 推定姿勢は多視点画像からシーンの密な3次元形状を復元するMulti-View Stereo (MVS) などにも利用可能 81 インターネット上で収集した画像から3次元復元した例 (画像は「みんなの首里城デジタル復元プロジェクト」[79]から提供) 最も基本的なIncremental SfM(特にCOLMAP)を中心に概要を説明 [79] Our Shurijo. https://www.our-shurijo.org/
  67. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 82 処理の流れ •

    最初に選択した二枚の画像で復元されたシーンに対して三枚目以降を一枚ずつ追加 し復元 • 初期の画像ペア • 2D-2Dマッチング → 相対姿勢推定 → 3D点復元 → BA,の順で基準となるカ メラ姿勢と3D点を復元 • 三枚目以降 • 2D-3Dマッチング → 姿勢の推定 → 3D点復元 → BA,の繰り返し
  68. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 誤差の最小化 (バンドル調整) カメラ姿勢の推定

    (2D-2Dマッチング) 3次元点の復元 (三角測量) + ⼀枚⽬ ⼆枚⽬ 特徴点抽出 + マッチング 初 期 ペ ア 三 枚 ⽬ 以 降 三枚⽬以降 カメラ姿勢の推定 (2D-3Dマッチング) 3次元点の復元 (三角測量) + 特徴点抽出 + マッチング 誤差の最小化 (バンドル調整) 83 Incremental SfMの処理の流れ
  69. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 具体的な処理は以下のステップで構成 1. 特徴点抽出

    2. 特徴点マッチングと幾何モデルの推定 3. カメラ姿勢の推定 4. 三角測量による3D点の復元 5. バンドル調整 84 誤差の最小化 (バンドル調整) カメラ姿勢の推定 (2D-2Dマッチング) 3次元点の復元 (三角測量) + ⼀枚⽬ ⼆枚⽬ 特徴点抽出 + マッチング 初 期 ペ ア 三 枚 ⽬ 以 降 三枚⽬以降 カメラ姿勢の推定 (2D-3Dマッチング) 3次元点の復元 (三角測量) + 特徴点抽出 + マッチング 誤差の最小化 (バンドル調整) Incremental SfMの処理の流れ
  70. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 85 1. 特徴点抽出

    • 全画像に対してキーポイント検出と特 徴量記述を実行 • Visual SLAMと比較してSfMでは ベースラインが長い画像を対象 • 識別性が高く,スケールと回転に対 して不変性を有するSIFTやSURFを 用いるのが一般的 • 次ステップのマッチングも含めて, SuperGlueのような深層学習ベース の手法も適用可能 誤差の最小化 (バンドル調整) カメラ姿勢の推定 (2D-2Dマッチング) 3次元点の復元 (三角測量) + ⼀枚⽬ ⼆枚⽬ 特徴点抽出 + マッチング 初 期 ペ ア 三 枚 ⽬ 以 降 三枚⽬以降 カメラ姿勢の推定 (2D-3Dマッチング) 3次元点の復元 (三角測量) + 特徴点抽出 + マッチング 誤差の最小化 (バンドル調整) Incremental SfMの処理の流れ
  71. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 86 2. 特徴点マッチングと幾何モデルの推定

    誤差の最小化 (バンドル調整) カメラ姿勢の推定 (2D-2Dマッチング) 3次元点の復元 (三角測量) + ⼀枚⽬ ⼆枚⽬ 特徴点抽出 + マッチング 初 期 ペ ア 三 枚 ⽬ 以 降 三枚⽬以降 カメラ姿勢の推定 (2D-3Dマッチング) 3次元点の復元 (三角測量) + 特徴点抽出 + マッチング 誤差の最小化 (バンドル調整) Incremental SfMの処理の流れ v • 抽出した局所特徴量を用いて2D-2Dの 特徴点マッチング • 全画像の総当たり,あるいは,Bag of Words (BoW)による高速類似画 像検索やGPSの位置情報などで絞っ た近傍画像 • F, E, Hの行列を用いたRANSAC により特徴点の誤対応除去と幾何モ デルの推定を実行
  72. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 87 3. カメラ姿勢の推定

    • 推定した対応点を利用 • 最初の画像ペアに対してはシーンの 3D点が存在しないためEまたはHを分 解して相対姿勢R,𝐭を推定 • カメラの内部パラメータKが未知の場 合は,光学中心 𝑐𝑢 , 𝑐𝑣 を画像中心, 焦点距離𝑓を適当な初期値に設定した 上で, 𝑐𝑢 , 𝑐𝑣 は固定し, 𝑓はBAで最 適化 • 三枚目以降の画像に対しては,復元し た3D点に対して,2D-2Dの特徴点対 応から2D-3Dの対応を推定し,PnP問 題を解くことでカメラ姿勢を推定 • COLMAPではEPnPを利用 誤差の最小化 (バンドル調整) カメラ姿勢の推定 (2D-2Dマッチング) 3次元点の復元 (三角測量) + ⼀枚⽬ ⼆枚⽬ 特徴点抽出 + マッチング 初 期 ペ ア 三 枚 ⽬ 以 降 三枚⽬以降 カメラ姿勢の推定 (2D-3Dマッチング) 3次元点の復元 (三角測量) + 特徴点抽出 + マッチング 誤差の最小化 (バンドル調整) Incremental SfMの処理の流れ ` v
  73. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 88 4. 三角測量による3D点の復元

    • 推定した対応点とカメラ姿勢を利用 • 新たな視点が加わることで一つの視 点でしか観測されていなかった特徴 点を新たに復元 誤差の最小化 (バンドル調整) カメラ姿勢の推定 (2D-2Dマッチング) 3次元点の復元 (三角測量) + ⼀枚⽬ ⼆枚⽬ 特徴点抽出 + マッチング 初 期 ペ ア 三 枚 ⽬ 以 降 三枚⽬以降 カメラ姿勢の推定 (2D-3Dマッチング) 3次元点の復元 (三角測量) + 特徴点抽出 + マッチング 誤差の最小化 (バンドル調整) Incremental SfMの処理の流れ ` v
  74. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Incremental SfM 89 5. バンドル調整

    • 新たな画像が追加される度に(3),(4)で 推定したカメラ姿勢と3D点の座標をBA で最適化 • 逐次的なバンドル調整で,次の入力画 像に対してより精度が高い3Dマップを 与え処理のロバスト性を向上 誤差の最小化 (バンドル調整) カメラ姿勢の推定 (2D-2Dマッチング) 3次元点の復元 (三角測量) + ⼀枚⽬ ⼆枚⽬ 特徴点抽出 + マッチング 初 期 ペ ア 三 枚 ⽬ 以 降 三枚⽬以降 カメラ姿勢の推定 (2D-3Dマッチング) 3次元点の復元 (三角測量) + 特徴点抽出 + マッチング 誤差の最小化 (バンドル調整) Incremental SfMの処理の流れ `
  75. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 4. 特徴点ベースのVisual SLAMの基礎 • システム構成

    • Bag of Wordsを利用した類似画像検索 • キーフレームのグラフ構造 • トラッキング • ローカルマッピング • ループクロージング 91
  76. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) システム構成 92 特徴点ベースのVisual SLAMシステムについてORB-SLAMをベースに説明 ORB-SLAM2のシステム構成図

    [36] R. Mur-Artal et al., “ORB- SLAM: A Versatile and Accurate Monocular SLAM System”, TRO, 2015 [37] R. Mur-Artal et al., “ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras ”, TRO, 2017(図を引用)
  77. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) システム構成 三つのスレッドから構成 • トラッキング(Tracking) •

    ローカルマップに対して毎フレームのカメラ姿勢を推定 • 局所特徴の抽出,マップの初期化,2D-3Dマッチング,motion-only BA,キーフ レーム判定 • ローカルマッピング(Local Mapping) • トラッキングスレッドで追加判定されたキーフレームを利用して3D点を復元 • キーフレームと3D点の追加および削除,Local BA • ループクロージング(Loop Closing) • センサが同じ場所に戻る,つまり相対姿勢の累積が0になる拘束条件を利用して, カメラ姿勢の推定誤差を修正 • ループ候補検出,Sim(3)推定,ループ構築,スケールドリフトを考慮したポーズ グラフ最適化,Global BA 93 [36] R. Mur-Artal et al., “ORB- SLAM: A Versatile and Accurate Monocular SLAM System”, TRO, 2015 [37] R. Mur-Artal et al., “ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras ”, TRO, 2017(図を引用)
  78. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) システム構成 各種データを保持 • マップデータベース •

    キーフレーム,3D点 • スレッド間で競合が起きないようにデータのRead/Writeを管理 • 各種グラフ構造 • Covisibility Graph,Essential Graph • 対応点探索や最適化を効率化 • 類似画像検索と特徴点マッチングのためのVocabulary tree • トラッキング,ループ検出,リローカリゼーションで利用 • 局所特徴量からワードへ変換 94 [36] R. Mur-Artal et al., “ORB- SLAM: A Versatile and Accurate Monocular SLAM System”, TRO, 2015 [37] R. Mur-Artal et al., “ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras ”, TRO, 2017(図を引用)
  79. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 具体的な処理の流れ リローカリゼーション トラッキング Motion-only BA

    マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes 95 ORB-SLAMシステムの処理フロー [38] ORB-SLAM2. https://github.com/raulmur/ORB_SLAM2
  80. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Bag of Words (BoW)を利用した類似画像検索 BoWで高速に選定した候補のみ幾何検証を実行

    • Visual SLAM • ループ検出やリローカリゼーションをリアルタイムで処理 • マップが大きくなるにつれて候補のキーフレーム数が増大 • 局所特徴量の最近某探索とRANSACによる幾何検証を全候補に対して実行するの は困難 • SfM • 地下街などの広域屋内環境ではGPSなどを用いてマッチング候補を絞れない • BoWを利用してマッチング候補を削減することも可能 97
  81. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Bag of Wordsを利用した類似画像検索 Bag of

    Words (BoW) • 画像 ⇒ 局所特徴量の集合(ワードの度数分布) • 局所特徴量の集合をk-means法などを用いてクラスタリング • 各クラス(ワード)の出現頻度を画像全体の特徴量 • tf-idf:ワードの出現頻度が高い→ 識別性が低い → 重みを小さく 98 Bag of Wordsの概要 [83] R. Fergus, “Classical Methods for Object Recognition”, ICCV2009(図を引用)
  82. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Bag of Wordsを利用した類似画像検索 Vocabulary tree

    • 階層的クラスタリングにより大規模データに対して高速な検索が可能 • DBOW • バイナリ特徴量に拡張 • ORB-SLAMをはじめVisual SLAMで広く利用 99 [82] D. Nister et al., “Scalable Recognition with a Vocabulary Tree”, CVPR, 2006 (図を引用) [89] D. Gálvez-López et al., “Bags of Binary Words for Fast Place Recognition in Image Sequences”, TRO, 2012 (図を引用) Vocabulary treeを利用した高速な類似画像検索
  83. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Bag of Wordsを利用した類似画像検索 画像間の類似度 •

    二つの画像特徴𝐯1 , 𝐯2 間の類似度(or 非類似度)には, 𝐿1 , 𝐿2 ノルム,コサインを 利用するものなど様々な定義が存在 • [Nister,2006]の文献[85]では𝐿2 ノルムよりも𝐿1 ノルムを用いた方が精度が高いと報告 • DBOW2[92]を利用するORB-SLAMでも𝐿1 ノルムを用いた類似度を利用 100 [82] D. Nister et al., “Scalable Recognition with a Vocabulary Tree”, CVPR, 2006 (図を引用) [89] D. Gálvez-López et al., “Bags of Binary Words for Fast Place Recognition in Image Sequences”, TRO, 2012 (図を引用) [90] DBoW2. https://github.com/dorian3d/DBoW2 (0 ≤ 𝑠 ≤ 2の非類似度) (0 ≤ 𝑠 ≤ 1の類似度)
  84. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Bag of Wordsを利用した類似画像検索 次元削減によるワード変換 •

    k-meansのようなクラスタリングだけでなく次元削減でも可能 • バイナリ特徴の場合 • 元の256ビットの特徴ベクトルをより低次元の𝑁ビットへ変換しワードとして利用 • 主成分分析,ハッシング,etc. • ORB特徴量はその特性から上位 𝑁ビットをそのままワードとして扱うことが可能 • 識別性が高い上位𝑁ビットが一致している特徴量は類似 • ビット値の取得のみで判定可能 • BoWのようなツリーを利用したワード変換も不要で非常に高速 101 [30] E. Rublee et al., “ORB: An efficient alternative to SIFT or SURF”, ICCV, 2011 [94] 市原光将,他, “バイナリ超平面を利用した高速な次元削減手法の提案”. 画像の認識・理解シンポジウム(MIRU), 2021 次元削減によるワード変換
  85. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) キーフレームのグラフ構造 効率的に共有視野の判定や全体最適化を行うためのKF間の接続関係を表す 無向グラフ • Covisibility

    Graph (CG) • 共有3D点を一定数以上持つキーフレーム間でエッジを張った無向グラフ • 視野(3D点)を共有しているキーフレームを効率的に検索可能 • トラッキング,ローカルマッピング,ループ検出,リローカリゼーション,etc. • Essential Graph (EG) • CGのSpanning Tree(全域木)に加えて,ループ検出したKF間,さらに, Covisibilityよりも多くの3D点を共有するKF間でエッジを張った無向グラフ • CGは密接続になり易いためッジを削減したEGで効率的にポーズグラフ最適化 102 (a)キーフレームと3D点 (b)Covisibility Graph (c)Covisibility Graphの全域木 (d)Essential Graph [36] R. Mur-Artal et al., “ORB- SLAM: A Versatile and Accurate Monocular SLAM System”, TRO, 2015 (図を引用) [37] R. Mur-Artal et al., “ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras ”, TRO, 2017
  86. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) トラッキング 毎フレームのカメラ姿勢の推定 • PTAM以降,トラッキングとマッピングは別スレッド化 •

    初期化後は毎フレームカメラ姿勢のみ推定する方法が主流 • 主な処理の流れ 1. マルチスケールおよび画像全体からの一様な特徴点抽出 2. マップの初期化(初期化した場合は次のフレームへスキップ) 3. 復元済みのマップに対する2D-3Dマッチング 4. 対応点を利用してmotion-only BA等で現在フレームの姿勢を推定 5. フレームの経過数とトラッキング点数に基づくキーフレーム判定 104 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  87. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 特徴点抽出 • イメージピラミッド • スケール不変性を獲得

    • パッチやORB特徴量自体にはスケール不変性なし • 一定の比率でダウンサンプルした複数解像度の画像 • PTAM:パッチ(倍率1/2,レベル数4) • ORB-SLAM:ORB特徴量(倍率1/1.2,レベル数8) • 画像全体から一様に特徴点を抽出 • トラッキングとカメラ姿勢の推定を安定化 • ORB-SLAMでは画像全体をグリッド分割 • 閾値を調整し各グリッド最低5点抽出 • テクスチャが少ない or コントラストが小さくコーナー点を検出できない場合 • グリッド毎に保持するコーナー数を調整 • 画像全体から一様にサンプルする方法は直接法のDSOでも採用 105 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes 偏りのある特徴点分布 一様な特徴点分布
  88. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) マップの初期化 = ~ 106 2フレームを選択して相対姿勢R,

    𝐭とマップを同時推定 • 特徴点の仮対応からRANSACで誤対応除去と幾何モデルを推定 • R, 𝐭を推定する幾何モデルとしてF,E,Hを利用可能 • ORB-SLAMでは統計的なモデル選択アルゴリズムを採用 • FとHの両方に対して正しい対応点のスコアを計算 • スコアの比率からシーンが平面(or 相対姿勢が回転のみ)か否か推定 • シーンが平面的であればHを,そうでなければFを用いてR, 𝐭を推定 • 内部パラメータが既知のため5点アルゴリズムでEの直接推定も可能 • 推定したカメラ姿勢と誤対応除去した対応点から3D点を復元しFull BAで最適化 • 単眼カメラの場合はスケール不定のため,ORB-SLAMでは3D点の奥行きの中央値が1 となるように復元結果をスケーリング リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes 2フレームでマップの初期化(成功するまで繰り返し)
  89. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) = ~ 2D-3Dマッチング 107 動画の連続性を利用した高速なマッチング

    ① 3D点を画像平面へ投影 • 過去2フレームのカメラの運動から次の姿勢を予測 • 等速度・等角速度モデルなどを利用 • monoSLAM,PTAM,ORB-SLAMで採用 • IMU等の角速度や加速度でロバスト性向上 • マッチングが失敗(モーション仮定が破綻)した場合 • ORB-SLAMではBoWを利用したマッチングを試行 • 同じワードに属する特徴点のみに探索範囲を絞り計算量削減 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes 等速度・等角速度モデルによる姿勢の予測
  90. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 2D-3Dマッチング 108 動画の連続性を利用した高速なマッチング ② 2D-2Dマッチング

    • 特徴点の微小変位を仮定 • オプティカルフロー(画素の移動量)を推定 • 輝度勾配から特徴点対応を計算するLucas-Kanade法 • 範囲を限定した特徴点マッチング • CNN • 計算済みの前フレームの2D-3Dマッチングを介して,現在フレームの2D点と復元済み の3Dとの対応関係を計算 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes [57] Z. Teed et al., “RAFT: Recurrent All-Pairs Field Transforms for Optical Flow”, ECCV, 2020(画像を引用) [100] C. Tomasi et al., “Detection and Tracking of Point Features”, 1991 [101] J. Shi et al., “Good features to track”, CVPR, 1994 CNNによるオプティカルフロー推定の例
  91. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) カメラの初期姿勢推定 前フレームの3D点と現在フレームの2D点の対応から推定 • 2D-3Dマッチングの結果を利用 •

    カメラ姿勢をmotion-only BA等で推定 • 初期値 • カメラの運動モデルで予測したカメラ姿勢 • 前フレームのカメラ姿勢 • 再投影誤差を最小化 大域的なリローカリゼーション • トラッキングが失敗した場合 • BoWを利用した高速な特徴点マッチングで仮対応 • BoWを利用した類似画像検索で候補として選出されたキーフレームのみ • P4P (EPnP) + RANSAC → motion-only BAで誤対応除去 109 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  92. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 対応点の追加とカメラ姿勢の最適化 ローカルマップの3D点に対して追加で対応点を探索 • 推定したカメラの初期姿勢をガイドとして利用 •

    ローカルマップの構成要素 • 現在フレームと3D点を共有しているキーフレーム群 • Covisibility Graph上で に隣接するキーフレーム群 110 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  93. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) キーフレーム (KF)判定 視野変化,トラッキングの質,経過フレーム数から決定 • KF数少

    → 類似画像検索や最適化の計算量が減少 • KF不足 → トラッキングの失敗やバンドル調整の精度低下 • ORB-SLAMではPTAMより挿入条件を緩和 • 後の処理で冗長なKFや3D点の削除を前提 • 1〜4の条件が全て満たされた時にKFが挿入 1. 現在フレームの追跡点数が参照KFの90%以下 • 最低限の視野の変化 2. 現在フレームの追跡点数が50点以上 • トラッキングの質の確認 3. 大域的なリローカライズから20フレーム以上経過 • リローカライズの質の確認 4. ローカルマッピングがアイドル状態 or 前回KF挿入から20フレーム以上経過 • 挿入されたKFをすぐ処理するためLocal BAを実行中の場合は停止信号を送信 111 ☺  リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  94. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) ローカルマッピング キーフレームを受け取り3D点を復元 • 全体最適化を行うループクロージングを別スレッド化 •

    トラッキング用のローカルマップを常時最新に保持 • 以下の順で処理 • マップへのキーフレーム挿入 • トラッキングに不適な3D点の削除 • 3D点の復元 • Local BA • 冗長なキーフレーム削除 113 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  95. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) マップへのキーフレーム挿入 以下の順で処理 1. 追加キーフレーム𝐾𝑖 のBoW情報の生成

    • 特徴点マッチングとループ検出の類似画像検索用 • 各局所特徴量のワードと画像全体の特徴量を計算 2. 𝐾𝑖 と3D点の関係付け • 幾何的なパラメータ(3D点の法線ベクトルなど)と特徴量を更新 3. 𝐾𝑖 をCovisibilityグラフへ追加 • 他のキーフレームとの共有3D点からエッジを更新 • Essential Graphにも𝐾𝑖 とのリンクを追加 114 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  96. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) トラッキングに不適な3D点の削除 トラッキングが安定しない3D点を削除 • 直近に追加された3D点の内トラッキングに適した点のみ保持 •

    精度,計算・メモリ効率を向上 • 以下の二つの条件を満たす3D点のみ保持(それ以外は削除) • 一定の視野内に入っているトラッキングフレームの内,対応付くフレームが一定の割合 (例:25%)以上 • 一定数(例:3つ)以上のキーフレームで観測 115 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  97. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 3D点の復元 𝐾𝑖 の未復元の2D点に対して の2D点とマッチングし復元 1.

    キーフレーム間のベースラインの長さを確認 • シーンの奥行きに対して短すぎる場合は復元不可 2. 2D点のマッチング • BoWによる高速な2Dマッチング • 基礎行列Fのエピポーラ拘束で誤対応除去 3. 三角測量で3D点を復元 • 十分な視差 + 奥行きが正(カメラ前方に復元)か確認 4. 以下のテストを通過すればマップ点として追加 • 再投影誤差を用いたカイ二乗検定による外れ値判定 • 特徴点のスケール(デプス)の整合性の確認 5. 三角測量を行なったキーフレーム以外の画像平面にも投影して対応点を探索 116 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes 𝐾𝑖 :追加されたキーフレーム : 𝐾𝑖 の周囲のキーフレーム群
  98. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Local BA ローカルマップ(最新キーフレーム𝐾𝑖 周辺)のみ最適化 •

    トラッキング,ループ検出,リローカリゼーションの精度向上 • 最適化変数(他の変数は全て固定) • 最新キーフレーム𝐾𝑖 • Covisibility Graph上で𝐾𝑖 と接続されている周囲のキーフレーム • 𝐾𝑖 と から観測されている全ての3D点𝐗vis • 最適化の中で外れ値を除去しながら最適化 • 復元した3D点は誤対応や悪条件の三角測量等により外れ値の可能性 • 外れ値判定された3D点はマップから削除 117 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes
  99. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) リローカリゼーション トラッキング Motion-only BA マップ初期化

    画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes 冗長なローカルキーフレームの削除 他のKFと同様の観測情報を有するローカルKFを削除 • 3D点の削除と同様に精度,計算・メモリ効率を向上 • 最適化(PGO,BA)や類似画像検索の計算量を削減 • 以下の条件を満たす周囲キーフレーム を削除 • 観測している3D点の90%以上が,3つ以上の他のキーフレームから同じあるいはより精細 なスケール(つまり近い距離)で観測 ⇒ より精度が高い観測を有するキーフレームが他に十分存在 118
  100. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) ループクロージング 120 リローカリゼーション トラッキング Motion-only

    BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes カメラ軌跡全体を修正 • 未知領域から計測済みの領域に戻って来たことを認識 • 相対姿勢の累積が0になることを利用 • 最新キーフレーム𝐾𝑖 のローカルマッピング完了後 • 二段階の処理 • ループ検出 • 類似画像検索によるループ候補検出 • Sim(3)推定によるループ判定 • ループ修正 • ループ構築 • スケールドリフトを考慮したポーズグラフ最適化 • Global BA
  101. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 類似画像検索によるループ候補検出 121 リローカリゼーション トラッキング Motion-only

    BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes 空間および時間的な整合性からループを検出 • 最新と候補(過去)のKF間に対して類似度を計算 • 主に二つの方法が存在 • ルールベースで決定論的に推定 • 基本的に画像特徴のみ利用 • ORB-SLAM2,DBOW,Kimera • 確率的に推定 • キーフレームのグラフ構造をトポロジカルなマップとして利用 • 移動体のオドメトリや他のセンサ情報も確率的に統合可能
  102. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 類似画像検索によるループ候補検出 122 候補KF 候補KFの隣接KF 類似度計算

    最新KF Covisibleエッジ 二つ前の最新KF で条件マッチ 一つ前の最新KF で条件マッチ 現在の最新KFとマッチ すればループ候補に採用 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes ORB-SLAM2 • 二つの基準で候補を削減 • BoWを利用した共有ワード数 • CGを利用した時間的な連続性 • 具体的な処理 1. 最新KFと共有ワード数が少ない候補KFを除外 2. 候補KFとその周辺KFの,最新KFに対する類似スコアを合計し,その合計スコアが低い 候補KFを除外(図.a) 3. 隣接KFの内1,2の判定を一定回数連続で通過したKFのみループ候補として検出(図.b) (a) 最新KFに対する候補KFとその周辺KFの類似度を合計 候補KF 候補KFの隣接KF 類似度計算 最新KF Covisibleエッジ 二つ前の最新KF で条件マッチ 一つ前の最新KF で条件マッチ 現在の最新KFとマッチ すればループ候補に採用 (b) 隣接KFにおいて連続で判定条件を通過
  103. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Sim(3)推定によるループ判定 123 リローカリゼーション トラッキング Motion-only

    BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes Sim(3)推定+RANSACによる幾何検証でループ判定 • 復元済みの3D点の形状を比較して類似度を推定 • 単眼カメラの場合はスケールドリフトが発生 • 3次元の相似座標変換Sim(3)により3D点を座標変換し比較 • 複数の3D点の対応からSim(3)変換 S を推定 • Horn’s method,Umeyama’s methodなど複数存在 • ORB-SLAM2ではHornの手法を採用 (c) PGOとGlobal BAで累積誤差を修正 (a) Sim(3)推定によるループ判定 (b)最新キーフレームとその3D点を移動しループ構築
  104. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Sim(3)推定によるループ判定 124 リローカリゼーション トラッキング Motion-only

    BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes Sim(3)推定+RANSACによる幾何検証でループ判定 • 具体的な処理手順 1. Sim(3)推定+RANSACで仮のSを推定 2. 仮のSをガイドとし再度対応点を探索 3. Sim(3)に拡張したmotion-only BAで最適化された෠ Sを取得 4. この෠ Sを利用して正しい対応点を改めて推定 5. 正しい対応点の数が一定数以上であればループキーフレーム𝐾𝑙 として判定 (c) PGOとGlobal BAで累積誤差を修正 (a) Sim(3)推定によるループ判定 (b)最新キーフレームとその3D点を移動しループ構築
  105. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) ループ構築 125 リローカリゼーション トラッキング Motion-only

    BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes (c) PGOとGlobal BAで累積誤差を修正 (a) Sim(3)推定によるループ判定 (b)最新キーフレームとその3D点を移動しループ構築 ローカルマップをループキーフレーム𝐾𝑙 側へ移動 1. 推定されたSim(3)変換෠ Sを以下に適用 • 最新キーフレーム𝐾𝑖 • 𝐾𝑖 の周辺キーフレーム群 • 𝐾𝑖 , から観測される3D点𝐗𝑖 , 𝐗𝑐 2. 𝐾𝑙 の周辺キーフレームから観測されている3D点𝐗𝑙 を,移動した𝐾′𝑖 , に投影して 2D点と関係付け • 3D点が重複した場合は統合
  106. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) スケールドリフトを考慮したポーズグラフ最適化 ポーズグラフ最適化( Pose Graph Optimization

    (PGO) ) • 同一地点に戻ってきた制約を利用してカメラ軌跡の誤差を修正 • 単眼カメラの場合 • スケールドリフトが存在(図.a) • 6自由度のPGOではスケール誤差を修正不可(図.b) • スケールドリフトを考慮した7自由度のPGOにより誤差を修正可能(図.c) 126 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes スケールドリフトを考慮したポーズグラフ最適化(PGO) [20] H. Strasdat, “Scale Drift-Aware Large Scale Monocular SLAM”, Robotics: Science and Systems VI, 2010(画像を引用)
  107. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) スケールドリフトを考慮したポーズグラフ最適化 127 リローカリゼーション トラッキング Motion-only

    BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes • SE(3)(剛体変換)をSim(3)(相似変換)パラメータへ変換 • 絶対姿勢 T𝑖 ∈ SE 3 → S𝑖 ∈ Sim 3 • 相対姿勢 ΔT𝑖𝑗 ∈ SE(3) → ΔS𝑖𝑗 ∈ Sim 3 • BAと同様に残差と誤差関数を定義し最小化 • 相対姿勢ΔSを制約(固定)条件として絶対姿勢Sを最適化 • 推定したSを利用し各KFが観測している3D点の位置も修正 W:残差の重み行列 𝐬 ∈ 𝔰𝔦𝔪 3 : Sのリー環 [20] H. Strasdat, “Scale Drift-Aware Large Scale Monocular SLAM”, Robotics: Science and Systems VI, 2010
  108. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) Global BA 全てのカメラと3D点に対する6自由度のバンドル調整 • PGOではカメラの相対姿勢のみを拘束条件として最適化

    • PGO後に3D点も含めて大域最適化 • Global BA完了後 • ループクロージング中に並列処理のローカルマッピングが新たなKFや3D点を生成 • ループロージング対象外のKFや3D点へ修正量を伝搬 128 リローカリゼーション トラッキング Motion-only BA マップ初期化 画像 特徴点抽出 No No 2D-3Dマッチング 失敗 モーション仮定 BOW ロスト? No Yes KF判定 KF ローカルマッピング マップへのKF挿入 トラッキングに 不適な3D点の削除 3D点の復元 Local BA 冗長なKFの削除 ループ検出 ループクロージング 類似画像検索で ループ候補検出 Sim(3)+RANSAC でループ判定 ループ? Yes ループ構築 ポーズグラフ最適化 Global BA , ループ修正 ループ検出の リクエスト 類似画像検索 P4P+RANSAC Motion-only BA ロスト? 初期化済? Yes Yes (c) PGOとGlobal BAで累積誤差を修正 (a) Sim(3)推定によるループ判定 (b)最新キーフレームとその3D点を移動しループ構築
  109. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 5. 今後の展開 • シーンの意味的理解 •

    機械学習の発展に伴い,点群やメッシュ等の形状だけでなく,シーンの意味的理解に 関する研究が活発化 • マップの共有とシーンプラバシーの問題 • 発展の裏返しとしてマップ共有によるシーンプライバシー漏洩のリスクも顕在化 130
  110. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) シーンの意味的理解 センサ姿勢とシーンの3D形状だけでなくシーンの意味的理解を同時推定 • CubeSLAM •

    単眼Visuasl SLAMに2Dの物体検出器を導入し,3D Bounding Boxを同時推定 • 物体レベルの観測を導入することで,特徴点を検出しづらいテクスチャレスな環 境でも物体自身をランドマークとしたトラッキングが可能 • ClusterVO • ステレオVOにおいて2Dの物体検出器を導入し動的な3D BBを推定 132 [12] S. Yang et al., “CubeSLAM: Monocular 3D Object SLAM”, Transactions on Robotics, 2019 (画像を引用) [110] J. Huang et al., “ClusterVO: Clustering Moving Instances and Estimating Visual Odometry for Self and Surroundings”, CVPR, 2020(画像を引用) CubeSLAM ClusterVO
  111. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) シーンの意味的理解 リアルタイムな意味的3Dメッシュモデルの構築 • VI-SLAMシステムのKimera 133

    [14] A. Rosinol et al., “Kimera: an Open-Source Library for Real-Time Metric-Semantic Localization and Mapping”, ICRA, 2020 [15] A. Rosinol et al., “Kimera: from SLAM to Spatial Perception with 3D Dynamic Scene Graphs”, arXiv, 2021 (画像を引用) VI-SLAMによる意味的な3Dメッシュの復元
  112. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) シーンの意味的理解 3Dダイナミックシーングラフの構築 • 5つの異なる抽象度のレイヤー •

    何が,いつ,どこで,何をしたかなど,より高度な空間的な理解が可能 • ロボットの行動計画など様々な応用が期待 134 3Dダイナミックシーングラフの例 [14] A. Rosinol et al., “Kimera: an Open-Source Library for Real-Time Metric-Semantic Localization and Mapping”, ICRA, 2020 [15] A. Rosinol et al., “Kimera: from SLAM to Spatial Perception with 3D Dynamic Scene Graphs”, arXiv, 2021 (画像を引用)
  113. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) マップの共有とシーンプラバシーの問題 • AR,サービスロボット,自動運転車の普及によりマップ共有の重要性が向上 • 他者が作成したマップの共有により質の高いサービスを提供

    • 計測やマップ構築のコスト削減,同一空間におけるユーザー体験の提供など • 同時にシーンプライバシーが侵害されるリスクも発生 • SfMで復元した3D特徴点群から元のシーン画像を復元可能 • 3D特徴点群からシーンに含まれるセンシティブな情報を画像として取得 • 悪意のある第三者が反転攻撃により情報を盗み見られる危険性 136 [111] F. Pittaluga et al., “Revealing Scenes by Inverting Structure From Motion Reconstructions”, CVPR, 2019 (画像を引用) (a) SfMで復元した3D特徴点群とカメラ軌跡(赤線) 3D特徴点群を用いたシーン画像の復元 (c) (b)から推定したシーン画像 (b) 3D特徴点群を投影した画像 (d) 元のシーン画像(正解データ)
  114. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 2D特徴点群とシーンプラバシーの問題 • ユーザーが画像をサーバーに送信する際もリスクが存在 • ローカリゼーション,マップ構築(SfM)

    • 2D特徴点群のみからも元のシーン画像を復元可能 • サーバー管理者がマップ構築に必要なデータ(2D特徴点群)のみ取得する方法では プライバシー保護不可 137 [112] P. Speciale et al., “Privacy Preserving Image Queries for Camera Localization”, ICCV, 2019 (画像を引用) (a) 元画像,(b) 画像から検出された全ての2D特徴点を利用した復元 (c) ローカリゼーションにより復元された2D特徴点群のみ利用した復元 2D特徴点群のみを用いたシーン画像の復元
  115. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 点群から直線群への変換によるシーン情報の秘匿 一次元分の情報を欠落させ曖昧性を持たせることでシーン情報を秘匿 • 3D直線群を用いた画像表現 •

    2D特徴点群をランダム方向の2D直線群に変換 • サーバーのマップにないものは復元されないため,ユーザーが送信する画像コンテンツの プライバシーは保護 • 3D直線群を用いたマップ表現 • 3D点群をランダな方向の3D直線群に変換 • マップを利用して単一画像のローカリゼーション 138 [112] P. Speciale et al., “Privacy Preserving Image Queries for Camera Localization”, ICCV, 2019 (画像を引用) [113] P. Speciale et al., “Privacy preserving image-based localization”, CVPR, 2019 (図を引用) 変換した2D直線群 入力画像 検出した2D特徴点群 2D特徴点群をランダムな方向の2D直線群に変換 3D特徴点群をランダムな方向の3D直線群に変換
  116. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) プラバシー保護を考慮したSfM 画像内のプライバシーを保護しながら集めたデータでマップ構築が可能 • 従来のSfMの枠組みを2D直線群の入力へ拡張 •

    2D直線群のみから3D点群を復元 139 [114] M. Geppert et al., “Privacy Preserving Structure-from-Motion”, ECCV, 2020 (図,画像を引用) 2D直線を利用した三角測量 プライバシー保護を考慮したSfMの概要
  117. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) プラバシー保護を考慮したVisual SLAM 共有された3D直線群マップに対してリアルタイム処理を実現 • 直線に対する幾何ソルバー(例:p6L)は計算量が大きくリアルタイム処理が困難

    • 従来のVisual SLAMのフレームワークを拡張しトラッキング,マッピング,リローカ リゼーション,ループクロージングのリアルタイム処理を実現 140 [115] M. Shibuya et al., “Privacy Preserving Visual SLAM”, ECCV, 2020 (図,画像を引用) プライバシー保護を考慮したVisual SLAMシステムの概要 既存の3D直線群マップに対するリローカリゼーション,トラッキング,マッピング,ループクロージング
  118. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) プラバシー保護を考慮したVisual SLAM Line-Cloud Visual SLAM

    (LC-VSLAM) • Visual SLAMで復元した3D点群を利用した効率的なリローカリゼーションとトラッキング • 直線と点の混合マップに対するmotion-only, rigid-stereo, local, and global BA • 透視投影,魚眼, Equirectangularの透視投影モデル対応した統合フレームワーク 141 LC-VSLAMの処理フロー 各種BAの最適化パラメーター 2D点と離散化した3D直線とのマッチング 3D直線の情報行列(重み行列)とBAの誤差指標 [115] M. Shibuya et al., “Privacy Preserving Visual SLAM”, ECCV, 2020 (図,画像を引用)
  119. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) 3D直線群の3D点群への変換 142 Line2Point • プライバシー保護技術が提案される一方で,一定の条件下で3D直線群から3D点群を復元

    する反転攻撃の手法も提案 • 暗号化やネットワークセキュリティなどと同様に,保護技術の改善に加えて,利用方法も 含めた社会全体でシーンプライバシーを保護する仕組みを考えることが重要 元の3D点群 3D点群 → 3D直線群 3D直線群 → 3D点群 3D直線群 → 3D点群 → 画像 [116] K. Chelani et al., “How Privacy-Preserving Are Line Clouds? Recovering Scene Details From 3D Lines”, CVPR, 2021 (画像を引用)
  120. 2021年11月6日 CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM入門(2022年12月更新) まとめ • SLAMはfront-endとback-endから構成 • front-end(低レベルな処理):センサデータから必要な情報を抽出

    • backend (高レベルな処理): MAP推定または最尤推定として定式化 • Odometryと比較してSLAMは正しいトポロジーの認識が可能 • SfM ⊇ Visual SLAM ⊇ VO • Visual SLAMは大きく分けて三つの枠組みに分類 • 特徴点ベースの手法,直接法,深層学習ベースの手法 • 3次元復元の予備知識 • キーポイント検出と特徴量記述,座標変換とカメラの投影モデル,エピポーラ幾何,特徴点マッチングと 幾何モデルの推定,Perspective-n-Point (PnP)問題,三角測量による3D点の復元,バンドル調整,SfM • 特徴点ベースのVisual SLAMの基礎 • システム構成,Bag of Wordsを利用した類似画像検索,キーフレームのグラフ構造,トラッキング,ロー カルマッピング,ループクロージング • 今後の展開 • シーンの意味的理解,マップの共有とシーンプラバシーの問題 143