基于生成对抗网络的端到端点云补全方法

文档序号:30437354发布日期:2022-06-17 20:46阅读:275来源:国知局
基于生成对抗网络的端到端点云补全方法

1.本技术涉及计算机视觉以及自动驾驶技术领域,特别是涉及一种基于生成对抗网络的端到端点云补全方法。


背景技术:

2.在3d视觉领域,三维数据表示方法包括体素、点云和二进制网格.其中,点云具有数据量小、分辨率高的独特优势被广泛应用于3d数据处理.激光雷达、立体相机或rgbd深度相机是获取现实生活中点云的常用方式.传统的激光扫描仪存在成本高、效率低、质量差等缺点.其中,立体相机或深度相机被频繁使用,但在点云的实际采集过程中由于物体被遮挡、物体表面的光反射、物体的透明度和相机视角的限制,获取的点云数据基本是不完整的,因此为了让点云数据能够在自动驾驶、医学等领域中得到应用,所以对点云进行信息补全是一项非常重要的工作。
3.当前点云和体素是三维形状补全的主要数据源,《shape inpainting using 3d generative adversarial network and recurrent convolutional networks》提出了基于体素网格的算法3d-ed-gan以实现点云修复,但是基于体素的方法由于其分辨率的限制,在网络训练的过程中计算量会大大增加.《pointnet:deep learning on point sets for 3d classification and segmentation》提出了pointnet,它让点云数据直接作为神经网络的输入并实现点云形状的建模、分类及分割成为可能.pointnet一直在寻找一种对称函数用来解决点云的无序性问题,最终他们选择使用神经网络中的最大池化来解决该问题并取得了良好的效果.在此之后,点云补齐任务的算法才得到了极大的发展.《learning representations and generative models for 3d point clouds》提出了第一个使用编码器

解码器框架(l-gan)去解决点云补齐任务的方法,因为该方法的体系结构主要不是以点云修复为任务所构建的,所以只能在一定程度上修复点云,因此目前的点云补全方法精度较低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高点云补全方法精度的基于生成对抗网络的端到端点云补全方法。
5.一种基于生成对抗网络的端到端点云补全方法,所述方法包括:
6.s1、获取modelnet40中公开的数据集,构建所需的原始点云数据集;
7.s2、先对原始点云数据集中原始点云进行切割删除操作,在原始点云中删除一部分点云构建缺失点云g1(n,3),n代表点云中点的个数,保留切割部分点云p
gt
和缺失点云g1(n,3)作为模型训练的数据;
8.s3、对缺失点云g1(n,3)使用随机点采样方法进行下采样操作获取两个分辨率小于1024
×
3的点云g2(n
*
,3)和点云g3(n
**
,3),n>n
*
>n
**

9.s4、构建生成器网络和判别器网络,所述生成器网络包括多尺度transformer编码
器和特征解码器;
10.s5、将缺失点云g1(n,3)、点云g2(n
*
,3)和点云g3(n
**
,3)作为多尺度transformer编码器的输入,得到全局特征向量f
p

11.s6、将所述全局特征向量f
p
输入到特征解码器中,输出缺失部分的点云p
out

