APP下载

基于BIM 和深度学习点云分割的施工检查方法模拟研究

2024-02-25孙楚津覃思中赵馨怡

工程力学 2024年2期
关键词:对象化偏差标签

张 帆,孙楚津,覃思中,赵馨怡

(1.中冶建筑研究总院有限公司,北京 100088;2.清华大学土木工程系,土木工程安全与耐久教育部重点实验室,北京 100084)

我国建筑业的发展对工程建造过程的进度和质量管控提出了较高的要求,施工管理问题越来越受工程人员和研究者的关注。建筑信息模型(BIM)为工程建设提供了丰富的空间和属性信息,成为提升工程建设管理数字化水平的关键技术。通过与实际工程数据的交互,可以利用BIM 实现项目的动态协调管理。比如,在进度管理方面,利用BIM 可以综合资源、工期、成本等关键要素优化实现科学的施工计划排程与可视化[1-4];在质量管理方面,则可开展碰撞检测、偏差检查和竣工模型重建等[5-7]。

上述应用离不开实际工程数据的获取,常规方法主要依赖于现场人员测量,存在数据获取成本高、效率低等问题。近年来,三维激光扫描、RGB-D 深度相机等主动式三维信息获取技术和多视图几何重建等被动式三维信息获取技术的发展,为获取以点云描述的工程建设三维场景信息提供了可能[8-10]。相比于现场人员测量,利用上述方法可以更高效地获取三维信息,同时搭载于无人车、无人机[11]等可以实现更大范围的数据采集,为推动BIM 在施工管理领域的应用提供了关键的技术支持。

目前,已有相关研究将点云与BIM 相结合,辅助建筑工程的施工质量与进度管理[6,12]。然而,既有研究一般面向全局的三维场景信息比对,在不同类型工程构件需要适用不同的比对规则与指标时难以定量呈现比对结果,需要工程人员进一步开展针对性分析。同时,比对结果无法与BIM 构件属性自动关联并服务于智能化分析。针对上述问题,本文将在既有研究基础上,引入深度学习点云语义分割技术,针对框架梁柱节点实现构件对象化的比对,提高点云与BIM 比对的自动化和数字化程度,为相关测量数据和施工进度的数字化记录和智能化分析提供基础。

1 基于BIM 与点云的施工检查方法

本文提出的基于BIM 和深度学习点云分割的施工检查方法,主要包括以下4 个步骤:

1) 点云获取:使用三维激光扫描、RGB-D 深度相机等技术获取施工建筑三维点云,通过布置多个测点获取完整三维场景,点云应具备三维坐标和法向量信息。点云经过人工预处理与降采样,用于后续比对。

2) 深度学习模型训练:利用已有构件类型标签的点云数据训练点云语义分割模型,标签可以通过人工或虚拟合成的方法得到。第2 节详细介绍了本文采用的点云语义分割算法。

3) 点云语义分割:将步骤1)获得的施工建筑点云输入到步骤2)训练获得的模型中,判别得到点云的逐点构件类型标签预测结果。

4) 对象化比对:根据步骤3 输出的构件类型预测结果,将点云划分为不同构件实例,并与对应的BIM 模型构件匹配。针对不同构件类型适用的规则与指标,进行对象化的施工偏差比对。第3.4 节介绍了针对本文研究对象的比对方法。

本文以框架梁柱节点为研究对象,采用虚拟合成的方法获取点云及其构件类型标签,通过模拟试验研究验证了方法的可行性。

2 点云语义分割算法

语义分割技术将空间信息与语义信息相关联,使通过计算机视觉理解三维场景结构成为可能,为进一步的建模分析提供了基础。针对点云语义分割问题,研究者们开展了长期而广泛的研究,根据是否引入已知的语义信息,可以分为无监督和有监督2 类[13]。典型的无监督分割方法包括边缘检测、区域生长、模型拟合和聚类分析等[13],此类方法的语义结果一般来自于研究者和使用者对于三维场景结构特征的认识和分析。有监督分割方法则利用已知语义标签训练模型,如支持向量机等机器学习方法[14]和各类深度学习方法在此类任务中发挥了其优势[15-18]。其中,深度学习语义分割方法在诸多数据集上取得了良好的效果,因而应用于城市建成环境要素识别[19-20]、桥梁结构构件分割[21]等工程相关研究中。本文将深度学习方法应用于框架梁柱节点语义分割,并拓展至与BIM 结合的施工比对领域。

