인공지능/논문 리뷰
[논문리뷰] 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 에서 네트워크 학습에 중요했음