새소식

딥러닝, 머신러닝/Pose Estimation

3D Human Pose Estimation - Model-based 논문들 정리

  • -

3D Human Pose Estimation 방법론을 적용한 논문들 중 Model-based 방식을 적용한 대표적인 논문들을 정리해보겠습니다.

 

1. HMR (End-to-end Recovery of Human Shape and Pose) - 2018

  • 관절의 회전을 NN를 통해 최초로 얻어낸 모델
  • in-the-wild의 weak supervision : 2D reprojection loss
  • 2D supervision으로 인해 발생하는 해부학적으로 불가능한 포즈를 adversarial loss로 해결
  • adversarial loss : real human인지 아닌지 판별하는 Discriminator
    1) 첫 stage 에서는 mocap dataset은 real human, network output은 false human이라고 보고
    2) 그 다음 stage 에서는 generator 트레이닝 시 discriminator fix시킴, generator에서 output한게 real human이라고 줌
    (두개가 유사해지도록)
  • adv loss 제거하면 해부학적으로 불가능한 또는 이미지와 맞지 않는 3D Pose가 출력되는데, 
요즘에는 거의 쓰지 않는다.
    간단한 L2 regularizer만 도입해도 예방 가능할 수 있다
    SMPL의 pose 파라미터 크기가 너무 크지 않도록, 그거의 제곱을 minimize 하도록 loss 준다.
    이는 곧 pose 파라미터를 0으로 바꾼다는 말과 같고,
    T-pose(zero-pose)랑 비슷하게 간다고도 표현할 수 있다. 
  • 요즘은 preprocessing stage에서 in-the-wild dataset의 3D pseudo-GT를 미리 얻어놓고 그것을 3D supervision용으로 사용해서, 성능 되게 많이 좋아지고 있다. 

 

 

2. Pose2Pose (2020)

Pose2Pose에서는 기존 방식들의 한계점을 다음과 같이 지적하고 있다.

  • 기존 방식들은 Global Average Pooling을 통해 x,y공간을 제거해서 하나의 feature vector 출력해서 사용하므로, x,y 공간에 있는 joint마다의 semantic 정보를 사용하지 못한다.

 

그래서 Pose2Pose에서 제안한 방식은 다음과 같다.

Pose2Pose

  • 3D positional pose(3D 관절 좌표)로부터 3D rotational pose(3D 관절 회전)을 추정한다
  • input body image > ResNet (GAP 안하고) > 3D joint coord 추정 (x,y : pixel, z: root-relative depth) > 추출한 관절마다의 image feature와 추정된 3D 관절 좌표를 이용해서 3D 관절 회전 추정
  • 3D heat map 추정 > soft-argmax를 통해 3D 관절 좌표 계산
  • 3D 관절 회전 추정 : 3D joint x,y pixel 추출 > 3D 관절 좌표, joint feature(joint 주변에 무슨일이 벌어지고 있는지)를 concat한다
  • joint feature의 효용성을 입증한 논문 : 3D 관절 좌표와 joint feature를 이용하는 것이 큰 폭으로 에러를 낮추는 걸 확인했다

 

3. HybrIK(2020)

이 논문은 FK(Forward Kinematics)와 IK(Inverse Kinematics)를 이용했다는 특징이 있다.

HybrIK

1) FK(Forward Kinematics)

  • 입력 : 3D 관절 회전 (R), T-pose상에서의 3D 관절 좌표 (T 포즈에서 어디 몇도 움직이면 3D 관절 좌표 어떻게 되는지)
  • 출력 : 3D 관절 좌표

 

HybrIK(2)

2) IK(Inverse Kinematics)

  • FK의 반대
  • 입력 : 목표로 하는 3D 관절 좌표(P), T-pose상에서의 3D 관절 좌표
  • 출력 : 3D 관절 회전 (R)
  • Ill posed problem (solution이 없거나 무한이 많을 수 있음) 
    : P를 나보다 키가 엄청 큰 사람을 넣으면, 나의 팔꿈치 길이와 다르기 때문에 문제 발생
  • 3D 관절 회전을 swing rotation과 twist rotation으로 분해했다.
  • Navie HybriK : Twist-and-Swing 분해에 기반하여 목표 3D 관절 좌표(P), T-Pose 3D 관절 좌표(T), 추정된 Twist angle(Phi)로부터 3D 상대 관절 회전(R)을 얻는 모듈
  • 위의 왼쪽 그림에서 볼 수 있듯이 3D 상대 회전으로 바꾸면, twist 범위가 매우 제한되어서 neural network가 추정하기 쉬워진다.
  • SMPL body model은 3D 상대 회전을 입력으로 받는다

 

Adaptive HybrIK 및 한계점

3) Adaptive Hybrik

  • target을 추정된 3D 관절 좌표로 고정시키지 않고, adaptive하게 update한다.
  • 한계점 : 위 그림에서 볼 수 있듯이, 신체 일부가 폐색된 사람의 경우, 안나오는 부분에서 x,y가 mm가 아닌 pixel 단위라 이미지 안에 어디든 있을거라고 추정해서 결과가 좋지 않음 - 태생적으로 truncation에 robust 할 수 없는 구조
  • Human3.6M, MPI-INF-3DHP는 truncation이 아예 없고, 3DPW는 truncation 조금 있다.

 

참고자료

https://arxiv.org/abs/1712.06584

 

End-to-end Recovery of Human Shape and Pose

We describe Human Mesh Recovery (HMR), an end-to-end framework for reconstructing a full 3D mesh of a human body from a single RGB image. In contrast to most current methods that compute 2D or 3D joint locations, we produce a richer and more useful mesh re

arxiv.org

https://arxiv.org/abs/2011.11534

 

Accurate 3D Hand Pose Estimation for Whole-Body 3D Human Mesh Estimation

Whole-body 3D human mesh estimation aims to reconstruct the 3D human body, hands, and face simultaneously. Although several methods have been proposed, accurate prediction of 3D hands, which consist of 3D wrist and fingers, still remains challenging due to

arxiv.org

https://arxiv.org/pdf/2011.14672.pdf

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.