Movatterモバイル変換


[0]ホーム

URL:


MK
Uploaded byMasaya Kaneko
20,346 views

SLAMチュートリアル大会資料(ORB-SLAM)

2017.05.27, 3D勉強会@関東 発表資料 論文紹介:ORB-SLAM

Downloaded 275 times
第1回 3D勉強会@関東 (2018/05/27)(SLAMチュートリアル大会)論文紹介: ORB-SLAM東京大学 相澤研究室所属M1 金子 真也 (@syinari0123)
1自己紹介• 氏名– 金子 真也 (かねこ まさや)• 所属– 東京大学大学院 学際情報学府 相澤研 M1• 興味– Visual SLAM/SfM, 深層学習– 「乃木坂46メンバーを動画から三次元へ復元する」(https://qiita.com/syinari0123/items/f8b8ae08a80002361855)
2本発表の目標• 画像から三次元復元を行うVisual SLAMの話– 入力は「画像」, 今回は単眼カメラ画像– リアルタイム版SfM• Visual SLAMの代表例としてのORB-SLAM– リアルタイムなSfMを実現する機構の大雑把な理解• 高速化?効率化?– 詳しい内容は論文 or 以下のメモスライド• 「ORB-SLAMの手法解説」(https://www.slideshare.net/MasayaKaneko/orbslam-84842802)
3SfMのおさらい• SfM (Structure from Motion)– 問題設定• 入力:様々な視点で撮影された画像群• 出力:カメラ姿勢推定 + 三次元構造復元画像群 カメラ姿勢推定 + 三次元構造復元
4SfM vs Visual SLAM• Visual SLAM (Simultaneous Localization and Mapping)– リアルタイムにSfMを解く問題• 画像が入力される度にカメラ姿勢を推定映像 カメラ姿勢推定 + 三次元構造復元
5SfM vs Visual SLAM• 問題設定の違い手法 SfM Visual SLAM主な目的 物体の三次元構造の復元 リアルタイムなカメラ姿勢推定データの与え方画像群全て使える 逐次的に画像が挿入問題設定 正確性 >>> 速度 正確性 < 速度結果例
6逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
7逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)時刻 t-1過去のカメラの軌跡現在時刻 t?地図復元した三次元構造TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
8逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正時刻 t-1過去のカメラの軌跡現在時刻 t?地図復元した三次元構造
9逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)時刻 t-1過去のカメラの軌跡現在時刻 t?地図復元した三次元構造局所的な最適化TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
10逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)時刻 t-1過去のカメラの軌跡現在時刻 t地図復元した三次元構造TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)11逐次的な姿勢推定TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正時刻 t-1過去のカメラの軌跡現在時刻 t地図復元した三次元構造
• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)12逐次的な姿勢推定時刻 t-1過去のカメラの軌跡現在時刻 t地図復元した三次元構造TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
13逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(Simultaneous Localization and Mapping)時刻 t-1過去のカメラの軌跡地図復元した三次元構造?時刻 t現在時刻t+1…TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
14全体的な最適化• 逐次的な姿勢推定では局所的な最適化のみしか行わないため, 歪みが生じる– Loop Closingによる全体の軌跡の歪み修正Loop Closing歪み
15Visual SLAM まとめ• リアルタイムなカメラ姿勢推定の実現– 局所的な最適化:Tracking + Local Mapping– 全体的な最適化:Loop Closing• 局所的な最適化だけ行う Visual Odometry (VO)• 全体的な最適化も考慮 Visual SLAM– Visual SLAM = VO + Loop Closing• ORB SLAMではどのようになっているか?
16ORB-SLAM• 局所的な最適化 + 全体的な最適化
17ORB-SLAM• 局所的な最適化 + 全体的な最適化全体的な最適化局所的な最適化
181. 地図の定義1• 構成要素– 得られたカメラの画像𝐼𝐼𝑡𝑡と姿勢𝑇𝑇𝑡𝑡– 三次元点群の復元結果 𝒙𝒙𝑖𝑖• 対応する画像𝐼𝐼𝑡𝑡のORB特徴点 𝒖𝒖𝑡𝑡𝑡𝑡• ORB特徴量 𝒃𝒃𝑡𝑡𝑡𝑡• ORB特徴点(特徴量) : FAST corner + rBRIEF descriptor– 画像のcorner点, 回転/スケール不変な特徴量を持つ𝑇𝑇𝑡𝑡𝐼𝐼𝑡𝑡𝒖𝒖𝑡𝑡𝑡𝑡𝒙𝒙𝑖𝑖…(特徴量𝒃𝒃𝑡𝑡𝑖𝑖)
191. 地図の定義2• Covisibility Graph– 三次元位置𝒙𝒙𝑖𝑖は基本的には複数の画像で共有– 共有する点の数を可視化したGraphを定義• 効率の良い最適化 (Local Mapping/Loop Closingで利用)• 共有点が多いnode同士のみ: Essential GraphCovisibility Graph Essential Graphカメラの姿勢三次元点群点の共有度(共有する点の数)を重みとしたedge
202. Tracking[仕事1] 現在のカメラ姿勢を求める1. 画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡?地図
212. Tracking[仕事1] 現在のカメラ姿勢を求める1. 画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡?地図𝒖𝒖𝑡𝑡,𝑖𝑖
222. Tracking[仕事1] 現在のカメラ姿勢を求める1. 画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡?地図𝒖𝒖𝑡𝑡,𝑖𝑖
232. Tracking[仕事1] 現在のカメラ姿勢を求める1. 画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡地図𝒖𝒖𝑡𝑡,𝑖𝑖𝑇𝑇𝑡𝑡−1,𝑡𝑡
242. Tracking[仕事1] 現在のカメラ姿勢を求める1. 画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡地図𝒖𝒖𝑡𝑡,𝑖𝑖𝑇𝑇𝑡𝑡−1,𝑡𝑡
252. Tracking[仕事1] 現在のカメラ姿勢を求める1. 画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化[仕事2] 地図に保存するかの決定– 毎時刻の画像を保存するとメモリ/計算量的に発散するため, 冗長にならないように画像を選択(緩く)• KeyFrame (KF)
263. Local Mapping[仕事1] 地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph?
273. Local Mapping[仕事1] 地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph更新!
283. Local Mapping[仕事1] 地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph隣接するKF群
293. Local Mapping[仕事1] 地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph追加!隣接するKF群
303. Local Mapping[仕事1] 地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化 (Local BA)Covisibility GraphLocalな最適化隣接するKF群
313. Local Mapping[仕事1] 地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)[仕事2] 地図の修正– KFを監視し,冗長なKFを除外する(厳しく)• Arrival of the fittest
324. Loop Closing[仕事] Loop closingによる全体最適化1. 地図に挿入されたKFが既に見たことがあるか?• ORB特徴量から構成したBag of Words (BoW)画像特徴量同士の比較2. Loopを検知したらそれらを結ぶように最適化• Essential Graphによるスケールを含めた最適化?Covisibility Graph
334. Loop Closing[仕事] Loop closingによる全体最適化1. 地図に挿入されたKFが既に見たことがあるか?• ORB特徴量から構成したBag of Words (BoW)画像特徴量同士の比較2. Loopを検知したらそれらを結ぶように最適化• Essential Graphによるスケールを含めた最適化?Essential Graph
344. Loop Closing[仕事] Loop closingによる全体最適化1. 地図に挿入されたKFが既に見たことがあるか?• ORB特徴量から構成したBag of Words (BoW)画像特徴量同士の比較2. Loopを検知したらそれらを結ぶように最適化• Essential Graphによるスケールを含めた最適化Essential GraphLoop Closed!Sim(3) 全体最適化
35まとめ• Visual SLAM– Tracking + Local Mapping + Loop Closing• ORB-SLAM– ORB特徴量で画像間の対応を決定し三次元復元– Trackingが地図にすべき画像(KeyFrame)を選択,Local Mappingがそれを地図に追加/修正する• Covisibility GraphによるLocal BA– Loop ClosingはBoW画像特徴量で画像間の特徴量の近さを計算し, Loopを閉じるようにSim(3)最適化• Essential Graphの利用
36ORB-SLAMの立ち位置• Visual SLAMの分類 Direct vs Feature, Dense vs Sparse手法 Direct (画素値を直接利用) Feature (特徴量を抽出し利用)Sparse(画像から疎に抽出された点のみ利用)Direct Sparse Odometry[Engel+, 2016]ORB-SLAM[Mur-Artal+, 2015]Dense/Semi-Dense(画像全体/輝度勾配の高い領域の点を密に利用)LSD-SLAM [Engel+, 2014]SLAMでは特になし(Optical Flow等)

