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

梯度匀质化的点云多任务融合方法

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


梯度匀质化的点云多任务融合方法

技术领域

本发明涉及一种梯度匀质化的点云多任务融合方法,属于点云分类、检测、分割多任务融合领域。

背景技术

随着深度学习的进步,现代架构在理解3D点云方面有了巨大的改进,例如点云分类,分割和检测等。然而,这些网络在处理大量任务时效率很低,因为它们通常只能完成其中一个任务。即使并行计算可以解决这个问题,内存占用和存储成本也会随着网络数量的增加而线性增长

多任务学习解决了这一难题。解决这种多任务学习问题的一种方法是在所有任务上联合训练一个网络,其目的是找到一个跨任务的共享结构,从而比单独解决任务获得更高的效率和性能。然而,一次学习多个任务的难点在于梯度优化问题,有时会导致比单独学习任务更低的网络性能。如果能够有效地解决多任务学习的优化问题,就能够在不牺牲最终性能的情况下真正实现多任务学习的优势。

在多任务模型的训练过程中,各种任务的梯度大小和方向通过反向传播复杂地相互作用。对于梯度大小,最近的动态加权算法根据损失的不确定性和损失的变化率定期更新权重。GradNorm试图以相同的速度学习所有任务,但他们提出将这些权重作为参数学习,从而导致额外的内存消耗。相反,RotoGrad和IMTL-G都通过特定权重对共享参数的每个梯度进行归一化和缩放。对于梯度方向,Maninis等人和Sinha等人提出通过对抗性训练使任务梯度在统计上不可区分。最近,GradDrop基于Sign-Purity分数随机舍弃任务梯度的元素,而PCGrad则提出如果一个任务梯度存在冲突,则舍弃掉它们到另一个任务梯度的投影。然而,这些方法只关注任务梯度差异的一个方面,而忽视了各种任务的难度。直观地说,在多任务训练中,容易的任务占据学习的主导地位,而困难的任务则停滞不前。

发明内容

针对多任务训练中不同任务梯度大小和方向冲突的问题,本发明提供一种梯度匀质化的点云多任务融合方法。

本发明的一种梯度匀质化的点云多任务融合方法,包括:

S1、在不同的环境中,进行3D点云数据采集,每个任务对应一个训练集,共有K个任务;

S2、对S1中采集的训练集数据进行数据预处理;

S3、以3D点云数据作为输入,以任务对应的预测结果作为输出,搭建点云多任务融合网络,将多个任务训练集中的点云数据同时输入到搭建的点云多任务融合网络中进行训练,其中梯度回传时对总梯度进行参数更新方法:

确定第k个任务的优先级r

对r

总损失L的大小为:

其中,

总梯度向量为:

其中,

n表示

S4、将待测点云数据输入到训练好的点云多任务融合网络中,获得每个任务对应的预测结果输出。

作为优选,优先级r

其中,t为epoch索引;

作为优选,第k个任务的任务优先级度量

其中,T表示控制softmax操作中任务权重区分度的温度系数。

作为优选,多任务融合网络包括特征提取层和回归层;

特征提取层,用于对场景中的点云数据进行低级和高级特征提取,对环境中的几何空间信息以及语义信息进行编码,将编码结果输入到回归层中;

回归层,用于将编码对于不同的任务分别输入不同的回归层,输出满足对应任务要求的预测结果。

作为优选,所述特征提取层,使用Pointnet++作为主干网络,包括采样层、分组层和聚合层;

采样层使用最远点采样对训练集进行降采样,将输入的训练集降到设定的规模;

分组层,以采样层采样的每个点云数据作为中心点,找到其固定数量的邻点,共同组成一个局部邻域;

聚合层包括两个卷积层和池化层,局部邻域经过第一个卷积层后,卷积后的结果输入至池化层中,池化结果输入至第二个卷积层中,第二个卷积层输出编码结果。

作为优选,所述任务包括分类任务、分割任务和检测任务;

选用Pointnet++的解码层作为分类任务和分割任务的回归层,选用Votenet的投票层作为检测任务的回归层。

作为优选,S1中使用深度相机在不同场景中采集RGB图像和深度图,在不同场景中所用相机为同一设备,且相机参数保持一致,通过采集到的RGB和深度图像,以点云的形式重建出原始场景,完成3D点云数据采集。

作为优选,S2中的预处理包括下采样、数据增加操作和归一化。

