*StylizedNeRF를 위한 논문 리뷰 글입니다! 궁금하신 점은 댓글로 남겨주세요!
StylizedNeRF project page: StylizedNeRF (geometrylearning.com)
StylizedNeRF github: GitHub - IGLICT/StylizedNeRF: [CVPR 2022] Code for StylizedNeRF: Consistent 3D Scene Stylization as Stylized NeRF via 2D-3D mutual learning
Contents
2. Background Knowledge: NeRF, AdaIN, VAE
Simple Introduction
NeRF는 2022년 최고의 논문/발명품이라고 해도 과언이 아닐 정도로 novel view synthesis 분야에 큰 파장을 불러왔다.
Vision 분야의 단골 소재, style transfer를 적용한 NeRF를 시도할려는 움직임은 많이 있고 관련 논문도 많이 등장했다.
그 중에서 AdaIN의 구조를 적극적으로 활용한 이 논문을 리뷰해보고자 한다.
성능도 최근 나온 논문 기준에서는 SOTA인 듯 하다.
Background Knowledge: NeRF, AdaIN, VAE
NeRF 논문 리뷰: https://kyujinpy.tistory.com/16
AdaIN 논문 리뷰: https://kyujinpy.tistory.com/65
VAE 논문 리뷰: (추후 예정)
해당 논문은 NeRF에서 생성된 Novel view를 style transfer하는데 focus가 맞추어진 논문입니다!
참고해주세요!!
Method
Overview로 간단히 살펴보면,
AdaIN layer를 이용해서 2D stylization부분을 만들고, VAE의 latent code를 이용해서 Stylized NeRF를 만들어서,
2D stylization의 RGB와 Stylized NeRF의 RGB 부분의 L2 loss와 2D stylization의 style과 content loss를 이용해서 NeRF의 style을 잘 입힐 수 있도록 한다.
2D Stylization Network
이 부분은 위의 AdaIN 논문 리뷰의 내용에 나오는 Method와 똑같다.
다만 다른점은 training을 할 때 다른 loss function을 이용했다.
Lco loss function을 이용해서 training을 진행했다.
해당 loss function은 style loss와 content loss의 특징을 모두 담은 것이고, NeRF에서 나온 depth값도 적절히 이용한다.
Stylized NeRF
Stylized NeRF를 학습할 때는 Log likelihood Loss를 이용했다.
이것은 VGG-19에서 나온 style embedding을 VAE-Encoder에 넣어서 나오는 feature와 N(µ , σ) 분포에서 sampling해서 나오는 latent code간의 loss function을 계산한 식이다.
Mutual learning
Mutual learning이라는 것을 간단히 얘기하면, 동시에 task를 수행하는 untrained network들이 동시에 학습하는 것을 의미한다.
여기에서는 2D stylization(Decoder output)에서 나오는 style image와 Stylized NeRF를 통해서 나오는 style image간의 L2 loss function를 이용한 Lmimic을 이용한다.
추가적으로 AdaIN 논문에서 소개된 style loss와 content loss를 2D stylization decoder를 학습하는데 이용한다.
Result
- 기존의 다른 논문과 비교를 했을 때 디테일 부분을 잘 살린다는 것을 알 수 있다.
(MCCNet과 ReReVST 논문도 추후에 리뷰해볼 생각이다.)
- 기존의 SOTA라고 생각되는 Chiang et al. 논문과 비교했을 때, 확실히 style에 대한 RGB의 consistent가 잘 유지되는 듯하게 보인다.
- NeRF 분야에서 style transfer를 하면, 자주 이용되는 성능 지표이다.
- 일정 거리만큼 떨어져 있는 2개의 scene사이의 consistent를 확인하는 지표이다.
(- PSNR/SSIM/LPIPS가 대중적이다!)
+) LPIPS paper: 1801.03924.pdf (arxiv.org)
+) layer에서 나온 feature들을 unit-normalize한 후, L2 loss를 계산하는 형태이다. 쉽게 얘기하면, 두 개의 feature가 어느정도 유사한지 확인하는 용도이다.
- 2023.02.08 Kyujinpy 작성.