模型生成方法、点云分类方法、装置、设备及存储介质与流程

文档序号:30390690发布日期:2022-06-11 15:25阅读:82来源:国知局
模型生成方法、点云分类方法、装置、设备及存储介质与流程

1.本发明实施例涉及数据处理技术领域,尤其涉及一种模型生成方法、点云分类方法、装置、设备及存储介质。


背景技术:

2.近些年来,基于深度学习的点云分类模型发展迅速,其已经逐渐被应用到各个领域中,如人脸识别、机器人的物体识别、无人驾驶的障碍检测等。
3.在现实生活场景中,因为点云采集设备的移动,由此采集得到的点云往往很难保证其姿态的一致性,如无人车上的传感器随着车辆的移动采集到的点云的姿态就会存在差异。因此,现有的点云分类模型通常是先将点云预先对齐到统一的坐标系下,然后再对该对齐后的点云进行分类。但是,这一过程涉及到大量的姿态计算,这降低了点云分类模型的实时性,从而导致了其无法应用在一些实时性要求较高的场景中。由此,如何提升点云分类模型的旋转鲁棒性,以保证其在应用时的实时性,这成为深度学习领域中新的发展方向。
4.在实现本发明的过程中,发明人发现现有技术中存在以下技术问题:目前在提升点云分类模型的旋转鲁棒性时,存在耗时、复杂度高和难以维持原有的点云分类性能的问题。


技术实现要素:

5.本发明实施例提供了一种模型生成方法、点云分类方法、装置、设备及存储介质,以实现在省时、复杂度低且能够维持原有的点云分类性能的情况下,提升点云分类模型的旋转鲁棒性。
6.第一方面,本发明实施例提供了一种模型生成方法,可以包括:
7.获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、及原始点云的点云类别;
8.基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差;
9.确定第一分类误差相对于上一旋转角度的回传梯度,并根据回传梯度对上一旋转角度进行处理,得到当前旋转角度,其中,当前旋转角度包括在将基于当前旋转角度生成的旋转点云输入到点云分类模型后,得到大于第一分类误差的第二分类误差的旋转角度;
10.根据当前旋转角度确定目标旋转角度,根据目标旋转角度对原始点云进行旋转,得到对抗点云,并以对抗点云和点云类别为训练样本,对点云分类模型进行训练,以得到目标分类模型。
11.第二方面,本发明实施例还提供了一种点云分类方法,可以包括:
12.获取待分类点云、以及按照本发明任意实施例所提供的模型生成方法生成的目标分类模型;
13.将待分类点云输入至目标分类模型中,并根据目标分类模型的输出结果,得到待
分类点云的分类结果。
14.第三方面,本发明实施例还提供了一种模型生成装置,可以包括:
15.数据获取模块,用于获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、及原始点云的点云类别;
16.第一分类误差得到模块,用于基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型,得到第一分类误差;
17.当前旋转角度得到模块,用于确定第一分类误差相对于上一旋转角度的回传梯度,并根据回传梯度对上一旋转角度进行处理,得到当前旋转角度,其中,当前旋转角度包括在将基于当前旋转角度生成的旋转点云输入到点云分类模型后,得到大于第一分类误差的第二分类误差的旋转角度;
18.目标分类模型得到模块,用于根据当前旋转角度确定目标旋转角度,根据目标旋转角度对原始点云进行旋转,得到对抗点云,以对抗点云和点云类别为训练样本,对点云分类模型进行训练,以得到目标分类模型。
19.第四方面,本发明实施例还提供了一种点云分类装置,可以包括:
20.目标分类模型获取模块,用于获取待分类点云、以及按照本发明任意实施例所提供的模型生成方法生成的目标分类模型;
21.分类结果得到模块,用于将待分类点云输入至目标分类模型,并根据目标分类模型的输出结果,得到待分类点云的分类结果。
22.第五方面,本发明实施例还提供了一种电子设备,可以包括:
23.一个或多个处理器;
24.存储器,用于存储一个或多个程序;
25.当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的模型生成方法或是点云分类方法。
26.第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现本发明任意实施例所提供的模型生成方法或是点云分类方法。
27.本发明实施例的技术方案,通过获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、以及原始点云的点云类别;基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型,得到第一分类误差;确定第一分类误差相对于上一旋转角度的回传梯度,以便根据回传梯度对上一旋转角度进行处理,得到能够增大点云分类模型的分类误差的当前旋转角度,即相当于上一旋转角度,当前旋转角度对于点云分类模型的旋转攻击性更强;根据当前旋转角度确定目标旋转角度,并根据目标旋转角度对原始点云进行旋转,得到对抗点云,以对抗点云和点云类别为训练样本,对点云分类模型进行防御训练,由此以得到具有旋转鲁棒性的目标分类模型。上述技术方案,达到了在省时、复杂度低且能够维持原有的点云分类性能的情况下,提升点云分类模型的旋转鲁棒性的效果,从而可以更加方便高效的提升点云分类模型的旋转鲁棒性。
附图说明
28.图1是本发明实施例一中的一种模型生成方法的流程图;
29.图2是本发明实施例二中的一种模型生成方法的流程图;
30.图3a是本发明实施例三中的一种模型生成方法中可选示例的第一示意图;
31.图3b是本发明实施例三中的一种模型生成方法中可选示例的第二示意图;
32.图4是本发明实施例三中的一种模型生成方法的流程图;
33.图5是本发明实施例四中的一种点云分类方法的流程图;
34.图6是本发明实施例五中的一种模型生成装置的结构框图;
35.图7是本发明实施例六中的一种点云分类装置的结构框图;
36.图8是本发明实施例七中的一种电子设备的结构示意图。
具体实施方式
37.下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
38.在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性说明:目前提升点云分类模型的旋转鲁棒性的主流方案包括如下两类:基于旋转不变输入的方案和基于旋转等变结构的方案,其中,前者因为需要在模型输入前对原始点云进行预处理以将其转换为旋转不变的特征,这影响了模型应用的实时性,并且在利用旋转不变特征进行分类时,还会限制模型的判别能力(即分类性能);后者因为需要进行模型结构的针对性调整,并且不同模型的调整方式也不相同,因此实现工作量较大,复杂度较高。除此外,这两种方案共同存在的一个缺点在于,它们都希望通过完全分离出原始点云中的旋转信息来提升模型的旋转鲁棒性,但这会同时导致模型无法利用有意义的旋转信息来增强模型的判别能力,即最终得到的旋转鲁棒性是以牺牲部分的判别能力为代价的。
39.实施例一
40.图1是本发明实施例一中提供的一种模型生成方法的流程图。本实施例可适用于提升点云分类模型的旋转鲁棒性的情况,尤其是适用于基于对抗训练的思想提升点云分类模型的旋转鲁棒性的情况。该方法可以由本发明实施例提供的模型生成装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备上,该设备可以是各种用户终端或是服务器。
41.参见图1,本发明实施例的方法具体包括如下步骤:
42.s110、获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、及原始点云的点云类别。
43.其中,点云分类模型可以是能够实现点云分类(这是初步训练的结果)的自身的旋转鲁棒性待提高的深度学习模型,原始点云可以是直接获取到的未经过旋转的点云,点云类别可以是原始点云的分类类别。上一旋转角度可以是在上一轮迭代结束时输出的旋转角度,上一输入点云可以是在上一轮迭代开始时输入到点云分类模型中的点云,其可以是通过对原始点云进行直接旋转或间接旋转后得到的点云,其中直接旋转可以理解为基于某旋转角度对原始点云进行旋转的过程,间接旋转可以理解为基于某旋转角度对中间点云进行
旋转的过程,该中间点云可以是对原始点云进行直接旋转或是间接旋转后得到的点云。
44.s120、基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差。
45.其中,当前输入点云可以是在基于上一旋转角度对上一输入点云进行旋转后得到的待在本轮迭代中输入到点云分类模型中的点云,即其可以认为是在对原始点云进行间接旋转后得到的点云,因此其的点云类别和原始点云相同。将当前输入点云和点云类别输入到点云分类模型中,并根据点云分类模型的输出结果得到第一分类误差。在实际应用中,可选的,点云分类模型可以通过如下步骤计算出第一分类误差:根据当前输入点云预测出其属于点云类别的概率,并将输入的点云类别转换为概率,将这两个概率的差值作为第一分类误差。
46.s130、确定第一分类误差相对于上一旋转角度的回传梯度,并根据回传梯度对上一旋转角度进行处理,得到当前旋转角度,其中当前旋转角度包括在将基于当前旋转角度生成的旋转点云输入到点云分类模型后,得到大于第一分类误差的第二分类误差的旋转角度。
47.其中,回传梯度可以是待回传至点云分类模型内的用于对点云分类模型中的网络参数进行调整的梯度。实际应用中,可选的,由于上一输入点云可能是二维点云,也可能是三维点云,这意味着上一旋转角度可能是某个坐标轴下的轴旋转角度(此时可以存在n个轴旋转角度,n是正整数),也可能是该n个轴旋转角度构成的整体,因此第一分类误差相对于上一旋转角度的回传梯度可能是某坐标轴下的回传梯度(此时可以存在n个回传梯度),也可能是该n个回传梯度构成的整体,在此未做具体限定。再可选的,回传梯度可以基于点云分类模型中的能够实现点云分类的网络参数计算得到,在此未做具体限定。
48.由于根据回传梯度可以确定沿着什么方向旋转上一旋转角度后能得到更大(即大于第一分类误差)的分类误差,因此可以根据回传梯度对上一旋转角度进行处理,得到当前旋转角度。需要说明的是,针对基于当前旋转角度对当前输入点云进行旋转后得到的旋转点云,将其和点云类别输入到点云分类模型中,根据点云分类模型的输出结果得到的第二分类误差大于第一分类误差,即相对于上一旋转角度,当前旋转角度对点云分类模型而言具有更强的旋转攻击性。本步骤可以概述为模型旋转攻击。
49.s140、根据当前旋转角度确定目标旋转角度,并根据目标旋转角度对原始点云进行旋转,得到对抗点云,并以对抗点云和点云类别为训练样本,对点云分类模型进行训练,以得到目标分类模型。
50.其中,目标旋转角度可以是根据当前旋转角度确定的可用于进行模型防御训练的旋转角度,在实际应用中,可选的,可以根据当前旋转角度对点云分类模型的旋转攻击性的强弱确定是直接将当前旋转角度作为目标旋转角度,还是重复上述步骤以得到旋转攻击性更强的当前旋转角度。具体的,根据当前旋转角度确定目标旋转角度,可以包括:将当前旋转角度作为上一旋转角度,且将当前输入点云作为上一输入点云,重复执行基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云的步骤;如果旋转步骤的重复执行次数大于或是等于第一预设次数阈值、和/或第二分类误差大于或等于第一预设误差阈值,则将当前旋转角度作为目标旋转角度。即,对点云分类模型进行多次旋转攻击(即逐角度旋转攻击),当旋转攻击次数足够多和/或由此得到的第二分类误差足够大时,停止旋转攻击,并将
此时得到的当前旋转角度作为目标旋转角度以进行后续的模型防御训练,由此得到的目标旋转角度对于点云分类模型而言是具有足够的旋转攻击性的,从而有效保证了后续的模型防御训练的效果。
51.进一步,由于目标旋转角度是对点云分类模型而言最具旋转攻击性的角度,因此根据其对原始点云进行旋转,由此得到的对抗点云是对点云分类模型而言最具旋转攻击性的点云。这样一来,可以将对抗点云和点云类别作为训练样本,对点云分类模型进行防御训练,以得到具有旋转鲁棒性的目标分类模型。实际应用中,可选的,在根据训练样本对点云分类模型进行防御训练后,可以直接得到目标分类模型,也可以重复执行上述步骤以对点云分类模型多次进行防御训练,以便在最大程度上提升其的旋转鲁棒性。本步骤可概述为模型防御训练。
52.需要说明的是,为了在省时、复杂度低且能够维持原有的点云分类性能的情况下,提升点云分类模型的旋转鲁棒性,上述技术方案利用了深度学习模型优化过程中的对抗训练策略,通过寻找对点云分类模型具有旋转攻击性的对抗点云,并利用这些对抗点云进行模型防御训练,从而得到对于该类的旋转攻击鲁棒的目标分类模型。由于本方案在将对抗点云输入到模型前,无需对其进行预处理,由此保证了模型在应用时的时效性;由于本方案无需修改模型结构,由此保证了低复杂度且能够维持原有的点云分类性能(原先的模型结构的点云分类性能是最好的,只是旋转鲁棒性不佳而已)。
53.本发明实施例的技术方案,通过获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、以及原始点云的点云类别;基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型,得到第一分类误差;确定第一分类误差相对于上一旋转角度的回传梯度,以便根据回传梯度对上一旋转角度进行处理,得到能够增大点云分类模型的分类误差的当前旋转角度,即相当于上一旋转角度,当前旋转角度对于点云分类模型的旋转攻击性更强;根据当前旋转角度确定目标旋转角度,并根据目标旋转角度对原始点云进行旋转,得到对抗点云,以对抗点云和点云类别为训练样本,对点云分类模型进行防御训练,由此以得到具有旋转鲁棒性的目标分类模型。上述技术方案,达到了在省时、复杂度低且能够维持原有的点云分类性能的情况下,提升点云分类模型的旋转鲁棒性的效果,从而可以更加方便高效的提升点云分类模型的旋转鲁棒性。
54.一种可选的技术方案,上一旋转角度包括至少两个坐标轴下的轴旋转角度;确定第一分类误差相对于上一旋转角度的回传梯度,并根据回传梯度对上一旋转角度进行处理,得到当前旋转角度,可以包括:分别确定第一分类误差相对于各轴旋转角度的回传梯度,并从各回传梯度中确定目标梯度;将各坐标轴中与目标梯度对应的坐标轴作为目标坐标轴,且将目标坐标轴下的轴旋转角度作为待处理角度;根据目标梯度确定待处理角度在目标坐标轴下的旋转方向,并根据旋转方向对待处理角度进行处理,根据处理结果得到当前旋转角度,其中,当前旋转角度包括处理后的待处理角度、及各轴旋转角度中除待处理角度之外的轴旋转角度。
55.其中,当上一旋转角度包括至少两个坐标轴下的轴旋转角度(每个坐标轴下对应有一个轴旋转角度)时,相对于将该至少两个轴旋转角度作为一个整体同时进行攻击,即同时攻击该至少两个轴旋转角度,逐角度攻击可以有效减少每一次旋转攻击(为了简化表述,
后文将简称为攻击)的步长,从而增加每次攻击的搜索精度,从而找到最优攻击。为此,
56.分别确定第一分类误差相对于各轴旋转角度的回传梯度,并从各回传梯度中确定目标梯度。实际应用中,可选的,考虑到回传梯度的绝对值越大,与其对应的坐标轴上的旋转对于分类误差的影响程度越高,因此可以对各回传梯度的绝对值进行比较,并将与最大的绝对值对应的回传梯度作为目标梯度,其与后续步骤相互配合,由此可以在最大程度上提升分类误差的方向进行单步攻击,得到最具攻击性的对抗点云。将各坐标轴中与目标梯度对应的坐标轴作为目标坐标轴(即对于点云分类模型而言具有攻击性的坐标轴),将目标坐标轴下的轴旋转角度作为待处理角度(即待沿着目标坐标轴的某个方向进行旋转的角度)。
57.由于目标梯度的正负可表示出沿着目标坐标轴的什么方向进行旋转时能够增大分类误差,如为正则表示沿着目标梯度的正方向进行旋转时能够增大分类误差,反之则表示沿着目标梯度的负方向进行旋转时能够增大分类误差,因此可以根据该目标梯度确定待处理角度在目标坐标轴下的旋转方向,并根据旋转方向对待处理角度进行处理,如沿着旋转方向在待处理角度的基础上增加预设旋转角度,由此得到当前旋转角度。需要说明的是,由于本次处理仅是对各轴旋转角度中的一个进行处理,其余的轴旋转角度并未发生变化,因此由此得到的当前旋转角度包括处理后的待处理角度、以及各轴旋转角度中除待处理角度之外的轴旋转角度。在实际应用中,可选的,考虑到待处理角度具有周期性(即0-360度),因此在待处理角度的优化过程中有可能存在越过360度而直接到0度的情况,这种数值上的不连续会降低攻击的效率。因此,在根据旋转方向对待处理角度进行处理后,可以将处理后的待处理角度映射到预设角度区间内,由此得到的攻击后的当前旋转角度均位于预设角度区间内,从而可以防止出现由于越界而导致的当前旋转角度不连续的情况。
58.另一种可选的技术方案,对点云分类模型进行训练,以得到目标分类模型,包括:对点云分类模型进行训练,并根据训练结果更新点云分类模型;获取未经旋转的中间点云和初始化角度,并将中间点云作为原始点云和上一输入点云,且将初始化角度作为上一旋转角度;重复执行获取原始点云的点云类别的步骤,其中,各次获取到的所述初始化角度服从均匀分布;如果获取步骤的重复执行次数大于或等于第二预设次数阈值、和/或在将对抗点云和点云类别输入到点云分类模型后得到的第三分类误差小于或等于第二预设误差阈值,则将点云分类模型作为目标分类模型。
59.其中,正如上文所述,为了在最大程度上提升点云分类模型的旋转鲁棒性,可以多次执行模型旋转攻击和模型防御训练的步骤。为此,进行一次模型旋转攻击和模型防御训练后,可以再次获取一个原始点云(即未经旋转的中间点云),该再次获取的原始点云和先前获取的原始点云,可能相同或是不同,在此未做具体限定。在此基础上,为了避免出现每次都是从同一旋转角度开始进行迭代而导致难以快速找到目标旋转角度的情况,可以在迭代的各轮执行过程中分别获取初始化角度,而且各次获取的初始化角度服从均匀分布。在实际应用中,可选的,在每轮执行过程中,可以通过基于均匀分布的随机角度初始化方法来得到初始化角度。以初始化角度为起点进行迭代,由此完成一次模型旋转攻击和模型防御训练。将模型旋转攻击和模型防御训练作为一个整体,当该整体的执行次数足够多和/或由此得到的第三分类误差足够小时,停止模型旋转攻击和模型防御训练,并将此时得到的点云分类模型作为目标分类模型。
60.为了从整体上更好地理解上述各技术方案,下面结合具体示例对其进行示例性的说明。例如,将为了确定目标旋转角度而多次确定当前旋转角度的过程称为小迭代,且将多次执行的模型旋转攻击和模型防御训练的过程称为大迭代,在大迭代的每轮执行过程中嵌套着小迭代的完整的执行过程。具体的,
61.(1)从点云集合中获取原始点云,通过基于均匀分布的随机角度初始化方法,得到初始化角度,并基于初始化角度对原始点云进行旋转,得到当前输入点云;
62.(2)根据当前输入点云确定当前旋转角度(具体确定过程参见上文);
63.(3)将当前输入点云作为上一输入点云,且将当前旋转角度作为上一旋转角度,根据二者再次确定当前输入点云和当前旋转角度,这是小迭代中一轮执行过程;
64.(4)重复执行(3),当重复执行次数达到第一预设次数阈值时,将此时得到的当前旋转角度作为目标旋转角度,至此,一个完整的小迭代结束;
65.(5)根据目标旋转角度得到对抗点云,由此进行模型防御训练;
66.(6)重复执行(1)-(5),这是大迭代中的一轮执行过程,当重复执行次数达到第二预设次数阈值时,将此时训练得到的点云分类模型作为目标分类模型。
67.又一种可选的技术方案,点云分类模型的数量是至少两个,将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差,可以包括:将当前输入点云和点云类别作为第一误差确定样本,将第一误差确定样本分别输入到各点云分类模型中,得到第一分类误差;确定第一分类误差相对于上一旋转角度的回传梯度,可以包括:针对每个第一分类误差,确定第一分类误差相对于上一旋转角度的回传梯度;根据目标旋转角度对原始点云进行旋转,可以包括:从各点云分类模型分别对应的目标旋转角度中确定最终旋转角度,基于最终旋转角度对原始点云进行旋转;对点云分类模型进行训练,以得到目标分类模型,可以包括:对各点云分类模型中待提升旋转鲁棒性的点云分类模型进行训练,得到目标分类模型。本技术方案可以称为一步优化方案。
68.其中,由于模型旋转攻击和模型防御训练的多次执行十分耗时,为了节省模型训练过程中的时间成本,可以获取初步训练完成的至少两个点云分类模型,而且该至少两个点云分类模型中包括待提升自身的旋转鲁棒性的点云分类模型。由此,可以基于当前输入点云和点云类别同时攻击该至少两个点云分类模型,得到与各点云分类模型分别对应的目标旋转角度,这就相当于模型旋转攻击的多次执行,二者的区别在于,前者是多次的并行攻击,后者是多次的串行攻击(多轮迭代是串行执行的)。进而,从这些目标旋转角度中确定用于模型防御训练的最终旋转角度,并基于该最终旋转角度对原始点云进行旋转,然后基于由此得到的对抗点云对该待提升自身的旋转鲁棒性的点云分类模型进行训练。多样的目标旋转角度使得点云分类模型可通过一次模型防御训练直接得到目标分类模型,由此达到了快速提升点云分类模型的旋转鲁棒性的效果。
69.实施例二
70.图2是本发明实施例二中提供的一种模型生成方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,上述模型生成方法,还可包括:获取初步构建完成的旋转池,其中,旋转池中设置有旋转角度集合,旋转角度集合中的各集合旋转角度均对应于同一点云类别;将旋转池中与点云类别对应的旋转角度集合作为类别角度集合,将目标旋转角度存储到类别角度集合中,根据存储结果对旋转池进行更新;根据目标旋
转角度对原始点云进行旋转,可以包括:从类别角度集合中获取类别旋转角度,将类别旋转角度作为目标旋转角度,对原始点云进行旋转。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
71.参见图2,本实施例的方法具体可以包括如下步骤:
72.s210、获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、及原始点云的点云类别。
73.s220、基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差。
74.s230、确定第一分类误差相对于上一旋转角度的回传梯度,并根据回传梯度对上一旋转角度进行处理,得到当前旋转角度,根据当前旋转角度确定目标旋转角度,其中当前旋转角度包括在将基于当前旋转角度生成的旋转点云输入到点云分类模型后,得到大于第一分类误差的第二分类误差的旋转角度。
75.s240、获取初步构建完成的旋转池,其中,旋转池中设置有旋转角度集合,旋转角度集合中的各集合旋转角度均对应于同一点云类别。
76.其中,不同旋转角度在同类点云(即点云类别相同的点云)间具有可迁移性,为此可以初步构建一个旋转池,其中可以设置有至少一个旋转角度集合,每个旋转角度集合中的各集合旋转角度均对应于同一点云类别,即旋转池中的各集合旋转角度是按照点云类别进行保存的,这可以有效提升对抗点云的多样性,防止因为对抗点云单一而导致的过拟合问题。
77.s250、将旋转池中的与点云类别对应的旋转角度集合作为类别角度集合,并将目标旋转角度存储到类别角度集合中,并根据存储结果对旋转池进行更新。
78.其中,在得到目标旋转角度后,可以确定其所属的原始点云的点云类别,并将其存储到旋转池中与点云类别对应的旋转角度集合中。需要说明的是,在后文为了简化表述,将该与点云类别对应的旋转角度集合称为类别角度集合。当根据存储结果对旋转池进行更新后,类别角度集合中存储有目标旋转角度,即该目标旋转角度是类别角度集合中的一个集合旋转角度。
79.在实际应用中,可选的,当目标旋转角度被多轮确定(即模型旋转攻击和模型防御训练被多次执行)时,将目标旋转角度存储到类别角度集合中,根据存储结果对旋转池进行更新,可包括:在得到本轮确定的目标旋转角度之后,基于本轮确定的目标旋转角度对类别角度集合中于本轮的上一轮确定的目标旋转角度进行替换,并根据替换结果对旋转池进行更新。其中,在大迭代的首轮执行过程,可以将小迭代结束时输出的目标旋转角度直接存储到类别角度集合中。在大迭代的第二轮及其往后的执行过程中,由于上一轮执行过程中的模型防御训练致使点云分类模型的网络参数发生了变化,因此本轮的小迭代是在新的网络参数的基础上进行攻击,由此得到的目标旋转角度必然发生变化,从而可以基于本轮得到的目标旋转角度对上一轮存储到类别角度集合中的目标旋转角度进行替换,以使替换后的类别角度集合中存储的目标旋转角度永远与最新的网络参数相匹配,由此保证了后续的模型防御训练的有效性。
80.s260、从类别角度集合中获取类别旋转角度,并将类别旋转角度作为目标旋转角度,对原始点云进行旋转,得到对抗点云。
81.其中,由于类别角度集合中包含有至少一个集合旋转角度,这些集合旋转角度均是对点云类别下的原始点云进行处理后得到的目标旋转角度,如当多个大迭代并行执行时,每个大迭代对该点云类别下的某原始点云进行处理后得到的目标旋转角度都会存储到类别角度集合中。因此,在生成对抗点云时,可以从类别角度集合中均匀采样一个类别旋转角度,该类别旋转角度就是类别角度集合中的一个集合旋转角度,然后基于该类别旋转角度生成对抗点云。
82.s270、以对抗点云和点云类别为训练样本,对点云分类模型进行训练,以得到目标分类模型。
83.上述技术方案,通过设置旋转池来存储点云类别和相应的目标旋转角度,这使得原始点云和目标旋转角度间不再是一一对应的关系,即原始点云和对抗点云间不再是一一对应的关系,每个原始点云可以对应有多个对抗点云,对抗点云作为训练样本中的一部分,由此有效保证了训练样本的多样性,从而进一步提升了由此训练得到的目标分类模型的旋转鲁棒性。
84.本发明实施例的技术方案,在得到目标旋转角度后,将其存储到旋转池中与点云类别对应的类别角度集合内,由此可以从类别角度集合中均匀采样一个类别旋转角度,并基于该类别旋转角度生成对抗点云,得到训练样本,其通过构建旋转池的方式增加了训练样本的多样性,从而提升了模型的训练效果。
85.一种可选的技术方案,点云分类模型的数量是至少两个,将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差,可包括:将当前输入点云和点云类别作为第二误差确定样本,并将第二误差确定样本分别输入到各点云分类模型中,得到第一分类误差;确定第一分类误差相对于上一旋转角度的回传梯度,可以包括:针对每个第一分类误差,确定第一分类误差相对于上一旋转角度的回传梯度;将目标旋转角度存储到类别角度集合中,可包括:将与各点云分类模型分别对应的目标旋转角度,存储到类别角度集合中;对点云分类模型进行训练,以得到目标分类模型,可以包括:对各点云分类模型中待提升旋转鲁棒性的点云分类模型进行训练,得到目标分类模型。其中,将上文中阐述的一步优化方案与旋转池相配合,在对至少两个点云分类模型进行攻击后得到与各点云分类模型分别对应的目标旋转角度后,将这些目标旋转角度均存储到类别角度集合中,从而增加了旋转池的多样性,提升了旋转池的质量,由此得到的旋转池与经过大迭代后得到的旋转池较相似,从而在保证模型训练效果的同时,节省了模型训练过程中的时间成本。
86.实施例三
87.本实施例分为如下三个部分(参见图3a):模型旋转攻击以寻找强攻击样本(具体来说是通过梯度回传和旋转角度优化的多次执行来找到对点云分类模型具有强攻击性的对抗点云)、模型防御训练以提升模型的旋转鲁棒性(具体来说是通过引入旋转池机制来增加训练样本的多样性)、及最终攻击和一步优化策略以快速获得最终的旋转鲁棒模型(具体来说是通过同时攻击多个点云分类模型以使仅需执行一次模型防御训练)。具体实现过程参见图3b,预训练模型(即点云分类模型)是通过原始点云初步训练出的能够实现点云分类的模型;通过初始化/优化后的旋转角度旋转上一输入点云,得到对点云分类模型具有更强的攻击性的当前输入点云,循环往复,直至得到目标旋转角度,将其存储到旋转池中;从旋转池中采样出与原始点云的点云类别对应的类别旋转角度,并基于其生成对抗点云;由此,
可以基于对抗点云进行模型防御训练,得到旋转鲁棒模型(即目标分类模型)。
88.在此基础上,接下来以步骤形式对本实施例进行具体阐述。具体的,图4是本发明实施例三中提供的一种模型生成方法的流程图。本实施例是以上述各技术方案为基础进行优化。其中,与上述各实施例相同或是相应的术语的解释在此不再赘述。参见图4,本实施例的方法具体可以包括如下步骤:
89.需要说明的是,为了更加形象地理解下述各步骤的具体实现过程,接下来将以数学式子的方式进行阐述。需要强调的是,这些数学式子仅是示例性说明,并非是对本实施例的保护范围的具体限定。
90.s3010、获取初步训练完成的至少两个点云分类模型、原始点云、原始点云的点云类别、及通过基于均匀分布的随机角度初始化得到的初始化角度,其中,点云分类模型的数量和初始化角度的数量相同,并且每个初始化角度包括三个坐标轴下的轴旋转角度。
91.示例性的,对于三维空间的旋转,将其拆分表示为绕着三个坐标轴的旋转角度:θ=[θ1,θ2,θ3],相比于直接优化旋转矩阵(根据θ确定的矩阵),优化减少了优化参数,降低了优化难度,同时优化过程更为灵活。采用基于均匀分布的随机角度初始化方法初始化θ,得到初始化角度θ
init

