点云分类方法和装置与流程

文档序号:21464796发布日期:2020-07-14 16:49阅读:800来源:国知局
点云分类方法和装置与流程

本申请实施例涉及计算机技术领域,具体涉及点云分类方法和装置。



背景技术:

三维点云语义分割技术可以自动地对已获取到的三维点云场景数据进行解析,通过点与点之间的空间位置信息、空间结构信息、颜色信息等,判断每个点的类别,进而分割出场景中的不同对象。三维点云语义分割技术的应用领域十分广泛,主要应用在城市级测绘、自动驾驶、场景导航、虚拟现实、增强现实等领域。

由于点云由稀疏且无序的点组成,传统的卷积神经网络不适用于点云的特征提取。针对这个问题,研究人员提出了以下三种基于深度学习的解决方案,包括基于多视角投影、体素卷积,以及直接作用于点云的深度学习框架。

针对点云稀疏且无序的特点,一种做法是对点云进行转化,可以将点云转化为规则的三维体素或者二维图像。在基于体素卷积的点云深度学习方法中,体素的大小会影响到最终的分割结果。要想获得一个好的分割结果,体素网格不可以过小。然而随着体素网格的变小,该方法的计算复杂度不断上升。基于多视角投影的点云深度学习方法用二维图像来表示三维点云,因此很容易造成三维空间结构信息的损失。

另一种做法是直接作用于点云的深度学习方法。由于该方法可以解决转化过程引起的信息丢失问题,因此该方法是研究热点,但该方法目前仍然存在局限性。该方法通过下采样来减少点的数量,构造出一个层级结构来提取点云的局部信息与全局信息。然而该操作容易引起采样点分布的不均匀问题,采样点中几乎没有小目标的点,大目标的点占据了很大一部分。因此,小目标容易受到大目标的影响。



技术实现要素:

本申请实施例的目的在于提出了一种改进的点云分类方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请实施例提供了一种点云分类方法,该方法包括:获取初始点云数据;基于预设的第一下采样率,从初始点云数据中随机提取第一点云数据;基于预设的第二下采样率,从第一点云数据中随机提取第二点云数据;将第一点云数据和第二点云数据分别输入预先训练的空间聚合网络,得到第一特征数据和第二特征数据;从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据;将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息。

在一些实施例中,空间聚合网络用于执行如下步骤:基于第一点云数据和第二点云数据分别进行预设数量次采样,得到预设数量组第一采样点云数据和预设数量组第二采样点云数据;对于每组采样点云数据中的每个采样点,确定该采样点的近邻点集合;对近邻点集合按照预设方向进行特征聚合,得到该采样点的聚合特征数据;对所得到的第一点云数据和第二点云数据分别对应的预设数量组聚合特征数据进行预设数量次反向映射,得到第一特征数据和第二特征数据。

在一些实施例中,确定该采样点的近邻点集合,包括:使用八邻域搜索算法确定该采样点所在的点云数据中的k个近邻点,并将以该采样点为圆心的球形区域分割为八个区域,其中,每个区域包括k/8个近邻点。

在一些实施例中,对近邻点集合按照预设方向进行特征聚合,得到该采样点的聚合特征数据,包括:确定近邻点集合中的每个近邻点的特征;使用卷积操作,将每个区域中的近邻点的特征进行聚合,获得该采样点的八个区域的特征,其中,八个区域的特征按照预设方向排列;使用卷积操作,将八个区域的特征按照第一方向进行聚合,得到四个区域的特征;使用卷积操作,将四个区域的特征按照第二方向进行聚合,得到两个区域的特征;使用卷积操作,将两个区域的特征按照第三方向进行聚合,得到一个区域的特征;将所得到的七个区域的特征合并在一起得到该采样点的聚合特征数据。

在一些实施例中,对所得到的第一点云数据和第二点云数据分别对应的预设数量组聚合特征数据进行预设数量次反向映射,得到第一特征数据和第二特征数据,包括:对于第一点云数据,执行如下反向映射步骤:基于后一组采样点云数据中的点与上一组采样点云数据中的点之间的距离,确定映射权重,并基于映射权重,将后一组采样点云数据对应的聚合特征数据映射到上一组采样点云数据对应的聚合特征数据,得到上一组采样点云数据对应的新的聚合特征数据;将最后一次生成的聚合特征数据映射到第一点云数据对应的特征数据,得到第一特征数据;对于第二点云数据,执行反向映射步骤,并将最后一次生成的聚合特征数据映射到第二点云数据对应的特征数据,得到第二特征数据。

