2D Pose에서 3D pose를 추정하는 기존 방식의 문제점 1) depth ambiguity(깊이 모호성) 2) self-occlusions : 특정 자세 또는 시점에 의해 발생하는 신체 일부의 폐색 3) 추론 오류 : (c), (d)에 표시된 것처럼 정확하지 않은 포즈 모델로 인해 발생함
joint sequence의 vector 표현만 가지고는 실제 이미지 상에서의 공간 정보를 확인하기 어렵고, depth ambiguity와 self-occlusion을 해결하는 데 한계가 있다.
그래서 이 논문에서는 이를 graph attention block과 temporal convolutional networks(TCNs)으로 해결하려고 한다.
2. Related Works
2D to 3D Pose Estimation
Spatio-Temporal Graph : GCN 기반 방법 이용
3. GAST
비디오에서 2D pose sequence(예측값)가 주어지면 root joint인 골반을 기반으로 하는 3D 좌표 시퀀스를 출력하는 걸 목표로 한다. (input : 2D pose sequence, output : 다음 프레임 3D joint 예측)
Temporal Convolutional Network input 2D pose sequence를 3D로 표현해서 사용함 vector(T, N, C) : T는 receptive fields의 수(time, 시간), N은 각 프레임의 joints 수, C는 좌표 차원의 수(x, y) 시간 단계에 걸쳐 공간 정보를 저장하기 위해 원래의 1D convolution을 k x 1의 커널 크기에 대한 2D convolution으로 대체함 (전체 네트워크 구조 : 그림3) TCN의 네트워크 특성에 따라 제안된 모델은 필요한 만큼 다양한 수의 긴 시퀀스 receptive field에서 학습이 가능함
Local Attention Graph input으로 주어지는 프레임의 2D keypoints를 SemGCN 방식에 기반하여 처리한다. 2D pose들을 그래프로 정의한다. "G = (V, E)", V는 N 노드(joints)들의 집합이고, E는 엣지(human-links)들이다. 그래프의 구조는 joint들과 self-connection을 나타내는 단위행렬(identity matrix) I 사이에서 존재하는 connection인 first-order adjacency matrix(바로 붙어있는 matrix) A ∈ R^(NxN) 로 초기화된다. 사람의 대칭적 구조를 담기 위해 torso 중심의 대칭 구조를 담도록 해야 한다. 앞서 언급한 제한들에 기반해서 2개의 convolution kernel을 디자인한다. 그림4(b) symmetric matrix A_s는 human skeleton joints의 대칭적 구조를 유지하도록 대칭적 관계를 가지도록 인코딩한다. 그림4(c)의 adjacency(인접) matrix는 distal joints(인체 중앙에서 먼 쪽의 joints) 1번째 연결관계와 2번째 연결관계를 인코딩 한다. (ex. 발목-무릎, 발목-엉덩이) 2개의 convolution kernel들은 별개의 GCN에 적용된다. (그림3(b))
Global Attention Graph : 연결되지 않은 관절(ex. 손목-발목)들의 관계는 전체적인 자세 및 제약 정보들을 인코딩하는 데 핵심적인 역할을 한다(ex. 달리기). 따라서 연결되지 않은 joint representation은 depth ambiguity와 폐색을 해결하는데 도움이 된다. non-local 관계를 효과적으로 인코딩하기위해 multi-head attention 메커니즘과 함께 end-to-end GCN을 제안한다.
식(3)에서 K는 attention heads의 수, B_k는 NxN차원의 실수 집합이고 adaptive global adjacency matrix(GCN의 global 인접행렬), C_k는 NxN차원의 실수 집합이고 학습 가능한 global adjacency matrix이다. W_k는 transformed matrix이다.
B_k : 각 노드에 대해 고유한 그래프를 학습하는 데이터 종속 행렬, 노드 간의 연결 여부와 연결 강도를 설정하기 위해 attention coefficient 함수를 사용
4. Results
평가 프로토콜 2개
1) MPJPE : predicted 3D 좌표와 GT 비교
2) P-MPJPE (rigid alignment 적용된 버전)
4.1. Quantitative Results
1) Comparison with State-of-the-Art : Human3.6M dataset을 이용해서 2D Pose 검출 CPN 모델을 사용하여 학습한다. MPJPE 값으로 비교. 프로토콜 2개
2) Comparison with Temporal Convolutional Networks :
TCN과 이 논문의 다양한 receptive fields 모델들과의 error 비교. 그림에서 초록색이 이 논문, 노란색은 TCN 방식(Pavllo)
프로토콜 2개 모두 이 논문이 더 좋은 성능을 내고 있고, receptive field를 다르게 잡았을 때도 모두 더 좋은 성능을 낸다.
4.2. Qualitative Results
1) Significance of Spatial Semantics(공간적 의미의 중요성) : 이 논문에서는 27개의 receptive field mode를 사용해서 Youtube 영상에서 3D Pose 추정을 수행한다. 그림 6에서 왼쪽은 local kinematic connections A_c 유무에 따른 차이를 보여주고, 오른쪽은 global adaptive matrix B_k 유무에 따른 차이를 보여준다. 포즈 오류는 빨간색 원으로 표시된다. 요가 영상의 경우 local kinematic connection이 고려되지 않을 때 말단 관절(손, 발)에 위치 모호성이 있음을 보여준다. (오류 발생)
야구 영상의 경우 폐색으로 인한 잘못된 2D input pose가 제공되는 경우에도 global posture semantics(전역 자세 의미 체계)는 시간 연속성과 함께 효과적으로 작동하여 self-occlusion 문제를 완화하고 보다 정확하고 부드러운 자세를 생성한다.
2) Visualization of Global Attention Matrix Bk : 폐색된 joints에서 global semantics(전체적인 의미) 구성을 더 잘 이해할 수 있도록 야구 케이스에서 모델의 global attention matrices B_k를 시각화한다. 그림 7은 skeleton graph로 표현된 샘플의 시각화이고, 여기서 circle mass는 행렬에서 현재 관절과 오른쪽 손목 사이의 관계 강도를 나타낸다.(그림이 좀 헷갈릴 수 있는데 왼손으로 글러브 끼고, 오른손으로 공 잡아 던지는 거라고 이해하면 편하다.) 2번째, 3번째 layer의 skeleton 그래프는 좌우 다리의 joint와 강한 관계를 형성한다. 그래서 이 논문에서는 layer가 더 뒤에 있을수록(higher layer) non-local한 spatial(공간) 구성 제약을 모델링하는 데 기여하고 있다고 보고 있다.
3) Reconstruction of Special Case : 카메라가 사람의 상체만 캡처하는 특수한 상황도 고려한다. 그림8의 왼쪽을 보면, GAST-NET은 전신에 대해서만 학습됐지만, 이전에 보지 못한 상체 test data도 효과적으로 재구성한다. 그림 8의 오른쪽은 2D pose가 이상하게 추론되었을 때(피겨스케이팅의 경우 오른쪽 발목이 왼쪽 발목이랑 같은 위치로 가있음)와 장기간에 걸친 상당한 폐색으로 인한 두 가지 실패 사례를 보여주고 있다.
5. Code
기타..
기존의 2D to 3D pose lifting 방식들에서는 skeleton feature만 보기 때문에 이미지에서 눈으로 봤을 때 알 수 있는 3D 느낌을 살리는 데에 한계가 있지 않았나 싶다. skeleton을 가지고 처리하는 것도 좋지만, 여기서 이미지를 활용해서 Z축을 추론하는 데 썼다면 좀 더 좋은 결과가 나오지 않았을까 생각해본다.