CV勉強会@関東「CVPR2018読み会」
点群畳み込み研究まとめ+SPLATNet
2018/07/07 takmin
自己紹介
2
株式会社ビジョン&ITラボ 代表取締役
皆川 卓也(みながわ たくや)
「コンピュータビジョン勉強会@関東」主催
博士(工学)
略歴:
1999-2003年
日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ
セールス、プロジェクトマネジメント、サポート等の業務に従事
2004-2009年
コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事
2007-2010年
慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻
単位取得退学後、博士号取得(2014年)
2009年-現在
フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化)
http://visitlab.jp
本日のお話
3
 Point Cloudは非構造なデータのため、直接CNNで
処理するのが難しく、主に以下のような方法で処理
 デプス画像に変換
 Voxelで処理
 PointNet(CVPR2017)で、点群を直接畳み込む手法
が提案され、CVPR2018ではそれにインスパイアされ
たのか、多くの新しい点群処理手法が提案されてい
た。
 ここではCVPR2018で発表された、Point Cloudを
CNNで扱う手法を私が気付いた範囲でまとめた。
点群をCNNで扱う難しさ
4
 点群のデータ構造
 座標値がただ並んでいるだけなので隣接関係がわからず、畳
み込みの計算が直接できない
𝑥1, 𝑦1, 𝑧1
(𝑥2, 𝑦2, 𝑧2)
(𝑥3, 𝑦3, 𝑧3)
.
.
.
.
.
.
(𝑥 𝑁, 𝑦 𝑁, 𝑧 𝑁)
PointNet
5
 Qi, C. R., Su, H., Mo, K., & Guibas, L. J. (2017). PointNet : Deep
Learning on Point Sets for 3D Classification and Segmentation
Big Data + Deep Representation Learning. IEEE Conference on
ComputerVision and Pattern Recognition (CVPR).
 各点群の点を独立に畳み込む
 Global Max Poolingで点群全体の特徴量を取得
各点を個別
に畳み込み
アフィン変換
各点の特徴を統合
PointNet++
6
 Qi, C. R.,Yi, L., Su, H., & Guibas, L. J. (2017). PointNet++: Deep
Hierarchical Feature Learning on Point Sets in a Metric Space.
Conference on Neural Information Processing Systems (NIPS).
 PointNetを階層的に適用
 点群をクラスタ分割→PointNet→クラスタ内で統合を繰り返す
CVPR2018の点群をCNNで扱う論文
7
 ここでは点群を直接畳み込む、または畳み込むための
新しい構造化を提案した手法について概説します
CVPR2018の点群をCNNで扱う論文
8
 ここでは点群を直接畳み込む、または畳み込むための
新しい構造化を提案した手法について概説します
 点群を直接扱う手法は、だいたい以下のようなパターン
で執筆されています
CVPR2018の点群をCNNで扱う論文
9
 ここでは点群を直接畳み込む、または畳み込むための
新しい構造化を提案した手法について概説します
 点群を直接扱う手法は、だいたい以下のようなパターン
で執筆されています
 PointNetではデータの局所的な特徴が失われるという欠点
CVPR2018の点群をCNNで扱う論文
10
 ここでは点群を直接畳み込む、または畳み込むための
新しい構造化を提案した手法について概説します
 点群を直接扱う手法は、だいたい以下のようなパターン
で執筆されています
 PointNetではデータの局所的な特徴が失われるという欠点
 点群の局所的な特性が失われない手法を提案
CVPR2018の点群をCNNで扱う論文
11
 ここでは点群を直接畳み込む、または畳み込むための
新しい構造化を提案した手法について概説します
 点群を直接扱う手法は、だいたい以下のようなパターン
で執筆されています
 PointNetではデータの局所的な特徴が失われるという欠点
 点群の局所的な特性が失われない手法を提案
 実験の結果State-Of-The-Artを達成
CVPR2018の点群をCNNで扱う論文
12
 ここでは点群を直接畳み込む、または畳み込むための
新しい構造化を提案した手法について概説します
 点群を直接扱う手法は、だいたい以下のようなパターン
で執筆されています
 PointNetではデータの局所的な特徴が失われるという欠点
 点群の局所的な特性が失われない手法を提案
 実験の結果State-Of-The-Artを達成
 ここでは各研究の詳細には触れず、点群に対しどのよう
に畳み込みを実現しているかという点のみ概説
CVPR2018の点群をCNNで扱う論文
13
 ここでは点群を直接畳み込む、または畳み込むための
新しい構造化を提案した手法について概説します
 点群を直接扱う手法は、だいたい以下のようなパターン
で執筆されています
 PointNetではデータの局所的な特徴が失われるという欠点
 点群の局所的な特性が失われない手法を提案
 実験の結果State-Of-The-Artを達成
 ここでは各研究の詳細には触れず、点群に対しどのよう
に畳み込みを実現しているかという点のみ概説
 あくまで皆川が気付いた範囲なので、漏れがあるかもし