在一些实施例中,点云分类网络用于利用第一点云数据和第二点云数据,生成第一点云数据中的每个点的第一类别分数和第二点云数据中的每个点的第二类别分数,以及利用提取的特征数据,得到第二点云数据中的每个点的第三类别分数,以及利用第三特征数据,得到第二点云数据中的每个点的第四类别分数;以及空间聚合网络和点云分类网络基于如下步骤训练得到:获取训练样本,其中,训练样本包括样本点云数据和预先对样本点云数据中的每个点进行标注的类别标签;基于第一下采样率,从训练样本包括的样本点云数据中随机提取第一样本点云数据;基于第二下采样率,从所得到第一样本点云数据中随机提取第二样本点云数据;基于点云分类网络输出的第一类别分数、第二类别分数、第三类别分数和第四类别分数,以及第一样本点云数据中的每个点的类别标签和第二样本点云数据中的每个点的类别标签,训练得到空间聚合网络和点云分类网络。

第二方面,本申请实施例提供了一种点云分类装置,该装置包括:获取模块,用于获取初始点云数据;第一提取模块,用于基于预设的第一下采样率,从初始点云数据中随机提取第一点云数据;第二提取模块,用于基于预设的第二下采样率,从第一点云数据中随机提取第二点云数据;生成模块,用于将第一点云数据和第二点云数据分别输入预先训练的空间聚合网络,得到第一特征数据和第二特征数据;聚合模块,用于从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据;分类模块,用于将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息。

在一些实施例中,空间聚合网络用于执行如下步骤:基于第一点云数据和第二点云数据分别进行预设数量次采样,得到预设数量组第一采样点云数据和预设数量组第二采样点云数据;对于每组采样点云数据中的每个采样点,确定该采样点的近邻点集合;对近邻点集合按照预设方向进行特征聚合,得到该采样点的聚合特征数据;对所得到的第一点云数据和第二点云数据分别对应的预设数量组聚合特征数据进行预设数量次反向映射,得到第一特征数据和第二特征数据。

第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。

本申请实施例提供的点云分类方法和装置,通过对初始点云数据进行两次随机下采样得到第一点云数据和第二点云数据,然后利用预先训练的空间聚合网络,得到第一特征数据和第二特征数据,再从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据,最后将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息,从而实现了对点云数据进行不同密度的均匀采样,利用类似金字塔结构的方式提取各个密度下的点云的特征,提高了提取特征的丰富性,通过使用这些特征提高了对点云进行分类的准确性,由于采样的点既可以覆盖大目标,又可以覆盖小目标,因此可以提高对点云进行小目标分割的性能。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的点云分类方法的一个实施例的流程图;

图3是根据本申请的点云分类方法的一个示例性示意图;

图4是根据本申请的点云分类方法的又一个实施例的流程图;

图5是根据本申请的点云分类装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请实施例的点云分类方法的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如三维模型应用、拍摄类应用等。

终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。

服务器103可以是提供各种服务的服务器,例如对终端设备101上传的点云数据进行处理的点云处理服务器。点云处理服务器可以对接收的初始点云数据进行处理,并得到处理结果(例如点云的类别信息)。

需要说明的是,本申请实施例所提供的点云分类方法可以由终端设备101或服务器103执行,相应地,点云分类装置可以设置于终端设备101或服务器103中。

应该理解,图1中的数据服务器、网络和主服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、中间设备和服务器。在点云数据不需要远程获取的情况下,上述系统架构可以不包括网络,只包括服务器或终端设备。

继续参考图2,其示出了根据本申请的应点云分类方法的一个实施例的流程200。该方法包括以下步骤:

步骤201,获取初始点云数据。

