一种基于深度学习和拓扑感知的三维点云补全方法

文档序号:32870439发布日期:2023-01-07 03:34阅读:59来源:国知局
一种基于深度学习和拓扑感知的三维点云补全方法

1.本发明涉及计算机视觉技术领域,具体涉及一种基于深度学习和拓扑感知的三维点云补全方法,利用深度学习技术实现三维残缺点云的自动补全,能够提高激光雷达采集到的点云数据的质量,适用于提升点云分类、分割、三维目标检测等任务的效果。


背景技术:

2.早期的点云补全算法主要有基于几何和基于检索匹配两类,但这些方法要么对数据做了对称性假设,要么需要大量数据支撑,并不能很好的应用在现实世界中。随着计算机技术的发展,出现了很多应用于二维图像的深度学习方法,但是与结构化的二维图像数据不同,点云具有置换不变性、旋转不变性以及不均匀性,也就是说,点云连续地分布在三维空间中,且对同一个点云的处理结果不能受其排列顺序影响。因此,已经发展的相当成熟的基于二维图像的深度学习算法并不能直接迁移到三维点云上来,亟需设计针对三维点云的算法。
3.pointnet、pointnet++等算法的出现开创了利用深度学习方法直接处理点云数据的先河,这些方法利用多层感知机实现了点云特征提取,并通过池化操作保证点云的置换不变性,在点云分类、分割等任务上都取得了优异的效果。在此基础上,也出现了很多基于深度学习的点云补全方法。
4.基于点的方法对点云上的点逐个处理,通过对特征进行编解码实现点云补全。pcn是第一个利用深度学习进行点云补全的算法,其直接作用于点云而不需要任何(如对称性)结构假设,是一个典型的编码器-解码器结构的网络,编码器采用pointnet结构,提取点云的全局特征,并将该全局特征输入到两阶段解码器中重建出完整点云。pcn的解码器借鉴了基于全连接和基于折叠两种方法,从而能够产生细粒度的点云。
5.考虑到点云原始形状的缺失会影响网络提取到的特征的效果,srpcn使用k-means聚类提取结构点,设计了点云缺失率预测算法来预测k-means聚类类数,随后通过计算kl散度与完整点云结构进行匹配,再对检索到的点云与残缺点云结构融合后进行上采样形状恢复。
6.随着近年来transformer在视觉领域的广泛流传,也出现了很多基于transformer的点云补全算法。pointr开创性的将点云不全问题视为集合到集合的翻译问题,设计了基于几何感知的transformer编、解码器。通过将点云表示为一组具有位置嵌入的无序点集,将点云转换为一系列的点代理,并通过transformer进行缺失部分点云的生成。snowflakenet则是将transformer应用于解码过程中,将完整点云的生成建模为三维空间中点的雪花状增长,通过引入跳跃transformer,从上一层中学习当前层局部区域的分裂模式,从而预测高精度的几何形状。
7.现有的基于深度学习的点云补全方法通常会采用pointnet或pointnet++进行点云特征提取。但pointnet或pointnet++为了保证点云的置换不变性,都是独立地处理每个点,而忽略了点与其邻居间的几何关系,因此会导致局部细节特征的缺失。
8.此外,现有方法通常采用从粗到细粒度的方式进行补全,但是第一阶段的稀疏输出会丢失细节信息,进一步导致第二阶段上采样得到的稠密点云会丢失细节。此外,现有方法针对缺失点云进行特征提取,只能学习到点云已有部分的特征,对残缺部分的特征并不能很好的学习,这与我们补全任务的目标其实是相违背的。
9.可以看出,现有技术存在的问题归根结底可以总结为是算法各阶段点云局部细节特征的缺失。


技术实现要素:

