刘界鹏,崔 娜,周绪红,李东声,程国忠,曾 焱,曹宇星
(1.重庆大学 土木工程学院,重庆 400045;2.重庆大学 山地城镇建设与新技术教育部重点实验室,重庆 400045;3.深圳大学 土木与交通工程学院,广东 深圳 518060)
在混凝土结构工程竣工之前,一般需要对房屋进行尺寸质量检测以保证建造误差位于允许范围之内。混凝土表面的平整度和垂直度检测是保证混凝土结构能够正常工作的必不可少的检测步骤之一。表面的平整度偏差过大不仅会影响美观,而且会增加后续施工难度。墙体的垂直度有较大偏差会改变墙体的受力状态,带来安全隐患。
目前,中国的表面平整度和垂直度检测主要依赖于人工测量。根据国家标准《建筑地面工程施工质量验收规范》(GB 50209—2010)[1]和《混凝土结构工程施工质量验收规范》(GB 50204—2015)[2],表面平整度的检测方法是使用2 m靠尺和塞尺进行人工测量,即将2 m靠尺放置于待测平面,用楔形塞尺检查靠尺与平面之间的最大空隙间距;构件垂直度的测量可使用经纬仪、吊线等测量工具进行人工量测。这些人工测量方法只能进行局部测量,无法对被测表面整体的平整度和垂直度做出评价。更重要的是,由于人工测量方法劳动力消耗大,测量结果存在主观误差[3],在一个工程中一般难以实现对所有混凝土构件的检测,因此规范中仅规定采用抽样检测方式对不少于总数10%的构件进行平整度和垂直度检测,这使得通过验收检测的竣工结构仍可能存在质量不合格的构件。因此,有必要提出一种全面且智能化的方法来提高检测效率,改善目前的抽样检测现状。
三维激光扫描技术基于激光测距原理,可快速获取扫描环境内的全景三维点云数据,具有测量精度高、数据采集效率高、操作简单等优势。目前已有学者利用三维激光扫描技术进行了混凝土表面的平整度检测研究[3-5],但现有研究对房屋点云数据的预处理需人为干预,研究对象局限于单个表面,且不涉及对不同属性的混凝土结构表面进行针对性检测,因此无法应用于整个房屋的尺寸质量检测。
为了完成房屋平整度和垂直度的智能化检测,本文基于三维激光扫描技术提出了一种全流程的房屋尺寸质量检测方法,包括基于标靶纸的点云数据配准、点云数据轻量化、房屋逆向建模以及尺寸质量检测3个方面,检测流程见图1。针对整个房屋的点云数据,提出了集点云数据分割、表面重建、尺寸质量检测于一体的综合算法。研究成果以期取代人工测量方法实现房屋尺寸质量的智能化检测。
图1 房屋尺寸质量检测流程
三维激光扫描仪只能获取位于当前视图内被扫描对象的几何及颜色数据,若要得到被测物体的完整点云数据需从不同的角度(不同的站点)进行多次扫描。由于不同站点扫描的点云数据位于不同的坐标系,因此需要将各站点云数据进行配准,得到统一坐标系的整体点云数据。在现有的建筑构(部)件尺寸质量检测相关研究中,各站点云数据之间的配准是基于点云处理软件[6]或被测物体的特征完成的[7]。然而,第一种方法降低了质量检测的自动化程度,第二种方法的通用性较差,难以推广到一般情况。因此,本文采用一种基于标靶纸的配准方法,可实现多站点云数据的自动配准,而且能够适应不同的场景,有较强的通用性。该方法首先利用点云数据的阵列信息按照颜色数据生成全景图,然后从全景图中提取标靶纸中心,利用两站点云数据中的公共标靶纸中心进行配准。
三维激光扫描仪获取的点云数据有2种,包括无序点云和有序点云。无序点云仅包含数据点的三维坐标、颜色等信息,而有序点云还包含数据点的阵列信息。因此,可以利用有序点云的阵列信息将点云数据按照其颜色信息映射为全景图。图2(a)为使用三维激光扫描仪获取的一站点云数据,其中红色大框内局部放大的区域是一个标靶纸点云数据的示例。红色大框内的点云数据是从三维激光扫描仪的位置(图2红色椭圆区域)观察的结果,与红色小框内的对象呈水平镜像关系。图2(a)中点云数据映射的全景图如图2(b)所示,图2(a)中局部放大的标靶纸点云数据映射的图像为图2(b)中的红色大框,从全景图中可以清晰地看出标靶纸的轮廓及位置。
图2 映射全景图示例
从全景图中找到标靶纸的位置属于图像处理领域中的目标检测问题,目前已有众多性能优越的神经网络模型可用于解决这类问题。YOLO系列的神经网络模型[8-10]以其高精度、高效率的特点成为了最常使用的模型之一。因此,本文利用YOLO v5模型[10]从全景图中检测标靶纸的位置。常用标靶纸的类型有3种,包括圆形、正方形以及三角形,如图3所示。全景图中的标靶纸会发生变形,训练神经网络所用的数据集中不仅包含相机和三维激光扫描仪拍摄的图像,还含有经过数据增强操作处理的图像,包括多角度拍摄、球面投影、图像模糊以及灰度图像转换等。图2(b)中全景图的标靶纸检测结果见图4,图2(b)中红色大框内局部放大的标靶纸检测结果如图4中的红色大框所示。图4中的11个标靶纸有10个被检测出,说明本次检测成功率达到90%。
图3 标靶纸
图4 YOLO v5模型检测标靶目标
由图4可知,YOLO v5模型仅输出标靶纸在全景图中的大致范围,而两站点云数据之间的配准需要使用标靶纸的中心。本文采用模板匹配的方式估计标靶纸中心,具体步骤如下:
(1)针对每一个标靶纸的点云数据[图5(a)],使用随机抽样一致性(RANSAC)算法[11]提取位于同一平面上的点云数据,利用主成分分析(PCA)算法[12]将提取的点云数据映射到二维空间,并基于适当的网格尺寸将其映射为图像[图5(b)]。
(2)使用边窗盒子滤波算法[13]处理标靶纸映射图像来滤除图像中的黑色噪点,并将图像二值化处理以提高模板匹配的成功率,图5(b)中的图像经过滤波和二值化处理的结果分别如图5(c)和图5(d)所示。
(3)将映射图像与正方形标靶纸模板[图3(b)]进行匹配[图5(e)],为了提高算法的鲁棒性,选择模板中心周围±1的像素点作为标靶纸映射图像的中心,并将中心所对应的数据点作为标靶纸中心的计算数据点,即为图5(f)中的蓝色数据点。
(4)将标靶纸中心的计算数据点取平均值,即为估计的标靶纸中心,如图5(f)中的红色数据点所示。
图5 标靶纸中心估计的示例
使用三维激光扫描仪扫描时,须保证两站之间至少有3个公共且不共线的标靶纸。本文采用的配准方法的具体步骤如下:
(1)由于标靶纸数量有限,X与Y分别表示待配准的两站点云数据中的标靶纸中心集合,从X与Y中选择3个不共线的标靶纸进行全排列,并将全排列结果依次对应进行计算。
(2)针对每一种对应方式,利用公式(1)~(4)[14]计算旋转矩阵R和平移矩阵T。
(1)
W=UΣVT
(2)
R=VUT
(3)
T=μq-Rμp
(4)
式中:pi和qi分别为X与Y中的对应标靶纸中心;μp和μq分别为参与计算的对应标靶纸中心的均值;n为选择的公共标靶纸的数量(此处n=3);W为协方差矩阵;对角矩阵Σ、左奇异向量U以及右奇异向量V均由矩阵W奇异值分解得到。
(3)最优变换矩阵Ropt与Topt通过式(5)确定。
(5)
为了得到房屋的完整点云数据,需要在不同的站点扫描10次,将10组点云数据基于标靶纸进行智能拼接,结果如图6所示。
图6 房屋点云数据配准结果示例
由于扫描的点云数据数量庞大,通常需要进行数据轻量化来减少数据总量,以提高后续尺寸质量检测的计算速度。在实际应用中,常用的点云数据轻量化方法可分为2种,包括基于面片的方法和基于非面片的方法[15]。基于面片的方法通常涉及拓扑关系的计算,因而计算量巨大,在实际工程中难以应用。基于非面片的方法通常采用启发式的方法进行求解,缺乏严格的数学基础。此外,基于面片和非面片的方法主要关注轻量化算法本身,并未关注点云数据的体量,因此均难以应用于建筑房屋的大体量点云数据轻量化。这里采用可分解图滤波算法对[16]房屋的点云数据进行轻量化处理。
可分解图滤波算法基于分而治之的思想将点云数据轻量化分为可分解特征提取、可分解图滤波两步。可分解特征提取基于几何关系将点云数据划分成若干个点云子集,进而利用邻域信息对整个点云子集进行特征提取。在可分解图滤波过程中,通过图滤波器计算点的采样概率分布进行多项式重采样得到采样后的点云数据。
点云数据中任意数据点x的特征如公式(6)~(8)所示。
f(x)=wd-1
(6)
wj=e‖x-pj‖2σ-2
(7)
(8)
式中:w为数据点x的N维权重向量;N为邻域点的数量;wj为w的第j个分量,表示数据点x的第j个邻域点pj的权重,j∈[1,N];σ为邻域权重调节参数,一般设置为三维激光扫描仪分辨率的3倍;d为权重向量w中所有权重之和。
从公式(6)~(8)中可以看出,数据点的特征等于其与邻域点差值的加权和。换言之,数据点的特征可由其相关邻域点的信息编码而成。因此,对点云数据中某个特定点而言,其特征可以通过其邻域点的邻域信息进行提取。进一步将其推广到点云集合,整体特征可以通过其相关联的点云集合进行提取。为此,基于点云数据的几何信息对数据进行划分,得到点云子集合,依据几何位置关系,对划分好的点云集合形成关联的点云子集集合。整体点云数据的特征可通过划分好的点云子集及其相关联的集合进行特征提取得到。
在对点云数据进行集合划分并提取特征之后,点云子集中每个数据点的采样概率可通过图滤波器计算得到。可分解图滤波的整体流程如下:
(1)将点云数据依据设定的网格值划分成P个点云数据立方体,并对每个立方体构建相应的包围球。包围球的半径依据点云数据立方体的对角线长度进行设置。
(2)对每个立方体包围球进行特征提取之后,利用一阶图滤波器对包围球进行重采样[15],得到包围球内所有数据点对应的采样概率。立方体中每个数据点的最终采样概率可以通过包围球内对应点的采样概率得到。
(3)为了在每个划分好的点云子集上实现自适应重采样,对所有数据点的采样概率分布进行多项式重采样,得到的数据点集合即为最终的轻量化点云数据。
针对图6所示的房屋完整点云数据,使用可分解图滤波算法分别处理每一站扫描点云数据,并使用抗噪声密度聚类(DBSCAN)算法[17]去除噪点,处理之后的完整点云数据如图7所示。
图7 点云轻量化和降噪示例
目前最常用的住宅类建筑结构形式为剪力墙结构,这意味着一套房屋可大致分成墙体和楼板,对墙面、楼板底面和顶面进行重建就能得到房屋的可视化三维模型。重建过程包括墙体和楼板的点云数据分割、墙面点云数据分割和表面重建3个步骤。
对于一般的房屋点云数据,同一个楼板的点云数据具有相似的Z坐标,因此墙体和楼板的点云数据可以根据Z坐标下的密度直方图[图8(a)]进行分离,直方图中的峰值区域对应楼板点云数据,非峰值区域则为墙体点云数据。分割结果如图8(b)所示,其中浅色代表楼板点云数据,深色代表墙体点云数据。楼板点云数据包括楼板底面和顶面两部分[图9(a)],可依据Z坐标进一步分离,结果如图9(b)所示。
图8 墙体和楼板的点云数据分割结果
图9 楼板底面和顶面的点云数据分割结果
墙体点云数据包含很多不同的墙面,需要进一步将其分割。基于房屋的结构特点,本文采用的墙面分割方法如下:
(1)沿墙体一定高度对点云数据进行切片,得到墙体的轮廓数据[图10(a)]。
(2)使用DBSCAN算法[17]将属于同一个房间的轮廓数据划分至同一个类中,而图10(a)中的噪点会被算法划分成单独的类,且类中数据点的总量较少。统计算法得到的每个类的数据点总量,通过设置阈值进行筛选可得到属于不同房间的轮廓数据,结果见图10(b)。
(3)针对每个房间,利用RANSAC算法[11]拟合出不同墙面所在的直线方程[图10(c)],从而得到属于不同墙面的点云数据[图10(d)]。
图10 不同墙面的点云数据分割结果
将墙面、楼板底面和顶面的点云数据[图9(b)、图10(d)]进行组合,即可得到带有语义信息的房屋点云数据。对分割后的点云数据进行表面重建可进一步得到房屋的可视化模型。目前,表面重建方法主要分为3类:基于Delaunay三角化的表面重建[18]、隐式表面重建[19]和区域生长法表面重建[20]。其中,区域生长法选择一个种子三角形为初始三角网格,依据特定的拓扑原则获取邻接三角形,直到遍历所有数据点后得到重建后的表面。该方法具有思路简单、时间复杂度低、能够处理较大规模点云数据等优点[21]。区域生长法中的一个经典算法为滚球(BPA)算法[20]。该算法首先定义一个半径为r的滚球,从一个种子三角形开始,将滚球沿着种子三角形的一条边开始滚动,直到与下一个数据点接触后停止,通过判断滚球内是否包含其他数据点来确定是否将该边与该数据点构成新的三角形。不断循环上述过程,直到所有数据点都包含在三角网格中,最终完成表面重建。本文使用BPA算法完成分割后的房屋点云数据的表面重建,结果如图11所示。
图11 表面重建结果
得到分割的墙面点云数据后,就能进行参考平面的拟合,并基于参考平面进行平整度和垂直度的检测。然而,墙面的边缘经常会含有属于其他混凝土表面的点云数据,这些点云数据会使拟合的参考平面有较大的偏差,因此需要在拟合平面时将其筛除,从而提高参考平面拟合的准确率。本文采用的房屋尺寸质量检测方法如下。
3.2.1 边界检测
针对每一个墙面的点云数据,本文基于图像处理的方式检测点云数据的边界,具体步骤为:
(1)使用PCA算法[12]将点云数据映射到二维空间,并基于适当的网格尺寸转化成图像,同时在图像周围添加25个像素以保证墙体的边界能够被准确地检测。
(2)使用边窗盒子滤波算法[13]和二值化处理以提升图像的质量。
(3)使用轮廓跟踪算法[22]和道格拉斯-普克(DP)算法[23]分别获取图像的轮廓和角点。
(4)将提取的轮廓和角点网格回溯至三维空间,即可得到墙面边界点云数据。
图12(a)、(d)分别为矩形墙面和含有洞口的墙面的映射图像,图12(b)、(e)为轮廓和角点检测结果。与图12(b)、(e)中轮廓线和角点对应的点云数据分别如图12(c)、(f)所示。从图12可以看出,这种方法可以有效检测出墙体的边界,且能够适应不同的墙体形状。
图12 墙面的边界检测
3.2.2 参考平面拟合
参考平面是平整度和垂直度计算的基准面,需尽可能地表示扫描平面上的所有数据点。为降低噪点的影响,基于RANSAC的思想,在边界筛选后的墙面点云数据中随机选择80%的数据点来拟合参考平面,反复计算n次并根据式(9)计算拟合残差ε,选择拟合残差最小的面作为参考平面[24]。
(9)
3.2.3 平整度计算
计算每个数据点到参考平面的距离作为平面偏差,偏差的正负性通过数据点与参考平面法向量的方向确定[24]。参考平面的法向量指向该平面所在房屋的中心。从图11所示的房屋点云数据中选择一面墙体,其平面偏差的计算结果如图13所示,从图13可得到任意位置的平面偏差。
图13 墙面的平面偏差
工程中测量的平整度实际上是被测区域最低点与最高点之间的相对差值,而图13中的平面偏差仅是数据点相对于参考平面的偏差。为了便于工程中调整局部不平整的混凝土表面,需要将平面偏差转换成平整度偏差。本文提出一种基于图像处理的滑动窗口算法计算平整度偏差,具体步骤如下:
(1)从待检测墙面的边界中,选择2个相互垂直的边界,计算其单位向量,并依据2个单位向量将墙体点云数据映射到二维空间。
(2)使用边长为0.02 m的正方形网格,将二维点云数据映射成图像,并根据平面偏差得到偏差图,其像素值为网格内数据点中绝对偏差最大的数值,正负性由该数据点的实际偏差确定,图14为图13所示墙面点云数据映射的偏差图。
图14 墙面映射的偏差
(3)基于图15所示的3种滑动窗口计算平整度偏差。3种滑动窗口的对角线长度均为2 m,以模拟60°、45°和30°的2 m靠尺,其中红色的像素点为计算点,其平整度偏差为滑动窗口所涵盖的范围之内偏差的最大值与最小值之差。为保证偏差图中所有网格都能顺利计算,偏差图的四边需要根据滑动窗口的尺寸以0进行网格填充。
图15 3种滑动窗口
(4)分别使用3种滑动窗口计算平整度偏差,并取3种平整度偏差的最大值作为最终计算的平整度偏差。使用图14所示偏差图计算的平整度偏差如图16所示。
图16 墙面的平整度偏差
3.2.4 垂直度计算
墙体垂直度的含义为墙体的底部与顶部之间的水平偏差,可通过计算参考平面的法向量与楼板顶面的夹角相对于90°的偏差值,并将此偏差值的正弦函数值与墙体的高度相乘而得到。以图13中所示墙体为例,其参考平面的法向量与楼板顶面的夹角为90.10°,与90°的偏差值为0.10°,墙体的高度为2.78 m,因此垂直度为5 mm。
为了验证提出的方法有效性,本文选取2套已完工的清水混凝土房屋进行尺寸质量智能检测试验。房屋平面图如图17所示,总面积均为90 m2。在墙面粘贴标靶纸,使用三维激光扫描仪依次扫描各房间,保证两站之间的公共标靶纸数量不少于3个,扫描示意图见图18。本文所用的三维激光扫描仪为FARO S150[6],采用的分辨率均为1/8,质量为4x,数据点之间的距离为12.3 mm·m-1。
图17 2套房屋的平面图
图18 数据采集
2套房屋的平面偏差、平整度偏差、垂直度偏差结果分别如图19~21所示。可以看出,本文提出的房屋尺寸质量智能检测方法可实现各站点云数据的智能化预处理,并提供房屋各表面平整度以及墙体垂直度检测的可视化结果。根据平整度偏差结果可准确分辨各表面中相对偏差较大的区域,并结合平面偏差结果精准定位该区域内局部偏差较大的位置,从而指导工人施工整改。由于三维激光扫描技术可进行房屋的全覆盖式扫描,获得的表面信息更加全面,因此在大部分表面中,模拟2 m靠尺的滑动窗口算法计算得到的平整度偏差均超过规范中设定的8 mm限值,可见基于三维激光扫描的平整度检测技术相对于人工抽样检测将更加严格。
图19 平面偏差结果
图20 平整度偏差结果
图21 垂直度偏差结果
(1)提出了一种智能化、全流程的房屋尺寸质量检测方法,集成应用了点云数据配准算法、点云数据轻量化算法、房屋逆向建模与尺寸质量检测算法,最终形成了房屋尺寸质量智能检测综合算法。
(2)本文所采用的基于标靶纸的点云数据配准方法能够自动完成各站点云数据的配准,得到完整房屋点云数据;逆向建模技术能够分离不同墙面、楼板底面和顶面的点云数据,并生成房屋的实体模型;尺寸质量检测技术能够自动计算出表面的平整度和垂直度;本文提出的房屋尺寸质量检测方法全面、可行。
(3)基于三维激光扫描的平整度检测技术相对于人工抽样检测更加严格。