Research on 3D Reconstruction Method Based on Deep Optimization of NeRF Spatial Distortion
Under the limitations of the implicit function expression ability of existing Neural Radiance Fields (NeRF), the Research on 3D reconstruction method based on deep optimization of NeRF spatial distortion is proposed to address the uncertainty of ray tracing termination depth and the inability of depth mean square error to converge, resulting in spatial distortion of reconstruction results and poor rendering effects at a distance. Firstly, use depth information to guide adaptive sampling methods: obtain object depth and parse edge information through image segmentation and Canny algorithm, and optimize the number of sampling points and weight allocation accordingly; then, the Gaussian Negative Logarithmic Likelihood (GNLL) term that combines the mean square error of light color and depth information is used as the loss function of the network to minimize prediction error; finally, a Gaussian smoothing periodic encoding method was proposed to reduce the interference of noise on position information. The experimental results show that the depth information fused in this paper is fully utilized in 3D reconstruction, ensuring rendering quality while reducing spatial distortion to enhance spatial realism.
Neural Radiance Fields (NeRF)
三维重建技术在虚拟现实产业发展中起着关键作用,尤其在城市规划、公共场所的精细化管理、文化遗产保护与修复等领域具有重要意义
当前基于深度学习的三维重建方法大致分为显式方法和隐函数方法
隐函数方法则将三维形状表示为隐式曲面,训练神经网络参数,学习场景的编码器网络、空间点占据状态或颜色和密度信息,以适应不同的应用需求和场景,在提高分辨率上显现出了巨大的潜力。例如:Mescheder等人
综上,现有方法重建结果空间失真主要体现在两个方面:整体方面,缺乏对深度信息的充分考量,训练过程无法降低深度值损失,从而导致三维重建结果空间感失真,物体之间的层次和遮挡关系不明确。细节方面,无深度监督的局部欠采样导致了远处物体渲染清晰度受损、纹理模糊,细节无法高度还原。
针对以上问题,本文提出了一种深度引导采样与多元复合损失优化空间失真的NeRF三维重建方法,其主要创新点有:
1) 提出深度引导自适应采样算法,利用图像分割和深度图边缘检测精准指导采样,有助于模型学习更多边缘和远处(即深度值大的)区域特征,改善了远处物体渲染模糊的问题。
2) 计算深度分布的高斯负对数似然(GNLL)估计、轮廓损失,联合颜色损失构成多元复合损失函数优化网络。改进了现有损失函数无法收敛深度误差的问题,进一步降低深度值损失,提升重建结果的空间真实感。
3) 提出了一种高斯平滑的周期编码方式,平滑伴随深度信息导入的噪声,减小数据集中异常像素的不良影响进而提高渲染质量和准确性。
基于深度学习的显式三维重建方法通常使用点云、体素和网格去表征三维场景,这种可解释性的数据表征更容易理解,且重建结果的几何精度易控制,因而得以广泛地应用
基于隐式函数的三维重建方法则在三维重建分辨率的提升方面有所突破,大幅提升了捕捉真实场景中复杂纹理或细节的能力。这些方法将三维形状表示为隐式曲面,例如,Mescheder等人
总体看来,NeRF成功突破了图像分辨率提高带来的限制,针对实景重建,现有NeRF的衍生模型大多旨在处理场景细节和纹理以提升渲染画质。但是,其实验结果表明重建结果与真实情况的深度均方根误差(Root Mean Square Error, RMSE)收敛情况不佳,这是由于现有方法没有在整个三维重建过程充分利用深度信息,致使模型渲染时难以捕捉深度特征和远处细节特征,进而导致整体空间失真,远处纹理模糊。在VR数字化场景中,尤其针对日常生活相关场景,其要求三维模型既能展现清晰的画质,又要高度复现原场景的空间逼真感,于是深度信息显得至关重要。因此,针对实景重建,本文提出了一种融合深度信息的NeRF模型,使用深度信息引导自适应采样,优化深度一致性约束,一方面使得模型能够适用于实景建模,提升图像分辨率;另一方面输出三维模型对应深度图,提供更完整的三维场景信息。
本文方法的整体框架如
对给定实景照片进行三维重建时,区分场景中不同物体的深度范围和获取边缘信息有助于明确物体定位和遮挡关系,故应在采样阶段采集到更多相关区域的采样点。然而NeRF的均匀采样策略导致物体边缘和远景区域采样不足,稀疏的采样点并不能帮助模型捕捉更多有效特征,进而导致渲染出的三维模型空间感失真,远处物体细节模糊。因而本文提出深度信息引导自适应采样策略,设计基于连通分量的图像分割算法并统计深度分布,并结合图像边缘检测结果弥补均匀采样缺陷,增加边缘和远景区域的采样点密度,以保留空间真实感、提高远处物体细节的渲染质量。
为了分辨出远景区域的物体,捕捉更多远处物体细节特征,需要分割场景中的物体并统计其深度范围,实现适应深度变化的采样方案。因此,本文设计了一种图像连通分量查找算法。相比于其他方法
该方法直接在二维图像中利用明确定义的邻域关系,其关键组成部分是能够估计任意两束光线的哪些测量点源自同一物体
假设摄像机位于O点,射线OA和OB代表从摄像机发出的两束光线,则线段AB用于估计物体的表面(如果它们都属于同一物体)。我们首先预定义阈值θ,如果 ,则代表这两点属于同一个对象,如图中绿线上的点被标记为相同的标签;如果 ,则代表这两点属于不同对象,如图中红线上的点被标记为不同的标签。
假设线段OA和OB的长度分别为d1和d2,由图易得β的计算公式为:
(1)
其中,α是由相机发射出两条光线的夹角,初始化光线时通过球面坐标系计算可得。
利用β实现物体分割的关键是设计算法查找连通分量。本文使用了一个复杂度为O (N)的直通滤波器的变体算法来查找连通分量,其中N是像素数量,它保证最多访问深度图像中的任何像素两次。从图像左上角开始,按照从上到下、从左到右的顺序遍历每个像素。遇到未标记的像素时,从该像素开始进行广度优先搜索(BFS),直到遍历完图像。
该算法有效地查找图像中的连通分量,并为属于不同物体的像素分配对应的标签,实现图像分割。算法的时间复杂度仅为O(N),并且最多访问深度图像中的任何像素两次。因此,该方法只需要最少的参数调整即可实现良好的分割性能。经处理后的结果如
为明确场景中物体的层次结构以进一步增强空间真实感和提升渲染画质,本文对图像的物体边缘进行解析和提取,在众多图像边缘检测算法中,Canny多级检测算法
首先,输入原始图像,使用采用高斯滤波器对图像进行平滑处理,得到平滑图像。
然后,使用梯度算子计算图像梯度,进一步增强边缘。梯度算子主要有Roberts算子、Sobel算子、Laplacian算子、Scharr算子等。鉴于深度图像不同于常规RGB图像,其边缘相对模糊、特征差异不明显,所以本文使用对边响应更加强烈的Scharr算子计算图像的梯度和方向。首先对于每个像素,应用Scharr算子进行卷积操作,分别计算其在x和y方向上的梯度Gx、Gy,则梯度幅值G的计算公式为:
(2)
同时,计算每个像素的梯度方向,并量化为四个主要的离散方向(0˚, 45˚, 90˚, 135˚),以便于后续边缘细化。之后,对得到的梯度图像进行非极大值抑制,以确保对边缘有且只有一个准确的响应,经过非极大值抑制后的图像边缘更加清晰。最后,执行双阈值处理,以提升边缘的置信度和连续性。由于固定阈值无法提取每个角度场景的边缘信息,因而使用Otsu算法确定自适应阈值。
经过上述操作,场景深度图像的边缘信息被有效提取,这些边缘信息都蕴含着丰富的特征,是后续重建工作的关键,提取的边缘效果如
经深度信息监督获得的采样点提供了观察方向和颜色信息以及深度信息,它们被输入到神经网络中,通过优化迭代网络参数训练NeRF模型。由于融合了新的数据——深度信息,原模型的一致性约束条件无法充分利用深度信息,导致模型的深度损失难以收敛,其重建结果与原场景深度差异较大,空间真实感不佳。为了促进深度误差的收敛,本文设计深度损失函数并联合颜色与密度损失共同优化网络参数。
为了优化辐射场,对于批处理中的每个像素,通过评估体积渲染积分的离散形式来计算其颜色。
(3)
(4)
其中,
(5)
(6)
除了预测光线的颜色之外,还需要深度先验和方差来监督辐射场。首先,对训练样本点在不同相机方向上进行蒙特卡洛采样生成多个深度值,形成一个深度分布。然后,取各样本点深度均值作为深度先验,计算该深度分布标准差,公式如下:
(7)
(8)
其中,表示当前样本点在第k个方向上的深度。
经上述推理,网络的损失函数可描述为:
(9)
其中,颜色输出上的均方误差(MSE)项为:
(10)
深度输出上的高斯负对数似然(GNLL)项为:
(11)
其中, 表示预测深度值, 表示预测深度标准差,条件P、Q分别为:
(12)
(13)
这表明深度损失应用于至少满足以下条件之一的射线:1) 预测深度和目标深度之间的差异大于先验标准差或2) 预测标准差大于先验标准差。这样,损失就会促使NeRF在先验深度中最确定的表面观测值的一个标准偏差内终止光线。此外,通过解析获得的物体边缘信息可以度量生成边缘差异,其损失函数可以表示为:
(14)
其中,N表示像素总数, 和 分别是生成图像和真实图像在第i个像素位置的边缘像素值。
综上,该损失函数不仅降低深度损失和轮廓损失,还保留了一定的密度分配自由度,以最大程度地减少颜色损失。
尽管原有的编码函数更好地拟合包含高频变化的数据,显著提高了模型的性能,但由于实景图片及其深度图隐匿了更多噪声。这些噪声可能来自传感器误差或环境干扰,直接使用原始位置信息会导致模型过拟合噪声,降低重建质量。为了平滑噪声,保留场景位置信息的连续性,本文首先使用高斯编码增强位置信息的表达能力,然后再使用sin和cos编码保留原有编码的周期性特征。
高斯函数在频域中表现为低通滤波器,能够有效抑制高频噪声,同时保留低频信息,从而平滑数据中的噪声干扰;而周期编码(如sin和cos函数)则能够捕捉数据中的周期性特征,在频域中表现为对周期性信号的高效表示。通过将高斯平滑与周期编码结合,高斯平滑周期编码在时域上实现了对噪声的抑制,同时在频域上保留并增强了数据的周期性特征。这种结合不仅优化了位置信息的表达能力,还提高了模型对噪声的鲁棒性。完整编码方案步骤如下:
1) 首先对原始位置信息的3D坐标归一化至[−1, 1]内,假设得到归一化后的坐标值为 。
2) 对每个坐标值进行高斯编码,高斯函数的形式是:
(15)
其中,μ是样本坐标值高斯分布的均值,σ是样本坐标值高斯分布的标准差
3) 对于每个坐标值,将高斯编码后的结果与sin和cos编码值相乘,生成多尺度的特征表示,这种多尺度编码能够同时捕捉场景的低频全局结构和高频局部细节,从而显著提升NeRF对复杂场景的重建能力。映射函数γ可以形式化表示为:
(16)
其中,参数L的值决定了输出空间的维度。实验中,对于位置坐标编码设置 ,对于方向向量编码设置 。将编码后的结果作为输入特征提供给神经网络进行训练和预测,并通过实验证明了其在实际应用中的有效性。
按照大部分NeRF相关文献采用的量化评价标准,本文计算了测试结果RGB图像的PSNR、SSIM、和学习感知图像块相似度(Learned Perceptual Image Patch Similarity, LPIPS)
为了证实深度信息的有效性,本文计算NeRF光线追踪终止深度与ScanNet数据集真实深度的均方根误差(Root Mean Square Error, RMSE),用于度量真实世界三维模型的深度一致性。RMSE越小,表示预测深度值与真实深度值差异越小,三维模型的空间感还原度越高。
测试过程中,本文使用ScanNet中的4个不同场景数据集进行实验,记录相关实验数据并求平均值作为本文模型的参考实验结果,详细数据见
场景编号 |
PSNR |
SSIM |
LPIPS |
RMSE |
Scene708 |
25.95 |
0.789 |
0.302 |
0.585 |
Scene738 |
19.67 |
0.706 |
0.248 |
0.149 |
Scene758 |
20.87 |
0.789 |
0.259 |
0.147 |
Scene781 |
20.81 |
0.708 |
0.298 |
0.416 |
从表中可以看出,不同场景的实验数据略有差异,由于Scene708场景纹理相对简单,其数据噪声较低,自适应采样优化后能更好地提升整体渲染画质,其PSNR、SSIM值相对较高。然而由于场景光线偏暗,场景中深度差异区分度有所降低,无法提供精准的深度信息监督模型训练,其深度值RMSE为0.585。因此本文在多个场景中进行了实验,使得实验结果更具有泛化性,最后取其平均值作为本文模型的参考实验结果,用于后续消融实验和对比实验。
为了验证本文方法的有效性,针对三个创新点分别设计消融实验,并记录实验结果见
模型 |
PSNR |
SSIM |
LPIPS |
RMSE |
本文–自适应采样 |
19.13 |
0.699 |
0.386 |
0.420 |
本文–损失函数 |
21.04 |
0.739 |
0.325 |
0.461 |
本文–高斯编码 |
21.98 |
0.746 |
0.301 |
0.362 |
本文–完整模型 |
21.83 |
0.748 |
0.277 |
0.324 |
由表中数据易得,本文提出的优化方法在渲染画质和空间保真两方面均有显著效果。其中,利用深度信息实现采样的自适应优化,能对场景的边缘细节和深度分布进行分析,获取更多有效特征,从而保留更多的场景细节并还原空间真实感,其PSNR、SSIM分别相对提升了14.1%、7.0%,LPIPS、深度RMSE分别降低了约0.11、0.10。融合深度信息的损失函数为模型提供了额外的约束和指导,充分利用监督信号帮助模型更准确地学习场景,以最直接的方式降低深度损失,降低三维模型与原场景的深度差异,它在保证渲染画质的同时,其LPIPS和深度RMSE分别降低了约0.05和0.14。高斯平滑的周期编码方案在一定程度上降低了数据的噪声,进一步增强位置信息的表示。实验结果表明,相较于仅使用周期编码,高斯平滑周期编码能够显著提升模型在含噪声数据上的性能,验证了其在平滑噪声与保留周期性特征之间的平衡能力。虽然在渲染画面的PSNR值上产生了略微损失,但是LPIPS和深度RMSE指标分别降低了约0.02和0.04。上述消融实验数据充分说明了本文提出的方法在针对实景三维重建工作中能发挥优异性能,其在维持渲染画质的基础上,较大降低图像的感知差异和三维模型的深度差异,达到了预期效果。
通过文献查阅和实验操作,本小节评估了现有模型与经改进后的模型实验指标,实验结果对比见
模型 |
PSNR |
SSIM |
LPIPS |
RMSE |
NERF
|
19.03 |
0.670 |
0.398 |
1.163 |
NerfingMVS
|
16.29 |
0.626 |
0.502 |
0.482 |
DS-NeRF
|
20.85 |
0.713 |
0.344 |
0.447 |
本文 |
21.83 |
0.748 |
0.277 |
0.324 |
由表易得,本文方法展现出较好的重建效果。对于ScanNet实景数据集进行三维重建,原始NeRF在图像PSNR和SSIM方面有较为理想的结果,但是从深度RMSE值为1.163可以看出其重建出来的三维模型与原场景深度差异巨大;NerfingMVS则极大程度上降低了RMSE,改善了深度失真的问题,但是它损失了较多的渲染画质。DS-NeRF则在各方面均展现出较优越的性能,是当前性能较好的模型。本文提出的改进方案进一步优化了重建效果,相对于DS-NeRF,本文方法PSNR、SSIM分别提高了4.7%和4.9%,LPIPS、RMSE分别降低了约0.07和0.12,最终在各项指标上都接近并优于对比实验模型。通过实验对比,验证了本文方法针对实景三维重建的有效性,充分利用了场景的深度信息,增加远景区域采样点数量以获取更多特征,并融合深度损失最小化深度误差,同时平滑数据噪声,为三维重建渲染画质的提升和空间感保真均做出了贡献。
本文使用测试集进行场景渲染并获得可视化结果,在4个不同场景中各选取某个视角的渲染图像和对应深度图像与实况场景进行对比,结果如
本文针对三维重建空间失真两个具体表现:深度损失明显和远处渲染画质不佳的问题,提出了基于深度信息优化空间失真的神经辐射场。该模型融合深度信息作为监督信号,并有效地利用深度信息引导自适应采样过程,通过图像边缘检测算法和分割算法,更准确地解析场景的复杂细节和深度分布,调整目标区域采样点数量和权重,帮助模型学习到更多场景特征。考虑到光线追踪终止深度,本文设计了新的损失函数优化颜色和深度损失,最小化三维模型的深度与实景深度差异。此外,采用高斯平滑的周期编码方案,降低原始数据的噪声影响,增强模型的表示能力。经实验表明,本文提出的方法能较清晰地重建出实景三维模型,同时较好地复原了场景的空间真实感。
实景三维重建是一个复杂且充满挑战的研究领域,未来的研究可以从深度估计、光照建模、伪影消除、大规模场景重建、实时交互等多个方向展开,同时结合跨领域应用需求,推动三维重建技术的进一步发展。通过不断优化算法、提升计算效率、扩展应用场景,三维重建技术将在虚拟现实、自动驾驶、医疗影像等领域发挥更大的作用,为数字化世界构建更真实、更精细的三维模型。