[Paper Review] FasterPose, A Faster Simple Baseline for Human Pose Estimation
Paper : https://arxiv.org/abs/2107.03215
2021년 7월에 아카이브에서 공개된 FasterPose라는 논문입니다. 이 논문도 간단히만 살펴보겠습니다.
human pose estimation의 성능은 keypoint localization의 spatial accuracy에 의해 달렸으며, 기존 방식들은 입력 영상에서 high resolution representation을 학습하여 spatial accuracy를 확보합니다. 실험에 따르면 이러한 HR representation은 computational cost의 증가를 가져오고 low-resolution(LR) representation에 비해 정확도 향상은 미미하다고 합니다.
본 논문에서는 LR representation을 사용하여 FasterPose라는 효율적인 네트워크를 제시합니다. 이는 모델 복잡도를 크게 줄이지만 spatial accuracy와 관련하여 네트워크를 효과적으로 학습하는 방법이 필요하기 때문에 FasterPose의 training behavior을 연구하고 convergence를 가속화 하기 위한 Regressive Cross-Entropy(RCE) loss를 제안합니다.
RCEloss는 binary supervision의 일반적인 CE loss를 continuous range로 일반화 하기 때문에 pose estimation network는 sigmoid function의 이점을 얻을 수 있습니다. 이러한 방식을 사용하면 spatial accuracy의 손실 없이 LR feature에서 output heatmap을 유추해낼 수 있는 동시에 computation cost와 model size를 줄일 수 있습니다. 이러한 방식은 기존의 dominant network에 비해 FLOP를 58% 정도 줄이고, 1.3%의 정확도 향상을 달성합니다. 특히나 non-GPU 환경에서 low-latency를 달성하고 low-energy-budget이 가능합니다.
위 그림은 COCO에서 Qualitative evaluation을 한 결과인데 빨간색은 FasterPose에 의해 예측된 결과이고, 파란색은 Simple Baseline 방식에 의해 예측된 결과라고 합니다. FasterPose는 twisted limb, abnormal pose, and view point change 등 다양한 adverse factor들을 잘 처리합니다. 이러한 결과는 2080Ti GPU 환경에서 133 FPS를 달성한다고 합니다.
본 논문의 Contribution은 아래와 같습니다.
- 이는 feature resolution의 영향을 분석하려는 첫 시도이며, LR feature가 HR feature에 비해 매우 효율적임을 보여줌
- LR feature의 장점을 활용하여 효율적인 cost를 달성. inference time, model size, FLOP를 크게 줄임
- RCE Loss라는 heatmap regression을 위한 새로운 loss function 제안. 이는 수렴 속도를 높이고 정확도를 높임
FasterPose의 개요는 아래와 같습니다.
입력 이미지는 backbone을 거쳐 LHR module을 거치고 최종적으로 RCE Loss가 supervise 하는 heatmap regression 단계에 접근합니다. 1x1 conv의 각 그룹에는 $L^{2}$ 개의 커널을 포함하고 $L$은 upsampling의 비율을 나타냅니다. (예를 들면 그림에서는 $L=8$) 그룹의 수는 keypoint의 수와 같습니다.
본 논문에서는 MSE(Mean Square Error)의 단점들을 지적하여 RCE Loss를 제안했는데요, MSE loss는 heatmap 기반 pose estimation에서 가장 많이 사용되는 loss func 입니다. Euclidean metric에 따라 output과 GT heatmap 간의 픽셀 단위 유사성(pixel-wise similarity)를 최적화 합니다.
그러나 MSE의 학습 목표는 pose estimation의 evaluation metric과는 일치하지 않으며, 이러한 discrepancy(불일치)는 주로 keypoint와 background pixel의 prior distribution에 significant gap이 존재하기 때문에 발생한다고 합니다. 따라서 이러한 방식으로 학습하게 되면 수렴도 느리고, 정확도도 낮다고 주장합니다. 이러한 단점들을 확인하기 위해 heatmap의 분포를 확인하였고, 추정할 각 pose에 대해 실제 keypoint는 GT heatmap에서 0보다 크며 spatial dimension에서 드물게 분포하는 반면 나머지 방대한 background pixel은 값이 0입니다. 쉽게 말해서 heatmap에서 keypoint를 나타내는 값의 영역이 상당히 작다고 말합니다.
heatmap regressior의 parameter는 feature가 LR이 될 때 크게 감소하고 대부분의 parameter는 MSE에 의해 background에서 0 값으로 regression 되는데 집중하게 됩니다. 이것이 바로 pose estimation의 주요 목적인 positive sample(keypoint)에 대해 수렴 문제를 일으키는 이유라고 지적하고 있습니다. 또한 낮은 정확도는 MSE가 pose estimation의 evaluation metric과 일치하지 않기 때문에 발생한다고 합니다. 예를 들면 keypoint의 사소한 오예측은 AP(Average Precision)에 큰 영향을 미치는 반면 background에서 사소한 오예측은 거의 중요하지 않습니다. 반면 background 및 keypoint 사이의 prediction은 모두 MSE 값에 동일하게 기여하게 됩니다. 이러한 문제를 해결하기 위해서는 Euclidean 방식 보다는 Sigmoid 방식이 적절합니다.
그림 (a)에서 regression 값 x는 sigmoid mapping에 의해 0 또는 1로 압축됩니다. 따라서 regressor는 background에 맞춰 학습할 필요가 없습니다. 그러나 $ y = sigmoid(x) $에 MSE를 적용하면 부작용이 발생하며, 그림 (c)에서와 같이 $x$ 범위에서 기울기가 빠르게 vanishing 됩니다. 따라서 RCE loss를 제안합니다. 즉, 이러한 상황에서는 CE loss와 같이 0과 1로의 regression을 학습하는데 더 적합하다고 합니다. 그러나 GT 값은 0과 1 사이의 값으로 binary objective에는 적합하지 않습니다. 그래서 PoseFix, G-RMI, UDP 논문에서는 one-hot 또는 mask 같은 것으로 이러한 문제를 해결하였는데 이러한 수정 사항들은 편향 및 성능 저하를 가져온다고 합니다. 따라서 이러한 문제점을 해결하기 위해 CE loss 개선한 Regression Cross Entropy 방법을 제안했습니다.
본래 CE의 식은 아래와 같습니다. 여기서 $y$는 prediction 이고 $\hat {y}$는 objective 입니다.
RCE loss는 0과 1 사이의 실수에 대한 학습을 할 수 있으며 예측 오류 $e = y - \hat {y}$이 주어지면 RCE는 아래와 같습니다.
위 식은 3가지 장점이 있습니다.
1. objective를 실수 $\hat{y}$로 일반화 할 수 있으므로 pose estimation training은 RCE loss의 이점을 얻을 수 있으며, objective $\hat{y}$가 0과 1의 정수로 제한되면 CE loss가 RCE의 special case가 된다는 것을 알 수 있습니다.
2. RCE loss는 sigmoid mapping으로 인해 발생하는 gradient vanishing 문제를 완화시킵니다.
3. $|e|$ 일 때 loss 값은 무한이 되는데 이는 loss 값이 큰 hard sample에서 학습하기 위한 전제조건을 제공합니다. 반대로 MSE loss는 $e$의 finite support 내에서 hard sample에 대해 큰 손실 값을 산출할수는 없습니다.
일반적인 관행에 따라 absolute prediction error $|e|$를 hard extent의 측정을 위해 설정하고 위에서 설명한 이점으로 인해 $|e|$가 증가할 때 RCE의 큰 loss 값은 hard sample emphasis를 가능하게 합니다. 최종 RCE loss는 focal style이 됩니다.
여기서 𝛾은 hard sample weighting을 modulation 하기 위한 hyperparameter이며, 실험에서는 𝛾=1.0 으로 설정했습니다. 이러한 설정은 consistent improvement를 가져오기에 충분하다고 설명하고 있습니다. 또한 Focal loss에서 제안한 것처럼 positive 및 negative에 대한 weighting factor를 조정하여 further boost를 얻을 수 있습니다.
다음은 실험결과 입니다. GFLOPs, Params, Infer. time 이 모두 줄어들고 AP가 상승한 것을 볼 수 있습니다.
또한 아래와 같이 본 논문이 공개되었을 때 기준으로 SOTA를 달성한다는 것을 보여주었습니다.
loss function에 대해서도 비교를 해놓았습니다.
왜인지는 아직 모르겠지만... GitHub에 코드라던가 프로젝트 페이지는 아직 없는 듯 합니다.