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およびオプティカルフローによる最先端のモデルの精度を
達成することはできないが、そのようなモデルとお互いに補い合うことがわかる。

Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

  • 1.
    Spatial Temporal Graph ConvolutionalNetworks for Skeleton-Based Action Recognition
  • 2.
    概要 • Spatial TemporalGraph Convolutional Networks(ST-GCN)と呼ばれる 動的スケルトンの新しいモデルを提案 • データから空間パターンと時間パターンの両方を自動的に学習 • 空間時間グラフの畳み込みを行う複数の層が構築 ➡ 空間次元と時間次元の両方に沿って情報を統合することができる • ST-GCNは,スケルトンベースのアクション認識のタスクにGCNを初めて適用
  • 3.
  • 4.
    グラフの定義 • ノード :(X,Y,C) •(X,Y) :ピクセル座標系の2次元座標 • C :18個の人間の関節の信頼スコア • エッジ :人体構造と時間における連結
  • 5.
    Convolutionの計算 • 𝑓𝑖𝑛(𝑣 𝑡𝑗):入力特徴マップのノード𝑣 𝑡𝑗の特徴ベクトル(座標と関節の信頼スコア) • 𝑙 𝑡𝑖(𝑣 𝑡𝑗) :空間的ノード𝑣 𝑡𝑗に対して該当するカーネルのインデックス番号(0~K-1) • 𝑙 𝑆𝑇(𝑣 𝑞𝑗) :𝑙 𝑡𝑖 𝑣 𝑡𝑗 の後に時間的な割り当てを追加 𝑙 𝑆𝑇(𝑣 𝑞𝑗) = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 + (𝑞 − 𝑡 + Γ 2 ) × 𝐾 • 𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗)) :ンデックス番号に合わせて重みを出力する関数 • 𝐵(𝑣 𝑡𝑖) :注目ノードに対する隣接ノードの集合 𝐵 𝑣 𝑡𝑖 = {𝑣 𝑡𝑗|𝑑(𝑣 𝑡𝑗, 𝑣 𝑡𝑖) ≤ K , |𝑞 − 𝑡| ≤ Γ 2 } • Γ :時間的カーネルサイズ • K :空間的カーネルサイズ • 𝑍𝑡𝑖(𝑣 𝑡𝑗) :正規化項(重みのインデックスが同じものどうしで行う) 𝑍𝑡𝑖 𝑣 𝑡𝑗 = | 𝑣 𝑡𝑘 | 𝑙 𝑡𝑖 𝑣 𝑡𝑘 = 𝑙 𝑡𝑖 𝑣 𝑡𝑗 | 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑆𝑇(𝑣 𝑞𝑗)) 𝑡 :注目時刻 𝑖 :注目ノード 𝑞 :隣接時刻 𝑗 :隣接ノード
  • 6.
    Spatial Temporal GraphConvolutional Networks for Skeleton-Based Action Recognition • 𝑙 𝑡𝑖(𝑣 𝑡𝑗) :ノード𝑣 𝑡𝑗に対して該当するカーネルのインデックス番号(0~K-1) ➡ つまり𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗))はインデックス番号が𝑙 𝑡𝑖(𝑣 𝑡𝑗)の重みを取り出す どうやってインデックス番号を割り当てられているのか • いくつか方法がある • (B)すべて同じ重み(K=1) • (C)エッジの距離が0(緑)か1(青)かで分ける(K=2) • (D)スケルトン全体の重心に対して,注目ノードより距離が短いものと長いもので分ける 𝑓𝑜𝑢𝑡(𝑣 𝑡𝑖) = 𝑣 𝑡𝑗∈𝐵(𝑣 𝑡𝑖) 1 𝑍𝑡𝑖 𝑣 𝑡𝑗 𝑓𝑖𝑛(𝑣 𝑡𝑗) ∙ 𝑤(𝑙 𝑡𝑖(𝑣 𝑡𝑗))
  • 7.
    Spatial Temporal GraphConvolutional Networks for Skeleton-Based Action Recognition 学習可能なエッジ重み • 人がアクションを実行しているとき,隣接する関節ノードが連動する • 連動に関係のあるノードとないノードがある • 連動しているノード間のエッジに重要度に合わせて重みづけをする
  • 8.
    Spatial Temporal GraphConvolutional Networks for Skeleton-Based Action Recognition • ST-GCNの実装(スペクトルアプローチで行う) (B)の割り当ての場合 • 𝒇 𝒐𝒖𝒕 = 𝜦− 𝟏 𝟐(𝑨 + 𝑰) ⊗ 𝑴𝜦− 𝟏 𝟐 𝒇𝒊𝒏 𝑾 • 𝛬𝑖𝑖 = 𝑗(𝛬𝑖𝑗 + 𝐼 𝑖𝑗) • 𝑨 :隣接行列 • 𝑰 :単位行列 (C)(D)の割り当ての場合 • 𝒇 𝒐𝒖𝒕 = 𝑗 𝜦𝑗 − 𝟏 𝟐 𝑨𝑗 ⊗ 𝑴𝜦𝑗 − 𝟏 𝟐 𝒇𝒊𝒏 𝑾𝑗 • 𝛬𝑗 𝑖𝑖 = 𝑘(𝛬𝑗 𝑖𝑘 ) + 𝛼 • 𝑨𝑗の空の行を避けるために,α= 0.001を設定 • ⊗は要素積
  • 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 3dhuman action analysis with temporal convolutional networks) • ST-GCN+Impはspitial configurationと学習可能なエッジ重要度重み付けを合わせたもの (B) (C) (D)
  • 23.
  • 24.
    実験 スケルトンベースでのアクション認識 • 使用するデータセット:NTU-RGB +D • 人間の行動認識タスクのための3Dジョイントアノテーションを持つ最大のデータセット • 制約のあるラボ環境でキャプチャされた40人のアクション • 60個のアクションクラス • 56,000個のアクションクリップ • Kinectにより取得された位置(X,Y,Z)がノード情報 • 1人当たりのノード数は25個
  • 25.
    実験 スケルトンベースでのアクション認識 • X-Sub • 1人のデータで学習 •評価は残りの二人のデータで行う • X-View • 2方向のカメラのビデオから学習 • 上以外の方向のカメラのビデオで評価
  • 26.
    実験 • スケルトンベースの方法の精度は、ビデオフレームベースのモデルに劣るっている (The kineticshuman action video dataset) ➡ビデオフレームベースは周りのオブジェクトやシーンを認識しているから 実験 • 体の動きに強く関連しているクラスのみで,モデルの平均クラス精度を比較 ➡この場合パフォーマンスの差が少なくなる
  • 27.

Editor's Notes

  • #21 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  • #22 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  • #23 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  • #24 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  • #25 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  • #26 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  • #27 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる
  • #28 グローバルプーリングは最終層の層のそれぞれのチェンネルごとに平均をとったものになる