새소식

딥러닝, 머신러닝/Pose Estimation

3D Human Pose Estimation

  • -

3D Human Pose Estimation은 일반적으로 두가지를 통칭해서 말한다.

왼쪽 : 3D 관절 좌표, 오른쪽 : 3D 관절 회전

1. 3D 관절 좌표 : 위 그림의 왼쪽과 같은 3D 관절 좌표를 추정하는 방식

2. 3D 관절 회전 : 위 그림의 오른쪽과 같은 3D 표면(surface, mesh)을 표현하는 방식, x/y/z 각도 3차원과 위치 3차원으로 6D라고 부르기도 한다.

3D 관절의 회전(각도)은 팔꿈치라고 치면, 좌우, 위아래, 앞뒤 방향이라고 볼 수 있다. 

3D 관절 회전

 


T-posed 3D Mesh

  • 위 그림에 있는 사람의 맨몸 형태를 3D Human Mesh라 하는데, 3D Human Mesh는 3D 관절 회전(Pose)과 3D 길이/체형(shape)으로 구성되어 있다.
  • 최종적으로 위의 그림처럼 3D Human Mesh를 얻어내는 모델을 3D Human Model이라 하는데, Pose에 관한 파라미터인 3D 관절 회전(Jx3)과 3D 길이 및 체형에 관한 파라미터 Beta를 input으로 받는다.
  • 그리고 Beta에서부터 길이(키, 팔길이 등) 및 체형을 결정하고, 위 그림과 같은 T-posed 3D mesh를 얻어낸다. 
  • 얻어낸 뒤, 3D 관절 회전 파라미터와 함께 skinning function을 적용하면, 위의 축구하는 그림과 같은 3d mesh가 나온다.

 

1-1. 3D 관절 회전

  • 해당 관절(팔꿈치)의 부모 관절(어깨)에 상대적인 3D 회전
  • 회전으로 인해 모든 자식 관절들이 이동 (어깨-> 팔꿈치->손목)
  • 따라서, leaf node(손목, 발목, 머리)에 해당하는 관절들은 3D 회전이 정의되지 않음 (child node가 없으니까)
  • root node(pelvis)의 3D 회전은 global rotation(전신의 3D 회전)에 해당한다.

 

1-2. 3D 길이 및 체형

  • T-Pose를 취한 사람의 길이와 체형에 관한 파라미터
  • PCA를 통해 사람의 체형, 길이에 대한 latent space를 모델
    - T-Pose를 취한 큰 규모의 3D scan dataset이 있다고 가정
    - PCA 알고리즘 돌림(데이터를 구분하는 가장 주된 기준을 찾는 것)
    - 사람들의 체형을 구분하는 주된 기준 : PCA Components
    - 컴포넌트들의 베타(계수)를 곱한 뒤 더해서 최종 T-posed 3D mesh를 얻음
    - 키, 체형, … (1, 2번째가 가장 큰 기준) : 0.1 0.1 - 키 작고 마른사람, 0.8 0.1 - 키 크고 마른 사람

 

 

Skinning function

  • 피부를 입히는 function, 관절들의 위치로부터 피부를 알아낸다
  • Skinning Weight (VxJ) : 각 mesh vertex마다 각 관절에 영향을 받는 정도
    (팔꿈치의 vertex는 팔꿈치의 rotation에 가장 영향을 크게 받는다.)
    3D human model마다 3D artist가 미리 weight를 만들어 놓고, 그걸 별도의 툴로 refine해서 사용한다

 

Linear Blend Skinning(LBS)

  • Skinning function 중 대표적인 방법으로, 모든 관절의 변형을 선형으로(linear) 합쳐서(blend) 3D mesh를 얻는 skinning 알고리즘
  • 단순하지만 꽤 그럴듯한 결과가 나와서 많이 쓴다

 

pose-dependent correctives

  • 머리 숙이고 인사할때 뱃살 쳐지는 거 correction시키는 방법 : skin이 더 real하게 만드는 것
  • LBS의 한계점을 극복하기 위한 것

 

 

 


 

 

 

데이터 수집

  • 여러 체형, 키를 가진 사람의 3D scan 필요 : 전문 스튜디오 필요
  • pose dependent corrective : 여러 포즈를 취한 사람의 3d scan 필요 (등 수그렸을 때 뱃살 쳐지는거)
  • skinning weight 만들기 : 3D artist가 만든 후 약간의 fine-tuning
  • 3D scan 시 native 사람 모델이 목표기 때문에, 타이즈 같은거 입은 배우 고용해서 촬영

 

에스파 3D 캐릭터 (출처: 구글).. 다리가 너무 긴 거 아닌가 싶지만

위의 3D 캐릭터처럼 목표로 하는 캐릭터가 분명하게 있으면, shape 변형은 따로 필요없기 때문에 pose(Jx3)만으로 변형이 가능하다.

Contents

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

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