在本实施例中,点云分类方法的执行主体(例如图1所示的终端设备或服务器)可以从本地或从远程获取初始点云数据。其中,初始点云数据可以是利用激光雷达等用于得到点云数据的设备,对某个三维空间进行拍摄得到的数据。通常,初始点云数据包括大量三维空间中的点的坐标和特征数据,特征数据可以用于表征点所在的位置的颜色、反射强度等。

步骤202,基于预设的第一下采样率,从初始点云数据中随机提取第一点云数据。

在本实施例中,上述执行主体可以基于预设的第一下采样率,从初始点云数据中随机提取第一点云数据。具体地,设初始点云数据指示的点的集合为p,对应的特征数据为f,初始点云数据包含的点的数量为n,第一下采样率为s1,可以在[0,n)之间随机生成n×s1个整数,这些数之间不包含重复的数,记为index1。以index1为p与f的下标索引,生成一个新的点云p1和对应的特征f1,其中,f1包括p1中的每个点的特征。p1和f1即为第一点云数据。

步骤203,基于预设的第二下采样率,从第一点云数据中随机提取第二点云数据。

在本实施例中,上述执行主体可以基于预设的第二下采样率,从第一点云数据中随机提取第二点云数据。具体地,上述执行主体可以在[0,n×s1)之间随机生成n×s1×s2个整数,这些数之间不包含重复的数,记为index2。以index2为p1和f1的下标索引,生成一个新的点云p2和对应的特征f2,其中,f2包括p2中的每个点的特征。p2和f2即为第二点云数据。

步骤204,将第一点云数据和第二点云数据分别输入预先训练的空间聚合网络,得到第一特征数据和第二特征数据。

在本实施例中,上述执行主体可以将第一点云数据和第二点云数据分别输入预先训练的空间聚合网络,得到第一特征数据和第二特征数据。这里,第一特征数据和第二特征数据分别记为新f1和新f2。其中,空间聚合网络用于表征点云数据与特征数据的对应关系。本实施例中,初始点云数据、第一点云数据和第二点云数据的点密度逐渐降低,因此,这里可以被称为金字塔结构的点云数据。

上述空间聚合网络可以包括各种结构的神经网络。该网络可以分别对第一点云数据和第二点云数据经过卷积层、池化层等的处理后,得到第一点云数据对应的第一特征数据和第二点云数据对应的第二特征数据。空间聚合网络可以是预先利用机器学习方法,使用训练样本训练得到的。

步骤205,从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据。

在本实施例中,上述执行主体可以从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据。

具体地,上述执行主体可以将上述index2作为下标索引,从步骤204中得到的第一特征数据中提取特征数据f2′,由于第二点云数据p2也是以index2作为下标索引从第一点云数据p1中提取的,因此,f2′与p2对应。然后,上述执行主体可以将f2′与步骤204中的新f2聚合为第三特征数据f3。作为示例,假设f2′中的每个特征的维度为d1,新f2中的每个特征的维度为d2,则聚合后的每个特征的维度为d1+d2。

步骤206,将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息。

在本实施例中,上述执行主体可以将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息。其中,点云分类网络用于表征特征数据与类别信息的对应关系。

点云分类网络可以包括各种结构的神经网络,该网络可以包括卷积层、池化层、全连接层、分类器等。点云分类网络可以是预先利用机器学习方法,使用训练样本训练得到的。

在本实施例的一些可选的实现方式中,上述步骤204中的空间聚合网络用于执行如下步骤:

步骤2041,基于第一点云数据和第二点云数据分别进行预设数量次采样,得到预设数量组第一采样点云数据和预设数量组第二采样点云数据。

具体地,假设预设数量为4,针对第一点云数据p1,第一次对第一点云数据的p1和f1进行采样,得到第一组第一采样点云数据p10和f10。第二次对p10和f10进行采样,得到第二组第一采样点云数据p11和f11。第二次对p11和f11进行采样,得到第三组第一采样点云数据p12和f12。第四次对p12和f12进行采样,得到第四组第一采样点云数据p13和f13。

利用同样的方法,对第二点云数据进行采用,得到4组第二采用点云数据:p20和f20、p21和f21、p22和f22、p23和f23。

通常,本步骤中的采用方式可以为各种方式,例如,可以使用最远点采样。

