Slide 1

Slide 1 text

点群Segmentationのための Transformerサーベイ 2023/05/23 takmin

Slide 2

Slide 2 text

2 自己紹介

Slide 3

Slide 3 text

自己紹介 3 株式会社ビジョン&ITラボ 代表取締役 皆川 卓也(みながわ たくや) 博士(工学) 「コンピュータビジョン勉強会@関東」主催 株式会社フューチャースタンダード 技術顧問 略歴: 1999-2003年 日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ セールス、プロジェクトマネジメント、サポート等の業務に従事 2004-2009年 コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事 2007-2010年 慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻 単位取得退学後、博士号取得(2014年) 2009年-現在 フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化) http://visitlab.jp

Slide 4

Slide 4 text

4 株式会社ビジョン&ITラボ はコンピュータビジョンとAI によって御社の「こまった」 を助ける会社です

Slide 5

Slide 5 text

ビジョン 技術の町医者 AIビジネスについて、気軽に相談できる

Slide 6

Slide 6 text

事業内容 1. R&Dコンサルティング 2. 受託研究/開発 3. 開発マネジメント 4. 開発コンサルティング 5. ビジネス化コンサルティング 6

Slide 7

Slide 7 text

ソリューション/製品 7 深層学習 (Deep Learning) Virtual / Augmented Reality ナンバープレート認識 ビジョン&ITラボの代表的なソリューション や製品の例を紹介いたします。

Slide 8

Slide 8 text

深層学習 (Deep Learning) 8 深層学習についてのコンサルティングや開発支援などを 行います。  画像識別  物体検出  領域分割  人物姿勢推定  画像変換  画像生成  etc

Slide 9

Slide 9 text

Virtual Reality/Augmented Reality 9 御社がVirtual RealityやAugmented Realityを用いたビジネ スを行う上で必要な、総合的な技術コンサルティングや開 発/プロダクトを提供します。  特定物体認識  Visual SLAM  三次元スキャン  Face Tracking

Slide 10

Slide 10 text

ナンバープレート認識: Number Plate Recognizer  画像や動画からナンバープレートを読み取ります 入力画像/動画 文字+座標 Number Plate Recognizer 札幌000 (み) 0000 • Web APIまたはSDKで提供可能 • SDK • LinuxまたはWindows • C++またはPython • アルファベット分類番号および図柄入りナンバープレートにも対応 • GPU不要でロバストかつ高速な認識

Slide 11

Slide 11 text

お問合せ先 11 https://visitlab.jp

Slide 12

Slide 12 text

12 はじめに

Slide 13

Slide 13 text

発表の背景 13 「MetaFormerのアイデアはPointNetや点群畳み込み に通じるところがあり、特にPointNetで用いられた (Global Poolingで得られた)大域特徴量と点ごとの特 徴量を結合してShared MLPで変換するというアイデア は、MetaFormer構造の目的とよく似ています。」 コンピュータビジョン最前線 Winter2022 ニュウモン点群深層学習 Deepで挑む3Dへの第一歩 千葉直也 より

Slide 14

Slide 14 text

発表の背景 14

Slide 15

Slide 15 text

本資料の目的 15  主にSemantic Segmentationを目的と して、点群にTransformerを適用した 手法について調査  どのように適用したのか?  Vision Transformer、MLP Mixer、Pool Formerなどと何が違うのか?  PointNet/PointNet++と何が違うの か?

Slide 16

Slide 16 text

本資料の内容 16  PointNetのおさらい  PointNet  PointNet++  PointNeXt  Transformerのおさらい  Transformer  Vision Transformer  MLP Mixer  Meta Former (Pool Former)  点群+Transformer  Point Transformer  Point Transformer V2  Point Mixer  Point Cloud Transformer  Point Voxel Transformer  Dual Transformer  Fast Point Transformer  Point BERT  Stratified Transformer  OctFormer  Self-positioning Point-based Transformer  まとめ

Slide 17

Slide 17 text

17 PointNetのおさらい

Slide 18

Slide 18 text

PointNetおさらい:出典 18  PointNet  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 Computer Vision and Pattern Recognition (CVPR).  PointNet++  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 (NeurIPS)  PointNeXt  Qian, G., Li, Y., Peng, H., Mai, J., Hammoud, H. A. A. K., Elhoseiny, M., & Ghanem, B. (2022). PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies. Conference on Neural Information Processing Systems (NeurIPS).

Slide 19

Slide 19 text

PointNet 19  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得

Slide 20

Slide 20 text

PointNet 20  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換

Slide 21

Slide 21 text

PointNet 21  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換

Slide 22

Slide 22 text

PointNet 22  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換 64次元の直 交行列を学 習し、特徴量 を変換

Slide 23

Slide 23 text

PointNet 23  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換 64次元の直 交行列を学 習し、特徴量 を変換 特徴量の変換 (点ごと)

Slide 24

Slide 24 text

PointNet 24  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換 64次元の直 交行列を学 習し、特徴量 を変換 特徴量の変換 (点ごと) Max Poolingで全点 の特徴を統合し、 Global特徴を算出

