2017年2月农业机械学报第48卷第2期doi:10.6041/j.issn.1000-1298.2017.02.025基于点云数据的树木三维重建方法改进唐丽玉1,2张浩1,2黄洪宇1,2陈崇成1,2(1.福州大学空间数据挖掘与信息共享教育部重点实验室,福州350002;2.福州大学地理空间信息技术国家地方联合工程研究中心,福州350002)摘要:激光点云数据以其详尽、高精度的三维信息,在森林参数估算、精确重建植物形态结构三维模型方面具有特殊优势。为进一步提高三维模型精度,综合集成多种算法,在改进现有PC2Tree软件基础上,基于点云数据进行树木三维重建。首先根据树木局部点云的主方向相似度和局部点云轴向分布密度分离枝干与树叶;其次采取水平集和最小二乘法提取枝干部分的骨架点,通过下采样方法提取冠层部分的特征点;最后根据骨架点和特征点拓扑结构重构树木三维模型。以樟树为例,分析枝叶分割精度,自动分割与手动分割结果相近;以无叶的鸡蛋花树为例,分析重建模型精度,模型主枝长度相对误差范围集中在0~8.0%,半径相对误差范围集中在0~10%;枝条重建过程避免了噪声点的干扰,对噪声点具有一定的不敏感性;重建三维模型与原始点云吻合度高,基本解决了冠层内部枝干遮挡严重带来的三维建模困难的问题;依据模型提取树高、冠幅、胸径、体积等参数,增加了重建模型的应用范围。关键词:树木;三维重建;激光点云;主方向;分割;骨架点中图分类号:TN958.58;TP391.9文献标识码:A文章编号:1000-1298(2017)02-0186-09收稿日期:20160526修回日期:20160711基金项目:国家自然科学基金项目(41471334)、福建省科技引导性项目(2016Y0058)和福建省自然科学基金项目(2014J01125)作者简介:唐丽玉(1972—),女,研究员,博士,主要从事地学可视化、虚拟地理环境和虚拟植物研究,E-mail:tangly@fzu.edu.cn通信作者:黄洪宇(1971—),男,副研究员,主要从事激光雷达和无人机三维数字化研究,E-mail:hhy1@fzu.edu.cnImprovedMethodfor3DReconstructionofTreeModelBasedonPointCloudDataTANGLiyu1,2ZHANGHao1,2HUANGHongyu1,2CHENChongcheng1,2(1.KeyLaboratoryofSpatialDataMiningandInformationSharing,MinistryofEducation,FuzhouUniversity,Fuzhou350002,China2.NationalEngineeringResearchCentreofGeospatialInformationTechnology,FuzhouUniversity,Fuzhou350002,China)Abstract:Pointcloudobtainedfromterrestriallaserscannercontainsdetailed,highprecisionthree-dimensional(3D)surfacecoordinates,whichisofspecialimportanceforforestparameterestimationandaccuratereconstructionofplantmodel.Animprovedmethodfortreebranchingstructurereconstructionwasproposedbasedonthefactthatacleanpartitionofbranchesandleavesformtreepointcloudwasverydifficultifitwasnotimpossible.Firstly,principaldirectionateachpointwasestimatedwithchordandnormalvectors(CAN),andpointcloudfromthebranchesandleaveswasseparatedbyusingboththesimilarityofprincipaldirectionbetweenneighboringpointsanddistributiondensityofpoints.Secondly,skeletonnodesandcorrespondingradiiwerecomputedfrommainbranchesbyusinglevelsetsandleastsquaremethod.Fortheleaves,thecrownvolumewasdividedintoequal-sizedvoxels,allthepointsinavoxelwererepresentedbythevoxel’scentroid,andallcentroidpointsformedfeaturepointsofthecrown.Finally,treemodelwasreconstructedbycylinderfittingbasedonthetopologyofskeletonnodesandfeaturepoints.Segmentationresultsaccuracyanalysisandfourdifferenttreespeciesmodelreconstructionexampleswereintroduced.Segmentationaccuracyanalysisandmodelreconstructionqualityevaluationshowedthattheapproachwasrobustandinsensitivetonoise;thereconstructedtreemodelswereingoodagreementwiththepointcloud.Themethodwasalsoabletoextractstructuralparameters,includingtreeheight,diameteratbreastheight(DBH)andvolumeparameters.Keywords:tree;3Dreconstruction;laserpointcloud;principaldirection;segmentation;skeleton
引言虚拟植物已被认为是一种潜在的有利于理解、表达和模拟植物形态结构生长发育的有效工具[1]。基于植物形态结构的精确模拟使虚拟植物实现了面向多层次、多方面的应用,如植物生长对资源的竞争、光辐射模拟研究[2]等。三维激光扫描技术在非破坏性的前提下能够自动、快速、准确、高密度地获取物体表面的三维采样点(亦称点云),其优点受到广泛关注,在农林业资源调查中有着很大的应用潜能,如林分结构研究[3]、树木三维建模[4]等。骨架点提取是直接利用点云数据构建三维树木模型的关键环节。骨架点的提取方法大多利用点云的邻域信息,可归纳为基于水平集、拉普拉斯、聚类和图论的方法[5]。VERROUST等[6]较早提出基于水平集的方法,具有一定的健壮性、简单易实现,但以质心表示骨架导致骨架半径精度较低。基于拉普拉斯的算法源于ROSA(Rotationalsymmetryaxis)方法[7],可以处理不完整点云数据,但在确定ROSA点时,要求点云呈类圆柱体分布。近年来,出现了不依赖于邻域信息提取骨架的方法,骨架直接以枝干结构图(Branch-structuregraph,BSG)的形式表示[8],但比较依赖于点云数据的密度,重建模型中的枝干生长方向容易沿着树冠表面前进生长。王晓辉等[9-10]基于水平集的算法提取骨架点,根据骨架点的分级和访问次数计算枝条半径,实现了树木骨架点的提取和枝条的模拟,并研发了单株木建模软件原型PC2Tree,适用于多次或单次扫描的点云树木三维重建,模型真实感强;不足之处在于部分枝条半径拟合精度低,局部重建枝条与原始点云的吻合度稍差。基于点云几何属性的分割方法大致分为:①模型拟合法,典型代表为RANSAC(Randomsampleconsensus)算法[11-12]。②区域增长法,如GORTE[13]利用TIN模型结合区域增长法用于点云分割。③聚类法,常见的有模糊C均值法[14]、K-means法[15]等,与区域增长算法不同,聚类算法不需要指定种子点。以上3种算法对室内小部件或建筑等比较规则的物体具有较好的分割效果,而对结构复杂、千姿百态的树木难以实现枝叶分割。代明睿等[16]利用点云深度图像计算主方向,并以主方向为依据,将树木的总体点云分割为枝干和叶子2部分;之后出现了直接计算点云主方向的方法[17-18],即法截线拟合法(Chordandnormalvectors,CAN),与3次曲面拟合法[19]和基于网格化的估算方法[20]相比,抗噪能力更强,更适用于树木点云的主方向计算。随后,ZHANG等[21]利用移动圆柱体提取枝干骨架点,以冠层特征点作为冠层的骨架点,利用分级粒子流连接骨架点,所建模型比LIVNY等[8]的枝条重建效果好,但细枝模拟真实感差。AITEANU等[22]在文献[21]的基础上采用圆柱主方向思想,计算点云密集区枝干的中心点,并作为主干部分的骨架点,该方法优点是可以忽略点云密集区小比例的数据缺失,重建后的枝条半径精度相对较高,但重建枝条模型时需进行椭圆调整,其判断条件较繁琐。根据现有技术,利用点云数据重建植物三维模型大致分为2类,即基于分割技术的植物建模法和直接建模法。直接建模法是将采集得到的所有点云统一处理、建模,该方法的好处是减少了分割枝叶的操作,缺点是重建模型精度低。本文针对PC2Tree采用直接建模法的不足,集成分割等多种算法,提高树木三维自动重建精度。1材料与方法综合集成多种算法的优势,形成基于点云数据进行树木自动三维建模的方案。根据局部点云主方向的相似度和局部点云轴向分布密度进行树木枝干和树冠的分割;基于水平集的方法提取树干骨架点,采用最小二乘法拟合枝干骨架点半径;通过下采样[23]技术对树冠点云进行抽稀,获得冠层部分的特征点,通过Prim算法[24]确定特征点拓扑结构,根据半径传递思想给特征点半径赋值;根据骨架点和特征点拓扑结构,利用广义圆柱体模拟树木枝条;最后,映射相应纹理,形成树木的三维模型。总体流程如图1所示。图1点云树木三维重建过程Fig.13Dsingletreereconstructionprocessbasedonpointclouddata1.1数据获取与预处理以福州大学怡山校区(119°16'E、26°4'N)内的赤松(PinusdensifloraSieb.etZucc.,PdS)、阴香(CinnamomumburmanniBlume,CbB)、樟树(CinnamomumcamphoraPresl,CcP)和校园外附近的781第2期唐丽玉等:基于点云数据的树木三维重建方法改进
鸡蛋花树(Plumeriarubra‘Acutifolia’,PrA)为例进行研究。赤松为常绿乔木,树皮成不规则鳞片状,树枝平展成伞状树冠,针叶长8~12cm,径约1mm。阴香为常绿乔木,树皮光滑呈灰褐色,叶互生或近对生,长5~12cm。樟树为常绿大乔木,树皮黄褐色有不规则纵裂,叶互生成卵状椭圆形。鸡蛋花树为落叶灌木,枝条粗壮、肉质茎,落叶后枝条光秃,树干弯曲自然。本研究使用2种地面激光扫描仪进行数据采集,仪器参数如表1所示。在距离目标树木10m范围内架设扫描仪进行数据采集,具体实施方案如下:①利用RIEGLVZ400型三维激光扫描仪对阴香树、樟树进行扫描,扫描角分辨率为0.08°。由于扫描仪设备自身的限制(垂直视野范围只有100°),为获取垂直方向上更多枝干细节,分别以竖直模式(图2a)围绕树木扫描一周后(3站),再借助云台以水平模式(图2b)从冠层下面垂直扫描(1站);采用图3鸡蛋花树去除噪声点结果对比(红色为噪声点)Fig.3ComparisonforremovingnoiseofPrA(noisewasshowninred)RIEGL配套软件RiSCANPRO,手动选取同名点云,以第一站数据为基准进行多站数据的配准、拼接,拼接精度控制在0.005m。②使用FAROFocus3DX130型三维激光扫描仪,参数设置为10m内,点间隔7.67mm,借助靶球对赤松(3站)、鸡蛋花树(4站)分别进行扫描;采用软件FAROSCENE进行多站数据拼接。③使用卷尺实地测量鸡蛋花树枝条长度、周长,测量赤松、阴香1.3m处的胸径(图2c)。④借助全站仪(南方NTS332R型)测量赤松、阴香、樟树树高及冠幅。表1三维激光扫描仪参数Tab.1Parametersofterrestriallaserscanners参数RIEGLVZ400型FAROFocus3DX130型波长近红外近红外扫描距离/m1.5~4000.6~130垂直视场角/(°)-40~60300水平视场角/(°)360360精度/mm5(100m处)2(25m处)由于获得的数据夹杂大量噪声点,需要去噪。根据离散噪声点密度比较稀疏的特性,采用图2数据采集策略示意图Fig.2DatacollectionbyterrestriallaserscannersandtreemeasurementStatisticalOutlierRemoval滤波器[25]去除噪声点。具体过程为:首先利用kDtree中的邻域查询功能,对原始点云中的每个点查找相应的K个近邻点;其次计算所有点到其对应K个近邻点的平均距离d;然后计算得到所有平均距离d的均值μ和标准差σ;最终若一点的平均距离d在标准范围(μ±ασ)之外,则该点被定义为离群点并去除,α值根据点云密度而定。该滤波器对于不同研究对象,参数选择略有不同,如图3所示,当α=0.5时部分枝干点云被作为噪声点去除;α=1.0、K=100时部分噪声点未被去除(图3c椭圆内点云与图3a比较),α=1.0、K=60时噪声点去除情况最佳。此外,StatisticalOutlierRemoval滤波器对树木冠层部分的点云具有不同程度的去除功能。根据研究目的,被去除的点云对主枝的重建影响不大,在保留枝干点云前提下可以去除较多冠层部分的点云。1.2点云主方向计算在微分几何中,曲面上任意一点的最大和最小曲率反映了曲面在该点处最大和最小2个不同方向上的弯曲程度,且2个方向所对应的法平面方向垂直,这2个方向即为主方向[26]。本研究采用最小曲率对应的方向作为树木点云的主方向,并作为树木点云的分割依据。每个点云数据主方向的估算过程如图4所示。计算表面上一确定点P的法向量近似于估计表面上过P点的相切面的法线,采用主成分分析法881农业机械学报2017年
图4法截线拟合法流程图Fig.4Flowchartofchordandnormalvectorcalculation(Principalcomponentanalysis,PCA),利用协方差矩阵的最小特征值的特征向量作为点P的法向量,计算公式为C=1K∑ki=1(Pi-P)(Pi-P)TCVj=λjVj(j∈(0,1,2{))(1)式中K———点P的近邻点个数P———最近邻元素的三维质心λj———协方差矩阵的第j个特征值Vj———第j个特征值对应的特征向量将点P及其近邻点的坐标和法向量从全局坐标系转到局部坐标系,局部坐标系原点为P点,记P点的法向量为(nx,ny,nz),3个坐标轴表示为X(=nxnznxnx+nyn槡y,nynznxnx+nyn槡y,-nxnx+nyn槡)yY(=-nynxnx+nyn槡y,nxnxnx+nyn槡y,)0Z=(nx,ny,nz)(2)图5樟树枝叶分割示意图Fig.5SegmentationofbranchesandleavesofCcP在局部坐标系下,根据文献[17-18]提出的法截线拟合法计算P点主方向,再将P点主方向从局部坐标系下转换到全局坐标系。重复以上步骤计算所有点云的主方向,以樟树为例,计算出的点云主方向如图5中红线所示。1.3树木枝叶分割根据树木点云的分布情况,位于枝干部位的点云分布规律大致呈圆柱状态,这些点的主方向几乎一致,叶子部分的点云及其对应的主方向杂乱无章。以点P为中心(图5b),以点P的主方向(图5b黄色矢量)为轴向构建圆柱体C(图5黄色圆柱),位于该圆柱体C内的其他点构成点集S={Pj},(j=1,2,…),为判断点集S在圆柱内沿轴线均匀分布,将点集S内的点投影到圆柱体C的轴线上,再将圆柱体C的轴线分为n段,统计投影点所在的分段,这些分段的总数与n的比值作为圆柱体内点云的轴向分布密度,其密度大于阈值1时进行下一步操作;判断圆柱体C内的每一个点,将其主方向与点P的主方向夹角小于一定阈值2的点数记为Nsame,Nsame与S内总点数Nall的比值大于阈值3时,圆柱体C内的点标记为枝干点。这种方法对树木的主干部分分割效果较好,对于树木枝条末端处,枝条半径较小且扫描的点云密度较小,会造成过分割现象,同时,分割过程对噪声点有一定的去除功能。分割后较小的点云簇,对后续骨架点的提取作用不大,采用RadiusOutlierRemoval滤波器[27]将其去除。1.4枝干骨架点与冠层特征点提取骨架点位于枝干几何中心,能够有效表征树木的几何形态。经过树木点云的枝叶分割,点云整体分割成叶子部分和枝干部分,为重建树木枝干三维模型,对属于枝干部分的点云需要提取骨架点。文献[10]中骨架点位置用水平集的质心表示,枝条半径根据骨架点访问次数利用经验公式计算,精度较低。针对该不足,提出改进方法,具体分为以下7个步骤:(1)查找每个点的K个最近邻点。(2)在K个最近邻点中构造无向邻域图,邻域图中连接边的权重为2点的欧氏距离。(3)指定树木根节点,根据Dijkstra算法计算枝干中所有点到根节点的最短路径,从而构成测地图。(4)根据测地图中每个点到根节点的测地距离,将点云数据分层生成水平集,分层间隔由用户指定。(5)同一分层的点集按欧氏距离进行聚类,将不同枝条的点云分开。(6)根据聚类后点集中所有点云主方向的平均值和聚类后点集的质心构造最优切平面S,将点集投影到该平面S并采用最小二乘法进行圆拟合(图6),圆半径r即为枝条半径,圆心O即为骨架点。(7)根据骨架点所处的水平集不同,按照空间981第2期唐丽玉等:基于点云数据的树木三维重建方法改进
图6枝干骨架点提取Fig.6Extractingstemskeletonfrompointcloud近邻的方法,利用上层骨架点寻找处于下层的骨架点,建立骨架点拓扑结构并生成骨架线。相对于枝干部分,隶属于叶子部分的点云分布无规律,成离散状态,没有相应的骨架点支撑其几何形态。为表达树冠轮廓,重建逼真树木三维模型,采用VoxelGrid[23]点云抽稀方法(即下采样)提取叶子部分的特征点,然后引导特征点生长形成枝条。该方法具体描述为:设定体素大小Ω,对分割出来的叶子部分进行体素剖分,计算每个体素的质心,该质心即为相应的特征点;用K-means聚类算法[15]判断特征点中每一点所属的主枝骨架点,即:主枝骨架点作为初始种子点,K-means聚类算法迭代一次,获得不同的点簇;然后对每个点簇分别用Prim算法获得相应的最小生成树,剔除路径较短的细枝并平滑保留的细枝,从而确定冠层特征点中各点的拓扑结构。由于不能精确计算由特征点引导生成的细枝半径,采用半径传递的思想,将细枝的半径设定为其父节点对应枝条半径的0.8倍,初始值由位于主枝上的父骨架点决定;为避免冠层末端细枝半径过小,设定细枝最小半径为0.005m。Ω对重建结果的影响如图7所示,Ω=1.0m时重建细枝比较僵硬;Ω=0.5m时重建枝条平滑且接近真实枝条数量,效果最佳;Ω=0.3m时细枝个数急剧增加,与目标阴香树枝条数量明显不符。图7体素大小Ω对阴香树重建模型的影响Fig.7InfluenceofvoxelsizeΩon3DtreemodelofCbB2试验结果与分析采用VisualStudio2010C++集成开发环境、OpenGL图形标准库、开源库PointCloudLibrary(PCL)实现基于点云的植物三维自动建模。为验证本文方法的可行性,选取多种不同树种进行试验。试验1为单株四季长青的樟树,用本文改进分割方法获取的结果与手动分割枝叶的结果作对比;试验2为落叶的鸡蛋花树,用重建模型参数与现场实测数据进行比较,目的是在以往目视检查的基础上,用数据的形式定量分析重建模型的精度;试验3综合展示3种非落叶树木的重建过程及结果,同时目视检查其精度,并根据模型进行树木参数提取。2.1试验1在本试验中,采用2种方法进行樟树点云的枝叶分割,即基于点云主方向的自动分割法和手动分割法,目的是评价改进分割方法的精确度。手动分割使用RiSCANPRO完成;通过对不同参数组合分割结果的对比,自动分割时阈值1设为0.7,阈值2设为30°,阈值3设为0.8,其结果较好。2种方法的分割结果如图8所示,由图可知,自动分割方法能较好的分割出属于枝干部分的树木点云,但部分枝条断裂为若干段。部分枝条分割有误,这些问题主要由扫描点稀疏、分布不均匀和噪声点去除不干净造成。091农业机械学报2017年
2.2试验2以鸡蛋花树(图9)为对象,采用改进的建模方法,建立三维模型。通过与原始点云对比,可以定性、直观地看出,对于大多数枝条,创建的模型与点云数据的重叠或吻合度较高;在一些枝干的分叉处和末梢,模型和点云存在微小的分歧。图8樟树点云枝叶分割结果Fig.8SegmentationresultsofCcP图9鸡蛋花树模型及点云对照Fig.9ModelandpointcloudofPrA为定量验证重建的各枝条模型长度和半径精度,利用卷尺,实地测量鸡蛋花树的每一节枝条长度和周长,以测量值作为基准值(测量值的长度误差为±5mm,周长误差为±2mm),实测值与模型值的比较见图10。由图可知,模型枝条长度与实测长度的均方根误差为0.013m,模型枝条半径与实测半径的均方根误差为0.001m。根据统计可得知:长度误差范围为0~12.38%,大部分介于0~8%之间,半径误差范围为0~18.18%,大部分介于0~10%之间,重建模型的精度比较高,可以直接反映非落叶树木枝干的重建精度。图10鸡蛋花树模型精度分析Fig.10PrecisionanalysisofreconstructedmodelofPrA2.3试验3利用改进的基于点云数据的树木重建方法,对赤松、阴香、樟树3种树木进行重建,重建各阶段结果如图11所示。首先根据法截线拟合法计算预处理后的原始点云的主方向,以各点及其相应的主方向构建圆柱,圆柱半径均为2倍扫描间距,圆柱高度均为10倍扫描间距,主枝分割结果如图11b所示;其次,提取主枝的骨架点,下采样冠层部分获取冠层特征点(图11d);然后根据骨架点和特征点重建枝条三维模型,结果如图11e所示;最后,对枝条三维模型映射纹理,生成最终树木模型,结果如图11f所示。图12~14为目视检查的方法比较重建后的枝条模型与最终模型的效果,其中各图图a为重建枝条模型与分割后的枝191第2期唐丽玉等:基于点云数据的树木三维重建方法改进
干点云进行叠加展示,图b为重建后的完整模型与原始点云叠加展示,图c为重建后的树木三维完整模型。根据本研究改进的方法对树木重建后的三维模型提取树高、胸径、冠幅和体积,并以实测数据为真值统计相对误差,如表2所示(樟树在1.3m处分成3枝,其胸径为平均值)。图15为根据相同点云数据重建出的三维模型,其中图15a为利用文献[10]描述的方法对阴香树进行重建的效果图,能体现树木的形态结构特征,但部分枝条扭曲,而本文改进的方法枝条重建效果良好(图14a)。从图15b与图14a对比可以看出,由于未进行枝叶分割,枝干附近的叶子点云影响骨架点位置,PC2Tree重建后的枝条明显偏离枝干点云;从图15c看出,枝条半径根据骨架点访问次数计算获得,精度相对较低,其中图15c上方的图来自于图14a。图11树木模型重建Fig.11Threeexamplesof3Dtreereconstructionfrompointcloud图12赤松重建模型比较Fig.12Comparisonof3DreconstructionfromPdSpointcloud表2模型参数Tab.2Parametersofreconstructedmodels树种树高/m提取值实测值树高误差/%冠幅/m提取值实测值冠幅误差/%胸径/m提取值实测值胸径误差/%体积/m3提取值赤松11.2410.8453.6411.5211.9543.630.3010.3154.440.721阴香8.067.8243.0213.0013.3432.570.2750.2832.830.573樟树8.698.2375.5010.3410.0602.780.1370.1498.050.676291农业机械学报2017年
图13樟树重建模型比较Fig.13Comparisonof3DreconstructionfromCcPpointcloud图14阴香重建模型比较Fig.14Comparisonof3DreconstructionfromCbBpointcloud图15PC2Tree重建阴香枝干模型Fig.153DreconstructionbranchmodelofCbBusingPC2Tree3结束语综合集成多种算法的优势,形成基于地面激光点云数据进行三维树木自动建模的方法,以自动化的方式实现树木点云枝叶分割与三维模型重建。首先基于树木局部点云的主方向相似度和局部点云轴向分布密度对单株树木点云进行分割以分离枝干与树叶。其次分别提取枝干部分的骨架点和冠层部分的特征点。最后根据骨架点和特征点拓扑结构对树木进行三维重建。通过对比分析,采用最小二乘法拟合枝条半径,提高了基于点云数据重建树木模型时主枝半径的精度;弱化冠层部分细小枝条的重建效果,一定程度上解决了冠层细枝重建困难的问题;重建模型以适量枝条恰当表现树木轮廓的凹凸特征,层级分明。此外,主枝重建过程对噪声点具有一定的免疫力:预处理阶段去噪处理;法截线拟合法具有抗噪性;点云分割过程剔除部分噪声点。用重建模型的参数与现场实测数据进行比较,目的是在以往目视检查的基础上,用数据的形式定量分析重建模型的精度。试验表明,本文方法对基于地面激光雷达扫描获取的树木点云具有良好的分割效果;三维重建方法适用性较广且模型精度较高;重建后的枝条舒展灵动,视觉效果良好;根据重建模型可以进行树高、冠幅、胸径、体积等参数的提取,增加了模型的应用范围。391第2期唐丽玉等:基于点云数据的树木三维重建方法改进