[0092]
θ
init
~u[-π,π]
[0093]
由此得到的各初始化角度均匀分布在预设角度区间[-π,π]内。本步骤可以称为初始化旋转角度,本步骤设置的意义在于,可以有效找到预设角度区间内全部潜在的最优解(即最具攻击性的旋转角度)。
[0094]
s3020、基于各初始化角度对原始点云分别进行旋转,得到当前输入点云。
[0095]
其中,由此得到的当前输入点云的数量和点云分类模型的数量相同。
[0096]
s3030、针对每个当前输入点云,从各点云分类模型中确定中间分类模型,其中,中间分类模型是空闲的点云分类模型。
[0097]
其中,以单个当前输入点云为单位,执行s3030-s3100,这是模型旋转攻击(即小迭代)的执行过程。每个当前输入点云均是如此处理的。
[0098]
中间分类模型可以是目前仍处于空闲状态/未被旋转攻击/未被应用的点云分类模型,每个当前输入点云对应有各自的点云分类模型。
[0099]
s3040、将当前输入点云和点云类别输入到中间分类模型中,得到第一分类误差。
[0100]
其中,示例性的,通过如下式子定义针对于点云分类模型(即与当前输入点云对应的中间分类模型)的旋转攻击过程:
[0101][0102]
其中,(x,y)是点云类别为y∈[k]的原始点云f是点云分类模型,f(r
θ
x,y)表示点云分类模型对当前输入点云(r
θ
x,y)的分类误差,θ
*
是能够得到最大的分类误差的θ。综上所述,模型旋转攻击可以理解为通过优化θ来找到使f产生最大的分类误差的r
θ
x(或是说θ
*
)的过程。需要说明的是,下文中的第一分类误差和第二分类误差的本质均是f(r
θ
x,y),这里仅是为了区分出不同阶段得到的f(r
θ
x,y)而进行的不同命名,并非是对其实质内容的具体限定。
[0103]
s3050、分别确定第一分类误差相对于各轴旋转角度的回传梯度,对各回传梯度的
绝对值进行比较,将与最大的绝对值对应的回传梯度作为目标梯度,并将各坐标轴中与目标梯度对应的坐标轴作为目标坐标轴,且将目标坐标轴下的轴旋转角度作为待处理角度。
[0104]
其中,为了更加高效的优化θ,针对中间分类模型进行逐坐标轴的旋转攻击。示例性的,将每次的攻击目标设定为单个最具攻击性的旋转角度。为此,基于如下式子计算第一分类误差相对于每个轴旋转角度的回传梯度
[0105][0106]
其中,x=[x1,x2,x3]表示r
θ
x的三维坐标,表示第一分类误差相对于某坐标轴下的坐标的导数,表示i轴上的坐标相对于j轴上的轴旋转角度的导数,其可以通过转换球坐标系计算得到。当j取不同数值时,可以基于上述式子计算出第一分类误差相对于相应的轴旋转角度的回传梯度。
[0107]
在此基础上,可以通过如下式子确定目标坐标轴j
*

