Upload
iwami-kazuya
View
1.608
Download
2
Embed Size (px)
Citation preview
自己紹介
石見 和也 (Iwami Kazuya)
東京大学大学院 学際情報学府 相澤研 M2
研究テーマは 単眼 Visual SLAM(や一時期小型ドローン)
Deep learningとSLAMの融合分野で面白い研究をしたいなあと模索中
2
LSD-SLAMとは
LSD-SLAM: Large-Scale Direct Monocular SLAM
Jakob Engel(ミュンヘン工科大)らの有名単眼SLAM論文
ECCV 2014
Directベースで大規模なVisual SLAMを実現
公式HP http://vision.in.tum.de/research/vslam/lsdslam
コード https://github.com/tum-vision/lsd_slam
動画 https://www.youtube.com/watch?v=GnuQzP3gty4
以下日本語資料
日本語訳 http://daily-tech.hatenablog.com/entry/2016/04/29/145737
既存のECCV読み会資料 https://www.slideshare.net/satoshibfujimoto/2cv-lsdslam
3
Monocular SLAMのおさらい
4
Tracking - マップにおける新規フレームのカメラ姿勢を推定
Mapping - キーフレーム(+マップ中の特徴点)の位置関係を最適化
キーフレームを選出
キーフレーム間の位置関係を最適化
キーフレーム
キーフレーム以外のフレーム
where?
復元されたマップ(キーフレーム+周囲の環境の点群)
TrackingとMappingを同時に行うことで自己位置及び周辺環境を復元
Monocular SLAMのおさらい
5
Tracking - マップにおける新規フレームのカメラ姿勢を推定
どのように推定するか
Mapping - キーフレーム(+マップ中の特徴点)の位置関係を最適化
キーフレームをどのように選出するか
復元したマップをどのように改善するか
その一部としてLoop Closureをどのように実現するか
Monocular SLAMのおさらい
6
Tracking - マップにおける新規フレームの姿勢を推定
どのように推定するか
Mapping - キーフレーム(+マップ中の特徴点)の位置関係を最適化
キーフレームをどのように選出するか
復元したマップをどのように改善するか
その一部としてLoop Closureをどのように実現するか
特徴点ベースのSLAM(PTAM, ORB-SLAM)では
特徴点を利用し,再投影誤差を最小化
大きく動いた場合等の複雑な判断基準を採用
局所及び全体のバンドル調整
BoWで類似画像検索し幾何検証→ 特徴点ベースのHorn Methodとポーズグラフ最適化
(ORB-SLAMの場合)
Monocular SLAMのおさらい
7
Tracking - マップにおける新規フレームの姿勢を推定
どのように推定するか
Mapping - キーフレーム(+マップ中の特徴点)の位置関係を最適化
キーフレームをどのように選出するか
復元したマップをどのように改善するか
その一部としてLoop Closureをどのように実現するか
DirectベースなLSD-SLAMでは
輝度勾配の大きいより密な点を利用 輝度値の差を最小化 = Direct
単に大きく動いた場合キーフレームに選出
Loop Closure以外では改善しない
特徴点を利用しない、Directベースな手法を提案
Direct Image Alignment
10
photometric errorを最小化して2フレーム間の相対3D姿勢 𝜉 を推定する手法
前フレーム𝐾𝑟𝑒𝑓の奥行きマップ 𝐷𝑟𝑒𝑓 が既知の場合
𝐾𝑟𝑒𝑓上のある点𝑝𝑖が現フレーム𝐾上で対応する点 は 𝜉 の関数として表される
十分に2フレーム間の移動が少なければ,同じ場所を観測している点は同じ輝度値という仮定を置く
→ 各点𝑝𝑖での輝度値の差が最小になるような 𝜉 を推定する
ここでは輝度勾配大きい点のみ扱う
輝度値の誤差
Tracking
11
LSD-SLAMではどのようにTrackingを行っているのか?
キーフレーム𝐾𝑖から入力フレーム𝐾𝑗への相対3D姿勢 𝜉𝑗𝑖 ∈ 𝑠𝑒(3)を求める
そのために推定された奥行きの不確かさを考慮したphotometric errorを最小化
monocular SLAMでは,推定された奥行きの不確かさがピクセルごとに大きく異なるため
(RGB-Dデータでは奥行きの不確かさがほぼ一定)
奥行きの逆数の分散の例
Tracking
12
奥行きの不確かさを考慮したphotometric error最小化
キーフレーム𝐾𝑖の画像 𝐼𝑖,奥行きマップ 𝐷𝑖 とその逆数の分散 𝑉𝑖は既知 以下の関数𝐸𝑝の最小化問題をガウスニュートン法で解く
※論文の3.3 Tracking New Frames: Direct se(3) Image Alignmentを参照
一般的なphotometric error
奥行きの不確かさから推定されるphotometric errorの分散(誤差伝播の法則より求まる)
Huber損失関数を用いる
Tracking
13
誤差伝播の法則
ある関数 y = f x1, x2, … について,誤差が正規分布に従う場合
𝜎𝑦2 =
𝜕𝑓
𝜕𝑥1𝜎𝑥1
2
+𝜕𝑓
𝜕𝑥2𝜎𝑥2
2
+⋯
が成立する
※x1, x2, …は無相関であるとする
Depth Map Estimation
15
キーフレームの選出
カメラが直前のキーフレームから大きく回転または並進移動した場合、現在のフレームをキーフレームとする
以下の式で求まる値がしきい値を超えるかどうかで判断
𝜉は相対3D姿勢を表すse(3)の要素.6次元のベクトルで表される
Wは重みの対角行列 相対3D姿勢はinverse depth(奥行きの逆数)の平均が1になるよう正規化する
→ 遠距離を観測している際は疎に、近距離を撮影している際は密に選出
Depth Map Estimation
16
キーフレームの作成
奥行きマップを初期化
前回のキーフレームの奥行きを投影し反映 奥行きマップを正規化 詳細はSemi-Dense Visual Odometry for a Monocular Cameraを参照😥
以降のトラッキングでは作成したキーフレームを用いる
Depth Map Estimation
17
キーフレームの改善
キーフレームに選出されなかったフレームは、現在のキーフレームの改善に使用される
詳細はSemi-Dense Visual Odometry for a Monocular Cameraを参照😥
ステレオマッチングで新たなdepth mapを推定し、確率的に統合 奥行きマップ 𝐷𝑖 とその逆数の分散 𝑉𝑖が改善される
Map Optimization
20
ループの検出
新たなキーフレームが追加されると,位置的に近い10個のキーフレームをループが閉じうる候補とする(検索などはしていない)
ループ候補に対して双方向のトラッキング検証を行い,ループを閉じてよいか検証する
候補キーフレームに対して以下の式のeが十分に小さい場合ループを閉じる
同じ場所を観測している2画像の場合,双方向の 𝜉が正しく求まる(つまり一致する)ので𝑒は0に近づく(という理解で合っている?)
「候補フレーム→現在のフレーム相対姿勢」と「現在のフレーム→候補フレームの相対姿勢」をどちらもトラッキングして求め,それらを足し合わせる
Map Optimization
21
ループを閉じる
1. 同じ場所を観測している2キーフレーム間の3D相対相似変換 sim(3)を求める
2. ポーズグラフ最適化により全キーフレームの姿勢を最適化する
Map Optimization
22
ループを閉じる 1
ORB-SLAMでは,同じ場所を観測している2キーフレーム間の3D相対相似変換sim(3)を,特徴点ベースのHorn Methodで求める
LSD-SLAMではdirect image alignmentで求める トラッキングの際に用いたphotometric errorに,不確かさを考慮した
depth errorも追加
これにより,sim(3)におけるscaleを推定可能に
Map Optimization
23
ループを閉じる 2
ポーズグラフ最適化により全キーフレームの姿勢を最適化
ORB-SLAMと同じ手法で全キーフレームのカメラ姿勢を最適化
ゆるやかなスケールの変化を許容しつつ,前ステップで求めた正しい位置関係を他のキーフレームにも伝播させる
詳細はScale Drift-Aware Large Scale Monocular SLAMを読むべし
結果
24
[9] LSD-SLAMからMap optimization抜いたもの
[15] PTAM
[14] directなRGB-D SLAM
[7] 特徴点ベースなRGB-D SLAM
値はRMSE [cm]を表す高精度且つトラッキングも失敗していない
まとめ
25
Tracking - マップにおける新規フレームの姿勢を推定
どのように推定するか
Mapping - キーフレーム(+マップ中の特徴点)の位置関係を最適化
キーフレームをどのように選出するか
復元したマップをどのように改善するか
その一部としてLoop Closureをどのように実現するか
輝度勾配の大きいより密な点を利用奥行き推定の不確かさを考慮した輝度値の差を最小化(新規)
単に大きく動いた場合キーフレームに選出
Loop Closure以外では改善しない
位置的に周囲のキーフレームを候補にdirectベースな検証→ Direct image Alignmentとポーズグラフ最適化(新規)