本发明的有益效果,本发明赋予不同难度的任务不同的优先级,使得困难的任务拥有更高的优先级,整个网络优化更加合理。另外,本发明会基于不同任务的优先级,对梯度的大小和方向两者进行匀质化来进行优化,从而更加有效地缓解梯度冲突问题。

附图说明

图1为本发明具体实施方式的原理示意图;

图2为本发明具体实施方式场景中采集的数据;

图3为本发明具体实施方式点云多任务融合网络示意图;

图4为本发明具体实施方式任务优先级的梯度平衡算法原理示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

如图1所示,本实施方式的梯度匀质化的点云多任务融合方法,包括:

步骤1、在不同的环境中,进行3D点云数据采集,每个任务对应一个训练集,共有K个任务;在不同的环境中,进行数据(3D点云)的采集。所采集的环境图像中,需包含采集场景中的所有具有代表性的物体,且每个场景至少采集6组数据,每组数据包含一定数量的点云数据,将这些数据分为三类,并根据任务要求进行标注,分别用于点云分类、分割和检测任务。

步骤2、对步骤1中采集的训练集数据进行数据预处理;将采集的数据随机分成训练集与测试集。

步骤3、以3D点云数据作为输入,以任务对应的预测结果作为输出,搭建点云多任务融合网络,将多个任务训练集中的点云数据同时输入到搭建的点云多任务融合网络中进行训练,其中梯度回传时对总梯度进行参数更新方法:

确定第k个任务的优先级r

对r

在第t个epoch,为了解决任务之间量级差异大导致一些任务主导学习过程的问题,将每个任务的损失乘以此任务相应的优先级然后再进行总梯度求和,这样做可以使较简单的任务(即损失较大的任务)和较难的任务(即损失较小的任务)对于总损失的贡献值更加均衡,总损失L的大小为:

其中,

