Pose Estimation 설명
- body part를 예측하는 분야로써 2D, 3D로 나눌수 있음
- 2D는 single person, multi person으로 나눔
- 신체의 머리, 어깨, 관절 등의 keypoint를 예측하는 방법으로 Direct Regression, Heatmap regression으로 나눌수 있음
- Direct regression
- 2차원 이미지 픽셀 값을 입력값으로 이용해 바로 좌표를 추정하는 방식
- 빠른 학습이 가능, 다수의 사람이 존재할 경우 적용이 어려움
- keypoints 위치가 비선형적임으로 적합하게 매핑하기 어렵다는 문제가 존재
- Heatmap regression
- 신체 부위중 keypoints가 존재할 만한 위치를 확률적으로 heatmap으로 계산하고 keypoints 위치를 추정
- 시각적으로 객관적이며 사람이 다수일 경우도 적용 가능
- Direct regression보다 일반적으로 성능이 좋음
- Multi person task
- Topdown
- 먼저 사람을 찾고 각각의 대상으로 keypoint detection을 진행
- 일반적으로 detection model을 통해 detection된 이미지를 crop한 후 이미지 내부에서 pose estimation 수행
- bbox 후에 keypoints detection은 객체당 순차적으로 진행, 연산량이 커짐
- 먼저 사람을 찾고 각각의 대상으로 keypoint detection을 진행
- Bottomup
- keypoints를 먼저 찾는 방식으로 진행, 이미지 상에서 모든 keypoints를 찾은 후 각각의 keypoints를 이어서 사람의 pose에 맞게 연결하는 방식
- Topdown 방식은 상대적으로 느리지만 정확도가 높음
- Topdown
HRNet
- Topdown 방식 사용
- 이전에 사용했던 방법들
- high-low-high 의 고해상도에서 저해상도 다시 고해상도로 복원하는 autoencoder같은 방법을 사용
- keypoints를 마지막 고해상도에서 찾음, 이런 방법을 직렬적인 시퀀셜 구조라고 표현
- 대표적으로 stacked hourglass, simple baseline 둘다 고->저->고 방식
- 고->저->고 단계를 진행하면서 local 정보의 손실이 발생
- keypoints를 찾는 과정은 오직 마지막 저->고 단계에서 진행되기 때문에 upsampling과정의 의존성이 커짐
HRNet은 이러한 문제를 해결하기 위해 직렬구조 -> 병렬구조로 변경
HRNet 구조
- 위 구조를 보면 1x row에서 동일한 해상도가 유지되는 층과 평행하게 아래에서 downsample되는 구간이 분리됨
- 이 과정을 통해 최종적으로 heatmap단계에서 downsample/upsample 되지 않은 input 해상도 feature map이 영향을 줘서 정확도가 올라감
- 병렬구조의 각 layer에서 정보를 계속 주고받는 형태
- 같은 depth의 유사한 level의 low-resolution 정보를 사용함으로써 최종적인 heamap 예측에서도 정확도가 높아짐
병렬적 구조로 구성된 네트워크간 Fusion을 통해서 high resolusion을 유지하면서 global, local 정보를 학습
1단계
-
- 원래의 resolution 과 down-sampling으로 나뉘는 단계
- 하나의 resolution이 유지되는 단계
- residual unit을 반복후 2개의 resolution으로 나누는 과정 수행
- down-sampling 수행시 가로/2, 세로/2 적용
2단계
- residual unit 진행후 down-sampling, up-sampling을 진행
- 원래의 해상도 정보가 작은 해상도에 반영되고 반대로 작은 해상도 정보가 높은 해상도에도 반영
- 3번째 resolution은 다시 절반에 해당되는 크기로 down-sampling
3단계
- 3단계, 4단계는 2단계와 동일한 과정으로 진행
- 차이점으로는 Exchange unit이 2단계는 1개, 3단계는 4개, 4단계는 2개로 fusion이 반복되는 횟수의 차이가 존재
- Exchange Unit이란 병렬 subnetowrk간에 정보를 전달해주는 역할을 하는 유닛
- 2~4까지는 multi resolution fusion이 진행 resolution scale 확장이 이루어짐
4단계
- 4단계를 지나게 되면 원본 이미지 shape에 맞게 up-sampling 단계를 수행
- 최종 이미지의 shape이 x,y,channel 이고 이때의 channel이 17이라고 소개되는데 이는 coco dataset의 keypoints가 17개 개수와 같아짐
- 하나의 heatmap이 하나의 keypoint 예측값이 되는 것
Heatmap Estimation
- Loss Function은 평균 제곱 오차 MSE를 사용한다. 여기에 사용되는 GT heatmap은 각 keypoint에 2D 가우시안 분포를 적용해서 계산
OKS (Object keypoint similarity)
객체에 대한 key point는
형태로 존재
이때 x, y는 평면상의 위치를 나타내는 좌표
v=0 : 레이블 되어있지 않음, v=1 : 레이블 되어있지만 화면상에서 보이지 않음, v=2 : 레이블 되어있고 화면상에서 보임
Object Keypoint Similarity (OKS) 공식
: Ground Truth keypoint와 detection keypoint 사이의 Euclidean distance
: Ground Truth의 visibility flag (
= 0,1,2)
s : 객체 세그먼트 영역의 제곱근
: keypoint 마다 존재하는 상수값
전반적으로 heatmap regression과 top-down 방식을 사용해 Pose estimation을 수행하는 HRNet
가장 흥미로운 점은 병렬연결과 fusion을 통해 원본해상도와 down-sampling된 해상도 사이의 up,down sampling을 통해 다양한 정보를 얻고 이를 통해 resolution scale 이 확장되가는 방식이 가장 인상깊은 논문이었습니다.
최종적으로 x,y,channel의 channel 수가 keypoints 수가 되고 heatmap 1개당 1개의 keypoints로 결정되어 Pose Estimation을 수행하는 점도 확인할 수 있었습니다.
'Study > Paper' 카테고리의 다른 글
On The Convergence of Adam and Beyond 논문 리뷰 (6) | 2024.07.22 |
---|---|
Mask R-CNN 논문 리뷰 (2) | 2024.07.22 |
YOLO 논문 리뷰 (2) | 2024.07.22 |
Faster R-CNN 논문 리뷰 (0) | 2024.07.22 |
Fast R-CNN 논문 리뷰 (1) | 2024.07.09 |