步骤2042,对于每组采样点云数据中的每个采样点,确定该采样点的近邻点集合;对近邻点集合按照预设方向进行特征聚合,得到该采样点的聚合特征数据。

其中,近邻点集合是距离该采样点的距离在一定范围内的点的集合。作为示例,可以按照x坐标的顺序排列近邻点集合对应的特征,对这些特征进行卷积,得到第一聚合特征数据,再按照同样的方法,基于y坐标对第一聚合特征数据进行卷积,得到第二聚合特征数据,基于z坐标对第二聚合特征数据进行卷积,得到第三聚合特征数据。上述第一聚合特征数据、第二聚合特征数据、第三聚合特征数据即为本步骤得到的该采样点的聚合特征数据。

应当理解,步骤2042是对每组采样点云数据中的每个采样点进行操作,通过多次执行本步骤,可以得到每组采样点云数据对应的聚合特征数据。继续上述步骤2041中的示例,可以得到第一点云数据对应的四组聚合特征数据和第二点云数据对应的四组聚合特征数据。

步骤2043,对所得到的第一点云数据和第二点云数据分别对应的预设数量组聚合特征数据进行预设数量次反向映射,得到第一特征数据和第二特征数据。

作为示例,对于第一点云数据p1对应四组聚合特征数据,假设为a、b、c、d,可以利用预设的映射算法(例如加权求和)将d映射到c,得到c′;将c′映射到b,得到b′;将b′映射到a,得到a′;将a′映射到f1,得到p1对应的第一特征数据。对于第二点云数据p2对应四组聚合特征数据,采用同样的方法,得到p2对应的第二特征数据。

通过步骤2041-步骤2043,对每个采样点的近邻点集合按照一定方向进行特征聚合,可以得到各个采样点周围的特征,即可以体现各个点与其周围点之间的关系,利用这些特征可以提高生成第一特征数据和第二特征数据的准确性,从而进一步提高点云分类的准确性。

在本实施例的一些可选的实现方式中,上述步骤2042中,上述执行主体可以按照如下方式确定该采样点的近邻点集合:

使用八邻域搜索算法确定该采样点所在的点云数据中的k个近邻点,并将以该采样点为圆心的球形区域分割为八个区域,其中,每个区域包括k/8个近邻点。上述k为预设整数。该采样点所在的点云数据可以为第一点云数据p1或第二点云数据p2。本实现方式采用八邻域搜索算法,可以快速、可靠地从第一点云数据和第二点云数据中搜索出近邻点集合,提高点云分类的效率。

在本实施例的一些可选的实现方式中,上述步骤2042中,基于上述实现方式针对每个采样点对应的八个区域,上述执行主体可以按照如下步骤得到采样点的聚合特征数据:

步骤20421,确定近邻点集合中的每个近邻点的特征。

作为示例,可以对各个近邻点的原始特征,使用卷积操作或其他方式(例如加权),确定近邻点集合中的每个近邻点的特征。

步骤20422,使用卷积操作,将每个区域中的近邻点的特征进行聚合,获得该采样点的八个区域的特征。

其中,八个区域的特征按照预设方向排列。作为示例,八个区域的特征排列方式固定可以为,首先按照z轴进行排列,即以该采样点为圆心,位于z轴正方向上的四个区域的特征排列在前四位,这里称为第一组,剩下四个区域的特征排列在后四位,这里称为第二组。然后,再按照y轴进行排列,即对第一组和第二组分别将位于y轴正方向上的区域的特征排列在前两位,将位于y轴负方向上的区域的特征排列在后两位,这里假设排列后得到四个小组。最后按照x轴进行排列,即对每个小组中的两个特征,将位于x轴正方向上的区域的特征排列在前,将位于x轴负方向上的区域的特征排列在后。

步骤20423,使用卷积操作,将八个区域的特征按照第一方向进行聚合,得到四个区域的特征。

作为示例,假设第一方向为x轴方向,使用一个1×2大小的卷积核,对八个特征进行卷积(例如八个特征组成行数为8的矩阵)。八个特征最后按照x轴进行排列。因此卷积完毕后,可以提取采样点x方向上的特征。

步骤20424,使用卷积操作,将四个区域的特征按照第二方向进行聚合,得到两个区域的特征。

