基于图像分割与轨迹追踪的室内饰面施工进度智能评估方法
2024-04-11卢昱杰仲涛魏伟陈隽
卢昱杰 ,仲涛 ,魏伟 ,陈隽
(同济大学 a.土木工程学院;b.工程结构性能演化与控制教育部重点实验室;c.上海智能科学与技术研究院,上海 200092)
工程项目的进度监控有助于项目管理人员及时发现并校正进度偏差,直接影响项目的成本和经济效益[1-2]。传统的进度监控方式多为人工巡检与填表,耗费大量工作时间,且无法保障进度评估的时效性,难以满足现阶段工程项目高效管理的需求。室内施工流程繁杂,工序间关联性强,每一道工序的施工进程都将直接影响总体进度。此外,室内环境存在构件堆积、视线遮挡等问题,需要花费更多的时间和人力用于进度管理。将AI 技术应用于室内进度监控,可以非人工监督方式实时获取进度信息,并动态更新与集成至BIM 模型,为施工数字孪生奠定基础。同时,还可通过动态测量施工量用于效率计算,满足日益重要的施工精细化管理要求,对提升进度管理效率意义重大[3]。室内施工包含多道工序,瓷砖铺贴以腻子、抹灰施工为基础,对施工技术要求很高,最后一道工序的施工进程对总进度监控影响重大。因此,笔者以瓷砖铺贴为例针对室内施工的智能化监控展开研究。
目前,施工进度自动化监控方式主要包括3 种方式:1)基于传感器布设的进度管理;2)基于点云三维重建的进度管理;3)基于图像处理与分析的进度管理。第1 种方式通过绑定施工构件与相应的二维码或RFID 标签实现构件级别的进度追踪,大大降低了进度管理人员的工作量[4-5]。但在室内环境中构件数量种类繁多,人为设置标签较为耗时且存在丢失、遗漏的风险。第2 种方式则是通过倾斜摄影或激光扫描等方式重建现场的三维模型,并从三维模型中获取更直观更丰富的场景信息[6-7],但由于室内场景复杂、多遮挡的特点,点云数据获取不便,且处理过程耗时过长,对于室内进度监控而言时效性过差。相比之下,近年来,基于计算机视觉(CV)[8-9]的施工进度监控方法得到广泛应用,其数据获取便利、信息处理速度快等[10],能够从图像中快速提取丰富的室内场景信息,时效性强且应用成本较低,将其应用于室内进度监控具有独特优势。现阶段基于计算机视觉的室内施工进度监控方法主要包括定性评价和定量计算两种,定性进度评价主要是通过提取图像中对象的材料、纹理等特征[11-13]或通过检测工人活动[14-15]来推断施工所处阶段;定量进度计算则主要通过计算施工完成面积等方式确定进度完成比例[12]。例如Deng 等[16]通过边缘检测的方法确定地面已铺贴瓷砖部分的边界线,并通过提前标定的方式校正图片从而准确计算出瓷砖铺贴面积与进度。
然而,现阶段基于图像识别的室内进度定量化计算方法仅能通过安装固定摄像头监控有限区域的施工进度[17],无法通过一套设备实现整个施工层的大范围施工进度监控,且无法同时获取墙面和地面在内的整体铺贴进度。笔者以室内瓷砖铺贴场景为例,提出了一套室内连续空间施工进度智能评估框架,该框架基于语义分割与图像轨迹追踪算法自动获取墙面和地面的整体铺贴进度,最终在BIM模型中实现进度信息集成与可视化。
1 室内施工进度自动化识别框架
1.1 整体框架
室内连续空间施工进度智能评估框架(如图1所示)主要分为3 个步骤:1)图像预处理,即对获取的墙面与地面的图像进行自动畸变校正;2)图像分割与进度计算,即基于改进的Mask R-CNN 算法获取已铺贴与未铺贴部分面积,并计算进度完成百分比;3)进度映射与可视化,将上述获取的进度结果映射至BIM 模型,实现进度可视化。
图1 技术路线Fig.1 Overall framework
1.2 数据预处理
实际墙面和地面多为矩形平面,但由于拍摄角度及镜头畸变等因素影响,相机拍摄的图片存在透视畸变,造成图像处理和进度计算误差。因此,基于Canny 算子与Hough 变换提出一种图像校正方法,自动消除图像畸变。
该方法主要分为3 个步骤:1)直线检测。基于Canny 算子和Hough 变换算法得到图像中的特征边缘直线,如图2(b)所示。2)直线筛选与角点计算。以水平线为0°,先根据特征直线的角度将其分为近似竖直线(角度为60°~120°)与近似水平线(角度为-30°~30°);取整幅图像4 条边界线的中点,分别计算近似竖直线与左右边中点的距离以及近似水平线与上下边中点的距离,此时,距4 边中点最近的4条直线即为地面(或墙面)的边界线,其余直线均是边界线内部的特征线;最后,求出边界线的交点作为角点,如图2(c)所示。3)图像畸变校正。第1 步,获得校正后图像的角点坐标,即首先设定图2(c)中左上角点的校正后坐标为(0,0),由于校正后地面(墙面)为矩形,将矩形的长(l)设定为原图中四边形上下两条边长度的平均值,宽(w)为四边形左右两条边长度的平均值,即可得到右上、左下、右下角点的校正后坐标为(l,0)、(0,w)、(l,w);第2 步,基于上述得到的4 组对应角点坐标,由RANSAC 算法获取图像变换的参数矩阵F,从而将变形图像校正为正视图像。需要明确的是:针对地面面积过大,相机视野覆盖不全的情况,算法在地面中间位置选定某一参照点,将其划分为两个矩形独立拍摄,最终合并计算施工进度。
图2 图像畸变校正算法Fig.2 Image distortion correction algorithm
1.3 图像分割与进度获取
在研究场景中,存在3 类主要对象,即瓷砖、混凝土(墙面未铺贴瓷砖部分所用材料)、砂浆(地面未铺贴瓷砖部分所用材料)。应用图像分割算法对3 类识别对象进行分割,通过掩码计算来获取瓷砖铺贴进度。常用的分割算法包括DeepMask[18]、YOLACT[19]、Mask R-CNN[20]等。前两种算法并不适用于重叠对象的分割,相较之下,Mask R-CNN 算法对有重叠、边界不明确的对象分割效果较好[21]。由于在研究场景中,地面上常有砂浆桶、锤子等物体遮挡、重叠,且瓷砖边界处常有散落的水泥砂浆使得边界不清晰,因此,选用Mask R-CNN 算法对墙面及地面的图像进行实例分割。
Mask R-CNN 算法由FPN (Feature Pyramid Networks) 提取图像特征,并由RPN (Region Proposal Networks)结合图像特征提出多个RoI(Regions of Interest)。在此基础上,并行完成3 个子任务,即区域分类、边界框回归和像素分割,分别得到实例的类别、准确的边界框及掩码,最终由不同颜色的掩码表征不同的实例对象(如图3 所示)。同时,此算法创新性地提出ROI Align 连接层,应用线性插值法来减少前向传播过程中的误差,并根据式(1)来进行反向传播,提高了掩码预测的准确性。
图3 Mask R-CNN 网络结构Fig.3 Mask R-CNN structure
式中:L为损失函数;xi为在ROI Align 计算前的原特征图上的像素点;yrj为经ROI Align 计算后第r个候选区域的第j个点,与yrj对应的在原特征图上的点记为xrj;Δh和Δw为xi与xrj横纵坐标的差值。当xrj与xi在原特征图上的欧式距离小于1,yrj的误差将会反向传播给xi。
基于图像分割的结果,通过掩码计算来获得施工进度百分比(如式(2)所示),每面墙或每块地面的瓷砖铺贴进度百分比为“已完成铺贴的瓷砖面积/墙面或地面面积”。在获取到每面墙的施工进度后,可通过“某施工层已完成铺贴的瓷砖总面积/某施工层墙面或地面面积”来计算某施工层墙面或地面的进度完成百分比。
式中:P表示整施工层的瓷砖铺贴进度;i为施工层内房间序号;S为实际面积;p为像素数(像素面积);右上角标表示对象类别。
1.4 轨迹追踪与BIM 映射
依照图4 所示步骤确定拍摄对象和对应的BIM模型构件之间的映射关系,从而将施工进度结果集成至BIM 模型:1)相机轨迹追踪。将相机的拍摄路径起点设定为BIM 模型的原点坐标,手持相机持续拍摄墙面与地面。在此过程中基于Positional tracking 算法(PT 算法)来自动提取相机在移动路径上的坐标信息(x1,y1,z1)与角度信息(α,β,θ);2)区分墙面与地面对象。根据俯仰角β 的大小来区分拍摄对象为墙面还是地面,当-30°≤β≤90°时表示相机平视,拍摄墙面;当-90°≤β≤-30°时表示相机完全俯视,拍摄地面;3)二维图片的三维模型映射。当拍摄墙面对象时,采用俯视平面坐标系,墙构件端点坐标和构件ID 可在BIM 模型中通过Revit API获取。根据已知的相机平面坐标(x1,y1)与水平角θ能够得到准确的平面视线方程,并求出该方程与墙线方程的交点。距离相机位置最近的交点所在的墙即为相机拍摄的构件,同时可以确定该构件在BIM 模型中的ID。当拍摄地面对象时,采用空间坐标系,由已知的相机坐标(x1,y1,z1)与角度信息(α,β,θ)等参数可以得到准确的空间视线方程,此视线将与地面相交并可求得交点坐标,由于在BIM 模型中每个房间地面的边界信息和ID 已知(通过Revit API 获取),因此,交点所在的构件即为相机所拍摄的地面,同时可以确定其在BIM 模型中的ID。
图4 数据集成与进度更新Fig.4 Data integration and progress update
在获得所拍摄对象的施工进度和构件ID 后,应用Revit API 插件在BIM 模型中通过构件ID 进行遍历,找到唯一的墙面或地面构件并导入进度信息。在构件的属性栏中将自动显示进度完成百分比,同时在三维视图中将根据构件进度情况给构件外观赋予不同颜色进行区分。
2 Mask R-CNN 算法改进与提升
在深度神经网络算法中,超参数和损失函数是影响算法效果的两个重要因素,其中,超参数直接影响算法的训练收敛过程,对模型性能有直接影响,而损失函数则决定了模型优化的方向,因为优化目标就是减小损失。因此,为提升模型分割精度,本研究针对本场景下数据特征单一、类别不平衡的特点从超参数优化和损失函数优化这两方面对Mask RCNN 算法进行了如下改进与提升,如图5 所示。
图5 算法改进试验流程图Fig.5 Flow chart of algorithm improvement
2.1 超参数优化
由于数据集的数据量不足、特征单一,在未经超参优化的情况下易发生难以收敛或过拟合问题,因此,对于算法的收敛性能要求更高。分割算法常见的超参优化器包括SGD、Adagrad 和Adam 等。Mask R-CNN 默认采用SGD 优化器,其在数据特征单一的情况下易使得参数收敛到近似的局部极小值[22]且收敛速度偏慢,使得模型难以得到有效更新。Adagrad 优化器相较于SGD 优化器在参数空间平缓的方向上梯度下降更快,不易在局部收敛,在众多小数据量的数据集上表现更优[23],这恰好契合研究的需求。但Adagrad 优化器可能使得学习率下降过快,训练后期无法更新。而相比于Adagrad 优化器,Adam 优化器采用更优的自适应步长的优化策略,在训练后期仍保持较好的更新效率,这大大提高了算法收敛的速度[24]。
因此,应用3 种优化器分别进行试验,并以Mask R-CNN 算法的默认参数实验为基准实验(baseline),结果显示(见表1),Adagrad 优化器在学习率为2.5×10-4时,模型表现低于基准实验,原因为后期学习率过小,模型参数无法进一步更新,导致模型表现不佳。对于Adam 优化器而言,在学习率为2.5×10-3时,由于学习率过大,训练前期产生梯度爆炸现象,算法无法收敛;而在学习率为2.5×10-4时,模型的收敛速度和收敛效果得到了良好平衡,最终在试验6 中达到mAP75为97.7%的分割精度,相较于基准提高了3.1%。
表1 Mask R-CNN 算法提升效果Table 1 The improvement of Mask R-CNN algorithm
2.2 损失函数优化
Mask R-CNN 算法的损失函数由3 部分组成,即分类任务的损失值Loss_cls、边界框回归任务的损失值Loss_bbox、掩码分割任务的损失值Loss_mask。由于研究通过掩码计算得到具体铺贴进度,掩码分割任务的损失函数形式是影响分割精度和进度计算的关键因素。当前实例分割任务中,常用的损失函数形式包括CE Loss(如式(3))、IoU Loss(如式(4))、Dice Loss(如式(5))等。
式中:N为图像中像素数;m为图像中的预测类别数;yij分别为第i个像素属于第j个类别的真实值和预测概率。
Mask R-CNN 默认采用CE Loss 作为损失函数,其平等考虑每个像素点的分割效果[25],适用于识别对象尺寸适中,且不同类别大小一致的情况。而研究数据集中瓷砖占整张图片的像素比例较大,相比于瓷砖的像素点总数,边界处像素点数量过少,对损失函数的影响过小,容易导致边界分割精度降低。同时,相对于瓷砖,混凝土(砂浆)占整张图片的像素比较小,存在类别不平衡的问题,影响整体分割精度。IoU Loss 充分考虑到预测掩码和真实掩码间的重叠度,放大了对象边缘像素点的影响,理论上将使得边界回归更准确[26]。Dice Loss 除考虑重叠度外,更进一步针对类别不平衡问题,加强了对图片数量少的困难样本(研究中为混凝土与砂浆)的惩罚力度,使得算法更侧重于对困难样本的训练,从而使得整体精度得以平衡与提升[27]。
因此,分别采用IoU Loss 和Dice Loss 进行试验(如表1 所示),然而试验7 模型表现不佳,原因为在训练前期预测边界框准确度低,与真实标签的重叠较小甚至无重叠,这使得模型参数无法更新[26]。试验8 的mAP75达到了98.6%,相较于基准模型提升了4%,取得最高精度。
3 案例研究与算法验证
3.1 案例介绍与数据收集
将上述自动化进度评估框架在上海闵行区浦江某建筑工地(如图6)进行了实地测试与应用。此项目为高层住宅项目,其中,12 号楼为16 层框架剪力墙结构,现场测试时9~16 层正处于瓷砖铺贴阶段,因此,对12 号楼第10 层整层的瓷砖铺贴进度进行了评估。
图6 工地现场实景图与BIM 模型Fig.6 Construction site and BIM model
采用的硬件设备为Zed 2 双目深度传感相机(如图7),相较于市面上其余深度相机,该相机的精度较高且支持算法的二次开发。此相机感光尺寸为175 mm×30 mm×33 mm (6.89"×1.18"×1.3"),深度范围为0.2~20 m,景深场最大尺寸为110°(H)×70°(V)×120°(D),契合数据收集的硬件需求。
图7 Zed 2 相机及相关参数Fig.7 Zed 2 camera and related parameters
最终,收集到912 张图像,均用labelme 软件进行标注,并按照7:2:1 比例将数据随机划分为训练集(638 张)、验证集(184 张)和测试集(90 张)。
3.2 Mask R-CNN 算法验证
采用一块RTX3090 显卡进行训练,深度学习基本环境配置为 cuda11.1+cudnn8.0+pytorchgpu1.8.0+numpy1.21.0。Mask R-CNN 算法应用了在MS-COCO 数据集上预训练的Resnet-101 做特征提取网络,基本参数设置如下:采用Adam 优化器,恒定学习率为2.5e-4,batch size 为4,共训练100epoch,其余设置均采用默认参数[20]。
Mask R-CNN 算法应用效果如图8 所示。其中,损失函数变化曲线和准确率变化曲线表征了模型的收敛效果与总体准确率,其中,在第3 000 次迭代(iter)后,损失函数曲线波动趋于稳定,最终稳定在0.1 左右,并且在验证集上的最终准确率达到了99.5%。同时,采用实例分割任务常用的评价指标mean Average Precision (mAP)来表征模型在各类别对象上的平均检测性能。在实例分割任务中,当实例预测掩码与其真实掩码的交并比IoU 大于阈值时(0.5 与0.75 为图像分割常用的IoU 阈值),认为该实例为正确样本,并以此计算整个测试集的精确度。最终模型在90 张测试集的mAP50、mAP75分别达到99.5%、98.6%。
图8 Mask R-CNN 算法结果Fig.8 The results of Mask R-CNN algorithm
3.3 PT 算法验证
通过设置校准点的方式来验证PT 算法的准确度。如图9 所示,测试者手持Zed 2 相机从原点出发,依次经过3 个校准点,并最终回到原点。此3 个校准点在路径长度上均匀分布,且均位于门框中心或房间中心,因此,可获得其在BIM 坐标系下的实际坐标。同时,基于PT 算法求,3 个点的预测坐标。通过计算实际坐标和预测坐标的相对距离,以及起点和终点坐标的相对距离,可知实时预测路径上平面坐标的最大偏差为60.82 mm。由于在室内场景下,目标对象即墙面和地面的长宽尺寸均大于3 m,最大平面坐标偏差仅占其2%,可忽略不计。
图9 PT 算法效果验证Fig.9 Validation of PT algorithm
3.4 进度评估与BIM 信息集成
基于室内连续空间施工进度智能评估框架,对12 号楼第10 层整层的瓷砖铺贴进度进行评估。
1)图像分割结果可视化
针对墙面、地面两类对象,表2 展示了原始图像、畸变校正、图像分割、进度计算4 个过程的可视化结果以及图像分割的真实标签(ground truth)。其中,两墙面的铺贴进度分别为69%、40%(铺贴施工中),两地面的铺贴进度分别为81%、30%(施工铺贴中)。
表2 铺贴进度评估可视化结果Table 2 Visual results of paving progress assessment
2)BIM 模型信息集成与可视化
该项目仅有卫生间的墙面和地面,厨房墙面与阳台地面需要瓷砖铺贴,经统计第10 层共有27 面墙和50 块地面参与计算。应用提出的框架,该项目第10 层墙面瓷砖铺贴总面积为360.47 m2,已完成铺贴面积为313.61 m2,整层施工进度为87%。地面瓷砖铺贴总面积为109.10 m2,已完成铺贴面积为80.73 m2,整层施工进度为74%。详细的构件属性及拍摄参数如表3 所示。同时,在BIM 模型通过颜色编码对第10 层的瓷砖铺贴进行了可视化进度展示(如图10 所示),其中,未施工、施工中、施工完的对象分别以绿、黄、红三色表示。同时,在构件属性栏中可以获取每个构件的进度完成信息。
图10 BIM 模型进度可视化结果Fig.10 Progress visualization in BIM model
4 结论
施工进度监控是工程项目管理的重要组成部分,传统的施工进度管理人为主观性强,自动化程度低。室内施工由于复杂的构件堆积和视线遮挡,其进度管理将耗费更多的时间和成本。以室内墙面地面瓷砖铺贴为例,提出一套室内连续空间施工进度智能评估框架。基于改进的Mask R-CNN 算法自动获取施工进度百分比,并基于图像轨迹追踪算法将进度信息集成至BIM 模型,为施工数字孪生奠定基础。该框架在上海某高层建筑项目中进行了实地测试与应用,实现图像高精度分割(mAP 为98.6%),验证了框架的可行性。相对于现有的室内饰面施工进度评估框架[17]仅能通过安装固定摄像头监控相机所在房间的地面铺贴进度。该框架可通过一套可穿戴设备实现整个施工层的大范围施工进度监控,且同时获取墙面和地面在内的整体铺贴进度,在进度监控面积和应用范围方面得以拓展和提升。该框架不仅适用于室内瓷砖铺贴,针对抹灰、刷涂等室内装修工程同样具有普适性。本文具备如下两点创新性贡献:
1)提出了一套连续空间室内瓷砖铺贴进度自动化评估框架。通过图片畸变校正、瓷砖像素分割与掩码计算,自动获取量化的进度信息并更新集成到BIM 模型。
2)提出了一种基于图像轨迹追踪技术的室内移动拍摄方法,用于自动区分与同步计算水平(地面)与竖向(墙面)瓷砖铺贴的进度,实现整个施工层的大范围施工进度监控。
研究仍存在以下局限性:
1)数据集包含瓷砖仅包含白色瓷砖,在未来工作中需要扩大数据集的瓷砖类别,并建立抹灰、刷涂等多类型施工工序数据集以提高框架的迁移性。
2)图像采集目前采用可穿戴设备巡检,未来可在综合考虑技术成熟度与成本问题的基础上,结合室内导航设备实现自动化更高的进度巡检。