欧元汉,刘 进+,劳冬影
(1.广西大学 计算机与电子信息学院,广西 南宁530004;2.南宁有无科技有限公司,广西 南宁530004)
目前,基于点云的三维重建成为城市建筑建模最常用的技术,根据点云获取方式的不同分为两类[1]:基于激光雷达 (LiDAR)点云和基于多视图像MVS点云的重建。激光雷达点云可以较完整表示建筑物表面信息,但采集过程需要昂贵的设备,不适于大型复杂城市建筑重建;MVS(multi-view-stereo)点云是基于数码相机拍摄的一系列多视图像,利用SFM 和PMVS方法生成密集三维点云,具有成本低廉,自动化程度高等特点,且重建的模型纹理信息丰富[2]。本文研究基于MVS 点云的城市建筑三维重建方法,通过结合预处理和平面拟合,完成对泊松表面模型的改善。
点云三维重建过程主要包括预处理、表面重建、纹理映射等步骤,其中难点是表面重建。由于建筑物几何模型的多样性和复杂型,如何在表面重建过程中生成真实反映建筑物几何信息的水密封闭网格成为建模的核心问题。
近年来,国内外学者针对点云表面重建问题进行了大量研究:ACztireli等提出了移动立方体RIMLS方法[3],能较好的生成三角网格模型,但对于复杂建筑物却不能保证模型封闭,且有许多不连续部分;Marton等的贪婪投影三角化方法[4]能很快完成重建,但该算法基于点云表面光滑、密度变化均匀,对噪声比较敏感,不能在三角化的同时对曲面进行平滑和孔洞修复;Li等提出的网格投影重建[5]也不能够有效填充建筑物表面孔洞;Ohtake提出了一种隐函数模型,多层面单位分割隐函数曲面 (MPU)[6],用来满足从大量收集的点中快速准确地建立曲面的需求,MPU 表面重建的核心是一系列加权函数把这个范围的所有点合计成一个曲面;QY Zhou提出了一种2.5维双轮廓的方法[7],对于2.5维激光点云而言,该算法能同时优化屋顶层表面几何和边界,输出较小拟合误差的无裂纹网格模型,但对三维密集MVS点云不太适用;Kazhdan等[8]提出一种基于隐式函数的三角网格重建算法,将重建问题转化为求空间泊松方程解的问题,进而产生一个的水密封闭的网格,该泊松重建算法对激光点云和MVS点云均有较好的曲面生成效果,能生成水密封闭的网格模型,相对其它重建方法而言,泊松表面重建更适用于MVS点云,但由于该算法基于对象是平滑的,因此对于建筑物的棱边和尖锐特征会比较敏感。
为此,本文提出基于MVS点云的表面重建方法,以建筑物密集MVS点云作为输入,先经过滤波去噪预处理过程,再通过高效RANSAC 拟合平面模型,最后通过泊松表面重建生成网格模型。通过实验对比,经过本文方法处理后的泊松表面模型较处理前有显著改善,几何信息更加完整。该方法可以进一步拓展到大场景建筑物自动建模工作中去。
首先利用无人机拍摄的多角度倾斜航拍照片,通过Bundler获得稀疏点云,接着使用PMVS 生成密集三维点云。使用meshlab从生成的城市区域MVS点云中提取单栋建筑物点云,作为本文实验的数据输入,如图1所示。
图1 单栋建筑初始MVS点云 (426 281个点)
在MVS点云获取过程中,由于特征点匹配不准或数据拼接配准有误等原因,导致生成的点云不可避免地出现一些噪声或离群点。目前大多数的表面重建算法对带有噪声和离群点的点云较为敏感,若不加以处理将导致后续的重构曲面不光滑、表面存在孔洞或裂缝。因此,在表面重建之前,需要对点云进行滤波去噪处理,从而提高重建网格的质量和精度。
本文使用基于统计分析的滤波方法[9]去除MVS点云中噪声及离群点。该方法基于在输入数据中对点到邻近点的距离分布的计算,通过对每个点的邻域进行统计分析,修剪掉不符合一定标准的点。对于每个点,计算它到它的所有邻近点的平均距离。假设得到的结果是一个高斯分布,其形状由均值和标准差决定,平均距离在标准范围 (由全局距离平均值和方差定义)之外的点,即可被定义为异常点,并从数据集中去除掉。具体算法流程如下:
(1)读入初始MVS密集点云,记为样本集S;
(2)搜索点云中任意一点pi∈S的K-近邻Nb(p);
(3)计算当前点pi与其K-近邻所有点之间的平均距离Mean(pi),即
(4)假设所有点的Mean(pi)是一个高斯分布,其中期望μ为全局距离平均值,标准差σ,定义标准范围:μ±α·σ。其中α为给定的阈值,取决于点被分析邻域的大小。
(5)对任意一点pi,若平均距离Mean(pi)不在μ±α·σ范围内,则判断为离群点或噪声点,从点云中剔除。
图2为使用该方法处理后结果,可以看出该算法能有效去除MVS点云边缘及表面的噪声和离群点,同时保持了模型的尖锐和边缘特征。因此,将此方法运用到表面重建之前,有助于提高表面重建的质量。
图2 滤波后结果 (405 284个点)
2.3.1 RANSAC
随机采样一致 (RANSAC)是一种随机参数估计算法[10],通过RANSAC可以从点云中估算出平面模型参数,从而检测平面模型。由于一般RANSAC平面检测在找到点云中的最优平面内点算法即停止,对于平面特征丰富的建筑物而言,该方法难以有效检测出所有平面段,且对于大规模点云执行效率不高。
2.3.2 高效RANSAC平面检测
本文采用文献 [11]中基于局部采样策略和评分函数的高效RANSAC方法,对经滤波处理后的点云进行平面检测。在此之前,使用 “点云分块”来提高处理海量点云的效率,实现平面快速拟合。
方法主要思想与RANSAC类似,不同的是该算法在检测到一个最优平面后保存平面内点,继续对剩余点进行迭代RANSAC处理,最终有效检测出模型中所有平面参数,同时使用得分函数评估和局部采样策略高效检测出点云中所有平面模型。算法具体步骤如下:
步骤1 在点云P= {p1,p2..pn}中随机选择 {p1,p2..pn}3个点;
步骤2 根据 {p1,p2..pn}的位置构造平面Ψ;
步骤3 计算平面Ψ的法向量n与 {p1,p2..pn}的法向量 {n1,n2,n3}的夹角,如果存在一个夹角过大,丢弃Ψ并重回步骤1,否则继续;
步骤4 计算点云P 中其余点pi到Ψ的欧氏距离d(Ψ,pi)以及和法向量n的夹角θi,并统计d(Ψ,pi)小于阈值ε且θi小于阈值α的点的个数作为平面Ψ的得分σ(Ψ),得分函数σ(Ψ)由以下两个公式确定
其中,n(pi)是点pi的法线,n(Ψ,pi)是pi在Ψ上投影的法线,max component(Ψ,)提取了Ψ内由投影过来的最大连通组件点集;
步骤5 重复步骤1至步骤4T 次,选择出最高得分的平面Ψ′,T 由以下公式确定
式中:τ——位于Ψ之外的点所占比例的估计值,pt——经过T 次采样之后选中最优平面的概率,由统计学规律可以得出;
步骤6 记录Ψ′,同时将计入σ(Ψ′)的点从点云P 中去除;
步骤7 重复步骤1至步骤6,直到从剩余点中无法找出一个得分不小于阈值σ的平面。
通过以上步骤能有效检测出点云中可能存在的平面。对于大场景城市建筑重建,需要处理海量点云,而计算机内存有限,直接处理将会影响平面检测的效率。本文采用等格网分割方法[12]对海量点云数据进行分块处理,将点云分割成适合内存大小的块,采用 “分而治之”的思想,分别对各分块点云进行RANSAC检测,从而实现海量点云快速平面拟合。
图3展示了运用点云分块和高效RANSAC 方法对点云进行平面拟合的结果。实验中距离阈值ε设置为0.008,法向量偏差α阈值缺省值为arccos0.8,约37度。由于对点云进行分块处理,大大提高了算法执行的效率。可以看出,拟合后的模型由平面段组成,形状平整、规则,真实反映了建筑物原有特征。
图3 RANSAC平面拟合结果
为了验证本文方法重建效果,使用无人机航拍141 张6000×4000像素的数码照片,通过Bundler和PMVS获得密集三维点云。实验运行环境:CPU Intel E3-1230,主频3.7GHz,内存8 GB,64 位操作系统,运行平台为Microsoft Visual Studio 2010,使用OpenCV 和PCL库。
图4展示了4种常用表面重建方法对单栋建筑物的重建结果:泊松重建产生一个水密封闭的网格模型如图4 (a)所示,表面平整无裂缝、墙壁垂直性较好;2.5维双轮廓方法产生的模型如图4 (b)所示屋顶面不平整、墙壁畸变严重;Marching cubes RIMLS重建如图4 (c)所示不能保证封闭且有许多不连续部分,屋顶缺失严重;多层面单位分割(MPU)表面重建如图4 (d)所示大体上和泊松模型接近,但垂直墙壁缺失严重,表面凹凸不平。表1 显示了4种方法重建单栋建筑物的耗时。通过以上对比,泊松重建生成的模型质量最好,同时算法简单易执行,比较适用于建筑物MVS密集点云的重建工作。
图5显示了应用本文处理方法前后泊松表面重建结果对比。初始泊松网格如图5 (a)、图5 (c)所示基本能达到水密和无裂缝,但在几何细节方面效果不佳,如表面不够光滑平整、边缘不够锋利等。通过对初始点云进行预处理和快速平面拟合,生成的泊松模型如图5 (b)、图5 (d)所示平面及尖锐特征得以恢复,模型质量明显改善。通过对比图5 (a)、图5 (b),处理后的泊松模型表面更加光滑,尖锐特征明显,同时去除了之前生成的一些多余形状。对比图5 (c)、图5 (d),屋顶面几何形状更加明显,边缘缺失部分得以修复,边缘更加锋利规则。
图4 几种表面重建方法重建结果
表1 几种方法重建耗时对比
图5 使用本文方法处理前后泊松重建结果
为验证本文方法的适用性,将实验对象拓展到大场景城市建筑,重建流程如图6所示,依次是平面拟合和泊松重建的效果。可以看出,本文方法对大场景城市建筑具有不错的重建能力。
图6 大场景城市建筑重建过程
针对当前泊松等表面重建方法对MVS点云重建效果不佳的问题,本文提出了一种结合点云滤波及平面拟合来改善泊松重建质量的方法。通过统计分析滤波方法有效去除点云表面和边缘的杂点,使用点云分块和高效RANSAC 完成点云平面模型的快速拟合。实验结果表明,本文方法具有一定的优越性,可以有效恢复建筑物的平面和尖锐特征,改善了泊松重建模型的质量。最后,将本文方法应用于大场景建筑物建模中,验证了该方法较好的适用性,对于虚拟城市三维环境的构建将会起到一定的作用。后续的工作将会围绕大场景下重建的效率以及某些细节特征的恢复来展开,进一步提高城市重建的质量和完整性。
[1]Musialski P,Wonka P,Aliaga DG,et al.A survey of urban reconstruction [J].Computer Graphics Forum,2013,32(6):146-177.
[2]Vanegas CA,Aliaga DG,Wonka P,et al.Modelling the appearance and behaviour of urban spaces [J].Computer Graphics Forum,2010,29 (1):25-42.
[3]ztireli AC,Guennebaud G,Gross M.Feature preserving point set surfaces based on non-linear kernel regression [J].Computer Graphics Forum,2009,28 (2):493-501.
[4]Marton ZC,Rusu RB,Beetz M.On fast surface reconstruction methods for large and noisy point clouds[C]//IEEE International Conference on Robotics and Automation,2009:3218-3223.
[5]Li R,Liu L,Phan L,et al.Polygonizing extremal surfaces with manifold guarantees[C]//Proceedings of the 14th ACM Symposium on Solid and Physical Modeling.ACM,2010:189-194.
[6]WEN Peizhi,NING Ruhua,HUANG Jinfang.Parameter optimization based mutil-level partition of unity surface reconstruction [J].Computer Application,2011,31 (7):1811-1814(in Chinese).[温佩芝,宁如花,黄锦芳.基于参数优化的多层次单元划分曲面重建 [J].计算机应用,2011,31 (7):1811-1814.]
[7]Zhou QY.Neumann U.2.5Ddual contouring:A robust approach to creating building models from Aerial LiDAR point clouds[M]//Computer Vision-ECCV.Berlin:Springer Berlin Heidelberg,2010:115-128.
[8]Bolitho M,Kazhdan M,Burns R,et al.Advances in Visual Computing [M].Berlin:Springer Berlin Heidelberg,2009:678-689.
[9]Zhang B,Cao Q.Proceedings of 2013Chinese Intelligent Au-tomation Conference[M].Berlin:Springer Berlin Heidelberg,2013:1-10.
[10]ZHOU Chunlin,ZHU Hehua,LI Xiaojun.Research and application of robust plane fitting algorithm with RANSAC [J].Computer Engineering and Applications,2011,47 (7):177-179 (in Chinese). [周春霖,朱合华,李晓军.随机抽取一致性平面拟合及其应用研究 [J].计算机工程与应用,2011,47 (7):177-179.].
[11]Schnabel R,Wahl R,Klein R.Efficient RANSAC for pointcloud shape detection [J].Computer Graphics Forum,2007,26 (2):214-226.
[12]Johnson-Roberson M,Bohg J,Bjorkman M,et al.Attention-based active 3D point cloud segmentation [C]//IEEE/RSJ International Conference on Intelligent Robots and Systems,2010:1165-1170.