Slide 25

Slide 25 text

PointNet 25  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換 64次元の直 交行列を学 習し、特徴量 を変換 特徴量の変換 (点ごと) Max Poolingで全点 の特徴を統合し、 Global特徴を算出 Classification Score

Slide 26

Slide 26 text

PointNet 26  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換 64次元の直 交行列を学 習し、特徴量 を変換 特徴量の変換 (点ごと) Max Poolingで全点 の特徴を統合し、 Global特徴を算出 Global特徴 を各点の特 徴に追加 Segmentation Task

Slide 27

Slide 27 text

PointNet 27  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換 64次元の直 交行列を学 習し、特徴量 を変換 特徴量の変換 (点ごと) Max Poolingで全点 の特徴を統合し、 Global特徴を算出 Global特徴 を各点の特 徴に追加 特徴量の変換 (点ごと)

Slide 28

Slide 28 text

PointNet 28  各点群の点を独立に(周辺の点を参照せず)MLPで特徴量を学習  Global Max Poolingで点群全体の特徴量を取得 直交行列(≒回 転行列)を学習 し、座標変換 座標値(3次元) を特徴量(64次 元)へ変換 64次元の直 交行列を学 習し、特徴量 を変換 特徴量の変換 (点ごと) Max Poolingで全点 の特徴を統合し、 Global特徴を算出 Global特徴 を各点の特 徴に追加 特徴量の変換 (点ごと) 特徴量から各点 のラベルスコア 算出 (Segmentation)

Slide 29

Slide 29 text

PointNet++ 29  PointNetを階層的に適用  点群をクラスタ分割→PointNet→クラスタ内で統合を繰 り返す

Slide 30

Slide 30 text

PointNet++ 30  PointNetを階層的に適用  点群をクラスタ分割→PointNet→クラスタ内で統合を繰 り返す Farthest Point Samplingでサンプリン グした点を中心に半 径rでグルーピング (オーバーラップあり)

Slide 31

Slide 31 text

PointNet++ 31  PointNetを階層的に適用  点群をクラスタ分割→PointNet→クラスタ内で統合を繰 り返す グループごとに PointNetを適用

Slide 32

Slide 32 text

PointNet++ 32  PointNetを階層的に適用  点群をクラスタ分割→PointNet→クラスタ内で統合を繰 り返す サンプリング+グルーピン グ+PointNetを繰り返し

Slide 33

Slide 33 text

PointNet++ 33  PointNetを階層的に適用  点群をクラスタ分割→PointNet→クラスタ内で統合を繰 り返す K近傍の点から、 距離に基づいた重 み付き和でアップ サンプルした点の 特徴量を補間

Slide 34

Slide 34 text

PointNet++ 34  PointNetを階層的に適用  点群をクラスタ分割→PointNet→クラスタ内で統合を繰 り返す 各点単独で PointNet

Slide 35

Slide 35 text

PointNet++ 35  PointNetを階層的に適用  点群をクラスタ分割→PointNet→クラスタ内で統合を繰 り返す アップサンプルと PointNetを繰り返し

Slide 36

Slide 36 text

PointNeXt 36  PointNet++の性能を以下の仕組みによって大幅改善  Data Augmentation、最適化手法、ハイパーパラメータを最新研究の 知見に基づき再調整  受容野を広げるために、Groupingの際に近傍との相対距離を正規 化  層を深くするために、Inverted Residual MLP (InvResMLP)ブロックを 導入

Slide 37

Slide 37 text

37 Transformerのおさらい

Slide 38

Slide 38 text

Transformerおさらい: 出典 38  Transformer  Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L., & Polosukhin, I. (2017). Attention Is All You Need. Advances in Neural Information Processing Systems (NeurIPS).  Vision Transformer  Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., Dehghani, M., Minderer, M., Heigold, G., Gelly, S., Uszkoreit, J., & Houlsby, N. (2021). An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale. International Conference on Learning Representations (ICLR).

Slide 39

Slide 39 text

Transformerおさらい: 出典 39  MLP Mixer  Tolstikhin, I., Houlsby, N., Kolesnikov, A., Beyer, L., Zhai, X., Unterthiner, T., Yung, J., Steiner, A., Keysers, D., Uszkoreit, J., Lucic, M., & Dosovitskiy, A. (2021). MLP-Mixer: An all-MLP Architecture for Vision. Advances in Neural Information Processing Systems  Meta Former (Pool Former)  Yu, W., Luo, M., Zhou, P., Si, C., Zhou, Y., Wang, X., Feng, J., & Yan, S. (2022). MetaFormer is Actually What You Need for Vision. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition

Slide 40

Slide 40 text

Transformer 40  自然言語処理の分野で提案され た手法で、EncoderとDecoderで構 成される。  Encoderは単語列や時系列信号 等のシーケンスを入力として、特 徴ベクトルのシーケンスへ変換す る。  Decoderは特徴ベクトルのシーケ ンスを受け取り、入力シーケンス の再現、または別のシーケンスを 出力する(例:翻訳)  Attention(注意機構)という仕組み を用いることで、例えば単語同士 の関係の重要度などを特徴ベクト ルに埋め込んでいる。

