4 minute read

지난 포스팅에서는 single-person estimation에서 Feature Extractor로 가장 많이 사용되고 있는 Hourglass Network paper에 대해서 알아보았다. 오늘은 2018년 CVPR에서 발표된 CPN에 대해서 알아보고자 한다.

Abstract

CNN의 비약적인 발전에 따라 Multi-person pose estimation도 최근까지 굉장한 발전에 이룩하였다. 하지만 keypoint가 가려진다거나 배경과 같은 요인으로 인해 보이지 않는 점들은 여전한 극복해야할 점으로 남아있다.

이번 논문에서는 위에서 언급한 어려운 난제들을 해결하는데 초점을 둔 Cascaded Pyramid Network(CPN)을 소개한다. 이 네트워크는 두 단계를 포함하는데,

  • GlobalNet : 눈이나 손과 같이 성공적으로 localize 할 수 있는 simple한 keypoints(이하 kp)를 추정할 수 있는 feature pyramid nerwork이다. (하지만 가려지거나 보이지 않는 kp에 대해서는 정교하게 추정하지 못할 수 있다.)
  • RefineNet : GlobalNet으로부터 추출된 모든 feature level들을 통합함으로써 hard한 kp를 추정한다.

또한, multi-person pose 문제를 해결할 때는 bounding box 결정(detector)을 위해 Top-down 방식을 채택한 뒤, CPN을 통해 loss를 mining 하면서 kp를 추정한다.

Mask-RCNN의 문제점 : hard kp들을 해결하지 못함(가려짐, invisible, crowded background etc)

prymid network는 훌륭한 맥락 정보를 제공해준다. 맥락 정보는 hard kp과 필연적인 관계이다.

1. Introduction

  • Mask-RCNN의 문제점은 hard kp (occluded, invisible and crowded background)에 대한 문제를 해결하지 못했지만, CPN의 GlobalNet + RefineNet을 통해서 이를 해결할 수 있다.
  • Top-down 방식의 multi-human pose estimation에서 person detector와 data preprocessing과 같은 다양한 요소가 성능에 어떤 영향을 미치는지 또한 연구했다.
  • COCO dataset의 multi-person keypoint benchmark에서 AP 73.0을 기록했다.

AP(Average Precision) : 여러 인물 자세 추정의 평가에 이용되는 지표. 추정 자세와 정답 자세의 유사성을 나타내는 척도이다.

* (2. Related Work는 통과하겠습니다.)*

3. Our Approach for Multi-person Keypoints Estimation

image-20220406191330950

image-20220406194320067

3.1 Human Detector

본 논문은 Top-down방식을 pipeline으로 채택했기 때문에 Object Detection을 통한 bounding box 생성이 매우 중요하다. 그에 대해, FPNROIAlign에 대해 알아볼 필요가 있다. FPN, ROIAlign 그리고 ResNet에 대한 개념 이해는 CPN을 이해하는데 있어서 굉장한 비중을 차지한다. 반드시 이해하고 넘어가는 것을 권고드리는 바이다.

그에 대한 설명은 아래 Paper Review에 자세하게 나와 있습니다. 참고하시면 될 것 같습니다.

FPN : https://herbwood.tistory.com/18

ROIAlign : https://herbwood.tistory.com/20

데이터셋으로는 COCO val과 COCO test를 사용.

3.2 Cascaded Pyramid Network (CPN)

CPN에 대한 설명을 하기 전에, bounding box를 기반으로한 single-person pose estimation에 대한 구조를 살펴보자. pose estimation에서 가장 일반적으로 사용되는 방법인 Stacked Hourglass는 residual connection을 가지면서 down-sampling과 up-sampling을 반복하는 모래시계 구조가 8개를 쌓은 구조이다.

하지만 본 논문이 제안하는 CPN에서는 2개의 HG면 충분하다고 한다.

Figure 1를 보면 알 수 있듯이, CPN은 (2.1)GlobalNet과 (2.2)RefineNet의 두 단계를 포함한다.

