본문 바로가기

AI 논문

[ 꼼꼼하게 논문 읽기 ] DG-STGCN: Dynamic Spatial-Temporal Modeling for Skeleton-based Action Recognition ( 2022 )

728x90
반응형

정말 오랜만에 글을 쓰는 것 같네요. 정말정말 저엉말 바빴어요

배포 기간동안은 성능 검증에, 버그 fix에 고도화에 아주 미쳐버리는줄 알았죠

여튼 오랜만에 뵈어요 새해복 많이 받으시고 시작할게요

Abstract

  Graph convolution networks 는 skeleton-based action recogntion에 광범위하게 사용되어 왔죠. 저자들은 현존하는 GCN-based approaches가 대게 prescrbed graphical structures에 의존한다는 걸 알았다고 합니다. 그리고 그 사실은 joints간의 복잡한 correlations를 capture하는 유연성에 제한을 걸죠. 저자들은 skeleton-based action recognition을 위한 새로운 framework를 제안합니다. DG-STGCN 이라고 부르죠. 두개의 module로 구성되어 있는데, DG-GCN 과 DG-TCN 이고 각각 spatial과 temporal modeling에 대한 것이죠. 특히 DG-GCN은 dynamic graphical structures를 capture하는 데 prescribed 된 graphical structures에 의존하는 대신 학습된 learned affinity matrices를 사용합니다. 그러는 동안 DG-TCN은 group-wise로 다양한 receptive fields를 가지고 temporal convolutions를 수행하고, adaptive multi-level temporal modeling 을 위한 dynamic joint skeleton fusion module을 포함하죠. 성능이야 여러 dataset에서 SOTA를 달성했다고 하네요.


