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

点云实例分割模型的训练方法、装置、电子设备和介质

文献发布时间:2023-06-19 11:21:00


点云实例分割模型的训练方法、装置、电子设备和介质

技术领域

本公开涉及人工智能领域,具体涉及深度神经网络模型压缩领域,更具体地,涉及一种点云实例分割模型的训练方法、一种点云实例分割模型的训练装置、一种电子设备、一种可读存储介质和一种计算机程序产品。

背景技术

在计算机视觉中,实例分割任务首先对图像中的每个像素进行分类,形成语义分割结果,并在此基础上,对每一类下的像素根据所属的物体不同进行分类,用以区分每个像素所属的实例。实例分割在现实场景中有着广泛的应用,例如在工件分拣场景下,通过实例分割,区分出点云中的每个物体,再经过位姿估计,控制机械臂进行抓取,完成工件等的抓取。

三维视觉的实例分割在实际生活中具有重要意义,例如在自动驾驶中,除了要检测出道路中的车辆、行人外,还要对车辆和行人之间的距离进行精确的把控,而若仅使用二维图像,因为缺少了至关重要的深度信息,上述目标难以实现。在三维视觉中,点云是一种常见的数据形式,它可以由激光雷达直接采集而成。在早期发展中,点云的处理都是通过将点云转化为体素的方式完成,例如:体素网络,一种端到端的点云目标检测模型,体素网络实现了较好的检测效果,但由于体素占用的存储空间过大,使得处理体素的体素网络模型也需要较大的存储空间及计算资源,不利于边缘端的部署。

在实现本公开构思的过程中发现,虽然相关技术中点云实例分割模型由于处理点云的方式改变而逐渐缩小,但其模型仍较大且不足以在边缘设备上运行,故需对模型进行再次压缩。而到目前为止,还没有有效的技术方案完成点云实例分割模型的压缩。

发明内容

有鉴于此,本公开提供了一种点云实例分割模型的训练方法、一种点云实例分割模型的训练装置、电子设备、可读存储介质和计算机程序产品。

本公开的一个方面提供了一种点云实例分割模型的训练方法,包括:获取教师模型和初始学生模型,其中,上述教师模型通过训练初始实例分割模型得到,上述初始实例分割模型包括依次连接的第一骨干网络、语义分割网络和实例分割网络,上述初始学生模型通过将上述初始实例分割模型中的第一骨干网络替换为第二骨干网络获得,其中,上述第二骨干网络的网络规模小于上述第一骨干网络的网络规模;将原始点云数据输入到上述教师模型中,得到上述教师模型的骨干网络输出的第一特征矩阵、上述教师模型的语义分割网络输出的第一概率矩阵和上述教师模型的实例分割网络输出的第二特征矩阵;以及将上述第一特征矩阵、上述第一概率矩阵和上述第二特征矩阵作为上述原始点云数据的标签,基于上述原始点云数据,训练上述初始学生模型,得到训练完成的点云实例分割模型。

根据本公开的实施例,上述将上述第一特征矩阵、上述第一概率矩阵和上述第二特征矩阵作为上述原始点云数据的标签,基于上述原始点云数据,训练上述初始学生模型,得到训练完成的点云实例分割模型包括:基于上述原始点云数据,使用上述第一特征矩阵作为标签训练上述初始学生模型的第二骨干网络,得到第一网络模型;基于上述原始点云数据,使用上述第一概率矩阵作为标签训练第二网络模型,得到第三网络模型,其中,上述第二网络模型包括上述第一网络模型和上述初始学生模型的语义分割网络;以及基于上述原始点云数据,使用上述第二特征矩阵作为标签训练第四网络模型,得到训练完成的点云实例分割模型,其中,上述第四网络模型包括上述第三网络模型和上述初始学生模型的实例分割网络。

