掌桥专利:专业的专利平台
掌桥专利
首页

一种基于降噪自编码器的点云去噪方法

文献发布时间:2024-04-18 19:58:30


一种基于降噪自编码器的点云去噪方法

技术领域

本发明属于三维点云去噪领域,涉及了一种基于降噪自编码器的点云去噪方法。

背景技术

点云正在成为计算机视觉领域越来越重要的数据表示形式,通过激光扫描仪以及无人机倾斜摄影等方法能直接获得点云。但是点云的质量容易受到环境、经验、光线等因素影响,直接获取的点云通常具有大量噪声以及离群值,尤其是边缘和拐角处。想要有效的利用点云数据,通常是先对点云数据进行去噪。

点云去噪的目的是在保持点云数据几何特征的基础上,尽可能高效的去除或修复噪声,提高后续重建、分割、分类等工作的效果。

目前,点云去噪的方法主要有两类:一类主要基于传统去噪方法进行改进,这一类方法主要通过对局部曲面或曲线的拟合来去除离群点,去噪效果依赖于特定参数的选取,实际应用中存在局限性且鲁棒性较差,在去噪效果和特征保留之间难以取得平衡;另一类方法基于深度学习构建能够直接处理点云数据的有监督学习网络,该方法需要大量打好标签的高质量数据集作为训练集,使用训练完成的网络完成去噪。但是在实际应用中,点云数据通常存在数据量大、密集以及分布不均匀等特点,人工标注的成本过高而且缺乏足够的先验知识,数据集的制作存在困难。

发明内容

为了克服已有技术的不足,本发明提供了一种基于降噪自编码器的点云去噪方法,首先,对点云数据进行处理,将点云去噪问题视为一个局部问题,取每个点的邻域并对其进行随机抽样采样;其次,Transform层通过对输入数据进行适当破坏,为后续特征的提取制造障碍;随后,通过主成分分析法(Principal Component Analysis,PCA)计算的旋转矩阵进行点云对齐,将点云旋转到同一角度;然后,Encoder层通过多层感知机(MultilayerPerceptron,MLP)在破损数据中提取潜在特征,并使用最大值池化来加强平移不变性、旋转不变性以及尺度不变性;最后,网络的Decoder层通过全卷积来对潜在特征进行解码,输出噪声点的预测位移,完成去噪;本发明在保持点云数据几何特征的基础上,尽可能高效的去除噪声。

本发明解决其技术问题所采用的技术方案是:

一种基于降噪自编码器的点云去噪方法,包括以下步骤:

第一步:基于降噪自编码器框架,构建三层网络模型,包含用于破坏点云数据的Transform层、起编码作用的Encoder层以及起解码作用的Decoder层;

第二步:对输入的数据进行预处理,使点云数据转换为更容易被网络直接处理的格式,可以减少计算量并使调整网络参数变得有效;

通过计算点与点之间的距离得出局部邻域,并对每个局部邻域进行采样控制,保证邻域中的点云数量一致;

其中,点云局部邻域是指在点云数据中距离选定点小于特定距离的点的集合;

第三步:将经过处理的点云数据输入至第一步中构建好的Transform层中进行破坏处理;

第四步:基于PCA进行点云数据的对齐,加强网络的不变性;

其中,网络的不变性是平移不变性、旋转不变性以及尺度不变性;

其中,平移不变性是指通过平移点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;

其中,旋转不变性是指通过旋转点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;

其中,尺度不变性是指通过缩放点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;

第五步:将处理后的点云输入至第一步中构建好的Encoder层,获取数据的潜在特征;

第六步:将从Encoder层中提取的潜在特征输入至第一步中构建好的Decoder层中,输出作用于噪声点的位移,完成去噪过程。

进一步,所述第一步中,降噪自编码器是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据的自编码器;

其中,Transform层对输入点云进行破坏转化处理,得到破损的点云数据;

其中,Encoder层在破损的点云数据上进行训练,学习到潜在特征,这个过程称为编码,获得的潜在特征具有强抗噪性;

其中,Decoder层对潜在特征进行重构,这个过程称为解码,通过迭代训练不断调整网络参数以最小化损失函数,得到最优的模型;

再进一步,所述第二步的过程如下:

步骤(2.1)为了避免在去噪的同时降低点云的质量,由此建立点云噪声模型:

其中,P′代表原始的噪声点云集合,p′

步骤(2.2)考虑到任意噪声点的去噪结果来源于该点的局部邻域,因此对每个点的局部邻域定义为:

其中,r为邻域半径,P′

其中,d

步骤(2.3)使用随机抽样的方法进行采样控制,使处理之后的点云数量一致;

优选的,所述步骤(2.3)的过程如下:

步骤(2.3.1)计算当前输入邻域中的点云数量,通过采样控制使邻域中点的数量恒定为N;

步骤(2.3.2)当邻域中点的数量大于N时,进行下采样操作d(P′

其中,点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况下,降低点云的密度,而上采样是增加点云的密度;

其中,

更优选的,所述步骤(2.3.2)的过程如下:

步骤(2.3.2.1)通过编程语言的随机函数产生一个随机数种子;

步骤(2.3.2.2)通过随机数生成函数生成随机数并对当前邻域中点的数量

更进一步,所述第三步的过程如下:

步骤(3.1)对输入的点云

为网络后续的学习过程添加阻碍,使得学习到的特征更有表现能力;

其中,

其中,高斯白噪声是幅度服从正态分布且功率谱密度服从均匀分布的噪声数据;

步骤(3.2)按照一定的概率将某些节点清零,进一步提升网络的泛化能力,降低对输入数据的依赖性;

优选的,所述步骤(3.2)的过程如下:

步骤(3.2.1)以概率为η的伯努利分布生成一个随机向量β;

β~Benoulli(μ)

其中,Benoulli()表示伯努利分布,是一个离散型随机分布,为二项分布的特殊情况,μ的取值为0.3;

步骤(3.2.2)将β与输入

所述第四步的过程如下;

步骤(4.1)计算协方差矩阵,对

其中,∑为求和符号;

步骤(4.2)对C进行奇异值分解(Singular Value Decomposition,SVD)计算出特征向量v

其中,使用SVD对矩阵进行分解,能得到代表矩阵最本质变化的矩阵元素;

其中,特征向量为点云投影方差最大的三个方向,可以作为点云的主要特征分量;

步骤(4.3)根据三个特征向量相互正交的特点,将其作为点云对齐的三个主轴,特征向量按对应的特征值从大到小组成旋转矩阵T:

T=[v

步骤(4.4)使用旋转矩阵将不同旋转角度的点云对齐到一个方向,得到

所述第五步的过程如下:

步骤(5.1)经过MLP获得全局特征;

其中,MLP包括5层卷积层(Convolutional layer)和5层BN(BatchNormalization)层,使用ReLU作为激活函数,输入点云数据的维度为500*3,经过卷积后输出维度为500*1024的全局特征;

其中,卷积神经网络中每层卷积层由若干卷积单元组成,每个卷积单元的

其中,卷积核是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核;

其中,BN层是为了防止中间层数据分布发生改变而对输入数据进行归一化,通过计算样本均值与样本方差并引入权重系数与偏执系数来完成归一化操作,可以加快网络的训练速度,提高网络的泛化能力以及打乱样本的训练顺序;

其中,激活函数是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端,用于隐层神经元输出,对于神经网络模型去学习、理解复杂函数来说具有十分重要的作用,ReLU可以为神经元在线性变换后输出非线性的结果;

步骤(5.2)经过MAX pooling最大值池化对特征进行压缩,得到维度为1*1024的潜在特征;

其中,MAX pooling即取局部接受域中值最大的点,提取特征中相应最强烈的部分进入下一层,MAX pooling可以对特征进行压缩,同时还增强了平移不变性、旋转不变性以及尺度不变性。

优选的,所述步骤(5.1)的过程为:

步骤(5.1.1)经过64个1*1的卷积以及ReLU激活函数,输出维度为500*64的特征,随后经过BN层进行归一化;

步骤(5.1.2)经过128个1*1的卷积以及ReLU激活函数,输出维度为500*128的特征,随后经过BN层进行归一化;

步骤(5.1.3)经过256个1*1的卷积以及ReLU激活函数,输出维度为500*256的特征,随后经过BN层进行归一化;

步骤(5.1.4)经过512个1*1的卷积以及ReLU激活函数,输出维度为500*512的特征,随后经过BN层进行归一化;

步骤(5.1.5)经过1024个1*1的卷积以及ReLU激活函数,输出维度为500*1024的特征,随后经过BN层进行归一化;

所述第六步中,Decoder层包括4层全连接层(Fully Connected Layer)、3层BN层以及3层dropout层,采用ReLU激活函数,将潜在特征输入至Decoder层后,利用设定好的损失函数对网络的输出进行约束,进行反向传播训练网络,输出噪声点的位移,将逆位移作用于噪声点使其接近无噪声点云;

其中,损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示随机事件的损失的函数,作为学习准则与优化问题相联系,通过最小化损失函数求解和评估模型;

其中,反向传播是通过多次迭代训练不断更新网络中神经元的参数,当损失函数达到设定的阈值或者最大迭代次数时,收敛完成,终止训练;

其中,全连接层是每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的;

其中,dropout层在每个训练批次中,通过忽略一半的特征检测器来减少过拟合现象,通过这种方式可以减少隐层节点之间的相互作用;

所述第六步的过程如下:

步骤(6.1)通过全连接层来将特征向量重构为与噪声点p

步骤(6.2)通过损失函数来计算预测点

步骤(6.2.1)网络最终预测的是作用于噪声点p

其中,

步骤(6.2.2)为了使得预测出的点云尽可能分布均匀,为避免点的过度聚集,添加修正项L

其中,max表示最大值;

步骤(6.2.3)综合以上得到整体损失函数L

L

其中α是一个权重参数,用于控制训练过程中的修正程度。

本发明的有益效果主要表现在:基于降噪自编码器的思想提出了一种有三层结构的新型点云去噪网络。首先,本发明通过预测噪声点云的位移实现去噪功能,对噪声点云进行位移修正,避免降低点云数据集的质量;其次,本发明通过对点云进行适当破坏为点云特征的提取制造障碍,并从破损点云中学习到处理噪声数据的能力,可以保留点云的尖锐特征,具有较好的鲁棒性与泛化能力;最后,本发明不需要为网络的训练准备高质量的标签数据集,在训练中能够自己对数据集完成处理,并添加负样本,具有方便快捷的优点。

附图说明

图1是基于降噪自编码器的去噪网络结构图;

图2是本发明方法和其他方法的点云去噪结果对比。

具体实施方式

下面结合附图对本发明作进一步描述。

参照图1和图2,一种基于降噪自编码器的点云去噪方法,包括以下步骤:

第一步:如图1基于降噪自编码器框架构建三层网络模型,包含用于破坏点云数据的Transform层、起编码作用的Encoder层以及起解码作用的Decoder层;

其中,降噪自编码器是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据的自编码器;

其中,Transform层对输入点云进行破坏转化处理,得到破损的点云数据;

其中,Encoder层在破损的点云数据上进行训练,学习到潜在特征,这个过程称为编码,获得的潜在特征具有强抗噪性;

其中,Decoder层对潜在特征进行重构,这个过程称为解码,通过迭代训练不断调整网络参数以最小化损失函数,得到最优的模型。

第二步:对输入的数据进行预处理,使点云数据转换为更容易被网络直接处理的格式,可以减少计算量并使调整网络参数变得有效;

通过计算点与点之间的距离得出局部邻域,并对每个局部邻域进行采样控制,保证邻域中的点云数量一致;

其中,点云局部邻域是指在点云数据中距离选定点小于特定距离的点的集合;

步骤(2.1)为了避免在去噪的同时降低点云的质量,由此建立点云噪声模型:

其中,P′代表原始的噪声点云集合,p′

步骤(2.2)考虑到任意噪声点的去噪结果来源于该点的局部邻域,因此对每个点的局部邻域定义为:

其中,r为邻域半径,P′

其中,r根据当前点云集由实验得出取值5%点云包围盒长度,实际应用中,r是根据实际数据集的特点或训练效果来进行选择的;

其中,点云包围盒是由点云x轴、y轴以及z轴方向的最大值与最小值围成的长方体;

其中,d

步骤(2.3)使用随机抽样的方法进行采样控制,使处理之后的点云数量一致;

步骤(2.3.1)计算当前输入邻域中的点云数量,通过采样控制使邻域中点的数量恒定为N;

步骤(2.3.2)当邻域中点的数量大于N时,进行下采样操作d(P′

其中,点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况下,降低点云的密度,而上采样是增加点云的密度;

其中,

步骤(2.3.2.1)通过C++编程语言中的srand(time(NULL))函数产生一个随时间变化的随机数种子,随机数种子用于生成伪随机数的初始数值;

其中,time(NULL)是以当前时间为种子,产生随机数,使用time(NULL)作为srand()的参数可以保证生成的随机数种子不断变化;

步骤(2.3.2.2)通过C++编程语言中的rand()函数根据之前的随机数种子生成随机数并对当前邻域中点的数量

第三步:将经过处理的点云数据输入至第一步中构建好的Transform层中进行破坏处理,过程如下:

步骤(3.1)对输入的点云

为网络后续的学习过程添加阻碍,使得学习到的特征更有表现能力;

其中,

其中,高斯白噪声是幅度服从正态分布且功率谱密度服从均匀分布的噪声数据;

步骤(3.2)按照一定的概率将某些节点清零,进一步提升网络的泛化能力,降低对输入数据的依赖性;

步骤(3.2.1)以概率为η的伯努利分布生成一个随机向量β;

β~Benoulli(η)

其中,Benoulli()表示伯努利分布,是一个离散型随机分布,为二项分布的特殊情况,η的取值为0.3;

步骤(3.2.2)将β与输入

第四步:基于PCA进行点云数据的对齐,加强网络的不变性;

其中,网络的不变性是平移不变性、旋转不变性以及尺度不变性;

其中,平移不变性是指通过平移点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;

其中,旋转不变性是指通过旋转点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;

其中,尺度不变性是指通过缩放点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;

步骤(4.1)计算协方差矩阵,对

其中,∑为求和符号;

步骤(4.2)对C进行奇异值分解(Singular Value Decomposition,SVD)计算出特征向量v

其中,使用SVD对矩阵进行分解,能得到代表矩阵最本质变化的矩阵元素;

其中,特征向量为点云投影方差最大的三个方向,可以作为点云的主要特征分量;

步骤(4.3)根据三个特征向量相互正交的特点,将其作为点云对齐的三个主轴,特征向量按对应的特征值从大到小组成图1中的旋转矩阵T:

T=[v

步骤(4.4)使用旋转矩阵将不同旋转角度的点云对齐到一个方向,得到

第五步:将处理后的点云

步骤(5.1)经过MLP获得全局特征;

其中,MLP包括5层卷积层(Convolutional layer)和5层BN(BatchNormalization)层,使用ReLU作为激活函数,输入点云数据的维度为500*3,经过卷积后输出维度为500*1024的全局特征;

其中,卷积神经网络中每层卷积层由若干卷积单元组成,每个卷积单元的

其中,卷积核是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核;

其中,BN层是为了防止中间层数据分布发生改变而对输入数据进行归一化,通过计算样本均值与样本方差并引入权重系数与偏执系数来完成归一化操作,可以加快网络的训练速度,提高网络的泛化能力以及打乱样本的训练顺序;

其中,激活函数是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端,用于隐层神经元输出,对于神经网络模型去学习、理解复杂函数来说具有十分重要的作用,ReLU可以为神经元在线性变换后输出非线性的结果;

步骤(5.1.1)经过64个1*1的卷积以及ReLU激活函数,输出维度为500*64的特征,随后经过BN层进行归一化;

步骤(5.1.2)经过128个1*1的卷积以及ReLU激活函数,输出维度为500*128的特征,随后经过BN层进行归一化;

步骤(5.1.3)经过256个1*1的卷积以及ReLU激活函数,输出维度为500*256的特征,随后经过BN层进行归一化;

步骤(5.1.4)经过512个1*1的卷积以及ReLU激活函数,输出维度为500*512的特征,随后经过BN层进行归一化;

步骤(5.1.5)经过1024个1*1的卷积以及ReLU激活函数,输出维度为500*1024的特征,随后经过BN层进行归一化;

步骤(5.2)经过MAX pooling最大值池化对特征进行压缩,得到维度为1*1024的潜在特征;

其中,MAX pooling即取局部接受域中值最大的点,提取特征中相应最强烈的部分进入下一层,MAX pooling可以对特征进行压缩,同时还增强了平移不变性、旋转不变性以及尺度不变性。

第六步:将从Encoder层中提取的潜在特征输入至第一步中构建好的Decoder层中,输出作用于噪声点的位移,完成去噪过程;

Decoder层包括4层全连接层(Fully Connected Layer)、3层BN层以及3层dropout层,采用ReLU激活函数,将潜在特征输入至Decoder层后,利用设定好的损失函数对网络的输出进行约束,进行反向传播训练网络,输出噪声点的位移,将逆位移作用于噪声点使其接近无噪声点云;

其中,损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示随机事件的损失的函数,作为学习准则与优化问题相联系,通过最小化损失函数求解和评估模型;

其中,反向传播是通过多次迭代训练不断更新网络中神经元的参数,当损失函数达到设定的阈值或者最大迭代次数时,收敛完成,终止训练;

其中,全连接层是每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的;

其中,dropout层在每个训练批次中,通过忽略一半的特征检测器来减少过拟合现象,通过这种方式可以减少隐层节点之间的相互作用;

步骤(6.1)通过全连接层来将特征向量重构为与噪声点p

步骤(6.2)通过损失函数来计算预测点

步骤(6.2.1)网络最终预测的是作用于噪声点p

其中,

步骤(6.2.2)为了使得预测出的点云尽可能分布均匀,为避免点的过度聚集,添加修正项L

其中,max表示最大值;

步骤(6.2.3)综合以上得到整体损失函数L

L

其中α是一个权重参数,用于控制训练过程中的修正程度,在训练阶段根据经验设置为0.97。

参照图2,将其他点云去噪方法与本发明方法进行对比分析,包括以下步骤:

步骤一:定义4种点云去噪方法

TotalDenosing(TD):TD是基于无监督学习的点云去噪网络,根据邻域点云进行学习来预测无噪声点的值,并通过引入先验项来改变点的采样模式;

PointCleanNet:PointClean将去噪任务分解为移除离群点和学习偏移量两个子任务;

Pointfilter:Pointfilter是由编码器和解码器组成的网络,根据点云相邻结构将每个噪声点投影到基础表面;

Ours:本发明提出的基于降噪自编码器的点云去噪方法;

步骤二:点云去噪数据集

本发明采用斯坦福公开点云数据集验证方法的实用性,每个点云模型通过从干净表面随机采样10万个点生成,作为无噪声点云数据集。通过添加均值为0的高斯噪声合成其相应的噪声模型,噪声的程度由无噪声点云边界框的对角线长度来确定,例如0.5%噪声表示添加标准差为0.5%点云边界框对角线长度的高斯噪声。采用数据集中的cube、casting以及fandisk三个点云模型作为验证集进行对比实验,其他点云模型作为训练集。

步骤三:定义评价指标

本发明采用倒角距离(Chamfer distance,CD)来评估去噪之后的点云与其相应无噪声点云之间的误差,CD误差的计算公式为:

其中,N

其中,当CD误差越小就代表预测点云与无噪声点云越接近,去噪性能越好。

步骤四:评估对比结果

图2给出了在斯坦福公开数据集上定量评估的实验结果,其中Gaussian Noise为模型受噪声程度,Noisy为未经处理的点云模型的CD误差。可以看出,在评价指标为CD误差时,对不同噪声程度的不同类型点云模型进行去噪,相比PointCleanNet、TD以及Pointfilter等方法,本发明所提出方法的平均误差最小,也代表经过本发明方法去噪处理,预测点云与无噪声点云最为接近。

本说明书的实施例所述的内容仅仅是对发明构思的实现形式的列举,仅作说明用途。本发明的保护范围不应当被视为仅限于本实施例所陈述的具体形式,本发明的保护范围也及于本领域的普通技术人员根据本发明构思所能想到的等同技术手段。

相关技术
  • 一种基于TMC3点云编码器的颜色属性编码方法
  • 一种基于阈值分割的小尺度点云噪声去噪方法
  • 一种改进的基于聚类的单光子点云数据去噪方法
  • 一种基于降噪自编码器的声发射信号去噪方法
  • 一种基于去噪自动编码器的BCG信号降噪方法及装置
技术分类

06120116496424