[논문리뷰] Stacked Hourglass Networks (Human Pose Estimation)
본문 바로가기
Paper

[논문리뷰] Stacked Hourglass Networks (Human Pose Estimation)

by Migos 2020. 3. 28.
반응형

사실 이전에 읽었지만 Pose Estimation에서 가장 혁신적인 논문을 리뷰해보도록 하겠다.

Stacked hourglass network : 모래시계를 쌓아둔 모양을 가진 네트워크 인데 정말 그렇게 생겼다.

이 논문은 Newell ECCV’16 & Newell POCV’16 에서 소개되었다.

 

Outline

1. Network Architecture
2. Intermediate Supervision
3. Some Training Details
4. Ablation Study
5. Comparison with SOTA Approaches
6. Multiple people

 

1. Network Architecture 

 

A single “hourglass” module (excluding the final 1×1 layers). Each box corresponds to a residual module as below.

1) 컨볼루젼(Convolutional) 과 맥스풀링(Max-pooling)을 통해 다운샘플링 과정에서 이미지 속 모든 스케일에 관한 정보를 추출한다.

2) 업샘플링 과정에서, 다운샘플링 과정에서 추출한 정보를 토대로 Pixel-wise output을 생성한다.

- 업샘플링 : Nearest neighbor upsampling 기법이 사용되었고, element-wise로 두 피쳐간 연산이 진행된다.

3) output 단계에서 2개의 연속적인 1x1 컨볼루젼이 수행되고 최종 결과를 예측한다.

4) 하나의 Hourglass(모래시계모양)의 네트워크를 여러개로 확장하여 단계적으로 피쳐를 뽑아내는 구조를 보여준다.

Residual Module

Residual module은 메모리의 사용량을 최소화하기 위해 bottleneck 구조를 가지고 있다.

Hourglass 네트워크의 모든 residual module은 output크기가 256 사이즈인데, 컨볼루젼을 하면 64채널로 줄어들었다가 다시 복구되어 최대 해상도크기는 256을 유지한다. 

 

 

2. Intermediate Supervision

그림을 보면, 두 개의 Hourglass 네트워크 사이에 중간단계(Intermediate Supervision)이 존재한다.

파란색 박스부분에서 HG네트워크를 통과하여 특징을 추출한 결과(히트맵)을 생성해 낸다. 히트맵은 가장 확률분포가 뚜렷한 부분에 그라디언트 형태로 맵에 표시되는 것으로 이해하면 되겠다. 히트맵으로 추출된 특징값을 다시 GT와 비교해서 loss값을 뽑아낸다. 이러한 반복적인 예측/조정과정을 거치다 보면 학습이 원활히 진행된다.

논문에서는 8개의 HG네트워크를 이어붙여서 사용했다고 명시되어 있다.

 

3. Some Training Details 

FLIC: 5003개 이미지 (3987: trainset, 1016: testset) 
MPII Human Pose: 25000개 이미지와 라벨링(Annotations) ; multiple people 포함 40000개의 라벨링(28000 trainset, 11000 testset). Validation 3000개.
모든 이미지는 256x256으로 리사이즈되어 input data로 사용.

Data augmentation은 rotation(±30◦), scaling(.75–1.25) 적용.

Torch7, training 3일 소요 (12GB NVIDIA TitanX GPU).

Batch normalization 사용.

최종 테스트때 원본 이미지와, flipped 된 이미지를 예측하여 히트맵을 추출(아래 아웃풋 예시).

4. Ablation Study 

4.1 Variants

HG : 한 개의 HG 네트워크(long version)

HG-Int : 한 개의 HG+Intermediate Supervision

HG-Stacked : 두 개의 HG 네트워크

HG-Stacked-Int : 두 개의 HG + Intermediate Supervision == Best Performance!

HG-Half : 한 개의 HG네트워크

 

4.2 Number of hourglass

HG네트워크의 갯수가 정확도에 어떤 영향을 주는지 알 수 있는 그림이다. 모래시계 모양의 네트워크를 많이 쌓을수록 빨간색으로 표시되는 부분에 정확도가 가장 높은 것을 알 수 있다. 반면, 적게 쌓은 네트워크는 성능이 그다지 좋지 않았다. 87.4% - > 87.8% -> 88.1% 로 개선됨.

 

5. Comparision with SOTA Approaches

당시 SOTA급 논문들로 DeepCut, IEF, Tompson CVPR'15, CPM 등이 있는데, 가장 좋은 성능을 보였다.

손목, 팔꿈치, 무릎과 발목부분 정확도는 타 논문 대비 3.5% 상승되었다(PCKh@0.5:문턱값 성능지표) 

평균 에러율은 12.8%.

 

6. Multiple People

CPM(Convolutional Pose Machine)의 경우 이렇게 겹쳐져 있을 때 Center 기준으로 사람을 탐지하기 때문에 오류를 범하는 한계점이 있었다. 하지만 Hourglass 네트워크는 좀 더 어려운 이미지도 정확히 구분해서 탐지할 수 있다.

 

Reference

[2016 ECCV] [Newell ECCV’16]
Stacked Hourglass Networks for Human Pose Estimation
[2016 POCV] [Newell POCV’16]
Stacked Hourglass Networks for Human Pose Estimation
(I have downloaded it but sorry that I can’t find the link now. It is a paper with only 2 pages, it is better to read ECCV version, lol.)

[Medium Posting : Sik-Ho Tsang]

반응형

댓글