CN102750730A - 一种特征保持的点云数据精简方法 - Google Patents

一种特征保持的点云数据精简方法 Download PDF

Info

Publication number
CN102750730A
CN102750730A CN2012102018655A CN201210201865A CN102750730A CN 102750730 A CN102750730 A CN 102750730A CN 2012102018655 A CN2012102018655 A CN 2012102018655A CN 201210201865 A CN201210201865 A CN 201210201865A CN 102750730 A CN102750730 A CN 102750730A
Authority
CN
China
Prior art keywords
rem
classification
data point
point
sampling
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.)
Granted
Application number
CN2012102018655A
Other languages
English (en)
Other versions
CN102750730B (zh
Inventor
李凤霞
饶永辉
王青云
谢宝娣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201210201865.5A priority Critical patent/CN102750730B/zh
Publication of CN102750730A publication Critical patent/CN102750730A/zh
Application granted granted Critical
Publication of CN102750730B publication Critical patent/CN102750730B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种特征保持的点云数据精简方法,属于计算机三维建模技术领域。本发明提出的精简方法,首先按照采样率为
Figure DDA00001769342000011
对原始点云数据进行第一次精简;然后根据当前剩余数据点的所属类别以及该点的k阶邻域中被移除点的个数,调整剩余数据点的所属类别;再对剩余点云按照采样率为

Description

一种特征保持的点云数据精简方法
技术领域
本发明涉及一种特征保持的点云数据精简方法,属于计算机三维建模技术领域。
背景技术
在逆向工程中,三维扫描仪作为一种主要的工具被广泛使用,利用它可以在获取模型的三维点云数据后,从而完成实物模型的重建。点云(point cloud)又可称作无组织数据集,数据点之间没有任何关系,它是单纯的三维点的集合,这些点由x,y,z坐标定义。当前通过扫描测量方法获得的点云数据是密集散乱数据,数据量极大,而且测点数据之间没有相应的、显式的几何拓扑关系。
传统的三维扫描仪为光学三维扫描仪,这种三维扫描仪比较适用于对小型物体进行三维精确建模,具有很高的扫描精度,价格相对低廉。获得的点集规模一般在十万级左右。相较而言,激光三维扫描仪的主要应用对城市、街道等大场景进行扫描,构建全景三维数据及模型,一般配合惯性导航、GPS定位系统等构成LIDAR扫描系统,获得的点集规模可以达到千万级甚至亿级。激光三维扫描仪获得的点云数据除包含数据点坐标外,通常还包含反射强度,法线方向等信息。
由于近些年来三维扫描技术的不断发展,获得的点云数据规模也日益庞大。存储、处理或显示这些数据都将消耗大量的时间和计算机资源,因此需要对点云数据进行精简。
点云精简的目的是通过特定的方法,降低原始点云的规模,同时在简化过程中尽量保持原始点云的拓扑结构和特征。目前已有点云数据精简方法按照是否构建点云数据的三角网格分为两大类:基于三角网格的点云精简方法和直接对点云进行精简的方法。其中直接对点云进行精简省去了三角网格化的操作,精简过程更为简单,时间复杂度也更低。传统直接对点云进行精简的方法包括:①随机采样法;②包围盒法;③均匀网格法;④曲率精简法等。
①随机采样法:是最简单且容易实现的方法,该方法每次产生一个不大于总点数的随机整数,并删除随机数对应的点,直到剩余点数满足指定的精简程度。这种方法精简速度最快但随机性大,精简效果差。
②包围盒法:首先对点云数据建立一个最小的立方体包围盒,之后将这个包围盒分割成大小相等的小立方体,将点云数据的每个点按照三维坐标归入到一个小立方体中。对每个小立方体找出其中最接近立方体中心的点,并移除立方体内的其余点。
③均匀网格法:是对包围盒法的改进。均匀网格法在将所有点归入到小立方体后,利用中值滤波计算立方体内Z坐标的中值点,并用该点代替立方体内所有点。
包围盒法和均匀网格法由于空间划分均匀,没有考虑到点云的局部特性,在点云密集区域和点云稀少区域采用相同的划分方法容易造成细节特征的丢失,使用于点云分布均匀且表面特征变化不大的点云数据。
总的来讲,随机采样法、包围盒法和均匀网格法都没有考虑到点云数据的局部特性,因此无法保留原始点云的细节特征。要在点云精简的同时尽量保持原始点云的细节信息,就需要获得点云在局部区域的弯曲程度等信息。目前,能够做到特征保持的点云精简算法主要是曲率精简法。
曲率精简法首先确定各个散乱点的k阶邻域和法线方向,通过邻近点拟合出局部区域的最小二乘曲面,通过曲面的曲率表示该点的弯曲程度。在曲率较高的地方保留较多点,曲率较低的平坦区域则保留较少点。
搜索k阶邻域即为搜索点集中每个点的最近k个点,当前大多采用八叉树的存储结构加快搜索速度。八叉树的定义是:若不为空树的话,树中任一节点的子节点恰好只会有八个或零个,也就是子节点不会有0与8以外的数目。八叉树是一种基于规则八分原则,采用递归分解方式形成的分层树型结构,是二维空间中的四叉树结构在三维立体空间中的拓展。常用的八叉树主要有:指针八叉树,线性八叉树等。八叉树的原理与数据结构中的二叉树、四叉树基本相同。
建立八叉树时,首先建立一个根节点,该节点表示能够包围所有点云数据的最小立方体的空间范围,之后将该空间平均分为8份,每一份对应一个子节点,按此规则一直分割到不再需要分割或达到规定的层次为止。八叉树中的每一个叶子节点代表一个空间最小划分,将点云中的所有点插入到对应的叶子节点中。
搜索某一点(用符号Pi表示)的k阶邻域时,只需在Pi所在的叶子节点和与该节点相邻的叶子节点中搜索最近的k个点即可,若这些叶子节点中的点云数不足k个,则向上一层搜索,直到找到k个最近节点。k的值由人为确定,k的取值为正整数,一般以6~10为宜。
三维激光扫描仪获取的点云数据,除包含空间坐标值外,通常还包含法向量及反射强度等信息。而普通光学扫描仪获取的点云数据,一般只包含空间坐标值,对于不包含法向量信息的点云数据需要在程序中计算点云的单位法向量。
法向量的计算可以采用主元分析法,假设点云的采样曲面是处处光滑的,因此,任何点的局部邻域都可以用平面进行很好的拟合,对于点云中的任意数据点Pi,获取与之最近的k个点后,利用最小二乘法为这些点计算出一个局部平面,此局部平面可以表述如下:
P ( n , d ) = arg min ( n , d ) Σ i = 1 k ( n · P ′ - d ) 2 - - - ( 1 )
其中,P(n,d)为包含点Pi的局部平面;n为局部平面P(n,d)的法向量;d为局部平面P(n,d)到坐标原点的距离;argmin(n,d)()是使
Figure BDA00001769341800032
取得最小值的关于n和d的函数;P′为k个最近点的质心。
令平面P(n,d)经过k个最近点的质心P′,同时局部平面的法向量n满足n=1,因此,问题可以转化为对公式(2)中半正定的协方差矩阵M进行特征值分解。
M = Σ i = 1 k ( Pi - P ′ ) ( Pi - P ′ ) T / k - - - ( 2 )
其中,对于M的最小特征值对应的特征向量可当做点Pi的法向量。
利用上述方法计算出的法向量方向与真实的法向量可能相反,因此需要对法向量方向进行调整。
曲率精简法在求出法向量之后,利用每一点的k阶邻域和法向量等信息,建立该点所在局部区域的二次曲面方程,求出曲面的平均曲率作为该点曲率的估值。最后按照曲率准则对点云数据采样。建立曲面方程需要使用最小二乘法逼近拟合曲面,曲面的曲率估算需要大量的矩阵运算,因此,曲率精简法比较耗时,尤其在处理大规模点云数据时,这一缺陷更加明显。
发明内容
本发明的目的是为了克服已有点云精简方法存在的不足,提出一种特征保持的点云数据精简方法。
本发明的目的是通过下述技术方案实现的。
一种特征保持的点云数据精简方法,其具体操作步骤为:
步骤一、对原始点云数据进行第一次精简,其操作过程包括步骤1.1至步骤1.7,具体为:
步骤1.1:读取原始点云数据。
步骤1.2:获取每个数据点的k阶邻域,并计算每个数据点的单位法向量。
所述获取每个数据点的k阶邻域的方法为八叉树法。
所述计算每个数据点的单位法向量的方法为主元分析法。
步骤1.3:获取每个数据点的法向量与该数据点的k个邻近点法向量点积的均值(用符号V表示)。
对于不同区域的数据点,若表面较平坦,则数据点的法向量方向大致相同,而在弯曲程度较大区域,数据点的法方向差别很大。两个单位向量夹角的余弦值可以用这两个单位向量的点积表示。本发明中使用数据点法向量与该数据点的k个邻近点法向量点积的均值V作为判断该点是否保留的依据。点云中的任一数据点(用符号Pi表示)的单位法向量用(xi,yi,zi)表示,数据点Pi的k个邻近点法向量分别用(X1,Y1,Z1),(X2,Y2,Z2),……,(Xk,Yk,Zk)表示。
每个数据点Pi的法向量与该数据点的k个邻近点法向量点积的均值V通过公式(3)得到:
V = ( Σ j = 1 k | x i · X j + y i · Y j + z i · Z j | ) / k - - - ( 3 )
其中,k的值由人为确定,k的取值为正整数,k取6~10中的任意一个值。
公式(3)计算出的V值在0和1之间,V值越小表示该区域法向量方向变化大,该区域弯曲程度大,因此该区域被精简的数据点数量要少。
步骤1.4:获取每个数据点所在局部区域的弯曲度(用符号V′表示)。
每个数据点的所在局部区域的弯曲度V′越小表示该点所在局部区域越平坦,V′越大表示该点所在局部区域弯曲程度越大。每个数据点的所在局部区域的弯曲度V′通过公式(4)得到。
V'=1-V            (4)
步骤1.5:对点云中的所有数据点进行分类。
根据每个数据点所在局部区域的弯曲度V′将点云中的所有数据点分为F个类别,F为人为设定值,F取正整数。用符号E(V′)表示所有的数据点所在局部区域的弯曲度V′的均值,然后将[0,1]分成F个区间,F个区间分别用[0,f1)、[f1,f2)、……、[fF-1,1],fs∈(0,1),1≤s≤F-1。数据点所在局部区域的弯曲度V′在[0,f1)范围内的数据点分在第1类别;数据点所在局部区域的弯曲度V′在[f1,f2)范围内的数据点分在第2类别;……;以此类推,数据点所在局部区域的弯曲度V′在[fF-1,1]范围内的数据点分在第F类别。
步骤1.6:确定第一次精简时每个类别的采样比,具体为:
第1.6.1步:对第F类别采用公式(5)计算该类别的采样比。
REM F × [ Σ s = 1 F - 1 ( C s × ( 2 × s - 1 ) / ( 2 × F - 1 ) ) + C F ] = COUNT all × 1 - SIM all - - - ( 5 )
其中,REMF为第F类别的采样比;Cs为第s类别数据点的数量,1≤s≤F-1;CF为第F类别的数据点数量;COUNTall为原始点云的总点数;SIMall为人为指定的点云数据的总精简率,SIMall∈(0,1)。
第1.6.2步:对第1至第(F-1)类别采用公式(6)计算该类别的采样比。
REMs=REMF×((2×s-1)/(2×F-1))             (6)
其中,REMs为第s类别的采样比;1≤s≤F-1。
此时得到的F个类别的采样率满足REM1≤REM2≤……≤REMF
第1.6.3步:依次判断REMt是否不大于1,REMt为第t类别的采样比;1≤t≤F,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REMF、REMF-1,……,REMu表示采样比大于1的类别,1<u≤F,然后执行第1.6.4步的操作。
第1.6.4步:通过公式(7)计算第一次精简时期望采样点数与按当前采样率精简后的实际采样点数之差。
ADD = &Sigma; v = u F C v &times; ( REM v - 1 ) - - - ( 7 )
其中,ADD表示第一次精简时期望采样点数与按当前采样率精简后的实际采样点数之差,Cv为第v类别数据点的数量;REMv为第v类别的采样比。
第1.6.5步:通过公式(8)将ADD个点分配到采样率小于1的第1到第(u-1)个类别中。
add u &prime; = ADD &times; [ ( C u &prime; &times; REM u &prime; / REM F ) / &Sigma; w = 1 u = 1 ( C w &times; REM w / REM F ) ] - - - ( 8 )
其中,addu′表示第u′类新分配到的点数,1≤u′<u;Cu′为第u′类别数据点的数量;Cw为第w类别数据点的数量;REMw为第w类别的采样比。
第1.6.6步:根据公式(9)调整第1到第F个类别的采样率,然后执行第1.6.3步的操作。
REM t = 1 ( REM t > 1 ) REM t + add t / C t ( REM t &le; 1 ) - - - ( 9 )
其中,addt表示第t类新分配到的点数;Ct为第t类别数据点的数量。
经过上述步骤的操作,即可确定第一次精简时F个类别的采样比。
步骤1.7:对点云数据进行第一次精简。
根据步骤1.6得到的F个类别的采样比REMt,利用随机采样法对每个类别的点集进行精简。
步骤二、根据当前剩余数据点的所属类别以及该点的k阶邻域中被移除点的个数(用a表示),使用公式(10)依次调整剩余数据点的所属类别。
T new = F ( T old + a - 1 > F ) T old + a - 1 ( T old + a - 1 &le; F ) - - - ( 10 )
其中,Told表示调整前某一数据点所属类别,Tnew表示调整后该数据点所属类别。
步骤三、进行第二次精简,具体步骤为:
第3.1步:重新确定每个类别的采样比,具体为:
第3.1.1步:对第F类别采用公式(11)计算第F类的采样比。
REM F &times; [ &Sigma; s = 1 F - 1 ( C s &prime; &times; ( 2 &times; s - 1 ) / ( 2 &times; F - 1 ) ) + C F &prime; ] = COUNT all &prime; &times; 1 - SIM all - - - ( 11 )
其中,C′s为经过步骤二的操作后第s类别数据点的数量,1≤s≤F-1;C′F为经过步骤二的操作后第F类别的数据点数量;COUNT′all为经过第一次精简后的剩余点云总点数。
第3.1.2步:对第1至第(F-1)类别采用公式(12)计算该类别的采样比。
REMs=REMF×((2×s-1)/(2×F-1))          (12)
第3.1.3步:依次判断REMt是否不大于1,1≤t≤F,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REMF、REMF-1,……,REMu表示采样比大于1的类别,1<u≤F,然后执行第3.1.4步的操作。
第3.1.4步:通过公式(13)计算第二次精简时期望采样点数与按当前采样率精简后的实际采样点数之差。
ADD &prime; = &Sigma; v = u F C v &prime; &times; ( REM v - 1 ) - - - ( 13 )
其中,ADD′表示第二次精简时期望采样点数与按当前采样率精简后的实际采样点数之差;C′v为经过步骤二的操作后第v类别数据点的数量。
第3.1.5步:通过公式(14)将ADD′个点分配到采样率小于1的第1到第(u-1)个类别中。
add u &prime; = ADD &prime; &times; [ ( C u &prime; &prime; &times; REM u &prime; / REM F ) / &Sigma; w = 1 u - 1 ( C w &prime; &times; REM w / REM F ) ] - - - ( 14 )
其中,addu′表示第u′类新分配到的点数,1≤u′<u;C′u′为经过步骤二的操作后第u′类别数据点的数量;REMu′为第u′类别的采样比;C′w为经过步骤二的操作后第w类别数据点的数量。
第3.1.6步:根据公式(15)调整第1到第F个类别的采样率,然后执行第3.1.3步的操作。
REM t = 1 ( REM t > 1 ) REM t + add t / C t &prime; ( REM t &le; 1 ) - - - ( 15 )
其中,C′t为经过步骤二的操作后第t类别数据点的数量。
经过上述步骤的操作,即可确定第二次精简时F个类别的采样比。
第3.2步:对点云数据进行第二次精简。
根据第3.1步得到的F个类别的采样比REMt,利用随机采样法对剩余点云中每个类别的点集进行第二次精简。
经过两次精简后,剩余点数占原始点云的比例为(1-SIMall),这样可以有效的避免精简后的点云出现孔洞。
有益效果
由于本发明方法构建于分析点云数据的局部拓扑信息的基础之上,该方法保持了曲率精简法的特征保持特性,通过对所有点按照局部区域的弯曲程度进行分类,对不同类别采用不同的简化策略,并且通过分两次精简,第一次精简后调整点云类别的方式,在避免空洞产生的情况下最大限度的保持了原始点云的细节特征。本方法对比传统方法,具有以下优点:
①能够保留原始点云的细节特征;
②避免繁琐的二次曲面拟合与曲率估算的时间代价;
③能够有效的避免精简后的点云出现孔洞。
附图说明
图1为本发明具体实施例中使用的原始点云图像;
图2为本发明具体实施例中采用不同的精简方法对原始点云精简后的效果图;
其中,图2(a)为采用本发明提出的方法的步骤一中步骤1.1至步骤1.7的操作过程,通过一次精简达到93%的精简率的效果图;图2(b)为采用本发明提出的方法对原始点云精简后的效果图;
图3为本发明具体实施例中采用不用的精简方法对原始点云精简后,又经过三角网格化处理后的三角网格模型图;
其中,图3(a)为对图2(a)三角网格化处理后的效果图;图3(b)为对图2(b)三角网格化处理后的效果图。
具体实施方式
为了更好的说明本发明的技术方案,下面结合附图,通过1个实施例,对本发明做进一步说明。
对如图1所示的原始点云数据进行精简,设定点云数据的总精简率为93%。
一种特征保持的点云数据精简方法,其具体操作步骤为:
步骤一、对原始点云数据进行第一次精简,其操作过程包括步骤1.1至步骤1.7,具体为:
步骤1.1:读取原始点云数据。
步骤1.2:获取每个数据点的8阶邻域,并计算每个数据点的单位法向量。
所述获取每个数据点的8阶邻域的方法为八叉树法。
所述计算每个数据点的单位法向量的方法为主元分析法。
步骤1.3:获取每个数据点的法向量与该数据点的8个邻近点法向量点积的均值(用符号V表示)。
点云中的任一数据点(用符号Pi表示)的单位法向量用(xi,yi,zi)表示,数据点Pi的8个邻近点法向量分别用(X1,Y1,Z1),(X2,Y2,Z2),……,(Xk,Yk,Zk)表示。
每个数据点Pi的法向量与该数据点的8个邻近点法向量点积的均值V通过公式(16)得到:
V = ( &Sigma; j = 1 8 | x i &CenterDot; X j + y i &CenterDot; Y j + z i &CenterDot; Z j | ) / 8 - - - ( 16 )
步骤1.4:获取每个数据点所在局部区域的弯曲度V′。
每个数据点的所在局部区域的弯曲度V′通过公式(4)得到。
步骤1.5:对点云中的所有数据点进行分类。
根据每个数据点所在局部区域的弯曲度V′将点云中的所有数据点分为7个类别。用符号E(V′)表示所有数据点所在局部区域的弯曲度的均值,然后将每个数据点所在局部区域的弯曲度V′在[0.0,E(V′)/8)范围内的数据点分在第1类别;将每个数据点所在局部区域的弯曲度V′在[E(V′)/8,E(V′)/4)范围内的数据点分在第2类别;将每个数据点所在局部区域的弯曲度V′在[E(V′)/4,E(V′)/2)范围内的数据点分在第3类别;将每个数据点所在局部区域的弯曲度V′在[E(V′)/2,E(V′))范围内的数据点分在第4类别;将每个数据点所在局部区域的弯曲度V′在[E(V′),E(V′)×2)范围内的数据点分在第5类别;将每个数据点所在局部区域的弯曲度V′在[E(V′)×2,E(V′)×4)范围内的数据点分在第6类别;将每个数据点所在局部区域的弯曲度V′在[E(V′)×4,1.0]范围内的数据点分在第7类别。
步骤1.6:确定第一次精简时每个类别的采样比,具体为:
第1.6.1步:对第F类别采用公式(17)计算该类别的采样比。
REM 7 [ &Sigma; s = 1 6 ( C s &times; ( 2 &times; s - 1 ) / 13 ) + C 7 ] = 35947 &times; 1 - 0.93 - - - ( 17 )
第1.6.2步:对第1至第6类别采用公式(18)计算该类别的采样比。
REMs=REM7×((2×s-1)/13)                (18)
第1.6.3步:依次判断REMt是否不大于1,REMt为第t类别的采样比;1≤t≤7,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REM7、REM6,……,REMu表示采样比大于1的类别,1<u≤7,然后执行第1.6.4步的操作。
第1.6.4步:通过公式(19)计算第一次精简时期望采样点数与按当前采样率精简后的实际采样点数之差。
ADD = &Sigma; v = u 7 C v &times; ( REM v - 1 ) - - - ( 19 )
第1.6.5步:通过公式(20)将ADD点分配到采样率小于1的第1到第(u-1)个类别中。
add u &prime; = ADD &times; [ ( C u &prime; &times; REM u &prime; / REM 7 ) / &Sigma; w = 1 u - 1 ( C w &times; REM w / REM 7 ) ] - - - ( 20 )
第1.6.6步:根据公式(9)调整第1到第7个类别的采样率,然后执行第1.6.3步的操作。
步骤1.7:对点云数据进行第一次精简。
根据步骤1.6得到的7个类别的采样比REMt,利用随机采样法对每个类别的点集进行精简。
步骤二、根据当前剩余数据点的所属类别以及该点的8阶邻域中被移除点的个数a,使用公式(10)依次调整剩余数据点的所属类别。
步骤三、进行第二次精简,具体步骤为:
第3.1步:重新确定每个类别的采样比,具体为:
第3.1.1步:对第7类别采用公式(21)计算第7类的采样比。
REM 7 &times; [ &Sigma; s = 1 6 ( C s &prime; &times; ( 2 &times; s - 1 ) / 13 ) + C 7 &prime; ] = COUNT all &prime; &times; 1 - 0.93 - - - ( 21 )
第3.1.2步:对第1至第6类别采用公式(22)计算该类别的采样比。
REMs=REM7×((2×s-1)/13)                (22)
第3.1.3步:依次判断REMt是否不大于1,1≤t≤7,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REM7、REM6,……,REMu表示采样比大于1的类别,1<u≤7,然后执行第3.1.4步的操作。
第3.1.4步:通过公式(23)计算第二次精简时期望采样点数与按当前采样率精简后的实际采样点数之差。
ADD &prime; &Sigma; v = u 7 C v &prime; &times; ( REM v - 1 ) - - - ( 23 )
第3.1.5步:通过公式(24)将ADD′点分配到采样率小于1的第1到第(u-1)个类别中。
add u &prime; = ADD &prime; &times; [ ( C u &prime; &prime; &times; REM u &prime; / REM 7 ) / &Sigma; w = 1 u - 1 ( C w &prime; &times; REM w / REM 7 ) ] - - - ( 24 )
第3.1.6步:根据公式(15)调整第1到第7个类别的采样率,然后执行第3.1.3步的操作。
经过上述步骤的操作,即可确定第二次精简时7个类别的采样比。
第3.2步:对点云数据进行第二次精简。
根据第3.1步得到的7个类别的采样比REMt,利用随机采样法对每个类别的点集进行第二次精简。
经过两次精简后,剩余点数占原始点云的比例为7%,其效果图如图2(b)所示;图3(b)是对图2(b)进行三角网格化处理后的效果图。
为了对比本发明提出方法的有效性,对如图1所示的原始点云数据,采用本发明提出的方法的步骤一中步骤1.1至步骤1.7的操作过程,通过一次精简达到93%的精简率,其效果图如图2(a)所示;图3(a)是对图2(a)进行三角网格化处理后的效果图。
通过对比,可以看到图3(a)中兔子的耳朵出现空洞,而图3(b)中兔子的耳朵没有出现空洞;验证本发明提出的方法可以有效的避免精简后的点云出现孔洞。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例,用于解释本发明,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种特征保持的点云数据精简方法,其特征在于:其具体操作步骤为:
步骤一、对原始点云数据进行第一次精简,其操作过程包括步骤1.1至步骤1.7,具体为:
步骤1.1:读取原始点云数据;
步骤1.2:获取每个数据点的k阶邻域,并计算每个数据点的单位法向量;
步骤1.3:获取每个数据点的法向量与该数据点的k个邻近点法向量点积的均值V;
对于不同区域的数据点,若表面较平坦,则数据点的法向量方向大致相同,而在弯曲程度较大区域,数据点的法方向差别很大;两个单位向量夹角的余弦值可以用这两个单位向量的点积表示;本发明中使用数据点法向量与该数据点的k个邻近点法向量点积的均值V作为判断该点是否保留的依据;点云中的任一数据点Pi的单位法向量用(xi,yi,zi)表示,数据点Pi的k个邻近点法向量分别用(X1,Y1,Z1),(X2,Y2,Z2),……,(Xk,Yk,Zk)表示;
每个数据点Pi的法向量与该数据点的k个邻近点法向量点积的均值V通过公式(3)得到:
V = ( &Sigma; j = 1 k | x i &CenterDot; X j + y i &CenterDot; Y j + z i &CenterDot; Z j | ) / k - - - ( 3 )
其中,k的值由人为确定,k的取值为正整数,k取6~10中的任意一个值;
公式(3)计算出的V值在0和1之间,V值越小表示该区域法向量方向变化大,该区域弯曲程度大,因此该区域被精简的数据点数量要少;
步骤1.4:获取每个数据点所在局部区域的弯曲度V′;
每个数据点的所在局部区域的弯曲度V′越小表示该点所在局部区域越平坦,V′越大表示该点所在局部区域弯曲程度越大;每个数据点的所在局部区域的弯曲度V′通过公式(4)得到;
V'=1-V         (4)
步骤1.5:对点云中的所有数据点进行分类;
根据每个数据点所在局部区域的弯曲度V′将点云中的所有数据点分为F个类别,F为人为设定值,F取正整数;用符号E(V′)表示所有的数据点所在局部区域的弯曲度V′的均值,然后将[0,1]分成F个区间,F个区间分别用[0,f1)、[f1,f2)、……、[fF-1,1],fs∈(0,1),1≤s≤F-1;数据点所在局部区域的弯曲度V′在[0,f1)范围内的数据点分在第1类别;数据点所在局部区域的弯曲度V′在[f1,f2)范围内的数据点分在第2类别;……;以此类推,数据点所在局部区域的弯曲度V′在[fF-1,1]范围内的数据点分在第F类别;
步骤1.6:确定第一次精简时每个类别的采样比,具体为:
第1.6.1步:对第F类别采用公式(5)计算该类别的采样比;
REM F &times; [ &Sigma; s = 1 F - 1 ( C s &times; ( 2 &times; s - 1 ) / ( 2 &times; F - 1 ) ) + C F ] = COUNT all &times; 1 - SIM all - - - ( 5 )
其中,REMF为第F类别的采样比;Cs为第s类别数据点的数量,1≤s≤F-1;CF为第F类别的数据点数量;COUNTall为原始点云的总点数;SIMall为人为指定的点云数据的总精简率,SIMall∈(0,1);
第1.6.2步:对第1至第(F-1)类别采用公式(6)计算该类别的采样比;
REMs=REMF×((2×s-1)/(2×F-1))      (6)
其中,REMs为第s类别的采样比;1≤s≤F-1;
此时得到的F个类别的采样率满足REM1≤REM2≤……≤REMF
第1.6.3步:依次判断REMt是否不大于1,REMt为第t类别的采样比;1≤t≤F,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REMF、REMF-1,……,REMu表示采样比大于1的类别,1<u≤F,然后执行第1.6.4步的操作;
第1.6.4步:通过公式(7)计算第一次精简时期望采样点数与按当前采样率精简后的实际采样点数之差;
ADD = &Sigma; v = u F C v &times; ( REM v - 1 ) - - - ( 7 )
其中,ADD表示第一次精简时期望采样点数与按当前采样率精简后的实际采样点数之差,Cv为第v类别数据点的数量;REMv为第v类别的采样比;
第1.6.5步:通过公式(8)将ADD个点分配到采样率小于1的第1到第(u-1)个类别中;
add u &prime; = ADD &times; [ ( C u &prime; &times; REM u &prime; / REM F ) / &Sigma; w = 1 u = 1 ( C w &times; REM w / REM F ) ] - - - ( 8 )
其中,addu′表示第u′类新分配到的点数,1≤u′<u;Cu′为第u′类别数据点的数量;Cw为第w类别数据点的数量;REMw为第w类别的采样比;
第1.6.6步:根据公式(9)调整第1到第F个类别的采样率,然后执行第1.6.3步的操作;
REM t = 1 ( REM t > 1 ) REM t + add t / C t ( REM t &le; 1 ) - - - ( 9 )
其中,addt表示第t类新分配到的点数;Ct为第t类别数据点的数量;
经过上述步骤的操作,即可确定第一次精简时F个类别的采样比;
步骤1.7:对点云数据进行第一次精简;
根据步骤1.6得到的F个类别的采样比REMt,对每个类别的点集进行第一次精简;
步骤二、根据当前剩余数据点的所属类别以及该点的k阶邻域中被移除点的个数a,使用公式(10)依次调整剩余数据点的所属类别;
T new = F ( T old + a - 1 > F ) T old + a - 1 ( T old + a - 1 &le; F ) - - - ( 10 )
其中,Told表示调整前某一数据点所属类别,Tnew表示调整后该数据点所属类别;
步骤三、进行第二次精简,具体步骤为:
第3.1步:重新确定每个类别的采样比,具体为:
第3.1.1步:对第F类别采用公式(11)计算第F类的采样比;
REM F &times; [ &Sigma; s = 1 F - 1 ( C s &prime; &times; ( 2 &times; s - 1 ) / ( 2 &times; F - 1 ) ) + C F &prime; ] = COUNT all &prime; &times; 1 - SIM all - - - ( 11 )
其中,C′s为经过步骤二的操作后第s类别数据点的数量,1≤s≤F-1;C′F为经过步骤二的操作后第F类别的数据点数量;COUNT′all为经过第一次精简后的剩余点云总点数;
第3.1.2步:对第1至第(F-1)类别采用公式(12)计算该类别的采样比;
REMs=REMF×((2×s-1)/(2×F-1))             (12)
第3.1.3步:依次判断REMt是否不大于1,1≤t≤F,如果REMt均不大于1,则完成对每个类别的采样比的计算工作;否则,用REMF、REMF-1,……,REMu表示采样比大于1的类别,1<u≤F,然后执行第3.1.4步的操作;
第3.1.4步:通过公式(13)计算第二次精简时期望采样点数与按当前采样率精简后的实际采样点数之差;
ADD &prime; = &Sigma; v = u F C v &prime; &times; ( REM v - 1 ) - - - ( 13 )
其中,ADD′表示第二次精简时期望采样点数与按当前采样率精简后的实际采样点数之差;C′v为经过步骤二的操作后第v类别数据点的数量;
第3.1.5步:通过公式(14)将ADD′个点分配到采样率小于1的第1到第(u-1)个类别中;
add u &prime; = ADD &prime; &times; [ ( C u &prime; &prime; &times; REM u &prime; / REM F ) / &Sigma; w = 1 u - 1 ( C w &prime; &times; REM w / REM F ) ] - - - ( 14 )
其中,addu′表示第u′类新分配到的点数,1≤u′<u;C′u′为经过步骤二的操作后第u′类别数据点的数量;REMu′为第u′类别的采样比;C′w为经过步骤二的操作后第w类别数据点的数量;
第3.1.6步:根据公式(15)调整第1到第F个类别的采样率,然后执行第3.1.3步的操作;
REM t = 1 ( REM t > 1 ) REM t + add t / C t &prime; ( REM t &le; 1 ) - - - ( 15 )
其中,C′t为经过步骤二的操作后第t类别数据点的数量;
经过上述步骤的操作,即可确定第二次精简时F个类别的采样比;
第3.2步:对点云数据进行第二次精简;
根据第3.1步得到的F个类别的采样比REMt,对剩余点云中每个类别的点集进行第二次精简;
经过两次精简后,剩余点数占原始点云的比例为(1-SIMall),这样可以有效的避免精简后的点云出现孔洞。
2.如权利要求1所述的一种特征保持的点云数据精简方法,其特征在于:其步骤一步骤1.2中所述获取每个数据点的k阶邻域的方法为八叉树法。
3.如权利要求1或2所述的一种特征保持的点云数据精简方法,其特征在于:其步骤一步骤1.2中所述计算每个数据点的单位法向量的方法为主元分析法。
4.如权利要求1至3之一所述的一种特征保持的点云数据精简方法,其特征在于:其步骤一步骤1.7中所述对每个类别的点集进行第一次精简的方法为随机采样法。
5.如权利要求1至4之一所述的一种特征保持的点云数据精简方法,其特征在于:其步骤一第3.2步中所述对剩余点云中每个类别的点集进行第二次精简的方法为随机采样法。
CN201210201865.5A 2012-06-15 2012-06-15 一种特征保持的点云数据精简方法 Expired - Fee Related CN102750730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210201865.5A CN102750730B (zh) 2012-06-15 2012-06-15 一种特征保持的点云数据精简方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210201865.5A CN102750730B (zh) 2012-06-15 2012-06-15 一种特征保持的点云数据精简方法

Publications (2)

Publication Number Publication Date
CN102750730A true CN102750730A (zh) 2012-10-24
CN102750730B CN102750730B (zh) 2014-10-22

Family

ID=47030878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210201865.5A Expired - Fee Related CN102750730B (zh) 2012-06-15 2012-06-15 一种特征保持的点云数据精简方法

Country Status (1)

Country Link
CN (1) CN102750730B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104616349A (zh) * 2015-01-30 2015-05-13 天津大学 基于局部曲面变化因子的散乱点云数据精简处理方法
CN106021177A (zh) * 2016-05-19 2016-10-12 兰州交通大学 一种基于扫描线的三维激光扫描数据精简方法
CN106250881A (zh) * 2016-08-25 2016-12-21 深圳大学 一种基于三维点云数据的目标识别方法及系统
WO2018036138A1 (zh) * 2016-08-24 2018-03-01 大连理工大学 一种面向数字摄影获得的薄壁壳实测三维形貌点云数据处理方法
CN108830931A (zh) * 2018-05-23 2018-11-16 上海电力学院 一种基于动态网格k邻域搜索的激光点云精简方法
CN109282822A (zh) * 2018-08-31 2019-01-29 北京航空航天大学 构建导航地图的存储介质、方法和设备
CN109410342A (zh) * 2018-09-28 2019-03-01 昆明理工大学 一种保留边界点的点云精简方法
CN113112535A (zh) * 2021-06-15 2021-07-13 四川大学 一种基于有向包围盒的尺度点云配准方法及装置
CN113681119A (zh) * 2021-09-13 2021-11-23 上海柏楚电子科技股份有限公司 焊缝检测的数据处理方法、装置、焊接的控制方法、装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373540A (zh) * 2007-08-20 2009-02-25 鸿富锦精密工业(深圳)有限公司 点云精简系统及方法
CN101751695A (zh) * 2008-12-10 2010-06-23 中国科学院自动化研究所 点云数据的主曲率和主方向估计方法
US20100239178A1 (en) * 2009-03-23 2010-09-23 Level Set Systems Method and apparatus for accurate compression and decompression of three-dimensional point cloud data
US20110222757A1 (en) * 2010-03-10 2011-09-15 Gbo 3D Technology Pte. Ltd. Systems and methods for 2D image and spatial data capture for 3D stereo imaging
CN103106690A (zh) * 2011-11-14 2013-05-15 鸿富锦精密工业(深圳)有限公司 曲面处理系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373540A (zh) * 2007-08-20 2009-02-25 鸿富锦精密工业(深圳)有限公司 点云精简系统及方法
CN101751695A (zh) * 2008-12-10 2010-06-23 中国科学院自动化研究所 点云数据的主曲率和主方向估计方法
US20100239178A1 (en) * 2009-03-23 2010-09-23 Level Set Systems Method and apparatus for accurate compression and decompression of three-dimensional point cloud data
US20110222757A1 (en) * 2010-03-10 2011-09-15 Gbo 3D Technology Pte. Ltd. Systems and methods for 2D image and spatial data capture for 3D stereo imaging
CN103106690A (zh) * 2011-11-14 2013-05-15 鸿富锦精密工业(深圳)有限公司 曲面处理系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
史宝全等: "特征保持的点云精简技术研究", 《西安交通大学学报》 *
周煜等: "散乱点云数据的曲率精简算法", 《北京理工大学学报》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104616349A (zh) * 2015-01-30 2015-05-13 天津大学 基于局部曲面变化因子的散乱点云数据精简处理方法
CN104616349B (zh) * 2015-01-30 2017-07-28 天津大学 基于局部曲面变化因子的散乱点云数据精简处理方法
CN106021177A (zh) * 2016-05-19 2016-10-12 兰州交通大学 一种基于扫描线的三维激光扫描数据精简方法
CN106021177B (zh) * 2016-05-19 2018-10-23 兰州交通大学 一种基于扫描线的三维激光扫描数据精简方法
WO2018036138A1 (zh) * 2016-08-24 2018-03-01 大连理工大学 一种面向数字摄影获得的薄壁壳实测三维形貌点云数据处理方法
CN106250881A (zh) * 2016-08-25 2016-12-21 深圳大学 一种基于三维点云数据的目标识别方法及系统
CN108830931A (zh) * 2018-05-23 2018-11-16 上海电力学院 一种基于动态网格k邻域搜索的激光点云精简方法
CN108830931B (zh) * 2018-05-23 2022-07-01 上海电力学院 一种基于动态网格k邻域搜索的激光点云精简方法
CN109282822A (zh) * 2018-08-31 2019-01-29 北京航空航天大学 构建导航地图的存储介质、方法和设备
CN109282822B (zh) * 2018-08-31 2020-05-05 北京航空航天大学 构建导航地图的存储介质、方法和设备
CN109410342A (zh) * 2018-09-28 2019-03-01 昆明理工大学 一种保留边界点的点云精简方法
CN113112535A (zh) * 2021-06-15 2021-07-13 四川大学 一种基于有向包围盒的尺度点云配准方法及装置
CN113112535B (zh) * 2021-06-15 2021-11-02 四川大学 一种基于有向包围盒的尺度点云配准方法及装置
CN113681119A (zh) * 2021-09-13 2021-11-23 上海柏楚电子科技股份有限公司 焊缝检测的数据处理方法、装置、焊接的控制方法、装置
CN113681119B (zh) * 2021-09-13 2023-08-15 上海柏楚电子科技股份有限公司 焊缝检测的数据处理方法、装置、焊接的控制方法、装置

Also Published As

Publication number Publication date
CN102750730B (zh) 2014-10-22

Similar Documents

Publication Publication Date Title
CN102750730B (zh) 一种特征保持的点云数据精简方法
CN102890828B (zh) 基于法向夹角的点云数据精简方法
CN100495442C (zh) 三维扫描的点云精简方法
CN103247041B (zh) 一种基于局部采样的多几何特征点云数据的分割方法
CN103701466A (zh) 基于特征保留的散乱点云压缩算法
CN102509339B (zh) 一种带纹理约束的三维模型顶点聚类简化方法
CN100485662C (zh) 基于数据动态存取模型的产品点云型面特征分析方法
CN102044088A (zh) 单站地面激光扫描海量散乱点云的lod模型快速构建方法
CN113868476B (zh) 一种基于局部密度的八叉树点云预处理方法
CN102855661B (zh) 基于空间相似性的大规模森林场景快速生成方法
CN103093499A (zh) 一种适用于网络传输的城市三维模型数据组织方法
CN105844602A (zh) 一种基于体元的机载lidar点云三维滤波方法
CN108090624B (zh) 一种改进元胞自动机的城市生态安全模拟与预测的方法
CN104616349A (zh) 基于局部曲面变化因子的散乱点云数据精简处理方法
CN112132795B (zh) 一种基于LiDAR点云的电塔受灾风险评估方法及系统
CN104866840A (zh) 一种从机载激光点云数据识别架空电力线的方法
CN108364331A (zh) 一种等值线生成方法、系统和存储介质
CN113468286A (zh) 一种基于三角面片个数划分的三维金字塔构建方法
CN116467540B (zh) 一种基于HBase的海量空间数据快速可视化方法
CN104951752A (zh) 一种从机载激光点云数据提取房屋的方法
Chandramouli et al. Spatial change optimization
Zhang et al. Application of multi-agent models to urban expansion in medium and small cities: A case study in Fuyang City, Zhejiang Province, China
CN103458032B (zh) 一种空间数据访问规律动态统计及信息压缩的方法及系统
CN104463924A (zh) 基于散乱点高程采样数据的数字高程地形模型生成方法
CN104915958A (zh) 一种从机载激光点云数据识别植被的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141022

Termination date: 20150615

EXPY Termination of patent right or utility model