一种点云简化滤波方法与流程

文档序号:17750387发布日期:2019-05-24 20:55阅读:720来源:国知局
一种点云简化滤波方法与流程

本发明涉及一种点云简化滤波方法,属于图像处理技术领域。



背景技术:

三维激光扫描仪利用激光光束沿实体表面连续扫描,被测实体表面形成的漫反射光点在传感器上成像。这些密集的点数据被形象地称为“点云”,点云能够真实描述被测实体的整体结构及形态特性。

在点云获取过程中,根据激光光束从发射到接收的时间差,能计算出扫描头到被测物体之间的距离L。利用摆镜扫描数据能够获得激光发射方位,即α角、β角。距离和方位结合能够测量出每个点的三维坐标。在进一步处理中,需要将每个点α角、β角、距离L的坐标格式转换为x距离、y距离、z距离的三维位置格式。

点云精简是针对高密度点云,由于存在大量的冗余数据,浪费大量的存储空间并加重了处理的工作量而按一定的方法适当减少数据点的过程,在这一过程中,应该保证精简后的点云仍然忠实于被测实体原来的形状,并且保留的数据量不会降低建模的质量。点云滤波是为了降低在采集过程中由于摆镜摆动角度误差、激光测距误差等因素的影响而出现的数据噪声对后续数据处理精度的影响。

在对点云处理工作中,点云精简及点云滤波是必不可少的两个过程。现阶段已有相关文献对星敏感器的噪声进行了分析。李义琛等2012年在小型微型计算机系统中发表的《基于二次误差度量的点云简化》一文,提出了一种基于二次误差度量的自适应点云简化方法。该方法首先提取原始点云的特征点,并对其进行强制保护;而后以非特征点为球心,采用基于二次误差度量的方法,并结合曲率信息计算非特征点覆盖球的半径和最优简化点;最后用最优点代替覆盖球内贡献较少的非特征点,对模型进行自适应简化。该方法对保持原始点云的几何特征有一定效果。史宝全等2010年在西安交通大学学报中发表的《特征保持的点云精简技术研究》一文,提出了基于聚类的点云精简算法。对点云进行三维栅格剖分,在每个栅格中选取1个代表点作为初始类核心,然后将点云中其他数据点归入欧氏距离最近的初始类中,遍历各个类,若类内某两点的法向量偏差大于给定带宽则对该类进行迭代细分,并对各个类进行均值漂移处理,将得到的局部模态点取代该类,从而实现点云简化。该算法能较好地保留原始模型的几何形状。宋大虎等2014年在计算机应用研究发表的《保持特征的点云迭代简化算法》一文,提出了一种特征保持的三维点云迭代简化算法。首先对点云模型构造KD树结构,计算采样点的k邻域,然后利用点云模型的局部几何信息作为参数,包括局部采样密度、采样点的精度和曲率,计算评估函数值,迭代删除评估函数值最小的点。该算法能有效去除噪声数据。

目前现有方法多在实验室中,基于计算机对模拟点云数据进行处理。工程应用中多基于嵌入式处理器对点云进行处理,由于嵌入式处理器运算能力低,现有方法运行耗时长,难以满足工程应用需求。实际工程应用获取的点云中,距离噪声较大,因为距离噪声引起的误差,尚未有有效滤波方法。



技术实现要素:

本发明解决的技术问题是:克服现有技术的不足,提供一种点云简化滤波方法,对复杂三维点云进行简化,方法处理精度高、运算速度快、复杂度低并且占用存储器空间小。

本发明所采用的技术方案是:一种点云简化滤波方法,包括步骤如下:

(1)以激光扫描仪激光发射点为坐标原点o,以水平方向为x轴,竖直方向为y轴,z轴与x、y轴满足右手定则,建立角度距离坐标系oxyz;其中,x轴坐标表示激光扫描仪左右水平摆动角度α,定义向左为正;y轴坐标表示激光扫描仪上下竖直摆动角度β,定义向上为正;z轴坐标表示激光扫描仪激光发射点至目标的距离值L;激光扫描目标,在角度距离坐标系中形成点云;

