: 입력 이미지로부터 사람의 관절을 2D 공간에 위치화
관절은 dataset마다 정의가 되어있음
ex) MSCOCO
사람마다 각 관절에 대한 augmentation이 있음
H, W는 이미지의 height, width
N, J는 사람 명 수와 관절 개수 ( N는 이미지마다 다를 수 있고, J는 정해진 상수)
기본적 forward 과정
(가정 : single person cropped image)
Input image
Feature extractor
2D heatmap
J : joint 개수
H : heatmap hegith
W : heatmap width
예를 들어 오른쪽 팔꿈치 heatmap이라면, 다른 영역 값은 전부 0이고 오른쪽 팔꿈치만 gaussian blob이(양수들이) 위치하게 됨
즉 이런게 관절마다 따로 총 J개 존재함
heatmap 없이 바로 관절 좌표를 출력하는 경우도 있음
이 경우 output 차원은 NxJx2 (x,y좌표이므로 마지막 차원은 2)
그러나 2D heatmap을 쓰는 경우가 성능이 더 좋게 나옴
JxWxH
ground truth=annotation=데이터 셋에서 제공하는 정답
GT 2D joint 좌표로부터 GT 2D 히트맵을 만듬
feature extractor를 포함한 neural network가 GT 2D heatmap에 가까운 2D heatmap을 출력하도록 L2loss를 줌
만약 가려짐, 잘림으로 인해 관절이 정의 안되어 있는 경우 → 즉 GT 자체가 정의되어있지 않음
loss를 0으로 줌
GT 2D heatmap이 JxHxW이므로 첫번째 차원에 모든 관절이 있는데, 이때 정의가 되어있지 않은 관절의 경우 loss를 0으로 (휴리스틱 rule)
input image : 새로운, unseen 샘플들
2D heatmap
추정된 heatmap에서 argmax를 적용함 → (x,y) 좌표를 출력하게 됌 → Jx2