狠狠撸
Submit Search
厂尝础惭チュートリアル大会资料(翱搁叠-厂尝础惭)
?
29 likes
?
19,755 views
M
Masaya Kaneko
Follow
2017.05.27, 3D勉強会@関東 発表資料 論文紹介:ORB-SLAM
Read less
Read more
1 of 37
Download now
Downloaded 275 times
More Related Content
厂尝础惭チュートリアル大会资料(翱搁叠-厂尝础惭)
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の手法解説」 (/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 地図に登録する 画像を選択 地図の提供 現在のカメラ姿勢を求める 地図の作成/修正
15.
14 全体的な最适化 ? 逐次的な姿勢推定では局所的な最適化のみしか 行わないため, 歪みが生じる –
Loop Closingによる全体の軌跡の歪み修正 Loop Closing 歪み
16.
15 Visual SLAM まとめ ?
リアルタイムなカメラ姿勢推定の実現 – 局所的な最適化:Tracking + Local Mapping – 全体的な最适化:Loop Closing ? 局所的な最適化だけ行う Visual Odometry (VO) ? 全体的な最适化も考慮 Visual SLAM – Visual SLAM = VO + Loop Closing ? ORB SLAMではどのようになっているか?
17.
16 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等)
Download