汪子璐, 闫奕名
(哈尔滨工程大学信息与通信工程学院,黑龙江 哈尔滨 150001)
随着虚拟现实和增强现实的发展,三维建筑模型在城市规划、生态研究、灾害监测等领域发挥着越来越重要的作用。机载LiDAR可以快速、实时地采集地物三维表面信息,因此航空扫描点云被广泛运用于建筑物的三维重建[1-2]。然而,受地物遮挡与扫描路线等因素的影响,机载LiDAR点云中建筑物的立面通常存在缺失,所以许多研究只着力于重建出建筑物的屋顶结构[3]。同时大多数现有的重建方法都以密集三角网格来表征光滑表面,复杂的网格模型忽略了城市建筑的平面性及立面关系[4-5]。因此,如何从稀疏、残缺的建筑点云中重建出完整、水密的简化建筑物模型十分具有挑战性。
近年来,隐式神经网络被应用到目标三维形状重建问题之中[6-8]。隐式表示能使用较小的内存消耗将三维信息嵌入到神经网络中,因此能更好地建模出复杂建筑。然而,建筑物通常表现为屋顶、墙面等有强先验形状的结构,当网络应用于稀疏、含噪的LiDAR点云时,重建出的网格模型往往具有不规则曲面,难以体现城市建筑的平面性。网格模型的大量面数也增加了对内存空间的要求,导致模型的应用场景受限。通常,通过对三角网格进行简化来解决这个问题[9-10]。然而迭代删点、顶点聚类和边折叠等简化方法都致力于去除原始网格中的冗余面来简化网格,如何在减少面数的同时充分描述出建筑的几何形状仍然是一个有待解决的问题。
本文提出了一种新的框架来从LiDAR点云重建出水密的轻量级网格模型。首先利用点-体素结合的特征提取网络作为编码器、占用概率译码网络作为解码器进行预训练,从深度神经网络学习的隐式场中获得建筑物密集网格模型;然后通过优化网格模型中的平面分量与拓扑关系,生成简化的网格模型。本文在苏黎世建筑数据集上进行了实验,利用所提方法既能从稀疏、残缺的LiDAR点云中生成完整的模型,又能高质量地构建建筑物的轻量级网格模型。
如图1所示,首先对LiDAR点云进行预处理,人工分离出单体建筑点云后再对其进行重建。本文所提出的方法包括两个主要的处理模块:基于隐式表示的表面信息模块和基于结构感知的网格优化模块。具体内容如下:
与需要离散化的显示表示不同,隐式表示使用神经网络来逼近连续函数,如式(1)所示,隐式表示将三维坐标映射到0或者1,表示空间中的某一位置处于物体内部还是外部,一旦该函数确定,那么一个目标形状就确定了。
f(x,y,z)→{0,1}
(1)
因此,为了更好地提取复杂建筑物的几何信息,本文采用基于隐式表示的信息提取网络。
图1 网络整体架构
通过隐式神经网络学习占用概率函数fθ(s,x)来拟合建筑表面。占用概率函数根据点是否在建筑物内部标识占用与否,这使得表面信息提取问题转化为点的二分类问题。在训练过程中建立起点与隐式表示的映射关系来预测该点的占用概率,并以此逼近真值的占用函数:
fθ(s,x)→[0,1]
(2)
其中,s为输入点云的某一点,x为该点的特征向量。
如图1所示,通过FPS (Farthest Point Sampling)将输入点云下采样至固定点数N,然后基于点-体素结合的几何特征提取网络提取到R×R×D维特征向量。其中点编码器采用Res-PointNet,体素编码器采用3D Unet。然后将该特征向量与查询点坐标共同输入含有5个res block的占用译码模块并推断出各点的占用概率:
fθ(s,x)=g(dλ(s,x)),其中x=eα(s)
(3)
其中,α,λ分别参数化了编码器和译码器模块,g(x)是logit函数,计算点s与建筑物表面的距离置信度作该点的占用概率。
图2 两种三维表示方法
如图2所示,等值面fθ(s,x)=τ即是本文所提取到的建筑物几何表面。
如图1所示,几网格优化模块主要包含3步:(a)通过区域增长提取平面区域;(b)构建并优化平面区域的拓扑;(c)生成轻量级模型。
首先,区域增长的过程如下:选择一个未分组的面作为初始平面,遍历其k环邻域面并比较它们的法线方向θ与距离d,合并方向、距离均相近的两个面并使用PCA(Principal Components Analysis)拟合平面,直到不再具有符合条件的面。由此,每个面都被分配到一个区域中,最终得到一组平面区域。
其次,虽然在区域增长的过程中已经建立起k环邻域关系,但LiDAR点云中的噪声会导致提取到的几何信息不准确,因此需要进一步优化拓扑,合并满足共面条件的平面区域。合并平面区域的过程与区域增长类似:遍历所有平面区域,寻找符合角度、距离关系的平面区域进行合并。接着,根据平面区域的边界邻接关系,得到平面邻接拓扑图G,如式(4)。
G=(v,e)
(4)
式(4)中,节点v是平面的质心,而e是连接两节点的边,节点相连即两平面互为相邻面。
最后,将最优平面的选取问题转化为二元线性规划问题,把每个平面表示为二进制变量Vi,通过最小化能量函数E来选择最优平面。目标能量函数E为数据成本D、面覆盖率F与模型复杂度C这3个能量项的加权和:
(5)
式(5)中,Nall是总面数,Nc是候选平面所覆盖的面的总数,Aall是简化后网格的表面积,Ai是该候选面的面积,Ac为该候选面与原始网格的并集面积,M是网格模型中边总数,当边ei两侧的面共面时c(ei)取0,反之取1。
在本节中,进行了两个实验来验证本文所提方法的重建结果。首先,比较了2种典型重建方法与本文方法在苏黎世数据集上的性能,以验证本文所提框架的可行性。为了验证所提框架可靠性,设计并分析了稀疏性与参数分析2组对比实验。具体实验内容如下:
为了训练和评估网络框架,采用来自瑞士苏黎世的LiDAR点云与相应真值模型数据,通过人工分离出单体建筑点云与真值模型。其中,LiDAR点云的密度为5pts/m2,点的水平和垂直位置精度分别为0.2m和0.1m,模型数据则为采用摄影测量法得到的LoD2模型。数据集中共470个建筑,训练集包含420个建筑,训练集50个建筑。这些建筑都具有良好的屋顶结构,而由于遮挡和LiDAR扫描角度的原因,建筑的立面只有部分可见,该数据集中的点云和真值模型如图3。
训练的设备信息如下:Ubuntu18.04系统,显卡为NVIDIA RTX 2080Ti(11GB),CPU为Intel Xeon silver 4210(2.20GHz)。在整个网络框架的参数设置上,使用了Adam优化器,学习率设为1e-4,batch size为4,固定采样2048个点,训练150个epoch,阈值τ设置为0.2,邻域数量k取1,角度阈值设置为10°,距离阈值根据模型最小边宽自适应决定,λ1取0.47,λ2取0.23,λ3取0.30。
为全面评估重建结果的质量,既采用隐式重建常用的三个指标[6]:倒角距离(CD)、推土距离(EMD)、F分数(F-score),又采用网格模型优化常用的两个指标[5]:豪斯多夫距离(HD)、面数。其中CD,EMD,HD均是数值越小,表明重建模型越接近于真值,而F-score则相反。面数则是衡量轻量级模型质量的指标。
为评估所提方法重建模型的质量,本文分别与隐式重建网络POCO[8]和轻量级网格重建网络Points2Poly(P2P)[5]两种方法进行了对比。POCO计算了每个点的潜在向量并推断出各点在邻域中的权重,来推断各点的占用概率以完成重建;P2P则首先对点云进行自适应空间划分生成候选集,然后利用隐式网络推断出各空间的占用概率,最后通过组合优化提取到建筑物模型的表面。本文根据官方代码在苏黎世数据集上重建出建筑物模型,所有基于LiDAR点云的建筑物重建结果如图3所示,定量评估结果如表1,表2所示。
图3 POCO,P2P与本文所提方法所建模型的可视化结果
首先,POCO能从不完整LiDAR点云中重建出建筑物的正确形状,并得到完整的密集网格模型。但模型存在表面凹凸不平、各面相交处趋于圆润等问题,难以体现出建筑物表面的平面性与建筑物的棱角特征。P2P的重建结果则更为平滑,建筑物立面的交线也更明显。
表1 建筑物重建结果
然而,由于P2P通过空间划分进行面的选择,建筑物屋顶的窗户、烟囱等结构因体积小、距离近等因素,易被划分到同一区间中,这使得屋顶结构丢失。与这些方法相比,本文所提方法得到了完整、水密的轻量级模型,重建的形状、细节结构也更加准确。
表2 图3中(a)-(e)建筑物的重建结果,(x, y)中x为HD,y为面数
2.5.1 点云稀疏程度影响
在本节实验中,测试了本文所提方法对不同点数LiDAR点云的可靠性。假设初始输入点数为3000,逐渐减少点数,得到如图4所示的重建结果。输入的LiDAR建筑物点云越密集,得到的重建模型表面越准确。当点数在70%以上时,基本能重建出建筑物的准确模型,虽然侧立面的小边缘丢失,但屋顶部分受到的影响很少;当点数在25%~75%时,屋顶的结构逐渐丢失,建筑物整体结构受屋顶部分的形变影响出现冗余面(增大距离阈值可减小冗余面影响);点数在25%以下时,虽然至少能粗略地重建出建筑物的形状,但屋顶细节几乎完全丢失。由此,当点数在25%以上时均能重建出模型的整体结构,这也验证了本文所提方法对稀疏的LiDAR点云的有效性。
图4 点云稀疏度研究的可视化结果
2.5.2 能量函数参数分析
对优化过程中能量函数的参数而言,在一定范围内不同的值会产生相同的结果。如图5所示,三个参数中,λ1的值应略高于λ2与λ3,因为数据拟合程度决定了优化结果与原始网格模型的相似度。但若λ1与λ2的比值大于4,仍会影响优化结果。
图5 能量函数参数研究的可视化结果
本文针对机载LiDAR点云稀疏、残缺等问题,提出了一个从LiDAR点云重建轻量级网格模型的框架。该架构主要包括两个模块:基于隐式表示的表面信息提取模块和基于结果感知的网格优化模块。表面提取模块通过编码器与译码器网络学习并推断建筑物目标的占用概率函数,并据预设阈值提取到建筑物表面;网格优化模块对平面区域的拓扑进行分析和完善,最终重建出轻量级建筑模型。在苏黎世建筑物数据集上,对本文提出的架构进行了验证,实验结果充分证明了所提方法既可以从不完整LiDAR点云中重建出完整轻量级模型,又在充分描述出建筑物几何形状与特征的同时保证了模型的水密性。