れません。
CVPR2018で紹介された点群畳み込み研究
14
1. Hua, B.-S.,Tran, M.-K., &Yeung, S.-K.“Pointwise Convolutional Neural
Networks”
2. Le,T., & Duan,Y. “PointGrid:A Deep Network for 3D Shape
Understanding”
3. Huang, Q.,Wang,W., & Neumann,“U. Recurrent Slice Networks for 3D
Segmentation of Point Clouds”
4. Li, J., Chen, B. M., & Lee, G. H.“SO-Net: Self-Organizing Network for
Point Cloud Analysis”
5. Shen,Y., Feng, C.,Yang,Y., &Tian, D.“Mining Point Cloud Local Structures
by Kernel Correlation and Graph Pooling”
6. Liu, S., Xie, S., Chen, Z., &Tu, Z.“Attentional ShapeContextNet for Point
Cloud Recognition”
7. Tatarchenko, M., Park, J., Koltun,V., & Zhou, Q. “Tangent convolutions for
dense prediction in 3D”
8. Wang, S., Suo, S., Ma,W., & Urtasun, R. “Deep Parametric Continuous
Convolutional Neural Networks”
9. Su, H., Jampani,V., Sun, D., Maji, S., Kalogerakis, E.,Yang, M.-H., & Kautz, J.
“SPLATNet: Sparse Lattice Networks for Point Cloud Processing”
1. Pointwise Convolution Neural Networks
1. 各点を中心としてカーネルを設置
2. 中心の周辺点群をブロックに分割(ex. 3x3x3)
3. 各ブロックごとに点群のFeatureの平均を算出し、カーネルを畳み
込む
2. PointGrid
 Voxelによる畳み込みの表現力を向上させたもの
 空間をVoxel分割し、その中に含まれる点の数Kを決める(例:K=
4)
 Kより大きいVoxelはKになるようにランダムに点を除去、少ない
VoxelはK回サンプリング
 これにより1つのVoxelが(x,y,z) x K の値を持つVoxelとして統一的
に扱える
3. Recurrent Slice Network (RSNet)
17
1x1
Convolution
 点群をX、Y、Z軸方向にそ
れぞれスライスし、RNNを通
すことで各スライス同士の関
係から点群の構造化された
特徴を抽出
かまぼこのようにスライスして、
その領域をMax Pooling
X Y Z
RNNで各スライス同士の関係
から特徴抽出
RNNが出力した特徴を各点にコ
ピー
1x1
Convolution
sliceで区切られたVoxel単位で同じ特徴量になる気がする
4. Self Organizing Network (SO-Net)
18
 点群をオーバーラップを許したM個のクラスタに分割し
 クラスタごとに点の座標を正規化
 点ごとに1x1畳み込み、クラスタごとにプーリング
クラスタ
分け
正規化 Max
Pooling
5. Kernel Correlation Network (KCNet)
19
 点群からk-NNを使用して、近傍同士を結んだグラフを作成
 畳み込みカーネルをPoint-Setで表現し、各点から隣接点へのベクトルと
Point-Set内の各ベクトルとの相関(ガウスカーネル)を算出
KC 𝜿, 𝒙𝑖 =
1
ℵ 𝑖
෍
𝑚=1
𝑀
෍
𝑛∈ℵ 𝑖
K 𝜎 𝜿 𝑚, 𝒙 𝑛 − 𝒙𝑖
 Average PoolingやMax Poolingを隣接点の出力とのAverageやMaxで表現
Point-setと点群との相関
(赤いほど強い)
Classification Network
ガウスカーネル 隣接点
Point-set
カーネル
点𝑖
6. ShapeContextNet
20
 Shape Context
 ある点を中心に距離と角度
で空間を分割し、その分割
領域をbinとするヒストグラ
ムで表現
 点群の各点とカーネルを
Shape Contextで表現し、
畳み込む
 ShapeContextの各パラ
メータ(binの数や分割方
法等)も学習させる
Attentional Shape Context
も提案
7. Tangent Convolutions
21
 巨大な点群に対しても適用可能
 点群以外のの3Dデータフォーマットにも適用可能
 Tangent Convolutions
 点pの接平面(tangent plane)に近傍点を投影
 接平面を画像とみなし、画素を最近傍やGaussianで補間
 入力を𝑁 × 𝐿 × 𝐶𝑖𝑛として1 × 𝐿のカーネルで畳み込む
 𝑁:点の数、 𝐿:接平面を1次元にした長さ( = 𝑙2
)、 𝐶𝑖𝑛:チャネル数
近傍点の接平面への投影
投影接平面
画像
最近傍で補
間
混合ガウス
補間
Top-3近傍で
混合ガウス補
間
8. Deep Parametric Continuous
Convolutional Neural Networks
 カーネルを離散ではなく、パラメトリックな連続関数として表現
(ここではMulti-Layer Perceptron)
 任意の構造の入力に対して、任意の個所の出力が計算可能