Introduction

  Human action recognition은 video understanding에서 핵심 task죠. 비디오에 대해, rich multimedia로 부터 derived 된 various modalities들은 recognition task에 beneficial 하죠. RGB, optical flow, human skeletons task를 포함해서 말이죠. 이들 중에서, skeleton-based action recognition은 지속적으로 관심이 증대되어 왔는데, action-focusing 특성과 complicated backgrounds에 강인하다는 특성 떄문이었죠.  다른 modalities과는 다르게 skeleton data를 매우 압축하고 추상화하는데 이정보를 2D나 3D human joint coordinate에 포함시키죠. action recognition에 대해, skeleton data의 compactness는 robust features와 efficient processing을 야기하죠.

  Yan 연구는 처음으로 ST-GCN을 제안하는데 skeleton motion patterns를 spatial-temporal graph를 활용해 model 했죠. GCN-based approaches는 skeleton-based action recognition에서 가장 인기있는 paradigm이 되었죠. ST-GCN에서 spatial modeling과 temporal modeling은 각각 수행되죠 이는 spatial grah convolutions와 temporal convolutions을 통해 수행됩니다. Spatial graph convolutions는 different joints의 feature를 fuse합니다. 이때 manually defined topology가 사용되죠. 이 topology는 sparse adjacency matrix으로 나타나는데 skeleton joints 간의 direct한 connections를 나타내죠. temporal modeling을 위해 temporal 1D convolutions가 각 joint에 parallel하게 적용되는데 이는 joint-specific motion patterns를 model하죠.

  몇몇 연구는 learnable topology refinement를 가지고 spatial modeling을 improve할 것을 제안하죠. good effectiveness를 보여줬음에도, 이 approaches들은 여전히 manually defined skeleton topolgy에 의존하죠. 이는 different datasets에 대해 매우 고통스러운 customization을 요구하죠 (....심하게 공감되네요..ㅎㅎ) 더 중요한것은,  action을 수행할 때 joints 간의 intrinsic cooperation 때문에, fully learnable coefficient matrices 이 prescribed graphical sturcture보다 complicated joint correlations를 model하는데 더 적합하죠. 한편, previous GCN-based approaches는 대게 fixed receptive field를 가진 temporal convolutions를 사용하죠. 그리고 이는 joint-level motions를 certain temporal range에서 model하는 데 사용되었고요. 이는 dynamic temporal receptive field 안에서 multi-level ( joint-level과 skelethon-level ) motion patterns를 modeling하는 것의 benefits를 간과하는 것이죠.

  current works의 limitations를 재검토하여, 저자들은 새로운 GCN architecture 를 제안하는 데 이는 skeleton-based action recognition을 위한 것이며 DG-STGCN이라고 부르죠. DG-STGCN은 skeleton data에 대해 group-wise 로 dynamic spatial-temporal modeling을 가능하게 하죠. DG-STGCN에서, spatial modeling과 temporal modeling이 각각 수행되는데 dynamic group GCNS와 dynamic group temporal ConvNets에 의해서 각각 수행되죠. DG-STGCN은 세 가지 매력적인 properties를 가집니다. 먼저, DG-STGCN은 spatial modeling을 위해 learnable coefficient matrices에 기반하죠. 이는 good joint topology를 manually하게 define하는 번거로운 절차를 제거합니다. 다음으로, dynamic roup-wise designs은 graph convolutions와 temporal convolutions의 diversified groups를 활용해 skeleton motion의 dynamic spatial-temporla modeling 가능하게 하고 이는 representation capability와 flexibility를 향상시키죠. 마지막으로, DG-STGCN은 많은 benchmarks에서 중요한 향상을 이뤄냈죠.

  DG-STGCN에서, 두 DG modules들은 먼저 input skeleton features를 N feature group으로 transform합니다. ( 1/N으로 줄여진 channel width를 말하죠 ) 그리고 난 뒤에 spatial or temporal modeling을 각 feature group에 대해 독립적으로 수행합니다. DG-GCN에서, 각 feature group은 inter-joint spatial modeling을 위한 its own dynamic coefficient matrix 가집니다. 각 coefficient matrix는 componets로 부터 유도된 three data 의 dynamic summation 이죠. 즉 all samples( static component ) 를 따라 joint correlations를 models하는 하나의 shared matrix 와 두 개의 different designs를 가진 sample-specific matrices ( dynamic components ) 를 가지죠. 실험에서, DG-GCN은 굉장한 capability를 나타내고, graph convolutions의 multiple variants를 efficacy와 efficiency 모두에서 압도했죠. temporal modeling에 대해, 저자들은 dynamic group temporal ConvNet을 제안합니다. 이는 diversified receptive fields를 가지고 있고 더 나아가 dynamic joint-skeleton fusion module을 적용하는데 D-JSF module은 joint-level과 skeleton-level motion patterns를 다양한 temporal range에서 fuse하는 데 사용되죠. 구체적으로, D-JSF module은 joint-level과 skeleton-level features를 parallelly하게 model하는 데, multi-group temporal ConvNet을 사용하죠. multi-group temporal ConvNet에서 각 group은 different temporal receptive fields에서 motion patterns를 추출하죠. joint-level과 skeleton-level features는 dynamically하게 joint-skeleton motion features로 fused 되는데 이때 learnable joint-specific coefficients가 활용되죠. computational efficiency preserved를 활용해, DG-TCN은 great temporal modeling capability를 가지죠. 한편, 제안된 D-JSF module은 negligible한 additional cos를 가지고 multi-level temporal modeling을 masters 하죠.

  향상된 flexibility는 increased overfitting risk를 야기하죠. 저자들은 Uniform Sampling을 strong temporal data augmentation strategy로 적용할 것을 제안하죠. 이는 highly diversified training samples를 생성하는 subsequence를 skeleton sequence data로부터 randomly하게 samples 합니다. 이 strategy는 multiple backbones와 benchmarks에 대해 consitent 한 improvements를 야기하죠. 그리고 DG-STGCN에 대해 특히 더 beneficial합니다.

  Extensive experiment results는 dynamic group design과 저자들이 제안한 good practices의 effectiveness 강조하죠. Our DG-STGCN은 여러 dataset에서 SOTA를 차지했습니다.


