[Overview] 2D Human Pose Estimation

먕먕·2023년 2월 18일
0
post-custom-banner

2D Human Pose Estimation

: 입력 이미지로부터 사람의 관절을 2D 공간에 위치화

관절은 dataset마다 정의가 되어있음
ex) MSCOCO

사람마다 각 관절에 대한 augmentation이 있음


H, W는 이미지의 height, width
N, J는 사람 명 수와 관절 개수 ( N는 이미지마다 다를 수 있고, J는 정해진 상수)

Challenges

  • 사람끼리의 가려짐
  • 복잡한 자세
    • 관절의 가동범위가 넓어서 → 일반적이지 않아서 추정하기 어려움
  • 작은 해상도
    • 한 이미지에서 scale이 다 다름
    • 가까운 사람은 크게 먼 사람은 작게
    • 멀리 있는 사람은 너무 작아서 픽셀이 너무 적음
    • ex) CCTV 분석
  • 모션 블러
    • 입력 이미지 정보가 불안정함
    • 사람이 빨리 움직이거나 카메라가 움직이거나
    • 빠르게 움직이는 분야
  • 잘림
    • 전신이 아닌 상반신만 처럼
    • 보이지 않는 부분에 대한 추정은?

2D human pose estimation 네트워크의 train, test

기본적 forward 과정
(가정 : single person cropped image)

  • Input image

    • single person cropped image
  • Feature extractor

    • 종류 : ResNet, Hourglass network
    • 이미지 feature들을 추출
    • 최종적으로는 2D heatmap 추출
  • 2D heatmap

    J : joint 개수
    H : heatmap hegith
    W : heatmap width

    예를 들어 오른쪽 팔꿈치 heatmap이라면, 다른 영역 값은 전부 0이고 오른쪽 팔꿈치만 gaussian blob이(양수들이) 위치하게 됨
    즉 이런게 관절마다 따로 총 J개 존재함

Baseline


heatmap 없이 바로 관절 좌표를 출력하는 경우도 있음
이 경우 output 차원은 NxJx2 (x,y좌표이므로 마지막 차원은 2)
그러나 2D heatmap을 쓰는 경우가 성능이 더 좋게 나옴
JxWxH

  • 2D 좌표를 바로 추정하는건 비선형적 연산을 요구함
    • image는 높이와 너비라는 개념이 있으며. feature extractor(fully convolutional feature extractor)에서 해당 개념이 보존됌 즉 pixel 단의 높이 너비 개념이 보존됨
    • 좌표를 추정할때는, global average pooling을 해서 feature를 vectorize화 하고 거기서 좌표를 추정하기에 입력 이미지의 높이, 너비 개념이 없어져서 성능이 낮아짐
    • 그러나 dimension이 작아서, cost도 적어짐
  • 2D heatmap은 연속적인 convolution으로도 추정할 수 있음
    • 높이, 너비 개념이 유지가 됌

Training


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)

Testing


input image : 새로운, unseen 샘플들
2D heatmap

  • shape : JxHxW
  • j번째 2D heatmap이라면, Gaussian blob이 j번째 관절 위치에 만들어짐

추정된 heatmap에서 argmax를 적용함 → (x,y) 좌표를 출력하게 됌 → Jx2

  • Jx3인 경우도 있음 → x,y,confidence 즉 관절이 얼마나 정확하게 추정되었는지 likelyhood를 담고 있음(정확한지, reliable한지)
post-custom-banner

0개의 댓글