CN115131571A - 一种基于点云预处理六领域的建筑物局部特征点识别方法 - Google Patents
一种基于点云预处理六领域的建筑物局部特征点识别方法 Download PDFInfo
- Publication number
- CN115131571A CN115131571A CN202210621438.6A CN202210621438A CN115131571A CN 115131571 A CN115131571 A CN 115131571A CN 202210621438 A CN202210621438 A CN 202210621438A CN 115131571 A CN115131571 A CN 115131571A
- Authority
- CN
- China
- Prior art keywords
- point
- point cloud
- points
- data
- coordinate system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
一种基于点云预处理六领域的建筑物局部特征点识别方法,包括以下步骤:步骤一:经过预处理的建筑物点云放入笛卡尔坐标系中;步骤二:进行点云数据滤波过程;步骤三,经过步骤二点云滤波之后,得到一个滤除噪声点的点云结果集合;步骤四,获取抽稀点云结果集,将获取的结果集显示在坐标系中观察;步骤五,开始六领域拟合,在点云空间中生成六个方向的误差球;步骤六,通过遍历点云误差球的方式判断立面空间位置关系;步骤七,分别将空间内的点云的角点、棱点、面点进行拟合连接;步骤八,对点云进行角点、棱点、面点数据导出形成最终结果集;步骤九,通过形成的最终点云结果集形成建筑物整体框架。本发明提高了建筑物测绘数据的获取效率。
Description
技术领域
本发明涉及到一种基于点云预处理六领域的建筑物局部特征点识别方法。
背景技术
建筑物提取在违章建筑监管、城市空间规划、土地资源利用等方面具有重要作用,也是当前遥感影像分析和Lidar点云数据处理的研究热点。但由于遥感影像中同类地物的光谱统计特征存在较大的光谱异质性,分类提取过程中易受阴影、道路、植被等噪声的干扰,造成建筑物邻近地物的分类错误;同时,Lidar数据的离散性,建筑物形状和层次结构的复杂性,部分点云的不连续性等因素,都会使得提取的建筑物边缘结果出现锯齿化、缺乏规整性等问题。
机载激光雷达技术因具有环境约束小、操作成本低、采集速度快、数据精度高、可全天候获取地物空间信息等优势,已成为自动提取建筑屋顶轮廓线辅助建筑三维重建的主要数据源。现阶段对Lidar点云进行建筑物轮廓提取重建的研究主要有两种:一种是将点云数据栅格化,并转化为深度影像,然后对这些深度影像采用提取图像特征线的方法来完成;另一种是直接对点云数据进行提取重建。现阶段大多数学者提取的建筑物轮廓都是单独的建筑物外围立面或平面轮廓线,对于三维轮廓线及室内轮廓线提取的研究依旧很少。
发明内容
为了克服现有技术的不足,本发明提供一种基于点云预处理六领域的建筑物局部特征点识别方法,主要分为点云降噪、点云抽稀与点云拟合三大步骤,该方法不仅可以提取建筑物的平面轮廓,还可以准确的提取建筑物的立面轮廓,包括点、线、面等特征结构的提取,对提取出来的各个位置的特征点进行计算,可以获得建筑物的各个位置信息;提高了建筑物测绘数据的获取效率,对建筑物的三维重建也提供了一定的思路。
为了解决上述技术问题本发明提供如下的技术方案:
一种基于点云预处理六领域的建筑物局部特征点识别方法,所述方法包括以下步骤:
步骤一:经过预处理的建筑物点云放入笛卡尔坐标系中,该坐标系中包括直角坐标系与斜坐标系,能够很好地度量三维模型的空间位置;从激光雷达中获取点云数据集,需要的文件中的数据格式分别为forward、left、up的数据,在程序中初始化三个方向的点集,得到点云集合Origin(f,l,u);
步骤二:进行点云数据滤波过程,内容为:将Lidar点云数据经过步骤一的处理之后,在笛卡尔坐标系中进行相对位置滤波处理,由于获取点云数据来源不同,不同数据类型的点云滤波的效果会不同,这里使用点云拓扑邻域滤波方法来进行自定义滤除,得到一个滤除噪声的点云结果集结果集R(x,y,z);
步骤三,经过步骤二点云滤波之后,得到一个滤除噪声点的点云结果集合R(x,y,z),为了将处理过的点云集合进行抽稀,降低处理的点云数据量,加快点云处理的速度的同时提高点云的可视化程度,对点云集合R(x,y,z)进行点云抽稀,从而降低点云密度的同时不丢失点云的特征,获取抽稀点云结果集output(x,y,z);
步骤四,获取抽稀点云结果集output(x,y,z),将获取的结果集显示在坐标系中观察,人工判断点云抽稀结果,如果抽稀结果不直观再次重复进行步骤三;
步骤五,开始六领域拟合,在点云空间中生成六个方向的误差球;
步骤六,通过遍历点云误差球的方式判断立面空间位置关系;
步骤七,分别将空间内的点云的角点、棱点、面点进行拟合连接;
步骤八,通过步骤七的规则整合角点、棱点、面点数据,对点云进行角点、棱点、面点数据导出,形成最终结果集;
步骤九,根据步骤八拟合的局部角点与棱点,首先在结果集中连接各个角点,形成建筑物立面框架,设为BS,由于角点是由棱点与面点在六领域方法拟合下生成的,表明大多数棱点与面点都维持在立面框架BS周围;计算各个点云与角点拟合成的立面框架的误差,通过判断误差值的大小来判断是否需要重建立面框架BS。
进一步,所述步骤一包括如下步骤:
1.1使用函数init(),将经过预处理的建筑物点云放入笛卡尔坐标系中,分别将获取的文件中的forward、left、up数据输入到该函数中,函数中转换规则如下:
1.1.1将获取的forward数据对应笛卡尔坐标系x轴方向数据:f=forward;
1.1.2将获取的left数据对应笛卡尔坐标系y轴方向数据:l=left;
1.1.3将获取的up数据对应笛卡尔坐标系z轴方向数据:u=up;
1.2函数返回具体点的(f,l,u)格式的数据;
1.3处理所有点云,记该格式的点云数量为n,记作点云集合Origin(f,l,u)。
再进一步,所述步骤二包括如下步骤:
2.1由原始点云文件获得点云的原始测量位置,记作其为原点O,并以该位置为中心点,根据步骤一中1.3中得到的Origin(f,l,u)格式的数据,计算根据当前原点并得到相对点云原点O的坐标表达式(x,y,z),公式如下:
由该公式获得的数据集合设为W(x,y,z)。O(x)为原点O在笛卡尔坐标系中的x坐标值,O(y)为原点O在笛卡尔坐标系中的y坐标值,O(z)为原点O在笛卡尔坐标系中的z坐标值,f、l、u分别为步骤一中的原始格式数据Origin(f,l,u)的某个具体点的取值;
2.2从数据集合W(x,y,z)中随机选取三个点N1、N2、N3,在坐标系中拟合出点云拓扑圆,点云拓扑圆为三个点N1、N2、N3组成的临时平面G,人工设置滤波邻域的领域半径系数λ,根据这个邻域半径系数λ调整滤波范围;
2.3观察结果集R(x,y,z)点云数据集合在坐标系中的表现情况,根据实际物体表现的人工经验判断,如果表现出来的点云情况不符合实际物体的形状,可以继续重复步骤2.2,同时修改半径系数λ,其中半径系数λ与点云噪声α成反比,点云噪声α反映了在点云空间中的噪声点数量情况,其满足以下公式:
α=n/λ
其中n为步骤1.6中的点云数量,λ为邻域半径系数,由人为定义初始值,α为点云噪声;可以根据该公式关系,调节半径系数λ的大小来控制点云噪声的情况;
优选的,所述步骤2.2中,拟合的步骤如下:
2.2.1从数据集合W(x,y,z)中随机选取三个点N1、N2、N3;步骤如下:
2.2.1.1随机值由随机函数Random()计算,其功能是计算出来一个随机的数值,将集合W(x,y,z)输入到HashMap中,HashMap是一个计算机中保存数据的结构,其功能是可以根据key快速找到value;
2.2.1.2将x坐标设置为HashMap的key,集合W(x,y,z)坐标为HashMap的value,取集合W(x,y,z)中的x值为一个临时集合T(x);
2.2.1.3取点云坐标临时集合T(x)中x的最小值,使用2.2.1.1步骤中的Random()函数计算出来的随机值与x的最小值相加,公式为
Xrandom=Xmin+Random()
Xrandom为步骤2.2.1.1计算出来的x的随机值,Xmin为集合W(x,y,z)中x的最小值。Random()为一个随机数;
2.2.1.4根据计算出来的Xrandom在2.2.1.2步骤中的HashMap中寻找对应的集合W(x,y,z)中对应的点云坐标;
2.2.1.5重复步骤2.2.1.1至2.2.1.4选取出三个点,将对应的点记为N1、N2、N3;
2.2.2通过2.2.1步骤之后确定了随机的三个点N1、N2、N3,通过该三点坐标可以使用现有的计算圆形平面的方法来三点确定圆函数并在点云中构建出一个圆形平面,并获得圆心o,半径r,将这个圆形平面设为临时平面G;
2.2.3计算集合W(x,y,z)中其余点到该平面G圆心o的距离L,计算点云距离的公式为传统三维坐标欧式距离公式
其中,|AB|为假设的两点距离结果L,x1、y1、z1为A点坐标系,x2、y2、z2为B点坐标系,这里为圆心o的坐标;
2.2.4设置一个邻域半径系数λ,该系数的作用是计算2.2.2步骤中临时平面G之外的半径范围,设该范围半径为ξ,其公式关系为:
ξ=λr
ξ为临时平面G之外的半径范围,λ为邻域半径系数,r为2.2.2步骤中的半径;
2.2.5如果在2.2.3步骤中计算的距离L小于给定邻域半径ξ,则该点是一个拓扑圆内数据,记录入结果集R(x,y,z);
2.2.6如果大于给定邻域半径ξ,该点视为非拓扑圆内数据,则视为噪声点;
2.2.7继续使用结果集中的数据R(x,y,z),重复循环上述过程2.2.1至2.2.6。
更进一步,所述步骤三包括如下步骤:
3.1对滤波后的点云面进行切面变化量判定:计算点集合R(x,y,z)的特征函数值,其计算的方式为对应的协方差矩阵公式C:
3.2根据线性代数知识可以得到步骤3.1中特征函数值C为实数,当C=0时,特征为一个平面,但是这种绝对平面的情况是不存在的,判定过程为:设定一个阈值S,如果点云面的特征函数值C小于阈值S,则认为在同一个面上,从点集R(x,y,z)将同一个面的点集设为β(x,y,z);
3.3规定一个邻域面点的数量为aK,将每个检测到的邻域内局部点集β(x,y,z)的点云的数量保持为aK个,其中a为可变量,通过外界输入一个值,K为固定常数,保证在一个领域面中有可观的点云数量;
3.4删除每个局部点集β(x,y,z)中多于aK的其他点云,予以删除,并计算出抽稀率表达式:
其中NPE表示抽稀后的点云数量,NPA表示抽稀前点云的数量,θ表示抽稀率,通过控制θ来控制抽稀率;
所述步骤五包括如下步骤:
5.1在该点云中生成点集output(x,y,z)中允许的点云最大测量距离的六个方向的误差球,误差球为点云空间中的一种测量手段,构建步骤为:
5.1.1选择步骤四的抽稀点云结果集output(x,y,z)中的某一个点out(x,y,z);
5.1.2外界输入一个误差球半径I与步进柱长度d;
5.1.3以output(x,y,z)中的某一个点为中心,分别在坐标系的x方向,y方向,z方向分别以步进柱d为距离的方位沿着对应的方向设定为一个临时点s,以临时点s为圆心,以i为半径规定一个三维坐标系中的误差球;
5.1.4重复步骤5.1.3在分别在x方向对应的两侧、y方向对应的两侧、z方向对应的两侧构建总共六个方向的误差球;
5.2由于点云符合步骤三3.2.1中的切面阈值S的要求,相反方向的误差球的球心可以认为在同一个直线上。
所述步骤6包括如下步骤:
6.1通过步骤五获得的点集output(x,y,z)中每个点的六个方向误差球中具有若干点集,误差球点集设为stand(x,y,z);
6.2利用步骤3.1中的对滤波后的点云面进行切面变化量判定,计算差球点集stand(x,y,z)的特征函数值SC;
6.3对每个点计算出来的特征函数值SC进行归一化处理,归一化处理方法是传统的离散型数据特征化的一种处理方式,可以得到一个不同范围特征的数值。因为在空间三维坐标系中只有三个方向的特征,所以计算出来的特征值设为Tar(t1,t2,t3);
6.4通过步骤6.3对误差球内的点进行归一化处理,对点云集合stand(x,y,z)作为程序输入,则可以在该误差球内判断点云特征面数量;为了防止出现曲面被判定为不同面的情况,设定不同特征值之间的误差值,即t1,t2,t3数值之间的差值误差为c,c可以人工设定,超过误差c则判断为两个不相同的立面,经过计算判定,设计判定规则如下:
6.4.1若球内有三个面则该误差球内点有立面空间的角点;
6.4.2若球内有两个面则误差球内点有立面空间的棱点;
6.4.3若球内只有一个面则误差球内点有立面空间的面点;
角点、棱点、面点分别代表点云空间中可以代表对应形状特征的点云。
所述步骤七包括如下步骤:
7.1角点单独标记保存为角点;
7.2棱点之间进行普通线性连接;
7.3连接面点形成面状网格,形成面状空间结构;
所述步骤八包括如下步骤:
8.1整合角点,该结果集代表所有角点数据,生成最终结果集Corner(x,y,z);
8.2整合棱点,该结果集代表所有角点数据,生成最终结果集Linear(x,y,z);
8.3整合面点,该结果集代表所有角点数据,生成最终结果集Surface(x,y,z)。
所述步骤九包括如下步骤:
9.1获取步骤八8.1中角点最终结果集,通过组合的方式,分别计算每个点至其他点在坐标系中构成的直线公式,计算方法为初等数学中的两点确定一条直线的方法,设对应的直线方程为Y,组合各个角点,直线形成建筑物立面框架,设立面框架为BS;
9.2获取步骤八的8.1中棱点对应棱线的最终结果集,计算该直线方程每个棱点距离步骤9.1中的直线距离,计算方法为初等数学中点至线距离,计算该棱点最终结果集距离该直线的平均距离,该平均距离可以作为立面框架的误差判断。可以通过误差值的大小,认为控制是否需要重新建立立面框架BS;
9.3导出最终的角点数据,立面框架BS,形成建筑物整体框架。
本发明的有益效果主要表现在:
(1)该点云特征提取的六邻域方法可以对传统点云噪声点进行滤波操作,从而防止噪声点云对特征提取的影响,提高点云空间特征的识别率,能够有效获取真实物体的点云特征。
(2)点云特征提取的六邻域方法可以对点云进行抽稀,在降低点云数量的同时,保存点云的特征属性,在低数量级的点云的情况下能够保证特征识别的准确性。
(3)点云特征提取的六邻域方法提出了一种全新的特征识别方式,通过构造一个六领域的误差球,能够快速地对不规则点云进行特征识别。尤其是改善了对不规则点云立面的识别度。并且能够人工设定不同的立面识别方式。提高了计算机识别不规则立面点云的个性化使用,尤其是针对建筑物不规则立面点云具有很好的作用。
附图说明
图1示出了空间点云集合W(x,y,z)在空间中的表现形式。
图2示出了邻域半径系数λ调整滤波范围示意图。
图3示出了六个方向误差球的结构表现形式。
图4示出了六个方向误差球在空间点云中的位置关系。
图5示出了误差球中的点云判定规则。
图6示出了经过点云滤波之后的效果图。
图7示出了经过点云抽稀之后的效果图。
具体实施方式
为使本发明的上述特征和过程更加明显易懂,下文特举实施例,并配合附图作详细说明如下。
参照图1~图7,一种基于点云预处理六领域的建筑物局部特征点识别方法,所述点云预处理六领域的建筑物局部特征点识别方法包括以下步骤:
步骤一:为简化计算,并且得到一个方便计算点云间距离的计算环境,将经过预处理的建筑物点云放入笛卡尔坐标系中,该坐标系中包括直角坐标系与斜坐标系,能够很好地度量三维模型的空间位置。从激光雷达中获取点云数据集,需要的文件中的数据格式分别为forward、left、up的数据,在程序中初始化三个方向的点集,得到点云集合Origin(f,l,u),步骤如下:
1.1读取文件数据集中的.bin文件,使用C++语言编写的初始化函数init(),将经过预处理的建筑物点云放入笛卡尔坐标系中,分别将获取文件中的forward、left、up数据输入到该函数中,函数中转换规则如下:
1.1.1将获取的forward数据对应笛卡尔坐标系x轴方向数据:f=forward;
1.1.2将获取的left数据对应笛卡尔坐标系y轴方向数据:l=left;
1.1.3将获取的up数据对应笛卡尔坐标系z轴方向数据:u=up;
1.2函数返回具体点的(f,l,u)格式的数据;
1.3处理所有点云,记该格式的点云数量为n,记作点云集合Origin(f,l,u);
步骤二:进行点云数据滤波过程,内容为:将Lidar点云数据经过步骤一的处理之后,在笛卡尔坐标系中进行相对位置滤波处理,由于获取点云数据来源不同,不同数据类型的点云滤波的效果会不同,这里使用点云拓扑邻域滤波方法来进行自定义滤除,得到一个滤除噪声的点云结果集结果集R(x,y,z),如图1所示,其效果如图6所示,步骤如下:
2.1由原始点云文件获得点云的原始测量位置,记作其为原点O,并以该位置为中心点,根据步骤一中1.3中得到的Origin(f,l,u)格式的数据,计算根据当前原点并得到相对点云原点O的坐标表达式(x,y,z),公式如下:
由该公式获得的数据集合设为W(x,y,z),O(x)为原点O在笛卡尔坐标系中的x坐标值,O(y)为原点O在笛卡尔坐标系中的y坐标值,O(z)为原点O在笛卡尔坐标系中的z坐标值,f、l、u分别为步骤一中的原始格式数据Origin(f,l,u)的某个具体点的取值;
2.2从数据集合W(x,y,z)中随机选取三个点N1、N2、N3,在坐标系中拟合出点云拓扑圆,点云拓扑圆为三个点N1、N2、N3组成的临时平面G,人工设置滤波邻域的领域半径系数λ,根据这个邻域半径系数λ调整滤波范围,如图2所示。其最终效果如图6所示,拟合的步骤如下:
2.2.1从数据集合W(x,y,z)中随机选取三个点N1、N2、N3;步骤如下:
2.2.1.1随机值由随机函数Random()计算,其功能是计算出来一个随机的数值,将集合W(x,y,z)输入到HashMap中,HashMap是一个计算机中保存数据的结构,其功能是可以根据key快速找到value;
2.2.1.2将x坐标设置为HashMap的key,集合W(x,y,z)坐标为HashMap的value,取集合W(x,y,z)中的x值为一个临时集合T(x);
2.2.1.3取点云坐标临时集合T(x)中x的最小值,使用2.2.1.1步骤中的random()函数计算出来的随机值与x的最小值相加,公式为
Xrandom=Xmin+Random()
Xrandom为步骤2.2.1.1计算出来的x的随机值,Xmin为集合W(x,y,z)中x的最小值,Random()为一个随机数;
2.2.1.4根据计算出来的Xrandom在2.2.1.2步骤中的HashMap中寻找对应的集合W(x,y,z)中对应的点云坐标;
2.2.1.5重复步骤2.2.1.1至2.2.1.4选取出三个点,将对应的点记为N1、N2、N3;
2.2.2通过2.2.1步骤之后确定了随机的三个点N1、N2、N3,通过该三点坐标可以使用现有的计算圆形平面的方法来三点确定圆函数并在点云中构建出一个圆形平面,计算圆形平面的方法常见有使用现有的Python函数库circumCircle(x,y,z),将x,y,z数据输入到函数中,获得圆心o,半径r,将这个圆形平面设为临时平面G;
2.2.3计算集合W(x,y,z)中其余点到该平面G圆心o的距离L,计算点云距离的公式为传统三维坐标欧式距离公式
其中,|AB|为假设的两点距离结果L,x1、y1、z1为A点坐标系,x2、y2、z2为B点坐标系,这里为圆心o的坐标;
2.2.4设置一个邻域半径系数λ,该系数的作用是计算2.2.2步骤中临时平面G之外的半径范围,设该范围半径为ξ,其公式关系为:
ξ=λr
ξ为临时平面G之外的半径范围,λ为邻域半径系数,r为2.2.2步骤中的半径;
2.2.5如果在2.2.3步骤中计算的距离L小于给定邻域半径ξ,则该点是一个拓扑圆内数据,记录入结果集R(x,y,z);
2.2.6如果大于给定邻域半径ξ,该点视为非拓扑圆内数据,则视为噪声点;
2.2.7继续使用结果集中的数据R(x,y,z),重复循环上述过程2.2.1至2.2.6。
2.3观察结果集R(x,y,z)点云数据集合在坐标系中的表现情况,根据实际物体表现的人工经验判断,如果表现出来的点云情况不符合实际物体的形状,可以继续重复步骤二2.2,同时修改半径系数λ,其中半径系数λ与点云噪声α成反比,点云噪声α反映了在点云空间中的噪声点数量情况,其满足以下公式:
α=n/λ
其中n为步骤一1.6中的点云数量,λ为半径系数,由人为定义初始值,α为点云噪声,可以根据该公式关系,调节半径系数λ的大小来控制点云噪声的情况;
步骤三,经过步骤二点云滤波之后,得到一个滤除噪声点的点云结果集合R(x,y,z),为了将处理过的点云集合进行抽稀,降低处理的点云数据量,加快点云处理的速度的同时提高点云的可视化程度,对点云集合R(x,y,z)进行点云抽稀,从而降低点云密度的同时不丢失点云的特征,获取抽稀点云结果集output(x,y,z)。其最终效果如图7所示,步骤如下:
3.1对滤波后的点云面进行切面变化量判定:计算点集合R(x,y,z)的特征函数值,其计算的方式为对应的协方差矩阵公式C:
3.2根据线性代数知识可以得到步骤3.1中特征函数值C为实数,当C=0时,特征为一个平面,但是这种绝对平面的情况是不存在的,判定过程为:设定一个阈值S,如果点云面的特征函数值C小于阈值S,则认为在同一个面上,从点集R(x,y,z)将同一个面的点集设为β(x,y,z);
3.3规定一个邻域面点的数量为aK,将每个检测到的邻域内局部点集β(x,y,z)的点云的数量保持为aK个。其中a为可变量,通过外界输入一个值,K为固定常数,保证在一个领域面中有可观的点云数量;
3.4删除每个局部点集β(x,y,z)中多于aK的其他点云,予以删除,并计算出抽稀率表达式:
其中NPE表示抽稀后的点云数量,NPA表示抽稀前点云的数量,θ表示抽稀率,本发明可以控制θ来控制抽稀率;
步骤四,获取抽稀点云结果集output(x,y,z),将获取的结果集显示在坐标系中观察,人工判断点云抽稀结果,如果抽稀结果不直观再次重复进行步骤三;
步骤五,开始六领域拟合,在点云空间中生成六个方向的误差球,步骤为:
5.1在该点云中生成点集output(x,y,z)中允许的点云最大测量距离的六个方向的误差球,误差球为点云空间中的一种测量手段,如图3所示,误差球构建步骤为:
5.1.1选择步骤四的抽稀点云结果集output(x,y,z)中的某一个点out(x,y,z);
5.1.2外界输入一个误差球半径I与步进柱长度d;
5.1.3以output(x,y,z)中的某一个点为中心,分别在坐标系的x方向,y方向,z方向分别以步进柱d为距离的方位沿着对应的方向设定为一个临时点s,以临时点s为圆心,以i为半径规定一个三维坐标系中的误差球;
5.1.4重复步骤5.1.3在分别在x方向对应的两侧、y方向对应的两侧、z方向对应的两侧构建总共六个方向的误差球;
5.2由于点云符合步骤3.2.1中的切面阈值S的要求,相反方向的误差球的球心可以认为在同一个直线上;
步骤六,通过遍历点云误差球的方式判断立面空间位置关系,六个方向的误差球在空间中点云的位置关系如图4所示,步骤如下:
6.1通过步骤五获得的点集output(x,y,z)中每个点的六个方向误差球中具有若干点集,误差球点集设为stand(x,y,z);
6.2利用步骤三中的对滤波后的点云面进行切面变化量判定,计算差球点集stand(x,y,z)的特征函数值SC;
6.3对每个点计算出来的特征函数值SC进行归一化处理,该方法是传统的离散型数据特征化的处理方式,可以得到一个不同范围特征的数值。特征归一化的判定可以由现有Python程序执行完成,因为在空间三维坐标系中只有三个方向的特征,所以计算出来的特征值设为Tar(t1,t2,t3);
6.4通过步骤6.3对误差球内的点进行特征归一化,对点云集合stand(x,y,z)作为程序输入,可以在该误差球内判断点云特征面数量,为了防止出现曲面被判定为不同面的情况,设定不同特征值之间的误差值,即t1,t2,t3数值之间的差值误差为c,c可以人工设定,超过误差c则判断为两个不相同的立面,如图5所示,经过计算判定,设计判定规则如下:
6.4.1若球内有三个面则该误差球内点有立面空间的角点;
6.4.2若球内有两个面则误差球内点有立面空间的棱点;
6.4.3若球内只有一个面则误差球内点有立面空间的面点;
角点、棱点、面点分别代表点云空间中可以代表对应形状特征的点云。
步骤七,分别将空间内的点云的角点、棱点、面点进行拟合连接,步骤如下:
7.1角点单独标记为角点;
7.2棱点之间进行普通线性连接;
7.3连接面点形成面状网格,形成面状空间结构;
步骤八,通过步骤七的规则整合角点、棱点、面点数据,对点云进行角点、棱点、面点数据导出,形成最终结果集,步骤如下:
8.1整合角点,该结果集代表所有角点数据,生成最终结果集Corner(x,y,z);
8.2整合棱点,该结果集代表所有角点数据,生成最终结果集Linear(x,y,z);
8.3整合面点,该结果集代表所有角点数据,生成最终结果集Surface(x,y,z)。
步骤九,根据步骤八拟合的局部角点与棱点,首先在结果集中连接各个角点,形成建筑物立面框架,设为BS,由于角点是由棱点与面点在六领域方法拟合下生成的,表明大多数棱点与面点都维持在立面框架BS周围;同时提供一个计算方法,来计算各个点云与角点拟合成的立面框架的误差,通过判断误差值的大小来判断是否需要重建立面框架BS,过程如下:
9.1获取步骤八的8.1中角点最终结果集,通过组合的方式,分别计算每个点至其他点在坐标系中构成的直线公式,计算方法为初等数学中的两点确定一条直线的方法。设对应的直线方程为Y,组合各个角点,直线形成建筑物立面框架,设立面框架为BS;
9.2获取步骤八8.1中棱点对应棱线的最终结果集,计算该直线方程每个棱点距离步骤9.1中的直线距离,计算方法为初等数学中点至线距离,计算该棱点最终结果集距离该直线的平均距离,该平均距离可以作为立面框架的误差判断,可以通过误差值的大小,认为控制是否需要重新建立立面框架BS;
9.3导出最终的角点数据,立面框架BS。形成建筑物整体框架。
参照图1、图2、图6,针对本发明的步骤二点云滤波具体实施进行进一步解释:
1.通过步骤二中的2.1步骤将原始数据Origin(f,l,u)格式的数据进行坐标转换之后得到的点集W(x,y,z),如图1所示的点集W(x,y,z)在点云空间的表现形式。
2.如图2所示通过步骤二的随机函数Random()的计算与HashMap的查找策略,得到的三个随机点N1、N2、N3,使用现有的python语言程序函数库circumCircle(x,y,z)来三点确定圆函数来在点云中构建出一个圆形平面,并获得圆心o,圆半径r。这个圆形平面为临时平面G。
3.邻域半径λ计算出平面G的邻域半径系数,在图2中虚线以内的点记录入结果集R(x,y,z),在图2虚线以外的点视为噪声点;
4.经过步骤二的去噪步骤之后可以观察到点云数据的变化情况如图6所示。
参照图3~图5,针对本发明的步骤五、步骤六中的六领域拟合具体实施进行进一步解释:
1.如图3所示,在该点云中生成点集output(x,y,z)中允许的点云最大测量距离的六个方向的误差球,分别输入误差球半径I与步进柱长度d。图3中圆形点表示的是遍历到的点集output(x,y,z)的某个点,三角形为临时点s表示误差球的球心,以该点为球心,I为半径构成一个误差球。分别构建图3中六个方向的误差球。
2.遍历点集output(x,y,z)中的所有点依次六领域拟合,如图4所示,点集output(x,y,z)中的某个点的六个方向误差球在某个位置处的表现情况。
3.如图5所示在误差球中不同的特征函数值SC对应着在误差球中的不同切面,特征函数值SC可以得到一个不同范围特征的数值。因为在空间三维坐标系中只有三个方向的特征,所以计算出来的特征值设为Tar(t1,t2,t3)。对三个方向的特征在六个球内进行拟合,可以得出角点、棱点、面点。形成最终结果集Corner(x,y,z)、Linear(x,y,z)、Surface(x,y,z)。
本说明书的实施例所述的内容仅仅是对发明构思的实现形式的列举,仅作说明用途。本发明的保护范围不应当被视为仅限于本实施例所陈述的具体形式,本发明的保护范围也及于本领域的普通技术人员根据本发明构思所能想到的等同技术手段。
Claims (10)
1.一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述方法包括以下步骤:
步骤一:经过预处理的建筑物点云放入笛卡尔坐标系中,该坐标系中包括直角坐标系与斜坐标系,能够很好地度量三维模型的空间位置;从激光雷达中获取点云数据集,需要的文件中的数据格式分别为forward、left、up的数据,在程序中初始化三个方向的点集,得到点云集合Origin(f,l,u);
步骤二:进行点云数据滤波过程,内容为:将Lidar点云数据经过步骤一的处理之后,在笛卡尔坐标系中进行相对位置滤波处理,由于获取点云数据来源不同,不同数据类型的点云滤波的效果会不同,这里使用点云拓扑邻域滤波方法来进行自定义滤除,得到一个滤除噪声的点云结果集结果集R(x,y,z);
步骤三,经过步骤二点云滤波之后,得到一个滤除噪声点的点云结果集合R(x,y,z),将处理过的点云集合进行抽稀;为了降低处理的点云数据量,加快点云处理的速度的同时提高点云的可视化程度,对点云集合R(x,y,z)进行点云抽稀,从而降低点云密度的同时不丢失点云的特征,获取抽稀点云结果集output(x,y,z);
步骤四,获取抽稀点云结果集output(x,y,z),将获取的结果集显示在坐标系中观察,人工判断点云抽稀结果,如果抽稀结果不直观再次重复进行步骤三;
步骤五,开始六领域拟合,在点云空间中生成六个方向的误差球;
步骤六,通过遍历点云误差球的方式判断立面空间位置关系;
步骤七,分别将空间内的点云的角点、棱点、面点进行拟合连接;
步骤八,通过步骤七的规则整合角点、棱点、面点数据,对点云进行角点、棱点、面点数据导出,形成最终结果集;
步骤九,根据步骤八拟合的局部角点与棱点,首先在结果集中连接各个角点,形成建筑物立面框架,设为BS,由于角点是由棱点与面点在六领域方法拟合下生成的,表明大多数棱点与面点都维持在立面框架BS周围;计算各个点云与角点拟合成的立面框架的误差,通过判断误差值的大小来判断是否需要重建立面框架BS。
2.如权利要求1所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤一包括如下步骤:
1.1使用函数init(),将经过预处理的建筑物点云放入笛卡尔坐标系中,分别将获取的文件中的forward、left、up数据输入到该函数中,函数中转换规则如下:
1.1.1将获取的forward数据对应笛卡尔坐标系x轴方向数据:f=forward;
1.1.2将获取的left数据对应笛卡尔坐标系y轴方向数据:l=left;
1.1.3将获取的up数据对应笛卡尔坐标系z轴方向数据:u=up;
1.2函数返回具体点的(f,l,u)格式的数据;
1.3处理所有点云,记该格式的点云数量为n,记作点云集合Origin(f,l,u)。
3.如权利要求1或2所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤二包括如下步骤:
2.1由原始点云文件获得点云的原始测量位置,记作其为原点O,并以该位置为中心点,根据步骤一中1.3中得到的Origin(f,l,u)格式的数据,计算根据当前原点并得到相对点云原点O的坐标表达式(x,y,z),公式如下:
由该公式获得的数据集合设为W(x,y,z),O(x)为原点O在笛卡尔坐标系中的x坐标值,O(y)为原点O在笛卡尔坐标系中的y坐标值,O(z)为原点O在笛卡尔坐标系中的z坐标值,f、l、u分别为步骤一中的原始格式数据Origin(f,l,u)的某个具体点的取值;
2.2从数据集合W(x,y,z)中随机选取三个点N1、N2、N3,在坐标系中拟合出点云拓扑圆,点云拓扑圆为三个点N1、N2、N3组成的临时平面G,人工设置滤波邻域的领域半径系数λ,根据这个邻域半径系数λ调整滤波范围;
2.3观察结果集R(x,y,z)点云数据集合在坐标系中的表现情况,根据实际物体表现的人工经验判断,如果表现出来的点云情况不符合实际物体的形状,可以继续重复步骤2.2,同时修改半径系数λ,其中半径系数λ与点云噪声α成反比,点云噪声α反映了在点云空间中的噪声点数量情况,其满足以下公式:
α=n/λ
其中n为步骤1.6中的点云数量,λ为邻域半径系数,由人为定义初始值,α为点云噪声。
4.如权利要求3所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤2.2中,拟合的步骤如下:
2.2.1从数据集合W(x,y,z)中随机选取三个点N1、N2、N3;步骤如下:
2.2.1.1随机值由随机函数Random()计算,其功能是计算出来一个随机的数值,将集合W(x,y,z)输入到HashMap中,HashMap是一个计算机中保存数据的结构,其功能是可以根据key快速找到value;
2.2.1.2将x坐标设置为HashMap的key,集合W(x,y,z)坐标为HashMap的value,取集合W(x,y,z)中的x值为一个临时集合T(x);
2.2.1.3取点云坐标临时集合T(x)中x的最小值,使用2.2.1.1步骤中的Random()函数计算出来的随机值与x的最小值相加,公式为
Xrandom=Xmin+Random()
Xrandom为步骤2.2.1.1计算出来的x的随机值,Xmin为集合W(x,y,z)中x的最小值。Random()为一个随机数;
2.2.1.4根据计算出来的Xrandom在2.2.1.2步骤中的HashMap中寻找对应的集合W(x,y,z)中对应的点云坐标;
2.2.1.5重复步骤2.2.1.1至2.2.1.4选取出三个点,将对应的点记为N1、N2、N3;
2.2.2通过2.2.1步骤之后确定了随机的三个点N1、N2、N3,通过该三点坐标可以使用现有的计算圆形平面的方法来三点确定圆函数并在点云中构建出一个圆形平面,并获得圆心o,半径r,将这个圆形平面设为临时平面G;
2.2.3计算集合W(x,y,z)中其余点到该平面G圆心o的距离L,计算点云距离的公式为传统三维坐标欧式距离公式
其中,|AB|为假设的两点距离结果L,x1、y1、z1为A点坐标系,x2、y2、z2为B点坐标系,这里为圆心o的坐标;
2.2.4设置一个邻域半径系数λ,该系数的作用是计算2.2.2步骤中临时平面G之外的半径范围,设该范围半径为ξ,其公式关系为:
ξ=λr
ξ为临时平面G之外的半径范围,λ为邻域半径系数,r为2.2.2步骤中的半径;
2.2.5如果在2.2.3步骤中计算的距离L小于给定邻域半径ξ,则该点是一个拓扑圆内数据,记录入结果集R(x,y,z);
2.2.6如果大于给定邻域半径ξ,该点视为非拓扑圆内数据,则视为噪声点;
2.2.7继续使用结果集中的数据R(x,y,z),重复循环上述过程2.2.1至2.2.6。
5.如权利要求1或2所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤三包括如下步骤:
3.1对滤波后的点云面进行切面变化量判定:计算点集合R(x,y,z)的特征函数值,其计算的方式为对应的协方差矩阵公式C:
3.2根据线性代数知识可以得到步骤3.1中特征函数值C为实数,当C=0时,特征为一个平面,但是这种绝对平面的情况是不存在的,判定过程为:设定一个阈值S,如果点云面的特征函数值C小于阈值S,则认为在同一个面上,从点集R(x,y,z)将同一个面的点集设为β(x,y,z);
3.3规定一个邻域面点的数量为aK,将每个检测到的邻域内局部点集β(x,y,z)的点云的数量保持为aK个,其中a为可变量,通过外界输入一个值,K为固定常数,保证在一个领域面中有可观的点云数量;
3.4删除每个局部点集β(x,y,z)中多于aK的其他点云,予以删除,并计算出抽稀率表达式:
其中NPE表示抽稀后的点云数量,NPA表示抽稀前点云的数量,θ表示抽稀率,通过控制θ来控制抽稀率。
6.如权利要求1或2所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤五包括如下步骤:
5.1在该点云中生成点集output(x,y,z)中允许的点云最大测量距离的六个方向的误差球,误差球为点云空间中的一种测量手段,构建步骤为:
5.1.1选择步骤四的抽稀点云结果集output(x,y,z)中的某一个点out(x,y,z);
5.1.2外界输入一个误差球半径I与步进柱长度d;
5.1.3以output(x,y,z)中的某一个点为中心,分别在坐标系的x方向,y方向,z方向分别以步进柱d为距离的方位沿着对应的方向设定为一个临时点s,以临时点s为圆心,以i为半径规定一个三维坐标系中的误差球;
5.1.4重复步骤5.1.3在分别在x方向对应的两侧、y方向对应的两侧、z方向对应的两侧构建总共六个方向的误差球;
5.2由于点云符合步骤三3.2.1中的切面阈值S的要求,相反方向的误差球的球心可以认为在同一个直线上。
7.如权利要求1或2所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤6包括如下步骤:
6.1通过步骤五获得的点集output(x,y,z)中每个点的六个方向误差球中具有若干点集,误差球点集设为stand(x,y,z);
6.2利用步骤3.1中的对滤波后的点云面进行切面变化量判定,计算差球点集stand(x,y,z)的特征函数值SC;
6.3对每个点计算出来的特征函数值SC进行归一化处理,归一化处理方法是传统的离散型数据特征化的一种处理方式,可以得到一个不同范围特征的数值。因为在空间三维坐标系中只有三个方向的特征,所以计算出来的特征值设为Tar(t1,t2,t3);
6.4通过步骤6.3对误差球内的点进行归一化处理,对点云集合stand(x,y,z)作为程序输入,则可以在该误差球内判断点云特征面数量;为了防止出现曲面被判定为不同面的情况,设定不同特征值之间的误差值,即t1,t2,t3数值之间的差值误差为c,c可以人工设定,超过误差c则判断为两个不相同的立面,经过计算判定,设计判定规则如下:
6.4.1若球内有三个面则该误差球内点有立面空间的角点;
6.4.2若球内有两个面则误差球内点有立面空间的棱点;
6.4.3若球内只有一个面则误差球内点有立面空间的面点;
角点、棱点、面点分别代表点云空间中可以代表对应形状特征的点云。
8.如权利要求7所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤七包括如下步骤:
7.1角点单独标记保存为角点;
7.2棱点之间进行普通线性连接;
7.3连接面点形成面状网格,形成面状空间结构。
9.如权利要求8所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤八包括如下步骤:
8.1整合角点,该结果集代表所有角点数据,生成最终结果集Corner(x,y,z);
8.2整合棱点,该结果集代表所有角点数据,生成最终结果集Linear(x,y,z);
8.3整合面点,该结果集代表所有角点数据,生成最终结果集Surface(x,y,z)。
10.如权利要求9所述的一种基于点云预处理六领域的建筑物局部特征点识别方法,其特征在于,所述步骤九包括如下步骤:
9.1获取步骤八的8.1中角点最终结果集,通过组合的方式,分别计算每个点至其他点在坐标系中构成的直线公式,计算方法为初等数学中的两点确定一条直线的方法,设对应的直线方程为Y。组合各个角点,直线形成建筑物立面框架,设立面框架为BS;
9.2获取步骤八8.1中棱点对应棱线的最终结果集,计算该直线方程每个棱点距离步骤9.1中的直线距离,计算方法为初等数学中点至线距离,计算该棱点最终结果集距离该直线的平均距离,该平均距离可以作为立面框架的误差判断,通过误差值的大小,认为控制是否需要重新建立立面框架BS;
9.3导出最终的角点数据,立面框架BS,形成建筑物整体框架。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210621438.6A CN115131571A (zh) | 2022-06-01 | 2022-06-01 | 一种基于点云预处理六领域的建筑物局部特征点识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210621438.6A CN115131571A (zh) | 2022-06-01 | 2022-06-01 | 一种基于点云预处理六领域的建筑物局部特征点识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115131571A true CN115131571A (zh) | 2022-09-30 |
Family
ID=83378185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210621438.6A Withdrawn CN115131571A (zh) | 2022-06-01 | 2022-06-01 | 一种基于点云预处理六领域的建筑物局部特征点识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115131571A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117036647A (zh) * | 2023-10-10 | 2023-11-10 | 中国电建集团昆明勘测设计研究院有限公司 | 基于倾斜实景三维模型的地面曲面提取方法 |
-
2022
- 2022-06-01 CN CN202210621438.6A patent/CN115131571A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117036647A (zh) * | 2023-10-10 | 2023-11-10 | 中国电建集团昆明勘测设计研究院有限公司 | 基于倾斜实景三维模型的地面曲面提取方法 |
CN117036647B (zh) * | 2023-10-10 | 2023-12-12 | 中国电建集团昆明勘测设计研究院有限公司 | 基于倾斜实景三维模型的地面曲面提取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110570428B (zh) | 一种从大规模影像密集匹配点云分割建筑物屋顶面片的方法及系统 | |
US10755098B2 (en) | Evaluation method of solar energy utilization potential in urban high-density areas based on low-altitude photogrammetry | |
CN113034689A (zh) | 基于激光点云的地形三维模型及地形图构建方法和系统、存储介质 | |
CN104952107A (zh) | 基于车载LiDAR点云数据的桥梁三维重建方法 | |
JPWO2003012740A1 (ja) | 三次元構造物形状の自動生成装置、自動生成方法、そのプログラム、及びそのプログラムを記録した記録媒体 | |
CN104616349A (zh) | 基于局部曲面变化因子的散乱点云数据精简处理方法 | |
CN114332348B (zh) | 一种融合激光雷达与图像数据的轨道三维重建方法 | |
CN110838115A (zh) | 运用轮廓线提取和四维曲面拟合的古文物三维模型变化检测方法 | |
CN107944383A (zh) | 基于三维Voronoi图的建筑物屋顶面片分割方法 | |
CN111915517B (zh) | 适用于室内光照不利环境下rgb-d相机全局定位方法 | |
CN115564926B (zh) | 基于影像建筑物结构学习的三维面片模型构建方法 | |
CN105139379A (zh) | 基于分类分层的机载Lidar点云建筑物顶面渐进提取方法 | |
CN109146990B (zh) | 一种建筑轮廓的计算方法 | |
CN105447452A (zh) | 一种基于地物空间分布特征的遥感亚像元制图方法 | |
CN111832582B (zh) | 一种利用点云密度与旋转信息对稀疏点云进行分类与分割的方法 | |
CN114463338B (zh) | 一种基于图割与后处理的建筑物激光脚点自动提取方法 | |
CN116379915A (zh) | 一种建筑物测绘方法、装置、系统以及存储介质 | |
CN112241676A (zh) | 一种地形杂物自动识别的方法 | |
CN115131571A (zh) | 一种基于点云预处理六领域的建筑物局部特征点识别方法 | |
CN114998395A (zh) | 一种有效的堤岸三维数据变化检测方法及系统 | |
CN107993242B (zh) | 基于机载LiDAR点云数据缺失区域边界提取方法 | |
CN114283070A (zh) | 融合无人机影像与激光点云的地形断面制作方法 | |
CN105869210A (zh) | 三维地质表面模型中的插值数据处理方法 | |
CN105931297A (zh) | 三维地质表面模型中的数据处理方法 | |
CN117253205A (zh) | 一种基于移动测量系统的道路面点云快速提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220930 |