根据本公开的实施例,上述基于上述原始点云数据,使用上述第一特征矩阵作为标签训练上述初始学生模型的第二骨干网络包括:将上述原始点云数据输入上述第二骨干网络,输出得到第一输出矩阵;使用归一化方法处理上述第一输出矩阵,使上述第一输出矩阵的维度等于上述第一特征矩阵的维度;基于上述第一特征矩阵和归一化处理后的第一输出矩阵计算得到第一损失值;以及在上述第一损失值大于预设值的情况下,基于上述第一损失值调整上述第二骨干网络的模型参数。

根据本公开的实施例,上述基于上述原始点云数据,使用上述第一概率矩阵作为标签训练第二网络模型包括:将上述原始点云数据输入上述第二网络模型,输出得到第二输出矩阵;基于上述第二输出矩阵和上述原始点云数据的真实标签计算得到第二损失值;基于上述第二输出矩阵和上述第一概率矩阵计算得到第三损失值;对上述第二损失值和上述第三损失值进行加权求和运算,得到第四损失值;以及在上述第四损失值大于预设值的情况下,基于上述第四损失值调整上述第二网络模型的模型参数。

根据本公开的实施例,上述基于上述原始点云数据,使用上述第二特征矩阵作为标签训练第四网络模型包括:将上述原始点云数据输入上述第四网络模型,输出得到的第三输出矩阵;基于上述第二特征矩阵和上述第三输出矩阵计算得到第五损失值;以及在上述第五损失值大于预设值的情况下,基于上述第五损失值调整上述第四网络模型的模型参数。

本公开实施例的方法还包括:将待分割点云数据输入到上述点云实例分割模型中,得到上述点云实例分割模型的语义分割网络输出的第二概率矩阵和上述点云实例分割模型的实例分割网络输出的第三特征矩阵;根据上述第二概率矩阵获取点云类别信息,对上述第三特征矩阵进行相似性度量获取点云边界信息;以及基于上述点云类别信息和上述点云边界信息,得到点云实例分割结果。

本公开的另一个方面提供了一种点云实例分割模型的训练装置,包括模型获取模块、数据存储模块和训练模块,其中:模型获取模块,用于获取教师模型和初始学生模型,其中,上述教师模型通过训练初始实例分割模型得到,上述初始实例分割模型包括依次连接的第一骨干网络、语义分割网络和实例分割网络,上述初始学生模型通过将上述初始实例分割模型中的第一骨干网络替换为第二骨干网络获得,其中,上述第二骨干网络的网络规模小于上述第一骨干网络的网络规模;数据存储模块,用于存储将原始点云数据输入到上述教师模型中,得到的上述教师模型的骨干网络输出的第一特征矩阵、上述教师模型的语义分割网络输出的第一概率矩阵和上述教师模型的实例分割网络输出的第二特征矩阵;以及训练模块,用于将上述第一特征矩阵、上述第一概率矩阵和上述第二特征矩阵作为上述原始点云数据的标签,基于上述原始点云数据,训练上述初始学生模型,得到训练完成的点云实例分割模型。

根据本公开的实施例,上述训练模块包括:第一训练单元,用于基于上述原始点云数据,使用上述第一特征矩阵作为标签训练上述初始学生模型的第二骨干网络,得到第一网络模型;第二训练单元,用于基于上述原始点云数据,使用上述第一概率矩阵作为标签训练第二网络模型,得到第三网络模型,其中,上述第二网络模型包括上述第一网络模型和上述初始学生模型的语义分割网络;以及第三训练单元,用于基于上述原始点云数据,使用上述第二特征矩阵作为标签训练第四网络模型,得到训练完成的点云实例分割模型,其中,上述第四网络模型包括上述第三网络模型和上述初始学生模型的实例分割网络。

根据本公开的实施例,上述第一训练单元包括:第一运算子单元,用于将上述原始点云数据输入上述第二骨干网络,输出得到第一输出矩阵;第二运算子单元,用于使用归一化方法处理上述第一输出矩阵,使上述第一输出矩阵的维度等于上述第一特征矩阵的维度;第三运算子单元,用于基于上述第一特征矩阵和归一化处理后的第一输出矩阵计算得到第一损失值;以及第四运算子单元,用于在上述第一损失值大于预设值的情况下,基于上述第一损失值调整上述第二骨干网络的模型参数。

