More Related Content Similar to Neural scene representation and rendering の解説(第3回3D勉強会@関東) (20) More from Masaya Kaneko (9) Neural scene representation and rendering の解説(第3回3D勉強会@関東)1. 第3回 3D勉強会@関東 (Deep SLAM論文読み会)
Neural scene representation and
rendering (Science)
東京大学 相澤研究室所属
M1 金子 真也 (@syinari0123)
2. 1
自己紹介
• 氏名
– 金子 真也 (かねこ まさや)
• 所属
– 東京大学大学院 学際情報学府 相澤研 M1
• Recently
– 2018年8月-9月 Sony Internship (SLAM)
– 2018年9月- 産総研 Research Assistant (櫻田先生)
• 深層学習やVisual SLAMと戯れています
• 就活に向けて情報収集中なのでSLAM関連でおすすめの企業があり
ましたらぜひ教えてください
まさや
(@syinari0123)
6. 5
どのようなものか?
• Generative Query Network (GQN) の提案
– あるマップを複数視点から撮影した画像群から, 別視点の画像を
生成するネットワーク (Rendererの実現)
1. 複数視点の画像群からScene Representationを作成
2. Scene Representationを手掛かりとして, ある視点位置
が入力されたらそこから見える画像を生成
7. 6
どのようなものか?
• Generative Query Network (GQN) の提案
– あるマップを複数視点から撮影した画像群から, 別視点の画像を
生成するネットワーク (Rendererの実現)
どこかで見たことあるような気がする…???
SfM/SLAM …???
三次元地図…??
8. 7
関連研究:SfM/SLAM
• SfM/SLAM [Structure from Motion / Simultaneous Localization and Mapping]
– 画像群から, 抽出した特徴点の三次元位置と各画像のカメラ姿勢
(三次元地図)を同時に求める
三次元地図の作成
(点の三次元位置+カメラ姿勢)
画像群
[1] Building Rome in a Day [Agarwal+, ICCV2009]
9. 8
関連研究:SfM/SLAM
• SfM/SLAM [Structure from Motion / Simultaneous Localization and Mapping]
– 画像群から, 抽出した特徴点の三次元位置と各画像のカメラ姿勢
(三次元地図)を同時に求める
– 三次元地図を使い, 画像から位置推定もできる(Localization)
三次元地図の作成
(点の三次元位置+カメラ姿勢)
画像群
Localization
カメラ姿勢
[1] Building Rome in a Day [Agarwal+, ICCV2009]
10. 9
関連研究:SfM/SLAM
• SfM/SLAM [Structure from Motion / Simultaneous Localization and Mapping]
– 画像群から, 抽出した特徴点の三次元位置と各画像のカメラ姿勢
(三次元地図)を同時に求める
– 三次元地図を使い, 画像から位置推定もできる(Localization)
– 逆に位置から画像の推定も可能 (Rendering)
三次元地図の作成
(点の三次元位置+カメラ姿勢)
画像群
Localization Rendering
カメラ姿勢
[1] Building Rome in a Day [Agarwal+, ICCV2009]
11. 10
関連研究
• SfM/SLAM vs GQN
– 両者の大きな違いは三次元地図を特徴量として保持している点
– 地図の可視性/Localization機能は失われるが, 深層学習で空間
情報を容易に扱うことができる (非常に重要)
手法 SfM/SLAM GQN
目標 三次元構造の復元 Rendererの実現
三次元地図 Pointcloud表現 特徴量ベクトル
地図の可視性 〇 ×
Localization
(画像→位置)
〇 ×
Rendering
(位置→画像)
〇 〇
深層学習との相性 × 〇
12. 11
関連研究
• 三次元地図のPointcloud表現
– 人間が空間把握するには非常にわかりやすい表現
– 一方, CNNで取り扱うには非常に難しい表現
• 座標値が並んでいるだけなので隣接関係が分からず畳み込み
が容易ではない
• 様々な手法が近年提案されているが決定的な手法はない印象
– PointNet++ [NIPS’17], SPLATNet [CVPR’18], …
– 皆川さんのスライドが非常にわかりやすいです
(https://www.slideshare.net/takmin/cvpr2018pointcloudcnnsplatnet)
𝑥𝑥1, 𝑦𝑦1, 𝑧𝑧1
𝑥𝑥2, 𝑦𝑦2, 𝑧𝑧2
𝑥𝑥3, 𝑦𝑦3, 𝑧𝑧3
…
13. • 三次元地図のPointcloud表現
– 人間が空間把握するには非常にわかりやすい表現
– 一方, CNNで取り扱うには非常に難しい表現
• 座標値が並んでいるだけなので隣接関係が分からず畳み込み
が容易ではない
• 様々な手法が近年提案されているが決定的な手法はない印象
– PointNet++ [NIPS’17], SPLATNet [CVPR’18], …
– 皆川さんのスライドが非常にわかりやすいです
(https://www.slideshare.net/takmin/cvpr2018pointcloudcnnsplatnet)
12
関連研究
𝑥𝑥1, 𝑦𝑦1, 𝑧𝑧1
𝑥𝑥2, 𝑦𝑦2, 𝑧𝑧2
𝑥𝑥3, 𝑦𝑦3, 𝑧𝑧3
…
直接三次元地図の特徴量を得るGQNは以下が期待できる
1. 難しいとされる点群畳み込みを介さないため,
良い特徴量を抽出できそう
2. 畳み込まないので地図のスケールが増えても,
計算量は増大しない
18. 17
関連研究:VAE
• Variational Autoencoder (VAE) [Kingma+, ICLR’14]
– 画像𝑥𝑥が自身を再構成するように低次元の潜在変数𝑧𝑧を抽出
– 正規分布に従うような制約を𝑧𝑧にかけ, 𝑧𝑧空間での連続性を保つ
正規分布 𝑁𝑁(0, 𝐼𝐼)
入力 𝑥𝑥 再構成 𝑥𝑥𝑥
Inference
𝒒𝒒(𝒛𝒛|𝒙𝒙)
Generation
𝒑𝒑(𝒙𝒙|𝒛𝒛)
潜在変数 𝑧𝑧
入力 𝑥𝑥
Loss
Loss
19. 18
関連研究:VAE
• Variational Autoencoder (VAE) [Kingma+, ICLR’14]
– 画像𝑥𝑥が自身を再構成するように低次元の潜在変数𝑧𝑧を抽出
– 正規分布に従うような制約を𝑧𝑧にかけ, 𝑧𝑧空間での連続性を保つ
入力 𝑥𝑥 再構成 𝑥𝑥𝑥
Inference
𝒒𝒒(𝒛𝒛|𝒙𝒙)
Generation
𝒑𝒑(𝒙𝒙|𝒛𝒛)
潜在変数 𝑧𝑧
正規分布 𝑁𝑁(0, 𝐼𝐼)
入力 𝑥𝑥
Loss
Loss
潜在変数空間[1] 生成画像[1]
[1] https://qiita.com/kenmatsu4/items/
b029d697e9995d93aa24
27. 26
関連研究:CVAE
• Conditional VAE (CVAE) [Sohn+, NIPS’15]
– VAEに任意の情報yを条件づけたモデル
入力 𝑥𝑥 再構成 𝑥𝑥𝑥
Inference
𝒒𝒒(𝒛𝒛|𝒙𝒙, 𝒚𝒚)
Generation
𝒑𝒑(𝒙𝒙|𝒛𝒛, 𝒚𝒚)
潜在変数 𝑧𝑧
入力 𝑥𝑥
Loss
学習時
28. 27
関連研究:CVAE
• Conditional VAE (CVAE) [Sohn+, NIPS’15]
– VAEに任意の情報yを条件づけたモデル
入力 𝑥𝑥 再構成 𝑥𝑥𝑥
Inference
𝒒𝒒(𝒛𝒛|𝒙𝒙, 𝒚𝒚)
Generation
𝒑𝒑(𝒙𝒙|𝒛𝒛, 𝒚𝒚)
潜在変数 𝑧𝑧
入力 𝑥𝑥
Loss
「9」
条件 𝑦𝑦
学習時
29. 28
関連研究:CVAE
• Conditional VAE (CVAE) [Sohn+, NIPS’15]
– VAEに任意の情報yを条件づけたモデル
– 条件yから直接潜在変数zを推論するPriorを付加
入力 𝑥𝑥 再構成 𝑥𝑥𝑥
Inference
𝒒𝒒(𝒛𝒛|𝒙𝒙, 𝒚𝒚)
Generation
𝒑𝒑(𝒙𝒙|𝒛𝒛, 𝒚𝒚)
潜在変数 𝑧𝑧
入力 𝑥𝑥
Loss
「9」
条件 𝑦𝑦
Prior
𝒑𝒑(𝒛𝒛|𝒚𝒚)
潜在変数 𝑧𝑧
Loss
学習時
30. 29
関連研究:CVAE
• Conditional VAE (CVAE) [Sohn+, NIPS’15]
– VAEに任意の情報yを条件づけたモデル
– 条件yから直接潜在変数zを推論するPriorを付加
生成 𝑥𝑥
Generation
𝒑𝒑(𝒙𝒙|𝒛𝒛, 𝒚𝒚)
「9」
条件 𝑦𝑦
Prior
𝒑𝒑(𝒛𝒛|𝒚𝒚)
潜在変数 𝑧𝑧
推論時
ラベル「9」から潜在変数zを推論し,
モデル空間の生成が期待される
37. 36
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
マップの複数視点画像
視点𝑣𝑣 𝑞𝑞
視点画像𝑥𝑥 𝑞𝑞
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
条件 𝑦𝑦
InferenceInference
Generation
(Prior)
Generation
潜在変数 𝑧𝑧
潜在変数 𝑧𝑧
Prior
Loss
38. 37
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
マップの複数視点画像
視点𝑣𝑣 𝑞𝑞
視点画像𝑥𝑥 𝑞𝑞
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
条件 𝑦𝑦
InferenceInference
Generation
(Prior)
Generation
(Prior)
潜在変数 𝑧𝑧
Loss
潜在変数 𝑧𝑧
39. 38
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
InferenceInference
Generation
(Prior)
Generation
(Prior)
潜在変数 𝑧𝑧
視点画像𝑥𝑥 𝑞𝑞
Loss
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
潜在変数 𝑧𝑧
マップの複数視点画像
視点𝑣𝑣 𝑞𝑞
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
条件 𝑦𝑦
40. 39
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
InferenceInference
Generation
(Prior)
Generation
(Prior)
潜在変数 𝑧𝑧
視点画像𝑥𝑥 𝑞𝑞
Loss
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
潜在変数 𝑧𝑧
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓 表現ネットワーク
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
条件 𝑦𝑦
𝑟𝑟
Scene Representation
41. 40
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
InferenceInference
Generation
(Prior)
Generation
(Prior)
潜在変数 𝑧𝑧
視点画像𝑥𝑥 𝑞𝑞
Loss
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
潜在変数 𝑧𝑧
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓 表現ネットワーク
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
条件 𝑦𝑦
𝑟𝑟
Scene Representation
• 観測結果を表現ネットワークに
よって1表現に要約
• 各視点の総和を取ることで,
順番や枚数に依存しない表現
42. 41
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
InferenceInference
Generation
(Prior)
Generation
(Prior)
潜在変数 𝑧𝑧
視点画像𝑥𝑥 𝑞𝑞
Loss
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
潜在変数 𝑧𝑧
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓 表現ネットワーク
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
条件 𝑦𝑦
𝑟𝑟
Scene Representation
• 表現ネットワークの詳細構造
43. 42
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
3. 自己回帰モデル:潜在変数を複数の条件付き分布の積で表現
視点画像𝑥𝑥 𝑞𝑞
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓 表現ネットワーク
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
条件 𝑦𝑦
𝑟𝑟
Scene Representation
InferenceInference
Generation
(Prior)
Generation
(Prior)
潜在変数 𝑧𝑧
Loss
潜在変数 𝑧𝑧
44. 43
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
3. 自己回帰モデル:潜在変数を複数の条件付き分布の積で表現
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓
𝑟𝑟
Scene Representation
視点画像𝑥𝑥 𝑞𝑞
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
条件 𝑦𝑦
表現ネットワーク
Inference
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Inference
Generation
(Prior)
Generation
(Prior)
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Loss
自己回帰モデル (ConvLSTM)
45. 44
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
3. 自己回帰モデル:潜在変数を複数の条件付き分布の積で表現
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓
𝑟𝑟
Scene Representation
視点画像𝑥𝑥 𝑞𝑞
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
条件 𝑦𝑦
表現ネットワーク
Inference
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Inference
Generation
(Prior)
Generation
(Prior)
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Loss
自己回帰モデル (ConvLSTM)
DRAW [Gregor+,2015] に似た構造
• VAEをRNNを使うことで自己回帰
的にモデル化
46. 45
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
3. 自己回帰モデル:潜在変数を複数の条件付き分布の積で表現
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓
𝑟𝑟
Scene Representation
視点画像𝑥𝑥 𝑞𝑞
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
条件 𝑦𝑦
表現ネットワーク
Inference
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Inference
Generation
(Prior)
Generation
(Prior)
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Loss
自己回帰モデル (ConvLSTM)
DRAW [Gregor+,2015] に似た構造
• まずは大雑把に, 徐々に細かく画像
が生成される
47. 46
手法の実装
• 実際の構造 (train時)
1. Prior/Generation部分の一体化
2. 表現ネットワーク:複数視点画像群から特徴量を抽出
3. 自己回帰モデル:潜在変数を複数の条件付き分布の積で表現
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓
𝑟𝑟
Scene Representation
視点画像𝑥𝑥 𝑞𝑞
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
条件 𝑦𝑦
表現ネットワーク
Inference
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Inference
Generation
(Prior)
Generation
(Prior)
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Loss
自己回帰モデル (ConvLSTM)
ネットワークの詳細構造
48. 47
手法の実装
• 実際の構造 (train時)
– 最終的な構造まとめ
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓
𝑟𝑟
Scene Representation
Inference
𝑧𝑧1 𝑧𝑧𝐿𝐿…
Inference
Generation
(Prior)
Generation
(Prior)
𝑧𝑧1 𝑧𝑧𝐿𝐿…
視点画像𝑥𝑥 𝑞𝑞
Loss
Loss
視点画像
𝑥𝑥 𝑞𝑞
推定結果
𝑥𝑥
条件 𝑦𝑦
表現ネットワーク
自己回帰モデル (ConvLSTM)
49. 48
手法の実装
• 実際の構造 (Test時)
– 最終的な構造まとめ
𝑣𝑣1 𝑣𝑣2 𝑣𝑣3
マップの複数視点画像+その視点
視点𝑣𝑣 𝑞𝑞
𝑟𝑟1
𝑟𝑟2
𝑟𝑟3
𝜓𝜓 𝜓𝜓 𝜓𝜓
𝑟𝑟
Scene Representation
Generation
(Prior)
Generation
(Prior)
𝑧𝑧1 𝑧𝑧𝐿𝐿…
推定結果
𝑥𝑥
条件 𝑦𝑦
表現ネットワーク
自己回帰モデル (ConvLSTM)
52. 51
実験結果
1. Rooms
– Scene representationの可視化結果 (GQN vs VAE)
– GQNではシーンの三次元構造に基づいた空間分布
– VAEでは画像の色合いに基づいた分布しかなっていない
GQN VAE
57. 56
実験結果
4. Robot arms
– 仮想環境上のアームをターゲットに近づける
1. GQNによって三次元マップを学習
2. 学習したScene表現を使い, A3Cで強化学習
– 三次元構造に関する特徴量を使うことで適切に学習が進む
61. 60
参考文献
1. Neural scene representation and rendering
– DeepMindのブログ記事です. 一番詳しいです(それはそう)
– https://deepmind.com/blog/neural-scene-representation-and-rendering/
2. [DL輪読会] GQNと関連研究,世界モデルとの関係について(by 鈴木さん)
– 非常にわかりやすいまとめです. 世界モデルと関連付けた解説はとても面白いです.
– https://www.slideshare.net/DeepLearningJP2016/dlgqn-111725780
3. 再現実装
– Chainer (by musyoku氏)
• https://github.com/musyoku/generative-query-network
– Pytorch
• https://github.com/wohlert/generative-query-network-pytorch
– TensorFlow
• https://github.com/ogroth/tf-gqn