综合考虑性能和易用性,本文采用PointNet++[16]进行框架节点的语义分割。用于语义分割的PointNet++的网络架构主要由负责特征提取的降采样编码器和负责特征传播的上采样解码器两部分组成,如图1 所示。本文具体采用的网络架构中,编码器和解码器分别包含3 个集合抽取层和3 个特征传播层。其中,集合抽取层由降采样层、分组层和PointNet 层[15]组成。降采样层按最远点规则进行点云降采样,以保证降采样后的点较为均匀地分布在模型空间内,n为降采样后的关键点数量;分组层以降采样后的关键点为基点,采用ball query 算法确定每个关键点的一组邻点,r为邻域搜索半径;最后,PointNet 层对一组点进行特征提取,作为关键点的特征输入至下层网络。特征传播层则由上采样层和PointNet 层组成。上采样层与下采样层的点的数量构成对应关系,采用反距离权重法计算上采样扩充点的特征;将上述上采样后的点的特征与下采样前的点的原特征连接组合,输入到PointNet 层中。特征传播层的PointNet 层仍负责特征提取,但针对单点而非集合抽取层中的针对点集进行。最后,点云特征通过全连接层转换为点的类别标签预测概率,取概率最大者作为点的类别标签。PointNet++训练过程的损失函数采用分类任务中常用的交叉熵损失。PointNet++的其他具体技术细节可参考文献[16]。

图1 PointNet++的网络架构Fig.1 Network architecture of PointNet++

3 合成数据试验

为了验证深度学习点云语义分割算法在梁柱节点问题上的有效性,本文采用合成数据开展了验证试验。

3.1 BIM 模型生成

本文采用Autodesk Revit 及其C#语言二次开发接口生成框架节点BIM 模型。考虑实际施工检查时已完成主要构件浇筑,生成的框架节点BIM 模型包含梁、柱、板三种构件。生成的框架节点BIM 模型包括三种样式,即中柱节点、边柱节点和角柱节点,生成的典型模型如图2 所示。边柱节点和角柱节点考虑旋转对称的四个方向,如图3 所示。

图2 框架节点样式Fig.2 Styles of frame nodes

图3 边柱节点和角柱节点的方向Fig.3 Directions of edge-column and corner-column nodes

本文的框架节点BIM 模型考虑方形柱截面与矩形梁截面。其中,方形柱截面边长取值范围为300 mm~1200 mm,梁宽取值范围为200 mm~600 mm,梁的高宽比控制在1~3 且梁高不超过900 mm。由于点云获取通常在节点以下的楼层平面上开展,仅可获得节点所在楼层楼板的下表面三维信息,故板厚对于点云数据不产生影响,本文取固定板厚120 mm 方便BIM 建模。以50 mm 为模数在上述尺寸范围内随机取值,共生成框架节点BIM 模型603 个,其中中柱节点203 个,边柱节点和角柱节点各方向50 个,BIM 模型以STL格式导出三角形网格三维模型,用于获取点云数据。

3.2 合成点云获取

在生成框架节点BIM 模型之后,为避免点云的密度模式与实际应用中LiDAR 和深度相机由射线追踪产生的阵列式点云的密度模式不符[22],本文采用虚拟深度相机的方式获取框架节点的点云。

虚拟深度相机采用针孔相机模型,如图4 所示。以Intel Realsense LiDAR 深度摄像头L515 的技术规格[23]为参考,虚拟深度相机的像素分辨率为1024×768,视场角(FOV)为70°。相机的焦距f(单位:pixel)可根据FOV 计算:

图4 针孔相机模型Fig.4 Pinhole camera model

式中,w/pixel 为画幅宽度,此处即1024。不考虑像素坐标系与成像平面之间的平移,可知相机的内参矩阵K为:

根据针孔相机模型,记像素坐标系下的点(u,v)在归一化平面(相机坐标系下Z=1)上的对应点的世界坐标为Pw1,则有:

式中,R和t分别为相机坐标系相对世界坐标系的旋转矩阵和平移向量,即相机的位姿参数。其中,旋转矩阵R满足RTR=I。由相机光心O为相机坐标系的原点,可知相机光心O的世界坐标Pw0为:

