CodeSLAM : Learning a Compact, Optimisable
Representation for Dense Visual SLAM
2018論文読み会
2018/07/12
相澤研究室 M1 金子 真也
1
Introduction
• Visual SLAM (Simultaneous Localization and Mapping)
– 映像からリアルタイムにカメラの軌跡を推定
(三次元地図作成:軌跡推定の手がかり)
LSD-SLAM [Engel+,2014]
2
Introduction
• vSLAMにおける地図の表現方法
Sparseな表現
(Feature-based)
Dense/Semi-Denseな表現
(Direct-based)
計算コスト 低
地図の密度 低
計算コスト 高
地図の密度 高
→三次元復元には使えず,
あくまで軌跡の推定がメイン
→三次元復元も
軌跡の推定もできる
3
Introduction
• vSLAMにおける地図の表現方法
計算コスト 低
地図の密度 低
→三次元復元には使えず,
あくまで軌跡の推定がメイン
→三次元復元も
軌跡の推定もできる
計算コストさえ抑える
ことができれば最高!
Sparseな表現
(Feature-based)
Dense/Semi-Denseな表現
(Direct-based)
計算コスト 高
地図の密度 高
4
Method
• DenseなSLAMにおいて計算コストをどう抑えるか?
– 三次元点群の特徴量化:点群それぞれを独立に三次元
復元するよりも計算コストが抑えられそう
<<<
最適化パラメータ数
コンパクトな特徴量 密な三次元点群
𝒄
𝑫(𝒄)
𝑫
1,440,000 次元
(600x800x3)
128 次元
5
Method
• Naïveな手法
– Variational Auto-Encoderで中間特徴量を抽出
[参考 : Variational Auto-Encoder]
𝑧~𝒩(0,1)
input output
中間特徴量
(ガウス分布のパラメータ)
特徴量空間をいじれば出力も変化
6
Method
• Naïveな手法
– Variational Auto-Encoderで中間特徴量を抽出
中間特徴量
(ガウス分布のパラメータ)
案外うまく復元できない
𝐷 𝐷
Code 𝒄
7
Method
• 提案手法
– 輝度画像𝐼をヒントに, 奥行き画像𝐷の復元
特徴量
𝐷 𝐷
𝐼
Code 𝒄
U-Net
8
Method
• Training
– 輝度画像𝐼と奥行き画像𝐷から再構成するように学習
特徴量
𝐷 𝐷
𝐼
Code 𝒄
train
U-Net
9
Method
• Training
– 輝度画像𝐼と奥行き画像𝐷から再構成するように学習
特徴量
𝐷 𝐷
𝐼 Uncertainty
輝度画像𝑰の特徴量は奥行き画像の
不確実な境界部分を表現
Code 𝒄
train
U-Net
10
Method
• Inference
– 輝度画像𝐼とcode 𝑐(未知)から 𝐷を予測する
特徴量
𝐷
𝐼 Uncertainty
inference
Code 𝒄
U-Net
11
Code Optimization
• code 𝑐を最適化することで奥行き 𝐷を最適化できる
• ステレオマッチングによる最適化
𝐷 = 𝐷(𝐼, 𝑐)
12
Code Optimization
• code 𝑐を最適化することで奥行き 𝐷を最適化できる
• ステレオマッチングによる最適化
1. 奥行き画像によって三次元点群を復元
𝐷 = 𝐷(𝐼, 𝑐)
画像 𝐼𝐴
逆投影 𝜋−1
𝐷𝐴(𝐼𝐴, 𝒄 𝑨)
13
Code Optimization
• code 𝑐を最適化することで奥行き 𝐷を最適化できる
• ステレオマッチングによる最適化
2. 次の画像に三次元点群を投影
𝐷 = 𝐷(𝐼, 𝑐)
相対姿勢 T 𝐵
𝐴
= (𝑅 𝐵
𝐴
, 𝑡 𝐵
𝐴
)
画像 𝐼𝐴
画像 𝐼 𝐵
投影 𝜋−1
𝐷𝐴(𝐼𝐴, 𝒄 𝑨)
14
Code Optimization
• code 𝑐を最適化することで奥行き 𝐷を最適化できる
• ステレオマッチングによる最適化
2. 投影誤差を最小化する奥行きと相対姿勢を求める
𝐷 = 𝐷(𝐼, 𝑐)
相対姿勢 T 𝐵
𝐴
= (𝑅 𝐵
𝐴
, 𝑡 𝐵
𝐴
)
投影誤差の最小化
画像 𝐼𝐴
画像 𝐼 𝐵
𝐷𝐴(𝐼𝐴, 𝒄 𝑨)
15
Code Optimization
• 再投影誤差の最小化
– 画像Aから画像Bへの投影
– 再投影誤差
画像 𝐼𝐴
画像 𝐼 𝐵
投影誤差の最小化
逆投影 𝜋−1
投影 𝜋−1
𝐷𝐴(𝐼𝐴, 𝒄 𝑨)
相対姿勢 T 𝐵
𝐴
= (𝑅 𝐵
𝐴
, 𝑡 𝐵
𝐴
)
16
Code Optimization
• 再投影誤差の最小化
– 画像Aから画像Bへの投影
– 再投影誤差
– 誤差の最小化
• ヤコビアンを計算, Gauss-Newton法で最小化
17
N-frame SfM
• N枚のSfMへの拡張
– 連続する2枚の画像で逐次的に最適化
𝑐 𝐴, 𝑐 𝐵, 𝑇𝐴, 𝑇𝐵 に依存
𝑐 𝐴, 𝑐 𝐵, 𝑇𝐴, 𝑇𝐵 に依存
18
Dataset
• SceneNet RGB-D [J.McCormac+, ICCV17]
– 屋内のCGデータセット
Image Depth Instance seg Semantic seg Optical Flow
19
Reconstruction result
• 復元結果
– かなりGTに近いDepth推定を行うことができている
GTReconstr.
20
Code size
• Code sizeを変化させた結果
ImageGTReconstr.
Size 2
21
Code size
• Code sizeを変化させた結果
Size 8
ImageGTReconstr.
22
Code size
• Code sizeを変化させた結果
Size 64
ImageGTReconstr.
23
Code size
• Code sizeを変化させた結果
Size 128
ImageGTReconstr.
24
Code size
• 128以上に増やしても性能の向上は見られなかった
25
5-frame SfM result
• SceneNet RGB-Dデータセットの結果
26
Real dataset result
• EuRoC [Burri+, IJRR16] データセット
– SceneNet RGB-Dデータセットで学習したのに復元
ができている
27
Video
28
まとめ
• 単眼画像群から密な三次元復元を効率的に行いたい
• 密な奥行き画像のコンパクトな特徴量表現を抽出し,
特徴量空間で最適化する面白い手法を提案
– 既存手法との比較は全くない…(勝てなかったか?)
• Feature-based vs Direct-basedだったvSLAMの新しい
形を提案することができた
– (現段階では5fps程度, 今後がんばる)

論文読み会2018 (CodeSLAM)