作为示例,假设第二方向为y轴方向,利用与步骤20423同样的方法,可以得到聚合后的两个区域的特征。

步骤20425,使用卷积操作,将两个区域的特征按照第三方向进行聚合,得到一个区域的特征。

作为示例,假设第三方向为z轴方向,利用与步骤20423同样的方法,可以得到聚合后的一个区域的特征。

步骤20426,将所得到的七个区域的特征合并在一起得到该采样点的聚合特征数据。

具体地,可以使用多层感知机对这7个区域的特征中的每个特征进行全连接操作,提取各个区域更细节的信息。然后使用最大池化操作对所得到的全连接后的特征进行聚合。

通过步骤20421-步骤20426,可以对各个区域按照特定方向进行聚合,得到的聚合特征数据可以体现在特定方向上的特征,从而可以更精确地表征采样点周围的特征,有助于提高生成第一特征数据和第二特征数据的准确性,从而进一步提高点云分类的准确性。

在本实施例的一些可选的实现方式中,上述步骤2043可以如下执行:

步骤20431,对于第一点云数据,执行如下反向映射步骤:基于后一组采样点云数据中的点与上一组采样点云数据中的点之间的距离,确定映射权重,并基于映射权重,将后一组采样点云数据对应的聚合特征数据映射到上一组采样点云数据对应的聚合特征数据,得到上一组采样点云数据对应的新的聚合特征数据。

具体地,继续上述步骤2041中的示例,对于第一点云数据,最后一组采样点云数据包括p13和f13,按照下式,将p13的特征数据f13映射到p12:

其中,x表示p12中任意的一个点,xi为p13中的一个点。p取2,k取3。具体操作为选取p13中离x最近的3个点,将其特征进行基于距离(即d(x,xi))的加权(即wi(x)),得到聚合特征数据f'12。最后将f'12与f12进行合并为新的f12。

按照同样的方法,将p12的新特征f12映射到p11,将p11的新特征f11映射到p10。

步骤20432,将最后一次生成的聚合特征数据映射到第一点云数据对应的特征数据,得到第一特征数据。

具体地,继续上述示例,最后一次生成的聚合特征数据为f'10,将f'10与原f10进行合并为新的f10。将p10的新特征f10映射到p1。最后得到p1对应的第一特征数据f1。

步骤20433,对于第二点云数据,执行反向映射步骤,并将最后一次生成的聚合特征数据映射到第二点云数据对应的特征数据,得到第二特征数据。

具体地基于针对第一点云数据同样的方法,得到p2对应的第二特征数据f2。

参考图3,其示出了本申请实施例提供的点云分类方法的一个示例性示意图。其中,301为初始点云数据,大小为(n,3),其中,n为点的数量,3为通道数。302为基于index1采用得到的第一点云数据,大小为(n/k1,3),其中,1/k1为第一下采样率。303为基于index2采用得到的第二点云数据,大小为(n/k1/k2,3),其中,1/k2为第二下采样率。304为空间聚合网络,这里称为san(spatialaggregationnet)。第一点云数据和第二点云数据输入303,得到第一特征数据305和第二特征数据306。其中,305的大小为(n/k1,d1),306的大小为(n/k1/k2,d2)。然后,基于index2,从第一特征数据305中提取特征数据307,大小为(n/k1/k2,d1)。再将306和307聚合为第三特征数据308,大小为(n/k1/k2,d1+d2)。最后将第三特征数据308输入点云分类网络309,得到第二点云数据303中的每个点对应的类别信息310。这里,类别信息的大小为(n/k1/k2,k),其中,k为点云的类别数量,类别信息中的元素表示某个点属于某个类别的得分。

本申请的上述实施例提供的方法,通过对初始点云数据进行两次随机下采样得到第一点云数据和第二点云数据,然后利用预先训练的空间聚合网络,得到第一特征数据和第二特征数据,再从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据,最后将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息,从而实现了对点云数据进行不同密度的均匀采样,利用类似金字塔结构的方式提取各个密度下的点云的特征,提高了提取特征的丰富性,通过使用这些特征提高了对点云进行分类的准确性,由于采样的点既可以覆盖大目标,又可以覆盖小目标,因此可以提高对点云进行小目标分割的性能。