[0108][0109]
其中,j
*
可以理解为在小迭代的本轮执行过程中的最具攻击性的坐标轴,具体来说是确定出三个中数值最大的(即通过优化j来找到数值最大的),将与数值最大的对应的称为目标梯度,与目标梯度对应的坐标轴即为j
*
。本步骤可以称为梯度回传。
[0110]
s3060、根据目标梯度确定待处理角度在目标坐标轴下的旋转方向,并根据旋转方向对待处理角度进行处理,将处理后的待处理角度映射到预设角度区间内,得到当前旋转角度,其中,当前旋转角度是在将基于自身生成的旋转点云输入到中间分类模型后,得到大于第一分类误差的第二分类误差的旋转角度,包括处理后的待处理角度、及各轴旋转角度中除待处理角度之外的轴旋转角度。
[0111]
其中,旋转方向可以是目标坐标轴下能够增加分类误差的方向,因此可以在旋转方向上对中间分类模型进行单步攻击,即向着可以增加分类误差的方向增加旋转。示例性的,通过如下式子实现处理待处理角度的过程:
[0112][0113]
其中,α表示攻击的步长,即每次增加的旋转大小,在实际应用中可以设定为0.01(rad);表示在小迭代的本轮执行过程中位于目标坐标轴下的轴旋转角度(即待处理角
度);表示处理后的待处理角度。本步骤可以称为旋转角度优化,其实质是在的基础上加了个角度。
[0114]
在此基础上,在旋转角度优化过程中,为了避免出现因为数值上的不连续而导致攻击效率降低的情况,可以基于映射梯度下降算法对上述式子进行改进:
[0115][0116]
其中,表示将大于180度的数值都映射为180度,且将小于-180度的数值都映射为-180度,由此在攻击迭代过程中,可以保证每次攻击后的角度都位于预设角度区间[-π,π]内,从而防止出现由于越界而导致的数值不连续的情况。
[0117]
需要说明的是,本步骤仅是对目标坐标轴下的轴旋转角度进行优化,其余的坐标轴下的轴旋转角度并未发生变化。在此基础上,当与s3070相互配合来进行下一轮执行过程时,基于上一旋转角度对上一输入点云进行旋转可以理解为将上一输入点云在目标坐标轴上沿着旋转方向进行旋转,以使旋转后的上一输入点云(即由此得到的当前输入点云)在目标坐标轴下的轴旋转角度为并且其余的坐标轴下的轴旋转角度并未发生变化,即当前输入点云在各坐标轴下的轴旋转角度与当前旋转角度一致。
[0118]
s3070、将当前旋转角度作为上一旋转角度,并且将当前输入点云作为上一输入点云,基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,返回执行s3040。
[0119]
其中,重复执行s3040-s3060(梯度回传+旋转角度优化),进行多次攻击,由此获取针对中间分类模型而言攻击性最强(即具有最大的分类误差)的当前旋转角度,即找到三个坐标轴下的最具攻击性的θ
*