12.s7、将所述切割部分点云p
gt
和所述缺失部分的点云p
out
作为判别器的输入,输出所述缺失部分的点云p
out
的得分;
13.s8、根据所述缺失部分的点云p
out
的得分,采用损失函数计算损失,通过反向传播的方式优化网络参数直至达到预设精度,完成模型训练,得到点云补全模型;
14.s9、获取残缺点云输入点云补全模型进行点云补全,输出所述残缺点云的残缺部分点云;
15.s10、拼接所述残缺点云的残缺部分点云与所述残缺点云,获得补全后的点云。
16.在其中一个实施例中,所述先对原始点云数据集中原始点云进行切割删除操作,在原始点云中删除一部分点云构建缺失点云g1(n,3)的步骤,包括:
17.在三维坐标系中的找到5个点,这5个点分别为o1(0,0,1)、o2(1,0,0)、o3(-1,0,0)、o4(1,0,1)、o5(-1,1,0),从这5个点中随机选取一个点作为中心点oj,j∈(1,2

5),再计算原始点云中每个点pi(xi,yi,zi),i∈(1,2

n)到中心点oj的距离的平方和di,i∈(1,2

n),删除di中距离最小的前512个点,得到删除后的点云g1(n,3),其中,xi为三维坐标系中的x轴的坐标值,yi为三维坐标系中的y轴的坐标值,zi为三维坐标系中的z轴的坐标值。
18.在其中一个实施例中,所述对缺失点云g1(n,3)使用随机点采样方法进行下采样操作获取两个分辨率小于1024
×
3的点云g2(n
*
,3)和点云g3(n
**
,3)的步骤,包括:
19.首先在缺失点云g1(n,3)里随机选取一个点,以该点为圆心,以r=n/n
*
为半径形成一个圆,在该圆内范围的点中删除距离圆心最近的前r个点,如此循环n
*
次,得到低分辨率的点云g2(n
*
,3);
20.在点云g2(n
*
,3)中随机选取一点,以该点为圆心,以r=n
*
/n
**
为半径形成一个圆,在该圆内范围的点中删除距离圆心最近的前r个点,如此循环n
**
次,得到低分辨率的点云g3(n
**
,3)。
21.在其中一个实施例中,所述多尺度transformer编码器由三个相同结构的transformer编码器组成,将缺失点云g1(n,3)、点云g2(n
*
,3)和点云g3(n
**
,3)分别作为三个transformer编码器的输入,输出包含g1,g2,g3点云信息的全局特征f
p
,从而对残缺点云特征信息的提取。
22.在其中一个实施例中,所述transformer编码器主要由点嵌入模块和叠加自注意力机制模块组成,点嵌入模块由2个相连的cbr组成,两个相连的cbr结构为(128,128),点嵌入模块将每个点看作是句子中的单词,将具有相似位置语义的点放在空间中相近的位置;以g1(n,3)为例,通过两个相连的cbr产生[128
×
128]的点嵌入特征信息fe,点嵌入特征信息fe会作为叠加注意力机制模块的输入,叠加自注意力机制模块由四个相连接并且相同结构的自注意力机制组成,自注意力机制主要由cbr组成,经过四个相连接自注意力机制将每个点映射到[128-128-128-128]的维度上,将这4维度拼接起来形成g1的全局特征其大小为[128
×
512];同理,通过g2(n
*
,3)得到的全局特征和通过g3(n
**
,3)得到的全局特征
的大小都为[128
×
512],拼接和再经过最大池化得到全局特征向量f
p
,f
p
维度为[1
×
1536]。
[0023]
在其中一个实施例中,特征解码器主要由前馈神经网络组成,主要是对全局特征f
p
解码,特征解码器将全局特征向量f
p
作为它的输入,其内部由线性层和cbr组成,将[1
×
1536]维度的全局特征向量f
p
解码成[m
×
3]的点云p
out
,p
out
表示缺失部分的点云,m是缺失点的数量。
[0024]
在其中一个实施例中,判别器由三个cbr、两个lbr和一个线性层组成,判别器将缺失部分的点云p
out
作为输入,通过三个连续的cbr产生[64-128-256]维度的中间特征,拼接该中间特征再经过最大池化得到[1
×
448]特征,然后通过两个lbr和一个线性层得到一个标量v,v代表生成器生成的缺失部分的点云p
out
的得分。
[0025]
在其中一个实施例中,所述损失函数为:
[0026][0027]
其中,l
cd
(s1,s2)为缺失部分的点云p
out
和切割部分点云p
gt
之间的差距,s1为缺失部分的点云p
out
,s2为切割部分点云p
gt
,x为缺失部分的点云p
out
的某个点,y为切割部分点云p
gt
的某个点。
[0028]
上述基于生成对抗网络的端到端点云补全方法,通过获取modelnet40中公开的数据集,构建所需的原始点云数据集;先对原始点云数据集中原始点云进行切割删除操作,在原始点云中删除一部分点云构建缺失点云,保留切割部分点云和缺失点云作为模型训练的数据;对缺失点云使用随机点采样方法进行下采样操作获取两个低分辨率的点云和点云;构建生成器网络和判别器网络,所述生成器网络包括多尺度transformer编码器和特征解码器;将缺失点云、点云和点云作为多尺度transformer编码器的输入,得到全局特征向量;将所述全局特征向量输入到特征解码器中,输出缺失部分的点云;将所述切割部分点云和所述缺失部分的点云作为判别器的输入,输出所述缺失部分的点云的得分;根据所述缺失部分的点云的得分,采用损失函数计算损失,通过反向传播的方式优化网络参数直至达到预设精度,完成模型训练,得到点云补全模型;获取残缺点云输入点云补全模型进行点云补全,输出所述残缺点云的残缺部分点云;拼接所述残缺点云的残缺部分点云与所述残缺点云,获得补全后的点云。采用生成对抗网络的架构保证了网络训练的稳定性,能够学习全局上下文信息,通过多尺度transformer编码器、特征解码器直接端到端的生成缺失部分的点云,使补全的点云不仅没有丢失几何语义信息而且还能保留原始点云的细节,提高了点云补全模型的精度,进一步解决了点云补全方法的结果缺失几何语义,细节差等问题,提高了点云补全方法的精度。
附图说明
[0029]
图1为一个实施例中基于生成对抗网络的端到端点云补全方法中模型训练的整体网络结构图;
[0030]
图2为一个实施例中生成器的网络结构图;
[0031]
图3为一个实施例中判别器的网络结构图;
[0032]
图4为本技术对缺失点云补全的效果可视化对比图;
[0033]
图5为本技术对不同缺失程度点云的补全效果可视化对比图。
具体实施方式
[0034]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0035]
在一个实施例中,如图1所示,提供了一种基于生成对抗网络的端到端点云补全方法,以该方法应用于终端为例进行说明,包括以下步骤:
[0036]
一种基于生成对抗网络的端到端点云补全方法,所述方法包括:
[0037]
s1、获取modelnet40中公开的数据集,构建所需的原始点云数据集。
[0038]
其中,modelnet40公开的数据集,它共有40种类别的三维点云数据,每个点云数据都由n个点组成,n并不相同,每个点都包含三维坐标信息;共有80000个点云数据,本技术将其中的64000个点云作为训练集,16000个点云作为测试集。
[0039]
s2、先对原始点云数据集中原始点云进行切割删除操作,在原始点云中删除一部分点云构建缺失点云g1(n,3),n代表点云中点的个数,保留切割部分点云p
gt
和缺失点云g1(n,3)作为模型训练的数据。
[0040]
s3、对缺失点云g1(n,3)使用随机点采样方法进行下采样操作获取两个低分辨率的点云g2(n
*
,3)和点云g3(n
**
,3),n>n
*
>n
**

