더 이상 tistory 블로그를 운영하지 않습니다. glanceyes.github.io에서 새롭게 시작합니다.

새소식

AI/CV

PIFu: Pixel-aligned Implicit Function을 사용하여 single image로부터 clothed human 3D model을 예측하는 모델

  • -

 

사람을 촬영한 이미지만 사용하여 그 사람의 3D Human을 모델링하는 digitization은 metaverse의 AR, VR 등 다양한 사례에 응용하여 적용할 수 있다. 예를 들어, 우리 각자 개인의 selfi만을 사용하여 가상환경에서의 캐릭터를 바로 생성할 수 있는 것처럼 말이다. PIFu는 2D 이미지만을 input으로 받아서 implicit function을 학습하는 neural network를 통해 그에 대응되는 사람의 3D model을 reconstruction 할 수 있는데, naked body 뿐만이 아니라 옷과 악세사리를 착용한 모습도 기존에 제안된 방법들보다 높은 quality로 모델링할 수 있다. 이번 논문에서는 PIFu(PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito)에서 핵심이 되는 pixel-aligned implicit function을 자세히 알아보고, 그 외에 어떠한 방법을 논문에서 사용했는지 알아보려고 한다.

 

 

 

PIFu란?

[출처] Figure 1, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

PIFu는 end-to-end 방식으로 deep learning을 통해 옷을 입은 사람을 찍은 단일 이미지 또는 여러 방향에서 찍은 둘 이상의 2D 이미지만을 가지고 3D surface와 texture를 추론하여 그 사람을 표현하는 3D model을 예측할 수 있는 3D Human Digitization을 수행하는 모델이다. 즉, 3D space에서의 human model에 관한 정보를 주지 않고도 2D에서의 사람을 찍은 하나 혹은 여러 장의 사진만으로도 그 사람의 얼굴, 몸, 착용한 옷과 악세서리를 갖춘 3차원의 사람 모델로 reconstruction 할 수 있는 모델로 볼 수 있다.

 

 

 

Background

 

[출처] Figure 1, SMPL: A Skinned Multi-Person Linear Model, Matthew Loper

 

PIFu가 제안되기 이전에는 사람을 표현할 수 있는 parametric model을 구하거나 여러 데이터로부터 모델링하고자 하는 대상의 geometric 정보를 학습하는 data-driven technique이 많이 쓰였다. 즉, 이전에 학자들이 연구했던 사람의 몸과 움직임을 표현할 수 있는 어떠한 template model을 기반으로 이미지로부터 사람의 feature 또는 attribute를 추출해서 파라미터를 확률적으로 조절하는 방법으로 구현한 것이다. 사람의 체형, 자세 등 사람을 표현할 수 있는 정보에 관한 parametric model은 이제까지 적지 않게 연구되었고 사람을 좀 더 정확히 표현할 수는 있으나, 기본적으로 사람의 머리카락은 잘 표현하지 못하고 옷이나 악세사리를 착용하지 않은 naked-human body에 관해서만 섬세한 표현이 가능하다는 치명적인 단점을 지니고 있다. 또한 어디까지나 사전에 정의된 template을 사용하는 것이어서 general shape을 표현하거나 예측하는 데 있어서는 크게 두각을 보이지 못했다.

 

