eehoeskrap / PaperReview

꾸준희의 꾸준하게 논문 읽기 프로젝트 ✨
9 stars 0 forks source link

BlazePose GHUM Holistic: Real-time 3D Human Landmarks and Pose Estimation #17

Open eehoeskrap opened 1 year ago

eehoeskrap commented 1 year ago

Paper : https://arxiv.org/abs/2206.11678 Demo : https://codepen.io/mediapipe Blog : https://blog.tensorflow.org/2021/08/3d-pose-detection-with-mediapipe-blazepose-ghum-tfjs.html

오늘 리뷰할 논문은 Google에서 발표한 BlazePose GHUM Holistic: Real-time 3D Human Landmarks and Pose Estimation 입니다. MediaPipe Demo인 Code Pen에서 Demo를 실행해 볼 수 있습니다. MacBook Pro 15inch 2017 환경에서 15FPS로 동작한다고 합니다.

image

이는 온 디바이스 환경에서 실시간으로 추론 가능한 3D Human Pose Estimation 모델이며, 단일 RGB 이미지로부터 모션 캡쳐를 할 수 있습니다. 본 논문의 주요 기여점은 아래와 같습니다.

3D data acquisition

3D human body pose GT를 얻기 위해 다양한 도메인(요가, 피트니스, 댄스), 주변 환경(실내, 실외), 장치(모바일, 노트북)을 다루는 기존 2D pose dataset에 GHUM 모델을 붙입니다.

image

이를 통해 metric space에서 실제 3D keypoint coordinate를 얻습니다. 3D에서 2D로 만드는 과정에서 projection fitting 특성에 의해 원래의 2D annotation에 대해 여러가지 3D human pose가 생성 될 수 있습니다. 이러한 모호함을 최소화 하기 위해 Ordinal Depth Supervision 방법과 유사하게 pose skeleton edge 사이의 depth 순서를 제공하도록 annotator에게 요청하여 주석을 만듭니다.

참고로 Ordinal Depth Supervision 방법은 CVPR 2018에 소개된 방법이며, 2D x,y 좌표와 함께 학습에 넣어주어 3D pose를 예측하게 됩니다.

image image

구글에서도 이러한 방식을 참고하여 모델을 fitting 시킬 때 depth ordering error를 25%에서 3%로 줄였다고 합니다.

image

Model

모델은 2-step detector-tracker 접근방식을 사용합니다. 여기서 tracker는 원본 이미지 내에 사람이 포함된 crop image에서 작동하며, 모델은 사람의 hips center를 root로 설정하고 metric space에서 상대적인 좌표로 3D human pose를 예측하게 됩니다.

Experiments

다른 모델과 비교하기 위해 가장 어려운 동작인 요가 도메인을 사용합니다. 각 이미지는 카메라에서 2-4m 떨어진 곳에 있는 한 사람만 포함됩니다. 다른 솔루션과 일관성을 유지하기 위해 COCO 형식인 17개의 키포인트에 대해서만 평가를 수행했다고 합니다.

image

Hand landmarks for holistic human pose

Holistic human pose estimation은 body 뿐만 아니라 hand의 정확한 tracking이 필요하기 때문에 BlazePose에 hand landmark를 포함하기 위해서는 2가지 문제를 해결해야한다고 합니다.

  1. BlazePose 모델의 256x256 해상도는 hand detail을 capture하기에 충분하지 않음
  2. SOTA On-device hand tracking model과 동일한 수준의 정확도를 보장하기 위해서는 왼손과 오른손에 대해 공간적으로 변화하지 않아야함

single model을 사용하면 입력 해상도를 높여 모델 추론 속도를 느려지게 되고, 작은 신체 부위와 큰 신체 부위의 손실 균형을 조절해야합니다. single pixel error는 예를 들어 hip landmark 보다 finger가 더 중요하게 되는 것이죠. 그래서 본 논문에서는 ROI에서 얻은 high resolution crop image로 부터 hand를 에측합니다. 여기서 처음에 생성한 4개의 palm landmark는 hand region의 대략적인 추정치를 제공합니다. 그러나 이는 input으로 사용하기에 정보가 불충분하여 약간의 transformation augmentation을 통해 21개의 hand landmark에서 얻은 crop image를 사용합니다. 즉 BlazePose의 raw crop 정보를 가져와서 hand landmark detection에 알맞은 수준으로, 더 높은 해상도로 re-crop 하는 모델을 학습합니다.

image

Body Pose Estimation

이미지에서 직접 추론한 이전 3d landmark에서 3d pose 및 shape GHUM mesh 정보를 얻습니다. GHUM mesh는 deep variational auto-encoder로 생성된 body shape과 facial expression, generative pose(for body, left, right hand)에 대한 정보를 10,168개의 mesh로 가지고 있습니다.

BlazePose GHUM Holistic network는 root 중심 3D camera coordinate system에서 33개의 body landmark와 각 hand에 대한 21개의 landmark를 출력합니다. lifting 알고리즘의 핵심은 MLP-Mixer 아키텍처를 사용합니다. 3D keypoint sequence를 입력으로 사용하게 됩니다. 이는 동일한 크기의 여러 레이어로 구성되며, 각 레이어는 2개의 MLP 블록으로 구성됩니다. 참고로 MLP-Mixer: An all-MLP Architecture for Vision는 아래와 같습니다.

image

그렇게 해서 얻은 결과는 다른 알고리즘에 비해 더 낫습니다.

image
eehoeskrap commented 1 year ago

Ordinal Depth Supervision for 3D Human Pose Estimation 논문에서 ordinal depth relation을 학습하는 방법

image
eehoeskrap commented 1 year ago

Ordinal Depth Supervision for 3D Human Pose Estimation 논문에서 ordinal depth relation을 적용한 실험 결과

image
eehoeskrap commented 1 year ago

It's all Relative: Monocular 3D Human Pose Estimation from Weakly Supervised Data 논문에서 annotator가 relative depth를 처리하는 방식

image