[0120]
s3080、如果s3040的重复执行次数大于或是等于第一预设次数阈值,则将当前旋转角度作为目标旋转角度。
[0121]
至此,模型旋转攻击结束,总结如下:以初始化角度为起始点,从起始点出发进行迭代(多次的梯度回传+旋转角优化),寻找最具攻击性的θ
*
。在迭代的每轮执行过程中,通过梯度回传找到最具攻击性的目标坐标轴、及在该目标坐标轴上能够增加分类误差的旋转方向,通过在该旋转方向上优化待处理角度来得到该目标坐标轴上新的轴旋转角度(即处理后的待处理角度),以便在下一轮执行过程中,基于该新的轴旋转角度对本轮执行过程中的当前输入点云进行旋转,得到该下一轮执行过程中的当前输入点云,循环往复。在迭代结束后,得到各坐标轴上的最具攻击性的轴旋转角度。
[0122]
接下来开始进行模型防御训练。需要说明的是,由于经过上述的模型旋转攻击得到的是最具攻击性的目标旋转角度,因此根据目标旋转角度得到的对抗点云亦是最具攻击性的点云,那么在基于这样的对抗点云进行模型防御训练时,可以提升点云分类模型在最具攻击性的对抗点云上的识别能力,从而同时提升对其余攻击性稍弱的对抗点云的识别能够力,以达到最终对各种攻击性的对抗点云的旋转鲁棒性提升的效果。
[0123]
s3090、获取初步构建完成的旋转池,其中,旋转池中设置有旋转角度集合,旋转角度集合中的各集合旋转角度均对应于同一点云类别。
[0124]
其中,在模型防御训练中引入旋转池机制,这是利用不同旋转角度在同类点云之间的可迁移性,将旋转角度按类别进行保存,从而有效提升训练样本的多样性,防止因训练样本单一而导致的过拟合问题。具体来说,对于每次攻击后产生的旋转样本(即对抗点云)r
θ
x,将θ从旋转样本中分离出来,并按照以下格式进行存储:
[0125][0126]
其中,表示点云类别k中全部nk个旋转样本产生的θ的集合(即旋转角度集合,这里的θ可以理解为旋转角度集合中的集合旋转角度)。本步骤可以称为旋转池构建。
[0127]
在此基础上,由于在模型旋转攻击时,是对至少两个(这里以m个为例)点云分类模型同时进行旋转攻击,因此上述旋转池可以表示为如下:
[0128][0129]
即,通过攻击m个不同的点云分类模型来构建旋转池,与每个原始点云对应的旋转样本由一个变为m个。相比于攻击单个点云分类模型,攻击m个点云分类模型得到的旋转池的多样性显著增加,从而提高了旋转池的质量。
[0130]
s3100、将旋转池中与点云类别对应的旋转角度集合作为类别角度集合,并将目标旋转角度存储到类别角度集合中,根据存储结果对旋转池进行更新。
[0131]
其中,每个当前输入点云均对应有各自的目标旋转角度,将这些目标旋转角度均存储到类别角度集合中。
[0132]
s3110、在类别角度集合中进行均匀采样,得到类别旋转角度,并基于类别旋转角度对原始点云进行旋转,得到对抗点云。
[0133]
其中,根据原始点云的点云类别,从旋转池中均匀采样得到一个类别旋转角度θ,示例性的,y是原始点云的点云类别,由此生成的对抗点云可以表示为(r
θ
x,y)。上述均匀采样也可以是随机采样。
[0134]
s3120、以对抗点云和点云类别为训练样本,对各点云分类模型中的待提升旋转鲁棒性的点云分类模型进行训练,得到目标分类模型。
[0135]
其中,示例性的,待提升旋转鲁棒性的点云分类模型的训练过程可以概述为如下式子:
[0136][0137]
其中,f
(1)
是待提升旋转鲁棒性的点云分类模型,f
(m)
为用于构建旋转池的全部m个点云分类模型,由此通过一次min-max优化可得到具有旋转鲁棒性的目标分类模型的f
*
,max是为了找到最具攻击性的θ,min是为了通过优化f
(1)
中的网络参数来得到分类误差最小(即点云分类精度最高)的f
*
。本步骤可以理解为训练样本生成和模型训练。
[0138]
上述一次的模型旋转攻击和一次的模型防御训练,可以称为一步优化。
[0139]
本发明实施例的技术方案,通过模型旋转攻击以寻找最具备攻击性的旋转样本、通过模型防御训练以提升模型的旋转鲁棒性、以及通过最终攻击和一步优化策略以快速获
得最终的鲁棒模型,由此达到了在省时、复杂度低并且能够维持原有的点云分类性能的情况下,提升点云分类模型的旋转鲁棒性的效果。
[0140]
实施例四
[0141]
图5是本发明实施例四中提供的一种点云分类方法的流程图。本实施例可适用于点云分类的情况,尤其适用于点云实时分类的情况。该方法可由本发明实施例提供的点云分类装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备上,该设备可以是各种用户终端或是服务器。
[0142]
参见图5,本实施例的方法具体可以包括如下步骤:
[0143]
s410、获取待分类点云、及按照本发明任意实施例所提供的模型生成方法生成的目标分类模型。
[0144]
其中,待分类点云可以是待进行分类的点云,且目标分类模型可以是具有旋转鲁棒性的点云分类模型。
[0145]
s420、将待分类点云输入至目标分类模型中,并根据目标分类模型的输出结果,得到待分类点云的分类结果。
[0146]
其中,由于目标分类模型具有旋转鲁棒性,因此在进行点云分类时,无需预先对待分类点云执行对齐操作,而可以将其直接输入到目标分类模型中,并根据目标分类模型的输出结果,得到待分类点云的分类结果,由此保证了点云分类的实时性,可以应用在对实时性要求较高的点云分类场景中。
[0147]
本发明实施例的技术方案,通过将待分类点云直接输入到目标分类模型中,并根据目标分类模型的输出结果得到待分类点云的分类结果。上述技术方案,通过应用具有旋转鲁棒性的目标分类模型,由此达到了点云实时分类的效果,可以应用在实时性要求较高的点云分类场景中。
[0148]
实施例五
[0149]
图6为本发明实施例五提供的模型生成装置的结构框图,该装置用于执行上述任意实施例所提供的模型生成方法。该装置与上述各实施例的模型生成方法属于同一个发明构思,在模型生成装置的实施例中未详尽描述的细节内容,可以参考上述模型生成方法的实施例。参见图6,该装置具体可以包括:数据获取模块510、第一分类误差得到模块520、当前旋转角度得到模块530和目标分类模型得到模块540。
[0150]
其中,数据获取模块510,用于获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云及原始点云的点云类别;
[0151]
第一分类误差得到模块520,用于基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差;
[0152]
当前旋转角度得到模块530,用于确定第一分类误差相对于上一旋转角度的回传梯度,并根据回传梯度对上一旋转角度进行处理,得到当前旋转角度,其中当前旋转角度包括在将基于当前旋转角度生成的旋转点云输入到点云分类模型后,得到大于第一分类误差的第二分类误差的旋转角度;
[0153]
目标分类模型得到模块540,用于根据当前旋转角度确定目标旋转角度,根据目标旋转角度对原始点云进行旋转,得到对抗点云,并以对抗点云和点云类别为训练样本,对点
云分类模型进行训练,以得到目标分类模型。
[0154]
可选的,上一旋转角度包括至少两个坐标轴下的轴旋转角度;
[0155]
当前旋转角度得到模块530,可以包括:
[0156]
目标梯度确定单元,用于分别确定第一分类误差相对于各轴旋转角度的回传梯度,并从各回传梯度中确定目标梯度;
[0157]
待处理角度得到单元,用于将各坐标轴中的与目标梯度对应的坐标轴作为目标坐标轴,且将目标坐标轴下的轴旋转角度作为待处理角度;
[0158]
当前旋转角度得到单元,用于根据目标梯度确定待处理角度在目标坐标轴下的旋转方向,并根据旋转方向对待处理角度进行处理,并根据处理结果得到当前旋转角度,其中,当前旋转角度包括处理后的待处理角度、以及各轴旋转角度中除待处理角度之外的轴旋转角度。
[0159]
在此基础上,可选的,当前旋转角度得到单元,可以包括:
[0160]
当前旋转角度得到子单元,用于根据旋转方向对待处理角度进行处理,并将处理后的待处理角度映射到预设角度区间内,并根据映射结果得到当前旋转角度;
[0161]
和/或,目标梯度确定单元,可以包括:
[0162]
目标梯度确定子单元,用于对各回传梯度的绝对值进行比较,将与最大的绝对值对应的回传梯度作为目标梯度。
[0163]
可选的,目标分类模型得到模块540,可以包括:
[0164]
小迭代执行单元,用于将当前旋转角度作为上一旋转角度,且将当前输入点云作为上一输入点云,重复执行基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云的步骤;
[0165]
目标旋转角度得到单元,用于如果旋转步骤的重复执行次数大于或是等于第一预设次数阈值、和/或第二分类误差大于或是等于第一预设误差阈值,则将当前旋转角度作为目标旋转角度。
[0166]
可选的,目标分类模型得到模块540,可以包括:
[0167]
点云分类模型更新单元,用于对点云分类模型进行训练,并根据训练结果更新点云分类模型;
[0168]
初始化角度获取单元,用于获取未经旋转的中间点云和初始化角度,并将中间点云作为原始点云和上一输入点云,且将初始化角度作为上一旋转角度;
[0169]
大迭代执行单元,用于重复执行获取原始点云的点云类别的步骤,其中,各次获取到的初始化角度服从均匀分布;
[0170]
目标分类模型得到第一单元,用于如果获取步骤的重复执行次数大于或是等于第二预设次数阈值、和/或在将对抗点云和点云类别输入到点云分类模型后得到的第三分类误差小于或是等于第二预设误差阈值,则将点云分类模型作为目标分类模型。
[0171]
可选的,点云分类模型的数量是至少两个,第一分类误差得到模块520,可以包括:
[0172]
第一分类误差第一得到单元,用于将当前输入点云和点云类别为第一误差确定样本,将第一误差确定样本分别输入到各点云分类模型中,得到第一分类误差;
[0173]
当前旋转角度得到模块530,可以包括:
[0174]
回传梯度第一确定单元,用于针对每个第一分类误差,确定第一分类误差相对于
上一旋转角度的回传梯度;
[0175]
目标分类模型得到模块540,可以包括:
[0176]
原始点云第一旋转单元,用于从各点云分类模型分别对应的目标旋转角度中确定最终旋转角度,并基于最终旋转角度对原始点云进行旋转;
[0177]
目标分类模型第二得到单元,用于对各点云分类模型中待提升旋转鲁棒性的点云分类模型进行训练,得到目标分类模型。
[0178]
可选的,上述模型生成装置,还可以包括:
[0179]
旋转池获取模块,用于获取初步构建完成的旋转池,其中,旋转池中设置有旋转角度集合,旋转角度集合中的各集合旋转角度均对应于同一点云类别;
[0180]
旋转池更新模块,用于将旋转池中的与点云类别对应的旋转角度集合作为类别角度集合,并将目标旋转角度存储到类别角度集合中,并根据存储结果对旋转池进行更新;
[0181]
目标分类模型得到模块540,可以包括:
[0182]
原始点云第二旋转单元,用于从类别角度集合中获取类别旋转角度,并将类别旋转角度作为目标旋转角度,对原始点云进行旋转。
[0183]
在此基础上,可选的,当目标旋转角度被多轮确定时,旋转池更新模块,可以包括:
[0184]
旋转池更新单元,用于在得到本轮确定的目标旋转角度后,基于本轮确定的目标旋转角度对类别角度集合中的于本轮的上一轮确定的目标旋转角度进行替换,并根据替换结果对旋转池进行更新。
[0185]
再可选的,点云分类模型的数量是至少两个,第一分类误差得到模块520,可以包括:
[0186]
第一分类误差第二得到单元,用于将当前输入点云以及点云类别作为第二误差确定样本,将第二误差确定样本分别输入到各点云分类模型中,得到第一分类误差;
[0187]
当前旋转角度得到模块530,可以包括:
[0188]
回传梯度第二确定单元,用于针对每个第一分类误差,确定第一分类误差相对于上一旋转角度的回传梯度;
[0189]
旋转池更新模块,可以包括:
[0190]
目标旋转角度存储单元,用于将各点云分类模型分别对应的目标旋转角度,存储到类别角度集合中;
[0191]
目标分类模型得到模块540,可以包括:
[0192]
目标分类模型得到单元,用于对各点云分类模型中待提升旋转鲁棒性的点云分类模型进行训练,得到目标分类模型。
[0193]
本发明实施例五所提供的模型生成装置,通过数据获取模块获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、及原始点云的点云类别;通过第一分类误差得到模块基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差;通过当前旋转角度得到模块确定第一分类误差相对于上一旋转角度的回传梯度,以便根据回传梯度对上一旋转角度进行处理,得到能够增大点云分类模型的分类误差的当前旋转角度,即相当于上一旋转角度,当前旋转角度对于点云分类模型的旋转攻击性更强;通过目标分类模型得到模块根据当前旋转角度确定目标旋转角度,并根据目标旋转角度对原始点云
进行旋转,得到对抗点云,以对抗点云和点云类别为训练样本,对点云分类模型进行防御训练,由此以得到具有旋转鲁棒性的目标分类模型。上述装置,达到了在省时、复杂度低且能够维持原有的点云分类性能的情况下,提升点云分类模型的旋转鲁棒性的效果,从而可以更加方便高效的来提升点云分类模型的旋转鲁棒性。
[0194]
本发明实施例所提供的模型生成装置可执行本发明任意实施例所提供的模型生成方法,具备执行方法相应的功能模块和有益效果。
[0195]
值得注意的是,上述模型生成装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0196]
实施例六
[0197]
图7为本发明六提供的点云分类装置的结构框图,该装置用于执行上述任意实施例所提供的点云分类方法。该装置与上述各实施例的点云分类方法属于同一个发明构思,在点云分类装置的实施例中未详尽描述的细节内容,可参考上述点云分类方法的实施例。参见图7,该装置具体可以包括:目标分类模型获取模块610和分类结果得到模块620。
[0198]
其中,目标分类模型获取模块610,用于获取待分类点云、及按照本发明任意实施例所提供的模型生成方法生成的目标分类模型;
[0199]
分类结果得到模块620,用于将待分类点云输入至目标分类模型,并根据目标分类模型的输出结果,得到待分类点云的分类结果。
[0200]
本发明提供的点云分类装置,通过目标分类模型获取模块和分类结果得到模块相互配合,将待分类点云直接输入到目标分类模型,并根据目标分类模型的输出结果得到待分类点云的分类结果,由此达到了点云实时分类的效果。
[0201]
本发明实施例所提供的点云分类装置可执行本发明任意实施例所提供的点云分类方法,具备执行方法相应的功能模块和有益效果。
[0202]
值得注意的是,上述点云分类装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0203]
实施例七
[0204]
图8为本发明实施例七提供的一种电子设备的结构示意图,如图8所示,该设备包括存储器710、处理器720、输入装置730和输出装置740。设备中的处理器720的数量可以是一个或多个,图8中以一个处理器720为例;设备中的存储器710、处理器720、输入装置730和输出装置740可以通过总线或其它方式连接,图8中以通过总线750连接为例。
[0205]
存储器710作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的模型生成方法对应的程序指令/模块(如,模型生成装置中的数据获取模块510、第一分类误差得到模块520、当前旋转角度得到模块530和目标分类模型得到模块540),或是如本发明实施例中的点云分类方法对应的程序指令/模块(例如,点云分类装置中的目标分类模型获取模块610和分类结果得到模块620)。处理器720通过运行存储在存储器710中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的模型生成方法或是点云分类方法。
[0206]
存储器710可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系
统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器710可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器710可进一步包括相对于处理器720远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0207]
输入装置730可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
[0208]
实施例八
[0209]
本发明实施例八提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种模型生成方法,该方法包括:
[0210]
获取初步训练完成的点云分类模型、上一旋转角度、对原始点云进行旋转后得到的上一输入点云、及原始点云的点云类别;
[0211]
基于上一旋转角度对上一输入点云进行旋转,得到当前输入点云,并将当前输入点云和点云类别输入到点云分类模型中,得到第一分类误差;
[0212]
确定第一分类误差相对于上一旋转角度的回传梯度,并根据回传梯度对上一旋转角度进行处理,得到当前旋转角度,其中,当前旋转角度包括在将基于当前旋转角度生成的旋转点云输入到点云分类模型后,得到大于第一分类误差的第二分类误差的旋转角度;
[0213]
根据当前旋转角度确定目标旋转角度,根据目标旋转角度对原始点云进行旋转,得到对抗点云,并以对抗点云和点云类别为训练样本,对点云分类模型进行训练,以得到目标分类模型。
[0214]
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的模型生成方法中的相关操作。
[0215]
实施例九
[0216]
本发明实施例九提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种点云分类方法,该方法包括:
[0217]
获取待分类点云、以及按照本发明任意实施例所提供的模型生成方法生成的目标分类模型;
[0218]
将待分类点云输入至目标分类模型中,并根据目标分类模型的输出结果,得到待分类点云的分类结果。
[0219]
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的点云分类方法中的相关操作。
[0220]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设
备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0221]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1