根据本公开的实施例,上述第二训练单元包括:第五运算子单元,用于将上述原始点云数据输入上述第二网络模型,输出得到第二输出矩阵;第六运算子单元,用于基于上述第二输出矩阵和上述原始点云数据的真实标签计算得到第二损失值;第七运算子单元,用于基于上述第二输出矩阵和上述第一概率矩阵计算得到第三损失值;第八运算子单元,用于对上述第二损失值和上述第三损失值进行加权求和运算,得到第四损失值;以及第九运算子单元,用于在上述第四损失值大于预设值的情况下,基于上述第四损失值调整上述第二网络模型的模型参数。

根据本公开的实施例,上述第三训练单元包括:第十运算子单元,用于将上述原始点云数据输入上述第四网络模型,输出得到的第三输出矩阵;第十一运算子单元,用于基于上述第二特征矩阵和上述第三输出矩阵计算得到第五损失值;以及第十二运算子单元,用于在上述第五损失值大于预设值的情况下,基于上述第五损失值调整上述第四网络模型的模型参数。

本公开实施例的装置还包括执行模块,其中上述执行模块包括:执行单元,用于将待分割点云数据输入到上述点云实例分割模型中,得到上述点云实例分割模型的语义分割网络输出的第二概率矩阵和上述点云实例分割模型的实例分割网络输出的第三特征矩阵;第一分析单元,用于根据上述第二概率矩阵获取点云类别信息,对上述第三特征矩阵进行相似性度量获取点云边界信息;以及第二分析单元,用于基于上述点云类别信息和上述点云边界信息,得到点云实例分割结果。

本公开的另一个方面提供了一种电子设备,包括一个或多个处理器,以及存储一个或多个程序的存储器。其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。

本公开的另一方面提供了一种可读存储介质,存储有可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

根据本公开的实施例,通过对初始实例分割模型中的骨干网络替换为规模较小的骨干网络的方法得到学生模型,将初始实例分割模型训练至收敛得到教师模型,并将原始点云数据输入到教师模型得到的不同网络的输出结果作为标签,使用该标签对学生模型中的不同网络进行训练,进而得到压缩后的模型。基于此方法解决了针对三维目标的实例分割模型的压缩,有效降低了实例分割模型所需存储空间和运算资源,同时降低了模型压缩过程中的精度损失。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的可以应用点云实例分割模型的训练方法的示例性系统架构100;

图2示意性示出了根据本公开实施例的点云实例分割模型的训练方法200的流程图;

图3示意性示出了根据本公开实施例的点云实例分割模型的训练过程的示意图;

图4a、图4b和图4c示出了根据本公开实施例的方法训练得到的点云实例分割模型的应用示例;

图5示意性示出了根据本公开实施例的点云实例分割模型的训练装置500的示意图;

图6示意性示出了根据本公开实施例的适于实现点云实例分割模型的训练方法的电子设备600的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

在相关技术中,点云实例分割模型由于处理点云的方式改变而逐渐缩小,但其模型规模仍较大,同时,边缘端(例如手机端、嵌入式端等)并不同于云计算中心,其拥有的计算资源较少,规模较大的模型在边缘端上运行时往往无法运行或者运行效率过低,从而影响该边缘端的用户体验,故需对模型进行再次压缩,以满足点云实例分割模型在边缘设备上运行的需求。

基于上述问题,可以采用知识蒸馏的方法进行解决。知识蒸馏即通过使用大型网络(教师模型)指导小型网络(学生模型)进行训练,使得学生模型在无需增加任何计算及存储资源的前提下提高模型精度,进而达到压缩模型的目的。知识蒸馏方法的表现较稳定,由完备的数学理论基础,且物端部署方便,可以用于解决点云模型压缩问题。在点云模型压缩以后,可以方便的部署在边缘端,例如工业分拣机器人、手机、嵌入式端等,保证了在没有大型运算设备的基础下,仍可完成点云实例分割工作。在相关技术中,虽然基于知识蒸馏的模型压缩存在众多论文,但其大多聚焦于分类模型的压缩上,对于点云实例分割模型的压缩,未有更多的探索。

