Skip to main content

Hand and Face Pose Estimation

Hand Pose Estimation と Face Landmark Estimation は、whole-body pose の中でも特に細かい領域を扱う task です。Gesture、sign language、avatar、AR filter、expression capture で重要です。

Hand pose

Hand pose では、手首と各指の関節を推定します。一般的な hand skeleton は、手首を含む 21 keypoints で表されます。

難しさは次の通りです。

  • 指同士の occlusion が多い。
  • 小さな領域に多くの keypoint が密集している。
  • 左右の手の識別が必要。
  • Hand-object interaction では object に隠れやすい。

Face landmark

Face landmark は、目、眉、鼻、口、輪郭などの keypoint を推定します。用途に応じて 68 点、98 点、468 点など、さまざまな landmark 定義があります。

Face pose では、expression、head pose、gaze、identity-preserving reconstruction なども関係します。

3D hand / face

2D landmark だけでなく、3D mesh や parametric model を推定する方法も重要です。

  • Hand: MANO のような parametric hand model
  • Face: 3D Morphable Model (3DMM)、FLAME など

これらは avatar や motion capture でよく使われます。

3D Reconstruction との接続

Hand / face pose は、人間中心の 4D Reconstruction に直接関係します。Body pose だけでは、表情や手の動きが失われるため、realistic avatar には hand と face の高精度推定が必要です。

数式で見る fine-grained keypoint estimation

Hand や face の pose estimation では、非常に近接した keypoint を高精度に推定する必要があります。2D keypoint を uj\mathbf{u}_j、予測を u^j\hat{\mathbf{u}}_j とすると、基本的な reprojection loss は次のように書けます。

L2D=jcju^juj22\mathcal{L}_{2D}=\sum_j c_j\|\hat{\mathbf{u}}_j-\mathbf{u}_j\|_2^2

ここで、cjc_j は annotation confidence や visibility です。この式の気持ちは、「見えていて信頼できる keypoint ほど強く合わせ、隠れている点や曖昧な点の影響は弱める」というものです。

3D hand pose では、bone length の一貫性も重要です。Joint jj と parent p(j)p(j) の距離を bone length とすると、次のような regularization を入れられます。

Lbone=j(XjXp(j)2lj)2\mathcal{L}_{bone}=\sum_j\left(\|\mathbf{X}_j-\mathbf{X}_{p(j)}\|_2-l_j\right)^2

ljl_j は標準的な bone length です。これにより、関節位置だけを独立に合わせるのではなく、手や顔として自然な形を保ちやすくなります。

関連ページ

主なソース