Recommended

PDF
Visual slam
PPTX
ORB-SLAMの手法解説
PPTX
SLAM勉強会(PTAM)
PDF
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
 
PDF
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
 
PPTX
SLAM勉強会(3) LSD-SLAM
PDF
20190825 vins mono
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
PDF
ORB-SLAMを動かしてみた
PDF
20180424 orb slam
PDF
オープンソース SLAM の分類
PDF
20180527 ORB SLAM Code Reading
PDF
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
PDF
Cartographer を用いた 3D SLAM
PPTX
Structure from Motion
PPTX
Direct Sparse Odometryの解説
PDF
LiDAR-SLAM チュートリアル資料
PDF
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
PDF
LiDAR点群と画像とのマッピング
PDF
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
PDF
tf,tf2完全理解
PDF
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
 
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
PDF
ロボティクスにおける SLAM 手法と実用化例
PDF
3次元レジストレーション(PCLデモとコード付き)
PDF
ROS を用いた自律移動ロボットのシステム構築
PDF
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
PDF
20190307 visualslam summary
PPTX
関東コンピュータビジョン勉強会
 

More Related Content

PDF
Visual slam
PPTX
ORB-SLAMの手法解説
PPTX
SLAM勉強会(PTAM)
PDF
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
 
PDF
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
 