进一步参考图4,其示出了根据本申请的点云分类方法的又一个实施例的流程400。在本实施例中,点云分类网络用于利用第一点云数据和第二点云数据,生成第一点云数据中的每个点的第一类别分数(记为pre1)和第二点云数据中的每个点的第二类别分数(记为pre2),以及利用提取的特征数据,得到第二点云数据中的每个点的第三类别分数(记为pre2′),以及利用第三特征数据,得到第二点云数据中的每个点的第四类别分数(记为pre)。

如图4所示,空间聚合网络和点云分类网络基于如下步骤训练得到:

步骤401,获取训练样本。

在本实施例中,训练样本包括样本点云数据和预先对样本点云数据中的每个点进行标注的类别标签。

步骤402,基于第一下采样率,从训练样本包括的样本点云数据中随机提取第一样本点云数据。

在本实施例中,步骤402采用与图2对应实施例中的步骤202同样的方法,这里不再赘述。

步骤403,基于第二下采样率,从所得到第一样本点云数据中随机提取第二样本点云数据。

在本实施例中,步骤403采用与图2对应实施例中的步骤203同样的方法,这里不再赘述。

步骤404,基于点云分类网络输出的第一类别分数、第二类别分数、第三类别分数和第四类别分数,以及第一样本点云数据中的每个点的类别标签和第二样本点云数据中的每个点的类别标签,训练得到空间聚合网络和点云分类网络。

在本实施例中,第一样本点云数据和第二样本点云数据来自于步骤401中获取的训练样本包括的样本点云数据,而样本点云数据具有对应的类别标签,因此,第一样本点云数据中的每个点和第二样本点云数据中的每个点同样具有对应的类别标签。假设第一样本点云数据中的每个点的类别标签为label1,第二样本点云数据中的每个点的类别标签为label2,可以按照如下损失函数,对空间聚合网络和点云分类网络进行训练:

其中,α1、α2、α3与α3为四个超参数,label为p对应的标签,label1为p1对应的标签,label2为p2对应的标签,lseg为交叉熵函数。该公式由四个部分组成,第一部分与第二部分是为了计算点云金字塔的第一层与第二层分割结果的准确度,第三部分是计算结合点云金字塔第一层与第二层的分割结果后,点云金字塔最终的分割准确度。

第四部分是计算点云金字塔第一层与第二层对于点云p2的分割结果。pre2!=label2表示pre2不等于label2,pre2'!=label2表示pre'2不等于label2。期望这两个网络对于同一个点云的分割结果是一致且正确的。具体操作为:将两个网络的分割结果与标签对比,对于p2的每个点,若两个网络都分割正确,即pre2!=label2和pre2'!=label2为0,第四部分为0,不进行惩罚;若只有一个网络分割错误,即pre2!=label2和pre2'!=label2中一个为0,一个为1,则第四部分记为0.5;若两个网络都分割错误,则记为1。最后将所有点的结果之和除以p2中点的数量。

上述执行主体或其他电子设备可以利用机器学习方法,将步骤402和步骤403得到的第一样本点云数据和第二样本点云数据作为输入,将与输入的第一样本点云数据和第二样本点云数据对应的类别标签作为期望输出,对初始模型(例如包括卷积神经网络、分类器等)进行训练,针对每次训练输入的第一样本点云数据和第二样本点云数据,可以得到实际输出。其中,实际输出是初始模型实际输出的数据,用于表征类别标签。然后,可以采用梯度下降法和反向传播法,基于实际输出和期望输出,调整初始模型的参数,将每次调整参数后得到的模型作为下次训练的初始模型,并在满足预设的训练结束条件的情况下,结束训练,从而训练得到空间聚合网络和点云分类网络。

需要说明的是,训练时采用的训练样本的数量为多个,即训练次数为多次。这里预设的训练结束条件可以包括但不限于以下至少一项:训练时间超过预设时长;训练次数超过预设次数;利用上述损失函数损失值收敛。

还需要说明的是,生成上述pre1、pre2、pre2′、pre的网络可以是分立的多个网络,也可以是集成到一起的网络。

