96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering

简介

论文:https://arxiv.org/pdf/2305.02103.pdf
充分渲染雾场景,并从参与媒体中分解无雾背景,提出了散射体和场景物体的解纠缠表示,并学习了基于物理启发损失的场景重建
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第1张图片
贡献点:

  • 提出了一种通过在体绘制过程中引入Koschmieder散射模型来学习参与介质的解纠缠表示的方法。
  • 方法增加了一个用于模拟散射介质特性的MLP,并且不需要任何额外的采样或其他程序,使其在计算和内存消耗方面都成为轻量级框架。
  • 学习了基于物理的场景表示,并能够控制其模糊外观。使用在受控和野外环境中捕获的真实数据来证实这一点。

实现流程

96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第2张图片
方法和两个参考NeRF模型沿两条投射射线的射线终止分布。DS-NeRF和mip-NeRF-360中提出的正则化方法将累计透射率T表示为阶跃函数,而ScatterNeRF则对散射过程进行建模

大的散射体积可以用Koschmieder模型来近似。

对于每个像素,建立了衰减模型,表示由于物体散射的直接光造成的损失强度,以及由于环境光散射到观察者而造成的空气光 c p c_p cp的贡献。
在这里插入图片描述
l 为透射, C F C_F CF对应观测到的像素值, C c C_c Cc为清晰场景

透射率 l 可由衰减系数 σ p σ_p σp和深度D计算得到
在这里插入图片描述

NeRF体渲染公式
在这里插入图片描述
在这里插入图片描述
积分对象颜色 C c C_c Cc 定义为在位置 r 处发射的颜色 C c ( r ) C_c (r) Cc(r);
在这里插入图片描述
放宽对 σ p σ_p σp c p c_p cp 的约束,允许它们近似任意值
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第3张图片
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第4张图片
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第5张图片
离散化表示为
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第6张图片
对于使用MLP得到的 σ i , c i   i ∈ { c , p } \sigma_i,c_i \ i\in \{c,p\} σi,ci i{c,p},可以表示为
在这里插入图片描述
通过缩放 σ p σ_p σp 来渲染不同雾密度的场景,甚至通过设置 σ p = 0 σ_p = 0 σp=0 来完全去雾化图像,当 σ p = 0 σ_p = 0 σp=0,渲染公式为:
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第7张图片

损失函数

rgb损失
在这里插入图片描述
大气光颜色损失
在这里插入图片描述
I F I_F IF 是模糊图像的相对亮度 I F ( r ) = ξ ⋅ l i n ( C ˉ F ( r ) ) I_F(r) = \xi \cdot lin(\bar{C}_F(r)) IF(r)=ξlin(CˉF(r))

c p 0 c^0_p cp0 是在暗信道先验条件下计算的初始全局恒定大气光估计值

z = 1 / ( l − 1 ) z = 1/(l-1) z=1/(l1) λ \lambda λ 是加权因子
在这里插入图片描述

场景中投射的光线具有峰值单峰射线终止分布
在这里插入图片描述
正则化散射介质 σ ^ p \hat{\sigma}_p σ^p的密度, σ ^ p \hat{\sigma}_p σ^p以半监督的方式拟合,能够模拟雾的不均匀性。应用基于熵的损失,允许网络 f p f_p fp 学习空间变化的介质密度
在这里插入图片描述
a ~ F i = a ^ F i ∑ j a ^ F j a ^ F i = 1 − e x p ( ( σ ^ p i + σ ^ c i ) δ i ) \tilde{a}_{F_i}=\frac{\hat{a}_{F_i}}{\sum_j\hat{a}_{F_j}} \hat{a}_{F_i}=1-exp((\hat{\sigma}_{p_i}+\hat{\sigma}_{c_i})\delta_i) a~Fi=ja^Fja^Fia^Fi=1exp((σ^pi+σ^ci)δi)

熵最大化依赖于场景体积密度 σ ^ c \hat{σ}_c σ^c 来解开这两种分布,而不仅仅是在整个场景中分布雾体积密度 σ ^ F \hat{σ}_F σ^F。只对 σ p σ_p σp,而不是 σ c σ_c σc,最小化这个损失

深度损失

通过立体传感器设置估计的深度 D ˉ \bar{D} Dˉ来监督场景深度
在这里插入图片描述
在这里插入图片描述
立体深度网络在大雾条件下具有鲁棒性,它们适合于直接监督场景NeRF

总损失
在这里插入图片描述

采样

由于 σ F σ_F σF在整个场景中被正则化为近似常数,重新采样过程不会使用场景权重 W F W_F WF 而是使用去雾后场景权重 W c W_c Wc

实验

使用NVIDIA RTX A6000 迭代250000次,批次大小为4096,使用Adamw优化器 β 1 = 0.9 , β 2 = 0.999 \beta_1=0.9,\beta_2=0.999 β1=0.9,β2=0.999,学习率为 5 ⋅ 1 0 − 4 5\cdot10^{-4} 5104
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第8张图片
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第9张图片
96、ScatterNeRF: Seeing Through Fog with Physically-Based Inverse Neural Rendering_第10张图片

你可能感兴趣的:(#,3D重建,人工智能,深度学习,计算机视觉)