ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Stacked Hourglass Networks for Human Pose Estimation
    AI 2022. 3. 25. 09:07

     

    본 논문은 2016년에 나온 논문으로 이후에 나오는 Landmark Detection 관련 SOTA에서 base backbone으로 많이 사용되는 네트워크이다. 앞으로 더 많은 논문을 공부하기 전에 주로 사용되는 backbone에 대한 공부를 하기 위해서 해당 논문을 리뷰하게 되었다.

    논문 링크: https://arxiv.org/abs/1603.06937

     

    Stacked Hourglass Networks for Human Pose Estimation

    This work introduces a novel convolutional network architecture for the task of human pose estimation. Features are processed across all scales and consolidated to best capture the various spatial relationships associated with the body. We show how repeate

    arxiv.org

     

     

    Stacked Hourglass Networks for Human Pose Estimation

    Stacked Hourglass Networks for Human Pose Estimation 이라는 제목에서 보듯이 Hourglass module이 쌓여서(stacked) 구성된 네트워크로 Human Pose Estimation task에 적용된 논문이다.

     

     

     

    Human Pose Estimation

    HPE란 간단하게 말하자면 영상(이미지)에서 사람의 괸절 키포인트(keypoint)의 위치는 찾는 문제이다.

     

    single person image with keypoints

     

    2D Pose Estimation은 영상 속 사람의 수에 따라서 single과 multil로 나눌 수 있다.

    Direct regression의 경우 (x, y) 좌표값을 이용해서 keypoint를 찾는 방법이고, 본 논문에서 사용된 Heapmap 기반의 방법의 경우 좌표값을 히트맵으로 변환한 후 이를 이용하여 keypoint를 찾는다.

     

     

     

    Hourglass

     

    다음은 hourglass module에 관한 설명이다.

    hourglass는 크게 downsampling과 upsampling으로 구성된 구조로 인코더-디코더 와 유사한 형태를 가지고 있다.

    먼저 downsampling을 통해서 high resolution이었던 이미지를 low resolution으로 변환하는데 convolutional layer와 maxpooling layer로 구성되어있다.

    upsampling의 경우, downsampling과는 반대로 low에서 high로 resolution을 변환하는데 nearest neighbor upsampling 방법을 사용하였다.

    이렇게 생성된 feature들은 elementwise addition 연산을 통해서 조합되고, 최종적으로 두번의 1x1 convolution 연산을 통해서 output이 출력된다.

     

    참고로 maxpooling과 nearest neighbor upsampling에 대한 간단한 이미지를 통한 보충 설명을 하자면 다음과 같다.

     

    maxpooling

     

    maxpooling의 경우, feature가 있을때 filter의 크기 만큼 봤을때 최대인 값만 추출하는 것이다.

     

    nearest neighbor upsampling

     

    nearest neighbor upsampling은 upsampling 방법 중의 하나로 주변을 동일한 값으로 복사해 주는 것이다.

     

     

    Layer Implementation

     

    Residual Module

     

    Fig 3의 hourglass module 이미지를 봤을때 보이는 박스는 각각 하나의 Residual Module로 구성되어 있다. 최대 size가 3x3을 넘지 않는 크기의 Conv filter가 사용되었다. GPU 메모리의 제한 때문에 hourglass의 input resolution은 64x64의 크기를 사용했다. 저자는 실험해본 결과, 성능에는 큰 영향이 없었다고 한다.

     

     

    Imtermediate Supervision

     

    Intermediate Supervision Process

     

    Stacked hourglass는 hourglass가 여러개(논문의 경우 8개)가 쌓여 있는 네트워크이다. 이러한 hourglass와 hourglass 사이에는 존재하는게 intermediate supervision으로 1x1 Conv를 이용하여 feature map(파란색 박스)를 생성하여 loss를 계산할 수 있다. 이러한 loss를 이용하면 성능을 향상할 수 있다고 한다.

     

     

    Loss

    논문에서는 loss function으로는 Mean Squared Error(MSE)를 사용하였고, Ground Truth heatmap은 각 keypoint에 2D 가우시안(gaussian) 분포를 적용해서 구했다고 한다.

    아쉽게도 이 이상 자세한 loss 계산 과정에 대한 설명은 없어서 아쉽다.

     

    Mean Squared Error

     

    2D gaussian

     

     

    Results

    다음은 저자의 실험 결과로 평가 지표는 standard Percentage of Correct Keypoints(PCK)를 사용하였다. PCK란 예측 좌표와 실측 좌표간의 거리가 threshold 보다 작으면 correck로 간주하는 평가지표이다.

     

    FLIC 데이터를 이용한 성능 평가

     

    MPII human pose 데이터를 이용한 성능 평가

     

     

    Ablation Study

     

    hourglass와 intermediate supervision의 구조에 따른 성능 비교

     

    horglass의 stack 개수에 따른 성능 비교 (2 vs 4 vs 8)

     

     

    Limit

    본 논문에서 말하는 stacked hourglass의 한계점으로는 single person의 keypoint만 찾을 수 있고 multi person의 경우 예측에 한계가 있다고 한다.

     

     

    위 이미지에 보듯이 맨 왼쪽 이미지가 들어왔을때 학습이 되면서 최종적으로 맨 오른쪽 이미지처럼 이미지의 중심에 더 가까이 있는 여성만 찾았다.

     

     

     

    댓글

© 2019 All rights reserved.