(2)在角度距离坐标系oxyz中,以最小x坐标值为起点、最大x坐标值为终点,在x轴上以间隔Tx划分出m个垂直于x轴的平面;以最小y坐标值为起点、最大y坐标值为终点,在y轴上以间隔Ty划分出n个垂直于y轴的平面,形成(m-1)×(n-1)个柱体,;其中,m、n均为大于等于2的正整数;

(3)比较每个柱体内各点的z坐标,取z坐标的最大值LMAX与最小值LMIN,如果最大值LMAX与最小值LMIN的差大于设定的阈值T,则在该柱体沿x轴的边的中点处划出一个垂直于x轴的平面,在该柱体沿y轴的边的中点处划出一个垂直于y轴的平面,将该柱体均分为4份;

(4)重复步骤(3)直至每个柱体内所有点的z坐标的最大值LMAX与最小值LMIN的差小于等于设定的阈值T;

(5)求取步骤(3)、步骤(4)中获得的每个柱体内各点的z坐标的平均值LM;将每个柱体内各点以|L-LM|的值为排序条件,从小到大排序,取排序序列中排在前面占该柱体内总点数k%的点作为该柱体内最终剩余点,去除其余点;k%为设定的取值百分比;

(6)将步骤(5)中获得的每个柱体内最终剩余点简化为一个点,定义为三维角距点,每个三维角距点在角度距离坐标系中的x、y、z坐标分别为该三维角距点对应的柱体内最终剩余点的x、y、z坐标的平均值;

(7)对步骤(6)中每个三维角距点的坐标进行滤波,公式如下:

Xf=X×px1+(X上+X下+X左+X右)/N×px2;

Yf=Y×py1+(Y上+Y下+Y左+Y右)/N×py2;

Zf=Z×pz1+(Z上+Z下+Z左+Z右)/N×pz2;

其中,X、Y、Z分别是当前三维角距点在角度距离坐标系oxyz中的x、y、z坐标值;X上、Y上、Z上分别为当前三维角距点在角度距离坐标系oxyz中沿y轴正方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;X下、Y下、Z下分别为当前三维角距点在角度距离坐标系oxyz中沿y轴负方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;X左、Y左、Z左为当前三维角距点在角度距离坐标系oxyz中沿x轴正方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;X右、Y右、Z右为当前三维角距点在角度距离坐标系oxyz中沿x轴负方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;如果当前三维角距点沿x或y轴正负方向某一方向没有相邻的柱体或者相邻柱体内没有点时,则该方向对应的X上、Y上、Z上或X下、Y下、Z下或X左、Y左、Z左或X右、Y右、Z右分别取0;N为x轴正负方向、y轴正负方向四个方向中当前三维角距点有相邻柱体且柱体内有点的方向的个数;px1、px2、py1、py2、pz1、pz2均为设定的系数,并且px1+px2=1、py1+py2=1、pz1+pz2=1;Xf、Yf、Zf分别为当前三维角距点在角度距离坐标系oxyz中滤波后的坐标;

(8)以激光扫描仪激光发射点为坐标原点o’,以水平方向为x’轴,向左为正,以竖直方向为y’轴,向上为正,z’轴与x’、y’轴满足右手定则,建立三维位置坐标系o’x’y’z’,其中,x’轴坐标表示点云中各点相对坐标原点o’的距离在x’轴的分量,y’轴坐标表示点云中各点相对坐标原点o’的距离在y’轴的分量,z’轴坐标表示点云中各点相对坐标原点o’的距离在z’轴的分量;将步骤(7)中滤波后获得的每个三维角距点在角度距离坐标系oxyz中的坐标转换至三维位置坐标系o’x’y’z’中,获得每个三维角距点在三维位置坐标系o’x’y’z’中对应的坐标,将转换到三维位置坐标系o’x’y’z’中的点定义为三维坐标点;

(9)在三维位置坐标系o’x’y’z’中,以三维坐标点最小x’坐标值为起点、最大x’坐标值为终点,在x’轴上以间隔Tx’划分出h个垂直于x’轴的平面;以最小y’坐标值为起点、最大y’坐标值为终点,在y’轴上以间隔Ty’划分出q个垂直于y’轴的平面,形成(h-1)×(q-1)个柱体;h、q均为大于等于2的正整数;

