Paper/Generation

PanoHead: Geometry-Aware 3D Full-Head Synthesis in 360◦

침닦는수건 2023. 7. 12. 13:48
반응형

내 맘대로 Introduction

EG3D의 확장판 논문으로 360 머리를 대상으로 한다. 역시나 multiview contraint가 맞아떨어지는 3D GAN을 목표로 한다. keypoint를 활용하기 좋은 frontal head 이미지는 상대적으로 자세 계산이든 feature extraction이든 쉬운데, 뒤통수는 어렵다. 따라서 뒤통수를 커버하는 방법이 또 다른 핵심이라고도 할 수 있는 논문이다.

 

메모하며 읽기

전체 파이프라인은 EG3D을 따왔고 내부에 디테일을 교체했다는 점이 차이점이다. 사실 상 EG3D++이다.

차이점은 다음과 같다.

1) foreground -background 분리에 힘써서 머리만 따낼 수 있도록 한 것 (360으로 채우고)

2) tri-plane을 더 잘게 쪼개서 tri-grid로 만들어서 표현력을 높인 것

3) camera pose 및 image normalization을 더 잘 한 것 
먼저 1) foreground background 분리에 힘쓴 내용이다.

StyleGAN+Neural rendering으로 이미지 만드는 과정은 똑같은데 그냥 통째로 이미지 만드는 것이 아니라 foreground 이미지와 background 이미지를 따로 따로 만들도록 설계한다.

그리곤 neural rendering에서 weight를 이용해 mask를 만들 수 있으니 이 mask를 이용해 합쳐줌으로써 통 이미지가 나오도록 한 것이다.

단순히 나누기만 하면 성능이 구려서, discriminator를 하나 추가했다. 

foreground 이미지 + background 이미지 + mask를 concat한 뒤에 네트워크에게 good 인지 bad인지 맞추도록 설계했다. 



이렇게 설계하면 (a) 처럼 배경 분리가 미흡해서 2.5D로 나오던 걸 (b)처럼 깔끔한 3D로 따낼 수 있다.

(학습할 때 사용한 loss 수식은 음.. 잘모르겠는데 StyleGAN에 나오겠지. 필요하면 찾아봐야지)


2) tri-plane을 확장해서 tri grid로 만든 것이다. 

tri-plane의 표현력이 부족하다고 지적하는 이유는 plane이 너무 적다는 것이다. 

정면 사진을 상상해보면 이마에 해당하는 위치랑, 윗통수에 해당하는 위치랑 한 plane에 같이 맺힌다. 즉 이마랑 뒷통수를 표현해야하는 feature가 같은 feature라는 것이다. 때문에 성능이 떨어진다고 말한다. 근거로 보여주는 그림이 다음 사진이다.



feature가 겹치기 때문에 뒷통수 그림에 이마가 그려지는 현상이 나타난다.

때문에 plane을 각 axis마다 3종류로 유지하는 것은 동일한데 axis마다 1개 두는 것이 아니라 여러개를 둔다는 컨셉이다.



등간격으로 여러 plane을 사용하고 특정 위치가 주어지면 인접한 plane을 사용하는 식으로 하면 이마와 뒷통수 feature는 확실히 구분될테니 표현력이 올라간다. (StyleGAN backbone output 사이즈가 N배되는 것이니까 메모리가 뻥튀기 되는 것은 비밀~)


마지막 3) camera pose와 image normalization 파트다.

일단 정면 얼굴과 후면/측면 얼굴이 다르다. 

keypoint가 넉넉한 정면은 3DDFA라는 알고리즘으로 face pose를 찾으면 짠하고 나온다고 한다. 이걸 쓰고 끝이다.

keypoint가 없는 후면/측면은 3DDFA를 쓸 수가 없는데, 일단 WHENet이라는 알고리즘을 써서 head yaw를 계산하고 이미지 내 머리 영역은 YOLO로 찾았다. 

head yaw만 찾은 수준이기 때문에 후면/측면 머리는 camera pose가 여전히 불안정한데 이걸 커버하기 위해서 네트워크한테 camera parameter residual을 계산하도록 시켰다 (???)

EG3D보면 camerap parameter를 condition으로 계속 넣어주는데 중간에 그 residual을 예측하는 모듈을 추가했다는 것이다. 
 


학습이 매우 어려워지는 것 같긴 하지만 일단 수렴만 잘 되면 성능 향상이 크다고 한다.

반응형