基于深度霍夫投票的建筑点云轻量级表面重建
Lightweight surface reconstruction method for building point clouds based on deep Hough voting
收稿日期: 2025-07-17
| 基金资助: |
|
Received: 2025-07-17
| Fund supported: | 国家自然科学基金资助项目(62172367);浙江省尖兵领雁计划研发攻关计划项目(2025C01073). |
作者简介 About authors
陈佳舟(1984—),男,副教授,从事计算机图形学、人工智能研究.orcid.org/0000-0003-2780-6146.E-mail:
针对实景三维场景中建筑物结构缺失、数据冗余、噪声多等问题,提出新的建筑点云轻量级表面重建方法,进行建筑的多边形网格模型重建. 构建高效的建筑数据集生成框架,自动生成包含5 500个带标签的建筑模型数据. 针对建筑点云中平面提取困难的问题,使用深度霍夫投票预测建筑平面,采用基于面的非极大值抑制算法(F-NMS)有效去除预测的重复面以及错误面. 设计建筑平面相邻关系预测模块,对经过非极大值抑制后的建筑平面进行相邻关系的预测. 定量实验结果表明,与如PolyFit的传统方法相比,所提方法在拟合精度与场景适应性方面均具有显著优势. 使用所提方法重建的建筑多边形网格模型保留了输入建筑点云的主要结构特征,存储量不到原始点云的1%.
关键词:
To address missing structures, data redundancy and noise in real-world 3D scenes, a lightweight surface reconstruction method for building point clouds was proposed that reconstructs polygonal mesh models. An efficient framework for building-dataset generation was proposed, automatically producing 5 500 labeled building models. To ease the plane extraction for building point clouds, the building planes were predicted using deep Hough voting, and a face-based non-maximal suppression algorithm (F-NMS) was used to efficiently remove the predicted duplicate and erroneous surfaces. A building plane adjacency prediction module was designed to predict the adjacency of the building planes after the F-NMS. Quantitative experimental results demonstrate that, compared to traditional methods such as PolyFit, the proposed approach exhibits significant advantages in both fitting accuracy and scene adaptability. The polygonal mesh models reconstructed by the proposed method retain the main structural features of the input building point clouds, with storage requirements reduced to less than 1% of the original point cloud data.
Keywords:
本文引用格式
陈佳舟, 朱肖航, 徐阳辉, 高崟, 鲁一慧, 毛真, 李胜龙, 章超权.
CHEN Jiazhou, ZHU Xiaohang, XU Yanghui, GAO Yin, LU Yihui, MAO Zhen, LI Shenglong, ZHANG Chaoquan.
将三维建筑点云重建为稀疏而精确的多边形网格模型能够有效解决上述问题. 多边形网格模型能够紧凑表达物体的表面特征,减少数据存储量,间接提高数据处理和传输的效率. 由于点云数据本身具有无序性和缺乏内在结构的特点,直接从点云中重建结构化、层次化的多边形网格模型难度大,本研究以三维建筑点云为对象,将其重建为轻量级的多边形网格模型. 现有的三维建筑表面重建方法分为2个大类. 1)依据建筑的平面信息重建出网格模型,侧重于利用建筑物的平面布局特征,依赖于建筑平面检测的准确性. 现有的建筑点云平面检测方法主要有RANSAC[3]以及区域增长法[4]. RANSAC针对不同的建筑点云手动调节参数,迭代计算的开销较大. 区域增长法依赖于种子点的选择,不合适的种子点可能导致不完整或者错误的区域扩展;该方法对噪声和离群点也比较敏感,容易陷入局部最优解,导致一些重要表面特征丢失. 2)通过识别建筑的边缘或顶点来实现模型的简化,侧重于捕捉建筑物的轮廓和结构特征,但是从建筑点云中直接预测边缘和顶点比较困难.
针对平面预测困难的问题,本研究借鉴深度霍夫投票的3D目标检测算法的思路,通过数据驱动构建建筑点云中的平面预测深度学习模型. 先由PointNet++[5]网络输出投票点及投票点的特征;再通过投票网络使投票点偏移到平面中心点位置附近;之后进行投票点聚类,使用聚类结果预测建筑平面的参数. 其中平面的预测参数是面的中心点、法线以及置信度. 在本研究中,建筑平面(面)指的是每个平面点云的最小包围框;为了有效去除初始预测平面中存在的众多冗余面,提出基于平面的非极大值抑制算法(face-based non-maximal suppression algorithm,F-NMS);在网络模型中设计针对建筑平面的相邻关系预测模块,自动构建建筑平面的拓扑关系图;设计建筑轻量级重建的模块,在平面及其相邻关系的基础上进一步提取建筑多边形平面的顶点和边缘,构建准确和紧致的多边形网格模型. 现有的建筑点云数据集主要有Building3D[6]、UrbanBIS[7],这些数据集都没有平面预测所需的标签,为此本研究设计算法,自动将LoD2[8]的建筑三角网格数据转换为带建筑平面标签的建筑点云数据.
1. 相关工作
1.1. 基于平面的三维建筑表面重建
依据建筑平面信息构建建筑简化模型的常规步骤:1)通过传统算法(如RANSAC、区域增长法)检测得到建筑平面,2)根据平面将模型切割成小块的平面或多边体,3)从这些切割形体中选出合适的子集来构建简化的建筑模型. Nan等[9]提出PolyFit系统,通过改进的RANSAC提取平面,让提取的平面进行相互切割,形成多个小块的平面,再将问题转化为二值标记问题,从切割出来的大量小块平面中选出合适的候选平面集合,然后将候选平面集合拟合成简化结果. Bouzas等[10]通过识别建筑平面之间的相邻关系重建出简化模型. Huang等[11]使用建筑高程图提取建筑轮廓并生成垂直平面,再结合传统算法(如RANSAC)提取的平面重建出简化模型. Bauchet等[12]提出利用机载LiDAR扫描数据将城市环境中的建筑物重建为简洁多边形网格的方法,使用平面将空间分割成多个多面体,随后基于投票方案和能量函数对多面体进行标注的方法得到建筑物的内外表面,从而得到建筑物的多边形网格. Chen等[13]使用深度神经网络学习隐式场来选出合适的多面体子集,进而重建出简化模型. Chen等[14]引入图神经网络来选择多面体子集,重建出建筑的简化模型. He等[15]提出WindPoly,通过多边形平面检测、自适应分区和环绕数优化,实现无需法向量、高效且几何一致的低多边形网格重建. 上述方法易受噪声干扰,且须手动调节参数,本研究通过深度霍夫投票来预测建筑平面,无需手动调节参数.
1.2. 基于点或线的三维建筑表面重建
相对于平面检测,使用传统方法进行建筑的顶点和边缘检测更易受到噪声干扰,深度学习检测因此备受青睐. 如PBWR系统[16],为端到端的建筑屋顶线框预测深度神经网络模型,它先初始化一定数量的线条,随后让网络使用这些线条去拟合点云模型,最终得到建筑屋顶的线框模型. Point2Roof[17]由深度学习方法从建筑屋顶点云数据中预测建筑角点,再预测角点之间的连接关系,最终得到屋顶的线框模型. 上述方法仅对建筑屋顶进行线框模型重建,面对复杂屋顶时重建结果与真实情况偏差较大,且难以直接应用于整个建筑,特别是在建筑底部存在着部分缺失的情况下. 本研究不直接预测顶点或边缘,而是先预测平面及其相邻关系,再通过平面的求交来获得建筑顶点和边缘,以构建出更准确的建筑多边形模型.
1.3. 基于深度霍夫投票的三维目标检测技术
2. 算法概述
以建筑的三维点云作为输入,本研究提出端到端的神经网络模型,将这些点云重建为轻量级的建筑多边形网格模型. 如图1所示,网络模型分为平面及相邻关系预测模块和建筑表面重建模块. 在平面及相邻关系预测模块中,基于深度霍夫投票的方法实现投票点的聚类,根据投票结果预测出平面,使用基于面的非极大值抑制算法去除冗余面,对建筑平面进行相邻关系的预测. 在建筑表面重建模块中,利用预测出的平面及相邻关系,由平面求交提取建筑顶点的方式得到建筑顶点,通过检查2个顶点之间是否存在2个相同的建筑平面来提取建筑的边,最后构建多边形网格模型.
图 1
3. 平面及相邻关系预测
3.1. 平面预测
将三维目标检测中基于深度霍夫投票的方法用于建筑点云平面的检测中,让投票点自行偏移至所属平面的中心点附近,实现点云的聚类,根据聚类的结果预测出建筑平面. 平面预测模块的网络结构如图2所示,其中N为输入点云数目,SA1~SA4为自注意力模块,FP1~FP3为前向传播模块,C为投票点特征维度. 主干网络基于PointNet++网络模型设计,结合基于向量的自注意力模块[23]辅助PointNet++更好地捕捉点云全局的上下文关系. 设主干网络输出的投票点集
图 2
图 2 基于深度霍夫投票的平面预测网络结构图
Fig.2 Structure of planar prediction network based on deep Hough voting
其中多层感知机(multi-layer perceptron,MLP)网络用于生成投票后的特征
聚合建筑点云平面特征的步骤如下. 1)使用最远点采样[24]在投票点中采样64个中心点,记为
完成建筑点云平面的特征聚合后,进行建筑平面预测. 本研究使用3个独立的MLP网络分别进行平面的中心点、法线以及置信度预测. 这种设计能够有效解耦平面不同属性的预测任务,提高模型的灵活性以及预测精度.
3.2. 平面非极大值抑制
预测面的数量大于建筑点云中实际存在的平面数量,须去除冗余平面. 由于与实际平面对应的多个预测平面非常接近,本研究借鉴目标检测中的非极大值抑制算法,提出F-NMS,并使用该算法去除预测面中的冗余面. 进行基于面的非极大值抑制须计算面的相似度,本研究从建筑点云平面的中心点以及法线来计算2个平面的相似度:
式中:
其中
预测面中的冗余面主要包括,在真实面的附近生成多个重复的预测面,由错误的投票结果生成的错误面. 如图3所示,假设提出的基于面的非极大值抑制算法的输入为预测面集合
图 3
图 3 平面非极大值抑制算法的输入输出
Fig.3 Input and output of face-based non-maximal suppression algorithm
算法1 基于平面的非极大值抑制算法
输入:预测面集合
输出:输出面集为
1. 将
2. 从
3. 计算
4. 若
3.3. 平面相邻关系预测
受到Hu等[25]提出的通道注意力机制——压缩-激励(squeeze-and-excitation,SE)模块启发,本研究设计配对面注意力模块(paired face attention module,PFA)来辅助融合2个建筑点云平面的特征,通过动态权重机制增强关键特征,抑制无关信息的干扰. 传统特征拼接方法仅能实现特征的简单组合,无法区分不同通道特征的重要性(如位置坐标、法线向量、置信度等). PFA能够显著提升模型对复杂拓扑结构的表达能力,它不采用固定融合策略,会针对每对平面特征自适应生成权重矩阵. 在生成的权重矩阵中关键特征的权重较大,不相关特征会被分配较小的权重,使得模型更加关注关键特征并且抑制不相关特征.
如图4所示,2个面特征
图 4
3.4. 损失函数
为了让在建筑点云平面中面积较小的平面上的投票点也能够投票到正确的建筑点云平面中心点位置,根据建筑点云平面的面积大小为投票点分配不同的权重. 投票点权重计算式为
式中:
平面及相邻关系预测网络的总损失计算式为
式中:
4. 建筑表面重建
假设预测出的平面及相邻关系集合
4.1. 建筑顶点提取与优化
检测相邻关系中所有的三元组,对三元组对应的平面求平面之间的交点,得到建筑的顶点. 三元组是指两两相邻的3个建筑点云平面. 建筑顶点集合
4.2. 建筑边缘提取
由几何结构知识可知,若2个建筑的顶点能够构成边,则这2个建筑顶点附近必定存在2个相同的建筑平面,可以通过直接判断2个建筑顶点对应的三元组是否存在2个及以上的共面来确定2个建筑顶点是否构成边. 设优化后的建筑顶点集合为
式中:
图 5
图 5 基于平面及相邻关系的建筑线框模型转换过程
Fig.5 Transformation process of building wireframe model based on plane and adjacency relationship
4.3. 构建多边形网格模型
以单个多边形网格面的提取为例,具体描述提取过程. 取预测面中的面
图 6
5. 实验与评估
5.1. 实验环境
所有实验均由自适应矩估计(adaptive moment estimation,Adam)优化,设置基本的学习率为10×10−3,权重衰减为10×10−5,批大小为64. 使用Pytorch(版本为1.13.1)进行模型搭建,使用NVIDIA RTX A6000 GPUs进行模型训练,在第200个迭代轮次达到最佳性能且损失趋于稳定,总的训练时长约为32 h.
5.2. 数据集准备
数据集源于爱沙尼亚3D空间数据站的LoD2+级建筑三角网格数据[26]. 为了生成带多种标签的建筑点云数据,设计数据处理原型系统,对原始数据进行如下4个步骤的自动化处理. 1)点云采样:对原始数据进行归一化处理,对每个三角网格执行基于重心坐标的点云采样操作,将所有三角网格的采样结果合并,得到整个建筑的采样点云;2)点云聚类:根据三角面片的法线以及三角面片之间的垂直距离粗略筛选出在同一建筑平面上的三角面片. 通过对比三角面片之间是否存在共点进一步筛选出属于同一建筑平面的三角面片. 该三角面片对应的采样点云即为属于同一平面上的点云;3)相邻关系计算:若2个建筑平面相邻,则对应的2个三角面片集合中必定存在共点,通过判断2个建筑平面对应的三角面片集合是否存在共点得到相邻关系;4)最小包围框计算:提取建筑平面对应的三角面片集合中的所有边并去除重复的边,得到该建筑平面的外边;对外边使用轴对齐包围盒(axis aligned bounding box,AABB)算法[27]生成建筑平面的最小包围框.
本研究的数据集处理算法适用于大部分基于三角网格的LoD2级建筑数据,数据之间的差异性使得算法中设置的参数不适用所有数据. 为此对生成的每个数据都进行人工检测,手动调整不合格数据的各个参数值,以保证标签的正确性. 若调整后效果仍不理想,则将这个数据丢弃. 自动化处理和手动检查共收集5 500个建筑数据,包含各种类型的建筑样式,每个建筑都带有丰富的语义标签,主要包括以下3种:1)每个点按照所属平面的类别进行标记的标签,2)建筑点云每个平面的最小包围框标签,3)建筑平面之间的相邻关系数据标签. 将建筑数据分成2组,其中
5.3. 评价指标
对比重建的多边形网格模型与真值,定量评估本研究所提方法的性能. 测试集数据规模为500,均添加标准差为0.02的高斯噪声,评估指标如下.
1)豪斯多夫距离[28](Hausdorff distance,HD),通过计算生成的多边形网格模型和原始网格之间的豪斯多夫距离来评估模型性能,计算式为
式中:
2)倒角距离(chamfer distance,CD)[29],通过计算集合
3)定义re为建筑多边形网格模型重建的错误率,将HD>3 m的重建结果认定为重建失败的数据,
式中:
4)预测面的精确率
式中:
(5)面相邻关系预测的准确率
式中:
5.4. 建筑点云重建结果
如图7所示,本研究所提建筑点云重建方法能够将离散的建筑点云简化为轻量级的多边形网格模型,且与原始的三维建筑点云非常贴近.
图 7
图 7 建筑点云重建结果及过程示例
Fig.7 Results and procedural examples of building point cloud reconstruction
5.5. 消融实验
为了验证本研究提出的损失函数的有效性开展消融实验,对比只使用均方误差计算投票点损失的方法和为投票点赋予不同权重再进行损失计算的方法的性能,结果如表1所示,其中σ为给点云坐标添加的高斯噪声的标准差. 不难看出,根据面积大小为投票点赋予不同权重后,面的精确率和召回率均提升了1%,HD减少了0.04 m.
表 1 投票点损失函数不同权重的消融实验(σ=0.01)
Tab.1
| 方法 | HD↓/m | |||
| 均方误差的投票点权重 | 0.94 | 0.95 | 0.987 | 0.33 |
| 面积自适应权重 | 0.95 | 0.96 | 0.992 | 0.29 |
为了验证平面相邻关系预测中PFA的有效性,开展消融实验,对比PFA面对特征融合模块与直接将面对特征进行拼接的方法的性能,结果如表2所示.
表 2 配对面注意力模块消融实验(σ=0.01)
Tab.2
| 模块 | HD ↓/m | |||
| 最大池化+MLP | 0.95 | 0.95 | 0.985 | 0.31 |
| PFA | 0.95 | 0.96 | 0.992 | 0.29 |
为了验证F-NMS中相似度阈值的敏感性,开展消融实验,分析将F-NMS中的低置信度过滤值、相似度阈值设置为不同值时,对算法性能的影响,结果如表3所示. 可以看出,在相同低置信度过滤值情况下,相似度阈值越高,准确率越低,原因是高相似度阈值导致多余面未被过滤. 综合来说,当低置信度过滤值和相似度阈值均为0.90时,F1分数最高,表明此时所提建筑模型重建方法的综合性能最强.
表 3 基于面的非极大值抑制算法的相似度阈值消融实验(σ=0.02)
Tab.3
| F1↑ | ||||
| 0.85 | 0.85 | 0.939 | 0.947 | 0.943 |
| 0.90 | 0.923 | 0.950 | 0.936 | |
| 0.95 | 0.861 | 0.954 | 0.905 | |
| 0.90 | 0.85 | 0.940 | 0.942 | 0.940 |
| 0.90 | 0.935 | 0.951 | 0.943 | |
| 0.95 | 0.875 | 0.953 | 0.912 | |
| 0.95 | 0.85 | 0.940 | 0.939 | 0.939 |
| 0.90 | 0.935 | 0.942 | 0.938 | |
| 0.95 | 0.893 | 0.949 | 0.920 |
5.6. 对比实验
对比不同方法的建筑简化性能. City3D和PolyFit基于传统算法,未使用深度学习技术. PolyGNN是基于深度学习的方法,深度学习模型受训练集的影响很大,为此使用本研究的训练集重新训练PolyGNN. 实验使用的测试集数据规模为500,添加标准差为0.02的高斯噪声. 不同方法的简化性能如表4所示,其中
表 4 建筑简化性能对比评估表(σ=0.02)
Tab.4
如图8所示为不同方法生成的建筑模型可视化效果对比. 可以看出,对比其他方法,所提方法重建的建筑多边形网格模型所需面片数量最少且与真值的建筑点云高度相符. City3D须调整到合适的参数才能获得比较好的结果,本研究使用City3D默认的参数进行重建. PolyFit和PolyGNN在某些数据上的HD略小于所提方法的模型,但在表达模型所需的面片数量上,所提方法远远小于PolyFit和PolyGNN. 原因是本研究所提方法表达1个平面只需要1个多边形网格,而PolyFit和PolyGNN需要多个多边形网格.
图 8
图 8 三维建筑轻量化重建的不同方法可视化对比(σ=0.02)
Fig.8 Visual comparison of different methods for 3D building lightweight reconstruction (σ=0.02)
真实的建筑点云数据可能包含更多噪声,为此进行不同方法的抗噪性能测试,结果如图9所示. 可以看出,所提方法在不同程度的高斯噪声中都能够重建出高度保真的多边形网格模型. 随着噪声增多,PolyFit、PolyGNN重建的网格模型质量急剧下降,当σ=0.03时,甚至出现无结果产出,输出为空值的情况. 如表5所示为不同方法在不同程度高斯噪声中的抗噪性能定量评估结果. 在σ=0.02时,所提方法的部分指标略低于PolyFit、PolyGNN,为次优结果;当σ=0.03时,所提方法的所有指标都远远高于现有方法. 随着噪声的增加,现有方法的错误率都显著增加,所提方法的错误率稳定在4.2%~4.6%,这进一步说明所提方法对噪声的鲁棒性.
图 9
表 5 建筑简化抗噪性定量评估结果
Tab.5
6. 结 语
本研究提出基于深度学习的建筑点云轻量级表面重建方法. 为了检测出建筑点云中的平面,使用基于深度霍夫投票的方法,将点云聚类到所在平面的中心点附近,提高了建筑平面预测的准确性. 本研究提出基于面的非极大值抑制算法有效去除了预测面中的冗余面;在相邻关系预测模块中,提出配对面注意力模块;设计能够利用预测面以及面相邻关系构建多边形网格模型的方法,实现了建筑点云的有效简化. 所提表面重建方法在保证建筑点云结构完整性的同时,极大降低了存储需求,提高了数据传输和处理效率;在三维城市建模、智慧城市和地理信息系统等领域具有广泛的应用价值. 所提表面重建方法主要针对以平面结构为主的建筑点云,对于包含曲面结构(如圆柱体、圆锥体、球体等)的建筑适用性较弱. 在未来的研究中,1)计划结合基于隐式表示的深度学习方法(如NeRF、SDF)进行曲面建筑的重建能力改进;2)借鉴稳健的低多边形网格表示方法,将建筑点云三角网格化后转化为低多边形网格.
参考文献
Large-scale 3D reconstruction from multi-view imagery: a comprehensive review
[J].DOI:10.3390/rs16050773 [本文引用: 1]
面向城市数字孪生的多尺度三维建模方法研究
[J].
Research on multi-scale 3D modeling method for urban digital twin
[J].
Efficient RANSAC for point-cloud shape detection
[J].DOI:10.1111/j.1467-8659.2007.01016.x [本文引用: 1]
Segmentation of point clouds using smoothness constraint
[J].
Automated 3D reconstruction of LoD2 and LoD1 models for all 10 million buildings of the Netherlands
[J].DOI:10.14358/PERS.21-00032R2 [本文引用: 1]
Structure-aware building mesh polygonization
[J].DOI:10.1016/j.isprsjprs.2020.07.010 [本文引用: 1]
City3D: large-scale building reconstruction from airborne LiDAR point clouds
[J].DOI:10.3390/rs14092254 [本文引用: 3]
City reconstruction from airborne lidar: a computational geometry approach
[J].
PolyGNN: polyhedron-based graph neural network for 3D building reconstruction from point clouds
[J].DOI:10.1016/j.isprsjprs.2024.09.031 [本文引用: 3]
Point2Roof: end-to-end 3D building roof modeling from airborne LiDAR point clouds
[J].DOI:10.1016/j.isprsjprs.2022.08.027 [本文引用: 1]
Lane line detection and object scene segmentation using otsu thresholding and the fast Hough transform for intelligent vehicles in complex road conditions
[J].DOI:10.3390/electronics12051079 [本文引用: 1]
An automatic image processing based on Hough transform algorithm for pavement crack detection and classification
[J].DOI:10.1108/SASBE-01-2023-0004 [本文引用: 1]
HoughLaneNet: lane detection with deep Hough transform and dynamic convolution
[J].
A collision detection algorithm based on sphere and EBB mixed hierarchical bounding boxes
[J].
A fault detection method of electric vehicle battery through Hausdorff distance and modified Z-score for real-world data
[J].
/
| 〈 |
|
〉 |

