[DL輪読会]Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images

DeepLearningJP2016 2,681 views 22 slides Oct 12, 2018
Slide 1
Slide 1 of 22
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22

About This Presentation

2018/10/12
Deep Learning JP:
http://deeplearning.jp/seminar-2/


Slide Content

Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images PSI B3 近藤生也

余談 https://www.crowdai.org/challenges/marlo-2018/leaderboard s エントリーまだ受付中だそう

アジェンダ 書誌情報 モチベーション データセット 既存手法 GCN コンセプト Mesh deformation (graph based ResNet) Graph unpooling loss4種 評価指標 実験 所感 ‹#›

書誌情報 Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images (ECCV2018) ← ヨーロッパのCV系 Fudan University(中国), Princeton University(米), Intel Labs ポイント 単一画像から3Dメッシュを復元する。 定量定性的にかなりよさそう ‹#›

モチベーション ‹#› 単一の視点から3D形状を推論したい ボクセルでもポイントクラウドでもなく、メッシュで。 メッシュだと、テクスチャを貼りやすい レイトレーシングもしやすい。 テクスチャ

モチベーション ‹#› ( メッシュ系って実際何に使うんだ よ…… ) 個人的にはこれを→ one-shotでやりたいのだと思う(やりたい) 仮想空間, オブジェクトを作成するコストを(劇的に?)下げる, 3D情報を(明示的に)理解した上でactionを考える ↑ Google mapの3D 機能。 恐らくSLAMをベースにした手法で3Dを復元し、 テクスチャを貼り付けている

データセット ShapeNet WordNetの 構造に従っている 数が凄い (使わない手はない) ‹#›

既存手法 [DL輪読会]MeshとDeep Learning Surface Networks & AtlasNet AtlasNetはsurfaceを分けて生成。枚数はハイパラ。 Surface Networksは変形に強い(?)。ShapeNet等で実験をしていない。 どちらかというとsiggraph系(CG系)な気がする(?)。 これらとは違うアプローチを提案 ‹#›

コンセプト GCN ベース( メッシュの頂点と辺が、グラフの頂点と辺に対応) 徐々に頂点数を増やす(点: 156→618→2466, 面: 308→1232→4928) ~~MH3Gのリオレウスのポリゴン数が約6500~~ GCNとは別にCNNを用意し、入力画像から情報を抽出する。 ‹#›

GCN ‹#› GCN一層の処理 fp^l: あるレイヤーでの、ノードpの特徴量ベクトル N(p): pの隣接頂点の集合, m次元→n次元と特徴量数が変化する場合、w0, w1はm*n行列 どの隣接頂点に対して使うw1も共通。 (ほとんど全結合で、自分自身と隣接してるノードの特徴量で次の層が決まる) https://colab.research.google.com/drive/1O4SiC5wEZn_98RSdalNJ92fJu1yochJe#scrollTo=O8lpjeHictaG GCN実装の本家様のkerasサンプルコードをさらにシンプルにしてコメントを付けてみました。

Pixel2Mesh 入力: 156 個の頂点座標 ⊕各頂点に対するCNNからの特徴量 →Mesh Deformation(GCN) →Graph Unpooling(頂点増やす) ⊕各頂点に対するCNNからの特徴量 →Mesh Deformation(GCN) ‹#› : : →Mesh Deformation(GCN) →GC N 出力:2466個の頂点座標

Mesh deformation (graph based ResNet) ‹#› CNNの3 箇所のfeature mapから、入力画像に頂点を投影した場所の特徴量をとってきて、各頂点の特徴量とする。 GCN部分では残差接続を使う。

Graph unpooling ‹#› NN 的には Upsampling と同じノリで、点の数を増やす。 各面の中心ではなく辺上に点を増やすことで、均一な密度で点を増やせる × ○

Loss1: Chamfer loss (面取りloss) ‹#› p: predicted vertex, q: ground truth vertex 一番近い頂点が正しいペアだと仮定して、二乗誤差をとる。 片方のΣだけだと、lossに登場しないpまたはqが出現しうる! ( ユークリッドノルム)

Loss2: Normal loss (法線loss) ‹#› 各 予測頂点pとすべての隣接頂点kについて、『線分pk』と『点qでの接平面の垂線』との内積をとる。 これは、点qでの接平面上に点pとその隣接頂点が全て存在したときに 0になる。

Loss3: Laplacian regularization (ラプラシアンで正規化) ‹#› ラプラシアンδpを定義 δp= 「 予測頂点p(x,y,z)」と「その隣接頂点の平均」の差 (dx,dy,dz) Mesh Deformationの前と後のラプラシアンをδp, δ’p。 隣接頂点との関係性が、G-Resの前と後であまり 変わらないようにする。 特異点みたいな頂点が生成されにくくなる

Loss4: Edge length regularization (辺の長さで正規化) ‹#› すべての予測頂点pとその隣接頂点kの組み合わせについて、 距離の和をとる。 形の収束が安定しやすくなる。

実験 ‹#› それぞれのlossがいい仕事をしている。

実験 ‹#› SOTA

feature work ‹#› 初期入力メッシュと目標物のトポロジーが違う場合、この手法は最適ではないので拡張していきたい

所感 ‹#› 暗黙的に3Dを学習する手法が流行ってる気がするけど、明示的に3Dを作れるほうが強い気がする…? いろいろlossを設計していたが、mesh系のGANが出たらあっさりSOTAだったりするのでは?

参考 ‹#› GCN 本家 https://arxiv.org/pdf/1609.02907.pdf