SlideShare a Scribd company logo
1 of 37
Download to read offline
第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)
3
SfMのおさらい
• SfM (Structure from Motion)
– 問題設定
• 入力:様々な視点で撮影された画像群
• 出力:カメラ姿勢推定 + 三次元構造復元
画像群 カメラ姿勢推定 + 三次元構造復元
4
SfM vs Visual SLAM
• Visual SLAM (Simultaneous Localization and Mapping)
– リアルタイムにSfMを解く問題
• 画像が入力される度にカメラ姿勢を推定
映像 カメラ姿勢推定 + 三次元構造復元
5
SfM vs Visual SLAM
• 問題設定の違い
手法 SfM Visual SLAM
主な目的 物体の三次元構造の復元 リアルタイムなカメラ姿勢推定
データの
与え方
画像群全て使える 逐次的に画像が挿入
問題設定 正確性 >>> 速度 正確性 < 速度
結果例
6
逐次的な姿勢推定
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
7
逐次的な姿勢推定
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
時刻 t-1
過去の
カメラの軌跡
現在時刻 t
?
地図
復元した
三次元構造
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
8
逐次的な姿勢推定
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
時刻 t-1
過去の
カメラの軌跡
現在時刻 t
?
地図
復元した
三次元構造
9
逐次的な姿勢推定
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
時刻 t-1
過去の
カメラの軌跡
現在時刻 t
?
地図
復元した
三次元構造
局所的な最適化
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
10
逐次的な姿勢推定
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
時刻 t-1
過去の
カメラの軌跡
現在時刻 t
地図
復元した
三次元構造
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
11
逐次的な姿勢推定
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
時刻 t-1
過去の
カメラの軌跡
現在時刻 t
地図
復元した
三次元構造
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
12
逐次的な姿勢推定
時刻 t-1
過去の
カメラの軌跡
現在時刻 t
地図
復元した
三次元構造
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
13
逐次的な姿勢推定
• 逐次的なカメラ姿勢推定をどのように行うか?
• 自己位置推定と地図作成を交互に行い実現
(Simultaneous Localization and Mapping)
時刻 t-1
過去の
カメラの軌跡
地図
復元した
三次元構造
?
時刻 t
現在時刻
t+1
…
Tracking
Local Mapping
地図に登録する
画像を選択
地図の提供
現在のカメラ姿勢を求める
地図の作成/修正
14
全体的な最適化
• 逐次的な姿勢推定では局所的な最適化のみしか
行わないため, 歪みが生じる
– Loop Closingによる全体の軌跡の歪み修正
Loop Closing
歪み
15
Visual SLAM まとめ
• リアルタイムなカメラ姿勢推定の実現
– 局所的な最適化:Tracking + Local Mapping
– 全体的な最適化:Loop Closing
• 局所的な最適化だけ行う Visual Odometry (VO)
• 全体的な最適化も考慮 Visual SLAM
– Visual SLAM = VO + Loop Closing
• ORB SLAMではどのようになっているか?
16
ORB-SLAM
• 局所的な最適化 + 全体的な最適化
17
ORB-SLAM
• 局所的な最適化 + 全体的な最適化
全体的な最適化
局所的な最適化
18
1. 地図の定義1
• 構成要素
– 得られたカメラの画像𝐼𝐼𝑡𝑡と姿勢𝑇𝑇𝑡𝑡
– 三次元点群の復元結果 𝒙𝒙𝑖𝑖
• 対応する画像𝐼𝐼𝑡𝑡のORB特徴点 𝒖𝒖𝑡𝑡𝑡𝑡
• ORB特徴量 𝒃𝒃𝑡𝑡𝑡𝑡
• ORB特徴点(特徴量) : FAST corner + rBRIEF descriptor
– 画像のcorner点, 回転/スケール不変な特徴量を持つ
𝑇𝑇𝑡𝑡
𝐼𝐼𝑡𝑡
𝒖𝒖𝑡𝑡𝑡𝑡
𝒙𝒙𝑖𝑖
…
(特徴量𝒃𝒃𝑡𝑡𝑖𝑖)
19
1. 地図の定義2
• Covisibility Graph
– 三次元位置𝒙𝒙𝑖𝑖は基本的には複数の画像で共有
– 共有する点の数を可視化したGraphを定義
• 効率の良い最適化 (Local Mapping/Loop Closingで利用)
• 共有点が多いnode同士のみ: Essential Graph
Covisibility Graph Essential Graphカメラの姿勢
三次元点群
点の共有度(共有する点の数)
を重みとしたedge
20
2. Tracking
[仕事1] 現在のカメラ姿勢を求める
1. 画像から特徴点抽出
2. 前の画像との点の対応を求める
3. 対応点を投影することでカメラ姿勢の最適化
画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡
(現在時刻)
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝐼𝐼𝑡𝑡−1
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝒙𝒙𝑖𝑖
𝐼𝐼𝑡𝑡
?
地図
21
2. Tracking
[仕事1] 現在のカメラ姿勢を求める
1. 画像から特徴点抽出
2. 前の画像との点の対応を求める
3. 対応点を投影することでカメラ姿勢の最適化
画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡
(現在時刻)
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝐼𝐼𝑡𝑡−1
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝒙𝒙𝑖𝑖
𝐼𝐼𝑡𝑡
?
地図
𝒖𝒖𝑡𝑡,𝑖𝑖
22
2. Tracking
[仕事1] 現在のカメラ姿勢を求める
1. 画像から特徴点抽出
2. 前の画像との点の対応を求める
3. 対応点を投影することでカメラ姿勢の最適化
画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡
(現在時刻)
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝐼𝐼𝑡𝑡−1
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝒙𝒙𝑖𝑖
𝐼𝐼𝑡𝑡
?
地図
𝒖𝒖𝑡𝑡,𝑖𝑖
23
2. Tracking
[仕事1] 現在のカメラ姿勢を求める
1. 画像から特徴点抽出
2. 前の画像との点の対応を求める
3. 対応点を投影することでカメラ姿勢の最適化
画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡
(現在時刻)
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝐼𝐼𝑡𝑡−1
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝒙𝒙𝑖𝑖
𝐼𝐼𝑡𝑡
地図
𝒖𝒖𝑡𝑡,𝑖𝑖
𝑇𝑇𝑡𝑡−1,𝑡𝑡
24
2. Tracking
[仕事1] 現在のカメラ姿勢を求める
1. 画像から特徴点抽出
2. 前の画像との点の対応を求める
3. 対応点を投影することでカメラ姿勢の最適化
画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡
(現在時刻)
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝐼𝐼𝑡𝑡−1
𝒖𝒖𝑡𝑡−1,𝑖𝑖
𝒙𝒙𝑖𝑖
𝐼𝐼𝑡𝑡
地図
𝒖𝒖𝑡𝑡,𝑖𝑖
𝑇𝑇𝑡𝑡−1,𝑡𝑡
25
2. Tracking
[仕事1] 現在のカメラ姿勢を求める
1. 画像から特徴点抽出
2. 前の画像との点の対応を求める
3. 対応点を投影することでカメラ姿勢の最適化
[仕事2] 地図に保存するかの決定
– 毎時刻の画像を保存するとメモリ/計算量的に発散す
るため, 冗長にならないように画像を選択(緩く)
• KeyFrame (KF)
26
3. Local Mapping
[仕事1] 地図の作成
Trackingから渡された画像(KFnew)を地図に追加する
1. Covisibility Graphの更新
2. Graph上で隣接するKF群との比較で新しい点を追加
3. この範囲で点とカメラ姿勢の最適化(Local BA)
Covisibility Graph
?
27
3. Local Mapping
[仕事1] 地図の作成
Trackingから渡された画像(KFnew)を地図に追加する
1. Covisibility Graphの更新
2. Graph上で隣接するKF群との比較で新しい点を追加
3. この範囲で点とカメラ姿勢の最適化(Local BA)
Covisibility Graph更新!
28
3. Local Mapping
[仕事1] 地図の作成
Trackingから渡された画像(KFnew)を地図に追加する
1. Covisibility Graphの更新
2. Graph上で隣接するKF群との比較で新しい点を追加
3. この範囲で点とカメラ姿勢の最適化(Local BA)
Covisibility Graph
隣接するKF群
29
3. Local Mapping
[仕事1] 地図の作成
Trackingから渡された画像(KFnew)を地図に追加する
1. Covisibility Graphの更新
2. Graph上で隣接するKF群との比較で新しい点を追加
3. この範囲で点とカメラ姿勢の最適化(Local BA)
Covisibility Graph
追加!
隣接するKF群
30
3. Local Mapping
[仕事1] 地図の作成
Trackingから渡された画像(KFnew)を地図に追加する
1. Covisibility Graphの更新
2. Graph上で隣接するKF群との比較で新しい点を追加
3. この範囲で点とカメラ姿勢の最適化 (Local BA)
Covisibility Graph
Localな最適化
隣接するKF群
31
3. Local Mapping
[仕事1] 地図の作成
Trackingから渡された画像(KFnew)を地図に追加する
1. Covisibility Graphの更新
2. Graph上で隣接するKF群との比較で新しい点を追加
3. この範囲で点とカメラ姿勢の最適化(Local BA)
[仕事2] 地図の修正
– KFを監視し,冗長なKFを除外する(厳しく)
• Arrival of the fittest
32
4. Loop Closing
[仕事] Loop closingによる全体最適化
1. 地図に挿入されたKFが既に見たことがあるか?
• ORB特徴量から構成したBag of Words (BoW)
画像特徴量同士の比較
2. Loopを検知したらそれらを結ぶように最適化
• Essential Graphによるスケールを含めた最適化
?
Covisibility Graph
33
4. Loop Closing
[仕事] Loop closingによる全体最適化
1. 地図に挿入されたKFが既に見たことがあるか?
• ORB特徴量から構成したBag of Words (BoW)
画像特徴量同士の比較
2. Loopを検知したらそれらを結ぶように最適化
• Essential Graphによるスケールを含めた最適化
?
Essential Graph
34
4. Loop Closing
[仕事] Loop closingによる全体最適化
1. 地図に挿入されたKFが既に見たことがあるか?
• ORB特徴量から構成したBag of Words (BoW)
画像特徴量同士の比較
2. Loopを検知したらそれらを結ぶように最適化
• Essential Graphによるスケールを含めた最適化
Essential Graph
Loop 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の利用
36
ORB-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等)

More Related Content

What's hot

20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summaryTakuya Minagawa
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類Yoshitaka HARA
 
Direct Sparse Odometryの解説
Direct Sparse Odometryの解説Direct Sparse Odometryの解説
Direct Sparse Odometryの解説Masaya Kaneko
 
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎yohei okawa
 
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code ReadingTakuya Minagawa
 
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成MobileRoboticsResear
 
LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料Fujimoto Keisuke
 
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日Kitsukawa Yuki
 
複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化TaroSuzuki15
 
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会nonane
 
30th コンピュータビジョン勉強会@関東 DynamicFusion
30th コンピュータビジョン勉強会@関東 DynamicFusion30th コンピュータビジョン勉強会@関東 DynamicFusion
30th コンピュータビジョン勉強会@関東 DynamicFusionHiroki Mizuno
 
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介miyanegi
 
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチMIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチHironobu Fujiyoshi
 
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発Yoshitaka HARA
 
ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例Yoshitaka HARA
 
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装についてMobileRoboticsResear
 

What's hot (20)

20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summary
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
Visual slam
Visual slamVisual slam
Visual slam
 
Direct Sparse Odometryの解説
Direct Sparse Odometryの解説Direct Sparse Odometryの解説
Direct Sparse Odometryの解説
 
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎
 
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading
 