在当前直接对点云进行实例分割的模型中,例如点云实例分割相似群建议网络,其实现过程可分为四步,即首先提取点云特征(由骨干网络实现),再基于点云特征将点云按物体所述种类进行分类(由语义分割网络实现),然后完成对每一个物体的区分(由实例分割网络实现),最后根据物体的区分结果和分类结果,得到实例分割结果。在当前的实例分割工作中,实例分割网络结果呈现为一个个特征向量,这些特征向量具有以下特性:同一物体间的特征向量距离极近,不同物体间的特征向量距离极远,对于学习后的特征向量,经过聚类后,得到实例分割的结果。需注意,实例分割的结果仅为物体的划分而不包含物体所属的种类,在根据语义分割结果确认每个物体的分类后得到最终的实例分割结果。

本公开的实施例提供了一种点云实例分割模型的训练方法、一种点云实例分割模型的训练装置、电子设备、可读存储介质和计算机程序产品。该方法包括:获取教师模型和初始学生模型;将原始点云数据输入到教师模型中,得到教师模型的骨干网络输出的第一特征矩阵、教师模型的语义分割网络输出的第一概率矩阵和教师模型的实例分割网络输出的第二特征矩阵;以及将第一特征矩阵、第一概率矩阵和第二特征矩阵作为原始点云数据的标签,基于原始点云数据,训练初始学生模型,得到训练完成的点云实例分割模型。

图1示意性示出了根据本公开实施例的可以应用点云实例分割模型的训练方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构100的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括边缘设备101、102、103、104和云端设备105。其中,边缘设备101、102、103、104和终端设备105之间可以通过包括有线和/或无线网络等通信链路进行信息交互。

边缘设备101、102、103、104可以是有环境影像实时处理需求的各种电子设备,包括但不限于智能手机、无人机、智能驾驶汽车、工业机器人等。边缘设备101、102、103、104具有有限的计算资源和存储能力,与此同时,用户在使用这些边缘设备时,对于图像信息处理的速度要求较高。

云端设备105包括但不限于服务器、服务器集群、超级计算机等,其具有较为充足的计算资源和存储能力,能够实现深层网络的训练。

在本公开的实施例中,训练点云实例分割模型时所需要的样本可以由边缘设备101、102、103、104获取,云端设备105用于训练教师模型,并利用教师模型指导训练学生模型,训练完成的学生模型通过通信链路发送至边缘设备101、102、103、104。边缘设备101、102、103、104可以基于训练完成的学生模型实现对实时捕获的影像数据的实例分割。需要说明的是,本公开实施例所提供的方法也可以由能够与云端设备105建立通信的其他设备执行,在该应用场景中,云端设备105用于辅助其他设备进行教师模型和学生模型的训练,或仅用于存储训练样本数据或模型数据,或仅用于为其他设备和边缘设备101、102、103、104的通信提供保障。

应该理解,图1中的边缘设备和云端设备的种类及数目仅仅是示意性的。根据实现需要,可以具有任意种类或数目的边缘设备和云端设备。

图2示意性示出了根据本公开实施例的点云实例分割模型的训练方法200的流程图。

如图2所示,该方法200包括操作S210~S230。

在操作S210,获取教师模型和初始学生模型。

根据本公开的实施例,将初始点云实例分割模型按照网络结构进行分解,可以得到骨干网络、语义分割网络和实例分割网络,并且,上述三个网络可以按串联的方式依次连接。教师模型具有与初始点云实例分割模型相同的网络结构,通过将初始点云实例分割模型在相应的数据中训练至模型收敛,即可得到本实施例中的教师模型。在本公开的实施例中,教师模型可以使用和训练学生模型时相同的点云数据进行训练,也可以使用其他现有数据集中的相关数据。

