논문 요약: PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization

소개



재래월 개최 예정(코로나의 영향으로 무리?)의 CVPR2020에 accept된 논문으로부터 이하
[1] S. Saito, et. al. "PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization"
요약.

arXiv:
htps : // 아 rぃ v. rg/아bs/2004.00452

project 페이지:
htps : // 슈스케사이토. 기주 b. 이오 / 피후 HD /

github의 페이지는 준비되어 있지만, 현재(4/18)에서는 코드가 up되어 있지 않다.
htps : // 기주 b. 코 m / 신스케 사이토 / 피후 HD

관련 논문으로서 저자의 사이트가 ICCV에 내놓은 PIFu 모델.
htps : // 아 rぃ v. rg/아bs/1905.05172
그리고 그것에 대한 나의 요약 :
htps : // 이 m / 설마 46 / ms / 86588703 에 d24265 4 0

개요


  • 이미지에서 사람의 모양을 복원하는 모델
  • 베이스는 저자들이 이전에 작성한 PIFu 모델
  • coarse-to-fine 기술로 고해상도 surface 출력

  • 기법



    기반 PIFu 부분.





    자세한 내용은 어제 정리한 PIFu 참조
    htps : // 이 m / 설마 46 / ms / 86588703 에 d24265 4 0

    여기는 싹둑.

    ${\bf X} = ({\bf X}_x, {\bf X}_y, {\bf X}_z)\in\mathbb{R}^3$ ... 카메라 좌표에서의 위치
    $x =\pi ({\bf X})$ ···이것을 이미지에 project 한 입력 이미지상의 좌표
    ${\bf I}$ ... 입력 이미지
    $\Phi (x, {\bf I})$ ... 입력 이미지를 convolution 레이어로 인코딩한 것

    이 encode 한 것과 depth 로부터 다층 퍼셉트론으로 음함수를 구한다.
    f({\bf X}, {\bf I}) = g(\Phi (x, {\bf I}), {\bf X}_x) \tag{1}
    

    이 음함수가 $1$일 때 몸 표면의 안쪽, $0$일 때 바깥쪽, 경계(즉 몸 표면)를 $0.5$로 한다.
    f({\bf X}, {\bf I}) =\begin{cases}
        1 & if \ {\bf X} \ is \ inside \ mesh \ surface \\
        0 & otherwise 
      \end{cases}
    
    

    PIFu와 다른 점 1: Front-to-Back inference



    PIFu와 다른 점 중 하나는 아래 왼쪽과 같이 이미지에서 보이지 않는 사람의 뒤쪽을 먼저 추정하는 점입니다.



    종래의 PIFu에서는 이 구조 중에서 보이지 않는 뒤쪽을 추정하고 있었다. 이로 인해 PIFu의 역할이 증가하고 학습이 어려워졌습니다.

    따라서이 방법에서는 pix2pixHD를 사용하여 뒤쪽과 앞쪽의 정규화 된 것을 추정합니다.

    따라서 PIFu 유닛에 입력되는 것은 512x512의 입력 이미지 ${\bf I}_L$ 와 앞쪽의 normal map ${\bf F}_L$ 와 뒤쪽의 normal map ${\bf B}_L$ . 이것을 반영하여 식 (1)의 음수 함수를 다시 작성하면
    f^L({\bf X}, {\bf I}) = g^L(\Phi^L (x_L, {\bf I}_L, {\bf F}_L, {\bf B}_L), {\bf X}_x) \tag{2}
    

    라는 느낌.

    PIFu와 다른 점 2:multi-level인 PIFu



    PIFu와 다른 점의 2번째는 아래 그림의 Fine PIFu 부분과 같은 refine 하는 부분을 더한 점.



    이 Fine PIFu 는 나중에 PIFu 로 encode 된 $\Phi$ 가 더해지므로, 그것에 대한 refine 의 부분을 학습한다고 생각된다.

    Fine PIFu의 출력은
    f^H({\bf X}, {\bf I}) = g^H(\Phi^H (x_H, {\bf I}_H, {\bf F}_H, {\bf B}_H), \Omega ({\bf X})) \tag{3}
    

    Loss



    Loss도 PIFu에서 변화하고 있습니다. PIFu에서는 L2이었지만이 방법은 binary cross entropy입니다. (왠지 불명)

    $f^L({\bf X})$ 과 $f^H({\bf X})$ 를 함께 $f^{(L,H)}({\bf X})$ 라고 써 ,
    \mathcal{L}_o = \sum_{x \in \mathcal{S}} \lambda f^* ({\bf X}) \log f^{(L,H)}({\bf X}) + (1-\lambda)(1-f^*({\bf X}))\log \left( 1 - f^{(L,H)}({\bf X}) \right) \tag{4}
    

    한다. $f^*$ 는 target. $\lambda$ 는 각 항의 가중치를 조정하는 계수입니다. $\mathcal{S}$ 는 몸 표면(부근). 데이터 샘플링 방법은 PIFu와 유사합니다.

    실험 및 결과



    1. 정량적 평가



    RenderPeople dataest 및 BUFF dataset을 이용하여 각종 메트릭스로 평가한 결과는 다음과 같다.



    PIFu 단체와 별로 변하지 않는 인상.

    2. 정성적 평가





    다른 방법과 비교하면 정확하고 섬세하지만, 역시 PIFu 단체와 별로 변하지 않는 인상.

    3. ablatio study



    1)Fine module만, 2) 거기에 global image feature를 더한 것, 3)PIFu 단체, 4)본 수법과 비교한 것은 이하.



    이렇게 보면 PIFu 단체에 비해 보다 섬세하게 되어 있는 것 같다.

    좋은 웹페이지 즐겨찾기