[0041]
其中,n
*
为点云g2数据中点的个数,n*<1024,n
**
为点云g3数据中点的个数,n**<1024。低分辨率的点云是指低于1024个点的点云。如设置n=1024,n*=512,n**=256。
[0042]
s4、构建生成器网络和判别器网络,所述生成器网络包括多尺度transformer编码器和特征解码器。
[0043]
其中,如图2所示,生成器网络包括包括encoder
t
(多尺度transformer编码器)和decoderm(特征解码器)。其中encoder
t
由三个相同结构的transformer编码器组成,transformer编码器是一个基于transformer的点云特征提取网络,它主要由点嵌入模块和叠加自注意力机制模块组成,点嵌入模块由2个相连的cbr(convolution、batchnorm、relu)组成,两个相连的cbr结构为(128,128),点嵌入模块将每个点看作是句子中的单词,它的作用是将具有相似位置语义的点放在空间中相近的位置。以g1(n,3)为例,通过两个相连的cbr产生[128
×
128]的点嵌入特征信息fe。fe会作为叠加注意力机制模块的输入,叠加自注意力机制模块由四个相连接并且相同结构的自注意力机制组成,自注意力机制主要由cbr组成,假设输入大小为row
×
col,首先,每个自注意力机内部通过同一个线性层得到query矩阵、key矩阵、value矩阵,三个矩阵的大小分别是row
×
col
*
、col
*
×
row、row
×
col,其中key矩阵得到前需要进行转置,然后将query矩阵和key矩阵进行矩阵相乘就得到了注意力权重(attention weight),其大小为row
×
row,注意力权重大小代表每一个点与其他点之间的语义相似程度,相关程度,最后将得到的注意力权重经过归一化再和value矩阵进行矩阵相乘将得到注意力特征(attention feature),大小为row
×
col,这样通过一层自注意力机制之后的输出和输入是一样的大小row
×
col,我们在注意力机制模块中堆叠了4层自注意力机制,经过四个相连接自注意力机制将每个点映射到[128-128-128-128]的维度上,将
这4维度拼接起来形成g1的全局特征其大小为[128
×
512];同理,通过g2(n
*
,3)得到的全局特征和通过g3(n
**
,3)得到的全局特征的大小都为[128
×
512],拼接和再经过最大池化得到全局特征向量f
p
,f
p
维度为[1
×
1536];特征解码器由前馈神经网络组成,特征解码器将全局特征向量f
p
作为它的输入,其内部由线性层和cbr组成,将[1
×
1536]维度的全局特征向量f
p
解码成[m
×
3]的点云p
out
,表示补全缺失区域的点云,m是缺失点的数量。
[0044]
s5、将缺失点云g1(n,3)、点云g2(n
*
,3)和点云g3(n
**
,3)作为多尺度transformer编码器的输入,得到全局特征向量f
p