图4提供的方法,通过设置包括四个部分的损失函数,可以对点云金字塔的各个部分进行优化,有助于提高空间聚合网络和点云分类网络的分类准确性。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种点云分类装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的点云分类装置500包括:获取模块501,用于获取初始点云数据;第一提取模块502,用于基于预设的第一下采样率,从初始点云数据中随机提取第一点云数据;第二提取模块503,用于基于预设的第二下采样率,从第一点云数据中随机提取第二点云数据;生成模块504,用于将第一点云数据和第二点云数据分别输入预先训练的空间聚合网络,得到第一特征数据和第二特征数据;聚合模块505,用于从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据;分类模块506,用于将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息。

在本实施例中,获取模块501可以从本地或从远程获取初始点云数据。其中,初始点云数据可以是利用激光雷达等用于得到点云数据的设备,对某个三维空间进行拍摄得到的数据。通常,初始点云数据包括大量三维空间中的点的坐标和特征数据,特征数据可以用于表征点所在的位置的颜色、反射强度等。

在本实施例中,第一提取模块502可以基于预设的第一下采样率,从初始点云数据中随机提取第一点云数据。具体地,设初始点云数据指示的点的集合为p,对应的特征数据为f,初始点云数据包含的点的数量为n,第一下采样率为s1,可以在[0,n)之间随机生成n×s1个整数,这些数之间不包含重复的数,记为index1。以index1为p与f的下标索引,生成一个新的点云p1和对应的特征f1,其中,f1包括p1中的每个点的特征。p1和f1即为第一点云数据。

在本实施例中,第二提取模块503可以基于预设的第二下采样率,从第一点云数据中随机提取第二点云数据。具体地,第二提取模块503可以在[0,n×s1)之间随机生成n×s1×s2个整数,这些数之间不包含重复的数,记为index2。以index2为p1和f1的下标索引,生成一个新的点云p2和对应的特征f2,其中,f2包括p2中的每个点的特征。p2和f2即为第二点云数据。

在本实施例中,生成模块504可以将第一点云数据和第二点云数据分别输入预先训练的空间聚合网络,得到第一特征数据和第二特征数据。这里,第一特征数据和第二特征数据分别记为新f1和新f2。其中,空间聚合网络用于表征点云数据与特征数据的对应关系。本实施例中,初始点云数据、第一点云数据和第二点云数据的点密度逐渐降低,因此,这里可以被称为金字塔结构的点云数据。

上述空间聚合网络可以包括各种结构的神经网络。该网络可以分别对第一点云数据和第二点云数据经过卷积层、池化层等的处理后,得到第一点云数据对应的第一特征数据和第二点云数据对应的第二特征数据。空间聚合网络可以是预先利用机器学习方法,使用训练样本训练得到的。

在本实施例中,聚合模块505可以从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据。

具体地,聚合模块505可以将上述index2作为下标索引,从生成模块504中得到的第一特征数据中提取特征数据f2′,由于第二点云数据p2也是以index2作为下标索引从第一点云数据p1中提取的,因此,f2′与p2对应。然后,聚合模块505可以将f2′与生成模块504中的新f2聚合为第三特征数据f3。作为示例,假设f2′中的每个特征的维度为d1,新f2中的每个特征的维度为d2,则聚合后的每个特征的维度为d1+d2。

在本实施例中,分类模块506可以将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息。其中,点云分类网络用于表征特征数据与类别信息的对应关系。

点云分类网络可以包括各种结构的神经网络,该网络可以包括卷积层、池化层、全连接层、分类器等。点云分类网络可以是预先利用机器学习方法,使用训练样本训练得到的。

在本实施例的一些可选的实现方式中,空间聚合网络用于执行如下步骤:基于第一点云数据和第二点云数据分别进行预设数量次采样,得到预设数量组第一采样点云数据和预设数量组第二采样点云数据;对于每组采样点云数据中的每个采样点,确定该采样点的近邻点集合;对近邻点集合按照预设方向进行特征聚合,得到该采样点的聚合特征数据;对所得到的第一点云数据和第二点云数据分别对应的预设数量组聚合特征数据进行预设数量次反向映射,得到第一特征数据和第二特征数据。

