Search

Learning Human Motion Representations: A Unified Perspective

리뷰완료날짜
2023/06/15
리뷰어
카테고리
컴퓨터비전
출판
파일
https://arxiv.org/abs/2210.06551
태그
HPS

introduce

다양한 human-centric video task는 동일하게 인간 관련 정보를 추정하는 것으로부터 시작되지만, 각 task마다 개별적인 방식으로 모델 연구가 진행 되었다. 그로인해 기존 연구들은 특정 task에 최적화되어 다른 데이터셋들의 장점을 차용할 수 없었다. 그러므로 본 논문에서는 다양한 human task에서 사용 가능한 통합된 human-centric 비디오 표현을 개발하는 것을 목표로 한다.
모션캡처(정확하지만 실내 데이터셋임), in-the-wild(모션캡쳐보다 부정확하지만 다양한 배경과 사람 움직임을 포함함) 등 여러 heterogeneous 데이터셋들의 knowledge를 통합하고 이를 활용하여 서로다른 downstream task를 통합된 방식으로 다룰 수 있다.
본 논문에서는 two-stage framework(pretraining, finetuning)을 제시한다.
Pretraing stage
다양한 모션 데이터로부터 2D 키포인트 시퀀스를 추출함
2D 키포인트 시퀀스를 random mask와 noise를 통해 정보를 손실시킴
손실된 2D 키포인트 시퀀스로부터 3D 모션을 복구하도록 motion encoder를 학습시킴
motion encoder로 DSTformer(Dual-stream Spatio-Temporal Transformer)를 제안함으로써 키포인트 간의 long-range 관계를 포착함
Finetune stage
대규모, 다양한 형태의 데이터셋으로 학습한 motion representation이 서로 다른 downstream task간에 공유됨으로써 성능이 더욱 좋아진다고 가정함
각 task마다 그 task에 특화된 학습 데이터와 supervisory signal을 통해 pretrained motion representation을 finetune함
Contribution

Method

DSTFormer
N개의 모듈로 구성(dual-stream-fusion modules)
각 모듈은 tempral과 spatial 의 MHSA(Multi Head Self Attention)와 MLP 두 브랜치를 포함
Spatial MHSA: 시간 흐름에 따른 서로 다른 관절 사이의 연결을 모델링
Temporal MHSA: 한 관절의 움직임을 모델링

1. Network Architecture

input: 2D skeletons x
F0F^0: x로부터의 high dimensional feature(0은 네트워크 depth를 의미함. i=0~N), FC를 거친 후의 feature
PpossP^s_{pos}: learnable spatial positional encoding
PpostP^t_{pos}: learnable temporal positional encoding
1.
F0F^0PpossP^s_{pos}PpostP^t_{pos}를 추가하여 DTSformer의 입력으로 넣음
2.
DSTformer를 사용하여 FiF^i(i = 1.N1….N)를 얻음
3.
motion representation EE를 얻기위해 tanh activation이 포함된 선형 레이어를 FNF^N에 적용함
4.
3D motion X^\hat{X}를 추정하기 위해 선형 transformation을 E에 적용함

1-1. Spatial Block