PPTX
SLAM勉強会(3) LSD-SLAM
PDF
20190825 vins mono
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
Visual slam
ORB-SLAMの手法解説
SLAM勉強会(PTAM)
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
 
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
 
SLAM勉強会(3) LSD-SLAM
20190825 vins mono
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 

What's hot

PDF
ORB-SLAMを動かしてみた
PDF
20180424 orb slam
PDF
オープンソース SLAM の分類
PDF
20180527 ORB SLAM Code Reading
PDF
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
PDF
Cartographer を用いた 3D SLAM
PPTX
Structure from Motion
PPTX
Direct Sparse Odometryの解説
PDF
LiDAR-SLAM チュートリアル資料
PDF
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
PDF
LiDAR点群と画像とのマッピング
PDF
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
PDF
tf,tf2完全理解
PDF
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
 
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
PDF
ロボティクスにおける SLAM 手法と実用化例
PDF
3次元レジストレーション(PCLデモとコード付き)
PDF
ROS を用いた自律移動ロボットのシステム構築
PDF
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
ORB-SLAMを動かしてみた
20180424 orb slam
オープンソース SLAM の分類
20180527 ORB SLAM Code Reading
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Cartographer を用いた 3D SLAM
Structure from Motion
Direct Sparse Odometryの解説
LiDAR-SLAM チュートリアル資料
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
LiDAR点群と画像とのマッピング
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
tf,tf2完全理解
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
ロボティクスにおける SLAM 手法と実用化例
3次元レジストレーション(PCLデモとコード付き)
ROS を用いた自律移動ロボットのシステム構築
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成

Similar to SLAMチュートリアル大会資料(ORB-SLAM)

PDF
20190307 visualslam summary
PPTX
関東コンピュータビジョン勉強会
 