이를 극복하고자 deep learning을 사용하여 다양한 시도가 지속되어 왔지만, memory efficiency에서 좋은 결과를 보이지 못하거나 괄목할 만한 성능을 보이지 못하는 경우가 대다수였다. 첫 번째로 단순히 'fully-convolutional' network를 사용하는 architecture는 이미지와 3D domain의 output에서의 spatial alignment를 유지하는 데 어려움을 겪었다. (보통 2D 이미지를 convolutional layer 통과시켜서 해당 대상의 3D 정보를 얻는다는 건 쉬운 일이 아니다.) 두 번째로 3D space에서의 voxel-grid를 예측하는 voxel representation을 학습하는 방법이 있는데, 이는 2D 이미지로부터 사람의 체형이나 자세 등 필요한 정보를 추출하고 이를 바탕으로 3차원 공간에서 그 사람의 occupancy를 예측하는 것이다. 직접 voxel-grid를 예측하므로 표현력은 높아질 수 있으나 complexity가 cubic하게 늘어나므로 memory resource를 과도하게 사용해서 3D representation의 해상도를 높이는 것이 쉽지 않다. 이러한 memory efficiency를 보완할 수 있는 global representation을 사용하는 방법도 있지만, 이는 세밀한 정보를 학습하는 데는 어려움을 겪는다. 

 

Multi-view 3D human digitization은 여러 방향에서 찍은 사람 이미지를 바탕으로 완전한 3D 사람 모델을 생성하는 접근인데, 이는 여러 방향에서 동시에 사람을 촬영할 수 있는 특수한 스튜디오 세팅이나 캘리브레이션된 여러 개의 카메라를 설치할 수 있는 공간이 요구된다. 그러나 이를 수행할 수 있는 넓은 공간이 필요하고 적지 않은 세팅 비용이 문제가 되어 flexibility 면에서 문제가 된다.. 또한 많은 수의 카메라를 사용하면 사용할수록 reconstruction의 성능은 높아질 수 있지만, 사람의 옷이 접히는 것처럼 오목한 부분에 관해서는 다루기 어렵다는 단점도 지니고 있다.

 

그래서 논문에서 저자는 pixel-algined implicit function을 사용하여 pixel level에서의 각각의 local feature를 전반적인 사람의 global context와 align 시킴으로써 과도한 memory resource 사용 없이 단지 하나의 2D image만으로도 섬세한 3D reconstruction을 수행할 수 있는 모델을 제안했다. 게다가 단순히 하나의 이미지만을 사용하는 것보다 여러 방향에서 찍은 복수 이미지를 사용해서 각각의 view point에 대응되는 latent feature를 구하여 이를 aggregation 하는 방법을 사용해서 보다 visual fidelity를 높이는 접근도 함께 제시했다.

 

 

 

Contribution

 

PIFu의 contribution을 요약하면 다음과 같다.

 

1. Template-based가 아닌 3D reconstruction에 관한 implicit function을 모델링하는 neural network를 사용했다.

2. Arbitray topology를 지니는 대상에 관해서도 pixel-aligned implicit function을 통해 detail을 보존하면서 보다 정확한 surface와 texture를 표현할 수 있다.

3. Voxel-grid를 global feature로 학습하지 않고 논문에서 제안한 spatial sampling 방법을 통해 3D world의 모든 point가 아닌 pixel과 align 되는 일부 샘플링된 3D point의 occupancy와 color를 예측하여 memory efficiency를 높일 수 있다.

 

 

 

Method

 

Pixel-aligned Implicit Function

 

[출처] Figure 2, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

이 논문에서는 pixel-aligned implicit function이라는 함수를 학습하여 3D space 상에서의 occupancy와 color를 예측하는데, 우리가 하고자 하는 건 입력으로 주어진 2D 이미지를 encoder에 통과시켜서 그 image feature를 얻고, 그러한 feature를 occupancy field로 mapping 해주는 implicit function을 지니는 모델을 학습하는 것이다. 여기서 왜 implicit function에 'pixel-aligned'라는 이름이 붙은 이유를 이해하려면 논문에서 정의한 함수를 자세히 살펴 볼 필요가 있다.

 

$$f(F(x), z(X)) = s : s\in \mathbb{R}$$

 

위의 식에서 각각의 기호가 설명하는 바를 정리하면 다음과 같다.

 

$X$: 3D space에서의 임의의 좌표(point)

$x$: 3차원 좌표를 2D로 projection 시켰을 때 대응되는 pixel 좌표

