Mais conteúdo relacionado Semelhante a 三次元点群を取り扱うニューラルネットワークのサーベイ (20) 三次元点群を取り扱うニューラルネットワークのサーベイ3. はじめに
PointNet (CVPR2017) をうけて,三次元点群を取り扱う
ネットワークの研究が盛んになった
三次元点群 (Point Cloud) は,入力点の順番によらず同じ形状を
記述できる「順不同なデータ構造」(三次元点の集合)であるため,
取り扱いが難しかった
PointNetはこの課題に対する解決方針を与えた
PointNet前後から現在までの,ニューラルネットワークで
三次元データ(点群と見なせる程度に十分高解像度なボクセルを含む)を
取り扱う論文のサーベイを行った
せっかくまとめたので公開します
ディープラーニングはあまり詳しくないので,間違っている部分も
あるかと思います.ご指摘頂けるとありがたいです
4. まとめた論文の一覧 (1/3)
~PointNet
1. STN: M. Jaderberg, et al.. Spatial Transformer Networks. NIPS2015. (2015-01-05)
2. PointNet: C. R. Qi, et al.. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. CVPR2017.
(2016-12-02)
入力にボクセルを利用
3. OctNet: G. Riegler, et al.. OctNet: Learning Deep 3D Representations at High Resolutions. CVPR2017. (2016-11-15)
4. O-CNN: P. –S. Wang, et al.. O-CNN: Octree-based Convolutional Neural Networks for 3D Shape Analysis. SIGGRAPH2017.
(2017-07-03)
5. RSNet: Q. Huang, et al.. Recurrent Slice Networks for 3D Segmentation of Point Clouds. CVPR2018. (2018-02-13)
6. PointGrid: T. Le, et al.. PointGrid: A Deep Network for 3D Shape Understanding. CVPR2018. (2018-06-18)
7. AO-CNN: P. –S. Wang, et al.. Adaptive O-CNN: A Patch-based Deep Representation of 3D Shapes. SIGGRAPH Asia2018.
(2018-09-19)
入力を点群・ボクセル以外に変換
8. FPNN: Y. Li, et al.. FPNN: Field Probing Neural Networks for 3D Data. NIPS2016. (2016-05-20)
9. Kd-Network: R. Klokov, et al.. Escape from Cells: Deep Kd-Networks for The Recognition of 3D Point Cloud Models.
ICCV2017. (2017-04-04)
10. PPFNet: H. Deng, et al.. PPFNet: Global Context Aware Local Features for Robust 3D Point Matching. CVPR2018.
(2018-02-07)
11. SO-Net: J. Li, et al.. SO-Net: Self-Organizing Network for Point Cloud Analysis. CVPR2018. (2018-03-12)
12. MCCNN: P. Hermosilla, et al.. Monte Carlo Convolution for Learning on Non-Uniformly Sampled Point Clouds.
SIGGRAPH Asia2018. (2018-06-05)
13. Automatic Depth Image Generation: R. Roveri, et al.. A Network Architecture for Point Cloud Classification via Automatic
Depth Images Generation. CVPR2018. (2018-06-18)
14. MRTNet: M. Gadelha, et al.. Multiresolution Tree Networks for 3D Point Cloud Processing. ECCV2018. (2018-07-10)
Google Spreadsheetsで公開しています
https://docs.google.com/spreadsheets/d/1MJTdLHIRefclx4GkZkfZxFj9GIxLSjit_f32j_DR9gw/edit?usp=sharing
5. まとめた論文の一覧 (2/3)
局所形状の利用
15. ECC: M. Simonovsky, et al.. Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs. CVPR2017.
(2017-04-10)
16. PointNet++: C. R. Qi, et al.. PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space. NIPS2017.
(2017-06-07)
17. Pointwise CNN: B. –S. Hua, et al.. Pointwise Convolutional Neural Networks. CVPR2018. (2017-12-14)
18. KCN: Y. Shen, et al.. Mining Point Cloud Local Structures by Kernel Correlation and Graph Pooling. CVPR2018. (2017-12-19)
19. PointCNN: Y. Li, et al.. PointCNN. arXiv:1801.07791. (2018-01-23)
20. DG-CNN: Y. Wang, et al.. Dynamic Graph CNN for Learning on Point Clouds. arXiv:1801.07829. (2018-01-24)
21. Flex-Convolution: F. Groh, et al.. Flex-Convolution. (Million-Scale Point-Cloud Learning Beyond Grid-Worlds). ACCV2018.
(2018-03-20)
22. PCNN: M. Atzmon, et al.. Point Convolutional Neural Networks by Extension Operators. SIGGRAPH2018. (2018-03-27)
23. SpiderCNN: Y. Xu, et al.. SpiderCNN: Deep Learning on Point Sets with Parameterized Convolutional Filters. ECCV2018.
(2018-03-30)
24. Parametric Continuous Convolutions: S. Wang, et al.. Deep Parametric Continuous Convolutional Neural Networks.
CVPR2018. (2018-06-18)
25. Tangent Convolution: M. Tatarchenko, et al.. Tangent Convolutions for Dense Prediction in 3D.
CVPR2018. (2018-06-18)
26. SCN: S. Xie, et al.. Attentional ShapeContextNet for Point Cloud Recognition. CVPR2018. (2018-06-18)
Google Spreadsheetsで公開しています
https://docs.google.com/spreadsheets/d/1MJTdLHIRefclx4GkZkfZxFj9GIxLSjit_f32j_DR9gw/edit?usp=sharing
6. まとめた論文の一覧 (3/3)
特殊なレイヤー
27. SEGCloud: L. P. Tchapmi, et al.. SEGCloud: Semantic Segmentation of 3D Point Clouds. 3DV2017. (2017-10-20)
28. FoldingNet: Y. Yang, et al.. FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation. CVPR2018. (2017-12-19)
29. SPLATNet: H. Su, et al.. SPLATNet: Sparse Lattice Networks for Point Cloud Processing. CVPR2018. (2018-02-22)
30. URSA: M. B. Skouson. URSA: A Neural Network for Unordered Point Clouds Using Constellations. arXiv:1808.04848.
(2018-08-14)
31. Point Cloud VAE-GAN: C. Kingkan, et al.. Generating Mesh-based Shapes From Learned Latent Spaces of Point Clouds
with VAE-GAN. ICPR2018. (2018-08-20)
32. Fully Convolutional Point Network: D. Rethage, et al.. Fully-Convolutional Point Networks for Large-Scale Point Clouds.
ECCV2018. (2018-08-21)
33. PPF-FoldingNet: H. Deng, et al.. PPF-FoldNet: Unsupervised Learning of Rotation Invariant 3D Local Descriptors. ECCV2018.
(2018-08-30)
個別のアプリケーション
34. PCPNet: P. Guerrero, et al.. PCPNET: Learning Local Shape Properties from Raw Point Clouds. Eurographics2018. (2017-10-13)
35. Frustum PointNet: C. R. Qi, et al.. Frustum PointNets for 3D Object Detection from RGB-D Data. CVPR2018. (2017-11-22)
36. SGPN: W. Wang, et al.. SGPN: Similarity Group Proposal Network for 3D Point Cloud Instance Segmentation. CVPR2018.
(2017-11-23)
37. PU-Net: L. Yu, et al.. PU-Net: Point Cloud Upsampling Network. CVPR2018. (2018-01-21)
38. Hand PointNet: L. Ge, et al.. Hand PointNet: 3D Hand Pose Estimation Using Point Sets. CVPR2018. (2018-06-18)
39. Point Attention Network: C. Kingkan, et al.. Point Attention Network for Gesture Recognition Using Point Cloud Data.
BMVC2018. (2018-09-03)
40. P2P Reg PointNet: L. Ge, et al.. Point-to-Point Regression PointNet for 3D Hand Pose Estimation. ECCV2018. (2018-10-08)
まだたくさんあるとは思いますが,今回は以上の論文を扱います
分類も難しかったのですが,とりあえず以上のように分けました
Google Spreadsheetsで公開しています
https://docs.google.com/spreadsheets/d/1MJTdLHIRefclx4GkZkfZxFj9GIxLSjit_f32j_DR9gw/edit?usp=sharing
7. まとめた論文の発表時期
~PointNet
ボクセル
局所形状の利用
特殊なレイヤー
アプリケーション
点群・ボクセル以外
基本的にarXivの初めのバージョン
学会の場合は学会初日
(例外あり)
~2016 2017.4 2017.7 2017.10 2018.4 2018.102017.1 2018.1 2018.7
1. STN
2. PointNet
3. OctNet 4. O-CNN 5. RSNet
6. PointGrid
7. AO-CNN
9. Kd-Net 10. PPFNet
11. SO-Net
12. MCCNN
13. ADIG
15. ECC
16. PointNet++ 17. Pw CNN
18. KCN
19. PointCNN
20. DG-CNN
21. F-Conv
22. PCNN
23. SpiderCNN
24. PCC
25. TangentC
26. SCN
27. SEGCloud
28. FoldingNet
29. SPLATNet 30. URSA
31. PC V-G
32. FCPN
33. PPF-FN
34. PCPNet
35. FrustumPN
36. SGPN
37. PU-Net
39. PAN
8. FPNN
14. MRTNet
38. Hand PN
40. P2PRPN
9. 大まかな傾向と感想 (2/2)
• 多くはクラス分類とセグメンテーションで性能評価
• おそらくデータセットの存在とPointNetの影響が大きい
• 個別のアプリケーションはこれからまだ増えそう
• 各点の特徴量の集約がMax Poolingで良いのかは議論がある
• あるネットワークの構造ではAverage Poolingの方がよかった,という
例が複数ある
• 点群をどのようにサンプリングするか,が今後の焦点の
一つになりそう
• メッシュ等から点群への変換
• プーリングなどに使うための解像度(点群密度)の異なる点群への変換
• 実際の三次元計測のことまで考えている論文はまだ少ない印象
11. 1. STN
[M. Jaderberg+, NIPS2015, arXiv:1506.02025, 2015-01-05] 担当: 戸田
幾何学変換を扱えるネットワーク
• Spatial Transformer Network (STN) を組み込むことで
ネットワークが幾何学変換に対応できるようになる
• PointNetを理解する上では欠かせない先行研究
• PyTorchのチュートリアルにもある
https://pytorch.org/tutorials/intermediate/spatial_transformer_tutorial.html
評価
• クラス分類
MNIST, Street View House Numbers, CUB-200-2011 birds dataset
12. Localisation Net: 幾何学変換を推定する
• 幾何学変換のパラメータθを出力
• あらゆるネットワーク構造を取りうる
(CNNでもMLPでも)
• ただし、パラメータθを得るために回帰出力層が必要
1. STN
[M. Jaderberg+, NIPS2015, arXiv:1506.02025, 2015-01-05] 担当: 戸田
13. 1. STN
[M. Jaderberg+, NIPS2015, arXiv:1506.02025, 2015-01-05] 担当: 戸田
Grid Generator
• Transformer Netの出力θで座標系(Grid)を変換する
• 二次元アフィン変換であればθは6次元
Gridを変換
14. 1. STN
[M. Jaderberg+, NIPS2015, arXiv:1506.02025, 2015-01-05] 担当: 戸田
Sampler
• 変換したGridに乗っている値を取り出す
• どんなサンプリング方式でも可
• ちなみに点群ではこの処理は不要
(→gridに縛られない点群のいいところ)
15. 2. PointNet
[C. R. Qi+, CVPR2017, arXiv:1612.00593, 2016-12-02] 担当: 千葉
点群を直接入力できるネットワークの設計
点の順番が変化しても出力が変わらないような
Symmetric Functionを学習する
評価
• クラス分類
ModelNet40
• セグメンテーション
ShapeNet-Part (+ Blensor Kinect Simulator), S3DIS
16. 2. PointNet
[C. R. Qi+, CVPR2017, arXiv:1612.00593, 2016-12-02] 担当: 千葉
Symmetric Functionによって順不同な入力を扱う
• 三次元点群は順不同(irregular)なデータ形式
• 考えられるアプローチは3つ
• ソートする
• RNNの入力シーケンスとして扱う(全組み合わせで学習する)
• Symmetric Functionを使う → PointNetはこのアプローチ
• PointNetでは𝑔𝑔 ⋅ としてMax Poolingを用いる
点ごとに独立した変換
(Point-wise convolutionなど)
点の順序が影響しない関数
Max Poolingなど
Symmetric Function
(𝑥𝑥の順序の影響を受けない)
17. 2. PointNet
[C. R. Qi+, CVPR2017, arXiv:1612.00593, 2016-12-02] 担当: 千葉
ローカルな特徴はどうするか
→ グローバルな特徴と点ごとの特徴を結合して
最終的なポイントごとの特徴とする
T-net (STN) の導入
• 回転・並進の正規化するために入力点群を
T-Net (STN)で剛体変換
• 特徴量もFeature Alignment Networkで変換
• これもT-net (STN)
• 正規直交行列になるようロスを設計
(正規直交変換であれば情報を失わないため)
18. 2. PointNet
[C. R. Qi+, CVPR2017, arXiv:1612.00593, 2016-12-02] 担当: 千葉
ネットワークの構造
T-Net = STN
Max Pooling
点ごとの特徴と
グローバルな特徴を結合
20. 3. OctNet
[G. Riegler+, CVPR2017, arXiv:1611.05009, 2016-11-15] 担当: 千葉
高解像度なボクセルグリッドを扱えるOctNetの提案
• データの密度に従って空間を分割
• 点のない空間は分割しないことで
計算リソースとメモリリソースを節約
• PointNet以前の論文
評価
• クラス分類
ModelNet10, ModelNet40
• 回転推定
ModelNet10, Biwi Kinect Head Pose Database
• セグメンテーション
RueMonge2014
21. 3. OctNet
[G. Riegler+, CVPR2017, arXiv:1611.05009, 2016-11-15] 担当: 千葉
生のOctreeはディープラーニングと相性が悪い
生のOctree実装の多くは木構造をポインタで持つため
→ Hybrid Grid-Octreeによって解決
A. Miller, et al.. Real-time rendering and dynamic updating of 3-d volumetric
data. GPGPU-WS.
• 浅いOctreeを階層的に配置
• 一つの階層におけるOctreeをビット列で表現
22. 3. OctNet
[G. Riegler+, CVPR2017, arXiv:1611.05009, 2016-11-15] 担当: 千葉
Hybrid Grid-Octreeの利点
• 簡単な演算で子Octreeのインデックスを得られる
• この演算自体もpopcntで高速な実装ができる
Network Operations
• Convolution, Pooling, Unpoolingを効率よく行いたい
• 点ごとの操作(Point-wise Convolutionや活性化関数)は
データ構造に依存しないので問題ではない
23. 3. OctNet
[G. Riegler+, CVPR2017, arXiv:1611.05009, 2016-11-15] 担当: 千葉
Hybrid Grid-Octree上でのConvolution
• Octreeとカーネルの畳み込み:
サブボクセルの畳み込みに分けると計算結果を
使い回せる
• 計算しなければいけないサブボクセルのパターンは
カーネルとの位置関係によって領域ごとに異なる
サブボクセルのパターン 一般的な三次元の畳み込みと
提案する畳み込みの比較
24. 4. O-CNN
[P. –S. Wang+, SIGGRAPH2017, 2018-07-03] 担当: 千葉
Octree上でのCNN: O-CNNを提案
Octree上で効率よくCNNで計算できるデータ構造を設計
• GPU上で高速に計算できる
• メモリ・計算コストは深さに対して2乗で増加
(空間解像度は3乗に増加するので効率が良いといえる)
評価
• クラス分類
ModelNet40
• Shape retrieval
ShapeNet-Core55
• セグメンテーション
ShapeNet-Sem
25. 4. O-CNN
[P. –S. Wang+, SIGGRAPH2017, 2018-07-03] 担当: 千葉
Shuffle Key + Label
• Shuffle Key: Octree上の座標をビット表現
Jane Wilhelms, et al.. Octrees for faster
isosurface generation. TOG, 1992.
• 八分木の各リーフを3ビットで表現,
レイヤー順に結合
• 𝑙𝑙レイヤーであれば3𝑙𝑙ビットを使用
• Label
• Octreeのレイヤーごとにボクセルに
ラベル(インデックス)をつける
• 空ならゼロ
Super-octree
Mini-batch中もOctreeをすべてオーバーラップ,
一つでもボクセルが空でなければLabelをつける
26. 4. O-CNN
[P. –S. Wang+, SIGGRAPH2017, 2018-07-03] 担当: 千葉
Convolution
• Shuffle key → LabelのHash Tableを作成
• 近傍ボクセルをまとめて処理
Pooling, Unpooling
KernelとStrideを2にするとボクセルの構造と一致し,
簡単に処理できる
二次元の例:
(左)各ボクセル独立に処理すると9x4=36回だけHash Tableにアクセス
(右)隣接4ボクセルをまとめると16回でよい
27. 4. O-CNN
[P. –S. Wang+, SIGGRAPH2017, 2018-07-03] 担当: 千葉
ネットワークの構造
• Basic Unit
U𝑙𝑙: Convolution → BN → ReLU → Pooling
DU𝑙𝑙: Unpooling → Deconvolution → BN → ReLU
• 𝑙𝑙は深さを表す
• O-CNN 𝑑𝑑 : input → U𝑑𝑑 → U𝑑𝑑−1 → ⋯ → U2
• Basic Unitを積む
• U2の出力に空のボクセルがあった場合はゼロで埋める
• クラス分類:
O-CNN 𝑑𝑑 → Dropout → FC(128) → Dropout
→ FC(クラス数) → softmax → output
• セグメンテーション:
O-CNN 𝑑𝑑 → DU2 → DU3 → ⋯ → DU𝑑𝑑 → CRF
• エンコーダー・デコーダー風
28. 5. RSNet
[Q. Huang+, CVPR2018, arXiv:1802.04402, 2018-02-13] 担当: 千葉
点群を順序付きのボクセルに変換し入力する
ネットワークRecurrent Slice Network (RSNet) を提案
順不同な点群入力に軸に沿った順序構造を導入
RSNetの構成要素
• Slice Pooling Layer
• RNN layers
• Slice Unpooling Layer
評価
• セグメンテーション
• S3DIS, ScanNet, ShapeNet-Part
29. 5. RSNet
[Q. Huang+, CVPR2018, arXiv:1802.04402, 2018-02-13] 担当: 千葉
処理の流れ
1. Input Feature Extraction
入力前にPoint-wise Convolution
2. Slice Pooling Layer
x,y,zの各軸に沿って点群を
分割しMax Pooling
3. RNN layers
スライスした点群を順に
bidirectional RNNに入力
4. Slice Unpooling Layer
RNNからの出力を
対象スライス上の全点に反映
5. Output Feature Extraction
Slice Unpooling Layerの出力を
各点ごとに結合,Point-wise Convolutionで最終的なクラスに変換
Slice Pooling Layer
Slice Unpooling Layer
30. 5. RSNet
[Q. Huang+, CVPR2018, arXiv:1802.04402, 2018-02-13] 担当: 千葉
ネットワークの構造
x,y,zの各軸に
対して行う
Slice Pooling Layer
RNN Layer
Slice Unpooling Layer
Point-wise Convolution
Point-wise Convolution
31. 6. PointGrid
[T. Le+, CVPR2018, 2018-06-18] 担当: 千葉
点群からボクセルへのサンプリングを工夫し,
ボクセルの畳み込みを学習するPointGridの提案
• ボクセル中の点の座標を直接入力
• 各ボクセルで点数が等しくなるようサンプリング
評価
• クラス分類
ModelNet40, ShapeNet-Core v2
• セグメンテーション
• ShapeNet-Part
32. 6. PointGrid
[T. Le+, CVPR2018, 2018-06-18] 担当: 千葉
ボクセル中の点数が一定になるようにサンプリング
点数が一定=次元が固定なので,座標値を結合して入力
• 点数がゼロの場合: 空のボクセルとして処理
• 点数が多い場合: ランダムに除去
• 点数が少ない場合: オーバーサンプリング
(同じ点を複数回サンプリング)
33. 6. PointGrid
[T. Le+, CVPR2018, 2018-06-18] 担当: 千葉
ネットワーク構造
上: クラス分類,下: セグメンテーション
サンプリングの工夫が主で,ネットワーク構造は一般的
34. 7. AO-CNN
[P. –S. Wang+, SIGGRAPH Asia2018, 2018-09-19] 担当: 千葉
効率よく三次元形状をエンコード・デコードできる
Adaptive O-CNNを提案
Octree上での法線と変位で表面形状を記述
評価
• クラス分類
ModelNet40
• オートエンコーダー
ShapeNet-Core v2
• 画像からの形状予測
ShapeNet-Core v2
35. 7. AO-CNN
[P. –S. Wang+, SIGGRAPH Asia2018, 2018-09-19] 担当: 千葉
Patch-guided Adaptive Octree
• Octreeの領域ごとに平面近似
• 近似精度が悪かったら(凸凹があれば)
より細かいOctreeに分割して平面近似
• 各ボクセルに平面の法線と距離を割り当て
各レベルで平面近似された面
36. 7. AO-CNN
[P. –S. Wang+, SIGGRAPH Asia2018, 2018-09-19] 担当: 千葉
ネットワークの構造: エンコーダー
末端から順にConvolution+Poolingしつつ,
各レベルでのデータを統合(Max-pooling)していく
• O-CNNとの共通点: データ構造,Convolution,Pooling
• O-CNNとの相違点:
異なるレベルのボクセルにデータが割り当てられている
(O-CNNは末端のみ)
O-CNN
Adaptive
O-CNN
Max Poolingでレベルごとに統合
37. 7. AO-CNN
[P. –S. Wang+, SIGGRAPH Asia2018, 2018-09-19] 担当: 千葉
ネットワークの構造: デコーダー
• 各ボクセルで平面パラメータと推定状況を出力
推定状況: Empty, Surface-well-approximated, Surface-poorly-approximated
• Surface-poorly-approximatedのボクセルはより細かい
ボクセルで再度推定
39. 8. FPNN
[Y. Li+, NIPS2016, arXiv:1605.06240, 2016-05-20] 担当: 千葉
三次元ボクセルから特徴を抽出するための
Field Probing Filter (Leyer) の提案
• Field Probing Filter を用いたネットワーク:
FPNN (Field Probing based Neural Networks)
• プローブの位置と重みを学習
• PointNet以前の論文であることに留意
評価
• クラス分類
ModelNet40
学習後のField Probing Layerの例
40. 8. FPNN
[Y. Li+, NIPS2016, arXiv:1605.06240, 2016-05-20] 担当: 千葉
Field Probing Layer
• 点群を距離空間,法線ベクトル空間に変換して入力
(ボクセル空間が密になるように設計)
• 一つのProbing Pointが特徴量の一次元を出力
• Probing Pointをつなげて一つのフィルタとし,
ボクセル空間中にフィルタを複数配置
• 構成要素
• Sensor Layer:
Probing Pointのボクセルの値を抽出,
Probing Pointを学習
• DotProduct Layer:
抽出された値の重み付き和を計算,
重みを学習
• Gaussian Layer:
値をガウスカーネルで変換 Field Probing Layerの例
学習前(左)と学習後(右)
41. 8. FPNN
[Y. Li+, NIPS2016, arXiv:1605.06240, 2016-05-20] 担当: 千葉
ネットワークの構造
点群をボクセルでの距離空間と法線ベクトル空間に変換し,
Field Probing Layerに入力
全結合層
Field Probing Layer
距離空間表現での入力 法線ベクトル空間表現での入力
42. 9. Kd-Network
[R. Klokov+, ICCV2017, arXiv:1704.01222, 2018-04-04] 担当: 千葉
三次元点群をKd-Treeに変換して入力,学習する
Kd-networkを提案
Kd-treeを計算グラフと考え,各ノードの出力を伝搬
評価
• クラス分類
MNIST, ModelNet10, ModelNet40
• セグメンテーション
ShapeNet-Part
• Shape retrieval
ShapeNet-Core v1
43. 9. Kd-Network
[R. Klokov+, ICCV2017, arXiv:1704.01222, 2018-04-04] 担当: 千葉
計算グラフの構築
• 子ノードの特徴量を結合,アフィン変換と活性化関数を
通して親ノードの特徴量とする
• アフィン変換のパラメータは深さ及び分割軸 (x, y, z)
ごとに独立
• ルートノードをアフィン変換して全体の特徴量とする
子ノードの出力を結合
アフィン変換+活性化関数
深さ・分割軸ごとに
44. Kd-treeを使うメリット
• Kd-tree自体が形状記述子と見なせる → 後述
• Kd-treeは同一の深さの層が空間的には異なる大きさの
領域を担当する
→ ボクセルグリッドに比べうまく構造を拾うことを期待
• Kd-treeの構造に変動を与えないような摂動にはロバスト
学習について
• 学習時には分割を確率的にすることでData Augmentation
• Histogram Lossを使ったが,Siamese LossやTriplet Lossも
使えると思われる
9. Kd-Network
[R. Klokov+, ICCV2017, arXiv:1704.01222, 2018-04-04] 担当: 千葉
47. 10. PPFNet
[H. Deng+, CVPR2018, arXiv:1802.02669, 2018-02-23] 担当: 戸田
Point Pair Feature (PPF) を入力とするネットワーク
PPFを利用することで点群形式の入力に対応した
評価
• 点群間の対応
7-scenes, USN3D
48. Encoding of Local Geometry:
• 注目点xrに対して近傍の点xiを設定
• xiの法線とxrとのPoint Pair Feature (PPF) を求める
• xrを代表とするlocal geometry Frは各点の位置と法線
およびPPFで表される
10. PPFNet
[H. Deng+, CVPR2018, arXiv:1802.02669, 2018-02-23] 担当: 戸田
49. ネットワーク構成
• Local geometry FrをPointNetの入力とする (Local Patch)
• PointNetのパラメータは共有
• Frごとの特徴が得られる
10. PPFNet
[H. Deng+, CVPR2018, arXiv:1802.02669, 2018-02-23] 担当: 戸田
50. 10. PPFNet
[H. Deng+, CVPR2018, arXiv:1802.02669, 2018-02-23] 担当: 戸田
PPFNetはPPFを入力として局所特徴量を学習
• シーン間で同一の点が特徴空間で近づくように学習
• 特徴空間の距離と実際の距離を比較してBackpropagation
51. 点群間の対応づけの成否を
ロスとする (N-tuple loss)
• 全Local Patch間で対応の成否を
判別する
• 対応が成立した組とそうでない
組の分布が区別しやすい
M∈RN×N :対応点である時は1,そうでなければ0
D∈RN×N :PPFNetで得られた特徴空間での距離
10. PPFNet
[H. Deng+, CVPR2018, arXiv:1802.02669, 2018-02-23] 担当: 戸田
対応点同士の特徴空間での
距離が近くなるように学習
非対応点同士の特徴空間での
距離が遠くなるように学習
52. 11. SO-Net
[J. Li+, CVPR2018, arXiv:1803.04249, 2018-03-12] 担当: 千葉
点群を直接入力として学習できるSO-Netの提案
自己組織化マップ(SOM)を用いて点群の空間分布を
モデル化
評価
• クラス分類(+オートエンコーダー)
MNIST, ModelNet10, ModelNet40
(オートエンコーダーで事前に学習した場合も比較)
• セグメンテーション(+オートエンコーダー)
ShapeNet-Part
(オートエンコーダーで事前に学習した場合も比較)
53. 11. SO-Net
[J. Li+, CVPR2018, arXiv:1803.04249, 2018-03-12] 担当: 千葉
順不同な点群の入力に対応したSOMを設計
(純粋にSOMを適用するとうまくいかない)
問題: SOMのノードの初期値に強く依存
対策: 固定の初期ノードを使用
単位球内にランダムに配置
問題: 点の順序に依存する
対策: 全点についてまとめてから更新
GPUで効率的な実装ができる
SONの初期ノード 学習結果の例
54. 11. SO-Net
[J. Li+, CVPR2018, arXiv:1803.04249, 2018-03-12] 担当: 千葉
SO-Net (Encoder)
• オーバーラップさせつつ点群をSOMノードに割り当てる
• kNNで近傍のSOMノードk個を取り出す
• 近傍点と中心となるノードの相対位置を求める
• 上記以外は一般的なPointNet風の点群処理ネットワーク
• 点ごと(SOMノードごと)に畳み込み,Max (Average) Pooling
• 点ごとの特徴量とグローバルな特徴量を結合,MLPを通して
セグメンテーション
SO-Net (Autoencoder)
• 上のエンコーダーにUp-convolution (upconv) を用いた
デコーダーを結合,オートエンコーダーとして学習
• ロスにはChamfer lossを用いる
55. 11. SO-Net
[J. Li+, CVPR2018, arXiv:1803.04249, 2018-03-12] 担当: 千葉
ネットワークの構造 (Encoder)
セグメンテーションでの最終段はAverage Poolingが
良かった
点群→
SOMノード
SOMノードごとに
PointNet風の処理
Average Pooling
56. 11. SO-Net
[J. Li+, CVPR2018, arXiv:1803.04249, 2018-03-12] 担当: 千葉
ネットワークの構造 (Decoder)
Upconvによって三次元点を得るネットワークと,
MLPで直接三次元点を得るネットワークの組み合わせ
upconvしてから,各要素がそれぞれ三次元点となるように
各点の特徴量を三次元座標に変換する (conv2pc)
そのままMLPで三次元点に変換する
57. 不均一にサンプリングされた点群に対する畳み込み
Monte Carlo Convolutionを提案
• サンプリング方法の変更に対してロバスト
• 構成要素
• カーネル自体をMLPで表現
• 畳み込みをモンテカルロ積分として表現
• 複数レベルでサンプリングされた情報を統合
評価
• クラス分類
ModelNet40
• セグメンテーション
ShapeNet-Part
12. MCCNN
[P. Hermosilla+, SIGGRAPH Asia2018, arXiv:1806.01759, 2018-06-05]担当: 千葉
59. Monte Carlo (MC) Convolution
• モンテカルロ積分で畳み込み演算を行う
• 各点におけるサンプル密度で正規化して畳み込み
• サンプル密度は厳密には与えられないため,カーネル密度推定を用いて
入力点群から推定
• MC Convolution on Multiple Samplings
• 点数を変えてサンプリングを
複数回行うことで,畳み込まれる
点群と出力点群が異なるような
畳み込みが可能
• カーネルごとに畳み込む点群を
変えることも可能
カーネル
畳み込まれる
点群
出力点群
畳み込まれる点群が1種類の場合の例(上)
畳み込まれる点群が複数種類の場合の例(下)
12. MCCNN
[P. Hermosilla+, SIGGRAPH Asia2018, arXiv:1806.01759, 2018-06-05] 担当: 千葉
61. 13. Automatic Depth Image Generation
[R. Roveri+, CVPR2018, 2018-06-18] 担当: 千葉
点群をDepth画像にうまく変換し,画像ベースで
分類するネットワーク
• 分類しやすいようモデルを回転
• 点群の可視化にも利用できる可能性がある
評価
• クラス分類
ModelNet40
62. 13. Automatic Depth Image Generation
[R. Roveri+, CVPR2018, 2018-06-18] 担当: 千葉
処理の流れ
1. 点群から分類に適したK個のカメラ位置を推定
論文ではK=2,PointNetを利用
2. 三次元点群を二次元のK視点のDepth画像に変換
3. 視点ごとのDepth画像からそれぞれクラス分類
ResNet50を利用
4. 視点ごとの分類結果を統合
63. 13. Automatic Depth Image Generation
[R. Roveri+, CVPR2018, 2018-06-18] 担当: 千葉
カメラ位置の推定 (View Prediction)
• PointNetによりカメラに関する6次元ベクトルを推定
• カメラ視線方向ベクトル: 3次元
• Up-axis(視点の上方向を定めるベクトル) : 3次元
• 点群の中心とカメラの距離はあらかじめ設定
• 6次元ベクトルが示すカメラ視点になるよう点群を回転
64. 14. MRTNet
[M. Gadelha+, ECCV2018, 2018-07-10] 担当: 千葉
点群を特殊なテンソル表現に変換して処理する
Multiresolution Tree Networks (MRTNet) の提案
逆順で適用したネットワークを組み合わせ,
オートエンコーダーとしても利用できる (MR-VAE)
評価
• クラス分類
• ModelNet40
• 画像からの形状予測
• PASCAL VOC 2012とPASCAL 3D+
• オートエンコーダー
• ShapeNet
65. 14. MRTNet
[M. Gadelha+, ECCV2018, 2018-07-10] 担当: 千葉
複数解像度の情報を持つテンソル表現で処理
• テンソル表現への変換
• 入力点群に対して三段階の解像度の点群を作成
(入力点群と1/𝑘𝑘, 1/𝑘𝑘2にダウンサンプリングした点群)
• 各軸 (x, y, z) それぞれについて,軸に沿って点の座標ソート
• Convolution (MR-CONV)
1. 各解像度の入力をAverage Pooling
Pooling / Nearest Neighbor
Upsamplingで別の解像度に変換し
すべて結合
2. それぞれの解像度で,点ごとに
特徴量を畳み込み
3. 出力は入力の1/𝑘𝑘の解像度
66. 14. MRTNet
[M. Gadelha+, ECCV2018, 2018-07-10] 担当: 千葉
ネットワークの構造
• Encoder: MR-CONVで構成
• Decoder: MR-CONVの逆順で処理するMR-CONV-Tで構成
テンソル表現
された点群
MR-CONV MR-CONV-T 点ごとに
非線形変換
69. 15. ECC
[M. Simonovsky+, NIPS2017, arXiv:1704.02901, 2017-04-10] 担当: 千葉
グラフ上で畳み込みを行うための
Edge-Conditioned Convolution (ECC) を提案
• 近傍点を結んだグラフとして点群も入力できる
• エッジにおける畳み込みにConditionを導入
Dynamic filter networksのアイデアに基づく
B. D. Brabandere, et al.. Dynamic filter networks. NIPS2016.
評価
• クラス分類
点群: Sydney Urban Objects Dataset, ModelNet10, ModelNet40, MNIST
グラフ: NCI1, NCL109, ENZYMES, D&D
71. ECCによる点群のクラス分類
• Data Augmentation
• ランダムな回転
• ランダムなスケーリング
• ランダムな点の除去
• 処理の流れ
1. 点をノードとし,一定半径内の近傍点をエッジで結ぶ
2. プーリングのための空間解像度が粗いグラフを
VoxelGridによるダウンサンプリングで生成
3. グローバルプーリングでグラフ全体の情報を統合
15. ECC
[M. Simonovsky+, NIPS2017, arXiv:1704.02901, 2017-04-10] 担当: 千葉
73. 16. PointNet++
[C. R. Qi+, NIPS2017, arXiv:1706.02413, 2017-06-07] 担当: 千葉
PointNetをベースに,局所的な特徴を捉えられる
ネットワークPointNet++の提案
• 元々のPointNetは局所構造を捉えられない
• PointNetを階層的に適用する構造
評価
• クラス分類
MNIST, ModelNet40, SHREC15
• セグメンテーション
ScanNet
74. 16. PointNet++
[C. R. Qi+, NIPS2017, arXiv:1706.02413, 2017-06-07] 担当: 千葉
階層化する上で生じる問題とアプローチ
• どうやって点群を分割するか
• 半径を変えつつ球で領域を切り出す
• Farthest Point Sampling (FPS)で点数が一定になるようサンプリング
• どうやって局所特徴を得るか
• 局所点群にPointNetを使う
PointNetを階層的に適用したネットワーク構造
• Sampling Layer: 重心位置を選択
• Grouping Layer: 近傍点群を抽出
• PointNet Layer: 局所特徴量を計算
75. 16. PointNet++
[C. R. Qi+, NIPS2017, arXiv:1706.02413, 2017-06-07] 担当: 千葉
ネットワーク構造
• Sampling Layer: 重心位置を選択
• Grouping Layer: 近傍点群を抽出
• PointNet Layer: 局所特徴量を計算
76. 16. PointNet++
[C. R. Qi+, NIPS2017, arXiv:1706.02413, 2017-06-07] 担当: 千葉
PointNet Layer
• 点群密度の変化に対応したPointNet Layer: PointNet++
• 提案するPointNet Leyerの構造
• Multi-scale Grouping (MSG):
ランダムにドロップアウトして複数の密度に対応
• Multi-resolution Grouping (MRG):
下層にあたるレイヤの特徴量も直接利用することで複数の密度に対応
MSG MRG
77. 16. PointNet++
[C. R. Qi+, NIPS2017, arXiv:1706.02413, 2017-06-07] 担当: 千葉
セグメンテーション用のネットワーク:
抽出した特徴量を元の点に伝搬
• まず距離ベースで補完
• 補完した特徴量と,同解像度で抽出していた特徴量を
つなげてUnit PointNetに渡し,元の点群での特徴量を
得る
78. 17. Pointwise CNN
[B.-S. Hua+, CVPR2018, arXiv:1712.05245, 2017-12-14] 担当: 千葉
点群上でのPointwise Convolutionを提案
• 点群の各点に適用する畳み込み演算
• 近傍点探索が一度で良いため計算が速い
• セグメンテーションとクラス分類ができた
評価
• クラス分類
ModelNet40, ObjectNN
• セグメンテーション
S3DIS, SceneNN+NYUv2
79. 17. Pointwise CNN
[B.-S. Hua+, CVPR2018, arXiv:1712.05245, 2017-12-14] 担当: 千葉
点数による正規化
カーネル内のボクセルごとに
特徴量を点の数で正規化してから
畳み込み
第ℓ層での
第𝑖𝑖点の出力
カーネル内
ボクセルの
インデックス
カーネルでの
第𝑘𝑘ボクセルの
重み 点𝑝𝑝𝑖𝑖からみた
第𝑘𝑘ボクセルの
点の集合
Ω𝑖𝑖 𝑘𝑘 内の各点 第ℓ-1層での
第𝑗𝑗点の出力
80. 17. Pointwise CNN
[B.-S. Hua+, CVPR2018, arXiv:1712.05245, 2017-12-14] 担当: 千葉
ネットワークの構造
• 各点の特徴量は座標,色,法線,前の層の出力
• SERUを使用(ReLUと比較して収束が速かったため)
Pointwise Convolution
81. 17. Pointwise CNN
[B.-S. Hua+, CVPR2018, arXiv:1712.05245, 2017-12-14] 担当: 千葉
特徴
• 点の三次元的な関係が変化しないので
近傍点探索を繰り返さなくてよい
• 逆伝搬がカーネルの設計に直接は依存しない
各サブドメインにどの点が含まれるかのみに依存
• Symmetric Functionになるよう設計しなくてよい
PointNetは順不同な入力に対応するため,Symmetric Functionを学習
Forward:
Backward:
82. 18. KCN
[Y. Shen+, CVPR2018, arXiv:1712.06760, 2018-06-18] 担当: 千葉
局所形状特徴を学習するための
Kernel Correlation Layerを提案
• Kernel Correlation Layerを用いたネットワーク:
Kernel Correlation Network (KCN)
• Point-set kernelを定義
• 近傍点での特徴量の集約
近傍点グラフ(k Nearest Neighbor Graph)を構築し,
グラフ上でプーリング
評価
• クラス分類
MNIST, ModelNet10, ModelNet40
• セグメンテーション
ShapeNet-Part
83. 18. KCN
[Y. Shen+, CVPR2018, arXiv:1712.06760, 2018-06-18] 担当: 千葉
Kernel Correlation Layer
• Leave-one-out Kernel Correlation (LOO-KC) のアイデア
Y. Tsin, T. Kanade. A correlation-based approach to robust point set
registration. ECCV2004
• Kernelとしてベクトルの集合を利用 (Point-set Kernel)
カーネル中心との相対位置ベクトルと,Point-set Kernelに含まれる
各ベクトルとの差をガウシアンカーネルに入力
ガウシアンカーネルの出力の総和をPoint-set Kernelの出力とする
Graph Max Pooling (GM)
• 近傍グラフの生成は一度のみ,あとは使い回す
• グラフ上の近傍でMaxをとることでプーリング
84. 18. KCN
[Y. Shen+, CVPR2018, arXiv:1712.06760, 2018-06-18] 担当: 千葉
手で設計したカーネル(左)と
学習されたカーネルの例(右)
赤色: 相関のある隣接2点
85. 18. KCN
[Y. Shen+, CVPR2018, arXiv:1712.06760, 2018-06-18] 担当: 千葉
ネットワーク構造
左: クラス分類,右: セグメンテーション
Point-set Kernel Correlationと
Graph Max Pooling
Point-set Kernel Correlationと
Graph Max Pooling
グラフは一度のみ生成し使い回す
86. 19. PointCNN
[Y. Li+, CVPR2018, arXiv:1801.07791, 2018-01-13] 担当: 千葉
点群上でに畳み込みを行うX-Convを提案
• X-Convを組み込んだネットワーク: PointCNN
• CNNを点群に一般化したので,PointCNNを命名
• 畳み込む前に各点の特徴量を配置しなおす操作
X-transformationを行う
評価
• クラス分類
ModelNet40, MNIST, CIFAR10 , TU-Berlin, QuickDraw
• セグメンテーション
ShapeNet-Part, S3DIS, ScanNet
87. 19. PointCNN
[Y. Li+, CVPR2018, arXiv:1801.07791, 2018-01-13] 担当: 千葉
X-Conv
• 点群から代表点群を選択,近傍の点の情報を畳み込み
集約していく
• クラス分類では代表点をランダムに選択
• セグメンテーションではFarthest Point Samplingを用いて
代表点を選択
二次元でのConvolution (+ Pooling) との比較
二次元画像でのCNNの例
X-Conv
88. 19. PointCNN
[Y. Li+, CVPR2018, arXiv:1801.07791, 2018-01-13] 担当: 千葉
X-Convの詳細
1. 入力した各点での特徴量を計算
• 前の層から引き継いだ特徴量と,畳み込みの中心座標からの相対位置を
MLPで変換した特徴量の二つを結合
2. 畳み込みのために点を配置しなおす操作:
X-transformation
• 「理想的な畳み込まれる点」における特徴量を計算したい
• 入力点の特徴量から線形補完するための重みとなる行列を学習
• 上記の重み行列を用いて,入力点の特徴量の重み付け和で
「理想的な畳み込まれる点」における特徴量を計算
(イメージとしては特徴量を補完しつつ再配置)
3. X-transformationの出力をカーネルと畳み込んで
出力特徴量とする
• このカーネル自体も学習
89. 19. PointCNN
[Y. Li+, CVPR2018, arXiv:1801.07791, 2018-01-13] 担当: 千葉
ネットワークの構造
• 基本的にX-Convを積む
• セグメンテーションでは集約前の点の位置を引き継ぐ
クラス分類 セグメンテーション
: X-Conv
90. 20. DG-CNN
[Y. Wang+, arXiv:1801.07829, 2018-01-24] 担当: 千葉
EdgeConvと,それを用いたDG-CNNを提案
• 点群上で微分可能な畳み込みを行う
• 既存の枠組み(PointNetなど)に乗せられる
• 点群を順不同な入力のまま扱える
• PointNet同様,Spatial Transformer Componentも使用
評価
• クラス分類
ModelNet40
• セグメンテーション
ShapeNet-Part, S3DIS
• 法線推定
ModelNet40
91. 20. DG-CNN
[Y. Wang+, arXiv:1801.07829, 2018-01-24] 担当: 千葉
グラフを各層の出力から逐次生成する
→ “Dynamic” Graph CNN
kNNで近傍点を結ぶ.このとき三次元空間だけではなく,
各層の出力特徴量空間での距離を使う
グラフ上での情報の集約方法: EdgeConv
1. エッジごとに特徴量を計算
• 本論文では
①中心ノードの特徴量と
②周辺ノードと中心ノードの差(局所特徴)
の二つを結合し,特徴量とした
2. ノードごとにエッジの特徴量を集約(Sum, Maxなど)
95. 21. Flex-convolution
[F. Groh+, ACCV2018, arXiv:1803.07289, 2018-03-20] 担当: 千葉
点群を入力できる畳み込み Flex-convolution の提案
• 畳み込み層の自然な一般化
• 効率の良いGPU実装
• 前処理など無しで700万点を一気に処理できる
• 点群のサブサンプリングにInverse Density Importance
Sub-Sampling (IDISS) を用いる
評価
• クラス分類
ModelNet40
• セグメンテーション
ShapeNet-Part, 2D-3D-S
96. 21. Flex-convolution
[F. Groh+, ACCV2018, arXiv:1803.07289, 2018-03-20] 担当: 千葉
Flex-convolution
• 特徴
• 畳み込む点と畳み込まれる点の相対座標に応じて重みを付けて畳み込み
• このときの重みを,活性化関数を用いずに単にアフィン変換とする
• 処理の流れ
1. 畳み込む点周りで近傍点を選択
2. 相対位置をアフィン変換してカーネルの各要素に割り当てる
3. カーネルで畳み込み
二次元画像での畳み込み 三次元点群でのFlex-convolution
中心点との相対位置によって重みを変える
97. 21. Flex-convolution
[F. Groh+, ACCV2018, arXiv:1803.07289, 2018-03-20] 担当: 千葉
Inverse Density Importance Sub-Sampling (IDISS)
• 粗い点群にダウンサンプリングする手法
• 特徴
• ランダムサンプリングよりも空間的に一様に分布
• Farthest Point Sampling (FPS) は点数の二乗に比例する計算量
• IDISSは点数に比例する計算量
• 処理の流れ
1. Inverse Densityとして
近傍点までの距離の和を取る
2. Inverse Densityが大きい点から
順に選択
元の点群ランダムIDISS
99. 22. PCNN
[M. Atzmon+, SIGGRAPH2018, arXiv:1803.10091, 2018-03-27] 担当: 千葉
点群をCNNで処理するためのネットワーク
Point Convolutional Neural Networks (PCNN) の提案
点群表現とRBFカーネル表現の相互変換を行い,
RBFカーネル表現上で畳み込みを行う
評価
• クラス分類
ModelNet10, ModelNet40
• セグメンテーション
ShapeNet-Part
• 法線推定
ModelNet40
100. 22. PCNN
[M. Atzmon+, SIGGRAPH2018, arXiv:1803.10091, 2018-03-27] 担当: 千葉
RBFカーネル表現で畳み込み
• 入力全点のRBFカーネルで表すと重すぎるため,
近傍点でのRBFカーネルの重ね合わせで近似
• 任意の点で値を持つため,サンプリング点が
変更しやすい
→ アップサンプリングやプーリングが容易
点群表現RBFカーネル表現 RBFカーネル表現点群表現
Convolution RestrictionExtension
101. 22. PCNN
[M. Atzmon+, SIGGRAPH2018, arXiv:1803.10091, 2018-03-27] 担当: 千葉
処理の流れ
1. Extension:
入力点群を,畳み込み中心の近傍点でのRBFカーネルの
重ね合わせに変換
2. Convolution:
畳み込まれる点が体積空間でのRBFカーネルの重ね合わせで表されるため,
畳み込み演算がRBFカーネルの重み付け和に置き換えられる
3. Restriction:
点群に変換,サンプリングする各点に特徴量を割り振る
点群表現RBFカーネル表現 RBFカーネル表現点群表現
Convolution RestrictionExtension
102. 22. PCNN
[M. Atzmon+, SIGGRAPH2018, arXiv:1803.10091, 2018-03-27] 担当: 千葉
ネットワークの構造
• 一般的な構造
• セグメンテーションにSkip Layer Connection
クラス分類
セグメンテーション
103. 23. SpiderCNN
[Y. Xu+, ECCV2018, arXiv:1803.11527, 2018-03-30] 担当: 千葉
点群に適用できる畳み込み演算SpiderConvの提案
• SpiderConvを用いたネットワーク: SpiderCNN
• 畳み込みのWeightを相対位置から推定する
• Parametric Continuous Convolutionsと同じアイデア
• Parametric Continuous ConvolutionsではMLPを使用
• SpiderConvはパラメータ数を減らすため,異なるモデルを用いる
評価
• クラス分類
ModelNet40, SHREC15
• セグメンテーション
ShapeNet-Part
104. 23. SpiderCNN
[Y. Xu+, ECCV2018, arXiv:1803.11527, 2018-03-30] 担当: 千葉
SpyderConv
• 相対関係を入力すると
重みを得られるような
関数𝑔𝑔𝑤𝑤 𝑥𝑥, 𝑦𝑦, 𝑧𝑧 を学習し
カーネルとする
• 𝑔𝑔𝑤𝑤 𝑥𝑥, 𝑦𝑦, 𝑧𝑧 は次の関数としてパラメータを学習
𝑔𝑔𝑤𝑤 𝑥𝑥, 𝑦𝑦, 𝑧𝑧 :
相対関係→重み
の関数を学習
一定半径の球の内部にあるかの指示関数
連続関数に対する𝑥𝑥, 𝑦𝑦, 𝑧𝑧の3次までのテイラー展開
105. 23. SpiderCNN
[Y. Xu+, ECCV2018, arXiv:1803.11527, 2018-03-30] 担当: 千葉
ネットワークの構造
(クラス分類,3-layer SpiderCNN)
• 特徴量の次元を上げつつSpiderConvを積む
• Max PoolingではなくTop-k Poolingで統合
k=1のとき,Max Poolingに一致
SpiderConv Top-k Pooling
106. 23. SpiderCNN
[Y. Xu+, ECCV2018, arXiv:1803.11527, 2018-03-30] 担当: 千葉
ネットワークの構造
(クラス分類,3-layer SpiderCNN + PointNet)
SpiderCNNが局所特徴,PointNetが大域特徴を捉える
ことを期待
SpiderConv PointNet Top-2 Pooling
107. 23. SpiderCNN
[Y. Xu+, ECCV2018, arXiv:1803.11527, 2018-03-30] 担当: 千葉
ネットワークの構造
(セグメンテーション,4-layer SpiderCNN)
• Top-2 Poolingで大域特徴を抽出
• 各点の特徴量と結合してMLPに入力し,
点ごとのクラス分類によりセグメンテーション
SpiderConv 大域特徴と点ごとの特徴量の結合
108. 24. Parametric Continuous Convolutions
[S. Wang+, CVPR2018, 2018-06-18] 担当: 千葉
グリッドではないデータをCNNで操作するための
Parametric Continuous Convolutionsを提案
• アイデア: Parametrized Kernel Function
• 畳み込む点とカーネルの関係がベクトルで得られる
データ構造であれば適用可能
評価
• セグメンテーション
S3DIS, Driving Scenes (独自,学習後モデルをKITTIでも評価)
109. 24. Parametric Continuous Convolutions
[S. Wang+, CVPR2018, 2018-06-18] 担当: 千葉
Parametric Continuous Convolutions
• 畳み込みのカーネルを
MLPで学習させる
データ点とカーネルの相対関係を
入力すると,その点での重みを
出力するよう学習する
• 局所的なカーネルになるよう
制約を加える
• 一般的なCNNではKernel Sizeが
決まっていることと同様の制約
• 遠い点を見ないよう,kNNや
Radiusで畳み込む領域を制約
Grid Convolution Continuous
Convolution
𝑔𝑔 ⋅ : 相対関係→重み
の関数を学習
110. 24. Parametric Continuous Convolutions
[S. Wang+, CVPR2018, 2018-06-18] 担当: 千葉
Parametric Continuous Convolutions Layer
対象領域+畳み込み対象の
領域の点群を抽出
各点での
カーネルを
求める
求めたカーネルで入力点群の特徴量を畳み込み
111. 24. Parametric Continuous Convolutions
[S. Wang+, CVPR2018, 2018-06-18] 担当: 千葉
ネットワークの構造
Parametric Continuous Convolutions Layerを積む
Parametric Continuous Convolutions Layer
112. 25. Tangent Convolution
[M. Tatarchenko+, CVPR2018, arXiv:1807.02443, 2018-07-06] 担当: 千葉
表面形状に着目したTangent Convolutionと,
それを用いたU-typeネットワークの提案
• セマンティックセグメンテーションに利用可能
• 大規模な実世界データ(数百万点規模)に適用できる
評価
• セグメンテーション
Semantic3D, S3DIS, ScanNet
113. 25. Tangent Convolution
[M. Tatarchenko+, CVPR2018, arXiv:1807.02443, 2018-07-06] 担当: 千葉
Tangent Convolution
• 各点の接平面上で近傍点を畳み込む
• 処理の流れ
1. 一点半径内の点の分散共分散行列の
第3固有ベクトルで接平面法線の推定
2. 近傍の点を接平面上に投影
3. 接平面上の画像を補完
4. 畳み込み
三次元点の投影 Full Gaussian MixtureNearest Neighbor Top-3 Neighbors
Gaussian Mixture
114. 25. Tangent Convolution
[M. Tatarchenko+, CVPR2018, arXiv:1807.02443, 2018-07-06] 担当: 千葉
Tangent Convolutionの効率的な計算
以下を事前計算
• 接平面上の各点𝐮𝐮の入力点群での第𝑖𝑖近傍点g𝑖𝑖 𝐮𝐮
• 接平面上の各点𝐮𝐮の第𝑖𝑖近傍点に対する距離に応じた重み
𝐩𝐩における出力特徴量
𝐩𝐩の接平面上の点 畳み込みカーネル 入力点群中の𝐮𝐮の
第𝑖𝑖近傍点
→事前計算
g 𝐮𝐮 の入力特徴量
カーネルに含まれる
第k近傍まで考える
第𝑖𝑖近傍点に対する
距離に応じた重み
→事前計算
116. 26. SCN
[S. Xie+, CVPR2018, 2018-06-18] 担当: 千葉
Shape Context Descriptorを模した構造を持つ
ネットワークShapeContextNet (SCN)の提案
• Shape Contect Descriptor:
ディープラーニング以前に提案された三次元特徴量
S. Belongie, et al.. Shape matching and object recognition using shape
contexts. TPAMI, 2002.
• SCNの構造の一部をアテンションに置き換え学習可能
にしたA-SCNも提案
評価
• クラス分類
MNIST, ModelNet40
• セグメンテーション
ShapeNet-Part, S3DIS
117. 26. SCN
[S. Xie+, CVPR2018, 2018-06-18] 担当: 千葉
Shape Context Block
• Shape Context Descriptorを
模したネットワーク
• 処理の流れ
1. Selection:
周辺の点がどのビンに入るかを選択
対数極座標系(中心からの距離を対数でとる)を利用
2. Aggregation:
ビンごとの点数を数えヒストグラムを得る
3. Transformation:
得られたヒストグラムをMLPで非線形変換
Attentional SCN: A-SCN
SelectionとAggregationをAttentionで置き換え
118. 26. SCN
[S. Xie+, CVPR2018, 2018-06-18] 担当: 千葉
SCNとA-SCNの比較
A-SCNではビンの設計とビンの集計のしかたが学習される
SCN A-SCN
119. 26. SCN
[S. Xie+, CVPR2018, 2018-06-18] 担当: 千葉
ネットワーク構造
Shape Context Blockを積む
Shape Context Block
121. 27. SEGCloud
[L. P. Tchapmi+, 3DV2017, arXiv:1710.07563, 2017-10-29] 担当: 千葉
三次元点群をセグメンテーションするネットワーク
SEGCloudを提案
3D-FCNN, TI, CRFを組み合わせ,End-to-Endで学習
• 3D-FCNN: ボクセルでセグメンテーション
• TI (Trilinear Interpolation): ボクセル出力から各点を補完
• CRF: 最終的な各点のセグメンテーション
評価
• セグメンテーション
NYU V2, S3DIS, KITTI, SEnabtuc3D.net
122. 27. SEGCloud
[L. P. Tchapmi+, 3DV2017, arXiv:1710.07563, 2017-10-29] 担当: 千葉
特徴
3D-FCNN: Fully Convolution NNの3Dボクセル版
任意のサイズのボクセルグリッドを扱える
点群上でCRF
• ボクセル上でCRFをすると,
高解像度では莫大なメモリを
消費してしまう
→元の三次元点群でCRF
• 空間的に近い8グリッドの出力で
距離に応じた線形補間(TI)
123. 27. SEGCloud
[L. P. Tchapmi+, 3DV2017, arXiv:1710.07563, 2017-10-29] 担当: 千葉
三次元点群でのCRF
• CRFが微分可能な設計
→ End-to-Endのトレーニングが可能になった
S. Zheng, et al.. Conditional Random Fields as Recurrent Neural Networks.
ICCV2015.
• エネルギー関数=(3D-FCNN出力)+(平滑化)
• 平滑化は全ポイントペアについて考慮
• 高速な近似推論ができる
P. Krähenbühl, V. Koltun. Efficient inference in fully connected crfs with
gaussian edge potentials. NIPS2011.
• ラベル間の独立性を仮定した近似
• この近似推論はRNNとして学習できる
124. 27. SEGCloud
[L. P. Tchapmi+, 3DV2017, arXiv:1710.07563, 2017-10-29] 担当: 千葉
ネットワークの構造
1. 点群をボクセル化
2. ボクセルごとに確率分布を生成
3. Trilinear Interpolationで各点の確率分布を補完
4. 点群と上記確率分布を入力しCRFでセグメンテーション
125. 27. SEGCloud
[L. P. Tchapmi+, 3DV2017, arXiv:1710.07563, 2017-10-29] 担当: 千葉
ネットワークの構造
1. 点群をボクセル化
2. ボクセルごとに確率分布を生成
3. Trilinear Interpolationで各点の確率分布を補完
4. 点群と上記確率分布を入力しCRFでセグメンテーション
126. 28. FoldingNet
[Y. Yang+, CVPR2018, arXiv:1712.07262, 2017-12-19] 担当: 千葉
「折りたたみ」をデコーダーとして利用した,
End-to-EndなDeep Autoencoder: FoldingNetを提案
• アイデア: 点群によって物体表面形状が記述されている
→本質的には2D
• エンコーダー: 近傍グラフ構造によって局所特徴量を抽出
• デコーダー: Folding-based Decoderによって,
二次元グリッドを三次元の表面なるように折りたたむ
•評価
• オートエンコーダー+クラス分類
ShapeNetで学習し,ModelNetでの分類精度を実験
(エンコーダーの出力と線形SVMで分類)
127. 28. FoldingNet
[Y. Yang+, CVPR2018, arXiv:1712.07262, 2017-12-19] 担当: 千葉
特徴
• エンコーダー
• 近傍点の分散共分散行列を入力
• kNNに近傍グラフでMax Pooling
• デコーダー: 2回のFolding Operation
• 折りたたみは可視化・解釈しやすい
• 切断も学習できる→トポロジーも変えられる
• グリッドの各点座標とエンコーダー出力を入力,
折りたたみ後の座標を返すよう学習
• 再構成誤差: Extended Chamfer Distanceで測る
• 入力点群と再構成点群の各点が,相互に最近傍点との
距離が小さくなるように
130. 29. SPLATNet
[H. Su+, CVPR2018, arXiv:1802.08275, 2018-02-22] 担当: 千葉
三次元点群(+二次元画像)を扱えるネットワーク
SPLATNetを提案
• Bilateral Convolutional Layer (BCL) の導入
• ハッシュテーブルによる効率の良い計算
評価
• セグメンテーション
RueMonge2014, ShapeNet-Part
皆川さんが公開されている資料が非常に分かりやすい
https://www.slideshare.net/takmin/cvpr2018pointcloudcnnsplatnet
131. 29. SPLATNet
[H. Su+, CVPR2018, arXiv:1802.08275, 2018-02-22] 担当: 千葉
Bilateral Convolutional Layer (BCL)
• バイラテラルフィルタを学習可能にしたもの
• V. Jampani et al.. Learning sparse high dimensional filters: Image filtering,
dense CRFs and bilateral neural networks. CVPR2016.
• 処理の流れ
• Splat: 入力信号を𝑑𝑑𝑙𝑙次元空間の格子点に補完して投影
• Convolve: 𝑑𝑑𝑙𝑙次元空間で畳み込み
• Slice: 格子点から特徴量を補完して出力
132. 29. SPLATNet
[H. Su+, CVPR2018, arXiv:1802.08275, 2018-02-22] 担当: 千葉
2Dと3Dを統合して処理: SPLATNet2D−3D
• 画像用のCNNはDeepLabを使用,
PASCAL VOC Segmentationでプレトレーニング
• 処理の流れ
1. Convolveを除いたBCLで2D→3Dのプロジェクション
2. 3D点群を処理するSPLATNetからの出力と統合,点ごとに畳み込み
3. BCLで3D→2Dにバックプロジェクション
4. 2D画像上でのセグメンテーションを出力
2D→3D 3D→2D
133. 29. SPLATNet
[H. Su+, CVPR2018, arXiv:1802.08275, 2018-02-22] 担当: 千葉
ネットワーク構成
BCLのReceptive Fieldを段階的に大きくする
段階的にReceptive Fieldを変えたBCL
134. 30. URSA
[M. B. Skouson, arXiv:1808.04848, 2018-08-14] 担当: 千葉
点群を入力できるURSA Layerの提案
• Constellation Neural Network Layer (URSA layer)
• 入力点群を星 (Stars) に見立てて,
星座 (Constellation) を学習
評価
• クラス分類
ModelNet40, MNIST
135. 30. URSA
[M. B. Skouson, arXiv:1808.04848, 2018-08-14] 担当: 千葉
URSA Layer
• 星座 (Constellation) の各点が出力特徴量の一要素を担当
• 星座 (Constellation) 中の一点に対し,入力点群の
各点との関係から特徴量を計算
• 例)最も近い入力点群中の点との距離
• 例)入力点群中の各点との距離をガウスカーネルで変換したものの総和
• 例)入力点群中の各点との距離を指数関数で変換したものの総和
• 星座 (Constellation) の座標を学習
136. 30. URSA
[M. B. Skouson, arXiv:1808.04848, 2018-08-14] 担当: 千葉
ネットワーク構造
URSA Layer以外はほぼPointNetのまま
URSA Layer
137. 30. URSA
[M. B. Skouson, arXiv:1808.04848, 2018-08-14] 担当: 千葉
学習された星座 (Constellation)
初期値(ランダム) 10 epochs 100 epochs
200 epochs 300 epochs 500 epochs
138. 31. Point Cloud VAE-GAN
[C. Kingkan+, ICPR2018, 2018-08-20] 担当: 戸田
点群からメッシュを作成するネットワークの提案
• VAEとGANを利用
• SDFで面までの距離を表現
• 全体の形状と局所的な形状の両方を再現できる
評価
• メッシュ生成
ModelNetのうち6のオブジェクト
139. 31. Point Cloud VAE-GAN
[C. Kingkan+, ICPR2018, 2018-08-20] 担当: 戸田
Signed Distance Function (SDF)
• メッシュ面からの距離を表す
• メッシュの外側は正、内側は負
SDF
メッシュから遠い メッシュから近い
140. 31. Point Cloud VAE-GAN
[C. Kingkan+, ICPR2018, 2018-08-20] 担当: 戸田
ネットワーク構成
• Encoder: 点群を潜在変数に変換する
• Generators: 潜在変数をSDFに変換する
• Discriminator: Generatorの出力かGrand truthか識別
VAE
GAN
141. 31. Point Cloud VAE-GAN
[C. Kingkan+, ICPR2018, 2018-08-20] 担当: 戸田
Encoder
• 局所形状の情報をもつ潜在変数(Zloc)以外はPointNetと同じ
• MLPとFC層を追加
Generator
• deconv層(kernel: 4×4×4, stride: 2)
• Local Generatorの出力をGrobal Generatorに加えることで
全体と局所の情報を同時に持つことができる
142. 31. Point Cloud VAE-GAN
[C. Kingkan+, ICPR2018, 2018-08-20] 担当: 戸田
グローバル&ローカル特徴
両方が利用可能
なめらかなモデルが作れる
143. 32. Fully Convolutional Point Network
[D. Rethage+, ECCV2018, arXiv:1808.06840, 2018-08-21] 担当: 千葉
PointNetとボクセルCNNのハイブリットで点群を
処理するFully-Convolutional Point Networkを提案
• PointNetを局所点群の特徴量記述子として利用
• 20万点規模の点群を一度に処理できる
三次元空間(ScanNet)に対してキャプションを
付けたデータセットを作成
評価
• セグメンテーション
ScanNet, ShapeNet-Part
• キャプション生成
SpanNetの一部+独自ラベリングのデータセット(公開済み)
144. 32. Fully Convolutional Point Network
[D. Rethage+, ECCV2018, arXiv:1808.06840, 2018-08-21] 担当: 千葉
Fully-Convolutional Point Network
点数によらず処理できる点群畳み込みネットワーク
• Abstraction Layers
• 第一層は一定の半径で点群を抽出し,PointNetで特徴量を出力
• 第二層以降は2x2x2, Stride=2の畳み込みで特徴量を出力
• Feature Learners
• ボクセルごと(1x1x1)と3x3x3の畳み込みで,特徴量を出力
• Weighted Average Pooling
• 半径1メートル内のボクセルの特徴量を,距離に応じた重み付け和で
Pooling
145. 32. Fully Convolutional Point Network
[D. Rethage+, ECCV2018, arXiv:1808.06840, 2018-08-21] 担当: 千葉
ネットワークの構造
三段階の空間解像度で処理,Skip Connectionも使用
Weighted Average Pooling
ボクセル内の点群を
PointNetで処理
146. 33. PPF-FoldingNet
[H. Deng+, ECCV2018, 2018-06-30] 担当: 戸田
PPFを入力にすることで回転不変なネットワーク
• PPFNetとは異なりPoint Pair Featureのみを入力とする
• PPFNetは点の位置、法線ベクトルも入力としている
出力された特徴で点群の位置合わせ
評価
• 点群位置合わせ
3DMatch Benchmark Dataset
147. 33. PPF-FoldingNet
[H. Deng+, ECCV2018, 2018-06-30] 担当: 戸田
ネットワーク構成
Encoder: Point Netに類似したネットワーク
Decoder: FoldingNetに類似したネットワーク
4D PPF
(FoldingNetは
3D Point Cloud)
149. 34. PCPNet
[P. Guerrero+, Eurographics2018, arXiv:1710.04954, 2017-10-13] 担当: 千葉
局所点群から法線と曲率を推定するPCPNetの提案
• ノイズの多い生の点群に適用できる
• 各点の近傍を複数のスケールでサンプリング
評価
• 法線推定
オリジナルのデータセット
(いくつかのデータセット
から選んで構成?)
法線・曲率の推定結果の例
152. 35. Frustum PointNet
[C. R. Qi+, CVPR2018, arXiv:1711.08488, 2017-11-22] 担当: 千葉
三次元点群と二次元画像を入力とする
3D物体検出ネットワークFrustum PointNetを提案
• 二次元画像で物体検出して三次元点群にマップ
• 三次元点群上でバウンディングボックスを検出
• オクルージョンや密度変化にロバスト
評価
• 物体検出
KITTI, SUN-RGBD
153. 35. Frustum PointNet
[C. R. Qi+, CVPR2018, arXiv:1711.08488, 2017-11-22] 担当: 千葉
Frustum PointNet
• 二次元画像で領域検出
• 対応する三次元点群上でAmodal 3D Box
(観測されていない点も含めた物体のバウンディング
ボックス)を推定
• 境域についてのロスは各コーナーの距離の和を使用
154. 35. Frustum PointNet
[C. R. Qi+, CVPR2018, arXiv:1711.08488, 2017-11-22] 担当: 千葉
Frustum PointNet
処理の流れ
1. 画像からFPN (Feature Pyramid Networks)で物体検出
2. 三次元空間で検出された物体が中心となるよう座標系を変換
3. PointNetで各点が物体に属するか判定
このとき画像から検出された物体のクラスもOne-hot Vectorで入力
4. T-Net (Spatial Transformer Network) で相対位置を補正
5. PointNetでバウンディングボックスを推定
155. 35. Frustum PointNet
[C. R. Qi+, CVPR2018, arXiv:1711.08488, 2017-11-22] 担当: 千葉
ネットワークの構造 (v1)
PointNetをベースに構築
3D Instance Segmentation PointNet(物体に属するか)
Amodal 3D Box Estimation PointNet
(バウンディングボックス)
T-Net
(相対位置の補正)
156. 35. Frustum PointNet
[C. R. Qi+, CVPR2018, arXiv:1711.08488, 2017-11-22] 担当: 千葉
ネットワークの構造 (v2)
T-Netはv1と共通,PointNet++をベースに構築
3D Instance Segmentation PointNet(物体に属するか)
Amodal 3D Box Estimation PointNet(バウンディングボックス)
157. 36. SGPN
[W. Wang+, CVPR2018, arXiv:1711.08588, 2017-11-23] 担当: 千葉
点群のインスタンスセグメンテーションのための
ネットワーク Similarity Group Proposal Network
(SGPN) を提案
• インスタンスとセマンティッククラスを推定
• 画像上での2DCNNと統合して,パフォーマンスの
向上が可能
評価
• インスタンス・セマンティックセグメンテーション
S3DIS, NYUV2, ShapeNet
158. 36. SGPN
[W. Wang+, CVPR2018, arXiv:1711.08588, 2017-11-23] 担当: 千葉
Similarity Group Proposal Network (SGPN)
• PointNet/PointNet++で特徴量を計算
• 得られた特徴量をさらにそれぞれ別のPointNetで変換し,
以下を出力
• Similarity Matrix
• 点群中の2点が同じインスタンスに属しているかを推定
• 各点を表す行ベクトルの差をノルムで評価
• Confidence Map
• 点ごとにSimilarityの推定がどの程度信頼できるかを推定
• Segmentation Map
• 点ごとのセマンティッククラスを推定
• 各クラスの出現頻度に応じたMedian Frequency Balancingを使用
159. 36. SGPN
[W. Wang+, CVPR2018, arXiv:1711.08588, 2017-11-23] 担当: 千葉
Similarity Matrixに対するロス
インスタンスとセマンティッククラスを考慮し,
Double-Hinge Lossで評価
同じインスタンス
違うインスタンスで
同じセマンティッククラス
違うインスタンスで
違うセマンティッククラス
すべての2点の組について足し合わせ
160. 36. SGPN
[W. Wang+, CVPR2018, arXiv:1711.08588, 2017-11-23] 担当: 千葉
インスタンスの統合 (Group Merging)
• 出力するインスタンスをプーリングし,重複検出を防ぐ
• 処理の流れ
1. Confidence Mapからの予測信頼度が閾値で以下の点を除く
2. Non-Maximum Suppressionを適用して統合
3. 複数のインスタンスに割り当てられてしまった点は
ランダムに振り分ける
画像を入力する2DCNNとの融合
• 点群とアライメントされた
画像を使用
• 点ごとの特徴量に2DCNNで
抽出された特徴量を結合
161. 36. SGPN
[W. Wang+, CVPR2018, arXiv:1711.08588, 2017-11-23] 担当: 千葉
ネットワークの構造
PointNet/PointNet++で
点ごとの特徴量と
グローバル特徴量を計算
出力(Similarity, Confidence,
Semantic Label)に応じて
もう一度PointNetで変換
162. 37. PU-Net
[L. Yu+, CVPR2018, arXiv:1801.06761, 2018-01-21] 担当: 千葉
点群をアップサンプリングするネットワーク
PU-Netを提案
• 入力,出力ともに点群だが,それぞれの点数が異なる
• アップサンプリングに適したロスを設計
評価
• アップサンプリング
VISIONAIR repositoryで学習
SHREC15,ModelNet40,ShapeNetでテスト
163. 37. PU-Net
[L. Yu+, CVPR2018, arXiv:1801.06761, 2018-01-21] 担当: 千葉
処理の流れ
1. Patch Extraction
2. Point Feature Embedding
3. Feature Expansion
4. Coordinate Reconstruction
164. 37. PU-Net
[L. Yu+, CVPR2018, arXiv:1801.06761, 2018-01-21] 担当: 千葉
処理の流れの詳細
1. Patch Extraction
指定半径で部分点群を切り出し,ポアソンディスクサンプリングに
従ってランダムに点を固定点数になるよう選択
2. Point Feature Embedding
着目半径を変えてそれぞれで特徴抽出を行う
選択されなかった点については近傍点から特徴量を補完する
(PointNet++と同様)
3. Feature Expansion
入力各点が𝑟𝑟個の点を出力(合計点数は𝑟𝑟倍になる)
4. Coordinate Reconstruction
点ごとに畳み込みを行い点の三次元座標を出力
165. 37. PU-Net
[L. Yu+, CVPR2018, arXiv:1801.06761, 2018-01-21] 担当: 千葉
ロスの設計
Reconstruction Loss:
入出力点群間のEarth Mover’s Distance
Repulsion Loss:
入力点から少しばらけるよう設計
近傍点と近づき
すぎないようにする
離れたら
ペナルティーを減衰
𝑖𝑖番目の点の
K近傍
パラメータの
L2正則化
166. 37. PU-Net
[L. Yu+, CVPR2018, arXiv:1801.06761, 2018-01-21] 担当: 千葉
アップサンプリングの結果
既存のネットワークをアップサンプリングに
直接適用するよりも良い結果を得られた
提案法
167. 38. Hand PointNet
[L. Ge+, CVPR2018, 2018-06-18] 担当: 千葉
手の関節位置を推定するHand PointNetの提案
• 手の三次元点群を直接入力
• PointNet++のHierarchical PointNetで推定
• 指先付近の点群を切り出し,指先位置を修正
評価
• 手の関節位置の推定
NYU, MSRA, ICVL
168. 38. Hand PointNet
[L. Ge+, CVPR2018, 2018-06-18] 担当: 千葉
OBB-based Point Cloud Normalization
• OBB: Oriented Bounding Box
• 入力点群をおおまかな形状で正規化
• 処理の流れ
1. PCAでOBBの座標軸方向を決定
2. OBBの最長辺の長さで
スケールの正規化
3. 手を覆うようバウンディング
ボックスを決定
4. OBBの重心が原点となるよう
点群を並進
169. 38. Hand PointNet
[L. Ge+, CVPR2018, 2018-06-18] 担当: 千葉
Hand Pose Regression Network
• PointNet++のように階層的にPointNetを適用
kNNで近傍点を接続,プーリングすることで段階的に点数を減らす
Fingertip Refinement Network
• 指先位置の誤差が大きい&指先位置はrefineが容易
• 処理の流れ
1. Hand Pose Regression Networkで推定された指先位置を中心に,
近傍点群を抽出
(学習時には指先位置に
ノイズを付与)
2. 点群をOBBで正規化
3. 近傍点群を入力として,
PointNetで指先位置を推定
171. 39. Point Attention Network
[C. Kingkan+, BMVC2018, 2018-09-03] 担当: 戸田
Attention module が重要な要素を学習することで
ジェスチャーの推定を精度良く実現
評価
• クラス分類
独自データセット
172. 39. Point Attention Network
[C. Kingkan+, BMVC2018, 2018-09-03] 担当: 戸田
点ごとに重要度を重み付け(Attention Module)
• “gather”で注目する点を学習する
• “scatter”で選ばれた注目点をもとの点群に戻す
• 出力は重要度のマスクとして利用できる
173. 39. Point Attention Network
[C. Kingkan+, BMVC2018, 2018-09-03] 担当: 戸田
Gather
• 各点ごと特徴量の平均値
を求め、上位K点選ぶ
• Global max-poolingで次
元削減してるとも見れる
Scatter
• “gather”で処理される前
と同じ位置に戻される
174. 39. Point Attention Network
[C. Kingkan+, BMVC2018, 2018-09-03] 担当: 戸田
ネットワーク構造
• 特徴空間にある点群にAttention Moduleの出力で
マスクすることで注目点に重み付けする
• Max-poolingで点群の順不同
175. 40. P2P Regression PointNet
[L. Ge+, ECCV2018, 2018-10-08] 担当: 千葉
手の関節位置を推定するPoint-to-Point Regression
PointNetの提案
• 三次元点それぞれで関節位置の推定を行い統合
• 基本構造はHierarchical PointNet
評価
• 手の関節位置の推定
NYU, MSRA, ICVL
176. 40. P2P Regression PointNet
[L. Ge+, ECCV2018, 2018-10-08] 担当: 千葉
Offset Fieldsの推定による手の関節位置推定
• Offset Fields: 各三次元点における,各関節の距離と方向
• 距離の離れた関節は推定しない(0を出力)
• Offset Fieldsを直接ネットワークで推定するのは
難しいため,距離と方向に分けてそれぞれを推定
• 距離: 関節点までの近さをHeat-maps
• 方向: 関節点の方向を向いた単位ベクトル
• Hand PointNet同様,OBBによる正規化
177. 40. P2P Regression PointNet
[L. Ge+, ECCV2018, 2018-10-08] 担当: 千葉
Post-processing
• 関節位置の統合
• 各点から推定された関節位置が一点に
まとまらない場合がある(右図)
• 推定された関節位置の分散が大きい場合,
別のネットワークが代わりに関節位置を出力
PointNetの中間表現を入力とし,
直接各関節位置を出力
• 手の形状になるように制約をつける
• PCAで次元削減し,関節位置を30次元で表現
• 推定結果を30次元空間に乗るように制約
178. 40. P2P Regression PointNet
[L. Ge+, ECCV2018, 2018-10-08] 担当: 千葉
ネットワークの構造
Hierarchal PointNetを2回つなげたような構造
関節位置がうまく統合
できないときの出力
基本となる
ネットワーク
関節までの距離 関節の方向