PDF
論文読み会(DeMoN;CVPR2017)
PPTX
LSD-SLAM:Large Scale Direct Monocular SLAM
PDF
DeepVIO: Self-supervised Deep Learning of Monocular Visual Inertial Odometry ...
PDF
Open3DでSLAM入門 PyCon Kyushu 2018
PPTX
3Dマップを活用したVisual Localization
PDF
ICCV2019読み会「Learning Meshes for Dense Visual SLAM」
PDF
CVPR2013の論文紹介(車載カメラ関連)
PDF
BA-Net: Dense Bundle Adjustment Network (3D勉強会@関東)
PDF
Fusion4dIntroduction
PDF
【DL輪読会】Monocular real time volumetric performance capture
PDF
Learning Spatial Common Sense with Geometry-Aware Recurrent Networks
PDF
3DFeat-Net
PDF
三次元表現まとめ(深層学習を中心に)
PDF
Robotpaper.Challenge 2019-09 ver2
PDF
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
PPTX
SfM Learner系単眼深度推定手法について
PDF
2014 0702 yamasaki_zemi
PDF
Master Thesis
20190307 visualslam summary
関東コンピュータビジョン勉強会
 
論文読み会(DeMoN;CVPR2017)
LSD-SLAM:Large Scale Direct Monocular SLAM
DeepVIO: Self-supervised Deep Learning of Monocular Visual Inertial Odometry ...
Open3DでSLAM入門 PyCon Kyushu 2018
3Dマップを活用したVisual Localization
ICCV2019読み会「Learning Meshes for Dense Visual SLAM」
CVPR2013の論文紹介(車載カメラ関連)
BA-Net: Dense Bundle Adjustment Network (3D勉強会@関東)
Fusion4dIntroduction
【DL輪読会】Monocular real time volumetric performance capture
Learning Spatial Common Sense with Geometry-Aware Recurrent Networks
3DFeat-Net
三次元表現まとめ(深層学習を中心に)
Robotpaper.Challenge 2019-09 ver2
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
SfM Learner系単眼深度推定手法について
2014 0702 yamasaki_zemi
Master Thesis

More from Masaya Kaneko

PDF
Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
PPTX
GN-Net: The Gauss-Newton Loss for Deep Direct SLAMの解説
PPTX
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
PDF
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
PPTX
論文読み会2018 (CodeSLAM)
PPTX
Dynamic Routing Between Capsules
PDF
コンピュータ先端ガイド2巻3章勉強会(SVM)
Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
GN-Net: The Gauss-Newton Loss for Deep Direct SLAMの解説
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
論文読み会2018 (CodeSLAM)
Dynamic Routing Between Capsules
コンピュータ先端ガイド2巻3章勉強会(SVM)

