More Related Content
Similar to 論文読み会(DeMoN;CVPR2017) (20)
More from Masaya Kaneko (6)
論文読み会(DeMoN;CVPR2017)
- 1. DeMoN : Depth and Motion Network for
Learning Monocular Stereo (CVPR2017)
2017論文読み会
2017/10/12
東京大学 相澤山﨑研究室所属
B4 金子 真也
- 2. 1
概要
• SfM(Structure from Motion)をConvNetで行った
– 2枚の画像から三次元マップとカメラの位置を推定
画像
(時刻 t)
画像
(時刻 t+1) カメラの動き
(回転 R,並進 t)
画像(時刻 t)
の深度マップ
入力 出力
- 9. 8
1. bootstrap net
• 画像ペアを入力とし,optical flow(+確信度)の計算を
経由しながら深度マップとカメラの動きを出力
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
- 10. 9
1. bootstrap net
• 画像ペアを入力とし,optical flow(+確信度)の計算を
経由しながら深度マップとカメラの動きを出力
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
Image pair
optical flow
+confidence
warped image
Input
- 11. 10
1. bootstrap net
• 画像ペアを入力とし,optical flow(+確信度)の計算を
経由しながら深度マップとカメラの動きを出力
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flowによりwarp
1st Image Warped 2nd Image
warp
optical flow + 確信度
- 12. 11
1. bootstrap net
• なぜoptical flowを計算するか?
– 2枚の画像の情報を無理やり利用するため
– 計算なしでは入力を1枚にした場合と精度が変わらず
(zはdepth)
- 14. 13
2. iterative net
• 深度マップとカメラの動きを繰り返し計算
• 構造的にはbootstrap netとほぼ同じ(入力が異なる)
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
- 15. 14
2. iterative net
• 深度マップとカメラの動きを繰り返し計算
• 構造的にはbootstrap netとほぼ同じ(入力が異なる)
bootstrap net
と異なる部分
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
iterative
- 16. 15
2. iterative net
• 深度マップとカメラの動きを繰り返し計算
• 構造的にはbootstrap netとほぼ同じ(入力が異なる)
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
Image pair
Depth
+normals
optical flow
+warped image
Input
Image pair
optical flow
+confidence
depth
+warped image
Input
- 17. 16
2. iterative net
• 深度マップとカメラの動きを繰り返し計算
• 構造的にはbootstrap netとほぼ同じ(入力が異なる)
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
Image pair
Depth
+normals
optical flow
+warped image
Input
カメラの動き+深度からoptical flowを計算
Previous depth Optical flow
- 18. 17
2. iterative net
• 深度マップとカメラの動きを繰り返し計算
• 構造的にはbootstrap netとほぼ同じ(入力が異なる)
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
Image pair
Depth
+normals
optical flow
+warped image
Input
Image pair
optical flow
+confidence
depth
+warped image
Input
- 19. 18
2. iterative net
• 深度マップとカメラの動きを繰り返し計算
• 構造的にはbootstrap netとほぼ同じ(入力が異なる)
画像ペア
カメラの
動き
深度マップ
+法線マップ
optical flow + 確信度
Image pair
optical flow
+confidence
depth
+warped image
Input
カメラの動き+optical flowから深度の計算
depthOptical flow
- 24. 23
ネットワークの学習(Loss)
• 今回用いるLossとしては全部で7種類存在
– Depth Loss : 三次元的な深度のLoss
– Normal Loss : 三次元的な形の法線のLoss
– Optical flow Loss : 画像間のoptical flowのLoss
– Confidence Loss : flowの確信度のLoss
– Rotation Loss : カメラの回転運動のLoss
– Translation Loss : カメラの並進運動のLoss
– Scale Invariant gradient Loss : scale不変な勾配
のLoss
- 27. 26
ネットワークの学習(Loss)
• Motion Loss
– 回転 𝐫𝐫 (ground truth: �𝐫𝐫)
並進 𝐭𝐭 (ground truth: ̂𝐭𝐭)
※ground truthである ̂𝐭𝐭は以下のように正規化
(単眼カメラよりscale不定であるため)
̂𝐭𝐭 2 = 1
Rotation Loss
Translation Loss
- 35. 34
結果(Errorの定義)
• Motion error
– GTとpredictionとの角度 (rotation, translation)
– Translation vectorは1に正規化されている
• Optical flow error
– Average endpoint error (EPE)
全てのピクセルでGTとpredictionとの間のEuclidian
normを出力
- 36. 35
結果(two-frame depth est.)
• 古典的なSfMの手法との比較
– Base-SIFT/Base-FF
• SIFT/FlowFields(Bailer+)で画像間の対応
• 8-point algo. + RANSACでEssential matrix
• Bundle Adjustment (by ceres library)
• Stereoでdepth推定 + optimize(Hirschmuller+)
– Base-Oracle
• Stereoの代わりにGTのcamera motionを用いる
– Base-Matlab/Base-Mat-F
• KLT algo./flow(by DeMoN)で画像間の対応
• 5-point algo. + RANSACでEssential matrix
- 37. 36
結果(single-frame depth est.)
• 既存の単画像手法との比較
– Eigen&Fergus
• VGG netの構造
– Liu+(indoor)
• NYUv2 datasetによるindoor sceneで訓練
– Liu+(outdoor)
• Make3D datasetによるoutdoor sceneで訓練
- 39. 38
結果
• RGB-D SLAM datasetの連続する画像からカメラの動き
をtrajectoryとして出力した結果
– 主にtranslation driftによるずれ
– SLAMの重要な要素であるdrift correctionをしていな
いのでそれはそう感がある
DeMoN trajectory
GT trajectory