根据本公开的实施例,点云实例分割模型中的骨干网络可以用于对点云特征的提取。依据神经网络的相关理论,深层网络有利于对深层特征的挖掘,从而带来更好的结果。为了提高模型的性能,骨干网络具有远大于语义分割网络和实例分割网络的规模,因而骨干网络在整个网络结果中占有绝大多数的存储空间和运算量,故在构建学生模型时,可以采用规模较小的骨干网络对原点云实例分割模型中的骨干网络进行替换。

例如,教师模型为点云中实例与语义的关联分割模型,其骨干网络为度量空间中点集的深层次特征学习网络,将教师模型的骨干网络替换为三维分类与分割中点集的深度学习网络得到学生模型,学生模型的大小仅为教师模型的60%左右,学生模型在使用时所需要的计算资源也有了相应的降低。

在操作S220,将原始点云数据输入到教师模型中,得到教师模型的骨干网络输出的第一特征矩阵、教师模型的语义分割网络输出的第一概率矩阵和教师模型的实例分割网络输出的第二特征矩阵。

在操作S230,将第一特征矩阵、第一概率矩阵和第二特征矩阵作为原始点云数据的标签,基于原始点云数据,训练初始学生模型,得到训练完成的点云实例分割模型。

根据本公开的实施例,在进行初始学生模型的训练过程中,可以使用教师模型输入原始点云数据后的各个网络的输出值作为标签监督训练,同时,根据选用的损失函数的不同,还可以使用原始点云数据的真实标签来平衡训练结果。

根据本公开的实施例,训练完成的点云实例分割模型相较于初始实例分割模型,具有较小的模型规模,对运行该模型的设备的存储空间及运算资源的消耗均较低。

根据本公开的实施例,通过对初始实例分割模型中的骨干网络替换为规模较小的骨干网络的方法得到学生模型,将初始实例分割模型训练至收敛得到教师模型,并将原始点云数据输入到教师模型得到的不同网络的输出结果作为标签,使用该标签对学生模型中的不同网络进行训练,进而得到压缩后的模型。基于此方法解决了针对三维目标的实例分割模型的压缩,有效降低了实例分割模型所需存储空间和运算资源,同时降低了模型压缩过程中的精度损失。

图3示意性示出了根据本公开实施例的点云实例分割模型的训练过程的示意图。

如图3所示,教师模型指导学生模型进行训练的过程包括分别对初始学生模型的骨干网络、语义分割网络和实例分割网络的训练,可用于实现方法200中的操作S230。本公开实施例中的初始学生模型的训练包括如下步骤:

首先,基于原始点云数据,使用第一特征矩阵作为标签训练初始学生模型的第二骨干网络,得到第一网络模型。

根据本公开的实施例,训练第二骨干网络包括:将原始点云数据输入第二骨干网络,输出得到第一输出矩阵;使用归一化方法处理第一输出矩阵,使第一输出矩阵的维度等于第一特征矩阵的维度;基于第一特征矩阵和归一化处理后的第一输出矩阵计算得到第一损失值;以及在第一损失值大于预设值的情况下,基于第一损失值调整第二骨干网络的模型参数。

在本公开的实施例中,可以使用如下损失函数监督训练初始学生模型的骨干网络:

L

式中,L

然后,基于原始点云数据,使用第一概率矩阵作为标签训练第二网络模型,得到第三网络模型。

根据本公开的实施例,第二网络模型包括第一网络模型和初始学生模型的语义分割网络。

根据本公开的实施例,训练第二网络模型包括:将原始点云数据输入第二网络模型,输出得到第二输出矩阵;基于第二输出矩阵和原始点云数据的真实标签计算得到第二损失值;基于第二输出矩阵和第一概率矩阵计算得到第三损失值;对第二损失值和第三损失值进行加权求和运算,得到第四损失值;以及在第四损失值大于预设值的情况下,基于第四损失值调整第二网络模型的模型参数。

在本公开的实施例中,使用如下损失函数监督训练第二网络模型:

L

L

其中,L

