https://arxiv.org/pdf/2006.10204.pdf
Abstract
heatmap과 regression을 이용한 33개의 keypoint를 찾는 on-device에 알맞은 빠르고 가벼운 Pose Estimation
Introduction
- Heatmap방식:각 관절에 대한 히트맵을 만들어내고 offset을 조정할 수 있다.
- 실시간으로 single person에 사용하기에는 적합하지 않다.
- Regrssion방식: 계산량이 적고 확장성이 좋지만, 포즈가 애한 경우는 찾아내기 힘들다.
- 본 논문은 둘을 통합해서, 인코더-디코더 방식으로 heatmap을 만들어내고 모든 관절에 대해 또 다른 encoder로 regression을 이용하여 좌표를 예측하는 방법을 채택했다.
Model Architecture and Pipeline Design
Inference Pipeline
- detector tracker: hand와 face에 성능이 좋다.
- pipelline:
- pose tracker: keypoint 좌표, 현 프레임의 사람의 존재, 현 프레임의 ROI를 예측
- 사람이 없을 시, 다음 프레임으로
person detector
- 현대식 object detection은 NMS(Non-Macimum Supression)알고리즘을 사용
- 높은 DoF에 좋은 성능
- pose estimation는 복잡해서 사용하기 힘든 부분이 있다 (waving, hugging)
- 위와 같은 문제를 보완하기 위해서, 얼굴과 몸통같은 상대적으로 움직이기 힘든 부분의 bbox를 찾는 것에 집중한다.
- person detector가 빠르고 정확하기 위해서 사람의 머리가 반드시 보여야한다.
- face detector를 person detector로 사용하고, 이를 이용해서 다른 파라미터들은 추론한다.
topology
- 33 points들을 이용한 방법을 사용한다.
- 얼굴, 손, 발의 keypoint를 최소한으로 하여 ROI, 크기, 위치등을 추정한다.
Dataset
- 정렬된 포즈: 신체가 전부보이거나 엉덩이 또는 어깨가 제대로 annotate된 경우만 사용
- occulusiona augmentation 사용
- 일반적인 포즈를 하는 한명 또는 적은 인원의 사람 이미지 60K
- 운동하는 개인의 이미지 25K
Neural Network Architecture
- 33개의 keypoint들을 예측하고, 파이프라인의 첫 단계에서 제공된 person alignment proposal을 이용한다.
- 합쳐진 heatmap, offset, regression 방식을 채택
- 학습시에만 heatmap과 offset loss 사용, 추론시 제거.
- heatmap을 사용해서 regression encoding network에 활용되는 lightwieght embedding을 학습한다
- 모든 단계에서 skip connection 이용 (고/저화질 피쳐를 모두 사용)
- regression encoder의 gradient는 역전파하지 않는다.
Alignment and Occulusions Augmentation
- 학습시, 데이터를 각도, 비율, 변환등을 모두 제한하여 신경망이 더 빠르게 만들었다.
- 엉덩이의 가운데 지점을 이미지의 중심에 오도록 조정.
- 신체 주위의 박스를 10% scale shift augmentation
- 보이지 않는 점들을 예측하기 위해 noise box(occulusion patch)를 추가
- occulusion여불를 표현하는 per-point visibility classifier 추가
Experiments
- Openpose를 비교 기준으로 하여, 17개의 조인트들을 평가
- Full/ Lite버전으로 나뉨
- AR dataset: Openpose 승
- 요가, 피트니스: Blazepose 승
Applications
- 다양한 데이터셋에 알맞은 경량 pose tracker
- CPU/GPU 모두 적합