$F$: 2D 이미지에서 뽑아 낸 image feature

$z$: 실제 3차원에서 2D 이미지로부터 떨어진 거리에 해당되는 depth value

$f$: 이미지에서 pixel $x$에 대응되는 image feature와 3차원 좌표 $X$의 depth value를 입력으로 받아서 실제 $X$의 occupancy를 예측하는 함수

 

즉, 우리는 2D 이미지만을 보고 3차원 공간 상에서 임의의 point $X$의 occupancy를 예측하려고 하는데, $X$를 2D 이미지에 projection 시켰을 때 aligned 되는 pixel $x$에 대응되는 image feature와 그 $X$ 좌표의 depth value를 input으로 받아서 해당 $X$ 좌표에서의 occupancy를 예측하는 함수를 neural network로 모델링하여 학습하겠다는 것이다. 논문에서는 pixel-aligned image feauture를 가지고 3D space 상에서의 implicit function을 학습하는 게 핵심이라고 말하고 있다. 이처럼 어떠한 voxel-grid로서의 global feature를 정해서 학습하는 것보다는 pixel 단위로 대응되는 3차원 상의 좌표에 관한 정보를 직접 학습하는 것이 implicit function이 이미지에 나타나는 local detail을 더 잘 보존할 수 있다고 언급한다. 3차원 좌표의 depth value는 어떻게 얻을 수 있는 건지 궁금할 수 있는데, 실제 구현 코드를 잘 살펴보면 depth value를 계산하는 부분에서 3차원 좌표와 그 이미지를 찍은 calibration matrix를 받아서 구한다. Calibration matrix는 카메라 내부의 intrinsic parameter와 3D space 상에서의 기준점과 카메라를 찍은 위치와의 선형변환 관계를 나타내는 extrinsic parameter를 지니고 있다. 컴퓨터 비전에서 자주 쓰이는 기법으로 calibration matrix과 구하고자하는 3차원 좌표를 알면 그 좌표를 2D 이미지에 projection 시켰을 때 대응되는 pixel과 이미지로부터 떨어진 3차원 좌표의 거리를 구할 수 있다.

 

 

$$f^*_v(X) = \begin{cases} 1, \quad \text{if} \; X \; \text{is inside mesh surface} \\ 0, \quad \text{otherwise}\end{cases}$$

 

Occupancy를 예측하는 경우는 $f$에 관한 식에서 $s$ 값이 0 또는 1인데, 0은 해당 $X$ 좌표가 사람의 surface 바깥에 있고, 1은 sruface 위 또는 안쪽에 있다는 걸 뜻한다. 함수 $f^*_v$는 3차원 좌표에 관한 실제 3D occupancy인 ground truth를 의미하고, 함수 $f$의 출력은 그 좌표에 관하여 implicit function인 $f$에 대응되는 MLP(Multi-layer Perceptrons)의 예측 결과(prediction)를 뜻한다.

앞에서는 임의의 point $X$의 occupancy만을 말했는데, 이를 $X$ 좌표의 RGB color를 예측하는 것으로 확장할 수도 있다. 3차원 좌표 $X$의 RGB color를 예측하면 $s$는 어떠한 RGB value일 것이다. 논문에서는 3차원 좌표의 color를 예측하는 부분을 texture inference로 표현하고 있는데, 이에 관해서는 저자가 추가로 기법을 사용한 부분이 있어서 이에 관해 후술할 것이다.

 

 

 

Pipeline

 

[출처] Figure 2, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