(10)在三维位置坐标系o’x’y’z’中,将步骤(9)中每个柱体内所有三维坐标点简化为一个点,定义为三维距离点,三维距离点的x’、y’、z’坐标分别为该三维距离点对应的柱体内所有三维坐标点的x’、y’、z’坐标的平均值;

(11)对步骤(10)中每个三维距离点在三维位置坐标系o’x’y’z’中的坐标进行滤波,公式如下:

Xf’=X’×px’1+(X’上+X’下+X’左+X’右)/N’×px’2;

Yf’=Y’×py’1+(Y’上+Y’下+Y’左+Y’右)/N’×py’2;

Zf’=Z’×pz’1+(Z’上+Z’下+Z’左+Z’右)/N’×pz’2;

其中,X’、Y’、Z’分别是当前三维距离点在三维位置坐标系o’x’y’z’中的x’、y’、z’轴坐标;X’上、Y’上、Z’上分别为当前三维距离点在三维位置坐标系o’x’y’z’中沿y’轴正方向相邻柱体对应的三维距离点的x’、y’、z’坐标值的平均值;X’下、Y’下、Z’下分别为当前三维距离点在三维位置坐标系o’x’y’z’中沿y’轴负方向相邻柱体对应的三维距离点x’、y’、z’坐标值的平均值;X’左、Y’左、Z’左为当前三维距离点在三维位置坐标系o’x’y’z’中沿x’轴正方向的相邻柱体对应的三维距离点x’、y’、z’坐标值的平均值;X’右、Y’右、Z’右为当前三维距离点在三维位置坐标系o’x’y’z’中沿x’轴负方向相邻柱体对应的三维距离点x’、y’、z’坐标值的平均值;如果当前三维距离点沿x’或y’轴正负方向某一方向没有相邻的柱体或者相邻柱体内没有点时,则该方向对应X’上、Y’上、Z’上或X’下、Y’下、Z’下或X’左、Y’左、Z’左或X’右、Y’右、Z’右分别取0;N’为x’轴正负方向、y’轴正负方向四个方向中当前三维距离点有相邻柱体且柱体内有点的方向的个数;px’1、px’2、py’1、py’2、pz’1、pz’2为系数,并且px’1+px’2=1、py’1+py’2=1、pz’1+pz’2=1;Xf’、Yf’、Zf’为当前三维距离点在三维位置坐标系o’x’y’z’中滤波后的最终坐标。

所述距离阈值T的取值范围为0.01米~0.5米。

所述k的取值范围为60~98。

所述Tx或Ty的取值范围为0.01度~1度。

所述Tx’或Ty’的取值范围为0.005米~0.5米。

本发明与现有技术相比的优点在于:

(1)本发明建立角度距离坐标系oxyz,而后化分柱体,根据每个柱体内所有点距离的最大值LMAX与最小值LMIN的情况,决定是否进一步细分柱体,而后每个最小柱体内的点简化为一个三维角距点,这步骤使得点云简化精细、高速,保留了目标的三维外形特征,同时运算速度快。

(2)本发明的方法在角度距离坐标系oxyz中,在坐标系x轴水平向左、y轴竖直向上、z轴直视向前视角下,当前柱体的三维角距点利用上下左右柱体的三维角距点进行滤波,取得滤波后的三维角距点。该方法精度高,有效消除了摆镜旋转角度、激光测量距离等误差引起的目标点云位置偏差;速度快,能够满足嵌入式芯片处理时间要求。

(3)本发明的方法将角度距离坐标系oxyz中的三维角距点转换到三维位置坐标系o’x’y’z’中的三维坐标点后,进一步通过柱体分割,简化为三维距离点。而后在三维位置坐标系o’x’y’z’中,在坐标系x’轴水平向左、y’轴竖直向上、z’轴直视向前视角下,当前柱体的三维距离点利用上下左右柱体的三维距离点进行滤波,取得滤波后的三维距离点坐标精度高,运算速度快,占用内存少。该方法进一步提高精度,同时复杂度低,满足嵌入式芯片处理时间要求。

附图说明

图1为流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步详细的说明:

三维激光扫描技术能够快速获取物体表面每个采样点的空间位置坐标,得到一个表示实体的点集合,称之为“三维点云”;如图1所示,一种点云简化滤波方法,包括如下步骤:

(1)以激光扫描仪激光发射点为坐标原点o,以水平方向为x轴,竖直方向为y轴,z轴与x、y轴满足右手定则,建立角度距离坐标系oxyz;其中,x轴坐标表示激光扫描仪左右水平摆动角度α,定义向左为正;y轴坐标表示激光扫描仪上下竖直摆动角度β,定义向上为正;z轴坐标表示激光扫描仪激光发射点至目标的距离值L;激光扫描目标,在角度距离坐标系中形成点云;

(2)在角度距离坐标系oxyz中,以最小x坐标值为起点、最大x坐标值为终点,在x轴上以间隔Tx划分出m个垂直于x轴的平面;以最小y坐标值为起点、最大y坐标值为终点,在y轴上以间隔Ty划分出n个垂直于y轴的平面,形成(m-1)×(n-1)个柱体,柱体在z轴方向的范围不受限制;其中,Tx的取值范围为0.01度到1度,Ty的取值范围为0.01度到1度,m、n均为大于等于2的正整数;

(3)比较每个柱体内各点的z坐标,取z坐标的最大值LMAX与最小值LMIN,如果最大值LMAX与最小值LMIN的差大于设定的阈值T,则在该柱体沿x轴的边的中点处划出一个垂直于x轴的平面,在该柱体沿y轴的边的中点处划出一个垂直于y轴的平面,这两个平面只对该柱体有效,将该柱体均分为4份;

(4)重复步骤(3)直至每个柱体内所有点的z坐标的最大值LMAX与最小值LMIN的差小于等于设定的阈值T,其中,阈值T的取值范围为0.01米到0.5米;

(5)求取步骤(3)、步骤(4)中获得的每个柱体内各点的z坐标的平均值LM;将每个柱体内各点以|L-LM|的值为排序条件,从小到大排序,取排序序列中排在前面占该柱体内总点数k%的点作为该柱体内最终剩余点,去除其余点;k%为设定的取值百分比,k取值范围为60到98;

(6)将步骤(5)中获得的每个柱体内最终剩余点简化为一个点,定义为三维角距点,每个三维角距点在角度距离坐标系中的x、y、z坐标分别为该三维角距点对应的柱体内最终剩余点的x、y、z坐标的平均值;

(7)对步骤(6)中每个三维角距点的坐标进行滤波,公式如下:

Xf=X×px1+(X上+X下+X左+X右)/N×px2;

Yf=Y×py1+(Y上+Y下+Y左+Y右)/N×py2;

Zf=Z×pz1+(Z上+Z下+Z左+Z右)/N×pz2;

其中,X、Y、Z分别是当前三维角距点在角度距离坐标系oxyz中的x、y、z坐标值;X上、Y上、Z上分别为当前三维角距点在角度距离坐标系oxyz中沿y轴正方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;X下、Y下、Z下分别为当前三维角距点在角度距离坐标系oxyz中沿y轴负方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;X左、Y左、Z左为当前三维角距点在角度距离坐标系oxyz中沿x轴正方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;X右、Y右、Z右为当前三维角距点在角度距离坐标系oxyz中沿x轴负方向的相邻柱体对应的三维角距点x、y、z坐标值的平均值;如果当前三维角距点沿x或y轴正负方向某一方向没有相邻的柱体或者相邻柱体内没有点时,则该方向对应的X上、Y上、Z上或X下、Y下、Z下或X左、Y左、Z左或X右、Y右、Z右分别取0;N为x轴正负方向、y轴正负方向四个方向中当前三维角距点有相邻柱体且柱体内有点的方向的个数;px1、px2、py1、py2、pz1、pz2均为设定的系数,并且px1+px2=1、py1+py2=1、pz1+pz2=1;Xf、Yf、Zf分别为当前三维角距点在角度距离坐标系oxyz中滤波后的坐标;

(8)以激光扫描仪激光发射点为坐标原点o’,以水平方向为x’轴,向左为正,以竖直方向为y’轴,向上为正,z’轴与x’、y’轴满足右手定则,建立三维位置坐标系o’x’y’z’,其中,x’轴坐标表示点云中各点相对坐标原点o’的距离在x’轴的分量,y’轴坐标表示点云中各点相对坐标原点o’的距离在y’轴的分量,z’轴坐标表示点云中各点相对坐标原点o’的距离在z’轴的分量;将步骤(7)中滤波后获得的每个三维角距点在角度距离坐标系oxyz中的坐标转换至三维位置坐标系o’x’y’z’中,获得每个三维角距点在三维位置坐标系o’x’y’z’中对应的坐标,将转换到三维位置坐标系o’x’y’z’中的点定义为三维坐标点;

(9)在三维位置坐标系o’x’y’z’中,以三维坐标点最小x’坐标值为起点、最大x’坐标值为终点,在x’轴上以间隔Tx’划分出h个垂直于x’轴的平面;以最小y’坐标值为起点、最大y’坐标值为终点,在y’轴上以间隔Ty’划分出q个垂直于y’轴的平面,形成(h-1)×(q-1)个柱体,柱体在z’轴方向的范围不受限制;h、q均为大于等于2的正整数;其中,Tx’的取值范围为0.005米~0.5米,Ty’的取值范围为0.005米~0.5米

(10)在三维位置坐标系o’x’y’z’中,将步骤(9)中每个柱体内所有三维坐标点简化为一个点,定义为三维距离点,三维距离点的x’、y’、z’坐标分别为该三维距离点对应的柱体内所有三维坐标点的x’、y’、z’坐标的平均值;

(11)对步骤(10)中每个三维距离点在三维位置坐标系o’x’y’z’中的坐标进行滤波,公式如下:

Xf’=X’×px’1+(X’上+X’下+X’左+X’右)/N’×px’2;

Yf’=Y’×py’1+(Y’上+Y’下+Y’左+Y’右)/N’×py’2;

Zf’=Z’×pz’1+(Z’上+Z’下+Z’左+Z’右)/N’×pz’2;

其中,X’、Y’、Z’分别是当前三维距离点在三维位置坐标系o’x’y’z’中的x’、y’、z’轴坐标;X’上、Y’上、Z’上分别为当前三维距离点在三维位置坐标系o’x’y’z’中沿y’轴正方向相邻柱体对应的三维距离点的x’、y’、z’坐标值的平均值;X’下、Y’下、Z’下分别为当前三维距离点在三维位置坐标系o’x’y’z’中沿y’轴负方向相邻柱体对应的三维距离点x’、y’、z’坐标值的平均值;X’左、Y’左、Z’左为当前三维距离点在三维位置坐标系o’x’y’z’中沿x’轴正方向的相邻柱体对应的三维距离点x’、y’、z’坐标值的平均值;X’右、Y’右、Z’右为当前三维距离点在三维位置坐标系o’x’y’z’中沿x’轴负方向相邻柱体对应的三维距离点x’、y’、z’坐标值的平均值;如果当前三维距离点沿x’或y’轴正负方向某一方向没有相邻的柱体或者相邻柱体内没有点时,则该方向对应X’上、Y’上、Z’上或X’下、Y’下、Z’下或X’左、Y’左、Z’左或X’右、Y’右、Z’右分别取0;N’为x’轴正负方向、y’轴正负方向四个方向中当前三维距离点有相邻柱体且柱体内有点的方向的个数;px’1、px’2、py’1、py’2、pz’1、pz’2为系数,并且px’1+px’2=1、py’1+py’2=1、pz’1+pz’2=1;Xf’、Yf’、Zf’为当前三维距离点在三维位置坐标系o’x’y’z’中滤波后的坐标,既为点云简化滤波后得到的最终值。

实施例1:

(1)以激光扫描仪激光发射点为坐标原点o,以水平方向为x轴,竖直方向为y轴,z轴与x、y轴满足右手定则,建立角度距离坐标系oxyz;其中,x轴坐标表示激光扫描仪左右水平摆动角度α,定义向左为正;y轴坐标表示激光扫描仪上下竖直摆动角度β,定义向上为正;z轴坐标表示激光扫描仪激光发射点至目标的距离值L;

(2)在角度距离坐标系oxyz中,点云以α角对应的最小角-4度为起点、最大角+4度为终点,在x轴上以间隔0.2度划分出41个垂直于x轴的平面;以β角最小角-4度为起点、最大角+4度为终点,在y轴上以间隔0.2度划分出41个垂直于y轴的平面,这些平面形成40×40个柱体,每个柱体的z方向没有限制;

(3)第一个柱体内点距离最大值LMAX为30.1米,最小值LMIN为29.9米,30.1-29.9=0.2米小于阈值0.3米,该柱体不再进一步均分。如果大于阈值0.3米,该柱体进一步均分为四个柱体。

(4)重复步骤(3)直至每个柱体内,所有点的距离值L的最大值LMAX与最小值LMIN的差小于等于设定的阈值0.3米;

(5)第一个柱体内,剩余所有点云的距离求均值30.05。柱体内每个点以30.05为中心,按照与30.05距离从小到大排序,取前面占该柱体总点数百分之80的点作为柱体内最终点,其余点去掉。其他柱体也同样处理。

(6)第一个最小柱体内最终剩余点简化为一个点,称为三维角距点,该三维角距点在角度距离坐标系中的x、y、z坐标分别为该柱体内最终剩余点的x、y、z坐标的平均值,计算后分别为-3.9度,-3.9度,30.03米。其他柱体也做同样处理。

(7)对步骤(6)中一个三维角距点的坐标进行滤波,公式如下:

0.40041=0.4×0.18+(0.412+0.39+0.405+0.395)/4×0.82;

1.00205=1.0×0.18+(1.05+1.03+0.96+0.97)/4×0.82;

30.096=30.1×0.2+(30.05+30.08+30.12+30.13)/4×0.8;

其中滤波前X,Y,Z分别是0.4度、1.0度、30.1米,滤波后为0.40041度、1.00205度、30.096米。其余三维角距点也做同样处理。

(8)以激光扫描仪激光发射点为坐标原点o’,以水平方向为x’轴,向左为正,以竖直方向为y’轴,向上为正,z’轴与x’、y’轴满足右手定则,建立三维位置坐标系o’x’y’z’,其中,x’轴坐标表示水平方向的相对原点o’位置,y’轴坐标表示竖直方向的相对原点o’位置,z’轴坐标表示前后方向的相对原点o’位置;根据角度距离坐标系oxyz与三维位置坐标系o’x’y’z’对应关系,求取出角度距离坐标系oxyz中每个步骤(7)中滤波后三维角距点在三维位置坐标系o’x’y’z’中的对应坐标,从而将该点转换到三维位置坐标系o’x’y’z’中,转换到三维位置坐标系o’x’y’z’中的点称为三维坐标点;第一个三维角距点的滤波后为-3.95度,-3.85度,30.08米转换到三维位置坐标系o’x’y’z’中后分别为-5.2米,-5.05米,26.05米。其余三维角距点也做同样处理。

(9)三维坐标点以中最小x’坐标值-6.2米为起点、最大x’坐标值+5.8米为终点,在x’轴上以间隔0.3米划分出41个垂直于x’轴的平面;以最小-5.7米坐标值为起点、最大y’坐标值+6.3米为终点,在y’轴上以间隔0.3米划分出41个垂直于y’轴的平面,这些平面形成40×40个柱体,每个柱体的z’方向没有限制;

(10)在步骤(9)中每个柱体内,取所有三维坐标点简化为一个点,简化后的点称为三维距离点,其x’y’z’坐标为柱体内所有三维坐标点相应坐标的均值。

(11)选取步骤(10)中一个三维距离点在三维位置坐标系o’x’y’z’中的坐标进行滤波:

1.99830=2×0.83+(1.9+2.05+2.1+1.91)/4×0.17。

3.00225=3×0.85+(3.12+2.95+2.98+3.01)/4×0.15。

26.80045=26.8×0.82+(26.7+26.9+26.81+26.80)/4×0.18。

其中滤波前x’y’z’坐标分别是2米、3米、26.8米,滤波后为1.99830米、3.00225米、26.80045米。其余三维距离点也做同样处理。

本发明未详细描述内容为本领域技术人员公知技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1