68、4K-NeRF:高分辨率重建

简介

官网:https://github.com/frozoul/4K-NeRF

基于nerf方法的渲染过程通常依赖于一种像素方式,在这种方式中,射线(或像素)在训练和推断阶段都是独立处理的,这限制了其描述微妙细节的表示能力,特别是当提升到极高分辨率时。为了更好地探索射线相关性来解决这个问题,以增强受益于几何感知局部上下文的高频细节。使用view-consistent编码器在低分辨率空间中有效地建模几何信息,并通过view-consistent解码器恢复精细细节,条件是编码器估计的射线特征深度

基于补丁抽样的联合训练将基于感知的正则化监督纳入到像素损失之外
在这里插入图片描述

方法

在这里插入图片描述
该方法旨在通过融合观察中学习到的3d感知局部特征来增强基于nerf的模型对高频细节恢复的表征能力。

View Consistent Encoder

编码器基于DVGO实现(使用体素网格搭建显示隐式结合的NeRF,其包括一个密度体素网格、一个特征体素网格),如下图。
在这里插入图片描述
基本表达公式如下:
在这里插入图片描述
N c N_c Nc为通道数(密度网格中 N c N_c Nc =1),对于每个采样点,密度由配备softplus激活的三线性插值估计,公式为:σ = δ (interp (x, Vd))

颜色由特征网格的输出经过一个小MLP后得到
在这里插入图片描述
g θ ( ⋅ ) g_θ(·) gθ()提取颜色信息的体特征, f R G B f_{RGB} fRGB表示从特征到RGB图像的映射(具有一个或多个层)

论文中使用了DVGO的g(θ; x, d)部分作为VC-Encoder输出g = g(θ; x, d),其编码了视角方向为d的3D点X的体特征,然后,累加沿着射线r的采样点的特征来得到每条射线(或像素)的描述子
在这里插入图片描述
假设空间维度为H ’ ×W ',形成的特征图 F e n ∈ R C ′ × H ′ × W ′ F_{en}∈R^{C ' ×H ' ×W '} FenRC×H×W输入VC-Decoder进行精细细节的高保真重构。

View Consistent Decoder

为了更好使用vc -编码器中嵌入的几何属性,引入了深度图 M ∈ R H ′ × W ′ M \in R^{H' \times W'} MRH×W
在这里插入图片描述
t i t_i ti表示采样点 i 到相机中心的距离,估计的深度图为理解场景的3D结构提供了有力的指导

VC-Decoder使用特征图 F e n ∈ R C ′ × H ′ × W ′ F_{en} \in R^{C' \times H' \times W'} FenRC×H×W和深度图 M ∈ R H ′ × W ′ M \in R^{H' \times W'} MRH×W,经过特制卷积上采样网络 ψ : ( F e n , M ) → P \psi:(F_{en},M) \to P ψ:(Fen,M)P P ∈ R 3 × H × W , H = s H ′ , W = s W ′ P \in R^{3 \times H \times W},H=sH',W=sW' PR3×H×WH=sHW=sW是s表示上采样尺度)得到更高空间维度输出

VC-Decoder堆叠几个卷积块(既没有非参数归一化,也没有下采样操作)与上采样操作交错构建的,不是简单地连接特征 F e n F_{en} Fen和深度图M,而是分别考虑深度信号,并通过学习的变换将其注入到每个块中,以调制块激活。

F k F_k Fk表示信道维度为 C k C_k Ck的中间块的激活,深度图M经过变换(如1 × 1卷积),得到具有相同信道维数 C k C_k Ck的预测标度和偏置值,用于根据以下条件调制 F k F_k Fk:
在这里插入图片描述
⋅ ◯ \textcircled{\cdot} 表示元素乘积,i j 为空间位置

Discussion

在单幅图像超分辨率重建中,融合相邻像素的局部信息是恢复高频细节的有效方法。VC-Encoder需要追求视点一致的高质量超分辨率

Training

Patch-based Ray Sampling

使用基于块的射线采样训练策略,以促进捕捉射线特征之间的空间依赖关系。
首先将图片以每块大小 N p × N p N_p \times N_p Np×Np划分为p块,如果图片不能刚好划分为p块,则在边缘停止划分。

Loss Functions

仅使用distortion oriented损失(如MSE、L1和Huber loss)作为目标,往往会在细节上产生模糊或过度平滑的视觉效果。为此,加入了对抗损失(adversarial loss)和感知损失(perceptual loss)来正则化精细细节合成。

对抗损失(adversarial loss):通过可学习的判别器对训练图像块计算对抗损失,旨在区分训练数据和预测数据的分布

感知损失(perceptual loss):预训练的19层VGG网络φ估计预测块 p ^ \hat{p} p^和特征空间中的真实块p之间的相似性
在这里插入图片描述
使用 L 1 L_1 L1损失代替MSE来监督高频细节的重建
在这里插入图片描述
添加一个辅助的MSE损失,以促进VC-Encoder的训练,使用训练视图的降比例图像

VC-Encoder产生的光线特征被馈送到一个额外的全连接层,以回归低分辨率图像中的RGB值
在这里插入图片描述
λ h \lambda_h λh = 1.0 λ a \lambda_a λa = 0.5, λ p \lambda_p λp = 0.02, λ l \lambda_l λl = 1.0

联合训练还可以通过深度图和射线特征的路径来辅助编码器中的3D几何建模,实现在平滑变化的视点上的高质量视图一致合成。

评估指标

NeRF方法将PSNR作为失真评价的默认指标,而该指标对过度平滑或模糊细节等伪影不敏感,为此加入LPIPS和NIQE指标

Datasets

实验使用LLFF数据集,原始分辨率为4032 × 3024,而现有的基于nerf的方法使用4×缩小图像(1008 × 756)进行训练和推理。在实验中,使用原始4K图像作为groundtruth进行主要实验的训练和评估。

网络结构

在这里插入图片描述

效果

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nerf-simple是基于PyTorch框架实现的NERF(神经辐射场)模型的简单版本。NERF是一种用于生成质量逼真图像的深度学习模型,它通过对场景中各个点的辐射值进行建模,从而实现精确的三维重建和渲染。 在NERF模型中,神经辐射场是核心概念之一。它是一个由多个隐藏层组成的神经网络,用于估计场景中每个点的辐射值。这里的辐射值通常表示像素的RGB颜色值或光强度。 nerf-simple通过使用PyTorch框架的张量操作和自动微分功能来实现NERF模型。首先,我们需要定义一个神经网络模型,包括隐藏层的数量和大小。这个模型可以基于现有的PyTorch模块,如nn.Linear和nn.ReLU,以便构建非线性变换和特征提取。 然后,我们需要定义训练过程,实现数据加载、优化器设置和损失函数计算等步骤。训练数据通常包括一系列场景中的图像及其对应的相机和深度信息。 在模型训练完成后,我们可以使用训练好的神经网络来生成逼真的图像。通过对场景中每个像素点的辐射值进行预测,我们可以还原出场景的三维形状和纹理信息,并最终渲染出质量的图像。 总结来说,nerf-simple是一个使用PyTorch实现的简单版本NERF模型,它通过神经辐射场来估计场景中每个像素点的辐射值,从而实现精确的三维重建和渲染。通过定义神经网络模型、训练过程和图像生成过程,我们可以利用这个模型生成逼真的图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值