전반적인 파이프라인을 설명하는 그림을 보면 더 쉽게 이해할 수 있다. 먼저 3차원 상에 digitization 하려는 사람을 찍은 2D 이미지를 input으로 받는다. 이를 image encoder에 통과시켜서 image feature $F_V$를 얻는데, image encoder로서 어떠한 모델도 사용 가능하지만 저자는 stacked hourglass architecture를 사용하는 것이 real image에서 좀 더 좋은 일반화 성능을 보여준다고 언급하고 있다. 실제로 코드 상에서도 Hourglass 클래스를 따로 정의하여 이를 image encoder로 사용하는 모습을 볼 수 있다. 이후 3차원 공간 상에서 임의의 point인 $X$에 관해 occupancy를 예측하는 과정을 수행한다. 이를 위해 3차원 좌표 $X$를 입력으로 넣은 이미지에 projection 시켰을 때 대응되는 2D pixel 좌표인 $x$를 구하고, 이미지로부터 3차원 좌표 $X$가 3차원 공간 상에서 얼마나 떨어져 있는지 그 depth value를 구한다. 앞서 추출한 image feature $F_V$에서 pixel 좌표 $x$에 대응되는 feature를 뽑고, 이 feature와 depth value를 위에서 설명한 pixel-aligned implicit function인 $f_V$를 모델링하는 MLP(PIFu 모델)의 input으로 넣어서 $X$에서의 occupancy 예측값을 구한다. 이 값이 실제 occupancy와 가까워지도록 MSE loss로 정의된 objective function을 최소화 하는 방향으로 학습하는데, 이를 논문에서는 surface reconstruction이라고 말한다. 실제로 3차원 공간의 모든 좌표를 다 뽑아서 학습할 수는 없으므로 sampling 하는 방법이 중요한데, 논문에서는 spatial sampling이라는 section에서 이에 관해 자세히 설명하고 있으므로 이 글에서도 따로 후술할 예정이다.

앞선 부분까지는 occupancy를 예측하는 과정이었고, 이제 그 surface에서의 RGB color를 예측하는 texture inference도 수행한다. 여기서는 앞서 occupancy를 예측하는 방법과 유사한데, occupancy에서 사용한 것과는 다른 image encoder를 통해 image feature $F_C$를 추출한다. 여기서는 image encoder로서 CycleGAN을 사용했다고 언급한다. 대신 input으로 2D 이미지뿐만이 아니라 surface reconstruction 과정 내의 image encoder에서 학습하여 뽑은 image feature를 가져와서 같이 사용한다. 즉, $F_V$와 2D 이미지를 texture inference의 image encoder의 input으로 사용하여 $F_C$를 추출한다. 이는 texture image encoder가 이미지만을 input으로 받으면 해당 encoder가 color 뿐만이 아니라 occupancy도 같이 예측할 수 있기 때문이다. 개인적으로 이 부분을 disentanglement의 관점으로도 이해해 볼 수 있다고 느꼈다. 다시 말해, surface renconstruction의 image encoder가 학습한 occupancy 정보를 같이 넣어줌으로써 오로지 texture inference에만 집중할 수 있도록 한다고 이해했다. 마찬가지로 pixel-aligned implicit function인 $f_C$를 모델링하는 MLP(Tex-PIFu 모델)의 input으로 image feature와 depth value를 넣어서 3차원 좌표 $X$의 RGB color를 예측하는 건 surface reconstruction과 닮아 있다. 여기서도 MSE loss로 정의된 objective function을 최소화 하는 방향으로 image encoder와 MLP를 학습한다.

테스트할 때는 test 대상의 human을 여러 방향에서 찍은 $n$개의 이미지를 PIFu 모델에 넣어서 3D occupancy filed를 얻는다. 여기서 PIFu 모델은 surface reconstruction을 수행하는 과정에서 학습한 MLP를 뜻한다. 이후 marching cube 알고리즘을 통해 reconstructed geometry를 얻고, 학습 과정에서처럼 Tex-PIFu 모델까지 넣어 수행하면 최종적인 textured reconstruction 결과를 얻는다. 여기서 Tex-PIFu 모델은 texture reconstruction을 수행하는 과정에서 학습한 MLP를 뜻한다.

 