Slide 41

Slide 41 text

Attention 41  Queryによって、メモリ(Key- Value)の中から必要な情報 を選択的に取得する仕組み  例:翻訳のケース  Query:  日本語の単語(特徴ベクトル)  Key, Value:  英語の文章(英単語特徴ベク トル群)  出力:  英語の各単語ベクトルの重み 付き和  重みはQueryと関連が高いも のほど大きい Query Key Value

Slide 42

Slide 42 text

Attention 42  Self-Attention  Cross-Attention 𝑊𝑄 𝑊𝐾 𝑊𝑉 Q K V 𝑊𝑄 𝑊𝐾 𝑊𝑉 Q K V

Slide 43

Slide 43 text

Attention 43 QueryとKeyの内積を計算し、Query に対するKeyの類似度を算出 𝑸𝑲T スケール調整(𝑑𝑘:入力次元数) 𝑸𝑲T 𝑑𝑘 類似度に基づいた重み softmax 𝑸𝑲T 𝑑𝑘 Valueの重み付き和 softmax 𝑸𝑲T 𝑑𝑘 𝑽

Slide 44

Slide 44 text

Multi-Head Attention 44  Single-HeadのAttentionを 複数並列に並べることで、 複数のAttention表現を取 得  入力次元は計算量を抑え るためにHead数hで除算し た数

Slide 45

Slide 45 text

Vision Transformer 45  画像を16x16のパッチに分割し、パッチをトークンとして Transformer Encoderを適用したところ、State-of-the-artの CNNに匹敵する性能

Slide 46

Slide 46 text

MLP Mixer 46  Self-Attentionを特徴ベクトルの転置+MLPで置き換える ことで、Vision Transformerに匹敵する性能 Patch(トークン) の混ぜ合わせ Channelの混ぜ 合わせ

Slide 47

Slide 47 text

Meta Former 47  Vision TransformerやMLP Mixerを、Token Mixing + Channel Mixingというアーキテクチャで一般化

Slide 48

Slide 48 text

Pool Former 48  Token MixingをGlobal Average Poolingのようなシンプル な方法で実現しても、Vision TransformerやMLP Mixerに 匹敵する性能

Slide 49

Slide 49 text

49 点群+Transformer Visionとの比較

Slide 50

Slide 50 text

Point Transformer 50  Zhao, H., Jiang, L., Jia, J., Torr, P., & Koltun, V. (2021). Point Transformer. International Conference on Computer Vision (ICCV).  点群にTransformerを適用した最初期の論文の一つ  Vector AttentionやPositional Embeddingに相対座標を利用す る等、Transformerを点群に適用するにあたり、様々な工夫を 施している。  SegmentationおよびClassificationタスクで当時のState-of-the- Artを達成

Slide 51

Slide 51 text

Point Transformer 51 Semantic Segmentation Classification  ネットワーク構造

Slide 52

Slide 52 text

Point Transformer 52  MLPブロック 座標を特徴 量へ変換

Slide 53

Slide 53 text

Point Transformer 53  Point Transformerブロック 入力特徴量 座標 近傍点を使った特徴量変換

Slide 54

Slide 54 text

Point Transformer 54  Point Transformerブロック 入力特徴量 座標 近傍点を使った特徴量変換

Slide 55

Slide 55 text

Point Transformer ブロック 55 入力特徴量 座標 x𝑗 , 𝑝𝑗 x𝑖 , 𝑝𝑖 K近傍

Slide 56

Slide 56 text

Point Transformer ブロック 56 入力特徴量 座標 x p x φ x𝑖 − 𝜓(x𝑗 ) Query Key x𝑗 , 𝑝𝑗 x𝑖 , 𝑝𝑖 𝛿 = 𝜃 p𝑖 − p𝑗 MLP 相対座標 Positional Embedding 𝛼 x𝑗 MLP Value K近傍

Slide 57

Slide 57 text

Point Transformer ブロック 57 入力特徴量 座標 x𝑗 , 𝑝𝑗 x𝑖 , 𝑝𝑖 𝛾 φ x𝑖 − 𝜓 x𝑗 + 𝛿 Query Key Positional Embedding 𝛾𝑖−1 𝛾𝑖−𝐾 𝛾𝑖−𝑗 … … 𝛼 x𝑗 + 𝛿 Value Positional Embedding 𝛼1 𝛼𝐾 𝛼𝑗 … … K近傍

Slide 58

Slide 58 text

K近傍 Point Transformer ブロック 58 入力特徴量 座標 x𝑗 , 𝑝𝑗 x𝑖 , 𝑝𝑖 y𝑖 = ෍ x𝑗∈𝜒(𝑖) 𝜎 𝛾 φ x𝑖 − 𝜓 x𝑗 + 𝛿 ⊙ 𝛼 x𝑗 + 𝛿 チャネル方向にSoftmax ⊙ 要素ごと の積 総和 Vector Attention 𝜎

Slide 59

Slide 59 text

Point Transformer 59  Transition Downブロック ダウンサンプリング サンプリング サンプリングした点のK近 傍の特徴量をMLPで変換 K個の特徴量のMax Pooling

