인공지능/논문 리뷰

[논문리뷰] Stacked hourglass networks for human pose estimation

고등어찌짐 2022. 6. 24. 09:32

논문 제목 및 저자

Stacked hourglass networks for human pose estimation ( Computer Vision and Pattern Recognition - cs.CV, 2016 )

Alejandro Newell, Kaiyu Yang, and Jia Deng ( University of Michigan, Ann Arbor )


Abstract.

  • human pose estimation 을 위한 convolutional network architecture 를 소개
  • stacked hourglass architecture & intermediate supervision 사용

1. Introduction

  • 이전의 연구들은 모두 human pose 를 연구하려면 견고하고 정확한 모델이 필요하다고 생각
  • CNN 의 등장 이후 pose estimation 에 CNN 을 주요 building block 으로 사용
  • 해당 논문에서는 모래시계의 형태를 본따 모듈을 디자인해, pooling 과 upsampling 을 반복
  • 모래시계 형태의 모듈을 반복해서 쌓아올린 형태가 모델의 최종 형태

2. Related work

  • deep network 를 이용해 x, y 좌표를 바로 regress 방법
  • 다양한 크기의 feature 들을 반영한 heatmap 들을 생성하는 방법
  • detection 결과를 특정 방향으로 클러스터링하는 방법
  • Iterative error feedback
    input 에 predictions 이 포함되어 있고, 네트워크를 지나면서 이 prediction 들을 refine
  • multi stage 로 예측하되 가중치를 각 단계에서 공유

👉 관절이 가려지거나 잘못된 팔다리 위치로 인한 오인식의 경우, local 정보로는 성능 개선이 힘듦
👉 사람이 여러명일 때 annotation 하는 것은 또 다른 문제임

  • 해당 논문은 사람이 한 명일 때를 기준으로 함
  • 관련있는 모델 아키텍쳐
    • FCN ( fully convolutional network )
    • conv-deconv
    • encoder-decoder
  • 위 모델들과의 차이점
    • 대칭 구조
    • simple nearest neighbor upsampling
    • top-down processing 을 위한 skip connections
    • 여러개의 hourglass 를 쌓아올려서 bottom-up, top-down 의 inference 를 반복

3. Network Architecture

3.1 Hourglass Design

  • 얼굴, 손과 같은 특정 부위의 feature 추출에는 local evidence 가 필요하지만, pose estimation 을 위해서는 몸 전체에 대한 이해가 필요
  • 모든 이미지 스케일의 정보를 가져오기 위한 용도로 모래시계 형태로 디자인
  • 전체적인 feature 를 가져오고 픽셀별 prediction output 에 반영
  • 모든 스케일들의 freature 를 처리, 통합하는 효율적인 메커니즘이 필요
  • 여러개의 해상도에는 각기 다른 pipeline 을 적용해서 feature 들을 합쳤던 이전의 방식과는 다르게, skip layer 들을 활용한 single pipeline 을 사용하여 각 해상도의 공간 정보를 보존
  • convolutional layers & max pooling layers 사용
  • 아주 낮은 해상도에 다다를 때까지 max pooling 하되, 이 값들을 다른 브랜치들로 빼서 분기시키면서 feature 들을 처리 ( fig 3 )
  • 가장 낮은 해상도에 도달하면 top down sequence 를 이용한 업샘플링, 그리고 feature 들을 합치는 작업 시작 ( 분기된 값들을 더해줌 )
  • feature 를 합칠 때는 nearset neighbor upsamping, element addition 사용
  • output resolution 에 도달하면 2개의 1x1 conv 가 연속으로 적용됨
  • 최종 결과물은 모든 픽셀에 대해 관절 존재를 예측한 heatmap 집합

3.2 Layer Implementation

  • 모래시계 모양을 유지하되, 각 레이어들의 구체적인 구현은 조금씩 다름
  • residual module 을 확장해서 사용
  • 3x3 보다 큰 필터는 사용하지 않고, fig 4 모양의 모듈을 사용 ( fig 3 에 있는 각 박스들이 하나의 모듈을 의미 )
  • hourglass 모델의 input, output 최대 이미지 해상도는 64x64
  • 7x7 conv layer (stride 2), residual module, max pooling 으로 256 을 64 까지 다운 샘플링