因此,以相机光心O为端点,像素坐标(u,v)对应的射线方向r可在世界坐标系下描述为:

通过遍历虚拟相机画幅分辨率内的像素点,将其对应射线与梁柱节点三维模型求交,即可获得三维模型的深度图和像素分类标签,如图5 所示,进而可以获得具有语义标签的梁柱节点点云。

图5 虚拟深度相机获得的深度图和语义标签Fig.5 Depth map and semantic labels obtained by the virtual depth camera

本文将深度采集误差引入到虚拟深度相机中。参考Intel Realsense LiDAR 深度摄像头L515的技术规格,深度测量相对真值的标准差与相机到目标对象的距离相关,为距离1 m 标准差2.5 mm至距离9 m 标准差15.5 mm。这里假设深度信息服从正态分布,深度信息的标准差根据相机到目标对象的距离按线性插值处理。

为获取完整的框架节点点云,布置多个虚拟相机测点。虚拟相机放置在框架节点下方的楼层平面上(距柱顶垂直距离取3 m),与框架节点中心保持一定水平距离,从多个正交方向观测框架节点,以模拟实际工况,如图6 所示。为了研究不同程度深度误差对点云语义分割的影响,虚拟相机与框架节点中心的水平距离分别取3 m、6 m 和9 m。生成点云的过程中没有考虑非深度误差引起的离群噪声点的影响,因为噪声点可以通过自动或人工的点云数据前处理消除。

图6 虚拟深度相机的观测位姿Fig.6 Poses of the virtual depth camera

将多视图获取的框架节点点云配准融合,将点云密度降采样至合适水平,经降采样并裁剪至合适范围后的数据集中各个模型对应点云的平均点数约为44.0×103。降采样后的点云利用近邻点计算每个点的法向量,以考虑深度误差对法向量的影响。

实际应用中点云的坐标系与BIM 模型的坐标系并不相同,在重力方向确定的条件下仍存在平面变换。其中,平移变换可以较为容易地通过归一化消除其对深度神经网络的影响,故这里考虑平面旋转变换。由于框架节点具有旋转对称性,将平面旋转角度的随机取值范围设为-45°~45°。

上述步骤基于Open3D[24]实现,完成后即可获得603 个框架节点BIM 模型对应的点云。

3.3 点云语义分割

将点云输入到PointNet++中进行语义分割,输入特征包括空间坐标(x,y,z)和法向量(nx,ny,nz)共6 个维度,不包括点云的RGB 颜色。对于中柱 、边柱和角柱节点数据集,每个模型对应点云的最小点数分别约为18.2×103、14.2×103和12.2×103,为了训练统一的深度学习模型并充分利用点云特征,所有训练输入的点云的点数均降采样至12.0×103。

603 个框架节点的点云数据按6∶4 划分为训练集和测试集,分别包含361 个和242 个数据。将训练集数据输入PointNet++,训练过程batch size取10,使用Adam 优化器,初始学习率为0.001,每训练20 epochs 学习率降至0.7 倍,共训练200 epochs。训练在计算服务器上开展,CPU 为Intel Xeon E5-2630 v3@2.40GHz,GPU 为NVIDIA GeForce GTX1080,内存为64 GB,系统为Ubuntu 20.04,训练200 epochs 约耗时3160 s。

将训练好的模型应用于测试集数据,与训练过程不同,测试评估时点云不进行下采样。模型预测点云的分类标签(梁、柱、板),结果精度以平均交并比mIoU (mean intersection over union)评价:

式中:n为分类标签的数量,此处n=3,对应梁、柱、板三种语义对象;yi为预测标签的集合;为真值标签的集合。

如3.2 节所述,为了研究不同程度深度误差对点云语义分割的影响,虚拟相机被放置在与框架节点中心的不同水平距离位置,不同工况下模型语义分割结果的mIoU 如表1 所示。可见,PointNet++可基本准确预测框架节点组成构件的类别标签,且相机水平距离引起的深度信息误差和法向量误差对于语义分割的准确性影响有限,但近距离获取点云仍可以获得更佳的精度,同时更准确的点云坐标也将为施工偏差度量提供更加准确的结果。

表1 不同相机水平距离下的mIoU 预测结果Table 1 Prediction mIoU for different camera horizontal distances

三种相机水平距离工况的预测标签和真值标签的混淆矩阵如图7 所示,可见PointNet++对于三种主要组成构件的预测精度较为均衡。