SLAMチュートリアル大会資料(ORB-SLAM)

  • 1.
    第1回 3D勉強会@関東 (2018/05/27)(SLAMチュートリアル大会)論文紹介:ORB-SLAM東京大学 相澤研究室所属M1 金子 真也 (@syinari0123)
  • 2.
    1自己紹介• 氏名– 金子真也 (かねこ まさや)• 所属– 東京大学大学院 学際情報学府 相澤研 M1• 興味– Visual SLAM/SfM, 深層学習– 「乃木坂46メンバーを動画から三次元へ復元する」(https://qiita.com/syinari0123/items/f8b8ae08a80002361855)
  • 3.
    2本発表の目標• 画像から三次元復元を行うVisual SLAMの話–入力は「画像」, 今回は単眼カメラ画像– リアルタイム版SfM• Visual SLAMの代表例としてのORB-SLAM– リアルタイムなSfMを実現する機構の大雑把な理解• 高速化?効率化?– 詳しい内容は論文 or 以下のメモスライド• 「ORB-SLAMの手法解説」(https://www.slideshare.net/MasayaKaneko/orbslam-84842802)
  • 4.
    3SfMのおさらい• SfM (Structurefrom Motion)– 問題設定• 入力:様々な視点で撮影された画像群• 出力:カメラ姿勢推定 + 三次元構造復元画像群 カメラ姿勢推定 + 三次元構造復元
  • 5.
    4SfM vs VisualSLAM• Visual SLAM (Simultaneous Localization and Mapping)– リアルタイムにSfMを解く問題• 画像が入力される度にカメラ姿勢を推定映像 カメラ姿勢推定 + 三次元構造復元
  • 6.
    5SfM vs VisualSLAM• 問題設定の違い手法 SfM Visual SLAM主な目的 物体の三次元構造の復元 リアルタイムなカメラ姿勢推定データの与え方画像群全て使える 逐次的に画像が挿入問題設定 正確性 >>> 速度 正確性 < 速度結果例
  • 7.
    6逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
  • 8.
    7逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)時刻 t-1過去のカメラの軌跡現在時刻 t?地図復元した三次元構造TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
  • 9.
    8逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正時刻 t-1過去のカメラの軌跡現在時刻 t?地図復元した三次元構造
  • 10.
    9逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)時刻 t-1過去のカメラの軌跡現在時刻 t?地図復元した三次元構造局所的な最適化TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
  • 11.
    10逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)時刻 t-1過去のカメラの軌跡現在時刻 t地図復元した三次元構造TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
  • 12.
    • 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)11逐次的な姿勢推定TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正時刻 t-1過去のカメラの軌跡現在時刻 t地図復元した三次元構造
  • 13.
    • 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)12逐次的な姿勢推定時刻 t-1過去のカメラの軌跡現在時刻 t地図復元した三次元構造TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
  • 14.
    13逐次的な姿勢推定• 逐次的なカメラ姿勢推定をどのように行うか?• 自己位置推定と地図作成を交互に行い実現(SimultaneousLocalization and Mapping)時刻 t-1過去のカメラの軌跡地図復元した三次元構造?時刻 t現在時刻t+1…TrackingLocal Mapping地図に登録する画像を選択地図の提供現在のカメラ姿勢を求める地図の作成/修正
  • 15.
  • 16.
    15Visual SLAM まとめ•リアルタイムなカメラ姿勢推定の実現– 局所的な最適化:Tracking + Local Mapping– 全体的な最適化:Loop Closing• 局所的な最適化だけ行う Visual Odometry (VO)• 全体的な最適化も考慮 Visual SLAM– Visual SLAM = VO + Loop Closing• ORB SLAMではどのようになっているか?
  • 17.
  • 18.
    17ORB-SLAM• 局所的な最適化 +全体的な最適化全体的な最適化局所的な最適化
  • 19.
    181. 地図の定義1• 構成要素–得られたカメラの画像𝐼𝐼𝑡𝑡と姿勢𝑇𝑇𝑡𝑡– 三次元点群の復元結果 𝒙𝒙𝑖𝑖• 対応する画像𝐼𝐼𝑡𝑡のORB特徴点 𝒖𝒖𝑡𝑡𝑡𝑡• ORB特徴量 𝒃𝒃𝑡𝑡𝑡𝑡• ORB特徴点(特徴量) : FAST corner + rBRIEF descriptor– 画像のcorner点, 回転/スケール不変な特徴量を持つ𝑇𝑇𝑡𝑡𝐼𝐼𝑡𝑡𝒖𝒖𝑡𝑡𝑡𝑡𝒙𝒙𝑖𝑖…(特徴量𝒃𝒃𝑡𝑡𝑖𝑖)
  • 20.
    191. 地図の定義2• CovisibilityGraph– 三次元位置𝒙𝒙𝑖𝑖は基本的には複数の画像で共有– 共有する点の数を可視化したGraphを定義• 効率の良い最適化 (Local Mapping/Loop Closingで利用)• 共有点が多いnode同士のみ: Essential GraphCovisibility Graph Essential Graphカメラの姿勢三次元点群点の共有度(共有する点の数)を重みとしたedge
  • 21.
    202. Tracking[仕事1] 現在のカメラ姿勢を求める1.画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡?地図
  • 22.
    212. Tracking[仕事1] 現在のカメラ姿勢を求める1.画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡?地図𝒖𝒖𝑡𝑡,𝑖𝑖
  • 23.
    222. Tracking[仕事1] 現在のカメラ姿勢を求める1.画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡?地図𝒖𝒖𝑡𝑡,𝑖𝑖
  • 24.
    232. Tracking[仕事1] 現在のカメラ姿勢を求める1.画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡地図𝒖𝒖𝑡𝑡,𝑖𝑖𝑇𝑇𝑡𝑡−1,𝑡𝑡
  • 25.
    242. Tracking[仕事1] 現在のカメラ姿勢を求める1.画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡(現在時刻)𝒖𝒖𝑡𝑡−1,𝑖𝑖𝐼𝐼𝑡𝑡−1𝒖𝒖𝑡𝑡−1,𝑖𝑖𝒙𝒙𝑖𝑖𝐼𝐼𝑡𝑡地図𝒖𝒖𝑡𝑡,𝑖𝑖𝑇𝑇𝑡𝑡−1,𝑡𝑡
  • 26.
    252. Tracking[仕事1] 現在のカメラ姿勢を求める1.画像から特徴点抽出2. 前の画像との点の対応を求める3. 対応点を投影することでカメラ姿勢の最適化[仕事2] 地図に保存するかの決定– 毎時刻の画像を保存するとメモリ/計算量的に発散するため, 冗長にならないように画像を選択(緩く)• KeyFrame (KF)
  • 27.
    263. Local Mapping[仕事1]地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph?
  • 28.
    273. Local Mapping[仕事1]地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph更新!
  • 29.
    283. Local Mapping[仕事1]地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph隣接するKF群
  • 30.
    293. Local Mapping[仕事1]地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)Covisibility Graph追加!隣接するKF群
  • 31.
    303. Local Mapping[仕事1]地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化 (Local BA)Covisibility GraphLocalな最適化隣接するKF群
  • 32.
    313. Local Mapping[仕事1]地図の作成Trackingから渡された画像(KFnew)を地図に追加する1. Covisibility Graphの更新2. Graph上で隣接するKF群との比較で新しい点を追加3. この範囲で点とカメラ姿勢の最適化(Local BA)[仕事2] 地図の修正– KFを監視し,冗長なKFを除外する(厳しく)• Arrival of the fittest
  • 33.
    324. Loop Closing[仕事]Loop closingによる全体最適化1. 地図に挿入されたKFが既に見たことがあるか?• ORB特徴量から構成したBag of Words (BoW)画像特徴量同士の比較2. Loopを検知したらそれらを結ぶように最適化• Essential Graphによるスケールを含めた最適化?Covisibility Graph
  • 34.
    334. Loop Closing[仕事]Loop closingによる全体最適化1. 地図に挿入されたKFが既に見たことがあるか?• ORB特徴量から構成したBag of Words (BoW)画像特徴量同士の比較2. Loopを検知したらそれらを結ぶように最適化• Essential Graphによるスケールを含めた最適化?Essential Graph
  • 35.
    344. Loop Closing[仕事]Loop closingによる全体最適化1. 地図に挿入されたKFが既に見たことがあるか?• ORB特徴量から構成したBag of Words (BoW)画像特徴量同士の比較2. Loopを検知したらそれらを結ぶように最適化• Essential Graphによるスケールを含めた最適化Essential GraphLoop Closed!Sim(3) 全体最適化
  • 36.
    35まとめ• Visual SLAM–Tracking + Local Mapping + Loop Closing• ORB-SLAM– ORB特徴量で画像間の対応を決定し三次元復元– Trackingが地図にすべき画像(KeyFrame)を選択,Local Mappingがそれを地図に追加/修正する• Covisibility GraphによるLocal BA– Loop ClosingはBoW画像特徴量で画像間の特徴量の近さを計算し, Loopを閉じるようにSim(3)最適化• Essential Graphの利用
  • 37.
    36ORB-SLAMの立ち位置• Visual SLAMの分類Direct vs Feature, Dense vs Sparse手法 Direct (画素値を直接利用) Feature (特徴量を抽出し利用)Sparse(画像から疎に抽出された点のみ利用)Direct Sparse Odometry[Engel+, 2016]ORB-SLAM[Mur-Artal+, 2015]Dense/Semi-Dense(画像全体/輝度勾配の高い領域の点を密に利用)LSD-SLAM [Engel+, 2014]SLAMでは特になし(Optical Flow等)

[8]ページ先頭

©2009-2025 Movatter.jp