Slide 60

Slide 60 text

Point Transformer 60  Transition Upブロック アップサンプリング Skip Connection 3近傍点で補間

Slide 61

Slide 61 text

Point Transformer 61  実験:S3DIS dataset

Slide 62

Slide 62 text

Point Transformer 62  実験: ModelNet40, ShapeNetPart

Slide 63

Slide 63 text

Vision TransformerとPoint Transformerの違 い 63 Vision Transformer Point Transformer QueryとKey の相関 内積 差分+MLP Attention • スカラー • Multi-Head • ベクトル(チャネ ル方向にも重み づけ) • Single-Head Positional Embedding ランダムな初期値 から学習 点の相対座標+ MLP Token Mixing 画像全体 K近傍点 PointTransformerV2 ではMulti-Head

Slide 64

Slide 64 text

Point Transformer V2 64  Wu, X., Lao, Y., Jiang, L., Liu, X., & Zhao, H. (2022). Point Transformer V2: Grouped Vector Attention and Partition- based Pooling. Advances in Neural Information Processing Systems (NeurIPS), NeurIPS  Point Transformerに対して、以下を導入することで性能改善  Grouped Vector Attention  より強力なPositional Embedding  Partition Based Pooling

Slide 65

Slide 65 text

Point Transformer V2 65

Slide 66

Slide 66 text

Point Transformer V2 66 Multi-Head版 のVector Attention

Slide 67

Slide 67 text

Point Transformer V2 67 より強力な Positional Embedding

Slide 68

Slide 68 text

Point Transformer V2 68 K近傍での Pooling/Unpooling 空間をパーティションに区 切ってPooling/Unpooling

Slide 69

Slide 69 text

Point Transformer V2 69  実験:ScanNet v2, S3DIS dataset

Slide 70

Slide 70 text

PointMixer 70  Choe, J., Park, C., Rameau, F., Park, J., & Kweon, I. S. (2022). PointMixer: MLP-Mixer for Point Cloud Understanding. European Conference on Computer Vision (ECCV)  MLP Mixerを、点群のような疎で乱雑なデータに対して適用す るために、Token-Mixing部分をChannel-MixingとSoftmaxの組 み合わせで置き換え  Inter-Set、Intra-Set、Hierarchical-Setの3パターンでmixing  高効率

Slide 71

Slide 71 text

PointMixer 71  基本構造はPoint Transformerと同じ

Slide 72

Slide 72 text

PointMixer 72  基本構造はPoint Transformerと同じ

Slide 73

Slide 73 text

PointMixer 73  Mixer Block 入力特徴量 座標

Slide 74

Slide 74 text

PointMixer 74  Mixer Block 入力特徴量 座標 チャネル方向にSoftmax ⊙ 要素ごと の積 𝜎 𝑔2 𝑔3 𝐲𝒊 Σ

Slide 75

Slide 75 text

PointMixer 75  Mixer Block 入力特徴量 座標 ★をk近傍点●の特徴量を用いてアップデート

Slide 76

Slide 76 text

PointMixer 76  Mixer Block 入力特徴量 座標 ★は★から見たk近傍点の1つ ★の特徴量を用いて★をアップデート

Slide 77

Slide 77 text

PointMixer 77  基本構造はPoint Transformerと同じ

Slide 78

Slide 78 text

PointMixer 78  基本構造はPoint Transformerと同じ ダウンサンプリング

Slide 79

Slide 79 text

PointMixer 79  基本構造はPoint Transformerと同じ ダウンサンプリング サンプリングした点の特徴量をK近傍からアップデート

Slide 80

Slide 80 text

PointMixer 80  基本構造はPoint Transformerと同じ スキップ接続された点群座標へアップサン プリング

Slide 81

Slide 81 text

PointMixer 81  基本構造はPoint Transformerと同じ スキップ接続された点群座標へアップサン プリング ダウンサンプリングの時とは対称方向にアップサンプリングして特徴量更新

Slide 82

Slide 82 text

PointMixer 82  実験:S3DIS, ModelNet40

Slide 83

Slide 83 text

MLP MixerとPointMixerの違い 83 MLP Mixer PointMixer MLP Mixing トークンの転置 チャネル方向の Sotmaxによる重み 付き和 Positional Embedding なし。(トークンの順 番に含まれている) 点の相対座標+ MLP Token Mixing 画像全体 K近傍点 所感:PointMixerはMLP Mixerとはまるで別物

Slide 84

Slide 84 text

Point TransformerとPointMixerの違い 84  Point Transformer  y𝑖 = σx𝑗∈𝜒(𝑖) 𝜎 𝛾 φ x𝑖 − 𝜓 x𝑗 + 𝛿 ⊙ 𝛼 x𝑗 + 𝛿  PointMixer  y𝑖 = σx𝑗∈𝜒(𝑖) 𝜎 𝑔2 𝑔1 x𝑗 ; 𝛿 ⊙ 𝑔3 x𝑗 KeyとQueryの差分 +Positional Embedding KeyにPositional EmbeddingをConcat Value + Positional Embedding Value PointMixerのToken Mixingは、シンプルにSoftmaxによる チャネル方向の重み付き和のみ Softmax チャネル方向の 重み付き和

