논문 요약: Coarse-to-Fine Volumetric Prediction for Single-Image 3D Human Pose
소개
CVPR2017에서 다음 논문
[1] G. Pavlakos, et. al. "Coarse-to-Fine Volumetric Prediction for Single-Image 3D Human Pose", CVPR2017.
요약
● 저자의 프로젝트 페이지
htps //w w. 어서 s. 흠. 에즈/~파 vぁこ s/p로지ぇcts/ゔぉぅ메 tc/
● arXiv:
htps : // 아 rぃ v. rg/아bs/1611.07828
● 이미 몇 가지 정리 기사가 존재한다.
1) yusuke ujitoko 씨의 블로그:
ht tp // 유스케 우지토코. 하테나 bぉg. 코m/엔트리/2017/08/06/015654
2) DeNA naoki kato 씨의 정리:
htps : // 엔기네 r. 그래. jp / 2019 / 12 / cv-papers-19-3d-fuman-pose-s chimachion. HTML
● 코드
1) 저자들의 matlab에서의 구현
htps : // 기주 b. 코 m / 게오파 v ぁこ s / c2f ゔ ぉ l-
2) 기타 유지의 caffe에서의 구현
htps : // 기주 b. 코 m / st 등
개요
2에 관해서는 아래 그림과 같은 Volumetric heat map을 출력한다.

3차원 heat map
3차원 heat map은 2차원 heat map을 3차원으로 확장한 것으로, 그림으로 하면 이런 느낌인가?

2 차원 heat map과 마찬가지로 관절점에 가우시안을 곱하여 생성한다. 관절점을 $(i,j,k)$ 라고 하면, $(x,y,z)$ 에서의 heat map 의 값은
G_{i,j,k}({\bf{x}}^n_{gt}) = \frac{1}{2 \pi \sigma^2} \exp \left[ - \frac{(x-i)^2 + (y-j)^2 + (z - k) ^2}{2 \sigma^2} \right]
된다. 자주 있는 heat map 과 달리 기준화 상수가 있지만, $\sigma = 2$ 를 사용하기 때문에, 산의 피크는 그다지 낮아지지 않을 것이다.
loss는 MSE입니다.
\mathcal{L} = \sum^N_{n=1} \sum_{i,j,k} \| G_{(i,j,k)} ({\bf{x}}^n_{gt}) - p^n_{(i,j,k)} \|^2
$n$ 는 관절 번호입니다.
Carse-to-fine prediction
OpenPose 등에서 사용되고 있는 「모듈을 다단으로 거쳐 점점 정확한 heatmap으로 하는 구조」에 가깝지만, 몇 가지 점에서 다르다.

1. 깊이 방향을 조금씩 늘리기
차이의 첫 번째는 스테이지를 거칠 때마다 깊이 방향을 늘리는 구조.
voxel이므로, 중간층에 있어서의 heatmap의 요소수를 가능한 한 줄이고 싶다. 그래서 스테이지 1에서는 깊이의 요소수 1, 스테이지 2에서는 2, 스테이지 3에서는 4, 와 $2^n$ 로 늘려 간다.
2. 중간층 heat map 분리
아래 그림에서

(a)에서는 prediction의 일부인 어느 스테이지의 heatmap에 대해서, 그대로 다음 스테이지의 입력으로서 이용하고 있다.
특히, 스테이지 1에서는 깊이 방향이 1, 즉 2D의 화상이되지만, 그 정보만으로부터 다음 스테이지에서 깊이 방향을 복원하게 된다. 이것은 어렵다.
그래서 (b)와 같이 깊이 정보도 포함한 특징량과 heatmap을 나누고, 그 후 양자를 concate(?)하고 다음 스테이지에 전한다.
실험 및 결과
1. 3차원 heat map의 효과

각 관절의 좌표를 회귀 문제로서 풀었을 경우와 3차원 heat map 을 이용한 경우와의 mean per joint error 의 비교.
3 차원 heat map이 좋습니다.
2. 다단계 아키텍처의 효과

