AI Research Topic/Human Pose Estimation

[Paper Review] Keypoint-wise Adaptive Loss for Whole-Body Human Pose Estimation

꾸준희 2023. 2. 23. 23:18
728x90
반응형

 

Paper : https://www.researchgate.net/publication/368336170_Keypoint-wise_Adaptive_Loss_for_Whole-Body_Human_Pose_Estimation

 

 

Introduction 

오늘 읽어볼 논문은 AAAI 2023에 소개될 Keypoint-wise Adaptive Loss for Whole-Body Human Pose Estimation 라는 논문입니다. NHN Cloud 분들이 논문을 냈네요. 아직 코드는 공개가 안된 듯 합니다. 이 논문은 dense 및 coarse keypoints의 mixed characteristic을 분석하여 whole-body human pose estimation을 수행합니다. whole body를 추정하는 것은 기존 HPE 방법과는 달리 face, hand, foot 뿐만 아니라 다른 body keypoint 들 까지 찾아야합니다. fixed Gaussian sigma는 GT에 사용되는데, whole-body 자세 추정은 keypoint 별 scale 차이(body part 마다 다른 labeling noise 가 존재함)로 인해 어려움을 겪게 됩니다. 그래서 이러한 문제를 해결하기 위해 body part 간의 adaptive factor를 학습하기 위한 Keypoint-wise Adaptive Loss (KAL)를 제안합니다. 여기서 adaptive factor는 body 및 foot 보다는 더 dense 하게 주석이 달려있는 face 및 hand keypoint들을 위한 요소를 말합니다. 확실히 face, hand는 일반 body joint에 비해 추정을 하기가 어려운 keypoint 임이 확실합니다 ㅎㅎ 일단 주석 수가 굉장히 많습니다... 참고로 COCO-wholeBody 데이터에서 body는 17개, foot은 6개, face는 68개, hand는 42개 입니다. 확실히 face, hand를 잘 학습 시키려면 다른 트릭이 필요해 보입니다. 

 

그래서 본 논문에서는 dense keypoint의 정확도를 개선하기 위해 Foreground-Weight Adaptive Heatmap Regression (FWAHR) 방법을 KAL에 도입하여 FoWKAL(Foreground-Weight Keypoint-wise Adaptive Loss)를 제안합니다. 실험 결과 FoWKAL 방법은 이전 방법들 보다 훨씬 더 좋은 성능을 능가한다고 합니다. COCO-WholeBody 데이터 세트에서도 SOTA를 달성했다고 합니다. 

 

본 논문에서는 기존 연구들을 분석했을 때 different dense keypoint에 초점을 둔 heatmap regression 방법을 분석했는데, 이러한 heatmap regression 방법은 keypoint regression 방법 보다는 성능이 우수함을 발견했습니다. 그런데 이런 방법의 whole-body keypoint의 scale은 heatmap 수준에서 거의 연구가 되지 않았다고 합니다. (첨언을 드리자면, heatmap에서 scale을 adaptive 하게 설정하는 연구들을 봤었는데 더 연구가 될 필요가 있더군용 아무튼...) MSE loss를 Adaptive Wing(AWing) loss로 간단히 대체하는 방법도 있지만, 이는 face, hand keypoint를 제외하고서 성능 저하를 일으켰기 때문에 적절한 방법이 아니라고 지적합니다. 

 

그래서 MSE, AWing 과 같은 loss의 균형을 맞추기 위해 adaptive factor를 dense에 따라 학습하는 KAL 방법을 제안합니다. 이는 keypoint의 density를 정량화하고, labeling noise와 같은 annotation variance, inherent ambiguity 같은 것들을 고려합니다. 이러한 방식은 annotation variance가 작을 경우 background pixel 보다 foreground pixel에 더 많은 가중치를 부여하고, annotation variance가 작지 않은 경우 heatmap의 모든 pixel에 동일한 가중치를 적용하게 됩니다. 그러나 이러한 방법은 heatmap의 background pixel이 dense keypoint의 성능을 약화시킨다는 것을 발견했고, localization 정확도를 개선시키기 위해 FWAHR 방법을 제안합니다. 본 논문의 main contribution은 다음과 같습니다. 

 

  • KAL 방법이 keypoint의 scale difference, ambiguity, labeling noise를 처리하도록 함, 이 방법은 keypoint 성능 향상
  • localization 정확도를 위해 loss weight를 foreground area로 제한하는 FWAHR 방법을 제안, dense keypoint 성능 향상
  • 다양한 실험을 통해 FoWKAL 방법으로 SOTA를 달성 

 

Method

우선 이 방식은 top-down 방식을 따릅니다. HRNet, Dark 방법을 기반으로 한다고하네요. KAL은 single person image에 대해 모든 keypoint를 예측합니다. 그 다음 $W \times H \times 3$ 크기의 이미지 $I$가 주어지면 pose estimator는 W′×H′×K 크기의 heatmap $P$를 예측하게 됩니다. pose-processing을 거친 뒤 모든 keypoint $K$를 검출합니다. KAL로  학습하여 정확도를 향상시키기 위해 keypoint-wise adaptive factor $\lambda \in \left [ 0, 1 \right ] ^K$를 예측하기 위한 head network를 추가했습니다. 

 

 