Slide 85

Slide 85 text

PointNet++/PointTransformer/PointMixerの 比較 85 SOP = Symmetric Operation  Transformer Blockの構造比較

Slide 86

Slide 86 text

PointNet++/PointTransformer/PointMixerの 比較 86 Max Pooling Softmax +Summation Softmax +Summation SOP = Symmetric Operation  Transformer Blockの構造比較

Slide 87

Slide 87 text

画像と点群比較 87 Vision Point Cloud PointNet++にChannel Mixingを加えたらPool Formerに対応。

Slide 88

Slide 88 text

88 点群+Transformer その他の手法

Slide 89

Slide 89 text

PCT: Point Cloud Transformer 89  Guo, M. H., Cai, J. X., Liu, Z. N., Mu, T. J., Martin, R. R., & Hu, S. M. (2021). PCT: Point cloud transformer. Computational Visual Media, 7(2), 187–199.  点群の座標を特徴量へ変換し、通常のTransformerと同様、 Key、Queryの内積を用いてAttentionを生成し、Valueに重み づけ  全ての点同士でSelf-Attentionを計算  グラフ理論で用いられるラプラシアン行列を用いたOffset Attentionを導入することで、順序不変なAttentionを実装

Slide 90

Slide 90 text

PCT: Point Cloud Transformer 90

Slide 91

Slide 91 text

PCT: Point Cloud Transformer 91 点群を 特徴量 へ変換

Slide 92

Slide 92 text

PCT: Point Cloud Transformer 92 Self- Attention

Slide 93

Slide 93 text

PCT: Point Cloud Transformer 93 Linear + Batch Normalization + ReLU

Slide 94

Slide 94 text

PCT: Point Cloud Transformer 94 Max Poolingと Average Poolingの Concat

Slide 95

Slide 95 text

PCT: Point Cloud Transformer 95 Linear + Batch Normalization + ReLU + Dropout

Slide 96

Slide 96 text

PCT: Point Cloud Transformer 96

Slide 97

Slide 97 text

PCT: Point Cloud Transformer 97 𝑸 ∙ 𝑲𝑇

Slide 98

Slide 98 text

PCT: Point Cloud Transformer 98 𝑭𝑆𝐴 = 𝜎 𝑸 ∙ 𝑲𝑇 ∙ 𝑽 Attention

Slide 99

Slide 99 text

PCT: Point Cloud Transformer 99 通常のSelf Attention Offset-Attention 𝑭𝑜𝑢𝑡 = (𝑰 − 𝑨)𝑭𝑖𝑛 Attention Mapを隣 接行列とみなす Laplacian Matrix

Slide 100

Slide 100 text

PCT: Point Cloud Transformer 100  実験: Model40 Classification

Slide 101

Slide 101 text

PCT: Point Cloud Transformer 101  実験:S3DIS

Slide 102

Slide 102 text

Vision TransformerとPCTの違い 102 Vision Transformer Point Transformer QueryとKey の相関 内積 内積 Attention Multi-Head Offset-Attention Positional Embedding ランダムな初期値 から学習 Sampling + Groupingで周辺領 域から特徴量算出 Token Mixing 画像全体 点群全体

Slide 103

Slide 103 text

PVT: Point Voxel Transformer 103  Zhang, C., Wan, H., Shen, X., & Wu, Z. (2022). PVT: Point- voxel transformer for point cloud learning. International Journal of Intelligent Systems  点群ベースのAttentionとVoxelベースのAttention (Sparse Window Attention)を組み合わせることで、高速高性能なモデ ルを実現  VoxelベースのAttentionでは、点が内在するVoxelのみ使用し、 Voxel化されたWindow内でSelf-Attentionを取ることで、計算 量削減し、また点群密度の影響を低減

Slide 104

Slide 104 text

PVT: Point Voxel Transformer 104  Point Voxel Transformer Block  Voxel Branch:  点群をボクセル化し、局所領域でSelf Attention  Point Branch:  領域全体で点群同士の相対座標も考慮したSelf Attention。巨大な 点群に対しては簡易な External Attentionを使用

Slide 105

Slide 105 text

PVT: Point Voxel Transformer 105  Point Voxel Transformer Block  Voxel Branch:  点群をボクセル化し、局所領域でSelf Attention  Point Branch:  領域全体で点群同士の相対座標も考慮したSelf Attention。巨大な 点群に対しては簡易な External Attentionを使用 Voxel Branch Window内で、疎な点群に対し、 ハッシュテーブルを用いてSelf- Attention 特徴量をVoxel 上へ割り当て

Slide 106

Slide 106 text

PVT: Point Voxel Transformer 106  Point Voxel Transformer Block  Voxel Branch:  点群をボクセル化し、局所領域でSelf Attention  Point Branch:  領域全体で点群同士の相対座標も考慮したSelf Attention。巨大な 点群に対しては簡易な External Attentionを使用 Point Branch 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑄𝐾𝑇 + 𝐵 ∙ 𝑉 点同士の相対位置

