본문 바로가기

개발

[논문리딩/요약] Beyond Static Features for Temporally Consistent 3D Human Pose and Shape from a Video - 3D Human Pose Estimation, Monocular view, SMPL model, Video inference

CVPR 2021

https://arxiv.org/pdf/2011.08627.pdf#page=1&zoom=100,430,936 

논문 주제 & 키워드

비디오 3D 자세 추론 시 생기는 버벅임 / 순간적 오차를 줄이는 시스템 (TCMR, Temporally Consistent Mesh Recovery) 소개

 

# Monocular 3D human pose and shape estimation

# Video-based 3D human pose and shape estimation

# 3D human pose forecasting

관련 용어

- Monocular : 단안 이미지, 즉 이미지 하나만 사용한다는 뜻. Multiviews의 반대말

- Multiviews : 다중 이미지, 즉 여러 각도에서 동시 촬영한 이미지 세트를 사용한다는 뜻.

- Pose Estimation : 보통 output format이 사람 관절점 좌표의 조합인 skeleton model임을 내포한다.

- Shape Estimation : 보통 output format이 mesh model임을 내포한다.

한 줄 요약

현재 프레임에 과도한 상관관계를 보이는 이전 연구와 달리, 우리는 현재 프레임에 과도하게 의존하는 현상을 개선하여(참고로 residual 방식 아님ㅅㄱ) 더 smooth한 움직임을 구현하였다.

Residual 방식이 아니고 GRU에 넣어서 temporal feature를 fuse한다 이말이야.

세 줄 요약

1. 그간의 연구는 현재 프레임의 image feature에 과도한 상관관계를 보였다.

2. 과거와 미래 프레임을 통하여 현재 프레임의 추정 결과를 smoothing하려는 노력은 있었지만, residual connection 을 걍 갖다 써버렸더니 현재 프레임의 image feature 영향이 여전히 너무 커서 별 성과가 없었다.

3. 그래서 우리는 residual connection을 빼버리고 GRU를 세 개 써서 현재 프레임의 정보를 이용하면서도 그 영향을 약화시키는 알고리즘을 개발했다.

N 줄 요약

 현재 프레임에 과도한 상관관계를 보이는 이전 연구와 달리, 우리는 현재 프레임에 과도하게 의존하는 현상을 개선하여 더 smooth한 움직임을 구현하였다.

 

TCMR의 각 부분에 대한 자세한 설명은 다음과 같다.

 

 먼저, T개의 이미지를 각각 Kolotouros et al. (Learning to reconstruct 3D human pose and shape via model-fitting in the loop) 연구진이 사전학습해 놓은 ResNet에 통과시켜

이미지별 static image feature 를 얻는다.

얘들을 global average pooling을 통과시켜 static feature를 얻는다.

 

 

  T개의 static features를 bi-directional GRU에 통과시켜 현재 프레임의 temporal feature(g_all)를 계산한다.

f[T/2]만 넣는거 아니고 다 넣는거임.

그리고 두개의 uni-directional GRU가 각각 과거시점 (최초 프레임부터 현재 프레임까지)과 미래시점(최종프레임부터 현재까지) 의 static features를 통과시켜 '과거' 및 '미래' 의 temporal feature(g_past, g_future)를 얻는다.

이렇게 얻은 temporal features (g_past, g_all, g_future)를 concatenate하여 최종적으로 current temporal feature를 얻을 수 있게 된다. 

최종 통합(integration)을 위하여, 각 temporal features를 ReLU activation과 fc layer에 통과시켜 2048 channel로 바꿔준다. 

그런 다음, 이 결과물 세가지(g'라고 한다.)를 하나의 공통된 fc layer에 통과시키고 concatenate 시킨 뒤 몇 개의 fc layer에 통과시키고 softmax를 계산해주면, 3차원 attention value가 계산된다.

이 attention value가 의미하는 바는 feature integration 할 때 각 temporal features에 얼만큼의 가중치를 주어야 하는지 인다. 

즉, 최종적으로 integrated temporal feature는 이렇게 된다.

위 식이랑 똑같은 그림

이 g'들을 각각 SMPL regressor에 통과시키면 메쉬모델(SMPL 파라미터)이 됨

요약을 위해 g라고 쓴 듯하나 엄밀히는 g'를  regressor에 넣는다.

 

 

모델 설명 끗.


 

VIBE 논문과 달리, 우리는 static feature와 temporal feature 사이에 residual connection을 추가하지 않았다.

따라서 현재 프레임의 temporal feature는 static feature의 과도한 영향을 벗어날 수 있다.

 

학습 단계에서, 우리는 g'_past, g'_future, g'_int를 모두 하나의 SMPL parameter regressor에 통과시켜 각각의 메쉬모델을 얻었다. 

테스트 단계에서는 g'_int만 SMPL regressor에 통과시키고 그 결과물을 최종 3D human mesh로 정하여 Loss값을 계산하였다.

(학습단계에는 past, future, integration 결과값 다 학습시키고 테스트할때는 integration 값만 로스 체크했다는 뜻)

 

이 구조는 본래 미래의 3D Pose를 예측하기 위한 방법이지만, 우리 시스템에서는 이 방법을 통해 current static feature에서 벗어나 유용한 temporal feature를 학습하는 것을 목적으로 하였다.

 


 

Loss Function  - L2 loss (SMPL parameters, 2D joints, 3D joints)

3D joints는 SMPL 파라미터를 SMPL 레이어에 통과시켜 얻었으며, 

2D joints는 3D joints를 predicted camera parameters를 이용하여 project하여 얻었음. (SMPL 파라미터 중에 camera parameter도 있음)

참고로 optimizer는 Adam 썼음.

Dataset

3DPW

Human3.6M

MPI-INF-3DHP

InstaVariety

Penn Action

Pose Track

 

평가지표

per-frame 매트릭과 temporal 매트릭 두가지로 평가하였음.

per-frame : MPJPE, PA-MPJPE, MPVPE (mm단위)

temporal : HMMR (mm/s**2)

 

성능평가 - Human3.6M 기준 MPJPE 73점!