[0045]
s6、将所述全局特征向量f
p
输入到特征解码器中,输出缺失部分的点云p
out

[0046]
s7、将所述切割部分点云p
gt
和所述缺失部分的点云p
out
作为判别器的输入,输出所述缺失部分的点云p
out
的得分。
[0047]
s8、根据所述缺失部分的点云p
out
的得分,采用损失函数计算损失,通过反向传播的方式优化网络参数直至达到预设精度,完成模型训练,得到点云补全模型。
[0048]
s9、获取残缺点云输入点云补全模型进行点云补全,输出所述残缺点云的残缺部分点云。
[0049]
s10、拼接所述残缺点云的残缺部分点云与所述残缺点云,获得补全后的点云。
[0050]
在一个实施例中,所述先对原始点云数据集中原始点云进行切割删除操作,在原始点云中删除一部分点云构建缺失点云g1(n,3)的步骤,包括:
[0051]
在三维坐标系中的找到5个点,这5个点分别为o1(0,0,1)、o2(1,0,0)、o3(-1,0,0)、o4(1,0,1)、o5(-1,1,0),从这5个点中随机选取一个点作为中心点oj,j∈(1,2

5),再计算原始点云中每个点pi(xi,yi,zi),i∈(1,2

n)到中心点oj的距离的平方和di,i∈(1,2

n),删除di中距离最小的前512个点,得到删除后的点云g1(n,3),其中,xi为三维坐标系中的x轴的坐标值,yi为三维坐标系中的y轴的坐标值,zi为三维坐标系中的z轴的坐标值。
[0052]
在一个实施例中,所述对缺失点云g1(n,3)使用随机点采样方法进行下采样操作获取两个低分辨率的点云g2(n
*
,3)和点云g3(n
**
,3)的步骤,包括:
[0053]
首先在缺失点云g1(n,3)里随机选取一个点,以该点为圆心,以r=n/n
*
为半径形成一个圆,在该圆内范围的点中删除距离圆心最近的前r个点,如此循环n
*
次,得到低分辨率的点云g2(n
*
,3);
[0054]
在点云g2(n
*
,3)中随机选取一点,以该点为圆心,以r=n
*
/n
**
为半径形成一个圆,在该圆内范围的点中删除距离圆心最近的前r个点,如此循环n
**
次,得到低分辨率的点云g3(n
**
,3)。
[0055]
在一个实施例中,所述多尺度transformer编码器由三个相同结构的transformer编码器组成,将缺失点云g1(n,3)、点云g2(n
*
,3)和点云g3(n
**
,3)分别作为三个transformer编码器的输入,输出包含g1,g2,g3点云信息的全局特征f
p
,从而对残缺点云特征信息的提取。
[0056]
其中,多尺度transformer编码器可以提取点云不同分辨率的局部细节特征;从而有效的提高点云补全的精度。
[0057]
在一个实施例中,所述transformer编码器主要由点嵌入模块和叠加自注意力机
制模块组成,点嵌入模块由2个相连的cbr组成,两个相连的cbr结构为(128,128),点嵌入模块将每个点看作是句子中的单词,将具有相似位置语义的点放在空间中相近的位置;以g1(n,3)为例,通过两个相连的cbr产生[128
×
128]的点嵌入特征信息fe,点嵌入特征信息fe会作为叠加注意力机制模块的输入,叠加自注意力机制模块由四个相连接并且相同结构的自注意力机制组成,自注意力机制主要由cbr组成,经过四个相连接自注意力机制将每个点映射到[128-128-128-128]的维度上,将这4维度拼接起来形成g1的全局特征其大小为[128
×
512];同理,通过g2(n
*
,3)得到的全局特征和通过g3(n
**
,3)得到的全局特征的大小都为[128
×
512],拼接和再经过最大池化得到全局特征向量f
p
,f
p
维度为[1
×
1536]。
[0058]
其中,cbr指的是卷积归一化模块,由convolution、batchnorm和relu依次相连构成。
[0059]
在一个实施例中,特征解码器主要由前馈神经网络组成,主要是对全局特征f
p
解码,特征解码器将全局特征向量f
p
作为它的输入,其内部由线性层和cbr组成,将[1
×
1536]维度的全局特征向量f
p
解码成[m
×
3]的点云p
out
,p
out
表示缺失部分的点云,m是缺失点的数量。
[0060]
在一个实施例中,如图3所示,判别器由三个cbr、两个lbr和一个线性层组成,判别器将缺失部分的点云p
out
作为输入,通过三个连续的cbr产生[64-128-256]维度的中间特征,拼接该中间特征再经过最大池化得到[1
×
448]特征,然后通过两个lbr和一个线性层得到一个标量v,v代表生成器生成的缺失部分的点云p
out
的得分。
[0061]
其中,lbr指的是线性归一化模块,由linear、batchnorm和relu依次相连构成。
[0062]
在一个实施例中,所述损失函数为:
[0063][0064]
其中,l
cd
(s1,s2)为缺失部分的点云p
out
和切割部分点云p
gt
之间的差距,s1为缺失部分的点云p
out
,s2为切割部分点云p
gt
,x为缺失部分的点云p
out
的某个点,y为切割部分点云p
gt
的某个点。
[0065]
其中,倒角距离(cd距离)能够衡量修复补全后的点云形状与真实点云形状之间的差异,该值越接近零表示点云之间的相似程度越高,修复补全效果越好。
[0066]
上述基于生成对抗网络的端到端点云补全方法,通过获取modelnet40中公开的数据集,构建所需的原始点云数据集;先对原始点云数据集中原始点云进行切割删除操作,在原始点云中删除一部分点云构建缺失点云,保留切割部分点云和缺失点云作为模型训练的数据;对缺失点云使用随机点采样方法进行下采样操作获取两个低分辨率的点云和点云;构建生成器网络和判别器网络,所述生成器网络包括多尺度transformer编码器和特征解码器;将缺失点云、点云和点云作为多尺度transformer编码器的输入,得到全局特征向量;将所述全局特征向量输入到特征解码器中,输出缺失部分的点云;将所述切割部分点云和所述缺失部分的点云作为判别器的输入,输出所述缺失部分的点云的得分;根据所述缺失部分的点云的得分,采用损失函数计算损失,通过反向传播的方式优化网络参数直至达到
预设精度,完成模型训练,得到点云补全模型;获取残缺点云输入点云补全模型进行点云补全,输出所述残缺点云的残缺部分点云;拼接所述残缺点云的残缺部分点云与所述残缺点云,获得补全后的点云。采用生成对抗网络的架构保证了网络训练的稳定性,能够学习全局上下文信息,通过多尺度transformer编码器、特征解码器直接端到端的生成缺失部分的点云,使补全的点云不仅没有丢失几何语义信息而且还能保留原始点云的细节,提高了点云补全模型的精度,进一步解决了点云补全方法的结果缺失几何语义,细节差等问题,提高了点云补全方法的精度。
[0067]
进一步地,本技术对不同缺失比例的点云也能有效的修复,具有良好的鲁棒性。
[0068]
本发明还通过实验进行了结果分析,如图4所示,直观展示本技术的补全效果,在图4中通过和真值图(即实际的完整点云)对比可以看出本技术能够有效的修复飞机等对象的残缺部位,同时使生成的点云分布均匀。如图5所示,直观展示本技术的鲁棒性效果,本技术测试了不同缺失程度和不同缺失部位的点云形状修复实验,如图5所示给出了在一个飞机样本点云缺失程度分别50%、25%、35%的补全点云修复效果,实验结果表明,在不同缺失程度下,本技术方法都能将缺失部位进行补全。
[0069]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0070]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1