Slide 107

Slide 107 text

PVT: Point Voxel Transformer 107  実験:ShapeNetPart, S3DIS

Slide 108

Slide 108 text

Dual Transformer 108  Han, X. F., Jin, Y. F., Cheng, H. X., & Xiao, G. Q. (2022). Dual Transformer for Point Cloud Analysis. IEEE Transactions on Multimedia.  Self-Attentionを点群同士、およびチャネル方向に対して適用 するDual Transformer Blockを導入

Slide 109

Slide 109 text

Dual Transformer 109  Dual Point Cloud Transformer Blockを導入  点群同士、およびチャネル同士のMulti-Head Self-Attentionを それぞれ独立に計算し、和を取る。

Slide 110

Slide 110 text

Dual Transformer 110  Dual Point Cloud Transformer Blockを導入  点群同士、およびチャネル同士のMulti-Head Self-Attentionを それぞれ独立に計算し、和を取る。 点群同士のSelf- Attention softmax 𝑄𝐾𝑇 ∙ 𝑉 チャネル間のSelf- Attention softmax 𝑄𝑇𝐾 ∙ 𝑉

Slide 111

Slide 111 text

Dual Transformer 111  実験:  ModelNet40  ShapeNet

Slide 112

Slide 112 text

Fast Point Transformer 112  Park, C., Jeong, Y., Cho, M., & Park, J. (2022). Fast Point Transformer. Conference on Computer Vision and Pattern Recognition (CVPR)  Light Weightな局所領域でのSelf-Attention Blockを導入  Voxel-Hashingベースアーキテクチャによって、Point Transformerと比較して129倍の推論の高速化

Slide 113

Slide 113 text

Fast Point Transformer 113

Slide 114

Slide 114 text

Fast Point Transformer 114 点群をVoxelで分割 𝒫𝑖𝑛 = 𝐩𝑛 , 𝐢𝑛 座標 特徴ベ クトル

Slide 115

Slide 115 text

Fast Point Transformer 115 Voxel内の特徴量算出 𝒱 = 𝐯𝑖 , 𝐟𝑖 , 𝐜𝑖 Voxel 座標 特徴量 Centroid 座標

Slide 116

Slide 116 text

Fast Point Transformer 119 Light-Weight Self-Attention 𝐠𝑖 = 𝐟𝑖 + δabs 𝐜𝑖 − 𝐯𝑖 CentroidとVoxelの 相対座標+MLP

Slide 117

Slide 117 text

Fast Point Transformer 120 Light-Weight Self-Attention 𝐠𝑖 = 𝐟𝑖 + δabs 𝐜𝑖 − 𝐯𝑖 𝐟𝑖 ′ = ෍ 𝑗∈𝒩 𝑖 𝑎 𝐠𝑖 , δabs 𝐯𝑖 − 𝐯𝑗 𝜓 𝐠𝑖 CentroidとVoxelの 相対座標+MLP 隣接Voxelの相対座 標+MLP cosine 類似度

Slide 118

Slide 118 text

Fast Point Transformer 121 Light-Weight Self-Attention 𝐠𝑖 = 𝐟𝑖 + δabs 𝐜𝑖 − 𝐯𝑖 𝐟𝑖 ′ = ෍ 𝑗∈𝒩 𝑖 𝑎 𝐠𝑖 , δabs 𝐯𝑖 − 𝐯𝑗 𝜓 𝐠𝑖 Positional Embedding Query Key Value

Slide 119

Slide 119 text

Fast Point Transformer 122 Light-Weight Self-Attention 𝐠𝑖 = 𝐟𝑖 + δabs 𝐜𝑖 − 𝐯𝑖 𝐟𝑖 ′ = ෍ 𝑗∈𝒩 𝑖 𝑎 𝐠𝑖 , δabs 𝐯𝑖 − 𝐯𝑗 𝜓 𝐠𝑖 Positional Embedding Query Key Value 全ての(i, j)の組み合わせで、 Kパターンのみ

Slide 120

Slide 120 text

Fast Point Transformer 124 Voxel特徴から点群を復元 𝒫𝑜𝑢𝑡 = 𝐩𝑛 , 𝐢𝑛 座標 特徴ベ クトル

Slide 121

Slide 121 text

Fast Point Transformer 125  実験:S3DIS

Slide 122

Slide 122 text

Point-BERT 126  Yu, X., Tang, L., Rao, Y., Huang, T., Zhou, J., & Lu, J. (2022). Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling. Conference on Computer Vision and Pattern Recognition (CVPR)  点群解析のための事前学習モデルの作成  Classificationは2層のMLPを加えて識別。  Object Part Segmentationは、Transformerのいくつかの中間 層と最終層の特徴量を元に、各点のラベルを計算

Slide 123

Slide 123 text

Point-BERT 127

Slide 124

Slide 124 text

Point-BERT 128 点群をパッ チに分割

Slide 125

Slide 125 text

Point-BERT 129 点群をパッ チに分割 点群パッ チから特 徴量算出

Slide 126

Slide 126 text

