王升钊,陈雨人,杨元弢
(1.同济大学 道路与交通工程教育部重点实验室,上海 201804; 2.深圳市城市交通规划设计研究中心股份有限公司,广东 深圳 518057)
城市道路基础设施是整个城市道路交通系统最重要的物质组成部分,随着BIM与数字化设计在道路工程领域的迅速发展,对道路基础设施三维模型的快速、精确重构提出了新的要求。
近年来,车载激光扫描系统和无人机倾斜摄影等技术发展迅速,这类方法精度高、速度快、覆盖广,能够自动化快速地采集大范围区域内的三维空间信息,因其灵活性适应交通基础设施建模。文献[1]根据高差法、灰度差值法、强度差值法和动态网格密度法配合使用实现了道路标志线的提取。文献[2]实现了路沿的自动检测以及路面的重构算法,使用激光点云数据来重构三维路面。文献[3-5]利用倾斜摄影测量技术对外业实景进行数据采集,并通过Context Capture软件进行三维重建,模型纹理真实、细节清晰,但是对专业建模软件的依赖度太高。
由于无人机倾斜摄影技术能有效获取车载激光扫描系统在高层建筑物与构筑物顶部的扫描盲区信息,有学者对地面激光雷达扫描与无人机倾斜摄影这两种技术加以综合应用。文献[6]采用激光点云结合无人机影像,对小范围场景进行三维重建,但重建过程以人工为主。文献[7]基于机载激光雷达技术(LiDAR)来实现高速公路勘测设计的数据采集和路线选型。文献[8]以地面三维激光点云为基础,并结合无人机和手机拍摄的影像对雕塑进行了重构建模,但没有进行大范围场景的应用。
上述研究主要针对不同点云获取方式下三维模型的重构,但重构方法仍以手动使用专业建模软件为主。为提高这一过程的自动化水平,还需对多源空地点云的配准、分割和重构算法进行研究和设计。点云的配准方法主要有两类:一类是基于辅助信息,比如坐标系、视角等信息进行拼接配准,例如文献[9]根据空间坐标关系,提出人为引入不共线三点作为参照进行拼接;另一类是根据点云自生特征进行配准[10],文献[11]依据PCL子类编译规则将改进算法编译为子类函数,在进行ICP精确准时调用函数,用以海量点云数据的配准。这些研究大多是对单一采集方式的点云进行配准,而对于多源点云数据的配准拼接技术目前研究成果不多。
在点云的分割方面,RANSAC方法和区域生长法是最常用的算法,随着深度学习的发展,众多学者对点云的语义分割进行了研究。文献[12]将三维激光点云与灰度图像相匹配,并采用K均值聚类算法对图像进行分割。文献[13]基于点云体素化并结合三维卷积神经网络提出了VoxNet模型。文献[14]针对室内点云提出PointNet,利用改进的网络在卷积的思想下进行点云的分类和分割,随后提出了改进优化后的PointNet++模型。
在交通领域的点云三维重构方面,文献[15]对点云数据进行修补与简化后,使用改进的Delaunay三角剖分算法,生成完整的道路三角网模型,但没有对比其他重构方法。文献[16]采用基于Delaunay三角网格的自然邻点插值法对路面点云进行三维重构,并对路面不平度进行估计,确定路面等级。文献[17]对基于三角形生长思想和基于分治思想的三角网生成算法进行了对比,并应用与路面点云三维重构,并对分块ROAM算法进行改进用以提高路面重构效率。
综上所述,车载激光扫描系统和无人机倾斜摄影技术已较为广泛地应用于交通基础设施的三维重构,但现有研究主要使用单一来源的点云数据,尽管有少数学者结合了多种来源点云进行三维重构,但对点云拼接配准过程简单,不能满足精度和效率要求。同时重构过程中对于点云的分类不够细致、智能化程度较低,难以对道路场景中大规模的交通基础设施进行后续精确重构。
针对上述问题,文本提出了空地融合的城市交通基础设施融合、分割和重构方法。空地融合指的是采用车载激光扫描系统和无人机倾斜摄影技术共同完成区域内三维空间信息的采集,并将生成的点云数据进行融合配准,用以克服单一技术手段下采集的基础设施三维数据完整度较低的问题。具体方法如下:首先使用车载激光扫描系统和无人机倾斜摄影技术采集数据信息,并使用SfM算法生成点云数据,运用ICP算法对多源空地点云进行融合配准,然后使用PointNet深度学习网络实现点云的分割,最后对交通基础设施点云进行三维重构。
1.1.1 数据采集
试验采用日本Topcon公司的IP-S2车载激光扫描系统,搭载SICK激光扫描仪组模组、Ladybug全景图像模组和IMU测量导航单元等设备。其中,SICK激光扫描仪最大采集范围约为双侧100 m,采集频率10 Hz,采集精度10 cm以内;GNSS天线平均误差为1 m;全景相机可以采集最大分辨率为5 400*2 700的全景图像,可独立导出。
首先对数据采集路线进行规划,并将标线角点和建筑物转角等具有代表性特征的地物作为控制点,用来对待测区域进行控制点标定。最后将行车速度控制在50 km/h以内,沿道路中间车道行驶,进行数据采集工作。
1.1.2 数据处理
采用IP-S2系统进行外业扫描作业得到以下三类原始加密数据:(1)Ladybug相机同步拍摄的全景影像数据,存储格式为.pgr;(2)SICK激光扫描器获取的三维点云数据,存储格式为.ipz;(3)定位数据和车辆行驶轨迹等车辆姿态数据,存储格式为.ips。
通过GeoClean和SpatialFactory软件对以上数据进行后处理,包括GNSS与定位定姿解析、全景影像生成、点云着色与坐标转换,得到交通基础设施场景点云如图1所示。
图1 车载激光扫描系统采集的点云
1.2.1 图像采集
试验采用大疆御4Pro无人机,搭载2000万有效像素L1D-20c型号摄像头,采用1英寸CMOS,照片最大分辨率5 472×3 684,视角:77°,等效焦距:28 mm,光圈:f/2.8-f/11。
以同济大学嘉定校区的部分教学区作为实验测量区,主要包含嘉四路、嘉三路、同甲路、同乙路和同丙路五条主要道路,以及通达馆、开物馆、宁远馆三栋完整建筑物。总共飞行时间1小时12分,共获取航拍图像536张,试验采用RTK测量模式进行控制点和检查点的采集,其中测区坐标系统为WGS84坐标系。
1.2.2 特征点监测与匹配
使用无人机倾斜摄影图像生成点云的核心是估计图像中每个点的深度信息,本文使用运动恢复结构(SfM,structure from motion)[18]求解该问题。SfM的目的是从众多无序的图像数据中解析出不同图像对应的相机参数并解析从三维物体到平面图像的映射关系,最后获取场景的三维结构。
在对图像进行关键点检测和描述子计算后,需要进行特征点匹配,即通过计算不同特征点描述子的相似性,确定不同图像中的同个特征点。使用接近最近邻搜索算法(ANN,approximate nearest neighbor)[19]进行求解,首先通过建立Kd-树结构将描述子进行划分,然后基于一定容忍阈值进行特征点相似度匹配,加速搜索和匹配过程,得到最近邻的近似值。一组无人机图像的特征点匹配结果如图2所示。
图2 特征点匹配
1.2.3 深度计算及点云生成
可以使用针孔相机模型来描述无人机倾斜摄影采集数据的过程,但该模型中深度信息未知,无法根据单一图像恢复图像中点的空间位置,因此通过引入额外的几何关系来计算深度。
SfM问题通过考虑对极约束来建立两幅图像之间的几何相关性,对极几何关系如图3所示。对极约束指的是:(1)若已知相机C1中投影点M1,则位于射线O1M1上的空间点在相机C2对应的投影点一定位于相机C2的极线l2上;(2)若已知点M位于相机C1、C2中的投影M1、M2,则M一定位于O1M1、O2M2的交点处。
图3 对极几何约束
在上述几何约束关系基础上,运用随机采样一致性算法(RANSAC,random sample consensus)对八对匹配点进行鲁棒求解,并通过奇异值分解(SVD)求解相机运动,最终可求解得到所有匹配特征点对应的空间距离。对应特征点的世界坐标,并读取对应图像像素点RGB值,即可获得特征点组成的彩色三维点云。
在求解过程中需针对各种误差进行优化,优化方法采用光束平差法(BA,bundle adjustment)。其思想是,将求解出的特征点三维点云对各个相机进行重投影如图4所示,计算并最小化重投影与原始图像点的距离平方和,从而达到参数优化的目的。
图4 相机重投影
设C为相机参数,σij为指示函数,当点Xj在相机Ci中有投影点时取1否则取0,qij为投影点像素坐标,P为相机投影函数。则BA优化函数为:
(1)
本文使用开源库OpenMVG与OpenMVS实现上述过程,由无人机倾斜摄影拍摄图像数据生成的点云效果如图5所示。
图5 无人机倾斜摄影生成的点云
点云配准一般分为粗配准与精配准两个步骤,粗配准的目的是将坐标差异较大的位置姿态点云或姿态精度有限的点云进行初步配准,精配准是在粗配准的基础上使用各类优化方法,进一步降低匹配点的误差。
车载激光雷达点云采集时使用了GPS与GNSS组合的定位系统,精度更高,因此将车载激光点云作为目标点云,将无人点云作为待配准的源点云。空地点云初始位置如图6所示,车载激光点云与无人机点云方向相反。首先对无人机点云数据进行坐标系转换,再使用手动平移的方式快速完成粗配准,如图7所示。粗配准手动进行,效果较差,空地点云不能完全重合,但为精配准提供了一个较好的初始条件。
图6 空地点云初始位置
图7 空地点云粗配准
在粗配准的基础上,本文设计使用基于沿街建筑立面提取和迭代最近点法(ICP,iterative closest point)结合的方法对空地点云精配准。
2.2.1 基于区域生成法的沿街建筑立面提取
本文使用空地点云的沿街建筑立面作为精配准的配准依据,因此,首先使用区域生长法提取沿街建筑立面。区域生长法的思想是首先设定一个属性规则以及一个或多个种子点,从种子点开始对其近邻点进行搜索,将满足规则的该生长点的邻近点与生长点归为一类,同时以邻近点作为新的生长点,重复搜索直至无法找到满足规则要求的新邻近点。记待提取建筑立面的点云为C,算法的描述实现流程如下:
1)对点云C建立kd-树索引,便于点的最近邻查找;
2)对点云C进行法向量估计:对于点云中任意一点Pi∈C,按照预先设置的一个邻域点数参数,对其邻域点构建协方差矩阵并求解协方差矩阵的特征值与特征向量,其中最小特征值对应的特征向量即为点Pi的法向量λ(Nix,Niy,Niz);
3)以法向量的竖向分量Niz为目标,对点云C进行直通滤波,过滤出表面与对面近似垂直的点,实验中滤波阈值为(-0.1,0.1);
4)从C中随机选择k个初始种子点,记做P’n(n=1,2,…,k);
6)终止条件:重复步骤5),直到种子序列L为空,则说明建筑立面点已搜索完毕;
7)对搜索到的点集进行后处理,删除点数小于最小聚类点数(试验中取300)或大于最大聚类点数(试验中取100 000)的区域,最大程度避免车辆侧面等物体的干扰。
沿街建筑立面提取效果如图8和图9所示。
图8 激光点云建筑立面提取
图9 无人机点云建筑立面提取
2.2.2 基于迭代最近点法的点云精配准
使用ICP对空地点云的沿街建筑立面点进行精配准。将车载激光雷达建筑立面点云视为目标点云,记作CV;将无人机建筑立面点云视为源点云,记作CU。主要配准流程如下:
1)对CU进行降采样,随机选择n个点形成子集P={pi|pi∈CU,i=1,2,…,n},对CV进行降采样,随机选择m个点形成子集Q={qi|qi∈CV,i=1,2,…,n};
2)对于Q中每一点qi,通过kd-树查找P中与其距离最近的点pi并记录两点间距离,若距离小于一个设置的阈值,则构成一对对应点;
3)构造空间距离误差函数E如式(2),并通过奇异值分解法求解式(3)得到旋转矩阵R和平移向量t;
(2)
argminR,t(E)
(3)
4)使用R与t作用更新源点云子集Q:Q←RQ+t;
5)重复步骤2)至4),直至E小于某一设置的阈值或迭代次数达到某一设置的阈值;
6)使用最新的R与t作用更新源点云CU:CU←RCU+t;
随着ICP过程迭代轮数的不断增加,空地建筑立面点云逐渐重叠,其误差呈减小趋势,当迭代至 20 轮左右时,误差几乎不再降低,此时配准停止。最终空地点云配准结果如图10所示。
图10 空地点云精配准结果
PointNet网络是基于点的端到端点云分割方法的代表网络之一,其结构简单、便于优化,原本主要适用于小规模的点云数据。为了使PointNet适用于大型交通场景点云,本文对其进行优化,对点云建立kd-树索引,通过kd-树近邻算法在训练时快速搜索并建立一个集中于局部的点集,保证PointNet对局部特征的有效提取。然后使用元学习算法MAML对源域道路场景点云知识进行迁移,用于对目标域道路场景点云分割。
为了进行知识迁移,使用两个公开的点云数据集作为源域点云。一个为VirtualKITTI[20]数据集,部分场景如图11所示;另一个为Paris-Lille-3D[21]数据集,其采集了法国巴黎、里尔两地多个道路场景的激光点云,部分场景如图12所示。
图11 Virturaal KITTI 数据集
图12 Paris-Lille-3D 数据集
对第二节获取的空地融合点云进行小范围内人工标注,将点分为道路,路灯及杆件、植物、标线和建筑五类,将该范围点云作为目标域点云,手动标注部分如图13所示。
图13 手动标注的目标域点云
为验证基于知识迁移的点云语义分割的有效性,进行实验研究。研究共进行了5组实验,各组实验方法及实验参数如表1所示。
表1 超参数设置
第一组为基础对照组,即直接在小样本量的目标域点云数据上进行PointNet训练并测试;第二、三、四组为预训练与微调实验,每一组首先在源域点云上进行预训练,然后在目标域点云上进行微调训练,采用3种训练策略,其中第二组微调时重新随机初始化PointNet的输出层,冻结除了该层以外的所有层,只对该层进行微调训练。第三组在微调时允许对包含全局信息与局部信息的MLP3进行微调,冻结MLP3以外的所有层,第四组则不冻结任何层,在目标域点云上对所有层的参数进行更新。第五组为元学习实验,对源域点云数据进行MAML算法中的训练,然后使用目标域点云进行MAML算法中的梯度下降迭代更新。
本文采用总体精度(OA)和平均交(mIoU)并比来对道路场景点云的分割结果进行评价,其定义如式(4)、式(5)所示。
(4)
(5)
式中,m为点云的总点数;Ⅱ为指示函数,输入为真和假时输出分别为1和0;TPi、FPi、FNi分别为点云中第i类点的分类真正点数、假正点数和假负点数。
直接在小样本点云数据集上进行训练,模型很快就趋于收敛。在Paris-3d及数据集上进行预训练,在约100轮左右收敛,微调阶段在目标域数据集上训练20轮。由于元学习方法特殊,在训练阶段损失函数并不收敛,但在更新阶段体现出了巨大的优势,仅用了5轮梯度下降迭代就迅速收敛,各方法的分割结果如表2所示。
表2 实验结果
从表2可知,直接在小样本的道路点云数据上训练PointNet,车辆、杆件的IoU都极低,这是由于数据量较少而网络参数众多,导致了过拟合问题。而基于预训练与微调的3种实验设置中,微调MLP3与输出层的效果最好,这是因为较少的目标域点云不足以微调网络的全部隐层,而仅微调最后一层不足以提供足够的神经网络泛化能力。基于元学习的方法也达到了较理想的水平,尤其是对于车辆、杆件等数量较少的点云,该方法明显优于其他方法,原因是元学习从拥有较多车辆与杆件的源域点云数据上学习到了足够的元知识,从而实现了知识迁移的目的。最终点云分割效果如图14所示。
图14 点云分割结果
点云三维重构是指以三维点云信息为依据构建出三维几何体。本章主要使用贪婪投影三角剖分算法和泊松曲面重构算法,二者均通过点云数据直接构建三角网来重构空间三维结构,该类方法生成速度快、人工干预少,可以适用于城市场景下大规模的基础设施数字化重构。
4.1.1 贪婪投影三角剖分算法
贪婪投影三角化算法是一种改进的平面投影三角剖分方法,首先计算点云的法向量,然后根据点云的法向量将点云投射到局部正切平面内,并在该平面内使用进行Delaunay三角剖分,剖分时加入了修剪遮挡点的步骤,在获得局部三角网后,根据投影关系恢复整体三角网的空间结构,最终获得空间三角网。该方法优点是计算速度快、可以处理大规模点云,同时对点云无顺序要求,可以处理散乱点云,缺点是对点云密度变化不均匀的敏感性强。
4.1.2 泊松曲面重构算法
与几何剖分不同,泊松表面重建算法是一种基于隐式曲面重构的三维重建方法,它的核心思想是,由于点云中的点都来自于物体表面,那么只要通过拟合一个指示函数,令指示函数估计出各点是在物体内(此时取值为1)还是物体外(此时取值为0),那么该指示函数的等值面即为物体的表面。假设有一区域M,则指示函数的梯度只有在物体表面时才不为0,而此时其梯度的值等于附近点云向内的法向量。对指示函数的梯度和法向量同时求导获得拉普拉斯方程,即可通过数学方法求解指示函数,最后通过MarchingCube方法提取等值面得到物体表面。泊松重构速度较快,对噪声不敏感,可用于复杂物体得重构,相对于三角剖分得方法,其表面更加平滑,不易产生孔洞。
以路面点云三维重构为例。由于无人机点云在地面附近噪点较多、精度较差,而激光点云在靠近扫描仪的路面附近密度最大,且路面点云是交通基础设施点云中密度最大的部分,约为600-800点/平方米,因此路面点云重构仅使用车载激光雷达生成的点云。
大密度的点云虽然可以提高测量的精度和可靠性,然而实际进行重建时,会导致计算量增加、模型表面粗糙等问题。因此,首先使用PCL库中的体素栅格(VoxelGrid)滤波器对地面点云进行降采样,取体素尺寸为10 cm,可以使路面点云密度降低至约100点/平方米,大幅降低点云密度。然后分别利用贪婪投影三角剖分算法和泊松表面重建算法对降采样后的道路点云进行重构。使用贪婪投影三角剖分算法时,首先构建kd树索引,并构建贪婪投影三角化重构器对象,设置最大搜近邻数100,三角形最小内角限制为15°,最大内角限制为120°,重构结果如图15所示。
图15 贪婪投影三角化法重构的路面
作为对比,使用泊松表面重建算法进行路面点云重构时,首先构建kd-树索引,然后进行点云法向量估计,估计时设置搜索范围为20近邻,将估计出的法向量与点云融合后重新建立kd-树。最后创建泊松重构器对象,设置参数Degree为3,最大树深度为8,添加多边形重心,重构立方体直径与样本边界立方体直径的比为1.5。重构结果如图16所示。
图16 泊松表面重建算法重构的路面
由图15和图16可知,利用贪婪投影三角化法重构生成的道路三角网较为规则,三角形均匀,不存在狭长三角形,同时道路表面较为平整且能够反映真实道路细节;而泊松重构算法网格规则且均匀,且很好地修复了点云因遮挡产生的空洞,但路面网格存在一定重叠,构建的道路三维模型接近于扁平矩形,路面过于平滑,丢失了道路表面的细节信息。
其次,将两种方法重构的路面三角网数据进行对比如表3所示。
表3 两种方法重构的路面三角网对比(1 m2投影)
从重构效果来看,使用贪婪三角投影算法重构的路面更加精细,能够充分保留路面细节,但可能存在较多空洞。而泊松重构的三角网是对真实表面的数学逼近,构网更加规则,能够修复空洞,但损失了表面细节,过于平滑与实际不符。因此,为了保证最终重构得到数字化模型的精度,首先在信息采集时要保证场景三维数据的连续性和完整性,试验车辆行驶速度需保持稳定、无人机飞行前需严格按照车辆行驶路线设置控制点与检查点;其次在空地点云精配准时,需要保证足够的ICP迭代轮数,以最大程度降低配准误差;最后在点云重构时,优先使用贪婪三角投影化算法,因为在场景点云收集完整地情况下,其重构效果更优。
将路面、道路标线、建筑、绿化和杆件共五类交通基础设施点云重构完成后,即可进行城市道路场景的整体还原。首先将重构的基础设施三维模型导入建模软件,将路面、建筑等直接重构的三维模型放置于场景中相应位置;对于交通绿化植物、标志牌等重构对象,读取记录各个对象位置、类型、属性的信息表并批量加载,放入场景中的相应位置。最后对导入场景的三维模型进行材质与贴图优化,以获得更加真实的效果,最终效果如图17所示。根据图中真实场景与重构场景的对比,可知各项道路基础设施重构完整度较高、定位准确,满足城市交通基础设施数字化重构的需求。
图17 城市道路场景还原
本文对城市道路基础设施数字化技术进行研究,主要研究成果有:
1)多源空地点云数据的配准融合方法。单一的点云数据来源具有一定局限性,本文使用车载激光扫描和无人机倾斜摄影技术对交通基础设施空间三维信息进行采集,并在此基础上生成点云数据,最后将多源点云数据以配准的方式进行融合。
2)基于深度学习的交通场景点云语义分割方法。使用深度学习网络PointNet对空地融合的道路基础设施点云进行语义分割,并进行高效地网络训练,相较于传统方法更加简便实用。
3)交通基础设施点云重构方法。分别使用贪婪三角投影化算法和泊松曲面重构算法进行点云重构,并将两者重构效果进行比对分析。最后实现了对真实交通基础设施的还原。
本文提出了一套从数据采集到道路基础设施重构的完整流程,具备实用性,能够服务于实际项目需求。但点云分割在与训练数据差异较大的场景下精度有待提升,后续有必要对点云分割算法作做一步研究,寻找最适合交通场景点云分割的方法。