BLOG

シンラボメンバーのあれこれ

  1. HOME
  2. ブログ
  3. 代表通信
  4. 代表技術通信~PointNetを使い倒す⑤

代表技術通信~PointNetを使い倒す⑤

こんばんは。代表の草場です。

PointNetに関して調べています。スタンフォード大学の方の資料、PointNet: Deep Learning on Point Sets for
3D Classification and Segmentationがとてもわかりやすかったです。

3次元の表現は、Point Cloud, Mesh, Volumetric, Projection Viewが代表的にはあります。今注目しているのは、Point Cloudです。

点群は生のセンサーデータに近い
点群はカノニカル

カノニカル、というのがすこしわかりづらいですが、物理でいうと正準、です。他のデーターから変換可能、という意味?

既存の点群機能のほとんどは、特定のタスクに向けて手作業で作られています。
点群は、ディープニューラルネットワークに供給される前に、他の表現に変換されます。

そこで、研究課題が浮かびます。

研究課題
点群上で直接効果的な特徴学習を実現できるか?

①入力として設定された無秩序な点のため、モデルはN!の順列に対して不変である必要があります。
②幾何学的変換の下での不変性があるため、Point Cloudの回転は、分類結果を変えてはいけません。

①は、わかりやすいですね。点を入れ替えても点群は変わらないです。そのため、N個の点群があるとすると、その入れ替えのパターンがN!個あるという理屈です。
f(x1, x2, x3)  x1 + x2 + x3
はわかりやい例です。

ニューラルネットワークで対称関数のファミリーを構築するにはどうすればよいのでしょうか?

ここから少しわからない点。

Observe:
f (x1, x2 , …, xn ) = γ ○ g(h(x1 ),…,h(xn )) は、gが対称であれば対称である。

例えば、(1, 2, 3), (1, 1, 1), (2, 3, 1)みたいなデータを関数hに食わせます。Multi Level Perceptronのイメージですね。そして、それを関数gに食わせます。まさにパーセプトロン。そして、それをγと合成。ざっくりいうと、これがPointNetです。
では、

PointNetで構築できる対称関数にはどのようなものがあるのでしょうか?

ここで、Universal Set Function Approximatorが出てきます。Wikipediaで調べると、Universal approximation theoremが引っ掛かります。これは普遍性定理と呼ばれるもので、この@mochimochidogさんのQiitaの記事がわかりやすいかもです。

与えられた連続関数を所望の精度で近似できる入力層、隠れ層1層、出力層の合計3層のニューラルネットワークが必ず存在するよということです。

この定理のおかげで、以下の関係が成り立ちます。

Theorem:
A Hausdorff continuous symmetric function f :2^x → R can be arbitrarily approximated by PointNet.
| f(S) – γ(MAX{h(xi}) | < ε
S ⊆ R^d

γ(MAX{h(xi})がPointNetです。Hausdorff continuous symmetric functionが何者かわかっていないですが、進みます。

では、MAXとかhに何を用いるかというと、

経験的には、多層パーセプトロン(MLP)と最大プーリングを用いています。

MAXの関数にMAXプーリング、γ、gには、Multi Level Perceptron(MLP)を用いると。
これで、無秩序点群を扱える関数は完成。

では、②の回転対称性をどう取り入れるか?

トランスネットワークによる入力アラインメントを行います。アイデアは、自動アライメントのためのデータ依存変換です。N個の3次元データをT-Netに食わせつつ、回転は行列であらわされるので、そこでも変換します。この辺まだわからんです。

①と②を組み合わせてPointNet完成。ローカルな特徴とグローバルな特徴を混ぜ込むプロセスもありますが、そこもまだわからんとです。

もう少し勉強します。

 

 

 

 

関連記事