Related Works

2.1 Graph Neural Networks

  non-Euclidean structured data를 process하기 위해, Graph Neural Networks 는 광범위 하게 적용되었고 사용되었습니다. GNNs는 일반적으로 spectral GNNs와 spatial GNNs로 분류되죠. Spetral GNNs 는 spectral domain에 대해 convolutions를 적용하죠. spectral GNNs는 all samples간의 fixed adjacency를 가정하는데 이는  graph structures를 unseen하는  generalizability를 제한하죠 Spatial GNNs 는 이와 대조적으로, each node에 대해 local feature fusion과 activation을 통해layer-wise로 feature updates를 수행하죠. skeleton-based action recognition을 위한 대게의 GCN approaches는 Spatial GNNs의 정신을 따릅니다. 그들은 spatial-temporal graph를 skeleton data에 기반해 construct하고 neighborhood 에서 feature aggregation을 위해 convolutions를 적용합니다. 그리고 layer-wise feature updates를 수행하죠.

2.2 Skeleton-based Action Recognition

  Human skeletons는 backgrounds나 illumination changes에 robust하죠. 이는 sensor나 pose estimators로 얻을 수 있죠. Various paradigms 가 skeleton-based action recognition에 대해 designed 되어 왔죠. 초기 approaches는 hand-crafted features 를 designs 했는데 이 features들은 joint motion patterns를 capture하죠. 그런다음 그들을 직접  downstream classifiers에 넣어줍니다. deep learning이 발전하고, 그에 따른 methods들은 skeleton data를 time series로 고려하죠. 그리고 RNN을 사용하여 그들을 처리합니다. 그러나, 이들 approaches는 joint relationships를 명확하게 model하지 못합니다. 이는 recognition performance에 나쁜 영향을 미쳤죠. 이를 완화하기 위해, GCN-based approaches는 spatial-temporal graphs를 construct하죠. 이들은 각각 spatial modeling과 temporal modeling을 독립적으로 수행합니다.

   skeleton-based action recognition에 대한 GCN의 초기 application은 ST-GCN 인데요. ST-GCN은 stacked GCN block를 skeleton data를 처리하는 데 사용하죠. 각 block은 spatial module과 temporal module로 구성되어 있죠. 단순한 baseline이기 때문에, spatial module과 temporal module의 ST-GCN's instatiation은 직관적입니다: spatial module은 sparse coefficient matrices를 적용하는데 이는 pre-defined adjacency matrix로 부터 유도되죠, 이 matrix은 spatial feature fusion을 위한 것이고요. 반면에 temporal module은 single 1D convolutiondmf temporal modeling을 위해 사용합니다. 뒤 따른 연구들은 ST-GCN의 main framework을 물려받죠. 그리고 다양한 incremental improvemonets를 spatial 과 temporla modules에 대해 develop하죠. temporal modeling을 위해, advanced multi-scale TCN이 naive implementation을 대체했죠. 이는 multiple durations을 활용해 actions를 modeling을 가능하게 했고요. improved capacity에도 불구하고 temporal module은 joint-level motion modeling을 수행하죠. 이는 무언가 충분치 않죠. spatial modeling에 대해, 여러 연구가 prescrived grahical structure에 대해 data-driven refinement를 학습할 것을 제안했죠. refinement는 channel-agnostic 이나 channel-specific 일 수 있죠. 한편 Liu 연구는 different ranges를 가진 joint relationship modeling에 대해 multi-scale graph topologies를 도입하는하죠. spatial modeling modules도 존재하는데 pre-defined topology를 요구하지 않죠, Shift-GCN은 graph shift를 inter-joint feature fusion을 위해 적용하죠. 반면 SGN은 lightweight attention modlul을 가진 input skeleton sequence에 기반한 coefficient matrices를 추정하죠. 그러나, purely dynamic approaches는 경쟁력이 없었죠. SOTA 역시 달성하지 못했고요. 이 연구에서, 저자들은 dynamic group GCN을 design 하죠. spatial feature fusion strategy를 scratch로 부터 학습하고 prescribed graphical structure에 의존하지 않습니다.

  GCNs 외에 또 다른 stream은 convolutional neural networks를 skeleton-based action recognition에 적용하는 것이었죠. 2D-CNN에 기반한 approaches는 skeleton sequence를 pseudo image로 convert하고 그것을 2D CNN을 활용해 처리합니다. 이는 1)  joint의 coordignates가 주어질 때 V x T shape의 2D input을 직접 생성함으로써 얻어질 수 있죠 ( V : number of joints, T : temporal length ); 2) joints ( 2D only )에 대해 pseudo heatmaps를 generating 하고 그들을 color coding이나 K-channel pseudo image를 만드는 learnable modules을 활용해 temporal dimension 에 따라 aggregating하죠 이들 approaches는 CNN의 locality nature를 사용하는 데 실패하고 heatmap aggregation 동안 information loss 때문에 고통받죠. 따라서 GCN-based approaches보다 나쁜 성능을 보였죠. 최근, PoseC3D는 heatmaps를 temporal dimension을 따라 stack할 것을 제안하죠 그리고 skeleton processing을 위해 3D-CNN을 사용하죠. 매우 인상적인 performance을 보여줬음에도, PoseC3D는 computations의 양이 너무 많고 3D skeletons에 직접 적용할 수 없죠. 실험적으로 봤을 때, 자신들의 결과가 더 좋다고 말하며 해당 파트를 마무리합니다.


