《武汉工程大学学报》  2025年02期 202-209   出版日期:2025-05-09   ISSN:1674-2869   CN:42-1779/TQ
一种基于神经网络隐式表达的室内建模改进方法



室内三维重建技术[1-3]是计算机视觉领域的重要研究方向,旨在通过数字化手段还原室内环境的空间结构,在古建筑修复和虚拟看房等实际应用中具有重要意义。传统的室内建模方法采用激光雷达、三原色深度(red green blue depth,RGB-D)[4-6]相机进行重建,成本较高、设备操作复杂。而手机中自带单目相机,操作简单,更容易获取数据。因此,利用单目相机进行室内三维重建在未来具有重要的潜力。
然而,单目相机进行室内场景重建面临许多挑战,包括大面积无纹理区域和重复图案,如白墙、地板和反射表面,这对传统的基于匹配的密集重建算法[7]提出了挑战。Mildenhall等[8]提出了神经辐射场(neural radiance fields,NeRF),许多基于NeRF的研究[9-11]对小物体的重建表现出色。在面对室内场景下的表面重建时,由于缺乏几何信息的约束,导致三维重建中出现细节缺失、表面不平滑、几何形状有误等问题。
本文将线性特征的映射与定位工具箱LIMAP[12]获取的室内三维线段[13]进行切片处理得到的稀疏点云,以及经典三维重建软件COLMAP[7]获取的稀疏点云共同融入神经网络,赋予点云特定的符号距离场(signed distance field,SDF)[14]值(0),提出一种基于几何先验信息的约束方法。使用深度估计[15]和法向量估计获取深度信息和法向量信息,进一步约束神经网络。在自建数据集和公开数据集上的实验结果显示,该方法在重建效果和细节保留方面具有显著优势。本研究通过引入先验信息,提高系统在复杂室内环境中的鲁棒性和精确度,降低虚拟现实和数字建筑等实际应用领域的成本,为利用单目相机进行室内建模提供了一种参考方案。
1 室内重建方法
利用多层感知器(multilayer perceptron,MLP)从一组固定焦距的图片中学习场景的隐式表示,并通过预测光线r上点x的SDF值[[s(x)]]重建三维场景,如图1所示,其中[σ]表示体密度,C表示彩色图,[D]表示深度图,[N]表示法向量图。由预测的颜色信息[C(r)]和真实颜色信息C(r)构成彩色图损失函数LRGB,由预测的深度信息[D(r)]和先验的深度信息[D(r)]构成深度损失函数Ldepth,由预测法向量信息[N(r)]和先验的法向量信息[N(r)]构成法向量损失函数Lnormal,由COLMAP和LIMAP获得的零水平集与预测的SDF值构成SDF损失函数LSDF,通过上述4个损失函数约束隐式曲面重建过程。
1.1 COLMAP稀疏点云重建和LIMAP三维线段重建
COLMAP采用增量式结构运动(structure from motion,SfM)算法对采集到的大量二维图片信息进行迭代处理,不需要提前进行相机标定,只需在现实场景采集过程中不断更新相机的角度与位置进行现实场景的三维重建。其流程包括:通过尺度不变特征转换(scale invariant feature transform,SIFT)算法提取图像中的特征点,并对特征点进行配对。在此过程中,不符合标准的特征点配对会被排除。通过八点法估计基本矩阵,并排除不满足条件的特征点配对,而满足条件的特征点则被组合成轨迹。结合增量式SfM算法进行稀疏重建,通过基础矩阵的奇异分解和三角形法获得特征点的三维坐标。最终,通过光束法平差(bundle adjustment,BA)最小化重投影误差,以估计相机的参数。
利用LIMAP生成三维线段模型时,以一组包含图像、各图像对应的相机位姿及二维线段的数据集作为输入,生成过程包括以下步骤:
(1)提案生成:对于每个二维线段,生成一组三维线段的候选提案。
(2)评分和轨迹关联:考虑到多视角一致性,对每个提案进行评分,选择每个二维线段的最佳候选提案,并将它们关联成一组三维线段轨迹。
(3)联合细化:优化能量函数,获得更加精确和鲁棒的三维线段。
1.2 隐式场景表示和体渲染
将场景几何形状表示为SDF函数f(x)。对于给定的三维空间R3中预测光线r上的点x,f(x)所返回该点到最近曲面的距离s表示为:
[s=fx; x∈R3, s∈R] (1)
式(1)中,R表示实数。
f(x)经过MLP参数化处理后表示为fθ(x),θ是可学习的参数。利用MLP对位置编码后的高维向量进行参数化处理,并输出预测的SDF值,记作[s(x)]:
[s(x)=fθγx] (2)
[γ(x)=(sin(20πx),cos(20πx), …, sin(2L-1πx),]
[cos(2L-1πx))] (3)
式(3)中:L表示投影的维度。将点x输入式(3)中,执行位置编码过程,得到高维向量,增大相邻点之间的差异,提高新视角的重建效果。
为了渲染图片第i个像素,摄像机中心o将投射一条光线r,该光线沿观察方向v穿过像素。在光线方向对点[xi,r=o+ti,rv]进行采样([ti,r]表示第i个像素沿着光线r的传播距离),并预测其SDF值([si,r])和颜色值([ci,r])。采用式(4)将预测的[si,r]变换为密度值[σi,r]以进行体渲染:
[σi,r=12βexps(xi,r)β, s(x)≤01β1-12exp-s(xi,r)β , s(x)>0] (4)
式(4)中:[β]是可学习的参数。
采用NeRF预测颜色信息[C(r)],渲染出高质量的彩色图像。
[Cr=i=1MTi,r1-exp-σi,rδi,rci,r] (5)
式(5)中:ci,r表示第i个像素在光线r上的颜色,[σi,r]表示第i个像素在光线r上的阿尔法值,[δi, r]表示第i个像素在光线r上相邻采样点之间的距离,[Ti, r]表示第i个像素在光线r上的透射率,M为沿光线所采样个数。
通过Eftekhar等[16]提出的神经网络进行单目深度估计和法向量估计,同样可以获得深度图和法向量图。与[C(r)]相似,将彩色图像替换为深度图和法向量图,通过式(6)和式(7)预测深度信息[D(r)]和法向量信息[N(r)]。
[Dr=i=1MTi,r1-exp-σi, rδi, rdi, r] (6)
[Nr=i=1MTi,r1-exp-σi, rδi, rni, r] (7)
式(6-7)中:di,r表示第i个像素在光线r上的深度值,ni,r表示第i个像素在光线r上的法向量值。
1.3 稀疏点云对曲面的约束
基于输入的图像构建三维线性模型,并通过线段切分操作,将三维线段转化为三维空间中的点云数据。此外,结合COLMAP获取稀疏点云。经过缩放、平移将上述点云数据调整至物体表面,如图2所示。
<G:\武汉工程大学\2024\第6期\尤桢杰-2.tif>[LIMAP点云+模型表面][LIMAP点云][模型表面][几何约束]
图 2 LIMAP点云和模型表面
Fig. 2 LIMAP point cloud and model surface
在隐式曲面表示中,核心问题是确定隐式曲面的具体位置。模型表面S的隐式表达式为:
[S={sx=0}] (8)
对于输入的点x,若其对应的SDF值大于0,则表明x位于几何体表面的外部;反之,若SDF值小于0,则x位于几何体表面的内部。仅当SDF值等于0时,x被视为位于几何物体表面上的一点。通过对LIMAP获取的室内三维线段进行切片处理得到稀疏点云,以及COLMAP获取的稀疏点云,成功获取SDF的零水平集,其表面采用式(8)进行约束。
1.4 损失函数
为了优化隐式曲面重建过程,本文从程函损失函数Leikonal、彩色图损失函数LRGB、深度损失函数Ldepth、法向量损失函数Lnormal和SDF损失函数LSDF等5个角度构建总损失函数L。
[L=LRGB+λ1Leikonal+λ2Ldepth+λ3Lnormal+λ4LSDF] (9)
[Leikonal=x∈X?s(x)2-12] (10)
[LRGB=r∈RCr-Cr1] (11)
[Ldepth=r∈RωDr+q-Dr2] (12)
[Lnormal=r∈RNr-Nr1+1-NrTNr1] (13)
[LSDF=x∈X1Asx-sx=x∈X1Asx] (14)
式(9-14)中:λ1,λ2,λ3,λ4为各项权重值,λ1=0.05,λ2=0.05,λ3=0.01,λ4=0.5;X是三维点;R表示光线集合;[ω]是缩放因子;q是位移因子,用于调整[D(r)]和[D(r)]之间的对齐;A为三维点X的个数;s(x)=0。
程函损失函数Leikonal用于规范化SDF,使SDF值更加平滑和稳定。式(5)为式(11)提供了从三维神经表示到2D图像的体渲染结果,因此,使用LRGB可以优化重建结果。通过使用Omnidata[16]获取深度和法向量的先验信息,深度损失函数Ldepth和法向量损失函数Lnormal分别从深度和法向量的角度对曲面重建过程进行约束。由于不同批次预测的深度信息可能在比例和位移方面存在差异,因此式(12)中,每个批次的缩放因子[ω]和位移因子q均需要单独进行估计。SDF损失函数LSDF用于评估神经网络预测的SDF值与真实SDF值之间的差异。通过SfM算法获取的稀疏点云以及将三维线段切片处理所获得的点云,共同监督SDF网络。
在曲面重建过程中,通过最小化总损失函数,实现单目相机在室内场景下的三维重建。
2 实验分析
2.1 实验设置
2.1.1 实验细节 在训练开始阶段(0 次≤迭代次数≤5 万次),将少量稀疏点云分批输入网络,以约束网络的SDF,从而快速粗略地重建场景几何结构。在训练的中期阶段(5 万次<迭代次数≤15 万次),加入大量的稀疏点云,并将权重值λ3设置为0,有利于重建较小的细节部分。最后阶段(15 万次<迭代次数≤20 万次)将权重值λ3调整为开始训练时的权重值0.01,从而对墙面、地板等平面进行平滑处理。
本文采用Ubuntu 20.04操作系统,基于Intel i7 12700kf处理器与CUDA 11.3环境,利用PyTorch框架进行神经网络训练。在训练过程中,选用自适应矩估计优化器,并设定学习率为5×10-4,同时应用10-1的指数学习速率衰减策略。训练任务被分配至单张NVIDIA RTX 3090显卡(24 GB显存中的20 GB被有效利用),整个训练过程耗时约13 h。在神经网络训练完成后,利用移动立方体(marching cubes,MC)算法从SDF场中提取完整的网格模型,其中体素网格的分辨率设置为5123。
2.1.2 数据集 本文将数据集分为两类:(1)使用iPhone7 plus手机拍摄的彩色图片;(2)公开的室内数据集Scannet[17],该数据集包含大量室内场景的RGB-D图像。Scannet数据集提供了深度图像、彩色图像和相机参数等信息,可用于目标识别、三维重建、场景理解等任务的研究和实验。本研究仅使用了Scannet数据集中的彩色图片及其自带的重建模型。
2.2 损失函数的影响
以楼梯场景为例,以多视角图像作为输入,评估不同损失函数对重建效果的影响。如图3所示,体渲染符号距离场(volume rendering signed distance field, VolSDF)在仅使用彩色图损失函数约束的情况下,三维重建的效果不理想,存在几何形状不准确、平面不光滑和细节缺失等问题。这是由于彩色图损失函数关注像素级的颜色差异,无法充分捕捉三维几何结构的信息。因此,仅依赖彩色图损失函数会导致重建的几何形状不准确。
图4为彩色图损失函数与深度损失函数、法向量损失函数、SDF损失函数相互组合下的隐式曲面重建效果。由图4(a-d)可知,SDF损失函数和深度损失函数有效约束了重建结果的几何形状,却无法做到表面光滑。由图4(e-f)可知,法向量损失函数能约束表面的光滑,却破坏了细节的重建结果。由图4(g-h)可知,仅依靠彩色图损失函数、深度损失函数和SDF损失函数,无法提升平面物体的重建效果,验证了法向量损失函数存在的必要性。由图4(i-l)可知,深度损失函数和SDF损失函数可以弥补法向量损失函数造成的细节缺失。图4(m-n)采用彩色图损失函数、深度损失函数、法向量损失函数、SDF损失函数共同约束,重建结果高于其他结果。
2.3 自建数据集实验
峰值信噪比(peak signal-to-noise ratio,PSNR)是一种通过比较原始图像和重建图像之间的差异衡量图像质量的指标,其值越高,图像质量越好。PSNR值大于30 dB的图像被认为是高质量的,而PSNR值在20~30 dB之间的图像被认为是可接受的,低于20 dB时,图像质量通常被认为是差的。VolSDF仅利用彩色图像作为约束,对于室内重建,缺乏先验信息对其约束。通过引入法向量信息、深度信息和SDF值的约束信息,重建效果显著提升。表1列出了自建数据集在不同条件下的PSNR平均值和结构相似性指数(structural similarity index measure,SSIM)平均值,SSIM是一种用于衡量两幅图像之间相似程度的指标。损失函数设置为LRGB+Ldepth+LSDF时,各指标数值最高,其渲染的质量最高。
表1 自建数据集在不同条件约束下的PSNR平均值和SSIM平均值
Tab. 1 Average PSNR and average SSIM values of self built datasets under different constraints
[损失函数设置 PSNR平均值 / dB SSIM平均值 LRGB 23.88 0.783 6 LRGB+Lnormal 22.69 0.762 6 LRGB+Ldepth 24.08 0.787 3 LRGB+Lnormal+Ldepth 23.17 0.772 3 LRGB+LSDF 24.27 0.787 0 LRGB+Lnormal+LSDF 23.62 0.775 6 LRGB+Ldepth+LSDF 24.55 0.793 3 LRGB+Lnormal+Ldepth+LSDF 24.22 0.785 6 ]
图 5 展示了不同损失函数设置下的渲染图像及其对应的PSNR平均值。图5中可以看到各种图像重建策略恢复后图像的质量,验证了多重约束条件的有效性。
图6展示了在不同损失函数设置条件下,基于隐式表面重建与COLMAP进行室内重建的效果图。可以看出,重建效果存在明显差异。本文方法综合应用颜色、法向量、深度和SDF损失函数,在重建细节和表面光滑度方面表现最佳,显著优于仅使用单一或部分损失函数的效果,验证了综合应用几何先验、深度先验和法向先验信息对提升室内三维重建效果的有效性。
2.4 公开数据集实验
F分数用来衡量重建结果与Scannet自带的真实基准模型的相似度,其值越高,表示重建结果越接近真实基准模型。实验基于公开数据集Scannet进行,以图7(a)中的真实基准模型为比较基准,对COLMAP和不同损失函数设置条件下隐式曲面重建结果进行评估和比较。
表2展示了不同约束条件下,利用 Scannet 数据集进行图像恢复后的三维重建完整性比较,具体衡量指标包括PSNR、SSIM和F分数。从表2中可以看出,各种方法在PSNR、SSIM和F分数方面表现各异,这反映了不同损失函数设置在维持图像质量和细节恢复上的效率。例如,损失函数设置为LRGB+Ldepth+LSDF时,SSIM平均值达到了0.687 3,显示出较高的结构保持能力。同时,PSNR平均值也为最佳,达到22.83 dB,指示其在整体图像恢复质量上具有优势。COLMAP重建结果的F分数为0.481 6,而损失函数设置为LRGB+Lnormal+Ldepth+LSDF在F分数方面表现最优,远远高于COLMAP重建结果,达到了0.723 9,在细节恢复方面该方法更为出色。在处理需要高保真重建的应用场景时,上述结果为选择适当的图像恢复方法提供了重要依据。
表2 在不同约束条件下Scannet数据集的PSNR平均值、
SSIM平均值和F分数对比
Tab. 2 Comparison of the average PSNR, average SSIM and F scores of Scannet dataset under different constraint
conditions
[损失函数设置 PSNR平均值 / dB SSIM平均值 F分数×102 - - - 48.16 LRGB 22.43 0.673 5 60.49 LRGB+LSD 22.77 0.677 0 67.78 LRGB+Lnormal 21.30 0.652 3 67.85 LRGB+Lnormal+LSDF 22.43 0.665 2 72.01 LRGB+Ldepth 22.80 0.678 9 71.10 LRGB+Ldepth+LSDF 22.83 0.687 3 70.05 LRGB+Lnormal+Ldepth 22.06 0.667 3 72.24 LRGB+Lnormal+Ldepth+LSDF 22.40 0.670 7 72.39 ]
3 结 论
本文提出了一种基于神经网络隐式表达的室内三维重建改进方法,旨在解决仅使用彩色图像进行室内重建时效果不佳的问题。通过COLMAP获取相机参数及稀疏点云,利用LIMAP获取三维线段模型,并引入深度和法向量信息作为先验信息,提升了室内三维重建的精度。在自建数据集和公开数据集Scannet上进行了大量实验,详细比较了不同约束条件下的重建效果。
(1)几何先验约束的有效性:基于神经网络隐式表达的室内三维重建方法,结合COLMAP获得的稀疏点云和LIMAP生成的三维线段模型,有效约束了隐式曲面的重建,使得重建结果在几何形状和细节上更加准确。
(2)深度和法向信息的贡献:引入深度信息和法向信息作为先验信息,显著提升了弱纹理区域的重建效果,避免了传统方法在这些区域出现的大量空洞。
(3)多重损失函数的综合应用:综合应用彩色图损失函数、法向量损失函数、深度损失函数和SDF损失函数,有效解决了传统方法在稠密重建中的不足,提升了墙体的完整度和细节的重建效果。
未来的研究可以在以下几个方面进行:为提高处理速度,可尝试使用三维高斯方法进行室内三维重建;可通过最优传输方法优化深度损失函数,以提升精度;增加异常法向值的过滤机制,以改善室内三维重建的准确性。
综上所述,本文提出的方法在虚拟现实和数字建筑等实际应用中能够显著降低建模成本并提高建模精度。通过巧妙地引入几何、深度和法向先验信息,在复杂室内环境中表现出色,提升了系统的鲁棒性和精确度。