图7 不同相机水平距离下的预测结果混淆矩阵Fig.7 Prediction confusion matrix for different camera horizontal distances

以相机水平距离3 m 时为例,三类框架节点的三维模型、点云真值标签和点云预测标签如图8~图10 所示。从图中也可看出,模型预测的分类标签与真值标签基本一致,少量误差一般出现在构件连接位置,因为此处表面法向量变化相对剧烈,如图11 所示。

图8 中柱节点语义分割结果Fig.8 Semantic segmentation result of a center-column node

图9 边柱节点语义分割结果Fig.9 Semantic segmentation result of an edge-column node

图10 角柱节点语义分割结果Fig.10 Semantic segmentation result of a corner-column node

图11 预测误差位置的标签对比与法向量可视化Fig.11 Comparison of labels at where the errors occur and visualization of normal vectors

对比中柱节点、边柱节点和角柱节点的模型语义分割结果的mIoU 如表2 所示。可见三种类型节点的构件类型预测精度较为均衡,同时中柱节点精度相对较低而角柱节点相对较高,也进一步验证了预测误差一般出现在构件连接的法向量变化显著的位置。

3.4 对象化施工偏差比对

在获得了高精度的框架节点组成构件语义分割结果之后,通过将点云与BIM 模型进行配准,并将梁、柱、板的点云分别与其BIM 模型配对,即可开展对象化的构件施工偏差比对。由于PointNet++仅给出语义分割结果而未给出实例化分割结果,对于具有多根梁构件的框架节点,采用基于规则的方法沿节点对角线方向将梁的点云划分为若干梁构件实例,再与各梁构件BIM 模型按照距离最小的规则进行匹配。对象化的施工偏差比对通过计算点云到匹配的BIM 模型表面的最短距离开展。

图12 展示了一个框架节点的施工偏差比对结果,该节点的BIM 模型中一根梁为外边缘与柱边缘对齐,但施工点云为梁轴线与柱轴线对齐。图12(a)展示了对象化施工偏差的结果,图中三维模型颜色表示构件类型,点云颜色表示偏差程度,从图中可以方便地观察到由梁对齐方式不同而产生的偏差。图12(b)为非对象化的偏差比对结果,即没有进行语义分割和点云-BIM 匹配,直接计算所有点到BIM 模型表面的最短距离。由图可见,非对象化的方法使得构件连接处的点云与错误的构件BIM 模型比对偏差,从而影响了正确施工构件的误差数值,不利于工程人员的识别和分析。与此同时,对象化的施工偏差比对结果可以方便地与BIM 模型中构件的属性相关联,为相关测量数据和施工进度的数字化记录和智能化分析提供了关键基础。

图12 框架结点施工偏差比对Fig.12 Construction deviation comparison of a frame node

4 结论

随着深度相机、激光雷达等场景三维信息获取设备的发展,点云作为一种场景三维结构的描述方式,越来越多地应用于建筑施工领域。本文提出将深度学习技术应用于框架节点语义分割任务以开展对象化的施工偏差比对,并基于合成数据开展了试验研究,结论如下:

(1) 三维点云语义分割深度神经网络PointNet++在框架节点的梁、柱、板构件类型预测任务中取得了较高的精度,为对象化的施工偏差比对提供了数据基础。

(2) 对于点云的深度误差及其引起的法向量误差,本文采用的语义分割算法具有较好的健壮性,尽管有少量误差出现在构件连接位置的点云,但对于构件尺度的偏差值计算影响有限。

(3) 通过对施工点云语义分割再与BIM 模型按照构件进行匹配,实现了框架节点施工点云与BIM模型的对象化偏差比对,在施工偏差展示、测量数据数字化和施工进度管理方面具有良好的应用价值和发展潜力。

本文旨在通过模拟试验验证所提出的基于深度学习的对象化节点施工偏差比对方法的可行性与应用潜力,未来研究工作将致力于将方法迁移至实际工况,围绕更加复杂的点云噪声、节点形式等开展进一步研究。

猜你喜欢

对象化偏差标签
对象化的思想:人类生活中的信息
如何走出文章立意偏差的误区
两矩形上的全偏差
“非对象化”及其人本价值
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
论对象化及人之存在
标签化伤害了谁
关于均数与偏差
对京剧表演对象化思维的反思