예를 들어, 왼쪽이 L1:64 depth, L2:64 depth 와 항상 64 의 깊이의 heat map을 출력하는 경우와, 그 오른쪽 L1:1 depth, L2:64 depth 와 처음은 작고, 그 후 크게 하는 경우를 비교하면 후자는 mean per joint error가 낮습니다.
중간층의 feature map , 혹은 그 주위의 파라미터는 감소하고 있을 것이지만, 반대로 성능이 좋아지고 있어, 흥미롭다.
3. 다른 모델과의 비교

Human 3.6M dataset에서 모델과 비교하면 reconstruction error는 상당히 작습니다. 왜 지표를 변경했습니까?
4. 정성적 평가

좌측 입력 화상에 대해, 그 오른쪽 2개가 prediction. prediction의 왼쪽은 입력 이미지와 같은 각도에서 본 3d pose로, 그 오른쪽은 그것을 회전시킨 것.
G_{i,j,k}({\bf{x}}^n_{gt}) = \frac{1}{2 \pi \sigma^2} \exp \left[ - \frac{(x-i)^2 + (y-j)^2 + (z - k) ^2}{2 \sigma^2} \right]
\mathcal{L} = \sum^N_{n=1} \sum_{i,j,k} \| G_{(i,j,k)} ({\bf{x}}^n_{gt}) - p^n_{(i,j,k)} \|^2
OpenPose 등에서 사용되고 있는 「모듈을 다단으로 거쳐 점점 정확한 heatmap으로 하는 구조」에 가깝지만, 몇 가지 점에서 다르다.

1. 깊이 방향을 조금씩 늘리기
차이의 첫 번째는 스테이지를 거칠 때마다 깊이 방향을 늘리는 구조.
voxel이므로, 중간층에 있어서의 heatmap의 요소수를 가능한 한 줄이고 싶다. 그래서 스테이지 1에서는 깊이의 요소수 1, 스테이지 2에서는 2, 스테이지 3에서는 4, 와 $2^n$ 로 늘려 간다.
2. 중간층 heat map 분리
아래 그림에서

(a)에서는 prediction의 일부인 어느 스테이지의 heatmap에 대해서, 그대로 다음 스테이지의 입력으로서 이용하고 있다.
특히, 스테이지 1에서는 깊이 방향이 1, 즉 2D의 화상이되지만, 그 정보만으로부터 다음 스테이지에서 깊이 방향을 복원하게 된다. 이것은 어렵다.
그래서 (b)와 같이 깊이 정보도 포함한 특징량과 heatmap을 나누고, 그 후 양자를 concate(?)하고 다음 스테이지에 전한다.
실험 및 결과
1. 3차원 heat map의 효과

각 관절의 좌표를 회귀 문제로서 풀었을 경우와 3차원 heat map 을 이용한 경우와의 mean per joint error 의 비교.
3 차원 heat map이 좋습니다.
2. 다단계 아키텍처의 효과

예를 들어, 왼쪽이 L1:64 depth, L2:64 depth 와 항상 64 의 깊이의 heat map을 출력하는 경우와, 그 오른쪽 L1:1 depth, L2:64 depth 와 처음은 작고, 그 후 크게 하는 경우를 비교하면 후자는 mean per joint error가 낮습니다.
중간층의 feature map , 혹은 그 주위의 파라미터는 감소하고 있을 것이지만, 반대로 성능이 좋아지고 있어, 흥미롭다.
3. 다른 모델과의 비교

Human 3.6M dataset에서 모델과 비교하면 reconstruction error는 상당히 작습니다. 왜 지표를 변경했습니까?
4. 정성적 평가

좌측 입력 화상에 대해, 그 오른쪽 2개가 prediction. prediction의 왼쪽은 입력 이미지와 같은 각도에서 본 3d pose로, 그 오른쪽은 그것을 회전시킨 것.
Reference
이 문제에 관하여(논문 요약: Coarse-to-Fine Volumetric Prediction for Single-Image 3D Human Pose), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masataka46/items/cb684be837d9742c48f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)