不仅仅是梯度大小均匀化,对于梯度方向,本算法也进行了均匀化。梯度方向均匀化是通过与每个任务相关的梯度向量中各自分量的符号来定义的。具体来说,给定一个最困难任务的梯度向量(最大的

其中,sgn(·)是符号函数和g

确定任务k的共识梯度

n表示

最后,总梯度向量为:

步骤4、将待测点云数据输入到训练好的点云多任务融合网络中,获得每个任务对应的预测结果输出。

与传统梯度下降法相比,本实施方式利用任务优先级对当前epoch的任务梯度方向进行均匀化,使最终合并的梯度向量的方向更接近困难任务的方向,如图4所示。由于每个任务的难易程度是动态调整的,所以本实施方式在每个epoch集中学习困难任务,最终保证每个任务收敛到最优解。

本实施方式通过采集不同场景中的点云数据并根据分类、分割、检测任务的不同需求进行标注,划分成不同任务的数据集,利用多任务训练的优越性将网络训练成能够在多种任务下都能适用的装置,并且有优越的性能。实验结果表明,该网络模型在兼顾精度、内存占用下,在各任务测试集中实现了较高的性能。

本实施方式基于任务优先级的梯度平衡算法,其中心主题是优先学习困难的任务,其中难度是由之前的损失记录来衡量的。本实施方式将任务难度定义为任务优先级,任务优先级是用时刻t-1和t-2的特定任务损失变化率与时刻t-1和t-2的总损失变化率之比r

其中,t为epoch索引;

r

其中,T表示控制softmax操作中任务权重区分度的温度系数,本实施方式设置为2;

本实施方式步骤1的具体过程为:

使用深度相机在建筑环境中采集大量的RGB图像、深度图。在不同场景中所用相机为同一设备,且相机参数保持一致,通过采集到的RGB和深度图像,以点云的形式重建出原始场景,作为点云数据输入。然后通过采集数据如图2所示。

本实施方式步骤2的具体过程包括:

由于采集到的数据集中点云的数量可能多大十万百万个点,会对后续网络计算造成严重的计算负担,在点云数据输入至网络前,先对点云进行下采样,具体操作为:将三维空间按照指定步长,划分为一个三维网格,每个网格内的点,最后取均值,得出一个点。对于分类任务数据集,点云下采样数量是1024,对于分割任务数据集,下采样数量是4096,对于检测任务数据集,下采样数量是20000。

对数据中的图像进行数据增强操作,具体包括:选一定比例的点云,绕z轴随机旋转0°-360°,分别绕x、y、z随机旋转20°,所有点随机抖动,增加了场景数据库的样本数目,在提高神经网络的学习能力的同时有效地防止过拟合。

将采集的数据随机分成训练集与测试集,且训练集与测试集间的比例近似满足5:1。

对点云数据进行归一化操作。具体而言,对于xyz坐标采用的方式为:在3D空间中找一个能包含所有点的最小的立方体,立方体的三条边与xyz轴平行。找到这个立方体的下表面的中心点,以这个点作为归一化的参考点。所有点的坐标,减去参考点的坐标。将RGB颜色数值限制在[-1,1]范围内。

本实施方式步骤3的具体过程:

搭建点云多任务融合网络,网络结构如图3所示。点云分类任务的输入为场景中的点云xyz原始坐标和归一化后的坐标,输出为场景中物体的类别。点云分割任务的输入为场景中的点云xyz原始坐标和归一化后的坐标以及RGB颜色信息,输出为每个点云的类别。点云检测任务的输入为场景中的点云xyz原始坐标和距地面的高度信息,输出为每个物体的类别以及检测框的长宽高和旋转角。在将训练集输入网络过程中,分类数据集mini-batch的大小设置为16,分割数据集mini-batch的大小设置为8,检测数据集mini-batch的大小设置为16。使用ADAM优化器,其中的超参数设置为β

本实施方式点云多任务融合方法采用的网络,包括两部分:第一部分是特征提取层,对场景中的点云进行低级和高级特征提取,对环境中的几何空间信息以及语义信息进行编码;第二部分是回归层,对于不同的任务分别应用不同的回归层,输出满足对应任务要求的信息。

本实施方式在网络训练过程中梯度回传时,为防止不同任务之间生成的梯度产生冲突而设计的一种算法,这种算法根据不同任务的难度赋予不同的优先级,有效地避免了简单的任务容易学习而困难的任务停滞不前的现象。

本实施方式特征提取层的结构如下:

不同任务的输入是不一样的,对于分类任务输入张量的维度为1024×6,其中1024表示从分类数据集中采样的点云数量,6表示每个点云的xyz坐标和归一化坐标。对于分割任务输入张量的维度为4096×9,其中4096表示从分割数据集中采样的点云数量,9表示每个点云的xyz坐标和归一化坐标以及色彩值(R,G,B)。对于检测任务输入张量的维度为20000×4,其中20000表示从分割数据集中采样的点云数量,4表示每个点云的xyz坐标和距地面的高度。

本实施方式特征提取层由一系列的卷积层组成,用于对场景点云中的特征进行编码。考虑到输入张量的维度,所述特征提取层使用Pointnet++作为主干网络。对场景点云中的特征进行编码分为3个阶段,分别经过采样层、分组层和聚合层。在进行特征提取时,首先是采样层,使用FPS(最远点采样)对点集进行降采样,将输入点集降到更小的规模,FPS可以理解成是使得采样的各个点之间尽可能远,这种采样的好处是可以降采样结果会比较均匀,其实现方式如下:随机选择一个点作为初始点作为已选择采样点,计算未选择采样点集中每个点与已选择采样点集之间的距离,将距离最大的那个点加入已选择采样点集,然后更新距离,一直循环迭代下去,直至获得了目标数量的采样点,本实施方式设定的采样点数量为512个。随后经过分组层,即以采样层采样的每个点云作为中心点,找到其固定数量(设为48)的邻点,共同组成一个局部邻域,其实现方式如下:设定球半径为0.1,每个中心点以此为半径生成一个球空间,该球空间内的点作为邻点,该球空间为一个局部邻域,如果球内点的数量大于设定的数量,直接取前48个作为局部邻域,如果球内点的数量小于设定的数量,直接随机复制球内的一些点,直到数量达到48。最后经过聚合层,聚合层由卷积层和池化层组成,首先是卷积层,卷积核大小为1×1,步长为1,然后是一个平均池化层,卷积核大小为48×48,步长为1,它是对每个局部邻域的池化,然后池化后的结果再经过一个卷积层,卷积核大小为1×1,步长为1。

表1特征提取层网络模块架构

每次卷积后均使用BN层与激活函数:BN层可平滑损失函数的表面,有助于提高网络的训练速度。激活函数有助于提高网络的非线性程度。

本实施方式回归层的结构如下:

针对不同的任务选用了不同的回归层,选用Pointnet++的解码层作为分类和分割的回归层,Votenet的投票层作为检测任务的回归层。分类任务的回归层分为三个阶段,分别对应卷积层1,卷积层2,卷积层3,所有卷积层卷积核的尺寸均为1×1,步长均为1。经过卷积层1、2、3后得到最终的类别得分,类别数量设置为40。其中卷积层1、2包含卷积操作、批规范化以及RELU激活函数处理,卷积层3只包含卷积操作。

表2分类回归层网络模块架构

分割任务的回归层分为两部分:上采样和跳连接。具体来说,先将经过特征提取层后尺寸为512×256的张量,通过反向插值法将其上采样到尺寸为4096×256的张量,然后与原始的分割任务输入点云进行特征维度的拼接,得到拼接后尺寸为4096×265的张量然后再通过分类任务回归层一样的三层卷积层,得到尺寸为4096×40的张量,即得到每个点云的类别。检测任务的回归层本实施方式采用Votenet中设计的投票机制来进行回归,最终得到尺寸为K×12的张量,其中K为场景中网络检测到的物体数量,12表示了每个航向的类别得分以及在最高得分类别下与标准航向的偏差值,每个尺寸的类别得分以及长、宽、高三个尺度与标准的偏差值以及语义类别。

本实施方式中所有的激活函数均采用RELU激活函数。RELU激活函数的具体形式为:

其中,x代表输入,RELU(x)代表输出。

将三个任务训练集中的点云数据同时输入到搭建的点云多任务融合网络中进行训练,其中梯度回传时应用基于任务优先级的梯度平衡算法来得到总梯度进行参数更新。根据数据的大小,定义epoch次数。每结束一次epoch,使用当前模型参数进行一次测试。若测试结果的误差和准确率均优于保存的最优模型,则将当前模型参数保存为最优参数。当网络的训练次数达到所设定的epoch值时,停止训练,得到训练好的点云多任务融合网络。

本实施方式步骤4的具体过程为:

将测试集中的点云数据输入到特征深度聚合网络中。在输入过程中,mini-batch设置为1,根据不同任务获得不同任务相应的输出。

考虑到三维点云分类、分割和检测的要求,性能评价分别不同:分类评价指标为整体准确率,分割评价指标为平均类间交并比(mIoU),检测评价指标为在0.25和0.5IoU阈值下的平均精度。下表展示了本发明方法与其他方法的结果比较,相比其他方法,本实施方式在分类上实现了93.7的整体准确率,在分割上实现了66.0的平均类间交并比,在检测上0.25和0.5IoU阈值下的平均精度分别达到了63.5和41.9,均优于其他方法。

表3点云分类对比实验数据

表4点云分割对比实验数据

表5点云检测对比实验数据

实施例:

本实施例的目标是搭建一个能够应用于点云分类、分割和检测多种任务的网络,并利用任务优先级对当前的任务梯度方向和大小进行均匀化,使最终合并的梯度向量的方向更接近困难任务的方向,并最终保证每个任务收敛到最优解。为了验证任务优先级梯度匀质化算法的有效性,本实施例在多种环境中采集了相关数据。

本实施例采集了3D点云,在每个场景中分别采集了6组数据,其中每组数据包含一定数量的点云数据。使用其中的5组进行训练,另外1组进行测试。

根据采集的3D点云,通过计算可获得相应任务的相应输出,例如分类任务的物体类别,分割任务的每个点云的类别,检测任务的3D检测框。

在训练过程中,由于数据的缺乏或网络模型过大等问题,可能会导致过拟合的发生。本发明使用数据增强操作,包括:选一定比例的点云,绕z轴随机旋转0°-360°,分别绕x、y、z随机旋转20°,所有点随机抖动。同时考虑到网络的训练速度,对点云坐标与RGB值进行了归一化操作。

在训练的过程中,本实施例采用Adam优化器,分类数据集mini-batch的大小设置为16,分割数据集mini-batch的大小设置为8,检测数据集mini-batch的大小设置为16。

由于模型比较大,模型收敛速度较慢,在24张Tesla V100 GPU上,经过5万次迭代可以收敛。最终在测试集上,分类上实现了93.7的整体准确率,在分割上实现了66.0的平均类间交并比,在检测上0.25和0.5IoU阈值下的平均精度分别达到了63.5和41.9。

虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例仅仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多修改,并且可以设计出其他的布置,只要不偏离所附权利要求所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其他所述实施例中。

相关技术
  • 基于能量最小化和梯度正则化的图像融合方法及装置
  • 基于相机与激光雷达点云融合的多任务环境感知方法
  • 一种融合虚拟化多任务的自动化测试系统及方法
技术分类

06120116513999