ℎ 𝑛 = ෍
𝑚=−𝑀
𝑀
𝑓 𝑛 − 𝑚 𝑔[𝑚] ℎ 𝒙 = න
−∞
∞
𝑓 𝒚 𝑔 𝒙 − 𝒚 ⅆ𝑦 ≈ ෍
𝑖
𝑁
1
𝑁
𝑓 𝒚𝑖 𝑔(𝒙 − 𝒚𝑖)
連続カーネル離散カーネル
23
9. SPLATNet
SPLATNet
24
 SPLATNet: Sparse Lattice Networks for Point Cloud
Processing
 Su, H., Jampani,V., Sun, D., Maji, S., Kalogerakis, E.,Yang, M.-H., & Kautz,
J.
 Best Paper Honorable Mention
 Bilateral Convolutional Layerを導入し、三次元点群を高
次元格子(Permutohedral Lattice)上へ投影
 直接かつ効率的に畳み込み処理
 2Dの処理と3Dの処理を統合して扱える
目的
25
3次元点群を直接的に操作する畳み
込みニューラルネットワークの提案
 柔軟なReceptive Fieldの設定
 2Dと3Dの処理を統合して扱える
Bilateral Convolutional Layer (BCL)
26
BCLでは任意の次元の畳み込みを行うことができる
 点群 (X,Y, Z) = 3次元
 点群 (X,Y, Z, R, G, B) = 6次元
 点群 (X,Y, Z, Nx, Ny, Nz) = 6次元
 画素 (X,Y) = 2次元
 画素 (X,Y, R, B, G) = 5次元 (バイラテラルフィルタ)
これらの点をPermutohedral Lattice上へマッピングし、この
格子(Lattice)上で畳み込み
Permutohedral Lattice
27
 D次元空間上の点を、原点を通り法線が𝐧 = [1, ⋯ , 1]と
なる(D-1)次元平面上の格子点で表現
Adams,A., Baek, J., & Davis, M.A. (2010). Fast high-dimensional filtering using the permutohedral
lattice. Computer Graphics Forum
Bilateral Convolutional Layer (BCL)
28
Splat:
 入力信号をⅆ𝑙次元空間へ投影し、周辺格子に割り当て
Bilateral Convolutional Layer (BCL)
29
Splat:
 入力信号をⅆ𝑙次元空間へ投影し、周辺格子に割り当て
Convolve
 格子をⅆ𝑙次元カーネルでフィルタ(畳み込み)
Bilateral Convolutional Layer (BCL)
30
Splat:
 入力信号をⅆ𝑙次元空間へ投影し、周辺格子に割り当て
Convolve
 格子をⅆ𝑙次元カーネルでフィルタ(畳み込み)
Slice
 格子上の信号から入力位置の出力信号を復元
Bilateral Convolutional Layer (BCL)
31
 入力点群が順不同でも整列されていなくてもよい
 通常の空間に対する畳み込みと同じように、近傍の点に
対して畳み込みが行える
 入力点群の点の座標と異なる任意の座標の点を出力可
能
 高次元かつスパースなので、HashTableを使用して処理
を効率化
 通常の正方格子は次元が増えると近傍格子も指数的に
増えるが、BCLは線形に増える
Receptive Field
32
 格子の間隔を開くと、Receptive Fieldも広くなる
2D-3Dデータ間の情報投影
33
 カメラと深度センサー間のキャリブレーションがされてい
る場合、画素を三次元上へ投影できるが、点群中の点
の位置とはズレ
 Permutohedral Lattice上に投影した場合、周辺格子の信
号を使って、任意の位置の信号を復元可能
 点群上の各点へ正確にマッピングできる
Semantic Segmentation
34
三次元セグメンテーションと二次元セグメンテーションを統合
Semantic Segmentation
35
入力点群 点群のセグメンテーション 点群結果
Semantic Segmentation
36
各点を1x1畳み込み
Semantic Segmentation
37
BCLのReceptive Fieldを徐々に大きく
Semantic Segmentation
38
BCLの各層の出力を統合
Semantic Segmentation
39
三次元セグメンテーション
Semantic Segmentation
40
対応する入力画像
画像のセグメ
ンテーション
統合処理(2D & 3D)
点群結果
(画像情報利用)
画像結果
(点群情報利用)
Semantic Segmentation
41
2Dの画素を3D点群に
マッピング
Semantic Segmentation
42
2Dと3Dの特徴を統合し、1x1畳み込み
で3Dセグメンテーション
Semantic Segmentation
43
3Dの点を2Dの画素へマッピングし、
2つのセグメンテーションの特徴量
を統合
Semantic Segmentation
44
統合された2D-3D特徴量をもとに
画像セグメンテーション
実験
45
 RueMonge2014 Dataset
 3D façade segmentation
実験
46
 RueMonge2014 Dataset
 2D façade segmentation
実験
47
 ShapeNet Part segmentation
まとめ
48
 点群を直接かつ効率的に畳み込みニューラルネットワー
クで扱える
 Receptive Fieldを柔軟に設定可能
 2D-3D間の処理を統一的に扱える
 ソースコード
 http://vis-www.cs.umass.edu/splatnet

CVPR2018のPointCloudのCNN論文とSPLATNet