DG-STGCN

  DG-STGCN이 만드는 enhancement는 2 가지 측면이라고 하네요. 1) 저자들은 dynamic group GCN 과 dynamic group temporal ConvNet을 design 했다고 합니다. 매우 유연하게 promote하고 skeleton data의 spatial-temporal modeling을 data로 부터 유도하죠. 2) strong temporal data augmentation strategy를 develop 했는데 different backbones에 광범위하게 적용할 수 있고 dynamic DG-STGCN에 특히 효과적이죠. 저자들은 간략하게 ST-GCN의 pipeline을 review합니다. 그런 다음 dynamic inter-joint spatial modeling과 dynamic multi-level temporal modeling 을 위한 different designs에 대해 논의한다고 합니다. 마지막으로 temporal augmentation을 보여준다고 하네요

3.1 ST-GCN Recap

  Notations

  저자들은 이 논문의 notation을 사용합니다. skeleton processing을 위한 GCN의 inputs과 intermediate features X ( R ^ T x V x C ) 에 대해, T는 temporal length를 표기합니다; V는 skeleton joints의 수를, C는 channels의 개수를 표기합니다. X가 input이라면 C는 대게 2 또는 3 입니다. ( 참고로 2 개면 x와 y, 3 개면 score가 포함된답니다. ) coefficient matrices A 는 R( K x V x V )는 spatial modeling에 사용되며, K 는 matrices의 수를 ( 저자들은 group의 수라고 부릅니다 ) 표기하죠. F 는 GCN block을 나타내고 , s, t는 spatial module과 temporal module을 각각 표기합니다.

  skeleton-based action recognition에서 GCN approaches는 human joint coordinates의 sequence를 input으로 받죠 (  T x V x C tensor X for each person ) 그리고 action category를 예측하죠. Figure 2는 ST-GCN의 quick recap을 제공하죠.

ST-GCN은 stacked N GCN blocks ( N =10 )을 사용하는데 이들은 coordinate tensor를 process 하죠. GCN block F는 두 componets로 구성되어 있습니다. spatial module s 와 temporal module t 이죠. skeleton feature X ( R ^ T x V x C ) 가 주어지면 s 가 먼저 channel inflation을 수행하고 4D tensor X' ( R ^ T x K x V x C )로 reshape 합니다 그러고 난 다음 coefficient matrices A 를 inter-joint spatial modeling을 위해 사용하죠.