Spatial Block MHSA: 동일한 timestep에서 관절 사이의 관계를 모델링하는 것이 목표임. 그러므로 서로 다른 timestep의 feature에 병렬적으로 적용됨
SMHSA(Qs,Ks,Vs)=[head1;...;headh]WspS-MHSA(Q_s, K_s, V_s) = [head_1;...;head_h]W^p_s
headi=softmax(Qsi(Ksi)dk)Vsihead_i = softmax(\frac{Q^i_s(K^i_s)'}{\sqrt{d_k}})V^i_s

1-2. Temporal Block

Temporal Block MHSA: 시간 흐름에 따른 동일한 신체 관절의 관계를 모델링하는 것이 목표임. 각 joint의 temporal feature FtF_t에 적용되며, 이것이 spatial dimension에 걸쳐서 병렬화됨
TMHSA(Qt,Kt,Vt)=[head1;...;headh]WtpT-MHSA(Q_t, K_t, V_t) = [head_1;...;head_h]W^p_t
headi=softmax(Qti(Kti)dk)Vtihead_i = softmax(\frac{Q^i_t(K^i_t)'}{\sqrt{d_k}})V^i_t

1-3. Dual-stream Statio-temporal Transformer

intra-frame(프레임 내의)과 inter-frame(여러 프레임 간의)의 body joint interaction을 포착하는 spatial, temporal MHSA가 주어지면, timestep에 따른 spatial과 temporal 정보를 융합하기 위해 기본 block을 구성함
세 가지 가정을 기반으로 dual-stream 아키텍처를 구성함
1.
두 stream 모두 comprehensive spatio-temporal context를 모델링할 수 있어야 함
2.
각 stream은 각각의 시간적 공간적 측면에서 전문화 되어야 함
3.
input인 spatio-temporal characteristic에 따라 fusion weight이 동적으로 균형을 이루도록 두 stream이 융합되어야 함
spatial MHSA와 temporal MHSA를 서로 다른 순서로 쌓아 두 개의 병렬적인 computation branch를 형성함
두 branch의 output은 attention regressor를 통해 추정된 adaptive weight을 통해 융합됨
이 dual-stream-fusion 모듈을 N번 반복함
Fi=αSTiT1i(S1i(Fi1))+αTSiS2i(T2i(Fi1)),i1,...,NF^i = \alpha^i_{ST} \circ T^i_1(S^i_1(F^{i-1})) + \alpha^i_{TS} \circ S^i_2(T^i_2(F^{i-1})), i \in 1,...,N
Fi:i depth에서의 feature embedding:아다마르곱F^i: i\ depth에서의 \ feature \ embedding\\ \circ: 아다마르곱

2. Unified Pretraining

해당 framework 설계를 위해 해결해야 할 문제는 아래와 같음
1.
보편적인 pretext task로 강력한 motion representation을 학습하는 방법
2.
대규모이며 다양한 형태를 가진 데이터를 모든 종류의 format으로 활용하는 방법
첫 번째 문제의 해결을 위해 이전 연구들의 방향성에 따라 supervision signal을 구성함. 즉, input 일부를 mask 처리한 후 다시 전체를 재구성하도록 함.
가장 먼저 3D motion을 직교투영하여 2D 스켈레톤 시퀀스 x를 추출함. 그리고 2D 시퀀스에 random mask를 취하여 손상시키며 이때 joint-level과 frame-level mask는 특정 확률로 적용됨.
즉, motion encoder를 통해 motion representation EE를 얻고, 3D motion X^\hat X을 재구성함. 그리고 X^\hat X와 GT 3D motion X 사이의 loss인 L3DL_{3D}를 얻음. 이에 추가로 이전 연구들과 동일하게 velocity loss LOL_O를 구함
두 번째 문제를 해결하기 위해서는 2D 스켈레톤이 다양한 종류의 모션 데이터에 대한 보편적인 역할을 수행할 수 있다는 점을 활용함. unified pretraining을 위해 in-the-wild RGB 비디오 데이터로부터 2D를 3D로 lifting함. 이때는 2D reprojection loss를 사용함
즉 전체 loss는 아래와 같음

3. Task-specific Finetuning

학습된 feature embedding E는 3D-aware and temporal-aware human motion representation가 됨.
이로부터 얕은 downstream network와 학습을 구현하고 finetune하여 각 task에 맞도록 학습함
1.
2D-to-3D lifting이 pretext task로 사용되므로 E를 통해 3D Pose Estimation에는 바로 적용될 수 있음
2.
또한 timestep에 따른 스켈레톤을 학습하므로 간단한 MLP를 통해 Skeleton-based Action Recognition을 수행함
3.
Human Mesh Recovery task를 위해 SMPL을 사용함. 각 프레임에 대한 pose 파라미터를 얻기 위해 motion embedding을 hidden layer가 포함된 MLP의 입력으로 하여 포즈 파라미터 θ\theta를 얻으며, shape 파라미터를 얻기 위해 temporal dimension에 걸쳐 average pooling을 진행한 후 또 다른 MLP의 입력으로 해서 shape 파라미터 β\beta를 얻음. 이때의 loss는 아래와 같음

Experiment

1. 3D Pose Estimation

2. Action Recognition

3. Human Mesh Recovery