Structure from Motion
Structure from MotionStructure from Motion
Structure from Motion
 
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
 
LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料
 
20190825 vins mono
20190825 vins mono20190825 vins mono
20190825 vins mono
 
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
 
複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化
 
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
 
30th コンピュータビジョン勉強会@関東 DynamicFusion
30th コンピュータビジョン勉強会@関東 DynamicFusion30th コンピュータビジョン勉強会@関東 DynamicFusion
30th コンピュータビジョン勉強会@関東 DynamicFusion
 
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
 
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチMIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
 
PCL
PCLPCL
PCL
 
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
 
ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例ロボティクスにおける SLAM 手法と実用化例
ロボティクスにおける SLAM 手法と実用化例
 
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
 

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

関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)tackson5
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Masaya Kaneko
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
論文読み会(DeMoN;CVPR2017)
論文読み会(DeMoN;CVPR2017)論文読み会(DeMoN;CVPR2017)
論文読み会(DeMoN;CVPR2017)Masaya Kaneko
 
顔認識アルゴリズム:Constrained local model を調べてみた
顔認識アルゴリズム:Constrained local model を調べてみた顔認識アルゴリズム:Constrained local model を調べてみた
顔認識アルゴリズム:Constrained local model を調べてみたJotaro Shigeyama
 