s 의 output은 t에 의해 처리되는데 t는 temporal features를 학습하죠. F의 computations는 아래와 같이 요약될 수 있습니다.

구체적으로, ST-GCN 은 sparse matrices를 A로써 적용하는데 이 matrices는 prescribed graphical structure 로 부터 유도되죠 ( learnable importance scores 에 의해 weighted 됨 )  single 1D temporal convolution ( kernel size 9 인 ) 을 가진 t 를 instantiates 합니다. ST-GCN의 design은 직관적이고 실용적이며 널리 사용되죠. 이 연구에서 저자들은 전체 architecture을 유지하되 dynamic group GCN 과 dynamic group TCN을 가지고 그들의 capability를 강화할 것을 제안하죠.

3.2 DG-GCN: Dynamic Spatial Modeling from Scratch

  spatial module s 는 coefficient matrices A를 가지고 different joints의 features를 fuse 합니다. 그러는 동안 final recognition performance는 A의 choice에 의존합니다. 하나의 common practice는 먼저 A를 manually defined sparse matrices로 set하죠 ( joints의 adjacency matrix로 부터 유도되고요 ) 그리고 refinement delta A를 model training 동안 학습하죠. delta A는 trainable parameter로써 static 하거나 input smaple에 의존하는 model에 의해 생성되는 dynamic 합니다. 직관적임에도, 저자들은 이 paradigm이 flexibility에 제한적이고 purely data driven approaches에 비해 recognition performance에 열등함을 야기할 수 있다고 주장합니다.

  따라서 저자들은 coefficient matrices A를 완전히 learnable하게 만듭니다. DG-GCN에서 A ( R^ K x V x V ) 는 learnable parameter 입니다. initialization을 위해, adjacency matrix의 derivations를 resorting하는 대신에 저자들은 A를 normal distribution으로 초기화합니다. random initialization을 통해, K 는 arbitrary value로 set 할 수 있습니다. 이는 novel multi-group design을 가능하게 합니다.

  저자들은 DG-GCN의 architecture를 FIgure 3에서 보여줍니다. DG-GCN에서 coefficient matrices A는 different components K로 구성됩니다. ( K = 8 )

input 은 처음에 1 x 1 convolution을 활용해 processed 됩니다. K feature groups를 생성하고 각각은 [ C/K ] channels를 가집니다. 그런 다음 corresponding A_i를 활용해 각 feature group에 대해 독립적으로 spatial modeling을 수행합니다. 마지막으로  K feature groups를 channel dimension을 따라 concatednated 합니다 그런 다음 또 다른 1 x 1 convolution에 의해 처리되는데 이는 ouput을 generate합니다.

  각 coefficient matrix A_i 는 세 개의 learnable components로 구성됩니다. 먼저, dataset-wise parameter PA_i ( static term ) 은 training 전체 걸쳐 학습됩니다. 게다가, 저자들은 data-depentent refinements DA_i 와 CA_i를 학습시키는 데, dynamic term으로써의 역할을 합니다. 두 개의 terms는 DA_i 는 channel-agnostic인 반면 CA_i는 channel-specific 이라는 점에서 다릅니다. Figure 3 (b)는 DA_i와 CA_i를 얻는 방법에 대해 보여줍니다. input feature X가 주어지면, temporal pooling이 먼저 dimension T를 제거합니다. 두 개의 separate 1 x 1 convolutions가 그럼다음 bar X에 적용되고 X_a와 X_b를 각각 얻어냅니다. 저자들은 DA_i를 아래와 같이 정의합니다.