Heatmap Regression

heatmap regression에서 GT heatmap은 2D Gaussian distribution을 이용하여 지정하게 되고, fixed sigma는 2를 사용했다고 합니다. heatmap regression에서는 MSE를 아래와 같이 사용합니다. 여기서 $\hat{P}$는 예측된 heatmap 입니다. 

 

Motivation

본 논문에서는 heatmap에서 foreground 및 background 간의 imbalance 문제에 주목하게 됩니다. MSE loss는 pixel 수준에서 동일한 가중치를 적용하게 됩니다. 그러나 heatmap에서 background pixel이 foreground pixel 보다 우세하여 예측 정확도가 떨어지게 됩니다. 그래서 AWing loss를 사용하여 heatmap에서 foreground에 더 많은 가중치를 둡니다. 여기서 foreground 부분은 keypoint에 해당하겠죠 ㅎㅎ 아무튼 이 loss를 사용하면 foreground error가 작을 때 gradient가 더 크게 작용합니다. 그래서 AWing loss는 아래와 같이 정의됩니다. 

 

 

여기서 $\omega, \theta, \epsilon, \alpha $는 positive value에 대한 hyper parameter 입니다. 자세한 설명은 AWing loss 논문을 참조하시길 바랍니다! 그래서 본 논문에서는 AWing loss에서 사용된 매개변수를 그대로 사용하였고, 사용하던 MSE Loss를 다음과 같이 공식화 하여 사용합니다. 뭔가 논문이 시행착오가 적혀있어서 좋네요... 아무튼 요 loss를 사용하면 성능은 face, hand에서만 개선되고 나머지 성능은 오르지 않는다고 하네요. 

 

 

 

Heuristic Loss

그래서 본 논문에서는 body, feet keypoint는 MSE loss를 사용하고, Face, Hand의 keypoint에 대해서는 AWing loss를 택하는 휴리스틱한 방법을 택합니다. 이렇게 했을 때 대부분의 keypont에서 성능이 향상되었다고 합니다. 또한 모든 keypoint에 대해 동일한 sigma를 사용하는 것은 문제가 있는데, 이를 해결하기 위해 keypoint 마다 sigma를 조정하는 대신 이 loss를 사용하면 간접적으로 sigma를 조정하는 효과가 있다고 합니다. 그래서 loss는 다음과 같이 정의됩니다. 

 

 

여기서 $N_{bf}$ 는 body, foot에 대한 개수를 나타내고, $N_{fh}$는 face와 hand에 대한 개수를 나타냅니다. 따라서 다음과 같이 정의될 수 있습니다. 또한 $\lambda_{fh}$, $\lambda_{bf}$는 balancing factor 입니다. 

 

 

Keypoint-wise Adaptive Loss

다양한 pose에 대응하기 위해 KAF 방법을 제안합니다. 이를 도입하여 heatmap의 foreground에 대한 focus range를 제어합니다. 다음과 같이 각 keypoint에서 adaptive loss 함수를 정의합니다. 여기서 $\lambda_{k}$는 head의 output인 k번째 heatmap의 KAF를 뜻합니다.  

 

regularization term은 아래와 같습니다. 

 

Weighted Foreground Heatmap Loss

heatmap의 모든 pixel이 동일한 가중치로 할당되면 dense keypoint의 성능이 악화됩니다. 따라서 WAHR 방법은 foregorund sample의 균형을 맞추는 방법인데, 이와 비슷하게 본 논문에서는 Foreground-Weight Adaptive Heatmap Regression (FWAHR)를 제안합니다. 이는 localization의 성능을 개선하고 foreground pixel에 loss weight를 적용합니다. 따라서 상대적으로 더 어려운 샘플에 집중하여 학습할 수 있게끔 유도합니다. FWAHR은 다음과 같이 정의됩니다. 

 

여기서 $2^{-\frac{1}{\gamma }}$은 sample이 positive 또는 negative인지 결정하기 위한 soft boundary의 threshold 값이고, $\tau $는 background pixel에 있을 가능성이 있는 sample의 가중치를 낮추는 hyper-parameter 입니다. 이 실험에서는 0.01을 사용했다고 합니다. 따라서 KAL과 FWAHR을 함께 사용하면 FoWKAL(Foreground-Weight Keypoint-wise Adaptive Loss)라고 하네요. loss는 다음과 같습니다.

 

 

이를 다시 쓰면 아래와 같습니다. 

 

 

 

Experiments 

실험결과는 다음과 같습니다. FoWKAL 방법을 사용하면 face, hand에서 성능이 오르네요. hand에서 성능향상이 두드러지네요. body, foot 방법도 FoWKAL을 사용하지 않은 방법보다 성능 개선이 두드러지네요. 특히 foot 성능이 상당히 오릅니다. total 성능은 SOTA네요. 

 

 

각 Loss 마다 비교해 놓은 결과입니다. 

 

정성평가는 아래와 같습니다. 

 

728x90
반응형