SlideShare une entreprise Scribd logo
1  sur  27
Spatial Temporal Graph
Convolutional Networks for
Skeleton-Based Action
Recognition
概要
• Spatial Temporal Graph Convolutional Networks(ST-GCN)と呼ばれる
動的スケルトンの新しいモデルを提案
• データから空間パターンと時間パターンの両方を自動的に学習
• 空間時間グラフの畳み込みを行う複数の層が構築
➡ 空間次元と時間次元の両方に沿って情報を統合することができる
• ST-GCNは,スケルトンベースのアクション認識のタスクにGCNを初めて適用
ST-GCNの全体の処理の簡単な流れ
• 入力データに対して,空間時間グラフ畳み込み演算の複数回適用され、
グラフ上に高次の特徴マップが生成される。
• その特徴マップから,SoftMax分類器によって対応するアクションカテゴリに分類
• backpropagationによって訓練される
グラフの定義
• ノード :(X,Y,C)
• (X,Y) :ピクセル座標系の2次元座標
• C :18個の人間の関節の信頼スコア
• エッジ :人体構造と時間における連結
Convolutionの計算
• 𝑓𝑖𝑛(𝑣 𝑡𝑗) :入力特徴マップのノード𝑣 𝑡𝑗の特徴ベクトル(座標と関節の信頼スコア)
• 𝑙 𝑡𝑖(𝑣 𝑡𝑗) :空間的ノード𝑣 𝑡𝑗に対して該当するカーネルのインデックス番号(0~K-1)
• 𝑙 𝑆𝑇(𝑣 𝑞𝑗) :𝑙 𝑡𝑖 𝑣 𝑡𝑗 の後に時間的な割り当てを追加
𝑙 𝑆𝑇(𝑣 𝑞𝑗) = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 + (𝑞 − 𝑡 +
Γ
2
) × 𝐾
• 𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗)) :ンデックス番号に合わせて重みを出力する関数
• 𝐵(𝑣 𝑡𝑖) :注目ノードに対する隣接ノードの集合
𝐵 𝑣 𝑡𝑖 = {𝑣 𝑡𝑗|𝑑(𝑣 𝑡𝑗, 𝑣 𝑡𝑖) ≤ K , |𝑞 − 𝑡| ≤
Γ
2
}
• Γ :時間的カーネルサイズ
• K :空間的カーネルサイズ
• 𝑍𝑡𝑖(𝑣 𝑡𝑗) :正規化項(重みのインデックスが同じものどうしで行う)
𝑍𝑡𝑖 𝑣 𝑡𝑗 = | 𝑣 𝑡𝑘 | 𝑙 𝑡𝑖 𝑣 𝑡𝑘 = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 |
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
𝑡 :注目時刻
𝑖 :注目ノード
𝑞 :隣接時刻
𝑗 :隣接ノード
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
• 𝑙 𝑡𝑖(𝑣 𝑡𝑗) :ノード𝑣 𝑡𝑗に対して該当するカーネルのインデックス番号(0~K-1)
➡ つまり𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗))はインデックス番号が𝑙 𝑡𝑖(𝑣 𝑡𝑗)の重みを取り出す
どうやってインデックス番号を割り当てられているのか
• いくつか方法がある
• (B)すべて同じ重み(K=1)
• (C)エッジの距離が0(緑)か1(青)かで分ける(K=2)
• (D)スケルトン全体の重心に対して,注目ノードより距離が短いものと長いもので分ける
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗))
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
学習可能なエッジ重み
• 人がアクションを実行しているとき,隣接する関節ノードが連動する
• 連動に関係のあるノードとないノードがある
• 連動しているノード間のエッジに重要度に合わせて重みづけをする
Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
• ST-GCNの実装(スペクトルアプローチで行う)
(B)の割り当ての場合
• 𝒇 𝒐𝒖𝒕 = 𝜦−
𝟏
𝟐(𝑨 + 𝑰) ⊗ 𝑴𝜦−
𝟏
𝟐 𝒇𝒊𝒏 𝑾
• 𝛬𝑖𝑖 = 𝑗(𝛬𝑖𝑗 + 𝐼 𝑖𝑗)
• 𝑨 :隣接行列
• 𝑰 :単位行列
(C)(D)の割り当ての場合
• 𝒇 𝒐𝒖𝒕 = 𝑗 𝜦𝑗
−
𝟏
𝟐
𝑨𝑗 ⊗ 𝑴𝜦𝑗
−
𝟏
𝟐
𝒇𝒊𝒏 𝑾𝑗
• 𝛬𝑗
𝑖𝑖
= 𝑘(𝛬𝑗
𝑖𝑘
) + 𝛼
• 𝑨𝑗の空の行を避けるために,α= 0.001を設定
• ⊗は要素積
Convolutionの計算
• 注目ノード:𝑣 𝑡𝑖
• 𝑡:注目時刻
• 𝑖:注目位置
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
Convolutionの計算
• 注目ノード:𝑣 𝑡𝑖
• 𝑡:注目時刻
• 𝑖:注目位置
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
隣接ノードの求めかた
• 隣接ノードの集合:𝐵(𝑣 𝑡𝑖)
• 𝐵 𝑣 𝑡𝑖 = {𝑣 𝑡𝑗|𝑑(𝑣 𝑡𝑗, 𝑣 𝑡𝑖) ≤ 𝐾 , |𝑞 − 𝑡| ≤
𝛤
2
}
• 𝑑 𝑣 𝑡𝑗, 𝑣 𝑡𝑖 ≤ 𝐾
(注目ノード𝑣 𝑡𝑖と隣接ノード𝑣 𝑡𝑗の距離がK以下)
• |𝑞 − 𝑡| ≤
𝛤
2
(現在の時刻tと時間隣接ノードの時刻qの差が
𝛤
2
以下)
• 𝐾と𝛤はカーネルの最大サイズ
• 最も短いエッジの距離
隣接ノードの求めかた
• 隣接ノードの集合:𝐵(𝑣 𝑡𝑖)
• 𝐵 𝑣 𝑡𝑖 = {𝑣 𝑡𝑗|𝑑(𝑣 𝑡𝑗, 𝑣 𝑡𝑖) ≤ 𝐾 , |𝑞 − 𝑡| ≤
𝛤
2
}
• 𝑑 𝑣 𝑡𝑗, 𝑣 𝑡𝑖 ≤ 𝐾
(注目ノード𝑣 𝑡𝑖と隣接ノード𝑣 𝑡𝑗の距離がK以下)
• |𝑞 − 𝑡| ≤
𝛤
2
(現在の時刻𝑡と時間隣接ノードの時刻𝑞の差が
𝛤
2
以下)
• 𝐾と𝛤はカーネルの最大サイズ
• 2つのノードの最短のエッジの距離
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
𝛤
2
𝛤
2
K
重み割り当て
• 重み割り当て関数によって与えられたインデックスによって,重みが与えられる
• 割り当ての決定方法
• (B)すべて同じ重み(K=1)
• (C)エッジの距離が0(緑)か1(青)かで分ける(K=2)
• (D)スケルトン全体の重心に対して,注目ノードより距離が短いものと長いもので分ける
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
重み割り当ての式
𝑙 𝑆𝑇(𝑣 𝑞𝑗) = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 + (𝑞 − 𝑡 +
𝛤
2
) × 𝐾
• 𝑙 𝑡𝑖 𝑣𝑡𝑗 は単一フレームの場合のラベルマップ
• 前ページの割り当ての決定方法がここに当たる
• 𝑙 𝑡𝑖 𝑣 𝑡𝑗 が0~𝐾 − 1までとすると, 𝑞 = 𝑡以外の時は𝐾以降の重みを参照
• 以下のように重みが入っていることになる
• [注目ノードと同じフレームの重み][𝑞 = 𝑡以外の時は𝐾以降の重み]
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
重み・正規化項
重み
𝑤 𝑙 𝑆𝑇 𝑣 𝑡𝑗
• インデックス番号に合わせて重みを出力する関数
正規化項
𝑍𝑡𝑖(𝑣 𝑡𝑗)
• 重みのインデックスが同じものどうしで行う
𝑍𝑡𝑖 𝑣 𝑡𝑗 = | 𝑣 𝑡𝑘 | 𝑙 𝑡𝑖 𝑣 𝑡𝑘 = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 |
• 結局,隣接ノード数で割ることと同じ
𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) =
𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖)
1
𝑍𝑡𝑖 𝑣 𝑡𝑗
𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
学習可能なエッジ重み
• 人がアクションを実行しているとき,隣接する関節ノードが連動する
• 連動に関係のあるノードとないノードがある
• 連動しているノード間のエッジに重要度に合わせて重みづけをする
• マスクは,その注目ノード対する隣接ノード特徴の寄与度をスケーリングする
• このマスクを追加することにより、ST-GCNの認識性能をさらに向上させることができることを経
験的に見出した
(B)の割り当ての場合(重みがすべて同じ場合)
• 𝒇 𝒐𝒖𝒕 = 𝜦−
𝟏
𝟐(𝑨 + 𝑰)𝜦−
𝟏
𝟐 𝒇𝒊𝒏 𝑾
• 𝑨 :隣接行列
• 𝑰 :単位行列
• 𝛬𝑖𝑖 = 𝑗(𝛬𝑖𝑗 + 𝐼 𝑖𝑗)
行列𝛬のインデックスiiがそろってる部分は実数値、その他は0(次数行列)
(C)(D)の割り当ての場合
• 𝒇 𝒐𝒖𝒕 = 𝑗 𝜦𝑗
−
𝟏
𝟐
𝑨𝑗 𝜦𝑗
−
𝟏
𝟐
𝒇𝒊𝒏 𝑾𝑗
• 隣接行列𝑨 + 𝑰はいくつかの行列𝑨𝑗に分解され、 𝑨 + 𝑰 = 𝑗(𝑨𝑗)となる
➡ 例:(B)の場合,𝑨0 = 𝑰および𝑨1 = 𝑨
• 𝜦𝒋
𝒊𝒊
= 𝑘(𝜦𝒋
𝒊𝒌
) + 𝛼
• 𝑨𝑗の空の行を避けるために,α= 0.001を設定
学習可能なエッジ重み
• (B)の割り当ての場合
𝒇 𝒐𝒖𝒕 = 𝜦−
𝟏
𝟐(𝑨 + 𝑰) ⊗ 𝑴𝜦−
𝟏
𝟐 𝒇𝒊𝒏 𝑾
• (C)(D)の割り当ての場合
𝒇 𝒐𝒖𝒕 =
𝑗
𝜦𝑗
−
𝟏
𝟐
𝑨𝑗 ⊗ 𝑴𝜦𝑗
−
𝟏
𝟐
𝒇𝒊𝒏 𝑾𝑗
• ⊗は2つの行列間の要素的な積を表す
• マスクMはオール1マトリックスとして初期化
ST-GCNアーキテクチャ
• ST-GCNモデルは、ST-GCNユニットが9つの層から構成されている
• 64ch→ 64ch→ 64ch→ 128ch→ 128ch→ 128ch→ 256ch→ 256ch→ 256ch
• 4と7層目だけストライド2にすることでプーリングを行う
• 各ST-GCNユニットの後に、オーバーフィットを回避するために,
確率が0.5でランダムにドロップアウト
• 最後、得られたテンソルに対してグローバルプーリングを行う
➡アクションの数に合わせて最終層のチャンネル変更
• 最後に、それらをSoftMax分類器に送る
実験
• Deepmind Kineticsの人間行動データセット
• YouTubeから取得した約30万のビデオクリップ
• 毎日の活動、スポーツシーン、インタラクションを伴う複雑なアクションなど,
400種類のヒューマンアクションクラスをカバー
• このデータセットに対して,OpenPoseツールボックスを使用して,
ビデオクリップのすべてのフレームで18個の関節の位置を推定
• top1およびtop5分類精度による認識性能を評価
実験
• ベースライン:空間的時間畳み込みを時間的畳み込みに置き換えネットワーク
(Interpretable 3d human action analysis with temporal convolutional networks)
• ST-GCN+Impはspitial configurationと学習可能なエッジ重要度重み付けを合わせたもの
(B)
(C)
(D)
実験
スケルトンベースでのアクション認識
• 認識性能をトップ1とトップ5の精度で比較
実験
スケルトンベースでのアクション認識
• 使用するデータセット:NTU-RGB + D
• 人間の行動認識タスクのための3Dジョイントアノテーションを持つ最大のデータセット
• 制約のあるラボ環境でキャプチャされた40人のアクション
• 60個のアクションクラス
• 56,000個のアクションクリップ
• Kinectにより取得された位置(X,Y,Z)がノード情報
• 1人当たりのノード数は25個
実験
スケルトンベースでのアクション認識
• X-Sub
• 1人のデータで学習
• 評価は残りの二人のデータで行う
• X-View
• 2方向のカメラのビデオから学習
• 上以外の方向のカメラのビデオで評価
実験
• スケルトンベースの方法の精度は、ビデオフレームベースのモデルに劣るっている
(The kinetics human action video dataset)
➡ビデオフレームベースは周りのオブジェクトやシーンを認識しているから
実験
• 体の動きに強く関連しているクラスのみで,モデルの平均クラス精度を比較
➡この場合パフォーマンスの差が少なくなる
実験
• RGBモデル,オプティカルフローモデル,STGCNの3つを組み合わせて
アクション認識の精度を比較
➡ ST-GCNは、RGBおよびオプティカルフローによる最先端のモデルの精度を
達成することはできないが、そのようなモデルとお互いに補い合うことがわかる。

