CN117196963A - 一种基于降噪自编码器的点云去噪方法 - Google Patents
一种基于降噪自编码器的点云去噪方法 Download PDFInfo
- Publication number
- CN117196963A CN117196963A CN202310184960.7A CN202310184960A CN117196963A CN 117196963 A CN117196963 A CN 117196963A CN 202310184960 A CN202310184960 A CN 202310184960A CN 117196963 A CN117196963 A CN 117196963A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- layer
- point
- network
- noise
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000009467 reduction Effects 0.000 title claims abstract description 18
- 239000011159 matrix material Substances 0.000 claims abstract description 26
- 238000005070 sampling Methods 0.000 claims abstract description 22
- 238000006073 displacement reaction Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000011176 pooling Methods 0.000 claims abstract description 14
- 239000000284 extract Substances 0.000 claims abstract description 8
- 230000004888 barrier function Effects 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 77
- 238000012549 training Methods 0.000 claims description 30
- 238000009826 distribution Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 26
- 230000004913 activation Effects 0.000 claims description 24
- 239000013598 vector Substances 0.000 claims description 22
- 210000002569 neuron Anatomy 0.000 claims description 15
- 230000009466 transformation Effects 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 230000006378 damage Effects 0.000 claims description 6
- 238000000354 decomposition reaction Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 5
- 238000002474 experimental method Methods 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 230000005611 electricity Effects 0.000 claims description 3
- 230000002708 enhancing effect Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000001228 spectrum Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 claims 1
- 238000000605 extraction Methods 0.000 abstract description 3
- 238000012847 principal component analysis method Methods 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011158 quantitative evaluation Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
一种基于降噪自编码器的点云去噪方法,首先,对点云数据进行处理,将点云去噪问题视为一个局部问题,取每个点的邻域并对其进行随机抽样采样;其次,Transform层通过对输入数据进行适当破坏,为后续特征的提取制造障碍;随后,通过主成分分析法计算的旋转矩阵进行点云对齐,将点云旋转到同一角度;然后,Encoder层通过多层感知机在破损数据中提取潜在特征,并使用最大值池化来加强平移不变性、旋转不变性以及尺度不变性;最后,网络的Decoder层通过全卷积来对潜在特征进行解码,输出噪声点的预测位移,完成去噪。本发明在保持点云数据几何特征的基础上,尽可能高效的去除噪声。
Description
技术领域
本发明属于三维点云去噪领域,涉及了一种基于降噪自编码器的点云去噪方法。
背景技术
点云正在成为计算机视觉领域越来越重要的数据表示形式,通过激光扫描仪以及无人机倾斜摄影等方法能直接获得点云。但是点云的质量容易受到环境、经验、光线等因素影响,直接获取的点云通常具有大量噪声以及离群值,尤其是边缘和拐角处。想要有效的利用点云数据,通常是先对点云数据进行去噪。
点云去噪的目的是在保持点云数据几何特征的基础上,尽可能高效的去除或修复噪声,提高后续重建、分割、分类等工作的效果。
目前,点云去噪的方法主要有两类:一类主要基于传统去噪方法进行改进,这一类方法主要通过对局部曲面或曲线的拟合来去除离群点,去噪效果依赖于特定参数的选取,实际应用中存在局限性且鲁棒性较差,在去噪效果和特征保留之间难以取得平衡;另一类方法基于深度学习构建能够直接处理点云数据的有监督学习网络,该方法需要大量打好标签的高质量数据集作为训练集,使用训练完成的网络完成去噪。但是在实际应用中,点云数据通常存在数据量大、密集以及分布不均匀等特点,人工标注的成本过高而且缺乏足够的先验知识,数据集的制作存在困难。
发明内容
为了克服已有技术的不足,本发明提供了一种基于降噪自编码器的点云去噪方法,首先,对点云数据进行处理,将点云去噪问题视为一个局部问题,取每个点的邻域并对其进行随机抽样采样;其次,Transform层通过对输入数据进行适当破坏,为后续特征的提取制造障碍;随后,通过主成分分析法(Principal Component Analysis,PCA)计算的旋转矩阵进行点云对齐,将点云旋转到同一角度;然后,Encoder层通过多层感知机(MultilayerPerceptron,MLP)在破损数据中提取潜在特征,并使用最大值池化来加强平移不变性、旋转不变性以及尺度不变性;最后,网络的Decoder层通过全卷积来对潜在特征进行解码,输出噪声点的预测位移,完成去噪;本发明在保持点云数据几何特征的基础上,尽可能高效的去除噪声。
本发明解决其技术问题所采用的技术方案是:
一种基于降噪自编码器的点云去噪方法,包括以下步骤:
第一步:基于降噪自编码器框架,构建三层网络模型,包含用于破坏点云数据的Transform层、起编码作用的Encoder层以及起解码作用的Decoder层;
第二步:对输入的数据进行预处理,使点云数据转换为更容易被网络直接处理的格式,可以减少计算量并使调整网络参数变得有效;
通过计算点与点之间的距离得出局部邻域,并对每个局部邻域进行采样控制,保证邻域中的点云数量一致;
其中,点云局部邻域是指在点云数据中距离选定点小于特定距离的点的集合;
第三步:将经过处理的点云数据输入至第一步中构建好的Transform层中进行破坏处理;
第四步:基于PCA进行点云数据的对齐,加强网络的不变性;
其中,网络的不变性是平移不变性、旋转不变性以及尺度不变性;
其中,平移不变性是指通过平移点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
其中,旋转不变性是指通过旋转点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
其中,尺度不变性是指通过缩放点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
第五步:将处理后的点云输入至第一步中构建好的Encoder层,获取数据的潜在特征;
第六步:将从Encoder层中提取的潜在特征输入至第一步中构建好的Decoder层中,输出作用于噪声点的位移,完成去噪过程。
进一步,所述第一步中,降噪自编码器是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据的自编码器;
其中,Transform层对输入点云进行破坏转化处理,得到破损的点云数据;
其中,Encoder层在破损的点云数据上进行训练,学习到潜在特征,这个过程称为编码,获得的潜在特征具有强抗噪性;
其中,Decoder层对潜在特征进行重构,这个过程称为解码,通过迭代训练不断调整网络参数以最小化损失函数,得到最优的模型;
再进一步,所述第二步的过程如下:
步骤(2.1)为了避免在去噪的同时降低点云的质量,由此建立点云噪声模型:
其中,P′代表原始的噪声点云集合,p′i为P′中的第i个点,P代表无噪声点云集合,pi为P中第i个点。ni表示作用在每个无噪声点上的干扰向量,与pi同维度;
步骤(2.2)考虑到任意噪声点的去噪结果来源于该点的局部邻域,因此对每个点的局部邻域定义为:
其中,r为邻域半径,P′i表示以p′i为圆心以r为半径的邻域范围内的点集;
其中,dij是点p′j(xi,yi,zi)与p′j(xj,yj,zj)之间的距离:
步骤(2.3)使用随机抽样的方法进行采样控制,使处理之后的点云数量一致;
优选的,所述步骤(2.3)的过程如下:
步骤(2.3.1)计算当前输入邻域中的点云数量,通过采样控制使邻域中点的数量恒定为N;
步骤(2.3.2)当邻域中点的数量大于N时,进行下采样操作d(P′i),随机抽取邻域中N个点作为网络输入;当邻域中的点云数量小于N时,则进行上采样操作u(P′i),填充原点p′i使得点云数量为N;
其中,点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况下,降低点云的密度,而上采样是增加点云的密度;
其中,为处理后pi′的点云邻域集合,/>为邻域Pi′中点云的数量,N为点云邻域中的恒定电的数量,取值500。
更优选的,所述步骤(2.3.2)的过程如下:
步骤(2.3.2.1)通过编程语言的随机函数产生一个随机数种子;
步骤(2.3.2.2)通过随机数生成函数生成随机数并对当前邻域中点的数量进行取余操作,将对应的点去除,直至邻域中点的数量为N。
更进一步,所述第三步的过程如下:
步骤(3.1)对输入的点云添加高斯白噪声扰动得到/>
为网络后续的学习过程添加阻碍,使得学习到的特征更有表现能力;
其中,是服从正太分布的扰动向量,~表示服从于,N(0,σ2I)表示均值为0且标准差为σ的正太分布,σ由实验选取为包围盒对角线长度的0.5%,I为3×3的单位矩阵,以符合点云数据的维度;
其中,高斯白噪声是幅度服从正态分布且功率谱密度服从均匀分布的噪声数据;
步骤(3.2)按照一定的概率将某些节点清零,进一步提升网络的泛化能力,降低对输入数据的依赖性;
优选的,所述步骤(3.2)的过程如下:
步骤(3.2.1)以概率为η的伯努利分布生成一个随机向量β;
β~Benoulli(μ)
其中,Benoulli()表示伯努利分布,是一个离散型随机分布,为二项分布的特殊情况,μ的取值为0.3;
步骤(3.2.2)将β与输入相乘,使部分节点被屏蔽得到/>
所述第四步的过程如下;
步骤(4.1)计算协方差矩阵,对内的每个点的坐标(xj,yj,zj)求出均值/>得到对称协方差矩阵C:
其中,∑为求和符号;
步骤(4.2)对C进行奇异值分解(Singular Value Decomposition,SVD)计算出特征向量v1、v2以及v3,这三个特征向量相互正交;
其中,使用SVD对矩阵进行分解,能得到代表矩阵最本质变化的矩阵元素;
其中,特征向量为点云投影方差最大的三个方向,可以作为点云的主要特征分量;
步骤(4.3)根据三个特征向量相互正交的特点,将其作为点云对齐的三个主轴,特征向量按对应的特征值从大到小组成旋转矩阵T:
T=[v1,v2,v3]
步骤(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)通过全连接层来将特征向量重构为与噪声点pi'同纬度的预测位移使之作用于噪声点得到预测点/>
步骤(6.2)通过损失函数来计算预测点与无噪声点pi之间的损失,引导网络的收敛过程,过程如下:
步骤(6.2.1)网络最终预测的是作用于噪声点pi'的位移因此需要选择一个合适的损失函数使得/>与pi更加接近。这一目的符合L2距离的特点,基于L2距离设计第一个损失函数Ls:
其中,表示L2距离又称为欧氏距离,用来表示两点之间或者多点之间的距离,min表示最小值;
步骤(6.2.2)为了使得预测出的点云尽可能分布均匀,为避免点的过度聚集,添加修正项Lr:
其中,max表示最大值;
步骤(6.2.3)综合以上得到整体损失函数La:
La=αLs+(1-α)Lr
其中α是一个权重参数,用于控制训练过程中的修正程度。
本发明的有益效果主要表现在:基于降噪自编码器的思想提出了一种有三层结构的新型点云去噪网络。首先,本发明通过预测噪声点云的位移实现去噪功能,对噪声点云进行位移修正,避免降低点云数据集的质量;其次,本发明通过对点云进行适当破坏为点云特征的提取制造障碍,并从破损点云中学习到处理噪声数据的能力,可以保留点云的尖锐特征,具有较好的鲁棒性与泛化能力;最后,本发明不需要为网络的训练准备高质量的标签数据集,在训练中能够自己对数据集完成处理,并添加负样本,具有方便快捷的优点。
附图说明
图1是基于降噪自编码器的去噪网络结构图;
图2是本发明方法和其他方法的点云去噪结果对比。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1和图2,一种基于降噪自编码器的点云去噪方法,包括以下步骤:
第一步:如图1基于降噪自编码器框架构建三层网络模型,包含用于破坏点云数据的Transform层、起编码作用的Encoder层以及起解码作用的Decoder层;
其中,降噪自编码器是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据的自编码器;
其中,Transform层对输入点云进行破坏转化处理,得到破损的点云数据;
其中,Encoder层在破损的点云数据上进行训练,学习到潜在特征,这个过程称为编码,获得的潜在特征具有强抗噪性;
其中,Decoder层对潜在特征进行重构,这个过程称为解码,通过迭代训练不断调整网络参数以最小化损失函数,得到最优的模型。
第二步:对输入的数据进行预处理,使点云数据转换为更容易被网络直接处理的格式,可以减少计算量并使调整网络参数变得有效;
通过计算点与点之间的距离得出局部邻域,并对每个局部邻域进行采样控制,保证邻域中的点云数量一致;
其中,点云局部邻域是指在点云数据中距离选定点小于特定距离的点的集合;
步骤(2.1)为了避免在去噪的同时降低点云的质量,由此建立点云噪声模型:
其中,P′代表原始的噪声点云集合,p′i为P′中的第i个点,P代表无噪声点云集合,pi为P中第i个点,ni表示作用在每个无噪声点上的干扰向量,与pi同维度;
步骤(2.2)考虑到任意噪声点的去噪结果来源于该点的局部邻域,因此对每个点的局部邻域定义为:
其中,r为邻域半径,P′i表示以p′i为圆心以r为半径的邻域范围内的点集;
其中,r根据当前点云集由实验得出取值5%点云包围盒长度,实际应用中,r是根据实际数据集的特点或训练效果来进行选择的;
其中,点云包围盒是由点云x轴、y轴以及z轴方向的最大值与最小值围成的长方体;
其中,dij是点p′j(xi,yi,zi)与p′j(xj,yj,zj)之间的距离:
步骤(2.3)使用随机抽样的方法进行采样控制,使处理之后的点云数量一致;
步骤(2.3.1)计算当前输入邻域中的点云数量,通过采样控制使邻域中点的数量恒定为N;
步骤(2.3.2)当邻域中点的数量大于N时,进行下采样操作d(P′i),随机抽取邻域中N个点作为网络输入;当邻域中的点云数量小于N时,则进行上采样操作u(P′i),填充原点p′i使得点云数量为N;
其中,点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况下,降低点云的密度,而上采样是增加点云的密度;
其中,为处理后p′i的点云邻域集合,/>为邻域P′i中点云的数量,N为点云邻域中的恒定电的数量,取值500;
步骤(2.3.2.1)通过C++编程语言中的srand(time(NULL))函数产生一个随时间变化的随机数种子,随机数种子用于生成伪随机数的初始数值;
其中,time(NULL)是以当前时间为种子,产生随机数,使用time(NULL)作为srand()的参数可以保证生成的随机数种子不断变化;
步骤(2.3.2.2)通过C++编程语言中的rand()函数根据之前的随机数种子生成随机数并对当前邻域中点的数量进行取余操作,将对应的点去除,直至邻域中点的数量为N。
第三步:将经过处理的点云数据输入至第一步中构建好的Transform层中进行破坏处理,过程如下:
步骤(3.1)对输入的点云添加高斯白噪声扰动得到/>
为网络后续的学习过程添加阻碍,使得学习到的特征更有表现能力;
其中,是服从正太分布的扰动向量,~表示服从于,N(0,σ2I)表示均值为0且标准差为σ的正太分布,此时σ选取为包围盒对角线长度的0.5%,I为3×3的单位矩阵,以符合点云数据的维度;
其中,高斯白噪声是幅度服从正态分布且功率谱密度服从均匀分布的噪声数据;
步骤(3.2)按照一定的概率将某些节点清零,进一步提升网络的泛化能力,降低对输入数据的依赖性;
步骤(3.2.1)以概率为η的伯努利分布生成一个随机向量β;
β~Benoulli(η)
其中,Benoulli()表示伯努利分布,是一个离散型随机分布,为二项分布的特殊情况,η的取值为0.3;
步骤(3.2.2)将β与输入相乘,使部分节点被屏蔽得到/>
第四步:基于PCA进行点云数据的对齐,加强网络的不变性;
其中,网络的不变性是平移不变性、旋转不变性以及尺度不变性;
其中,平移不变性是指通过平移点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
其中,旋转不变性是指通过旋转点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
其中,尺度不变性是指通过缩放点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
步骤(4.1)计算协方差矩阵,对内的每个点的坐标(xj,yj,zj)求出均值/>得到对称协方差矩阵C:
其中,∑为求和符号;
步骤(4.2)对C进行奇异值分解(Singular Value Decomposition,SVD)计算出特征向量v1、v2以及v3,这三个特征向量相互正交;
其中,使用SVD对矩阵进行分解,能得到代表矩阵最本质变化的矩阵元素;
其中,特征向量为点云投影方差最大的三个方向,可以作为点云的主要特征分量;
步骤(4.3)根据三个特征向量相互正交的特点,将其作为点云对齐的三个主轴,特征向量按对应的特征值从大到小组成图1中的旋转矩阵T:
T=[v1,v2,v3]
步骤(4.4)使用旋转矩阵将不同旋转角度的点云对齐到一个方向,得到
第五步:将处理后的点云输入至第一步中构建好的Encoder层,获取数据的潜在特征F;过程如下:
步骤(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)通过全连接层来将特征向量重构为与噪声点pi'同纬度的预测位移使之作用于噪声点得到预测点/>
步骤(6.2)通过损失函数来计算预测点与无噪声点pi之间的损失,引导网络的收敛过程;
步骤(6.2.1)网络最终预测的是作用于噪声点pi'的位移因此需要选择一个合适的损失函数使得/>与pi更加接近。这一目的符合L2距离的特点,基于L2距离设计第一个损失函数Ls:
其中,表示L2距离又称为欧氏距离,用来表示两点之间或者多点之间的距离,min表示最小值;
步骤(6.2.2)为了使得预测出的点云尽可能分布均匀,为避免点的过度聚集,添加修正项Lr:
其中,max表示最大值;
步骤(6.2.3)综合以上得到整体损失函数La:
La=αLs+(1-α)Lr
其中α是一个权重参数,用于控制训练过程中的修正程度,在训练阶段根据经验设置为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误差的计算公式为:
其中,N1和N2分别代表着无噪声点云P的个数以及预测点云的个数,/>为预测点云/>中的第i个预测点,pj无噪声点云P中的第j个无噪声点;
其中,当CD误差越小就代表预测点云与无噪声点云越接近,去噪性能越好。
步骤四:评估对比结果
图2给出了在斯坦福公开数据集上定量评估的实验结果,其中Gaussian Noise为模型受噪声程度,Noisy为未经处理的点云模型的CD误差。可以看出,在评价指标为CD误差时,对不同噪声程度的不同类型点云模型进行去噪,相比PointCleanNet、TD以及Pointfilter等方法,本发明所提出方法的平均误差最小,也代表经过本发明方法去噪处理,预测点云与无噪声点云最为接近。
本说明书的实施例所述的内容仅仅是对发明构思的实现形式的列举,仅作说明用途。本发明的保护范围不应当被视为仅限于本实施例所陈述的具体形式,本发明的保护范围也及于本领域的普通技术人员根据本发明构思所能想到的等同技术手段。
Claims (10)
1.一种基于降噪自编码器的点云去噪方法,其特征在于,所述方法包括以下步骤:
第一步:基于降噪自编码器框架,构建三层网络模型,包含用于破坏点云数据的Transform层、起编码作用的Encoder层以及起解码作用的Decoder层;
第二步:对输入的数据进行预处理,使点云数据转换为更容易被网络直接处理的格式,可以减少计算量并使调整网络参数变得有效;
通过计算点与点之间的距离得出局部邻域,并对每个局部邻域进行采样控制,保证邻域中的点云数量一致;
其中,点云局部邻域是指在点云数据中距离选定点小于特定距离的点的集合;
第三步:将经过处理的点云数据输入至第一步中构建好的Transform层中进行破坏处理;
第四步:基于PCA进行点云数据的对齐,加强网络的不变性;
其中,网络的不变性是平移不变性、旋转不变性以及尺度不变性;
其中,平移不变性是指通过平移点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
其中,旋转不变性是指通过旋转点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
其中,尺度不变性是指通过缩放点云使每个点坐标发生变化,但是网络仍然能够识别为同一组点云;
第五步:将处理后的点云输入至第一步中构建好的Encoder层,获取数据的潜在特征;
第六步:将从Encoder层中提取的潜在特征输入至第一步中构建好的Decoder层中,输出作用于噪声点的位移,完成去噪过程。
2.如权利要求1所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述第一步中,降噪自编码器是一类接受损坏数据作为输入,并训练来预测原始未被损坏数据的自编码器;
其中,Transform层对输入点云进行破坏转化处理,得到破损的点云数据;
其中,Encoder层在破损的点云数据上进行训练,学习到潜在特征,这个过程称为编码,获得的潜在特征具有强抗噪性;
其中,Decoder层对潜在特征进行重构,这个过程称为解码,通过迭代训练不断调整网络参数以最小化损失函数,得到最优的模型。
3.如权利要求1或2所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述第二步的过程如下:
步骤(2.1)为了避免在去噪的同时降低点云的质量,由此建立点云噪声模型:
其中,P′代表原始的噪声点云集合,p′i为P′中的第i个点,P代表无噪声点云集合,pi为P中第i个点,ni表示作用在每个无噪声点上的干扰向量,与pi同维度;
步骤(2.2)考虑到任意噪声点的去噪结果来源于该点的局部邻域,因此对每个点的局部邻域定义为:
其中,r为邻域半径,Pi′表示以p′i为圆心以r为半径的邻域范围内的点集;
其中,dij是点p'j(xi,yi,zi)与p'j(xj,yj,zj)之间的距离:
步骤(2.3)使用随机抽样的方法进行采样控制,使处理之后的点云数量一致。
4.如权利要求3所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述步骤(2.3)的过程如下:
步骤(2.3.1)计算当前输入邻域中的点云数量,通过采样控制使邻域中点的数量恒定为N;
步骤(2.3.2)当邻域中点的数量大于N时,进行下采样操作d(P′i),随机抽取邻域中N个点作为网络输入;当邻域中的点云数量小于N时,则进行上采样操作u(P′i),填充原点p′i使得点云数量为N;
其中,点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况下,降低点云的密度,而上采样是增加点云的密度;
其中,为处理后p′i的点云邻域集合,/>为邻域P′i中点云的数量,N为点云邻域中的恒定电的数量,取值500。
5.如权利要求4所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述步骤(2.3.2)的过程如下:
步骤(2.3.2.1)通过编程语言的随机函数产生一个随机数种子;
步骤(2.3.2.2)通过随机数生成函数生成随机数并对当前邻域中点的数量进行取余操作,将对应的点去除,直至邻域中点的数量为N。
6.如权利要求1或2所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述第三步的过程如下:
步骤(3.1)对输入的点云添加高斯白噪声扰动得到/>
为网络后续的学习过程添加阻碍,使得学习到的特征更有表现能力;
其中,是服从正太分布的扰动向量,~表示服从于,N(0,σ2I)表示均值为0且标准差为σ的正太分布,σ由实验选取为包围盒对角线长度的0.5%,I为3×3的单位矩阵,以符合点云数据的维度;
其中,高斯白噪声是幅度服从正态分布且功率谱密度服从均匀分布的噪声数据;
步骤(3.2)按照一定的概率将某些节点清零,进一步提升网络的泛化能力,降低对输入数据的依赖性。
7.如权利要求6所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述步骤(3.2)的过程如下:
步骤(3.2.1)以概率为η的伯努利分布生成一个随机向量β;
β~Benoulli(μ)
其中,Benoulli()表示伯努利分布,是一个离散型随机分布,为二项分布的特殊情况,μ的取值为0.3;
步骤(3.2.2)将β与输入相乘,使部分节点被屏蔽得到/>
8.如权利要求1或2所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述第四步的过程如下;
步骤(4.1)计算协方差矩阵,对内的每个点的坐标(xj,yj,zj)求出均值/>得到对称协方差矩阵C:
其中,∑为求和符号;
步骤(4.2)对C进行奇异值分解(Singular Value Decomposition,SVD)计算出特征向量v1、v2以及v3,这三个特征向量相互正交;
其中,使用SVD对矩阵进行分解,能得到代表矩阵最本质变化的矩阵元素;
其中,特征向量为点云投影方差最大的三个方向,可以作为点云的主要特征分量;
步骤(4.3)根据三个特征向量相互正交的特点,将其作为点云对齐的三个主轴,特征向量按对应的特征值从大到小组成旋转矩阵T:
T=[v1,v2,v3]
步骤(4.4)使用旋转矩阵将不同旋转角度的点云对齐到一个方向,得到
9.如权利要求1或2所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述第五步的过程如下:
步骤(5.1)经过MLP获得全局特征;
其中,MLP包括5层卷积层和5层BN层,使用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层进行归一化。
10.如权利要求1或2所述的一种基于降噪自编码器的点云去噪方法,其特征在于,所述第六步中,Decoder层包括4层全连接层(Fully Connected Layer)、3层BN层以及3层dropout层,采用ReLU激活函数,将潜在特征输入至Decoder层后,利用设定好的损失函数对网络的输出进行约束,进行反向传播训练网络,输出噪声点的位移,将逆位移作用于噪声点使其接近无噪声点云;
其中,损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示随机事件的损失的函数,作为学习准则与优化问题相联系,通过最小化损失函数求解和评估模型;
其中,反向传播是通过多次迭代训练不断更新网络中神经元的参数,当损失函数达到设定的阈值或者最大迭代次数时,收敛完成,终止训练;
其中,全连接层是每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来,由于其全相连的特性,一般全连接层的参数也是最多的;
其中,dropout层在每个训练批次中,通过忽略一半的特征检测器来减少过拟合现象,通过这种方式可以减少隐层节点之间的相互作用;
所述第六步的过程如下:
步骤(6.1)通过全连接层来将特征向量重构为与噪声点pi'同纬度的预测位移使之作用于噪声点得到预测点/>
步骤(6.2)通过损失函数来计算预测点与无噪声点pi之间的损失,引导网络的收敛过程,过程如下:
步骤(6.2.1)网络最终预测的是作用于噪声点pi'的位移因此需要选择一个合适的损失函数使得/>与pi更加接近,这一目的符合L2距离的特点,基于L2距离设计第一个损失函数Ls:
其中,表示L2距离又称为欧氏距离,用来表示两点之间或者多点之间的距离,min表示最小值;
步骤(6.2.2)为了使得预测出的点云尽可能分布均匀,为避免点的过度聚集,添加修正项Lr:
其中,max表示最大值;
步骤(6.2.3)综合以上得到整体损失函数La:
La=αLs+(1-α)Lr
其中α是一个权重参数,用于控制训练过程中的修正程度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310184960.7A CN117196963A (zh) | 2023-03-01 | 2023-03-01 | 一种基于降噪自编码器的点云去噪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310184960.7A CN117196963A (zh) | 2023-03-01 | 2023-03-01 | 一种基于降噪自编码器的点云去噪方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117196963A true CN117196963A (zh) | 2023-12-08 |
Family
ID=88989365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310184960.7A Pending CN117196963A (zh) | 2023-03-01 | 2023-03-01 | 一种基于降噪自编码器的点云去噪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117196963A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118015284A (zh) * | 2024-04-09 | 2024-05-10 | 中国空气动力研究与发展中心低速空气动力研究所 | 基于生成对抗网络的点云分割方法及*** |
-
2023
- 2023-03-01 CN CN202310184960.7A patent/CN117196963A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118015284A (zh) * | 2024-04-09 | 2024-05-10 | 中国空气动力研究与发展中心低速空气动力研究所 | 基于生成对抗网络的点云分割方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Connecting image denoising and high-level vision tasks via deep learning | |
US11645835B2 (en) | Hypercomplex deep learning methods, architectures, and apparatus for multimodal small, medium, and large-scale data representation, analysis, and applications | |
CN111950649B (zh) | 基于注意力机制与胶囊网络的低照度图像分类方法 | |
EP3298576B1 (en) | Training a neural network | |
Wang et al. | Encoder-X: solving unknown coefficients automatically in polynomial fitting by using an autoencoder | |
CN110232341B (zh) | 基于卷积-堆叠降噪编码网络的半监督学习图像识别方法 | |
CN112288011B (zh) | 一种基于自注意力深度神经网络的图像匹配方法 | |
Cho | Boltzmann machines and denoising autoencoders for image denoising | |
CN113362310A (zh) | 一种基于无监督学习的医学图像肝脏分割方法 | |
Chaurasiya et al. | Deep dilated CNN based image denoising | |
CN107798329B (zh) | 基于cnn的自适应粒子滤波目标跟踪方法 | |
Uddin et al. | A perceptually inspired new blind image denoising method using $ L_ {1} $ and perceptual loss | |
CN115995040A (zh) | 一种基于多尺度网络的sar图像小样本目标识别方法 | |
CN117196963A (zh) | 一种基于降噪自编码器的点云去噪方法 | |
Zuo et al. | A remote sensing image semantic segmentation method by combining deformable convolution with conditional random fields | |
Lu et al. | Image-specific prior adaptation for denoising | |
CN113869234A (zh) | 人脸表情识别方法、装置、设备及存储介质 | |
CN117523555A (zh) | 一种基于自编码器的飞机零件缺陷检测方法 | |
CN117372278A (zh) | 一种基于多尺度分布分数的点云去噪方法 | |
Muthusamy et al. | Deep belief network for solving the image quality assessment in full reference and no reference model | |
CN113269235B (zh) | 一种基于无监督学习的装配体变化检测方法及设备 | |
Chen et al. | Image denoising via generative adversarial networks with detail loss | |
Lin et al. | Ml-capsnet meets vb-di-d: A novel distortion-tolerant baseline for perturbed object recognition | |
Nanavati et al. | Generative adversarial networks: A comparative analysis | |
Xu et al. | Steganography algorithms recognition based on match image and deep features verification |
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 |