Point-BERT 130 点群をパッ チに分割 dVAEを用いて パッチ特徴量か ら離散トークンを、 元点群が復元で きるよう学習 トークン 点群パッ チから特 徴量算出

Slide 127

Slide 127 text

Point-BERT 131 点群をパッ チに分割 dVAEを用いて パッチ特徴量か ら離散トークンを、 元点群が復元で きるよう学習 トークン 点群パッ チから特 徴量算出 パッチ特徴量の シーケンス マスクをかける

Slide 128

Slide 128 text

Point-BERT 132 点群をパッ チに分割 dVAEを用いて パッチ特徴量か ら離散トークンを、 元点群が復元で きるよう学習 トークン 点群パッ チから特 徴量算出 パッチ特徴量の シーケンス Transformerで マスク部も含 め、トークンを 予測するよう 学習 マスクをかける

Slide 129

Slide 129 text

Point-BERT 133 点群をパッ チに分割 dVAEを用いて パッチ特徴量か ら離散トークンを、 元点群が復元で きるよう学習 トークン 点群パッ チから特 徴量算出 パッチ特徴量の シーケンス Transformerで マスク部も含 め、トークンを 予測するよう 学習 マスクをかける データ拡張 (CutMixの点 群版)を用い てContrastive Learningで表 現学習

Slide 130

Slide 130 text

Point-BERT 134  実験: ModelNet40, SpaheNetPart

Slide 131

Slide 131 text

Stratified Transformer 135  Lai, X., Liu, J., Jiang, L., Wang, L., Zhao, H., Liu, S., Qi, X., & Jia, J. (2022). Stratified Transformer for 3D Point Cloud Segmentation. Conference on Computer Vision and Pattern Recognition (CVPR)  近傍に対しては密に、遠方に対しては疎にサンプリングする ことで、局所領域の特徴と広域での特徴、両方を集約できる モデルを提案

Slide 132

Slide 132 text

Stratified Transformer 136

Slide 133

Slide 133 text

Stratified Transformer 137 学習可能なLook Up Tableを用いて、点同士 の相対座標をQuery 、 Key、Valueの特徴量へ 変換し、埋め込み

Slide 134

Slide 134 text

Stratified Transformer 138

Slide 135

Slide 135 text

139 Layer Normalization Feed Forward Network

Slide 136

Slide 136 text

140 Layer Normalization 異なるサイズのWindow 内でSelf-Attention

Slide 137

Slide 137 text

141 Layer Normalization 通常のTransformerと同様にKeyとQueryの内積を用い る(Multi-Head Self Attention) y𝑖 = ෍ 𝑗 softmax 𝑄𝑢𝑒𝑟𝑦𝑖 ∙ 𝐾𝑒𝑦𝑗 ∙ 𝑉𝑎𝑙𝑢𝑒𝑗

Slide 138

Slide 138 text

142 Layer Normalization Feed Forward Network Windowを1/2ずら してSelf-Attentionを 計算

Slide 139

Slide 139 text

Stratified Transformer 143

Slide 140

Slide 140 text

Stratified Transformer 144 Farthest Point Sampling + k-nn

Slide 141

Slide 141 text

Stratified Transformer 145 Farthest Point Sampling + k-nn サンプル点のk 近傍でPooling

Slide 142

Slide 142 text

Stratified Transformer 146

Slide 143

Slide 143 text

Stratified Transformer 147 Skip Connectionか らの入力特徴量 Skip Connectionか らの入力座標 前層からの入力 Down Sample前の 点の特徴量を補間

Slide 144

Slide 144 text

Stratified Transformer 148  実験:S3DIS、ShapeNetPart

Slide 145

Slide 145 text

OctFormer 149  Wang, P.-S. (2023). OctFormer: Octree-based Transformers for 3D Point Clouds. ACM Transactions on Graphics (SIGGRAPH), 42(4), 1–11.  点群をWindowで区切ってSelf-Attentionを計算することで、計 算量削減  Windowごとの点の数が異なるという課題を解決するために、 Windowの形状を柔軟に変更  Windowの位置をずらして再計算することで、Receptive Field を拡大(Dilated Partition)

Slide 146

Slide 146 text