最后,基于原始点云数据,使用第二特征矩阵作为标签训练第四网络模型,得到训练完成的点云实例分割模型。

根据本公开的实施例,第四网络模型包括第三网络模型和初始学生模型的实例分割网络。

根据本公开的实施例,训练第四网络模型包括:将原始点云数据输入第四网络模型,输出得到的第三输出矩阵;基于第二特征矩阵和第三输出矩阵计算得到第五损失值;以及在第五损失值大于预设值的情况下,基于第五损失值调整第四网络模型的模型参数。

在本公开的实施例中,使用如下损失函数监督训练第四网络模型:

L′

其中,L

根据本公开的实施例,在训练第二网络模型或第四网络模型的过程中,基于梯度弥散现象,该学生模型中已经经过训练的部分网络在再次训练过程中的梯度非常小,即整体损失函数相对于已经经过训练的部分网络的权重的导数非常小,故已经经过训练的部分网络的模型参数的更迭较慢,避免因过度训练而导致该学生模型出现过拟合现象。才外,为了避免过拟合,还可以为已训练的部分网络设置较低的学习率,例如可以将已训练的部分网络的学习率设置为未训练的部分网络的学习率的1/10。

需要说明的是,本公开实施例中对初始学生模型的各个网络进行训练时所采用的损失函数仅是示意性的,在实际应用中,损失函数可以根据实验结果进行调整,例如,可以采用平方损失函数、对数损失函数、Hinge损失函数等。

根据本公开的实施例,利用教师模型指导学生模型中的各个网络进行训练,可以有效降低模型迁移过程中的精度损失。

图4a、图4b和图4c示出了根据本公开实施例的方法训练得到的点云实例分割模型的应用示例。

根据本公开的实施例,将如图4a所示的图像转换为像素矩阵,即转换为可输入点云实例分割模型的数据格式。将图像数据输入点云实例分割模型中,得到点云实例分割模型的语义分割网络输出的概率矩阵和点云实例分割模型的实例分割网络输出的特征矩阵。在本实施例中,由于图像转换得到的像素矩阵为3维矩阵,故输出得到的概率矩阵和特征矩阵为4维矩阵,像素矩阵中的一个或多个像素点对应于概率矩阵中的一个概率向量和特征矩阵中的一个特征向量。

根据本公开的实施例,对于概率矩阵中的每一个概率向量,概率向量中最大值对应的类别即对应的一个或多个像素点的语义类别,进行处理即可得到如图4b所示的点云类别信息示意图。

根据本公开的实施例,对于特征矩阵中的每一个特征向量,使用相似性度量的方法可以对像素点归属的不同物体进行分类,即得到如图4c所示的点云边界信息示意图。

根据本公开的实施例,基于点云类别信息和点云边界信息,可以得到图4a中图像的点云实例分割结果。

例如,图4a中包含订书机、修正带和3支笔,一种5个物品;在图4b中通过对概率矩阵的处理,将5个物品分为了3类,包括订书机类、修正带类和笔类;在图4c中通过相似性度量,实现了对5个物品的区分,即分别为物品1~5;综合图4b和图4c的分类结果,即可完成对这5个物品的实例分割。

图5示意性示出了根据本公开实施例的点云实例分割模型的训练装置500的示意图。

如图5所示,该点云实例分割模型的训练装置500包括模型获取模块510、数据存储模块520和训练模块530。

模型获取模块510,用于获取教师模型和初始学生模型,其中,教师模型通过训练初始实例分割模型得到,初始实例分割模型包括依次连接的第一骨干网络、语义分割网络和实例分割网络,初始学生模型通过将初始实例分割模型中的第一骨干网络替换为第二骨干网络获得,其中,第二骨干网络的网络规模小于第一骨干网络的网络规模

数据存储模块520,用于存储将原始点云数据输入到教师模型中,得到的教师模型的骨干网络输出的第一特征矩阵、教师模型的语义分割网络输出的第一概率矩阵和教师模型的实例分割网络输出的第二特征矩阵;以及