개괄적인 학습과 테스트 내용을 살펴봤고, 이제는 각각의 세부적인 구현 내용을 알아보고자 한다.

 

 

 

Details

 

Single-view Surface Reconstruction

 

$$f^*_v(X) = \begin{cases} 1, \quad \text{if} \; X \; \text{is inside mesh surface} \\ 0, \quad \text{otherwise}\end{cases}$$

 

위의 pixel-aligned implicit function에서 이미 3D occupancy field를 예측하기 위한 ground truth인 $f^*_V$에 관해 설명했다. Implicit function $f$의 예측값이 $f^*_V$에 가까워지도록 다음과 같이 MSE(mean squared error) objective function을 정의하여 이를 최소화하는 방향으로 파라미터를 학습한다. 실제 occupancy field는 continuous 하므로 0.5의 threshold를 정해서 그보다 크면 1, 아니면 0으로 이산화하는 함수로 해석할 수 있다.

 

$$\mathcal{L}_V = \frac{1}{n}\sum^n_{i=1}|f_v(F_V(x_i), z(X_i)) - f^*_v(X_i)|^2$$

 

여기서 $X_i$는 3차원 좌표, $x$는 $X$를 이미지에 projection $\pi$를 적용할 때 align 되는 pixel 좌표 ($x = \pi(X)$), $F_V(x)$는 이미지 $I$를 image encoder $g$에 통과시켰을 때 나오는 image feature에서 $x$에 해당되는 feature ($F_V(x) = g(I(x))$)이다. 예측 값과 실제 값을 최소화하여 image encoder와 implicit function을 모델링하는 MLP 모델의 파라미터 모두 optimization이 된다. 

실제 occupancy 값은 $f^*_V$에 의해 0 또는 1로 이산화되지만 모델로 inference 할 때는 0과 1 사이의 probability field로 occupancy에 관한 예측 값이 나오고, 0.5를 threshold로 하여 Marching Cube algorithm을 사용하여 그러한 probability field의 iso-surface를 추출한다. 저자는 이러한 implicit surface representation이 arbitrary topology를 지니는 detailed object에 적합하다고 말하고 있다.

 

 

Spatial Sampling

 

실제로 3D grid 상의 모든 point들을 뽑아서 예측하는 것은 불가능에 가깝고, 그중 일부만을 샘플링하여 iso-surface를 얻어야 한다. 논문에서는 sampling strategy가 최종적인 reconstruction quality에 큰 영향을 끼친다고 말한다. 예를 들어, 만약 3D space에서 uniform 하게 point를 샘플링 한다면 대다수의 sample point는 iso-surface에서 거리가 먼 점들일 텐데, 이러면 네트워크가 iso-surface가 아닌 그 바깥쪽에 관해 예측하는 데 가중치를 두게 되는 꼴이다. 반면에 너무 iso-surface 주위에서만 샘플링하면 모델이 overfitting 될 수 있다. 그래서 저자는 이 두 방법을 적절히 섞은 sampling strategy를 사용하고 있다고 설명한다.

Surface geometry 부근에서 뽑는 샘플과 uniform 하게 뽑은 샘플을 16:1 비율로 하는데, surface geometry 주위의 샘플을 봅을 때는 그 surface geomary 위에 존재하는 sample point들을 랜덤하게 뽑고, 거기에 평균이 0이면서 분산이 $\sigma$인 정규분포$\mathcal{N}(0, \sigma)$에서 offset으로 뽑아서 이를 sample point에 더한다. 논문에서는 $\sigma$를 5.0cm로 정했다.

 

 

Texture Inference

 

Texture inference에서도 surface reconstruction에서와 유사한 절차로 수행한다. 대신 pixel-aligned implicit function에서 occupancy 예측에서는 $s$가 0과 1 사이의 scalar 값이었다면 여기서는 $s$가 RGB vector field의 값으로 나올 것이다. Surface에 위치하는 3차원 좌표 $X$에 관해 아래의 L1 distance error로 정의한 objective function을 최적화한다고 정리할 수 있다.

 