OctFormer 150  八分木(英: Octree)とは、木構造の一種で、各ノードに 最大8個の子ノードがある。3次元空間を8つのオクタント (八分空間)に再帰的に分割する場合によく使われる。 Wikipediaより(https://ja.wikipedia.org/wiki/%E5%85%AB%E5%88%86%E6%9C%A8)

Slide 147

Slide 147 text

OctFormer 151 • 点群からOctreeを生成 (ここでは2次元で説明)。 • 赤が点群、点が存在す るノードはグレー。 • Z-Order Curveを用いて、 Octreeノードを1列に並 べる。 • 点の存在するノードお よび同じ親をもつノード のみ並べる。 • ノード配列をオーバー ラップの無いWindow で分割(同じ色が同じ Window) • Window内のノード数 は一定(ここでは7) • 設定したWindow内で Self-Attentionを計算 • Windowの位置をずら すことで受容野を広げ る。 • Dilation=2の例 • Z-Order Curve上(ただ し空ノードは含まない) で2個おきのノードを同 じWindowに設定

Slide 148

Slide 148 text

OctFormer 152  実験:ScanNet

Slide 149

Slide 149 text

Self-Positioning Point-based Transformer (SPoTr) 153  Park, J., Lee, S., Kim, S., Xiong, Y., & Kim, H. J. (2023). Self-positioning Point-based Transformer for Point Cloud Understanding. Conference on Computer Vision and Pattern Recognition (CVPR).  リソース削減のために、全ての点同士のSelf- Attentionを取るのではなく、グローバルおよびロー カルの特徴を捉えたself-positioning point (SP point) を使用。  SP pointを用いてローカルおよびグローバルなCross- Attentionを取ることで、3つのベンチマーク(SONN, SN-Part, and S3DIS)でSOTA達成

Slide 150

Slide 150 text

Self-Positioning Point-based Transformer (SPoTr) 154 SP Pointの算出方法

Slide 151

Slide 151 text

Self-Positioning Point-based Transformer (SPoTr) 155 SP Pointの算出方法 入力点群 座標 各点の特徴ベクトル

Slide 152

Slide 152 text

Self-Positioning Point-based Transformer (SPoTr) 156 SP Pointの算出方法 潜在変数 各潜在変数を元に算出されたSP Point座標 𝛿𝑠 = ෍ 𝑖 Softmax 𝒇𝑖 T𝒛𝑠 𝑥𝑖

Slide 153

Slide 153 text

Self-Positioning Point-based Transformer (SPoTr) 157 SP Pointの算出方法 SP Pointに近い点ほど大きい重み 𝑔 𝛿𝑠 , 𝑥𝑖 = exp −𝛾 𝛿𝑠 − 𝑥𝑖 2 潜在変数に近い特徴ほど大きい重み ℎ 𝒛𝑠 , 𝒇𝑖 = exp 𝒇𝑖 T𝒛𝑠 σ 𝑗 exp 𝒇𝑗 T𝒛𝑠 各SP Pointの特徴ベクトル 𝝍𝑠 = ෍ 𝑖 𝑔 𝛿𝑠 , 𝑥𝑖 ∙ ℎ 𝒛𝑠 , 𝒇𝑖 ∙ 𝒇𝑖

Slide 154

Slide 154 text

Self-Positioning Point-based Transformer (SPoTr) 158 Channel-wise Point Attention (CWPA)

Slide 155

Slide 155 text

Self-Positioning Point-based Transformer (SPoTr) 159 Channel-wise Point Attention (CWPA) SP Pointと入力点群の相 対座標算出 (Positional Embedding) 入力点群座標 SP Point座標

Slide 156

Slide 156 text

Self-Positioning Point-based Transformer (SPoTr) 160 Channel-wise Point Attention (CWPA) 入力点群の特徴ベクトル (Query) SP Pointの特徴ベクトル (Key) SP Pointと入力点群間の 特徴ベクトル差分 SP Pointと入力点群間の 特徴ベクトル差分

Slide 157

Slide 157 text

Self-Positioning Point-based Transformer (SPoTr) 161 Channel-wise Point Attention (CWPA) MLPで特徴ベクトルの変換 MLPで特徴ベクトルの変換 Vector Attention (Channel方向)

Slide 158

Slide 158 text

Self-Positioning Point-based Transformer (SPoTr) 162  全体ネットワーク構成 Segmentation Classification

Slide 159

Slide 159 text

Self-Positioning Point-based Transformer (SPoTr) 163  全体ネットワーク構成 Segmentation Classification Farthest Point Sampling SP Pointを用いた CWPA 入力近傍点群の みでCWPA

Slide 160

Slide 160 text

Self-Positioning Point-based Transformer (SPoTr) 164 実験:S3DIS

Slide 161

Slide 161 text

点群+Transformerまとめ 165 Attentionの計算範囲 Attentionの取り方 Positional Embedding Point Transformer 局所領域のみ 差分+Vector Attention 相対座標+MLP PointMixer 局所領域のみ 差分+Vector Attention 相対座標+MLP PCT 点群全体(小さな点群) 内積+Offset Attention 特徴量がすでに座標情報を含 んでいるという考え方 PVT 局所領域+全体点群(た だし大規模点群に対して は簡易処理) 内積+Scalar Attention 相対座標 Dual Transformer 点群全体(小さな点群) 内積+Scalar Attention 記載なし Fast Point Transformer 局所領域のみ Light-Weight Self- Attention 相対座標(Voxel間 or Voxel- Centroid間)+MLP Point BERT 点群全体(局所領域を トークンとして) 内積+Scalar Attention クラスタ中心座標+MLP Stratified Transformer 局所領域(マルチスケー ル)+Shifted Window 内積+Scalar Attention 相対座標を量子化したLook Up Table OctFormer 局所領域(可変形状) +Dilated Window 内積+Scalar Attention Conditional Positional Encoding (Depth Wise Conv + Batch Norm) SPoTr Self-Positioning Point 差分+Vector Attention 相対座標+MLP