王 鹏,辛佩康,刘 寅,余芳强
(上海建工四建集团有限公司工程研究院,上海 201103)
伴随着硬件设备和软件算法的更新迭代,无人机倾斜摄影测量技术飞速发展,已被广泛应用于三维城市重建[1]、自然灾害评估[2]等领域。与机载激光雷达(LiDAR)点云相比,倾斜摄影点云无法穿透植被,存在大量局部噪声点[3],但含有丰富的颜色和纹理信息,常用于土方算量、标高控制等工程建设领域。然而由于施工场地地物多样、地势复杂[4],倾斜摄影点云中包含大量植被、机械设备等非地面点,严重影响了地面点云的应用精度,必须采取合适的算法剔除非地面点,提取施工场地的地面点云。
现有点云滤波算法,如基于坡度的滤波算法[5]、基于数学形态学的滤波算法[6]、基于不规则三角网的滤波算法[7]、基于机器学习的滤波算法[8-9]等,大多是针对LiDAR点云开发设计的,对倾斜摄影点云适用性较差[10-11],且普遍具有参数设置复杂且极度依赖经验、复杂地形滤波效果差、时间复杂度高等缺陷[12-13]。文献[14]提出了布料模拟滤波(cloth simulation filtering, CSF)算法,使用“弹簧-质点”布料模型自上而下贴合倒置的地表点云,依据模型和点云之间的高程差分离地面点和非地面点。该算法模型巧妙易懂、参数设置简单、滤波精度较高[15],且在倾斜摄影点云上具有较好的应用可行性,但滤波参数不能根据地势特征自适应调整,难以兼顾复杂滤波区域。
为此,本文提出一种结合目标检测和地势分析的倾斜摄影点云改进布料模拟滤波算法,实现施工场地倾斜摄影点云的自适应滤波并在某施工场地展开应用。
CSF假定虚拟布料由布料粒子通过弹簧连接而成,在迭代时粒子只受重力和内力作用且仅发生垂直方向运动[16]。算法的主要步骤如图1所示,分别为布料初始化、重力模拟、碰撞检测和位移调整。
图1 CSF算法的主要步骤
布料初始化阶段剔除原始点云粗差点并倒置点云,按预设参数初始化布料模型,依投影下最近原始点的高程确定各布料粒子的最低高程;重力模拟阶段计算粒子在重力作用下的位移;碰撞检测阶段将当前高程低于最低高程的粒子视为碰撞状态,修正其高程为最低高程并置为不可移动状态;位移调整阶段则通过布料粒子间的内力修正可移动粒子的位置。迭代重力模拟、碰撞检测、位移调整等步骤,直至布料粒子不再移动或达到预设迭代次数,再计算最终布料与原始点云间的高程差,剔除高程差大于预设高程阈值的点,剩余即滤波后的地面点云。
相较于其他滤波算法,CSF算法原理简单、可解释性强、自定义参数少,同时在计算效率、滤波精度、地形适应性等方面有较大优势[17-18]。但算法自定义参数均为全局变量,在极陡峭区域或有大量地物覆盖的地形起伏区域表现较差[19],具体表现为:
(1)陡坡场景下,部分布料粒子先接触点云而被固定,邻近粒子受弹簧拉力作用发生向上运动而无法贴合点云凹陷处,导致地面点被错误划分成非地面点(即Ⅰ类误差),如图2(左侧)所示。
图2 常规CSF算法的典型缺陷
(2)布料粒子修正高程时,较大的重力惯性难以被向上的内力抵消,部分粒子冲出地面而粘在低矮地物上[15],导致非地面点被错误划分为地面点(即Ⅱ类误差),如图2(右侧)所示。
此外,CSF算法对形似土堆的地物(如堆放的建材等)识别不灵敏,容易出现错判或漏判。
为有效提升倾斜摄影点云滤波的精度、效率和自动化程度,本文提出了结合目标检测和地势分析的布料模拟滤波改进算法:建立各通用场景下布料模拟滤波最优参数库,依托智能检测算法识别航拍影像中的典型地物并映射到点云空间,采用地势分析方法建立算法的初步地形认知,自适应选取对应的预设参数并滤波。改进算法的流程如图3所示。
不同的使用场景具有独特的典型地物,但相同的使用场景典型地物类型大同小异,如不同施工场地的地物具有差异,表明不同具体场景间的地物不同但类型相同,基本类型仍是机械设备、临时建筑等。由此,对某具体场景建立的布料模拟滤波最优参数库在与其类型相同的场景内具有通用性。
根据不同使用场景(如村庄、施工场地等)中不同地势和典型地物情况,通过人工滤波试验,由目标地物是否滤除、错误分类点数量等确定最优布料模拟滤波参数组合,并建立适合该场景的倾斜摄影点云布料模拟滤波最优参数库。参数库包含布料硬度系数、格网分辨率、高程阈值、后处理因子等。其中,硬度系数控制布料粒子间弹簧的松紧程度,数值越大,布料越硬,最终形状越不贴合地表点云[20]。格网分辨率控制布料网格大小,数值越低,滤波产物越精细。高程阈值是根据点和模拟布料间的高程差区分地面点和非地面点的标准。后处理因子是一个布尔参数,启用后可解决因布料硬度导致地面点分类错误的问题。
深度学习目标检测是指利用深度学习方法获取图像中感兴趣目标的类别和像素位置[21]。基于深度学习目标检测算法构建典型地物识别模型,并使用预先标注的典型地物数据集训练模型,实现航拍影像中典型地物的类别划分,同时输出预测框的坐标信息;再通过映射将二维影像上的预测框区域投影到三维空间,锁定倾斜摄影点云中地物的感兴趣区域(ROI),以便针对性滤波。
具体的区域映射方法为:首先对倾斜摄影点云逐点创建索引,根据检测出目标地物的原始影像的相机位姿信息,按式(1)将点云映射到该影像的像素空间生成二维虚拟图像[22],并对每个像素坐标标记点云索引,计算得到的虚拟图像与原始影像具有同等尺寸和地物信息;然后将虚拟图像与原始影像经目标检测的输出图像进行像素匹配,标注出检测框内的像素点,并索引回原始点云,得到检测框范围内的三维点;最后根据三维点构建最小包围盒,得到目标地物在点云空间内的ROI,如图4所示。计算公式为
图4 地物目标检测和区域映射流程
(1)
式中,(XW,YW,ZW)为点云中某点的真实世界坐标;(u,v)为该点的虚拟图像像素坐标;I为相机内参矩阵;E为相机外参矩阵;fx和fy分别为相机焦距与x、y轴方向像元尺寸的比值;(x0,y0)为相机主点的实际坐标;s为相机坐标轴倾斜参数;R和C分别为相机瞬时旋转矩阵和位置矩阵。
为了便于滤波参数的自定义选取和点云数据的组织管理,首先对倾斜摄影点云构建最小包围盒,并在包围盒顶部等距划分三维格网。格网划分后去除内部没有点云的格网,以节约计算资源。此外,为避免两侧格网因采用不同滤波参数导致交接处真实地形缺失,对相邻格网设置一定的重叠度,如图5所示。
图5 三维格网划分
然后,遍历各地物ROI,判断其与三维格网的重叠关系。若该地物ROI全部位于某单个格网内,则保持格网布局不变;若该地物ROI横跨多个格网,则合并与ROI交叉的三维格网以包纳完整的地物ROI,如图6所示。此外,对包含地物的格网标记其地物属性。
图6 三维格网重布局
对未标记地物属性的三维格网中的点云,随机抽取若干点并计算各点之间的坡度。统计各三维格网中所有坡度角的均值μθ和方差σθ,并据此划分各格网的地势类型,标记格网的地势属性。地势划分依据见表1。
表1 地势类型划分依据
通过目标检测和地势分析,首先,算法为各三维格网标注了其地物或地势属性,建立了对于滤波场景地物分布和地势特征的初步认知。然后,算法根据各格网的标签属性,自动从最优参数库中选取并调用对应的滤波参数,如对于施工场地场景下某包含挖掘机和渣土车的区域,算法从参数库(见表2)中选取参数组合(场景:施工场地;类型:地物;名称:机械设备):布料硬度系数为1,网格分辨率为0.1,高程阈值为0.5,后处理因子为T。最后,算法将遵循常规布料模拟滤波算法步骤提取地面点云。
表2 施工场地布料模拟滤波最优参数库
本文以深圳市某建筑项目施工场地东南片区为研究对象。该项目建筑用地面积约为657 500 m2,包括猪公山、猪婆山两座山头,其东南片区约为15 000 m2,最大高差约为65 m,同时包含机械设备、临时建筑、建材堆料等典型地物和平地、缓坡、陡坡等地势类型。操纵无人机执行倾斜摄影任务采集场地影像930余张,经三维重建并裁剪无关区域,得倾斜摄影点云如图7所示,共包含三维点292 599 339个。
图7 研究区域倾斜摄影点云
综合考虑研究区域的点云密度和地物尺寸,以50 m间距划分三维格网,并设置重叠区域长度为三维格网边长的1/10。同时经多次滤波试验,建立了布料模拟滤波最优参数库,见表2;基于YOLO v5构建并训练了施工场地典型地物检测模型。然后使用改进算法对研究区域点云进行滤波,剔除重叠区域的重复点后,得到最终的滤波结果,如图8所示。
图8 改进算法滤波效果
为了进一步评估改进算法的有效性,开展了常规CSF算法和改进算法的对比试验。其中,常规算法共3组,自定义参数分别选用3类基础地势(平地、缓坡、陡坡)的内置预设参数,主要区别为布料硬度系数。此外,人工标注了研究区域的倾斜摄影点云,并以此为真值验证算法滤波精度。
3.3.1 效果比较
对比试验结果如图9所示,图中黑色为地面点,灰色为非地面点。随着常规算法的布料硬度系数从3(平地)、2(缓坡)到1(陡坡)减小,主体部分黑色区域面积逐渐增大,算法滤波效果逐渐变好,但错误分类比例仍旧较大。改进算法能根据场地的典型地物和地势特征自适应调整滤波参数,滤波结果接近人工标注结果,滤波表现明显优于常规算法,能够很好地将地面点和非地面点分离。
图9 研究区域滤波对比试验结果
3.3.2 精度评估
定量比较分析改进算法和常规算法的差异,本文采用Ⅰ类误差(Type Ⅰ)、Ⅱ类误差(Type Ⅱ)和总误差(Type Total)评定各组试验的滤波精度。Ⅰ类误差和Ⅱ类误差可较好地评估滤波算法的适应性,总误差反映了滤波算法的可行性[23]。此外,本文还引入Kappa系数以衡量滤波算法分类结果是否与真实值具有一致性。Kappa系数值越大,一致性越高,算法稳定性越强。
统计各对比试验的滤波结果、计算评价指标如表3和图10所示。分析数据发现,本文算法的Ⅰ、Ⅱ类误差和总误差均明显低于其他3组常规布料模拟滤波试验,其数值下降至1.11%、6.36%和2.39%;Kappa系数为93.45%,滤波结果一致性显著强于另外3组。总之,本文算法的可行性、适应性和稳定性均超过了常规布料模拟滤波算法,能够更精确地提取施工场地的地面点云。
表3 研究区域滤波对比试验结果
图10 研究区域滤波对比试验评价指标
为解决现有的点云滤波算法普遍存在的参数设置复杂、地形适应度差等问题,本文以倾斜摄影点云为研究对象,提出了一种结合目标检测和地势分析的布料模拟滤波改进算法,通过目标检测和地势分析方法智能优选滤波参数,实现了复杂场景下倾斜摄影点云的自动滤波和地面提取。该方法大幅提升了算法对各类地形的自适应性,在极陡峭地形区域,滤波总误差仍能保持小于3%,且Kappa系数保持大于90%,滤波精度和结果一致性远高于常规算法,更好地保留了复杂地形的地表特征信息,有利于后续地面点云的工程应用。
此外,本文仍存在成片地物滤波不彻底的问题,在后续研究工作中,考虑从两方面展开:①采用实例分割替代目标检测,缩小地物感兴趣区域,再整体剔除地物感兴趣区域内的点云,避免因少量布料粒子粘在地物顶部产生的二类误差;②使用其他算法对点云进行低精度粗滤波,在此基础上归一化原始点云高程,降低点云起伏程度,再施行改进布料模拟滤波,进一步提升算法的地形适应性。