$$\mathcal{L}_C = \frac{1}{n}\sum^n_{i=1}|f_c(F_C(x_i), z(X_i)) - C(X_i)|$$

 

그러나 실제로 위처럼 naive 하게 정의하면 $f_c$가 심한 overfitting을 겪는다고 하는데, 이는 $f_c$가 texture 뿐만이 아니라 surface까지 예측하려고 해서다. 그래서 앞서 surface reconstruction 과정의 image encoder에서 추출되었던 image feature인 $F_V$를 가져와서 현재 texture inference의 image encoder에 input으로 같이 넣어준다. 또한 단지 exact surface에 위치한 point만 뽑는 게 아니라 offset $\epsilon$을 정규분포 $\mathcal{N}(0, d)$에서 샘플링하여 그 주위의 point들도 샘플링할 수 있도록 한다. 이를 반영하여 다시 objective function을 정의하면 다음과 같다.

 

$$\mathcal{L}_C = \frac{1}{n}\sum^n_{i=1}|f_c(F_C(x_i', F_V), X'_{i,z}) - C(X_i)|$$

 

여기서 $X_i'$는 $X_i + \epsilon \cdot  N_i$이다. 논문에서는 $d$를 1.0cm로 설정하여 실험했다.

 

 

Multi-view Stereo

[출처] Figure 3, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

논문에서는 PIFu를 단순히 하나의 이미지만으로부터 뿐만이 아니라 다양한 viewing direction에서 촬영한 이미지를 사용하여 더 좋은 visual fidelity를 보일 수 있는 Multi-view PIFU 방법도 제안했다. 이를 위해 기존의 implicit function을 두 개의 네트워크로 decomposition 했는데, 하나는 featue embedding function $f_1$이고 다른 하나는 multi-view reasoning function $f_2$이다. $f_1$은 각각의 view $i$에서 촬용한 사진마다 image encoder를 통과해서 얻은 image feature와 depth value를 가지고 바로 주어진 point의 occupancy나 color를 예측하지 않고 intermediate feature embedding $\Phi_i$로 encoding 하여 이를 모든 view에 관해 aggregate하여 latent feature embedding $\bar{\Phi}$를 얻는다. Aggregation 할 때는 average pooling operation을 사용하여 각각의 view에 대응되는 모든 embedding의 평균으로 구한다. $f_2$는 이러한 latent feature embedding을 input으로 받아서 occupancy 또는 RGB value처럼 우리가 원하는 target implicit field로 mapping 시키는 역할을 한다. 이렇게 다양한 view의 image embedding을 종합하는 접근을 통해 더 confident prection을 달성할 수 있다고 설명한다.

즉, 우리가 앞서 보았던 single-view surface reconstruction도 multi-view stereo의 일종으로 볼 수 있으며, 단일 이미지 뿐만이 아니라 다양한 view의 이미지를 사용하는 작업으로 확장할 수 있음을 내포한다.

 

[출처] Figure 8, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

실제로 더 많은 view에서 찍은 이미지를 추가하면 추가할수록 더 좋은 reconstruction 결과를 낸다는 사실을 알 수 있다.

 

 

 

Experiments

 

논문에서는 PIFu의 reconstruction accuracy 관점에서의 우수성을 입증하기 위해 세 가지 metric을 사용했다. 첫 번째는 point-to-surface Euclidean distance(P2S)의 평균을 측정하는 방법이다. 이는 reconstructed surface에 위치한 point가 실제 ground truth에 얼마나 가까운지를 Euclidean distance로 구하는 것이다. 두 번째는 Chamfer distance인데, 이는 reconstruction 결과와 ground truth의 surface를 각각 이루는 point cloud 간의 거리를 거리를 계산하는 지표이다. 마지막은 normal reprojection error인데, reconstructed 3D model를 ground truth에 대응되는 2D 이미지에 projection 시켜서 norma map을 구하고, 그들의 차이를 L2 distance error로 구하는 것이다.

 

[출처] Table 1, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

[출처] Table 2, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

논문에서 정리한 실험 결과 표를 살펴보자. 위의 표는 single-view reconstruction을, 아래의 표는 multi-view reconstruction을 실행한 결과를 나타낸다. 이 실험에서는 RenderPeople과 Buff 데이터셋을 사용했고, Nomal(normal reprojeciton error), P2S(point-to-surface Euclidean distanc ), Chamfer(Chamfer distance) 값은 모두 작을수록 좋다. PIFu가 대다수의 지표에서 우수한 지표를 보이고 있다.

 

[출처] Figure 6, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

위의 그림은 PIFu를 포함한 여러 모델에 관해 single 이미지를 사용한 digitization 수행 결과와 실제 surface normal 간의 point-to-surface error를 시각화한 것이다.

 

[출처] Figure 7, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

Template-based 방법뿐만이 아니라 neural network를 사용하여 학습하는 다른 learning-based 방법과도 비교했을 때 질적으로나 양적으로 모두 좋은 결과를 보이고 있다.

 

[출처] Figure 4, PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization, Shunsuke Saito

 

위의 그림은 DeepFashion dataset을 사용했을 때 real-image 샘플 데이터에 관해 single-view digitization 수행 결과인데, quality 면에서 surface 뿐만이 아니라 옷의 섬세한 texture도 잘 표현한다는 걸 확인할 수 있다.

 

 

Future Work

 

PIFu는 하나의 이미지 또는 여러 view 이미지로부터 옷 또는 악세서리를 착용한 사람의 3D model을 reconstruction 하면서 우수한 성능을 증명했지만, 다음과 같은 한계와 개선의 여지를 보여주고 있다.

 

1. 더 높은 해상도의 appearance로 reconstruction 하는 건 어렵다. 이는 GAN을 사용하거나 단순히 input image resolution을 높임으로써 해결할 수 있지 않을까 하고 저자는 추측했는데, 이점을 해결한 모델이 그 다음 연도에 PIFuHD로 제안되었다. 이에 관해서도 추후 리뷰를 해 볼 예정이다.

2. Reconstruction 수행 시 ground truth의 scale setting에 맞게 align 시켜야 한다는 것이다. 즉, 이미지를 촬영한 거리가 달라져서 카메라와 대상 사이의 거리가 달라졌을 때 분명 2D 이미지에서의 대상과 그 3D model의 크기도 변화하는데, 논문에서 제시한 방법으로는 이를 감안하여 reconstruction을 수행하기는 어렵다는 것이다. 이는 optimization 수행을 위해 정의한 objective function에서 ground truth와 prediction의 각 좌표가 일대일 대응된다고 고려하여 error를 계산했을 뿐, 두 모델의 scale이 다르면 이를 제대로 구할 수 없으며 그러한 scaling 요소를 추론하거나 학습하는 부분이 제시되지 않았다.

3. 이 논문에서 실험한 예시는 occlusion을 고려하지 않았다. 즉, real-world에서는 사람의 일부가 어떠한 물체에 의해 가려지는 경우처럼 unconstrained setting인 경우가 적지 않을 텐데, 이를 reconstruction 하는 데 있어서는 보장할 수 없다.

 

다음에는 좀 더 고해상도로 3D reconstruction이 가능한 PIFuHD(PIFuHD: Multi-Level Pixel-Aligned Implicit Function for High-Resolution 3D Human Digitization)에 관해 알아볼 예정이다.

 

 

출처
1. https://shunsukesaito.github.io/PIFu/
Contents

글 주소를 복사했습니다

부족한 글 끝까지 읽어주셔서 감사합니다.
보충할 내용이 있으면 언제든지 댓글 남겨주세요.