Paper/Neural rendering

ENVIDR: Implicit Differentiable Renderer with Neural Environment Lighting

침닦는수건 2023. 7. 26. 18:06
반응형

내 맘대로 Introduction

이 논문도 반사 재질의 물체를 커버하는 것에 집중한 3D surface reconstruction 논문이다. 기존 다른 논문들이 BRDF modeling을 통해서 specular와 diffuse를 추가로 추정하도록 하는 방식은 큰 틀에서 따르지만 실제 학습 때 BRDF 수식을 사용하진 않는다. 각종 approximation을 통한 specular, diffuse 관계 유도가 단점이라고 지적하면서 specular와 diffuse 관계를 네트워크가 자체적으로 학습하도록 유도하는게 핵심이다. 

 

메모하며 읽기


큰 틀에서 여전히 3D surface reconstruction이기 때문에 SDF를 이용하는데 수식은 VolSDF의 수식을 이용한다.  BRDF 모델도 큰 틀에서는 따르기 때문에 반사되는 빛은 specular와 diffuse의 합으로 본다.

 전체 파이프라인은 크게 4가지 MLP로 구성되어 있다.

1) geometry를 담당하는 MLP
2) environment 빛을 담당하는 MLP
3) 그 중 specular 빛을 담당하는 MLP
4) 그 중 diffuse 빛을 담당하는 MLP

일단 environment light MLP는 물체와 무관하게 지금 대상이 있는 공간에 존재하는 일반적인 빛을 표현하는 MLP다.

MLP가 구체적으로 빛을 표현하는 어떤 수학적 값을 내뿜는 것이 아니라 feature를 내뿜는 것이고 이 feature가 환경의 빛을 표현하도록 기대하는 형태다.

입력은 표면의 거칠기와 빛의 각도다.
반사를 표현하는 빛 중 diffuse MLP는 SDF MLP에서 나오는 geometric feature와 environment feature를 입력으로 받는다.

diffuse color의 경우 빛의 입사각과 표면 거칠기와 무관한 값이기 때문에 environment feature를 넣어주고는 싶은데 environment feature를 만들기 위해 넣어줄 빛의 입사각과 표면 거칠기가 애매하다. 

그래서 대충 surface normal이랑 고정된 표면 거칠기를 넣어주고 일단 사용했다. 

반사를 표현하는 빛 중 specular MLP는 diffuse와 달리 빛의 반사각, 표면의 거칠기의 영향을 다 받기 때문에 있는 그대로 다 넣어준다. 

여기서 environment feature를 역시 넣어주어야 하는데 표면 거칠기는 있는 그대로 넣어주면 되지만 view direction이 역시 조금 애매한 부분이 있다. specular light로 튕겨져나가는 각각의 반사각을 다 집어넣는 것이 어렵기 때문에 specular light가 형성하는 globe의 기준 반사각도를 사용해서 environment feature를 생성해준다.

마지막으로 diffuse + specular로 만든 최종 color는 gamma tone mapping (약간 gamma correction 같은 것인듯)을 적용해서 색상 보정을 한 뒤 사용한다.
전체 과정에서 빛을 담당하는 specular, diffuse MLP를 잘 사전학습시켜놓는 것이 사실 핵심이다. 



그래서 위와 같은 구 형태의 다양한 material, color, light 차이를 가진 데이터를 갖고 사전 학습시켜둔다. 

이 때 SDF MLP는 임의로 구 형태로 초기화해서 사용한다. (나중에 떼어냄)

이렇게 학습이 완료되면 두 specular, diffuse MLP는 고정한다.


학습 시에 specular diffuse MLP가 어떠한 BRDF approximation 수식에 의해 제한받는 것이 아니라서 값이나 feature들이 발산할 위험이 있다.

따라서 l2 norm으로 feature normalization을 사용해줬다.

specular, diffuse MLP 사전학습이 끝나면 이제 실제 물체를 대상으로 SDF MLP만 바꿔치기 한 상태로 재학습하면 된다.

SDF MLP가 surface 표현을 위한 sdf 값을 추정해야하는 것도 맞지만 새로운 실제 물체의 표면 거칠기도 커버를 해주어야 하기 때문에 출력에 표면 거칠기가 추가된다.

loss는 그냥 VolSDF 같은 loss다.

(뒤에 표면 inter reflection을 커버하려고 blending factor라는 새로운 것을 SDF MLP가 같이 추정하도록 추가한다. 총 2개가 더 추가되는 셈)

위의 과정은 전부 환경으로부터 오는 빛 위주로 생각한 것인데 사실 물체에서는 물체 표면에 반사돼서 또 물체 표면에 닿는 inter reflection도 이슈다. 

이것은 별도로 모델링을 해주었는데 inter reflection이 일어나는 부분이라면 표면 거칠기가 매우 낮을 것(매끈매끈할 것)이라고 가정을 하고 표면 거칠기가 일정 기준 (0.1)이하로 나오는 부분에 대해서 모델링해주었다. 

새로운 MLP를 추가 학습을 시켰단 소리다.


매끈매끈하다는 것은 거의 반사가 이루어진다는 뜻이고 specular reflection이 reflected view direction 위주로 이루어진다고 보았다. 

reflected view direction과 작은 크기의 표면 거칠기를 받아 environment feature를 출력하는 MLP를 추가학습시켰고 이를 specular MLP에만 통과시켜 color를 얻는다. (매끈매끈하니까 specular >> diffuse일테니)



반응형