그리고 CA_i ( R ^ C x V x V )를 얻는 데 이는 Tanh activation을 X_a와 X_b 간의 pairwise difference에 적용함으로서 얻습니다. 세 개의 components의 weighted sum이 final coefficient matrix로 사용됩니다.

  alpha와 beta는 learnable parameters입니다. 실험에서, 저자들은 PA_i 가 major한 역할을 함을 알아냈고 생략할 수 없다는 사실을 알아냈습니다. 그러는 동안 두 개의 dynamic terms는 final recognition performance에 꾸준히 기여한다는 것 역시 알아냈다고 합니다. flexibility와 capability 덕에, DG-GCN은 다른 대안책들을 뛰어넘었습니다.

3.3 DG-TCN: Multi-group TCN with Dynamic Joint-Skeleton Fusion

  저자들은 dynamic group-wise design을 temporal modeling 에 적용합니다. 저자들은 먼저 multi-group TCN을 가진 vanilla temporal module을 대체팝니다. Figure 4에서 보여지는 바와 같이, multi-group TCN은 multiple branches로 구성되어 있고 그들은 different한 receptive fields를 가지죠. 각 branch는 temporal modeling을 feature group에 독립적으로 수행합니다. computation의 massive한 양을 절약하는 것과 더불어, temporal modeling capability 는 multi-group design을 통해 drastically하게 improved 되었죠.

    저자들은 나아가 joint-level과 skeleton-level에 병렬적으로 temporal modeling을 수행하도록 제안하는데요. 따라서 저자들은 D-JSF module을 develop했죠. D-JSF는 explicit modeling을 위한 module이죠. 그리고 dynamically하게 joint-level과 skeleton-level features를 fusing하기 위한 module이기도 하고요. D-JSF 에서 저자들은 먼저 average pooling을 V joint-level features에 수행합니다. { X_1, ... , X_ V | X_i ( R^ C x T } 이는 skeleton-level feature S를 얻게 해주죠. multi-group TCN은 skelton feature S와 V joint features X_i를 병렬적으로 process하는데 S', X'를 얻게 되죠. Dynamic joint-skeleton fusion은 S'를 각 X'_i로 merge하는데 적용됩니다. 구체적으로, 각 DG-TCN instance는 learned parameter gamma ( R ^V ) 를 포함합니다. adaptive joint-skeleton fusion 후에, joint i에 대한 feature는 X'_i + gamma_i*S' 가 되죠. 이들은 1 x 1 convolution으로 processed 되고요. 실제로, 저자들은 learnalbe weight gamma를 가지는 dynamic fusion이 DG-TCN의 성공에 key라는 것을 알아냈다고 합니다.

3.4 Uniform Sampling as Temporal Data Augmentation

  DG-STGCN에서 광범위하게 dynamic group modules를 사용하는 덕에, model capacity가 매우 향상되었죠. 반면에, imporved flexibility는 overfitting의 risk 역시 야기하죠. strong augmentation이 매우 필요하고요.

  data augmentation strategies 는 중요하지만, skeleton data에 대해서는 드물게 사용됩니다. 기존 연구들에서, skeleton sequence 는 직접 maximum legth에 padded 되죠. 최근 연구는 random cropping을 temporal augmentation에 대한 strategy로 적용합니다: substring을 original sequence로 부터 crop하고 target legth 로 bilinear interpolation을 활용해 resize하죠. 저자들은 먼저 uniform sampling을 temporal augmentation으로 제안합니다. N-frame sample을 length-T sequence로부터 얻기 위해, sequence를 N 개의 equal length를 가진 non-overlapping substrings로 split하죠. 그런 다음, randomly하게 하나의 frame을 each substring으로 부터 선택합니다. 그리고 새로운 new subsequence로 join 하죠. uniform sampling은 random cropping보다 더 diversified samples를 generate합니다. strong augmentation으로써, Uniform Sampling은 navie padding 이나 random crooping의 성능을 넘어서죠. 특히 DG-STGCN에서 큰 성능 향상을 보입니다.


 

 

728x90
반응형