Core Animation 使って見た
Core Animation 使って見たCore Animation 使って見た
Core Animation 使って見たOCHI Shuji
 
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Project Samurai
 
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -Akisato Kimura
 
SSII2014 チュートリアル資料
SSII2014 チュートリアル資料SSII2014 チュートリアル資料
SSII2014 チュートリアル資料Masayuki Tanaka
 
Python で画像処理をしてみよう!
 第3回 - 画像認識 -
Python で画像処理をしてみよう!
 第3回 - 画像認識 -Python で画像処理をしてみよう!
 第3回 - 画像認識 -
Python で画像処理をしてみよう!
 第3回 - 画像認識 -Project Samurai
 
20160612 関東cv勉強会 sumisumithパート
20160612 関東cv勉強会 sumisumithパート20160612 関東cv勉強会 sumisumithパート
20160612 関東cv勉強会 sumisumithパートsumisumith
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII
 
イメージベーストライティングによる写実的な画像の生成
イメージベーストライティングによる写実的な画像の生成イメージベーストライティングによる写実的な画像の生成
イメージベーストライティングによる写実的な画像の生成RyotaMaeda
 
【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えに
【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えに【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えに
【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えにUnityTechnologiesJapan002
 
論文紹介 LexToMap: lexical-based topological mapping
論文紹介 LexToMap: lexical-based topological mapping論文紹介 LexToMap: lexical-based topological mapping
論文紹介 LexToMap: lexical-based topological mappingAkira Taniguchi
 
Cvim saisentan-5-2-tomoaki
Cvim saisentan-5-2-tomoakiCvim saisentan-5-2-tomoaki
Cvim saisentan-5-2-tomoakitomoaki0705
 
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -Project Samurai
 

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

関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)関東CV勉強会20140802(Face Alignment at 3000fps)
関東CV勉強会20140802(Face Alignment at 3000fps)
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
論文読み会(DeMoN;CVPR2017)
論文読み会(DeMoN;CVPR2017)論文読み会(DeMoN;CVPR2017)
論文読み会(DeMoN;CVPR2017)
 
KC3_Room2_9_6
KC3_Room2_9_6KC3_Room2_9_6
KC3_Room2_9_6
 
顔認識アルゴリズム:Constrained local model を調べてみた
顔認識アルゴリズム:Constrained local model を調べてみた顔認識アルゴリズム:Constrained local model を調べてみた
顔認識アルゴリズム:Constrained local model を調べてみた
 
Core Animation 使って見た
Core Animation 使って見たCore Animation 使って見た
Core Animation 使って見た
 
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
 
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
人間の視覚的注意を予測するモデル - 動的ベイジアンネットワークに基づく 最新のアプローチ -
 
SSII2014 チュートリアル資料
SSII2014 チュートリアル資料SSII2014 チュートリアル資料
SSII2014 チュートリアル資料
 
Python で画像処理をしてみよう!
 第3回 - 画像認識 -
Python で画像処理をしてみよう!
 第3回 - 画像認識 -Python で画像処理をしてみよう!
 第3回 - 画像認識 -
Python で画像処理をしてみよう!
 第3回 - 画像認識 -
 
20160612 関東cv勉強会 sumisumithパート
20160612 関東cv勉強会 sumisumithパート20160612 関東cv勉強会 sumisumithパート
20160612 関東cv勉強会 sumisumithパート
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
イメージベーストライティングによる写実的な画像の生成
イメージベーストライティングによる写実的な画像の生成イメージベーストライティングによる写実的な画像の生成
イメージベーストライティングによる写実的な画像の生成
 
【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えに
【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えに【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えに
【Unite 2018 Tokyo】裸眼で拡張現実!!プロジェクションマッピングとAIで世界最先端研究を丸見えに
 
Kanamori cedec2011
Kanamori cedec2011Kanamori cedec2011
Kanamori cedec2011
 
論文紹介 LexToMap: lexical-based topological mapping
論文紹介 LexToMap: lexical-based topological mapping論文紹介 LexToMap: lexical-based topological mapping
論文紹介 LexToMap: lexical-based topological mapping
 
Cvim saisentan-5-2-tomoaki
Cvim saisentan-5-2-tomoakiCvim saisentan-5-2-tomoaki
Cvim saisentan-5-2-tomoaki
 
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
 

More from Masaya Kaneko

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

More from Masaya Kaneko (6)

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

Recently uploaded

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Recently uploaded (9)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

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. 3 SfMのおさらい • SfM (Structure from Motion) – 問題設定 • 入力:様々な視点で撮影された画像群 • 出力:カメラ姿勢推定 + 三次元構造復元 画像群 カメラ姿勢推定 + 三次元構造復元
  • 5. 4 SfM vs Visual SLAM • Visual SLAM (Simultaneous Localization and Mapping) – リアルタイムにSfMを解く問題 • 画像が入力される度にカメラ姿勢を推定 映像 カメラ姿勢推定 + 三次元構造復元
  • 6. 5 SfM vs Visual SLAM • 問題設定の違い 手法 SfM Visual SLAM 主な目的 物体の三次元構造の復元 リアルタイムなカメラ姿勢推定 データの 与え方 画像群全て使える 逐次的に画像が挿入 問題設定 正確性 >>> 速度 正確性 < 速度 結果例
  • 7. 6 逐次的な姿勢推定 • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正
  • 8. 7 逐次的な姿勢推定 • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) 時刻 t-1 過去の カメラの軌跡 現在時刻 t ? 地図 復元した 三次元構造 Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正
  • 9. 8 逐次的な姿勢推定 • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正 時刻 t-1 過去の カメラの軌跡 現在時刻 t ? 地図 復元した 三次元構造
  • 10. 9 逐次的な姿勢推定 • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) 時刻 t-1 過去の カメラの軌跡 現在時刻 t ? 地図 復元した 三次元構造 局所的な最適化 Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正
  • 11. 10 逐次的な姿勢推定 • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) 時刻 t-1 過去の カメラの軌跡 現在時刻 t 地図 復元した 三次元構造 Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正
  • 12. • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) 11 逐次的な姿勢推定 Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正 時刻 t-1 過去の カメラの軌跡 現在時刻 t 地図 復元した 三次元構造
  • 13. • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) 12 逐次的な姿勢推定 時刻 t-1 過去の カメラの軌跡 現在時刻 t 地図 復元した 三次元構造 Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正
  • 14. 13 逐次的な姿勢推定 • 逐次的なカメラ姿勢推定をどのように行うか? • 自己位置推定と地図作成を交互に行い実現 (Simultaneous Localization and Mapping) 時刻 t-1 過去の カメラの軌跡 地図 復元した 三次元構造 ? 時刻 t 現在時刻 t+1 … Tracking Local Mapping 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正
  • 16. 15 Visual SLAM まとめ • リアルタイムなカメラ姿勢推定の実現 – 局所的な最適化:Tracking + Local Mapping – 全体的な最適化:Loop Closing • 局所的な最適化だけ行う Visual Odometry (VO) • 全体的な最適化も考慮 Visual SLAM – Visual SLAM = VO + Loop Closing • ORB SLAMではどのようになっているか?
  • 18. 17 ORB-SLAM • 局所的な最適化 + 全体的な最適化 全体的な最適化 局所的な最適化
  • 19. 18 1. 地図の定義1 • 構成要素 – 得られたカメラの画像𝐼𝐼𝑡𝑡と姿勢𝑇𝑇𝑡𝑡 – 三次元点群の復元結果 𝒙𝒙𝑖𝑖 • 対応する画像𝐼𝐼𝑡𝑡のORB特徴点 𝒖𝒖𝑡𝑡𝑡𝑡 • ORB特徴量 𝒃𝒃𝑡𝑡𝑡𝑡 • ORB特徴点(特徴量) : FAST corner + rBRIEF descriptor – 画像のcorner点, 回転/スケール不変な特徴量を持つ 𝑇𝑇𝑡𝑡 𝐼𝐼𝑡𝑡 𝒖𝒖𝑡𝑡𝑡𝑡 𝒙𝒙𝑖𝑖 … (特徴量𝒃𝒃𝑡𝑡𝑖𝑖)
  • 20. 19 1. 地図の定義2 • Covisibility Graph – 三次元位置𝒙𝒙𝑖𝑖は基本的には複数の画像で共有 – 共有する点の数を可視化したGraphを定義 • 効率の良い最適化 (Local Mapping/Loop Closingで利用) • 共有点が多いnode同士のみ: Essential Graph Covisibility Graph Essential Graphカメラの姿勢 三次元点群 点の共有度(共有する点の数) を重みとしたedge
  • 21. 20 2. Tracking [仕事1] 現在のカメラ姿勢を求める 1. 画像から特徴点抽出 2. 前の画像との点の対応を求める 3. 対応点を投影することでカメラ姿勢の最適化 画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡 (現在時刻) 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝐼𝐼𝑡𝑡−1 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝒙𝒙𝑖𝑖 𝐼𝐼𝑡𝑡 ? 地図
  • 22. 21 2. Tracking [仕事1] 現在のカメラ姿勢を求める 1. 画像から特徴点抽出 2. 前の画像との点の対応を求める 3. 対応点を投影することでカメラ姿勢の最適化 画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡 (現在時刻) 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝐼𝐼𝑡𝑡−1 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝒙𝒙𝑖𝑖 𝐼𝐼𝑡𝑡 ? 地図 𝒖𝒖𝑡𝑡,𝑖𝑖
  • 23. 22 2. Tracking [仕事1] 現在のカメラ姿勢を求める 1. 画像から特徴点抽出 2. 前の画像との点の対応を求める 3. 対応点を投影することでカメラ姿勢の最適化 画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡 (現在時刻) 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝐼𝐼𝑡𝑡−1 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝒙𝒙𝑖𝑖 𝐼𝐼𝑡𝑡 ? 地図 𝒖𝒖𝑡𝑡,𝑖𝑖
  • 24. 23 2. Tracking [仕事1] 現在のカメラ姿勢を求める 1. 画像から特徴点抽出 2. 前の画像との点の対応を求める 3. 対応点を投影することでカメラ姿勢の最適化 画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡 (現在時刻) 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝐼𝐼𝑡𝑡−1 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝒙𝒙𝑖𝑖 𝐼𝐼𝑡𝑡 地図 𝒖𝒖𝑡𝑡,𝑖𝑖 𝑇𝑇𝑡𝑡−1,𝑡𝑡
  • 25. 24 2. Tracking [仕事1] 現在のカメラ姿勢を求める 1. 画像から特徴点抽出 2. 前の画像との点の対応を求める 3. 対応点を投影することでカメラ姿勢の最適化 画像 𝐼𝐼𝑡𝑡−1 画像 𝐼𝐼𝑡𝑡 (現在時刻) 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝐼𝐼𝑡𝑡−1 𝒖𝒖𝑡𝑡−1,𝑖𝑖 𝒙𝒙𝑖𝑖 𝐼𝐼𝑡𝑡 地図 𝒖𝒖𝑡𝑡,𝑖𝑖 𝑇𝑇𝑡𝑡−1,𝑡𝑡
  • 26. 25 2. Tracking [仕事1] 現在のカメラ姿勢を求める 1. 画像から特徴点抽出 2. 前の画像との点の対応を求める 3. 対応点を投影することでカメラ姿勢の最適化 [仕事2] 地図に保存するかの決定 – 毎時刻の画像を保存するとメモリ/計算量的に発散す るため, 冗長にならないように画像を選択(緩く) • KeyFrame (KF)
  • 27. 26 3. Local Mapping [仕事1] 地図の作成 Trackingから渡された画像(KFnew)を地図に追加する 1. Covisibility Graphの更新 2. Graph上で隣接するKF群との比較で新しい点を追加 3. この範囲で点とカメラ姿勢の最適化(Local BA) Covisibility Graph ?
  • 28. 27 3. Local Mapping [仕事1] 地図の作成 Trackingから渡された画像(KFnew)を地図に追加する 1. Covisibility Graphの更新 2. Graph上で隣接するKF群との比較で新しい点を追加 3. この範囲で点とカメラ姿勢の最適化(Local BA) Covisibility Graph更新!
  • 29. 28 3. Local Mapping [仕事1] 地図の作成 Trackingから渡された画像(KFnew)を地図に追加する 1. Covisibility Graphの更新 2. Graph上で隣接するKF群との比較で新しい点を追加 3. この範囲で点とカメラ姿勢の最適化(Local BA) Covisibility Graph 隣接するKF群
  • 30. 29 3. Local Mapping [仕事1] 地図の作成 Trackingから渡された画像(KFnew)を地図に追加する 1. Covisibility Graphの更新 2. Graph上で隣接するKF群との比較で新しい点を追加 3. この範囲で点とカメラ姿勢の最適化(Local BA) Covisibility Graph 追加! 隣接するKF群
  • 31. 30 3. Local Mapping [仕事1] 地図の作成 Trackingから渡された画像(KFnew)を地図に追加する 1. Covisibility Graphの更新 2. Graph上で隣接するKF群との比較で新しい点を追加 3. この範囲で点とカメラ姿勢の最適化 (Local BA) Covisibility Graph Localな最適化 隣接するKF群
  • 32. 31 3. Local Mapping [仕事1] 地図の作成 Trackingから渡された画像(KFnew)を地図に追加する 1. Covisibility Graphの更新 2. Graph上で隣接するKF群との比較で新しい点を追加 3. この範囲で点とカメラ姿勢の最適化(Local BA) [仕事2] 地図の修正 – KFを監視し,冗長なKFを除外する(厳しく) • Arrival of the fittest
  • 33. 32 4. Loop Closing [仕事] Loop closingによる全体最適化 1. 地図に挿入されたKFが既に見たことがあるか? • ORB特徴量から構成したBag of Words (BoW) 画像特徴量同士の比較 2. Loopを検知したらそれらを結ぶように最適化 • Essential Graphによるスケールを含めた最適化 ? Covisibility Graph
  • 34. 33 4. Loop Closing [仕事] Loop closingによる全体最適化 1. 地図に挿入されたKFが既に見たことがあるか? • ORB特徴量から構成したBag of Words (BoW) 画像特徴量同士の比較 2. Loopを検知したらそれらを結ぶように最適化 • Essential Graphによるスケールを含めた最適化 ? Essential Graph
  • 35. 34 4. Loop Closing [仕事] Loop closingによる全体最適化 1. 地図に挿入されたKFが既に見たことがあるか? • ORB特徴量から構成したBag of Words (BoW) 画像特徴量同士の比較 2. Loopを検知したらそれらを結ぶように最適化 • Essential Graphによるスケールを含めた最適化 Essential Graph Loop 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. 36 ORB-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等)