10.有鉴于此,本发明提供了一种基于深度学习和拓扑感知的三维点云补全方法,能够在特征提取、粗粒度点云生成以及细粒度点云生成三个阶段均进行点云补全。
11.为达到上述目的,本发明的技术方案包括如下步骤:
12.步骤1:构建点云特征提取模块,点云特征提取模块以待补全的缺失点云数据作为输入,采用第一特征编码器提取输入的缺失点云数据的特征向量,所提取的特征向量包含缺失点云数据的点云结构特性和拓扑特性,记为缺失点云特征。
13.步骤2:构建粗粒度点云生成模块,粗粒度点云生成模块以缺失点云特征采用第一多层感知机针对缺失点云特征进行点云重建,获得补全点云,将补全点云与缺失点云数据进行拼接,拼接后的点云进行采样,得到补全的粗粒度点云。
14.步骤3:构建细粒度点云生成模块,细粒度点云生成模块以补全的粗粒度点云作为输入,利用注意力机制进行自适应地点云特征学习,获得注意力机制点云特征;细粒度点云生成模块将缺失点云特征、注意力机制点云特征、粗粒度点云和附加的二维网格拼接在一起,得到拼接特征,将拼接特征送入上采样网络中,逐步增加点的数量,达到设定数量之后,得到细粒度点云,作为点云补全结果进行输出。
15.优选地,步骤2中,拼接后的点云进行采样,具体地,采用最小密度采样方式进行采样;最小密度采样具体方式为:每次从拼接后的点云的点中选取一个密度最小的点,直至达到目标点数;点的密度通过高斯核函数来估计。
16.优选地,细粒度点云生成模块以补全的粗粒度点云作为输入,利用注意力机制进行自适应地点云特征学习,获得注意力机制点云特征,具体为:
17.对于点云中的第i个点,其注意力机制点云特征为yi:
[0018][0019]
δ=θ(p
i-pj)
[0020]
其中x(i)是通过knn最近邻搜索得到的第i个点的邻居的集合,x(i)为x(i)中元素,pi,pj分别代表点i和点j的位置信息,δ为位置偏移,都代表线性变换运算,代表原始特征信息,ψ(xj),α(xj)代表邻居特征信息,θ代表多层感知机,ρ表示非线性激活层softmax;γ为多层感知机。
[0021]
优选地,三维点云补全方法,还包括构建重建通道针对所构建的点云特征提取模块、粗粒度点云生成模块以及细粒度点云生成模块进行训练。
[0022]
重建通道包含如下两个模块;
[0023]
第一模块以完整点云为输入,采用第二特征编码器提取完整点云的特征向量,记
为完整点云特征;第二特征编码器与第一特征编码器共享参数。
[0024]
第二模块以完整点云特征作为输入,采用第二多层感知机针对完整点云特征进行点云重建,重建后得到的重建点云与完整点云进行拼接,拼接后的点云进行采样,得到完整重建点云;第二多层感知机与第一多层感知机共享参数;完整重建点云作为重建通道的输出。
[0025]
已构建的点云特征提取模块、粗粒度点云生成模块以及细粒度点云生成模块组成补全通道。
[0026]
重建通道通过深度学习方法训练第一特征编码器,通过共享网络参数,使重建通道的第二特征编码器在网络梯度和形状分布两个方面引导补全通道的第一特征编码器学习和收敛。
[0027]
用待补全的缺失点云数据所对应的真实点云y
gt
分别对补全的粗粒度点云和细粒度点云进行监督。
[0028]
优选地,用待补全的缺失点云数据所对应的真实点云y
gt
分别对补全的粗粒度点云和细粒度点云进行监督,具体地,采用如下损失函数进行监督:
[0029]
loss=l1+αl2+βl3+γl
feature
[0030]
l1=cd(y
coarse
,y
gt
)
[0031]
l2=cd(y
rec
,y
gt
)
[0032]
l3=cd(y
fine
+y
gt
)+emd(y
fine
+y
gt
)
[0033]
其中,loss为最终的损失函数,l1为补全通道中粗粒度点云生成模块的损失,l2为重建通道中第二模块的损失,l3为细粒度点云生成模块的损失,l
feature
为点云特征提取模块的损失,y
gt
为输入点云对应的真实点云,y
rec
为重建通道输出的点云,y
coarse
为补全通道输出的补全的粗粒度点云,y
fine
为补全通道最终输出的细粒度点云,α、β、γ为各个损失在整体损失中所占权重。
[0034]
有益效果:
[0035]
1.本发明提供的一种基于拓扑感知的三维点云补全方法,在点云特征提取模块中,通过边卷积算子学习点云中隐式的拓扑信息;在粗粒度点云生成模块,生成稀疏但结构相对完整的粗粒度点云,初步生成的稀疏点云与残缺输入拼接起来,从而最大程度上保留输入点云的细节;在细粒度点云生成模块利用自注意力机制提高特征提取能力,通过附加二维网格增加点云形变能力,实现最终稠密点云的生成,实现了针对三维点云的补全,可应用于自动驾驶中,使用激光雷达针对自动驾驶场景获取到的缺失点云进行补偿,点云场景中,对点云进行补全后,可以进行目标检测。
[0036]
2.本发明采用重建统建和补全双通道进行特征提取,并通过双通道同时处理缺失及完整点云来弥补现有点云特征提取算法的不足,在特征提取阶段能够更好的利用数据集中完整点云的信息,通过特征匹配和融合,能够得到更加完整的点云特征。
[0037]
3.本发明通过利用自注意力机制在细粒度点云生成阶段提取点云特征,解决了现有基于折叠的点云解码器无法生成复杂点云的缺点,提高了补全的效果。
附图说明
[0038]
图1本发明提供的基于深度学习和拓扑感知的三维点云补全原理图;
[0039]
图2点云自注意力机制原理图。
具体实施方式
[0040]
下面结合附图并举实施例,对本发明进行详细描述。
[0041]
本发明提供了一种基于拓扑感知的三维点云补全方法,针对目前方法在各个方面存在的问题进行改进,设计了一种基于深度学习和拓扑感知的三维点云补全方法。图1给出了本发明方法的整体架构图。整个补全网络大体上分为三个部分。第一部分是点云特征提取模块,该模块通过自动特征编码器,提取包含点云隐式拓扑信息的全局及局部特征。第二部分是粗粒度点云生成模块,该模块通过一系列共享参数的多层感知机,生成稀疏但结构完整的骨架点云,即为粗粒度点云。第三部分是细粒度点云生成模块,该模块通过对上一阶段生成的粗粒度点云进行上采样,生成密集且包含细节信息的完整点云。下面分别对这三个部分进行详细介绍。
[0042]
步骤1:构建点云特征提取模块
[0043]
点云特征提取模块以待补全的缺失点云数据作为输入,采用第一特征编码器提取输入的缺失点云数据的特征向量,所提取的特征向量包含缺失点云数据的点云结构特性和拓扑特性,记为缺失点云特征;
[0044]
本发明实施例中在点云编码器的设计上,利用经典点云工作中使用的特征编码器抽取残缺点云特征,通过构建点云邻域图划分局部区域,利用针对点云数据改进的卷积算子edgeconv来改进点云特征编码器,对每个提取到的局部邻域图进行卷积,学习点云隐式的拓扑信息特征,从而得到同时包含点云结构特性和拓扑特性的特征向量。
[0045]
改进的点云卷积算子edgeconv原理为:首先通过k-最近邻(knn)构建有向图g={v,e},通过神经网络定义一个非线性函数h
θ
(xi,xj)来得到两个点之间的边的特征,最后通过对每个点与其邻域内所有邻居点组成的边的特征进行聚合,得到当前点的特征。
[0046]
步骤2:构建粗粒度点云生成模块
[0047]
粗粒度点云生成模块以缺失点云特征采用第一多层感知机针对缺失点云特征进行点云重建,获得补全点云,将补全点云与缺失点云数据进行拼接,拼接后的点云进行采样,得到补全的粗粒度点云。
[0048]
本阶段的主要任务是生成稀疏但结构相对完整的粗粒度点云。因此,分别将重建通道和补全通道得到的点云特征作为输入,使用共享参数的多层感知机分别生成重建点云y
rec
以及初步的补全点云yc。但是由于多层感知机的能力有限,此时的补全的点云形状会更加倾向于其同类物体的平均形状,即该类物体的共性,缺乏个性的细节信息。为了保留当前输入的细节信息,将初步生成的粗粒度点云与输入的缺失点云数据拼接起来,从而最大程度上保留输入点云的细节。
[0049]
考虑到输入的残缺点云是不均匀的,且拼接后的点云可能存在重叠现象,如果直接使用拼接后的点云进行后续操作,会导致最终输出的点云也是不均匀的,因此需要对拼接后的点云进行采样,得到优化后的粗粒度点云y
coarse
。常用的点云采样方法有以下两种:
[0050]
(1)随机采样。随机采样就是从点云中随机的选取目标数量的点,构成新的点云,但是这种采样方式存在随机性,有时无法覆盖整个采样空间。
[0051]
(2)最远点采样(fastest point sampling,fps)。最远点采样也是目前最常用的
采样方法,其采样原理是,每次从点云的剩余点中选取一个距离最远的点,直至达到目标点数。
[0052]
但是这两种采样方法都无法很好的保证采样结果的均匀性,因此本发明使用一种新的采样方法——最小密度采样(minimum density sampling,mds)进行采样。最小密度采样具体方式为:每次从拼接后的点云的点中选取一个密度最小的点,直至达到目标点数;点的密度通过高斯核函数来估计。最小密度采样的思想与最远点采样类似,区别在于每次返回一个具有最小“密度”的点,该密度是通过高斯核函数来进行估计的。
[0053]
每次返回的最小“密度”点定义如公式(1):
[0054][0055]
综上,粗粒度点云生成过程可以用公式(2)描述:
[0056]ycoarse
=mds(concat(yc,x
partial
))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0057]
其中,pi为第i次迭代返回的最小密度点,p
i-1
为第i-1次迭代后剩余的点的集合(初始点集为点云中所有的点,每次迭代返回最小密度点后会将该点从点集中删除),pj为p
i-1
中的点,x为不在p
i-1
中的点(即前i-1次迭代中返回的所有点),σ为邻域半径。
[0058]
步骤3:构建细粒度点云生成模块
[0059]
细粒度点云生成模块以补全的粗粒度点云作为输入,利用注意力机制进行自适应地点云特征学习,获得注意力机制点云特征;细粒度点云生成模块将缺失点云特征、注意力机制点云特征、粗粒度点云和附加的二维网格拼接在一起,得到拼接特征,将拼接特征送入上采样网络中,逐步增加点的数量,达到设定数量之后,得到细粒度点云,作为点云补全结果进行输出。改设定数量根据补全点云的数据需求设定。
[0060]ycoarse
作为输入,自适应地学习点云特征。对于点云中的第i个点,其注意力机制点云特征计算如公式(3)。
[0061][0062]
与传统自注意力机制不同,针对点云的自注意力机制使用元素减法计算两个点的特征向量之间的相关性,并在权重和值两个部分都加上了位置偏移。其中,yi为第i个点通过自注意力计算后输出的特征,x(i)是通过knn最近邻搜索得到的第i个点的邻居的集合,pi,pj分别代表点i和点j的位置信息,δ为通过计算得到的位置偏移,都代表线性变换运算,代表原始特征信息,ψ(xj),α(xj)代表邻居特征信息,θ代表多层感知机,ρ表示非线性激活层softmax,图2展示了公式(3)的计算过程。γ为多层感知机。
[0063]
本发明实施例中,还包括构建重建通道针对所构建的点云特征提取模块、粗粒度点云生成模块以及细粒度点云生成模块进行训练;
[0064]
重建通道包含如下两个模块;
[0065]
第一模块以完整点云为输入,采用第二特征编码器提取完整点云的特征向量,记为完整点云特征;第二特征编码器与第一特征编码器共享参数;
[0066]
第二模块以完整点云特征作为输入,采用第二多层感知机针对完整点云特征进行
点云重建,重建后得到的重建点云与完整点云进行拼接,拼接后的点云进行采样,得到完整重建点云;第二多层感知机与第一多层感知机共享参数;完整重建点云作为重建通道的输出;
[0067]
已构建的点云特征提取模块、粗粒度点云生成模块以及细粒度点云生成模块组成补全通道;
[0068]
重建通道通过深度学习方法训练第一特征编码器,通过共享网络参数,使重建通道的第二特征编码器在网络梯度和形状分布两个方面引导补全通道的第一特征编码器学习和收敛;具体为:
[0069]
利用欧式距离来度量两个缺失点云特征和完整点云特征之间分布的相似性:
[0070][0071]
其中l
feature
为点云特征提取模块的损失,f
par,i
为补全通道得到的缺失点云特征的第i个点的特征,f
rec,i
为重建通道得到的完整点云特征中的第i个点的特征,n为补全特征与重建特征的特征维度;
[0072]
用待补全的缺失点云数据所对应的真实点云y
gt
分别对补全的粗粒度点云和细粒度点云进行监督。
[0073]
点云数据具有置换不变性,因此用于比较两个点云分布相似程度的损失函数必须要克服这一问题,即任意改变两个点云中点的排列顺序,该度量指标的值不会变化。通常使用的度量方法有倒角距离(cd)和推土机距离(emd)。通过比较发现,cd和emd对不同类型的点云误差的敏感程度不同。对于结构差异较大的两个点云,cd表现的更加敏感;而对于噪声较多的点云,emd表现的更加敏感。这两种类型的点云误差在补全结果中都可能出现,因此拟联合采用这两种距离作为网络的损失函数。
[0074]
具体地,由于在粗粒度点云生成阶段生成的点云的点数较少,与对应的真是点云点数不同,emd并不适用,并且这一阶段生成的粗粒度点云的结构的真实和完整性更为重要。因此,本课题在计算此阶段的损失时仅使用cd,在计算最终输出的完整点云的损失时同时使用cd和emd。综合几个阶段,采用如下损失函数进行监督:
[0075]
loss=l1+αl2+βl3+γl
feature
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0076]
l1=cd(y
coarse
,y
gt
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0077]
l2=cd(y
rec
,y
gt
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0078]
l3=cd(y
fine
+y
gt
)+emd(y
fine
+y
gt
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0079]
其中,loss为最终的损失函数,l1为补全通道中粗粒度点云生成模块的损失,l2为重建通道中第二模块的损失,l3为细粒度点云生成模块的损失,l
feature
为点云特征提取模块的损失,y
gt
为输入点云对应的真实点云,y
rec
为重建通道输出的点云,y
coarse
为补全通道输出的补全的粗粒度点云,y
fine
为补全通道最终输出的细粒度点云,α、β、γ为各个损失在整体损失中所占权重。
[0080]
补全通道训练完成后,重建通道不再使用,网络只输入残缺点云到补全通道。
[0081]
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1