3.2.1 GlobalNet

  • Backbone으로는 ResNet을 사용한다. 여기서 Backbone은 (워딩으로 보면 등뼈라는 뜻이지만) 어떤 input이 들어와서 output에 관련된 모듈에 처리된 입력을 보내주는 역할이다.
  • 3x3 filter가 적용된 $C_2, C_3, C_4, C_5$는 kp에 대한 heatmap을 만들어 낸다. ($C_1$는 연산량이 많아서 제외)
  • $C_2$과 $C_3$는 Figure 2에서 볼 수 있듯이, 높은 해상도지만 low semantic information을 인식하고 heatmap을 형성한다.
  • $C_4$과 $C_5$는 낮은 해상도지만 더욱 고차원적인 sementic information을 추출해낸다.
  • 이로써 U-shape (U자 모양의) feature layer에서 공간적인 정보와 의미론적인 정보를 유지하기위해 integration된다.
  • FPN과 구조는 비슷하지만 다른점이 있다면 upsampling 단계에서 element-wise sum을 하기 전에 1x1 convolutional kerenl을 사용함으로써 channel을 줄여 연산량을 줄였다는 것이다.
  • Figure 2의 heatmap을 보면, 눈의 kp(simple keypoint)는 효과적으로 추정하는 반면, 왼쪽 엉덩이의 kp(hard keypoint)는 정교하게 추정하진 못했다. 이러한 문제는 맥락적인 정보가 더욱 필요시된다.

3.2.2 RefineNet

  • RefineNet으로 GlobalNet에서 해결하지 못했던 hard keypoint를 해결할 수 있다.
  • 효율을 증가시키고 feature infomation들의 변형을 온전히 유지시키기 위해서 RefineNet은 HyperNet으로써 upsampling과 concatenating을 통해서 다른 level들의 정보를 integration하고 다른 level의 정보들을 전송하는 역할을 수행한다.
    • HyperNet : 데이터에 존재하는 고차 관계를 학습하는 확률그래프 모델.
  • RefineNet은 Hourglass 모듈의 end 지점에서 feature들을 단순히 upsampling 하기보단, 모든 feature들을 concatenate한다.
  • Network가 훈련을 계속할 때, 덜 중요한 hard kp보다 가장 있을 법한 simple kp에 더 많은 시간을 할애할 수 있다.
  • 하지만 본 논문의 저자는 위의 언급했던 중요성에 상관없이 balance를 중요시한다고 확신한다.
  • 그렇기에, training loss(hard kp mining)에 기반한 hard kp도 잘 추정할 수 있으며 선택된 kp에 의해서 backpropagation을 통해 gradient가 update된다.

4. Experiment

본 논문의 저자는 오직 한 명의 사람만이 cropped된 region에 있으며 그 region에 kp 추정을 위한 pose estimation network를 적용한다고 한다.

4.1 Experimental Setup

  • Dataset and Evaluation Metric
    • MS COCO trainval dataset (57K images and 150K person instances) - training
    • MS COCO minival dataset (5000 images) - validation
    • Test : test-dev (20K images) and test-challenge set (20K images)
    • Evaluated : mAP, OKS(object keypoints similarity)
  • Cropping Stategy
    • Human detection box ratio $\rightarrow$ height : width = 256 : 192 (default)
    • 모든 class 중에서 top 100의 box에 대한 person class의 box만 실험에 사용된다.
  • Data Augmentation Strategy
    • Dataset의 수를 늘리는 것은 굉장히 중요한데 각도를 변형하는 방법이 있다.
    • random rotation(-45$\degree$ ~ 45$\degree$) & random scale (0.7 ~ 1.35)
  • Training Details
    • Optimizer : Adam (initial learning rate = 5e-4)
    • 매 3600000 iteration마다 learning rate 감소
    • weight decay : 1e-5
    • training batch size : 32
    • Batch Normalization : True
    • NVIDIA Titan X Pasal GPUs를 사용하여 ResNet-50을 backbone으로 한 모델이 훈련되는 데 하루하고도 나절이 걸렸다고 한다.
  • Testing Details
    • 예측값이 변하는 것을 최소화하기 위해서 kp가 추정된 heatmap에 Gaussian filter를 씌웠다.

4.2.1 Person Detector & Non-Maximum Supperssion

image-20220407113737358

Table 1을 보면 알 수 있듯이 NMS의 임계값이 높을 수록 AP가 증가하는 것을 볼 수 있다.

NMS는 주어진 bounding box의 집합 $B$, $B$의 class score $S$, overlap 임계치 $N$이 주어졌을 때, 임계치 $N$와 $S$의 비교를 통해 $B$를 제거해나가는 알고리즘입니다.

  • Detection Peformance

image-20220407114340015

Table 2에서는 detection AP와 keypoints AP의 관계를 보여주고 있는데, 결국 하고자 하는 말은 더 많은 boxes를 포함하는 것보다는 hard kp를 찾는 것이 AP를 높이는데에 더 중요하다는 말을 하고 있다.

4.2.2 CPN

Baseline model로 dilation을 적용한 8-stage hourglass network와 ResNet-50을 채택하고 있으며, 가장 좋은 성능을 내지만 Parameter Size가 102MB로 heavy한 감이 있다.

image-20220407115348176