亓强强,魏世桥,张 煜,王东魁
(1.武汉理工大学 物流工程学院,武汉430063;2.中国交通信息科技集团有限公司,武汉430063)
准确有效地获取现场施工活动中的进度偏差对项目建设至关重要。进度偏差会显著增加项目建设成本[1]。为调控进度偏差,要求具备一种系统全面的施工进度监视系统,以便及时识别并反馈现场实际进度和预订计划之间的差异。然而,当前的施工进度监视主要由人工现场检验完成,存在检验工作耗时费力、检验结果过于依赖检验员主观经验等问题[2]。当前,建筑行业迫切需要一种自动化的施工进度检测方法以提高进度监视效率和准确率。
当前,施工进度监视自动化研究主要包括基于二维图像的进度监视方法和基于三维点云的进度监视方法。文献[3]从施工现场的固定视角采集延时图片,并在4D BIM(3D BIM+计划进度)模型中获取同一视角的蒙版图像,最后将两组图片进行比较从而获得现场进度。利用这种方法,文献[4]成功实现了桥梁工程的自动化进度监视。基于图像的进度监视方法需要预先在场景架设相机并定期校准相机位置, 不适用于大型项目。近年来, 随着SFM(structure from motion,运动恢复结构)等三维重建技术的快速发展,基于三维点云的进度监视方法成为主流研究趋势[5]。文献[6]采用SFM 技术生成现场建筑点云,通过现场布置的控制点恢复现场点云的尺度和基准平面,并利用点云软件将现场点云生成CAD 模型,将其与计划BIM 模型进行比较以判断现场施工进度。文献[7] 利用SFM-MVS (multi view stero,多视图立体匹配)技术生成稠密的现场建筑点云,采用手动N 点配准方法实现现场建筑点云和计划BIM 点云的对齐, 并对两点云进行几何占有判断,以得到现场施工进度。
研究表明,较于二维图像,利用三维点云数据可以获得更为精确、可视化程度更高的现场施工进度[8]。然而,就当前的基于三维点云的施工进度自动化监视方法而言,其自动化程度、鲁棒性和系统性仍然不足,存在较大提升空间。为此,本文利用三维重建技术、点云自动配准技术、点云至图像映射技术以及BIM 等相关技术,构建了一个施工进度自动化监视检测方法。该方法以三维点云重构现场在建建筑及其BIM 计划模型;利用点云自动配准实现现场建筑点云和计划BIM 点云空间一致;最后,通过点云空间占有判断实现体素级别的施工进度感知。该方法贡献在于:①具有较高的自动化水平;②考虑了现场点云表征现场建筑不完整问题,增强了其鲁棒性;③具备较强的管道特性,便于后续功能拓展。
拟定的施工进度自动化监视方法由点云获取、点云配准和进度感知3 个模块组成。其中,点云获取模块为点云配准模块和进度感知模块提供图像和点云数据支持;点云配准模块为进度感知模块提供空间一致性基础;进度感知模块负责计算并输出进度感知结果。各模块的技术实现和数据传递见图1。
图1 系统框架Fig.1 System framework
在点云获取模块,以获取点云的完整度和精度为主要考虑因素,采用张正友标定法和基于序列图像的三维重建技术获得现场建筑点云;采用基于STL面片的点云生成方法获取计划BIM 点云。在点云配准模块,考虑现场建筑点云和BIM 计划点云的配准性质,采用由粗到精的两阶段配准策略实现两点云配准。在进度感知模块,考虑现场建筑点云表征现场建筑不完整,即可能存在点云遮挡和点云孔洞情况,将点云遮挡推理算法、点云孔洞推理算法和八叉树算法有机结合,实现体素级别的施工进度感知。
获取现场建筑点云和计划BIM 点云是实现施工进度自动化监视的首要举措, 其获取点云的完整度和精度对后续点云配准和进度感知产生重要影响。就点云获取问题,拟定如下获取方案,见图2。
图2 点云获取方案Fig.2 Point cloud acquisition scheme
2.1.1 现场建筑点云获取
首先,利用张正友标定法获取相机畸变和相机内参;然后,将相机畸变参数和采集的现场在建建筑图片输入至SFM 稀疏重建算法获得现场建筑稀疏点云和相机外参;最后,将获取的稀疏点云、现场在建建筑图片以及相机内外参输入至MVS 稠密重建算法,获得现场建筑稠密点云。近年,开源社区贡献了众多SFM-MVS 三维重建方案。不同的三维重建方案有其独特的优势和特性,以高完整度和高精度为指标,选定ColMap[9]开源框架实现现场在建建筑的点云数据表征。
2.1.2 计划BIM 点云获取
首先,将BIM 的RVT 格式实体转换为STL 格式;然后,利用基于STL 面片的点云生成方法实现计划BIM 模型的点云表征。该方法主要策略是: 以STL三角面片面积大小为指标,随机等概率地选择一个三角面片;在选定三角面片的基础上,随机等概率地生成一个离散点;通过循环上述操作,从STL 文件中生成既定规模的点云。
现场建筑点云由三维重建算法生成,计划BIM点云由STL 表面采样算法生成。两点云存在于不同的空间坐标系,对其进行空间配准是实现施工进度自动化监视的必要前提。就点云配准问题,设计如下配准流程,见图3。
图3 点云配准流程Fig.3 Point cloud registration process
2.2.1 点云预处理
原始点云未经处理就直接应用配准算法会导致配准结果失真和计算效率低下。采用双边滤波算法对原始点云进行去噪滤波处理以保证数据的准确性;采用非均匀网格法对原始点云进行数据精简处理以加快配准算法求解效率。
2.2.2 点云尺度粗估计
考虑现场建筑点云和计划BIM 点云的尺度不一,提出基于OBB(orientes bounding box)包围盒的点云尺度估计算法以保持两点云尺度一致。算法具体策略是:首先,利用主成分分析法,计算两点云的主轴;其次,将两点云投影在主轴三个平面上,绘制OBB 包围盒;最后,以现场建筑点云和计划BIM 点云OBB 包围盒体积比的立方根作为两点云尺度估计值。
2.2.3 点云粗配准
当前,基于特征的粗配准算法已成为主流的粗配准方法。基于特征的粗配准算法通过对目标点云和源点云进行特征提取、特征描述、特征匹配、误匹配删除这一管道流程实现点云粗配准。组合ISS(intrinsic shape signnatures,内在形状签名)特征提取、FPFH(fast point feature histogram,快速特征点直方图)特征描述、K-d 树,巴氏距离匹配以及RANSC(随机采样一致性)误配删除技术实现粗配准。相关技术细节可参考文献[10],这里不做赘述。
2.2.4 点云精配准
由于点云形成机制不同,现场建筑点云和计划BIM 点云存在尺度不一、局部配准、缺乏实点对应等特性。考虑此特性,对传统ICP(iterative closet point,最近点迭代算法)[11]进行改进,构建一个Scale-ICP 精配准算法。该算法将三个变量引入至ICP 算法: ①用于判断是否是外点的0~1 逻辑变量ω,引入该变量可以解决点云局部配准问题;②用于衡量对应点对应关系可靠性的介于0~1 之间的连续变量ρ,引入该变量可以解决缺乏实点对应问题;③尺度因子s, 引入该变量可以解决点云尺度不一问题。算法目标函数如下:
经配准后,现场建筑点云和计划BIM 点云空间一致。对现场点云和计划点云进行空间占有比对即可得到两点云的空间差异。以点云空间差异表征施工进度是一个易于理解的方法。然而,在实际应用中,由于点云遮挡和点云孔洞等因素,现场建筑点云往往不能完整地表征现场在建建筑,这导致上述方法过于理想化。就此问题,提出考虑现场建筑表征不完整的进度感知方法。该方法由八叉树算法、点云遮挡推理算法、点云孔洞推理算法有机组合。其中, 八叉树算法将配准点云离散为若干体素,通过检验体素包含的点云种类以判断施工进度;点云遮挡负责解决由拍摄角度受限导致的现场图片表征现场建筑不完整问题;点云孔洞推理算法负责解决由现场阴影和光照导致的现场点云表征现场图片不完备问题。算法具体流程见图4。
图4 进度感知算法流程Fig.4 Flow chart of perception algorithm
步骤1利用八叉树算法将配准后的点云进行体素化处理,并计算体素可见性顺序。体素可见性顺序衡量了该体素被遮挡的可能性大小。具体计算方法可参考文献[13]。
步骤2按照体素可见性顺序,遍历体素。若该体素其既包含现场建筑点云又包含计划BIM 点云,则标记该体素为进度正常; 若其仅包含现场点云,则标记该体素为进度超前。
步骤3若该体素仅包含计划点云, 则进一步利用点云遮挡推理算法判断其是否被遮挡。该方法细节参见文献[13]。若其被遮挡,则标记该体素为进度遮挡。
步骤4若该体素未被推理为进度遮挡, 则进一步利用点云孔洞推理算法判断该体素是否为孔洞。该方法细节参见文献[14]。若该体素被推理为孔洞,则判定其为进度滞后。否则,标记该体素为进度正常。
步骤5继续遍历下一体素,重复步骤2 至步骤4,直至所有体素均被标记。根据体素标记信息,对进度感知结果进行点云着色可视化处理,算法结束。
搭建如图5(a)和图5(b)所示的现场建筑及其计划BIM 模型。在上述场景上采集实验数据,验证本文算法可行性和有效性。
图5 现场建筑及其计划BIM 模型Fig.5 As built building and as planed BIM
首先,多角度拍摄现场在建建筑,共采集42 张现场在建建筑图片;然后,利用张正友标定法对相机进行内参和畸变标定;最后,将采集的图片和标定的相机内参和畸变参数输入至ColMap,依次完成SFM 稀疏重建和MVS 稠密重建。重建的现场稠密点云见图6(a)。将BIM 模型以STL 标准格式导出,利用所提基于STL 面片随机采样的点云生成方法进行点云采样处理,采样结果见图6(b)。
图6 现场建筑点云和计划BIM 点云Fig.6 Point cloud of as built building and as planed BIM
首先, 对于直接观测到的离群点及现场环境,利用点云处理软件进行手动删除,对于无法直接观测的噪声,采用双边滤波进行滤波处理;随后,采用非均匀网格法对现场点云进行数据缩减。经上述预处理操作后的现场建筑点云如图7(a)所示。
图7 点云预处理和尺度估计Fig.7 Point cloud preprocessing and scale estimation
实现点云预处理后,利用所提云尺度估计算法估计并还原现场点云尺度。图7(b)给出了现场建筑点云和计划BIM 点云的OBB 包围盒计算结果,将两点云OBB 包围盒体积比的立方根映射为两点云尺度。利用估计的尺度,对现场建筑点云进行尺度恢复。最后,依靠所组建的粗配准算法对现场建筑点云和计划BIM 点云进行初步配准。配准结果见图8。其中,图8(a)为两点云配准结果;图8(b)为误差统计图;需要指出,因缺乏真值,在此以点云离散点最近距离衡量配准误差;图8(c)为误差统计直方图。可以看出,经过粗配准后,两点云已大致对齐,但仍存在一定的错位。将粗配准结果作为精配准的初始参数,利用所提Scale-ICP 算法完成现场建筑点云和计划BIM 点云的精配准。配准结果见图9。从图中可见。精配准结果较粗配准有了显著改善,两点云的错位得到有效控制。经统计,平均配准误差由粗配准的6.28 减小至4.23。
图8 点云粗配准Fig.8 Coarse registration of point clouds
图9 点云精配准Fig.9 Fine registration of point clouds
在实现点云配准的基础上,利用所提进度感知算法感知现场实际进度。首先将配准后的现场建筑点云和计划BIM 点云合并,利用八叉树算法对合并点云进行体素化处理,体素划分结果见图10(a);其次,计算体素可见性顺序,计算结果见图10(b),按照由高到低的体素可见性顺序对每个体素进行进度标记;最后,根据体素标签信息,对进度感知结果进行着色可视化处理,见图11。
图10 体素划分及其顺序可见性Fig.10 Voxel establishment and its sequential visibility sorting
图11 进度感知结果可视化Fig.11 Visualization of progress perception results
可以看出,所提进度感知算法可以成功完成进度感知任务。以体素为计量单位,各建筑组件进度统计情况见表1。
表1 各建筑组件进度统计Tab.1 Progress statistics of building components
从整体看,与计划进度相比,当前进度正常的已建建筑占比为64.71%, 进度超前占比为6.38%,进度滞后占比为8.87%, 进度遮挡占比为20.05%。算法感知进度与现场实际情况基本符合。具体地,各建筑组件的进度情况可概述为以下几点:
(1)地基的建设进度正常率为57.25%,进度遮挡率为34.23%。从图11仰视图可以看出,遮挡部分主要集中在地基与地面接触部分,由于遮挡,未能采集到该部分图像数据, 该部分被推理为进度遮挡。算法感知进度与实际情况基本符合。
(2)绝大多数构造柱的建设进度和预期计划保持一致,进度正常率达到90%以上。算法感知进度与实际情况基本符合。特别地,柱_5 的检测结果与现场实际情况存在较大出入,算法得到的进度超前率为65.30%。而从现场实际看,所有构造柱的建设进度均与预期计划保持一致。经分析,此错误检测主要实验场景建造误差和配准误差导致。
(3)墙_1、墙_2、墙_3 和墙_4 的建设进度和预期计划保持一致,进度正常率达到90%左右。墙_5 进度比计划滞后79.65%,墙_6 进度比计划超前98.22%。算法感知进度与实际情况基本相符。
所提方法可以有效完成施工进度监视任务,能够实现一定精度水平的进度正常、进度超前、进度滞后以及进度遮挡等四类进度检测;在实现施工进度监视功能的基础上,所提方法具有高度的自动化水平,除数据输入以及必要的数据预处理外,进度监视的各个环节均为算法自动化处理。
本文进度监视方法以3D 点云为主, 对现场施工图像利用不充分。后续,拟利用计算机视觉、深度学习等技术,从现场图像提取建筑语义信息,并将其与3D 点云融合,以此实现更为精确、鲁棒的施工进度监视。