训练模块530,用于将第一特征矩阵、第一概率矩阵和第二特征矩阵作为原始点云数据的标签,基于原始点云数据,训练初始学生模型,得到训练完成的点云实例分割模型。

根据本公开的实施例,训练模块530包括:第一训练单元,用于基于原始点云数据,使用第一特征矩阵作为标签训练初始学生模型的第二骨干网络,得到第一网络模型;第二训练单元,用于基于原始点云数据,使用第一概率矩阵作为标签训练第二网络模型,得到第三网络模型,其中,第二网络模型包括第一网络模型和初始学生模型的语义分割网络;以及第三训练单元,用于基于原始点云数据,使用第二特征矩阵作为标签训练第四网络模型,得到训练完成的点云实例分割模型,其中,第四网络模型包括第三网络模型和初始学生模型的实例分割网络。

根据本公开的实施例,第一训练单元包括:第一运算子单元,用于将原始点云数据输入第二骨干网络,输出得到第一输出矩阵;第二运算子单元,用于使用归一化方法处理第一输出矩阵,使第一输出矩阵的维度等于第一特征矩阵的维度;第三运算子单元,用于基于第一特征矩阵和归一化处理后的第一输出矩阵计算得到第一损失值;以及第四运算子单元,用于在第一损失值大于预设值的情况下,基于第一损失值调整第二骨干网络的模型参数。

根据本公开的实施例,第二训练单元包括:第五运算子单元,用于将原始点云数据输入第二网络模型,输出得到第二输出矩阵;第六运算子单元,用于基于第二输出矩阵和原始点云数据的真实标签计算得到第二损失值;第七运算子单元,用于基于第二输出矩阵和第一概率矩阵计算得到第三损失值;第八运算子单元,用于对第二损失值和第三损失值进行加权求和运算,得到第四损失值;以及第九运算子单元,用于在第四损失值大于预设值的情况下,基于第四损失值调整第二网络模型的模型参数。

根据本公开的实施例,第三训练单元包括:第十运算子单元,用于将原始点云数据输入第四网络模型,输出得到的第三输出矩阵;第十一运算子单元,用于基于第二特征矩阵和第三输出矩阵计算得到第五损失值;以及第十二运算子单元,用于在第五损失值大于预设值的情况下,基于第五损失值调整第四网络模型的模型参数。

本公开实施例的装置还包括执行模块,其中执行模块包括:执行单元,用于将待分割点云数据输入到点云实例分割模型中,得到点云实例分割模型的语义分割网络输出的第二概率矩阵和点云实例分割模型的实例分割网络输出的第三特征矩阵;第一分析单元,用于根据第二概率矩阵获取点云类别信息,对第三特征矩阵进行相似性度量获取点云边界信息;以及第二分析单元,用于基于点云类别信息和点云边界信息,得到点云实例分割结果。

根据本公开的实施例,通过对初始实例分割模型中的骨干网络替换为规模较小的骨干网络的方法得到学生模型,将初始实例分割模型训练至收敛得到教师模型,并将原始点云数据输入到教师模型得到的不同网络的输出结果作为标签,使用该标签对学生模型中的不同网络进行训练,进而得到压缩后的模型。基于此方法解决了针对三维目标的实例分割模型的压缩,有效降低了实例分割模型所需存储空间和运算资源,同时降低了模型压缩过程中的精度损失。

根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图6示意性示出了根据本公开实施例的适于实现点云实例分割模型的训练方法的电子设备600的框图。图6示出的电子设备600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。系统600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的点云实例分割模型的训练方法。

在该计算机程序被处理器601执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

需要说明的是,本公开实施例的点云实例分割模型的训练方法和装置可用于人工智能领域,具体可应用的领域包括无人驾驶技术领域、AR技术领域、无人机技术领域等;此外,本公开实施例的方法和装置的应用领域不做限定,也可用于除人工智能领域之外的任意领域。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

相关技术
  • 点云实例分割模型的训练方法、装置、电子设备和介质
  • 点云实例分割方法和装置、电子设备和存储介质
技术分类

06120112898972