3.3 Stacked Hourglass with Intermediate Supervision

  • hourglass 가 쌓여있고, 한 hourglass 의 output 이 다른 hourglass 의 input 으로 들어가는 구조
  • 각 hourglass 가 끝날때마다 prediction 생성되는데, 이 feature 들에 대해서도 loss 를 적용해 재평가하는 것이 바로 Intermediate supervision
  • 그렇다면 파이프라인의 어느 부분에서 intermediate supervision 하는 것이 좋을까 ?
    • pooling 이 일어나기 전 파이프라인 초기 부분은 적은 receptive field 만 처리해 global 한 정보가 반영되어있지 않으므로 부적합
    • hourglass 가 반복되는 형태를 하고 있기 때문에 다양한 이미지 크기에 대한 공간 정보를 가지고 있을 수 있음
  • hourglass 에서 나온 output heatmap 들을 conv 1x1 으로 채널 수를 맞춰주고, 이 feature 들을 다시 conv 1x1 을 2번 처리한 hourglass output 결과와 합쳐서 다음 hourglass 의 input 으로 넣는다
  • 이때, hourglass module 간 weight 는 공유되지 않는다.
  • 모든 hourglass 의 prediction 에 적용되는 loss 계산 시에는, 같은 GT 를 사용한다.

3.4 Training Details

  • 2가지 데이터셋 FLIC / MPII Human Pose 으로 네트워크 평가
  • 평가 이미지셋은 학습 셋을 샘플링해 구성
  • 사람이 여러명 있는 경우에는, 중앙에 위치한 사람에만 annotate 할 수 있도록 학습
  • 오리지널 이미지와 뒤집어진 이미지를 동시에 넣어서 히트맵들의 평균값을 사용
  • 최종 예측값은 joint 들 중 최대로 활성화된 값을 선택
  • 최종 예측 heatmap 과 관절 위치 중심의 2D 가우시안 필터가 적용된 GT heatmap 을 비교

4. Results

4.1 Evaluation

  • standard PCK ( Percentage of Correct Keypoints ) metric
  • normalize 한 상태에서 GT 값 비교하여 평가
  • 두 데이터셋에서 가장 높은 PCK 를 보여줌 ( 특히 MPII )

4.2 Ablation Experiments

  • 1 ) hourglass stacking 의 효과
  • 2 ) intermediate supervision 의 효과
  • 두 조건이 완전 독립된 조건은 아니지만, 각 조건은 긍정적 영향을 주고 동시에 사용할 경우 성능 개선 효과가 더 큼
  • hourglass 를 8번 쌓고 각 hourglass 끝마다 intermediate supervision 하는 것이 가장 큰 효과
  • 처음에는 joint 위치가 부정확하지만 hourglass 들을 거칠 수록 confusion 이 교정되며 정확한 heatmap 이 도출되는 결과

5. Further Analysis

5.1 Multiple People

  • 여러 명의 사람이 있을 때 누구를 annotate 할것인지 결정해야함
  • 해당 논문에서는 중앙에 위치한 사람을 scaling
  • 다만, 두 사람 이상 겹쳐 있는 경우 문제가 됨

5.2 Occlusion

  • 1 ) 관절 위치는 가려져 있지만 위치는 정확하게 파악되는 경우
  • 2 ) 정확한 관절 위치가 어디인지 알 수 없는 경우
    • 높은 정확도로는 관절 위치를 인식할 수 없음 ( 61.1% ~ )
  • 3 ) 관절 gt 가 존재하지 않는 경우
    • heatmap 결과 만으로 gt 존재 여부를 AUC 90% ~ 정도로 판단 가능

6. Conclusion

  • intermediate supervision module 이 stacked hourglass module 에서 네트워크 학습에 중요했음

참조
Stacked hourglass networks for human pose estimation