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

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

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.今後の展開

Ken Sakurada

November 06, 2021
Tweet

Other Decks in Research

Transcript

  1. 2021年11⽉6⽇ CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM⼊⾨(2022年12⽉更新) 講演者プロフィール 2 櫻⽥ 健 産総研

    ⼈⼯知能研究センター 社会知能研究チーム 主任研究員 多くのRAやインターン,企業のメンバーと⼀緒に,コンピュータ ビジョンやロボティクスの研究に取り組んでいます。 学部⽣も多く,地⽅の⽅も歓迎ですので,研究開発に興味がある ⽅は気軽にご連絡ください。 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]の図を引⽤) Here, σ2 f is the signal variance and l is a length scale that de- termines the strength of correlation between points. Both pa- rameters control the smoothness of the functions estimated by a GP. As can be seen in (2), the covariance between function values decreases with the distance between their correspond- ing input values. Since we do not have access to the function values, but only noisy observations thereof, it is necessary to represent the corresponding covariance function for noisy observations: cov (y r, y s ) = k(x i, x j ) + σ2 n δrs . (3) Here σ2 n is the Gaussian observation noise variance and δrs is one if r = s and zero otherwise. For an entire set of input values X, the covariance over the corresponding observations Y becomes cov (Y) = K + σ2 n I, (4) where K is the n × n covariance matrix of the input values, that is, K[i, j] = k(x i, x j ). Note that (4) represents a prior over functions: For any set of values X, one can generate the matrix K and then sam- ple a set of corresponding targets Y that have the desired covariance [Rasmussen and Williams, 2005]. The sampled values are jointly Gaussian with Y ∼ N(0, K + σ2 n I). More relevant, however, is the posterior distribution over functions given training data X, Y. Here, we are intrested in predict- Figure 1: GP model for signal strength of one access point. Black dots indicate training data along the ground truth path. 3.2 Application to Signal Strength Modeling GPs have been applied very successfully to signal strength modeling, where the input values X correspond to locations, and the observations Y correspond to signal strength mea- surements obtained at these locations [Schwaighofer et al., 2003; Ferris et al., 2006]. Here, the GP posterior is estimated from a trace of signal strength measurements annotated with their locations. Assuming independence between different access points, these techniques estimate a GP for each access point separately. 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]の図を引⽤) J L
  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次元復元の場合 未知: 𝐱 = 𝐩𝐓, 𝐗𝐓 𝐓 , 既知: 𝐳 𝐩(#), 𝐩(%), 𝐗(#), 𝐗(%), 𝐗(&) 複雑な関数(処理)𝑓 𝒛(𝟏,𝟏) 𝒛(𝟏,𝟐) 𝒛(𝟐,𝟏) 𝒛(𝟐,𝟐) = 𝑝(𝐱|𝐳) [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 未知:𝐳, 既知:𝐱 = 𝐩𝐓, 𝐗𝐓 𝐓 𝐗(#) 𝐗(%) 𝐗(&) 𝐩(#) 𝐩(%) 𝒛 𝐩(#), 𝐗(%) 𝒛 𝐩(%), 𝐗(%) 𝒛 𝐩(%), 𝐗(&) 𝒛 𝐩(#), 𝐗(#) ※ 𝒇 𝐱(𝒊,𝒋) = 𝒛 𝐩(*), 𝐗(+) は単純な投影関数 = 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 = Σ! %#で表現 20 𝑝 𝒛! 𝐱! ∝ exp − 1 2 𝑓! 𝐱! − 𝐳! &! ' 𝑝 𝒛! 𝐱! ∝ exp − 1 2 𝐞! (W!𝐞! ( # !! " はマハラノビス距離) 𝐞! = 𝑓! 𝐱! − 𝐳! [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 𝐞* (W*𝐞* ) 𝐱 = argmin − ln 𝑝(𝐱) 1 !"# $ 𝑝(𝒛!|𝐱!) = argmin A !"* $ 𝐞! (W!𝐞! 𝐱 𝐱 = argmin 𝐞(W𝐞 𝐱 (𝐞: 𝐞# を⼀列に並べたベクトル) (多くの問題で 𝐞# = 𝑓# 𝐱# − 𝐳# の𝑓# は⾮線形関数) [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 J L [17] C. Cadena et al., “Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age”, TRO, 2016 2 3 1 4 5 6 A 1 A A A A A 2 3 4 5 6 Odometry SLAM 2 3 1 4 5 ≈ 6 A 1 A A A A A 2 3 4 5 6
  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 の模式図 𝒛 𝐩(1), 𝐗(2) :姿勢𝐩(1) の画像平⾯に3D点𝐗(2)を投影する関数 𝒛(𝒊,𝒋) :画像𝑖上で検出された2D点𝑗
  21. 2021年11⽉6⽇ CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM⼊⾨(2022年12⽉更新) 画像間の輝度値の誤差を最⼩化 • photometric error •

    の和を最⼩化するカメラ姿勢 と デプス𝐝を推定 直接法 (Direct method) 30 !(") !($) !(%) "($,$) " #($), !($) #(") #($) #(%) %' (",$) %' ($,$) %' (%,$) "($,() #(") #($) #(%) "($,(,") "($,(,%) %) ($,(,%) %) ($,(,") &(*,() ! #($), '(*,() photometric error の模式図 X(𝒑 1 , 𝑑(1,2)):画像𝐼(1)の𝑗番⽬の2D点𝐳(1,2)を𝑑(1,2)で投影した3D点 𝒛(1,2,5) : X(𝒑 1 , 𝑑(1,2))を観測する別の画像𝐼(5)に投影した2D点 𝑑(1,2) :デプスの逆数(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 • 最も単純な透視投影モデル 𝑓$ , 𝑓% :各軸の焦点距離 𝑐$ , 𝑐% :光学中⼼ 𝐗& = 𝑋& , 𝑌& , 𝑍& ':カメラ座標系の3D点 𝐳& = 𝑢, 𝑣 ' :画像平⾯上の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 𝑓% 𝑐% 𝑟&) ** 𝑟&) *" 𝑟&) *+ 𝑡&) * 𝑟&) "* 𝑟&) "" 𝑟&) "+ 𝑡&) " 𝑟&) +* 𝑟&) +" 𝑟&) ++ 𝑡&) + 𝑋) 𝑌) 𝑍) 1 𝐗& = 𝑋& , 𝑌& , 𝑍& ' :カメラ座標系の3D点 𝐗) = 𝑋) , 𝑌) , 𝑍) ' :ワールド座標系の3D点 R&) , 𝐭&) :カメラの回転⾏列,並進ベクトル : 𝐗) = 𝑋) , 𝑌) , 𝑍) , 1 ' : 𝐗) の同次座標
  48. 2021年11⽉6⽇ CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM⼊⾨(2022年12⽉更新) エピポーラ幾何 2つのカメラと3D点の空間的対応関係 • 3Dシーンを撮影した画像間の対応点における拘束条件 •

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

    | 𝐭 の情報を含む⾏列 エピポーラ拘束 • ⼀⽅の画像上の点𝐳# が決まれば,もう⼀⽅の画像上の対応点𝐳' に関する制約を与える • 画像𝐼# 上の点𝐳# に対応する画像𝐼' 上のエピポーラ線は 𝐥' = F𝐳# • これを先の式に代⼊すると 𝐳' ( 𝐥' = 0 ⇒ 直線のベクトル⽅程式 62 𝑢" 𝑣" 1 𝑓** 𝑓*" 𝑓*+ 𝑓"* 𝑓"" 𝑓"+ 𝑓+* 𝑓+" 𝑓++ 𝑢* 𝑣* 1 = 𝐳" 'F𝐳* = 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

    | 𝐭 の情報を含む⾏列 𝐳' ( F 𝐳# = 0に代⼊すると 64 K* ,K" :各カメラの内部パラメータ E ≔ K? @ F KA 𝐳? @ K? @ BA E KA BA𝐳A = 0 ! 𝐳? @ E ! 𝐳A = 0 C 𝐳* = K* ,*𝐳* ,C 𝐳" = K" ,*𝐳" : 𝑍& =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, “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 の全インライアを⽤い た最⼩⼆乗法により最終的な推定値 R 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点𝐗の間で 𝐳 = # -$ 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) と並進

    ベクトル𝐭 ∈ ℝ.,スケールパラメータ𝑠を⽤いてそれぞれ以下のように表現 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を回転ベクトル表現 𝝎 = 𝜔A

    , 𝜔? , 𝜔R @ ∈ 𝔰𝔬 3 で表現 • 𝔰𝔬 3 からSO 3 への指数写像 exp ∶ 𝔰𝔬 3 → SO 3 𝝎 → R • 𝜃 = 𝝎 ' : 𝝎の回転⾓ • # " はL2ノルム(⼀般的な距離の概念であるユークリッド距離) • この写像の関係はロドリゲスの回転公式 (Rodriguesʼ rotation formula)により以下 の式で表現 I/ は𝑛×𝑛の単位⾏列I/ , f × は歪対称⾏列の作⽤素 • 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⽉更新) 回転⾏列と回転ベクトル • 並進𝐯も含めたカメラ姿勢 𝐩 =

    𝝎(, 𝒗( ( ∈ 𝔰𝔢 3 からSE(3)への写像 • スケール𝜎も含め𝐬 = 𝝎(, 𝜎, 𝒗( ( ∈ 𝔰𝔦𝔪 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 !(") !($) !(%) "($,$) " #($), !($) #(") #($) #(%) %' (",$) %' ($,$) %' (%,$) #(") "($,( 問題設定の例 !z($(",")) !&(") !z($(",")) !' % (") !z($(",&)) !&(") !z($(",&)) !' % (&) !z($(&,")) !&(&) !z($(&,")) !'% (") !z($(&,&)) !&(&) !z($(&,&)) !' % (&) !z($(&,')) !&(&) !z($(&,')) !' % (') !z($(',&)) !&(') !z($(',&)) !'% (&) !z($(',')) !&(') !z($(',')) !' % (') カメラ視点数 ! × 6 3D点数 % × 3 カメラ1の 2D点数× 2 カメラ2の 2D点数× 2 カメラ3の 2D点数× 2 𝑚 = 𝑛 = 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が未知の場 合は,光学中⼼ 𝑐1, 𝑐2 を画像中⼼, 焦点距離𝑓を適当な初期値に設定した 上で, 𝑐1, 𝑐2 は固定し, 𝑓は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を利⽤した類似画像検索 画像間の類似度 •

    ⼆つの画像特徴𝐯#, 𝐯' 間の類似度(or ⾮類似度)には, 𝐿# , 𝐿' ノルム,コサインを 利⽤するものなど様々な定義が存在 • [Nister,2006]の⽂献[85]では𝐿' ノルムよりも𝐿# ノルムを⽤いた⽅が精度が⾼いと報告 • DBOW2[92]を利⽤するORB-SLAMでも𝐿# ノルムを⽤いた類似度を利⽤ 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 1 1 0 1 0 1 バイナリ特徴量256 bit 1 1 0 1 x x x x 次元削減 上位N bit (ORBの場合) ≈ ワードの役割 次元削減によるワード変換
  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 J L リローカリゼーション トラッキング 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. 追加キーフレーム𝐾3 のBoW情報の⽣成

    • 特徴点マッチングとループ検出の類似画像検索⽤ • 各局所特徴量のワードと画像全体の特徴量を計算 2. 𝐾3 と3D点の関係付け • 幾何的なパラメータ(3D点の法線ベクトルなど)と特徴量を更新 3. 𝐾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 𝐾3 :追加されたキーフレーム : 𝐾. の周囲のキーフレーム群
  98. 2021年11⽉6⽇ CVIM/CGVI/DCC合同研究会 チュートリアル Visual SLAM⼊⾨(2022年12⽉更新) Local BA ローカルマップ(最新キーフレーム𝐾\ 周辺)のみ最適化 •

    トラッキング,ループ検出,リローカリゼーションの精度向上 • 最適化変数(他の変数は全て固定) • 最新キーフレーム𝐾. • Covisibility Graph上で𝐾. と接続されている周囲のキーフレーム • 𝐾. と から観測されている全ての3D点𝐗/01 • 最適化の中で外れ値を除去しながら最適化 • 復元した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になることを利⽤ • 最新キーフレーム𝐾3 のローカルマッピング完了後 • ⼆段階の処理 • ループ検出 • 類似画像検索によるループ候補検出 • 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点を移動しループ構築 ループ構築 z PGO (+ BA) 最新キーフレーム ループ検出 キーフレーム
  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で最適化された5 Sを取得 4. この5 Sを利⽤して正しい対応点を改めて推定 5. 正しい対応点の数が⼀定数以上であればループキーフレーム𝐾4 として判定 (c) PGOとGlobal BAで累積誤差を修正 (a) Sim(3)推定によるループ判定 (b)最新キーフレームとその3D点を移動しループ構築 ループ構築 z PGO (+ BA) 最新キーフレーム ループ検出 キーフレーム
  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点を移動しループ構築 ループ構築 z PGO (+ BA) 最新キーフレーム ループ検出 キーフレーム ローカルマップをループキーフレーム𝐾^ 側へ移動 1. 推定されたSim(3)変換5 Sを以下に適⽤ • 最新キーフレーム𝐾3 • 𝐾3 の周辺キーフレーム群 • 𝐾3 , から観測される3D点𝐗3 , 𝐗+ 2. 𝐾4 の周辺キーフレームから観測されている3D点𝐗4 を,移動した𝐾′3 , に投影して 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)(相似変換)パラメータへ変換 • 絶対姿勢 T3 ∈ SE 3 → S3 ∈ Sim 3 • 相対姿勢 ΔT35 ∈ SE(3) → ΔS35 ∈ 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点を移動しループ構築 ループ構築 z PGO (+ BA) 最新キーフレーム ループ検出 キーフレーム
  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