在本实施例的一些可选的实现方式中,确定该采样点的近邻点集合,包括:使用八邻域搜索算法确定该采样点所在的点云数据中的k个近邻点,并将以该采样点为圆心的球形区域分割为八个区域,其中,每个区域包括k/8个近邻点。

在本实施例的一些可选的实现方式中,对近邻点集合按照预设方向进行特征聚合,得到该采样点的聚合特征数据,包括:确定近邻点集合中的每个近邻点的特征;使用卷积操作,将每个区域中的近邻点的特征进行聚合,获得该采样点的八个区域的特征,其中,八个区域的特征按照预设方向排列;使用卷积操作,将八个区域的特征按照第一方向进行聚合,得到四个区域的特征;使用卷积操作,将四个区域的特征按照第二方向进行聚合,得到两个区域的特征;使用卷积操作,将两个区域的特征按照第三方向进行聚合,得到一个区域的特征;将所得到的七个区域的特征合并在一起得到该采样点的聚合特征数据。

在本实施例的一些可选的实现方式中,对所得到的第一点云数据和第二点云数据分别对应的预设数量组聚合特征数据进行预设数量次反向映射,得到第一特征数据和第二特征数据,包括:对于第一点云数据,执行如下反向映射步骤:基于后一组采样点云数据中的点与上一组采样点云数据中的点之间的距离,确定映射权重,并基于映射权重,将后一组采样点云数据对应的聚合特征数据映射到上一组采样点云数据对应的聚合特征数据,得到上一组采样点云数据对应的新的聚合特征数据;将最后一次生成的聚合特征数据映射到第一点云数据对应的特征数据,得到第一特征数据;对于第二点云数据,执行反向映射步骤,并将最后一次生成的聚合特征数据映射到第二点云数据对应的特征数据,得到第二特征数据。

在本实施例的一些可选的实现方式中,点云分类网络用于利用第一点云数据和第二点云数据,生成第一点云数据中的每个点的第一类别分数和第二点云数据中的每个点的第二类别分数,以及利用提取的特征数据,得到第二点云数据中的每个点的第三类别分数,以及利用第三特征数据,得到第二点云数据中的每个点的第四类别分数;以及空间聚合网络和点云分类网络基于如下步骤训练得到:获取训练样本,其中,训练样本包括样本点云数据和预先对样本点云数据中的每个点进行标注的类别标签;基于第一下采样率,从训练样本包括的样本点云数据中随机提取第一样本点云数据;基于第二下采样率,从所得到第一样本点云数据中随机提取第二样本点云数据;基于点云分类网络输出的第一类别分数、第二类别分数、第三类别分数和第四类别分数,以及第一样本点云数据中的每个点的类别标签和第二样本点云数据中的每个点的类别标签,训练得到空间聚合网络和点云分类网络。

本申请的上述实施例提供的装置,通过对初始点云数据进行两次随机下采样得到第一点云数据和第二点云数据,然后利用预先训练的空间聚合网络,得到第一特征数据和第二特征数据,再从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据,最后将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息,从而实现了对点云数据进行不同密度的均匀采样,利用类似金字塔结构的方式提取各个密度下的点云的特征,提高了提取特征的丰富性,通过使用这些特征提高了对点云进行分类的准确性,由于采样的点既可以覆盖大目标,又可以覆盖小目标,因此可以提高对点云进行小目标分割的性能。

下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的方法中限定的上述功能。

需要说明的是,本申请所述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、第一提取模块、第二提取模块、生成模块、聚合模块和分类模块。其中,这些模块的名称在某种情况下并不构成对该单元本身的限定,例如,获取模块还可以被描述为“用于获取初始点云数据的模块”。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取初始点云数据;基于预设的第一下采样率,从初始点云数据中随机提取第一点云数据;基于预设的第二下采样率,从第一点云数据中随机提取第二点云数据;将第一点云数据和第二点云数据分别输入预先训练的空间聚合网络,得到第一特征数据和第二特征数据;从第一特征数据中提取与第二点云数据对应的特征数据,并将提取的特征数据和第二特征数据聚合为第三特征数据;将第三特征数据输入预先训练的点云分类网络,得到第二点云数据中的每个点对应的类别信息。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1