본문 바로가기
  • CobsLab upgrades your company value by AI technology
이미지 처리 논문

병렬 구조 subnetwork! - HRNet: Deep High-Resolution Representation Learning for Human Pose Estimation

by dmkdmk 2022. 6. 22.

안녕하세요 콥스랩(COBS LAB)입니다.

오늘 소개해 드릴 논문은 ‘Deep High-Resolution Representation Learning for Human Pose Estimation’입니다.

해당 내용은 유튜브 ‘딥러닝 논문 읽기 모임' 중 ‘HRNet' 영상 스크립트를 편집한 내용으로, 영상으로도 확인하실 수 있습니다. (영상링크:https://youtu.be/GmANBttiHx4)

 

 

오늘 소개해드릴 논문의 제목은 HRNet이라고 불리는 'Deep High-Resolution Representation Learning for Human Pose Estimation'입니다. 이 논문은 2019년도 CVPR에서 publish 된 논문입니다.

 

먼저 Introduction에서 Pose Estimation Task에 대해 간략히 설명드리겠습니다. Pose Estimation은 사람의 joint나 body part를 예측하는 분야로 크게 2D와 3D로 나뉩니다. 2D를 크게 Single Person과 Multi Person으로 나눌 수 있습니다. 신체의 머리, 어깨 등의 keypoint를 예측하는 방법은 Direct Regression과 HeatMap Regression가 있습니다. Direct Regression는 신체의 키포인트를 feature map에서 바로 regression 하는 방법입니다. HeatMap Regression는 신체의 키포인트가 있을 확률을 예측하는 것입니다. 대부분 HeatMap 베이스의 예측을 하는 경우 성능이 더 잘 나온다고 알려져 있습니다.

 

Multi Person Task에 대해 설명을 드리겠습니다. Multi Person의 Task는 Top-down과 Bottom-up이 있습니다. Top-down의 경우 먼저 사람을 찾고 그 각각의 사람을 대상으로 KeyPoint Detection을 진행하게 됩니다. 왼쪽부터 오른쪽으로 순서대로 bounding box로 각각의 사람을 Detection 합니다. 그 후에 각 사람의 키 포인트를 찾는 방식입니다.

반대로 Bottm-up은 키포인트들을 먼저 찾습니다. 모든 사람의 모든 키 포인트를 찾은 뒤 각 키 포인트를 이어서 각 사람의 맞게끔 연결하는 방법입니다. 일반적으로 bottom-up 방식이 빠르게 처리되지만, 상대적으로 정확도는 낮습니다. Top-down는 상대적으로 비교적 느리지만 정확한 예측이 가능합니다. 왜냐하면 Top-down은 사람을 먼저 찾아 주고 그 사람마다 키 포인트를 찾는 작업을 순차적으로 진행하기 때문에 연산 양이 다소 많기 때문입니다. 오늘 소개해드릴 HRNet은 Top-down 방식으로 진행되고 있습니다.

 

HRNet 이전의 Pose Estimation에 방법에 대해 설명드리겠습니다. 대부분의 기존 방법들은 고해상도에서 저해상도로 압축을 하고 저해상도에서 고해상도로 복원을 하는 과정을 거칩니다. 그리고 키포인트를 마지막 고해상도에서 찾아야 합니다. 이런 방법을 이 논문에서는 ‘직렬적인(Sequential)’ 구조라고 표현하고 있습니다.

Stacked hourglass 모델의 경우 symmetric 하게 high-to-low에서 low-to-high로 진행되는 것을 보실 수 있습니다.

Simple Baselin 모델은 Strided Convolution으로 압축을 하고 Upsampling 과정에서는 Transposed Convolution을 적용합니다.

 

 

직렬적(Sequential) 구조는 압축하는 과정에서 지엽적인 정보들의 손실을 가져오게 되고 모든 프로세스가 Upsampling에 과도하게 의존하고 있다는 한계점을 가지고 있습니다. 이런 한계점을 극복하고자 HRNet이 접근한 방법에 대해 설명드리겠습니다. HRNet은 이전의 직렬 구조를 벗어나 병렬 구조로 subnetwork를 구성했습니다. HRNet은 근본적으로는 scale에 변화를 주면서 다양한 Resolution에서 정보를 추출하는 기존 방식의 원리를 사용하지만 하나의 row 안에서 resolution 즉, 크기가 모두 동일하게 feature map들이 구성되어 있습니다. 이렇게 Resolution을 그대로 유지하며 병렬적으로 forward를 진행합니다.

 

본 논문에서 제안한 Parallel multi-resolution subnetworks와 기존 방법을 비교한 식입니다. N은 Subnetwork, S는 stage index, r은 resolution index라고 표시했습니다. 기존 Sequential Subnetworks의 경우 각 stage별로 다른 the resolution index을 가지고 있습니다. 본 논문에서 제안된 Parallel Subnetwork 구조는 첫 번째 Stage 이후 하나의 Stage 내 두 개 이상의 resolution Index를 가지고 있는 것을 볼 수 있습니다. 즉, multi-resolution으로 구성되어 있습니다.

 

 

논문에서는 각 Resolution Row 간의 정보를 주고받을 수 있는 방법을 Multi-scale fusions이라고 합니다. Stage 1에서는 하나의 resolution이 유지되고, 그다음에 쪼개지는 구조입니다. Stage 2로 넘어가면서 원래의 resolution을 유지하는 쪽과 Down Sampling을 하면서 가지를 나눠서 쪼개지는 것을 볼 수가 있습니다. Down Sampling 시에는 각기 가로, 세로를 2로 나눠 사이즈를 줄여줍니다. Stage 2에서는 2개의 resolution이 유지되며 서로 fusion이 진행됩니다. Stage 3에서는 이러한 것이 3개의 scale로 나눠지게 되고 Stage 4에서는 4개의 resolution scale이 존재하는 구조입니다.

 

Multi-scale fusion을 위해서 Exchange Unit을 사용합니다. Exchange Unit는 병렬 subnetowrk 간의 정보를 전달해주는 역할을 하는 유닛입니다. 위 그림은 어떻게 Exchange unit이 high, medium 그리고 low resolutions을 위해 정보를 aggregate 하는지를 표현한 그림입니다. resolution이 유지되면서도 작은 resolution이 정보가 높은 resolution으로 유입이 되고 반대의 경우도 진행됩니다. Down-Sampling 시에는 input image에서 2-stride 3*3 Convolution을 사용하여 1/4로 해상도를 감소시켜 진행하며, Up-sampling 시에는 Nearest-neighbor 방법을 사용한다고 설명합니다. X를 Input, Y를 Output이라고 했을 때 i resolution을 k resolution으로 Up-sampling 하거나 Down-sampling 되는 것을 이러한 함수로 표현하게 되고, i와 k가 같다면 함수를 적용하더라도 Xi가 됩니다. 그리고 각 output은 input maps의 aggregation이 된 것이며, Exchange unit은 Stage가 넘어갈 때마다 extra output map을 갖게 됩니다.

 

Stage 3의 Exchange unit의 예입니다. C는 Convolution units이고, 엡실론은 Exchange Unit입니다. 위에 숫자는 Block index이고, 아래 숫자는 Stage Index와 Resolution Index입니다. 각 parallel 한 convolution units은 하나의 Exchange unit 갖고 있습니다. 각기 다른 Resolution 즉, 이 Exchange Unit을 통해 Fusion이 되는 것을 보실 수 있습니다. 이 과정을 반복하는 것을 Repeated Multi-scale Fusion이라고 합니다.

 

최종적으로 Stage 4까지 지나고 나면 원본 이미지 shape에 맞게 Upsampling 하는 단계를 거칩니다. Shape를 맞춰준 후에 merge를 해서 최종 prediction heat map을 얻어 내게 됩니다. groundtruth heatmaps은 2D Gaussian을 적용했다고 하고, Regession은 MSE를 사용했습니다. 본 논문에서는 HRNet을 크기별로 2가지를 만들어 실험을 진행했습니다. W32가 작은 모델이고 W48이 큰 모델입니다.

 

다음은 실험입니다. 실험을 위해서는 COCO Keypoint Dataset과 MPII Human Pose Dataset를 사용했습니다. COCO Keypoint Dataset은 17 keypoints를 가지고 있고, MPII Human Pose Dataset은 16 keypoints를 가지고 있습니다.

 

두 Dataset의 Metrics입니다.

먼저 Coco Keypoint Dataset에 쓰인 Object Keypoint Similarity (OKS)에 대해 설명드리겠습니다. OKS는 Detection Task에서의 IoU와 같은 역할을 한다고 보시면 됩니다. di는 Ground Truth 키 포인트와 검출된 키 포인트 사이의 Euclidean distance를 의미하고 Vi는 Ground Truth의 Visibility flag입니다. 만약 v=0 이면 레이블링 되지 않음(not labeled), v=1 이면 레이블링 되어있지만 보이지 않음(labeled but not visible), v=2 이면 레이블링 되어 있고 볼 수 있음(labeled and visible)으로 visibility flag가 됩니다.

s는 객체 segment 영역의 제곱근입니다. 이는 객체 Boundong Box의 대각선 길이로서 이미지의 크기입니다. ki는 키 포인트마다 사전에 정의되어 있는 상수입니다. 오른쪽을 보시면 키포인트마다 다른 상수 테이블을 보실 수 있고, 이는 Coco Dataset을 만든 리서처들이 사전에 정의한 것입니다. OKS는 각 키 포인트에 대해 0과 1 사이의 키 포인트 유사성을 계산한 값이 됩니다. 이 값들을 레이블이 있는 모든 키 포인트에 대해 평균을 구합니다. 완벽한 예측인 경우 OKS 값은 1이 되고, 반대로 표준편차 s*ki에 대해 Ground Truth 키 포인트와 검출된 키 포인트 사이의 Euclidean distance의 정규화되지 않은 Gaussian 함숫값이 0이 될 경우 OKS값은 0이 됩니다. 즉, Ground Truth와 검출된 키 포인트 사이의 Euclidean distance가 작을수록 OKS 값은 1에 가까워집니다. 지수 함수의 input값이 음수로 되어 있기 때문에 Ground truth값이 멀어질수록 OKS값은 작아지게 되어서 낮은 성능을 보이는 것으로 지표가 측정됩니다.

그리고 IoU로 Average Precision을 구하는 것처럼 OKS로 계산한 Average Precision과 Average Recall을 구할 수 있고 본 논문의 실험에서 사용했습니다.

MPII Human Pose Dataset에선 PCKh라는 Metric을 사용했습니다. PCK는 Probability of Correct Keypoint의 약자로 PCK에서 Keypoint의 추정 좌표와 정답 좌표의 거리가 특정 threshold보다 작다면 keypoint가 옳다고 판단합니다. PCK의 threshold는 인물 머리 크기에 따라 결정되는 경우가 많으며, 이것을 본 논문에서 사용한 PCKh라 부릅니다. 예를 들어 PCKh at 0.5의 경우, 머리 사이즈의 0.5를 threshold으로 설정해 평가한 지표입니다.

 

실험 결과입니다. 먼저 COCO 테스트 데이터에 대한 실험 결과입니다. 테이블 상단은 Bottom Up Approach의 결과이며, 아래는 Top-Down Approach의 결과입니다. 전체적으로 정확도는 Top-Down 방식이 훨씬 높은 것을 보실 수 있습니다. 가장 아래 HRNet의 결과가 있는데, AP를 보시면 Bottom-up 접근법들보다 성능이 월등히 높은 것을 알 수 있습니다. 그리고 마지막에 다른 추가 데이터를 적용을 했을 때 Average Precision이 가장 높게 나온 것을 확인할 수 있습니다.

 

다음은 MPII Human Pose Estimation Dataset에 대한 결과입니다. 2018년 해당 데이터셋의 리더보드 상 Total Score 92.3이 best score인데 HRNet-W32가 이 점수와 동일한 결과를 내었습니다. 이는 기존 방법인 Simple Baseline 모델보다 높은 점수임을 알 수 있습니다.

 

Ablation Study입니다. 오른쪽 그래프는 Resolution별로 Heat Map 성능을 살펴본 그래프입니다. Resolution이 커질수록 성능이 높아지는 것을 볼 수 있습니다. 왼쪽 그래프는 Input size에 따른 모델의 성능 향상을 관찰한 것입니다. Input size가 작을수록 성능 향상이 크게 이뤄지는 것을 알 수 있습니다.

 

결론입니다. HRNet은 High Resolution으로 복원하는 과정 없이 High Resolution을 전체 프로세스에서 유지하게 설계했습니다. 그리고 다양한 해상도의 representations를 반복해서 fusion을 했고, 이를 통해 reliable 한 High Resolution representation을 얻을 수 있습니다. 또한, HRNet은 Pose Estimation task 뿐만 아니라 다른 vision task에서도 좋은 성능을 보이고 있습니다. 특히 이미지 복원이 중요한 task인 segmentation에서는 SOTA 성능을 보이고 있습니다.

댓글