1 min to read
NeRFReN: Neural Radiance Fields with Reflections
NeRFReN paper review
Problem
- Vanilla NeRF + Complex reflection이 있는 scene
- Inaccurate depth estimation
- Blurry rendering result
How to
NeRFReN: NeRF to handel scenes with ReflectioNs
- Glass, Mirror와 같이 complex한 reflection이 있는 scene에 대한 NeRF 기반 novel view synthesis 방법 제안
- Scene을 Transmitted component와 Reflected component로 분할해 각각을 NeRF로 모델링
\(I = I_t + \beta I_r\)
\(I_t\) : Transmiited image, \(I_r\): Reflected image, \(\beta\): Reflection fraction - Transmitted, Reflected component를 분할하는 것만으로는 unsupervise 방식으로는 충분하지가 않으므로 추가적인 가정이 필요
- Assumption
- Reflection fraction은 reflecting surface를 나타내므로 Transmitted component와 관련됨
- Real world에서 대부분의 반사는 평면에서 이루어지므로 Transmitted component는 locally smooth depth map을 가짐
- Reflected component는 단순한 geometry 가짐
- Assumption
Main Method
- NeRFReN
- Transmitted field: \(\sigma^t, c^t\)
- Reflected field: \(\sigma^r, c^r\)
- \[\beta(\boldsymbol r; \sigma, \alpha) = \sum_{k}T_i(\sigma^t)(1 - exp(-\sigma_i^t\delta_i))\\alpha_i\]
- Geometric priors
- Depth smoothness: Transmitted component에서의 depth는 smooth하다는 prior를 통해 regulize -> Transimtted part에서 정확한 geometry 복원
- Bidirectional depth consistency: Reflected 영역에서 simple geometry에 대한 constraint
- Ray는 opaque surface와 하나의 교차점만 있다는 가정
- simple geometry를 가지도록 backward depth를 계산하여 regulize
- Warm-up Training
- $$L = L_pm + \lambda_d L_d + \lambda_bdc L_bdc
- Training 시에 Photometric loss, depth smoothness loss, BDC loss 사이 적절한 비율을 유지하도록 하기 위함
- geometric constraint $\lambda_d, \lambda_bdc$를 초기에 작은 값으로 설정한 뒤 Training이 진행되며 증가하다 감소하는 방식으로 Training
- Interactive setting
- Reflection fraction map $\beta$와 Reflection 영역에 대한 mask를 활용한 $L_1$ loss
- 추가적인 supervision으로 reflective 영역과 non-reflective 영역을 잘 나눌 수 있도록 함