Pose Estimation
- 주어진 영상 속 Human Object의 자세(pose)를 추정하는 것
- 해당 과제는 아래와 같이 불리기도 함
- Key-point detection, Pose recognition
- Key-points : 사람의 자세를 구성하는 주요 관절 포인트 지칭
- Key-point detection, Pose recognition
- pose estimation : 특정 Pose를 만들어내는 Key-points들을 찾아내는 tast (= "Key-points Localiztion")
- Task (Single Person)
1. HPE(Human Pose Estimation )Task의 경우 크게 2D, 3D로 나누어 집니다. ( 여기서는 2D만 다루도록 하겠습니다.)
2. 2D를 크게 Single Person과 Multi Person으로 나눌 수 있습니다.
3. 신체의 머리, 어깨 등의 keypoint를 예측하는 방법으로 Direct Regression 그리고 HeatMap Regression으로 나눌 수 있습니다.
Direct Regression : 2차원 이미지 픽셀 값을 입력으로 이용하여 바로 좌표를 추정하는 방법으로 빠른 학습이 가능합니다. 하지만 사람이 복수로 존재하는 경우 적용하기 어렵고 키포인트 위치가 매우 비선형적이고 적합하게 매핑하기 어렵다는 것이 한계점을 가지고 있습니다.
HeatMap Regression : 신체 부위 중 키포인트가 존재할만한 위치를 확률적으로 HeatMap를 계산하고 HeatMap을 기반으로 키포인트 위치를 추정하는 방법입니다. 보다 시각적으로 직관적이고 동시에 사람이 다수일 경우도 적용이 가능하다고 합니다. ( 대부분 HeatMap 베이스로 예측하는 것이 성능이 훨씬 좋다고 알려져 있습니다.) 따라서 논문 마지막 부분에서도 Heatmap 방식을 적용했다고 합니다.
- Task (Multi Person)
1. Multi Person은 Top-down과 Bottom-up 방식으로 나누어 집니다.
- Top-down
- Top-down 방식은 먼저 사람을 찾고 그 각각의 사람을 대상으로 키포인트 디텍션을 진행하게 됩니다.
- 왼쪽부터 오른쪽 순서대로 바운딩 박스로 각각의 사람을 디텍션 하게 되고 그 뒤에 바운딩 박스 내에 있는 사람의 키포인트를 찾는 방식
- 바텀업 방법에 비해 속도가 느리지만 정확도가 높음
- Bottom-up
- Top-down 방식과 반대로 먼저 모든 키포인트들을 찾은 뒤에 그 각각의 키포인트들을 이어서 각 사람에 맞게끔 연결하는 방법
- 일반적으로 바텀업 방법이 속도가 빠르지만 정확도가 떨어짐
HR-Net에 본격적으로 들어가기 전에 이전 방법들에 대해서 간단하게 설명하도록 하겠습니다.
위의 그림을 보게 되면 대부분 기존 방법들은 이미지를 고해상도에서 저해상도로 압축을 하고 저해상도에서 고해상도로 복원하는 과정을 거칩니다. 그리고 키포인트를 마지막 고해상도에서 찾습니다. 이러한 방법들을 이 논문에서는 직렬적인 시퀀셜한 구조라고 표현합니다.
왼쪽의 모델은 Stacked hourglass 모델로 symmetric하게 high-to-low에서 low-to-high로 진행되는 것을 볼 수 있으며 down sampleing 되기 전에 skip connection이 연결되어 feature 값이 전달되고 있음을 알 수 있습니다.
오른쪽의 모델 Simple Baseline의 경우 Strided Convolution으로 압축을 하고 Upsampling을 하는 과정에서 Transposed Convilution을 적용하게 됩니다.
이러한 직렬적인 구조는 압축하는 과정에서 지엽적인 정보들의 손실을 가져오게 되고 모든 프로세스가 upsampling에 의존하고 있다는 한계점이 있습니다.
HR Net도 위에 방법들과 기본적으로는 비슷하다. 근본적으로는 scale에 변화를 주면서 다양한 resolution에서 정보를 추출한다. 그럼에도 불구하고 다른 모델들보다 성능이 좋은 이유와 차별성에는 2가지가 있다.
1. High-to-low resolution을 Serially(X) Parallel(O)하게 적용한다. 이게 무슨 의미인지는 아래에 나와있다.
기존 : Input받은 strand가 downsample 됨.
HR : Input 받은 strand의 해상도는 쭉 유지가 되고 거기서 평행하게 downsample되는 strand가 분리된다.
이렇게 되면 최종적으로 predicted된 heatmap에 한번도 downsample/upsample되지 않은 input해상도 feature map이 영향을 주기 때문에 훨씬 정확하다.
2. Repeats multi-scale fusions
기존 : 존재하는 대부분의 기법은 low-level and high-level representation을 더한다.
HR : parallel한 sub-network간에 계속 정보를 주고 받는다. (그림을 보면 쉽게 알 수 있음)
같은 depth와 유사한 level의 low-resolution representation을 보조로 사용한다. predicted heatmap도 더 정확한 결과를 보인다.
결과적으로 HRNet의 경우 다양한 해상도의 subNet을 병렬적으로 유지함과 동시에 exchange unit을 통해서 전체적인 맥락과 국소적인 정보를 지속해서 교환하는 특성이 있다.
Parallel multi-resolution subnetworks (HR)
- Nsr에서 앞자리는 stage, r은 downsample된 단계를 의미한다. \
- Nsr은 첫번째 subnetwork(N11)의 해상도의 12r−1
- high-resolution subnetwork을 처음 stage로 시작한다.
- high-to-low resolution subnetworks을 하나씩 추가한다.
Repeated multi-scale fusion
다양한 scale을 반복적으로 fusion하는 괴정에서 Exchage Unit이란게 사용된다.
Exchange Unit이란 병렬 subnetowrk간에 정보를 전달해주는 역할을 하는 유닛이다.
how Exchage unit aggregated info for high, medium and low resolutions
서로 다른 resulution의 정보를 합칠때는 적절하게 upsampling / downsampling이 필요하다.
아래 그림은 stage 3를 여러 exchange block으로 나눈 그래프이다. Csrb는 r번째 resultion, sth stage, bth block의 convolution unit을 의미한다.
- Csrb에서 s,b를 무시하고 r만 남겨놓는다. (resolution에 따른 차이만 보겠다는 의미)
- Input response maps: {} (resolution 단계는 1~S)
- Output response maps: {} (resolutions and widths = input)
- Yk=∑i=1sa(Xi,k) Each output is an aggregation of the input maps
- Ys+1=a(Ys,s+1) → Last Exchange Unit
Heatmap Estimation
최종적으로 heatmap은 Last exchange unit Ys+1으로부터 나온 high-resolution representations output 으로 regress한다.
Loss Function은 평균 제곱 오차 MSE를 사용한다. 여기에 사용되는 GT heatmap은 각 keypoint에 2D 가우시안 분포를 적용해서 구한다.
Network Instantiation
ResNet 사용, resolution이 반으로 줄어들때마다 channel은 2배로 증가시킴.
3. Experiments
- COCO dataset 사용
- Evaluation Metric : OKS
OKS = ∑iexp(−di2/2s2ki2)δ(vi>0)∑iδ(vi>0)
RESULTS ON COCO
출처 :
https://www.youtube.com/watch?v=w39bjQxm1eg
https://www.youtube.com/watch?v=GmANBttiHx4
'논문' 카테고리의 다른 글
YOLOX 논문리뷰 (0) | 2022.05.09 |
---|---|
ResNet - 논문리뷰 (0) | 2021.12.23 |