Contenu connexe

Tendances

変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing Flow
Akihiro Nitta
 

Tendances (20)

モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
【DL輪読会】ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
【DL輪読会】ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders【DL輪読会】ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
【DL輪読会】ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
 
[DL輪読会]SlowFast Networks for Video Recognition
[DL輪読会]SlowFast Networks for Video Recognition[DL輪読会]SlowFast Networks for Video Recognition
[DL輪読会]SlowFast Networks for Video Recognition
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
 
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
 
Action Recognitionの歴史と最新動向
Action Recognitionの歴史と最新動向Action Recognitionの歴史と最新動向
Action Recognitionの歴史と最新動向
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation[DL輪読会]Graph R-CNN for Scene Graph Generation
[DL輪読会]Graph R-CNN for Scene Graph Generation
 
変分推論と Normalizing Flow
変分推論と Normalizing Flow変分推論と Normalizing Flow
変分推論と Normalizing Flow
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
 
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 
[DL輪読会]1次近似系MAMLとその理論的背景
[DL輪読会]1次近似系MAMLとその理論的背景[DL輪読会]1次近似系MAMLとその理論的背景
[DL輪読会]1次近似系MAMLとその理論的背景
 
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデルSliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデル
 

Similaire à Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

Similaire à Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition (20)

[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
 
Hybrid computing using a neural network with dynamic external memory
Hybrid computing using a neural network with dynamic external memoryHybrid computing using a neural network with dynamic external memory
Hybrid computing using a neural network with dynamic external memory
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape AnalysisFeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
Variational autoencoder
Variational autoencoderVariational autoencoder
Variational autoencoder
 
Long short-term memory (LSTM)
Long short-term memory (LSTM)Long short-term memory (LSTM)
Long short-term memory (LSTM)
 
K shapes zemiyomi
K shapes zemiyomiK shapes zemiyomi
K shapes zemiyomi
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
 
Learning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data ManifoldLearning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data Manifold
 
PRML輪読#6
PRML輪読#6PRML輪読#6
PRML輪読#6
 
PRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionPRML 4.1 Discriminant Function
PRML 4.1 Discriminant Function
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
kasawaki b
kasawaki bkasawaki b
kasawaki b
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner Basis
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
 
行列計算アルゴリズム
行列計算アルゴリズム行列計算アルゴリズム
行列計算アルゴリズム
 

Plus de yukihiro domae (6)

Graph U-Net
Graph U-NetGraph U-Net
Graph U-Net
 
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
Graph Refinement based Tree Extraction using Mean-Field Networks and Graph Ne...
 
Texture-Aware Superpixel Segmentation
Texture-Aware Superpixel SegmentationTexture-Aware Superpixel Segmentation
Texture-Aware Superpixel Segmentation
 
Superpixel Sampling Networks
Superpixel Sampling NetworksSuperpixel Sampling Networks
Superpixel Sampling Networks
 
Graph LSTM解説
Graph LSTM解説Graph LSTM解説
Graph LSTM解説
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsules
 

Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

  • 1. Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition
  • 2. 概要 • Spatial Temporal Graph Convolutional Networks(ST-GCN)と呼ばれる 動的スケルトンの新しいモデルを提案 • データから空間パターンと時間パターンの両方を自動的に学習 • 空間時間グラフの畳み込みを行う複数の層が構築 ➡ 空間次元と時間次元の両方に沿って情報を統合することができる • ST-GCNは,スケルトンベースのアクション認識のタスクにGCNを初めて適用
  • 4. グラフの定義 • ノード :(X,Y,C) • (X,Y) :ピクセル座標系の2次元座標 • C :18個の人間の関節の信頼スコア • エッジ :人体構造と時間における連結
  • 5. Convolutionの計算 • 𝑓𝑖𝑛(𝑣 𝑡𝑗) :入力特徴マップのノード𝑣 𝑡𝑗の特徴ベクトル(座標と関節の信頼スコア) • 𝑙 𝑡𝑖(𝑣 𝑡𝑗) :空間的ノード𝑣 𝑡𝑗に対して該当するカーネルのインデックス番号(0~K-1) • 𝑙 𝑆𝑇(𝑣 𝑞𝑗) :𝑙 𝑡𝑖 𝑣 𝑡𝑗 の後に時間的な割り当てを追加 𝑙 𝑆𝑇(𝑣 𝑞𝑗) = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 + (𝑞 − 𝑡 + Γ 2 ) × 𝐾 • 𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗)) :ンデックス番号に合わせて重みを出力する関数 • 𝐵(𝑣 𝑡𝑖) :注目ノードに対する隣接ノードの集合 𝐵 𝑣 𝑡𝑖 = {𝑣 𝑡𝑗|𝑑(𝑣 𝑡𝑗, 𝑣 𝑡𝑖) ≤ K , |𝑞 − 𝑡| ≤ Γ 2 } • Γ :時間的カーネルサイズ • K :空間的カーネルサイズ • 𝑍𝑡𝑖(𝑣 𝑡𝑗) :正規化項(重みのインデックスが同じものどうしで行う) 𝑍𝑡𝑖 𝑣 𝑡𝑗 = | 𝑣 𝑡𝑘 | 𝑙 𝑡𝑖 𝑣 𝑡𝑘 = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 | 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗)) 𝑡 :注目時刻 𝑖 :注目ノード 𝑞 :隣接時刻 𝑗 :隣接ノード
  • 6. Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition • 𝑙 𝑡𝑖(𝑣 𝑡𝑗) :ノード𝑣 𝑡𝑗に対して該当するカーネルのインデックス番号(0~K-1) ➡ つまり𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗))はインデックス番号が𝑙 𝑡𝑖(𝑣 𝑡𝑗)の重みを取り出す どうやってインデックス番号を割り当てられているのか • いくつか方法がある • (B)すべて同じ重み(K=1) • (C)エッジの距離が0(緑)か1(青)かで分ける(K=2) • (D)スケルトン全体の重心に対して,注目ノードより距離が短いものと長いもので分ける 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗))
  • 7. Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition 学習可能なエッジ重み • 人がアクションを実行しているとき,隣接する関節ノードが連動する • 連動に関係のあるノードとないノードがある • 連動しているノード間のエッジに重要度に合わせて重みづけをする
  • 8. Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition • ST-GCNの実装(スペクトルアプローチで行う) (B)の割り当ての場合 • 𝒇 𝒐𝒖𝒕 = 𝜦− 𝟏 𝟐(𝑨 + 𝑰) ⊗ 𝑴𝜦− 𝟏 𝟐 𝒇𝒊𝒏 𝑾 • 𝛬𝑖𝑖 = 𝑗(𝛬𝑖𝑗 + 𝐼 𝑖𝑗) • 𝑨 :隣接行列 • 𝑰 :単位行列 (C)(D)の割り当ての場合 • 𝒇 𝒐𝒖𝒕 = 𝑗 𝜦𝑗 − 𝟏 𝟐 𝑨𝑗 ⊗ 𝑴𝜦𝑗 − 𝟏 𝟐 𝒇𝒊𝒏 𝑾𝑗 • 𝛬𝑗 𝑖𝑖 = 𝑘(𝛬𝑗 𝑖𝑘 ) + 𝛼 • 𝑨𝑗の空の行を避けるために,α= 0.001を設定 • ⊗は要素積
  • 9.
  • 10. Convolutionの計算 • 注目ノード:𝑣 𝑡𝑖 • 𝑡:注目時刻 • 𝑖:注目位置 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
  • 11. Convolutionの計算 • 注目ノード:𝑣 𝑡𝑖 • 𝑡:注目時刻 • 𝑖:注目位置 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗)) 隣接ノードの求めかた • 隣接ノードの集合:𝐵(𝑣 𝑡𝑖) • 𝐵 𝑣 𝑡𝑖 = {𝑣 𝑡𝑗|𝑑(𝑣 𝑡𝑗, 𝑣 𝑡𝑖) ≤ 𝐾 , |𝑞 − 𝑡| ≤ 𝛤 2 } • 𝑑 𝑣 𝑡𝑗, 𝑣 𝑡𝑖 ≤ 𝐾 (注目ノード𝑣 𝑡𝑖と隣接ノード𝑣 𝑡𝑗の距離がK以下) • |𝑞 − 𝑡| ≤ 𝛤 2 (現在の時刻tと時間隣接ノードの時刻qの差が 𝛤 2 以下) • 𝐾と𝛤はカーネルの最大サイズ • 最も短いエッジの距離
  • 12. 隣接ノードの求めかた • 隣接ノードの集合:𝐵(𝑣 𝑡𝑖) • 𝐵 𝑣 𝑡𝑖 = {𝑣 𝑡𝑗|𝑑(𝑣 𝑡𝑗, 𝑣 𝑡𝑖) ≤ 𝐾 , |𝑞 − 𝑡| ≤ 𝛤 2 } • 𝑑 𝑣 𝑡𝑗, 𝑣 𝑡𝑖 ≤ 𝐾 (注目ノード𝑣 𝑡𝑖と隣接ノード𝑣 𝑡𝑗の距離がK以下) • |𝑞 − 𝑡| ≤ 𝛤 2 (現在の時刻𝑡と時間隣接ノードの時刻𝑞の差が 𝛤 2 以下) • 𝐾と𝛤はカーネルの最大サイズ • 2つのノードの最短のエッジの距離 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗)) 𝛤 2 𝛤 2 K
  • 13. 重み割り当て • 重み割り当て関数によって与えられたインデックスによって,重みが与えられる • 割り当ての決定方法 • (B)すべて同じ重み(K=1) • (C)エッジの距離が0(緑)か1(青)かで分ける(K=2) • (D)スケルトン全体の重心に対して,注目ノードより距離が短いものと長いもので分ける 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
  • 14. 重み割り当ての式 𝑙 𝑆𝑇(𝑣 𝑞𝑗) = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 + (𝑞 − 𝑡 + 𝛤 2 ) × 𝐾 • 𝑙 𝑡𝑖 𝑣𝑡𝑗 は単一フレームの場合のラベルマップ • 前ページの割り当ての決定方法がここに当たる • 𝑙 𝑡𝑖 𝑣 𝑡𝑗 が0~𝐾 − 1までとすると, 𝑞 = 𝑡以外の時は𝐾以降の重みを参照 • 以下のように重みが入っていることになる • [注目ノードと同じフレームの重み][𝑞 = 𝑡以外の時は𝐾以降の重み] 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
  • 15. 重み・正規化項 重み 𝑤 𝑙 𝑆𝑇 𝑣 𝑡𝑗 • インデックス番号に合わせて重みを出力する関数 正規化項 𝑍𝑡𝑖(𝑣 𝑡𝑗) • 重みのインデックスが同じものどうしで行う 𝑍𝑡𝑖 𝑣 𝑡𝑗 = | 𝑣 𝑡𝑘 | 𝑙 𝑡𝑖 𝑣 𝑡𝑘 = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 | • 結局,隣接ノード数で割ることと同じ 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗))
  • 16. 学習可能なエッジ重み • 人がアクションを実行しているとき,隣接する関節ノードが連動する • 連動に関係のあるノードとないノードがある • 連動しているノード間のエッジに重要度に合わせて重みづけをする • マスクは,その注目ノード対する隣接ノード特徴の寄与度をスケーリングする • このマスクを追加することにより、ST-GCNの認識性能をさらに向上させることができることを経 験的に見出した
  • 17. (B)の割り当ての場合(重みがすべて同じ場合) • 𝒇 𝒐𝒖𝒕 = 𝜦− 𝟏 𝟐(𝑨 + 𝑰)𝜦− 𝟏 𝟐 𝒇𝒊𝒏 𝑾 • 𝑨 :隣接行列 • 𝑰 :単位行列 • 𝛬𝑖𝑖 = 𝑗(𝛬𝑖𝑗 + 𝐼 𝑖𝑗) 行列𝛬のインデックスiiがそろってる部分は実数値、その他は0(次数行列)
  • 18. (C)(D)の割り当ての場合 • 𝒇 𝒐𝒖𝒕 = 𝑗 𝜦𝑗 − 𝟏 𝟐 𝑨𝑗 𝜦𝑗 − 𝟏 𝟐 𝒇𝒊𝒏 𝑾𝑗 • 隣接行列𝑨 + 𝑰はいくつかの行列𝑨𝑗に分解され、 𝑨 + 𝑰 = 𝑗(𝑨𝑗)となる ➡ 例:(B)の場合,𝑨0 = 𝑰および𝑨1 = 𝑨 • 𝜦𝒋 𝒊𝒊 = 𝑘(𝜦𝒋 𝒊𝒌 ) + 𝛼 • 𝑨𝑗の空の行を避けるために,α= 0.001を設定
  • 19. 学習可能なエッジ重み • (B)の割り当ての場合 𝒇 𝒐𝒖𝒕 = 𝜦− 𝟏 𝟐(𝑨 + 𝑰) ⊗ 𝑴𝜦− 𝟏 𝟐 𝒇𝒊𝒏 𝑾 • (C)(D)の割り当ての場合 𝒇 𝒐𝒖𝒕 = 𝑗 𝜦𝑗 − 𝟏 𝟐 𝑨𝑗 ⊗ 𝑴𝜦𝑗 − 𝟏 𝟐 𝒇𝒊𝒏 𝑾𝑗 • ⊗は2つの行列間の要素的な積を表す • マスクMはオール1マトリックスとして初期化
  • 20. ST-GCNアーキテクチャ • ST-GCNモデルは、ST-GCNユニットが9つの層から構成されている • 64ch→ 64ch→ 64ch→ 128ch→ 128ch→ 128ch→ 256ch→ 256ch→ 256ch • 4と7層目だけストライド2にすることでプーリングを行う • 各ST-GCNユニットの後に、オーバーフィットを回避するために, 確率が0.5でランダムにドロップアウト • 最後、得られたテンソルに対してグローバルプーリングを行う ➡アクションの数に合わせて最終層のチャンネル変更 • 最後に、それらをSoftMax分類器に送る
  • 21. 実験 • Deepmind Kineticsの人間行動データセット • YouTubeから取得した約30万のビデオクリップ • 毎日の活動、スポーツシーン、インタラクションを伴う複雑なアクションなど, 400種類のヒューマンアクションクラスをカバー • このデータセットに対して,OpenPoseツールボックスを使用して, ビデオクリップのすべてのフレームで18個の関節の位置を推定 • top1およびtop5分類精度による認識性能を評価
  • 22. 実験 • ベースライン:空間的時間畳み込みを時間的畳み込みに置き換えネットワーク (Interpretable 3d human action analysis with temporal convolutional networks) • ST-GCN+Impはspitial configurationと学習可能なエッジ重要度重み付けを合わせたもの (B) (C) (D)
  • 24. 実験 スケルトンベースでのアクション認識 • 使用するデータセット:NTU-RGB + D • 人間の行動認識タスクのための3Dジョイントアノテーションを持つ最大のデータセット • 制約のあるラボ環境でキャプチャされた40人のアクション • 60個のアクションクラス • 56,000個のアクションクリップ • Kinectにより取得された位置(X,Y,Z)がノード情報 • 1人当たりのノード数は25個
  • 25. 実験 スケルトンベースでのアクション認識 • X-Sub • 1人のデータで学習 • 評価は残りの二人のデータで行う • X-View • 2方向のカメラのビデオから学習 • 上以外の方向のカメラのビデオで評価
  • 26. 実験 • スケルトンベースの方法の精度は、ビデオフレームベースのモデルに劣るっている (The kinetics human action video dataset) ➡ビデオフレームベースは周りのオブジェクトやシーンを認識しているから 実験 • 体の動きに強く関連しているクラスのみで,モデルの平均クラス精度を比較 ➡この場合パフォーマンスの差が少なくなる

Notes de l'éditeur

  1. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  2. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  3. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  4. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  5. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  6. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  7. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  8. グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる