[Paper Review] SimCC: a Simple Coordinate Classification Perspective for Human Pose Estimation
Paper : https://arxiv.org/abs/2107.03332
GitHub : https://github.com/leeyegy/SimCC
Introduction
오늘 읽어볼 논문은 ECCV 2022에 소개된 SimCC라는 논문입니다. 구 버전 이름은 SimDR라고 하네요 ㅎㅎ 아직 깃을 사용하는 사람들을 위해 아직 코드에서 사용하는 이름은 수정하지 않았다고 하네요.
이 논문의 깃허브에 들어가보면 "Is 2D Heatmap Even Necessary for Human Pose Estimation?" 라고 써있는데요, 2D heatmap 기반 접근 방법의 quantization error로 인한 문제들을 지적하고 있습니다. 관련된 문제는 아래와 같습니다.
1. low-resolution input에 대한 성능이 제한됨
2. localization 정확도를 높이기 위해 feature map의 resolution을 개선하려면 비용이 많이 드는 upsampling layer가 필요함
3. quantization 오류를 줄이기 위한 후처리가 필요함
이러한 문제를 해결하기 위해 본 논문에서는 horizontal 및 vertical coordinate에 대한 two classification으로 포즈를 추정하는 방법을 제안합니다. 좌표에 대한 직접적인 regression이 아닌 2가지 방향의 좌표에 대한 classification으로 접근한게 신기하네요. 제안된 SimCC는 각 픽셀을 여러 bin으로 균일하게 분할하여 하위 픽셀의 정확도와 낮은 양자화 오류 결과를 달성하게 됩니다. 이러한 방법은 추가적인 refinement post-processing이 필요 없고, upsampling layer가 필요 없으므로 HPE(Human Pose Estimation)을 위한 간단하고, 효과적인 파이프라인을 만들 수 있다고 합니다.
아래 그림은 2D or 1D heatmap 기반 방법과 본 논문에서 제안하는 SimCC의 방법을 비교해 놓은 그림입니다.
2D heatmap 기반 방식은 keypoint representation을 추출하기 위한 backbone과 upsampling layer로 구성될 수 있는 2d heatmap을 생성하기 위한 regression head, 그리고 emprical shift 및 DARK와 같은 예측 결과를 개선하기 위한 post-processing으로 구성됩니다. 2D heatmap 기반 regression 방식은 facial landmark를 위해 도입되었는데, 2D heatmap 기반 방식과 비교하여 1D heatmap regression 방법은 2D를 1D로 변환하기 위한 여러 CNN layer와 co-attention module로 구성된 decoupling layer로 구성되어있습니다. 이러한 방법과 달리 SimCC 방법은 좌표를 분류하기 위한 2개의 classifier head 만 필요하고, post-processing은 필요가 없습니다.
Main contribution
1. SimCC라는 coordinate classification pipeline을 제안, 기존 CNN 기반 및 Transformer 기반 HPE 모델에 쉽게 적용 가능
2. heatmap 기반 방법에서 리소스가 많이 드는 upsampling 및 post-processing을 생략하여 높은 효율성 달성
3. COCO, CrowdPose 및 MPII 데이터세트에 대한 실험을 수행하여 효율성 검증 완료
Method
SimCC는 CNN 또는 Transformer 기반 backbone을 통해 n개의 keypoint representation을 추출합니다. CNN기반 backbone의 경우 subsequent classification을 위해 추출된 keypoint representation을 $(n, H, W)$ 에서 $(n, H \times W)$ 으로 평면화 시킵니다. 그 다음 horizontal 및 vertical 축에 대한 coordinate classification을 독립적으로 수행하여 최종 예측을 산출하게 됩니다. 입력으로 $i$ 번째 keypoint가 주어지면 horizontal and vertical coordinate classifiers는 각 $i$번째 keypoint 예측을 생성하고, 각 픽셀을 여러 bin으로 균일하게 분할하게 됩니다.
Backbone
크기가 $H \times W \times 3$인 입력 이미지가 주어지면 SimCC는 CNN 또는 Transformer 기반 신경망(HRNet, TokenPose, ...)를 backbone으로 사용하여 keypoint representation을 추출합니다.
Head
horizontal and vertical classifiers (각 classifier에 대해 단 하나의 linear layer)는 각각 좌표 분류를 수행하기 위해 backbone 뒤에 추가됩니다. CNN 기반 backbone의 경우 분류를 위해 출력된 keypoint를 평면화합니다. de-convolution layer를 head로 사용하는 heatmap 기반 방법과 비교하였을 때 이는 상당히 가볍고 단순하다고 할 수 있습니다.
Coordinate classification
classificaiton을 위해 각 연속된 좌표 값을 모델 학습을 위한 class label로 이산화 시킵니다. 여기서 $C_{x} \in [1, N_{x}]$, $C_{y} \in [1, N_{y}]$ 일 때 $N_x = W \cdot k $ 및 $N_y = H \cdot k$는 수평 및 수직 축에 대한 bin 수를 나타냅니다. $k$는 splitting factor이고, quantization error를 줄이기 위해 1 이상으로 설정하여 sub-pixel localization precision을 얻습니다. 최종 예측을 위해 backbone에서 학습한 keypoint representation을 기반으로 수평 및 수직 좌표 분류를 독립적으로 수행하게 됩니다. 또한 학습은 Kullback–Leibler divergence Loss를 사용하게 됩니다.
Label smoothing
Label smoothing은 모델의 성능을 향상시키기 위해 자주 사용하는 기법인데, 본 논문에서는 equal label smoothing을 사용합니다. 이는 인접한 label의 공간적 관련성을 고려하지 않고 false label을 무차별적으로 고려하지 않게 됩니다. 출력 범주가 GT에 가까울 수록 좋기에 이러한 문제를 해결하기 위해 Laplace 또는 Gaussian label smoothing을 사용하여 해당 분포를 따르는 smoothed label을 생성합니다.
Comparisons to 2D heatmap-based approaches
본 논문에서 다른 2D heatmap 기반 방법과 비교했을 때 다른점은 다음과 같습니다.
Quantization error
high-resolution two-dimensional structure를 얻거나 유지하는 계산 비용으로 인해 2D Heatmap 방법은 λ× downscaled input resolution로 feature map을 출력하는 경향이 있어 Quantization error가 크게 증가합니다. 반대로 SimCC는 각 픽셀을 k개의 bin으로 균일하게 분할하여 계산하기 때문에 Quantization error를 줄일 수 있습니다.
Refinement post-processing
heatmap 기반 방식들은 post-processing에 상당히 의존적입니다. 이러한 방식들은 post-processing을 사용하지 않게 되면 성능이 크게 떨어지는 단점이 있습니다. 또한 이러한 계산 방식은 상당히 계산 비용이 많이 들게 됩니다.
Low/high resolution robustness
SimCC 기반 방법은 다양한 입력 크기(64×64, 128×128, 256×192, 384×288)에서 heatmap 기반 방법보다 쉽게 성능이 우수합니다.
Speed
SimCC는 deconvolution module을 제거합니다. upsampling layer를 제거한 후 SimCC를 사용하는 SimpleBaseline-Res50은 57.3%의 GFLOP를 줄이고, 23.5%의 속도를 향상시키며, heatmap 기반 방식에 비해 +0.4AP를 얻습니다.
Experiments
본 논문에서는 COCO, CrowdPose, MPII에서 실험을 수행했으며 evaluation metric은 OKS(Object Keypoint Similarity)를 사용하였습니다.
실험결과는 다음과 같습니다. heatmap 기반 방식은 post-processing이 없으면 성능이 크게 하락하는 것을 볼 수 있습니다. post-processing이 없이 비교하면 성능이 거의 많게는 2배 정도까지 차이나는 걸 볼 수 있습니다.
classification에서 주로 사용하는 방식인 gaussian label smoothing 방식을 채택한 결과를 보면, 성능이 다른 SOTA 모델에 비해 우수하다는 것을 확인 할 수 있네요. 연구들을 2d heatmap-based, regression-based, SimCC-based로 나누어 구분해놓았는데, 앞으로 이렇게 coordinate classificaiton 기반 방법이 또 나올 수도 있을 듯 합니다. 좋은 접근법인듯 하네요.
2D, 1D heatmap 기반 방법의 deconvolution layer 수에 따른 계산량을 나타낸 지표입니다. 확실히 이 layer는 계산이 많이 들고 있으며, SimCC는 이 layer가 없기 때문에 파라미터 수도 적고, GFLOPs도 작습니다. AP도 단연 높구요.
label smoothing 방법에 따른 실험 결과도 있습니다. Gaussian 기반 방식이 제일 나아 보이네요.
CrowdPose 및 MPII 데이터세트에서의 실험결과입니다.
SimCC 방법은 top-down human pose estimation 방법이기 때문에 bottom-up multi-person pose estimation 같은 경우 keypoint를 식별하는데 모호성을 가져올 수 있습니다. 따라서 candidate coordinate x, y 값 사이의 matching 문제를 해결하기 위해 AE(sociative embedding)와 같은 방식으로 embedding을 추가할 수도 있다고 합니다.