一种基于图卷积神经网络的三维点云自动分类方法与流程

    专利2022-07-08  191


    本发明中设计基于图卷积神经网络的三维点云自动分类方法,通过构造基于图卷积的深度学习网络,在服务型机器人抓取三维物体过程中对复杂的物体实现自动分类识别,便于根据类别信息确定抓取位置进行抓取。本发明涉及计算机视觉的三维感知和机器人导航技术领域,尤其涉及三维点云的自动分类识别的方法。



    背景技术:

    随着计算机视觉和人工智能等理论的发展,三维点云在汽车自动驾驶、机器人感知和导航以及虚拟/增强现实等领域中被广泛应用并发挥着重要作用。尤其是在机器人感知领域,机器人如果通过对自带的三维传感器扫描得到的室内三维点云数据进行深度学习训练能检测出物体并得到不同物体的分类类别,不仅有助于机器人选取合适的导航策略躲避障碍物,而且有助于服务型机器人在用户的指令下正确识别并取/送用户需要的物体,从而大大改善行动不便的老年人以及残障人士的生活质量。然而,由于点云具有数据量大、形状不规则、密度不均匀等特点,三维点云的自动分类一直是一个极具挑战性的难题。

    由于三维点云的不规则和无序性,传统的卷积神经网络难以直接处理,所以早期基于深度学习的研究工作是将三维点云处理为适用于标准空间卷积的形式,如常规的体素网格或多视图。然而,数据格式转换通常会造成信息丢失,最终导致3d分类性能的下降。此外,采用体素网格或多视图的方法会产生昂贵的计算开销,大大增加了算法的空间复杂度和时间复杂度,因此这类方法不太适合大数据量、大场景点云数据的自动分类。直到2017年,qi等提出了直接在非结构化的原始点云上进行分类的点云神经网络pointnet(qi,c.r.;su,h.;mo,k.;guibas,l.j.pointnet:deeplearningonpointsetsfor3dclassificationandsegmentation.inproceedingsofieeeconferenceoncomputervisionandpatternrecognition,2017,134(1):77-85.)。它的基本思想是通过共享的多层感知(multi-layer-perception,简记为mlp)网络学习每个点的特征,然后将所有单独点的特征聚合为全局点云表示,同时采用对称函数(例如最大池化)保证点云顺序的置换不变,最后将聚合后的特征通过全连接层输出一个一维矩阵,矩阵的每一分量对应为点云分类为该类别的分类得分,取具有最高得分的类别作为输入点云的类别。然而,该网络忽视了点与点之间的几何关系,因此不能获取由相邻点构成的局部细粒度特征信息,分类正确率仍有待提高。

    本发明提出一种在捕捉局部细粒度特征信息的同时兼顾上下文语义的端到端的图神经网络用于点云的自动分类任务,帮助服务型机器人在抓取物体过程中正确识别物体类别以及躲避障碍物。利用图卷积可以保持点云置换不变性的特性,构造图卷积神经网络捕获点云的局部细粒度特征,从而弥补了现有方法在局部点云特征提取上的不足。通过对数据采集、数据预处理、局部特征提取以及全局特征提取等模块的开发集成,提出了一种基于图卷积神经网络的三维点云分类方法,通过增强网络对局部区域细粒度特征的提取能力提高了分类的正确率。



    技术实现要素:

    本发明提出了基于图卷积神经网络的三维点云分类方法,设计了图卷积神经网络处理在度量空间采集的点云,帮助服务型机器人更好地识别物体类别以及躲避障碍物。具体来说,首先利用预处理模块实现数据增强,然后构造局部特征提取模块和全局特征提取模块分别求取具有局部细粒度信息的局部特征以及具有上下文语义信息的全局特征,最后通过聚合函数合并局部特征和全局特征表示点云的最终特征。将聚合后的特征通过全连接层输出一个一维矩阵,矩阵的每一分量对应为点云分类为该类别的分类得分,取具有最高得分的类别作为输入点云的类别。本发明解决了三维点云处理过程中分类精度不高的问题,实现了服务型机器人在抓取物体过程中准确识别物体类别的功能。

    本发明采用了如下的技术方案及实现步骤:

    一种基于图卷积神经网络的三维点云自动分类方法,所述方法包括:

    步骤1:点云数据预处理;

    步骤2:构建三维点云自动分类的图卷积神经网络;

    步骤3:训练所构建的网络;

    步骤4:利用训练完成的点云自动分类网络进行分类测试。

    所述的数据预处理,具体包括如下操作:

    所述数据预处理是指对3d激光雷达、扫描仪等设备获取的点云数据或者已有公开数据集进行预处理,具体过程为:将采集到的点云数据归一化到单位球内,随机抽取若干个点作为其采样样本;另外为了提高网络的泛化能力,本发明采用随机旋转、随机缩放、随机抖动以及添加高斯噪声的方式实现数据扩增。

    所述的构建三维点云自动分类的图卷积神经网络,具体包括如下模块:

    模块1:空间变换矩阵模块

    所述空间变换矩阵模块是指通过学习点云自身的位姿信息得到一个最有利于网络进行分类的d×d变换矩阵,其输入是经过预处理的三维点云b×n×d(其中b、n、d分别表示输入点云的批处理大小、点云个数和特征维度),输出是经过空间变换得到的点云,空间变换矩阵模块中所涉及到的参数是通过训练学习得到。该模块利用卷积操作对输入点云进行三次下采样,然后利用最大池化层和全连接层对输入特征进行上采样操作,最后加入权重和偏置量。所述的空间变换矩阵具体计算步骤如下:

    t=ω·γ(g(h(x1),h(x2)...h(xn))) b#(1)

    其中:{x1,x2,...,xn}表示三维点云,γ和h表示多层感知器,g表示对称函数,ω和b分别表示权重和偏置量。经过上述操作,所述网络的输出为尺寸为b×d×d的三维点云{x′1,x′2,...,x′n}。

    模块2:局部特征提取模块

    所述局部特征提取模块是用于对点云中的点构造局部特征的图神经网络,其输入是经过空间变换的三维点云,输出是聚合了k个邻近点特征的局部特征。具体操作步骤如下:利用有向图g=(v,e)来表示点云,有向图中的顶点和边分别用v={1,2,...,n}和表示。点云中的每一个点与其邻近的点的局部信息可用其k近邻图(k-nearestneighborgraph,简记为knn图)来表示,则整个点云可用图g来表示,通过构造局部邻域图和在连接相邻点对的边上应用图卷积操作来计算局部特征,定义如下:

    eij=relu(θ·(x′j-x′i) φ·x′i)#(2)

    其中:x′i是当前所关注的三维点云的一个点,x′j表示点x′i的近邻点,θ和φ表示权重,relu表示激活函数,eij表示局部特征。最后,我们通过对每个顶点所有相关联的边应用对称函数(取最大值)来定义局部图卷积操作,因此第i个顶点的局部图卷积的输出为:

    其中:i表示中心点x′i的下标,j表示中心点x′i的k近邻点的下标,ε表示以x′i为中心的knn图的局部点云对应点的下标集合。经过上述操作,所述网络的输出尺寸为b×n×k×d,其中k表示邻近点的个数。

    模块3:全局特征提取模块

    所述全局特征提取模块由knn图和3d卷积层组成,用于获取点云的全局特征,其输入是经过空间变换的三维点云,输出是表示整个点云的全局特征;所述的全局特征提取模块提取全局特征的过程如下:首先利用knn图将输入点云分成n组,其次采用两层三维卷积操作将它们映射成n×64维的特征,然后采用两层二维卷积函数将得到的n×64维的特征映射到n×128维,随后将各层卷积操作得到的特征合并,最后再通过二维卷积操作获得全局特征。所述网络的输出尺寸为b×n×d。

    模块4:相关层模块

    所述的相关层模块指采用聚合函数合并局部特征和全局特征,用于获取局部细粒度特征和具备上下文语义信息的点云特征。

    模块5:输出模块

    输出模块主要由全连接层组成,用于整合卷积层中具有类别区分性的特征信息,为了提高网络的性能,全连接层中每个神经元采用relu激活函数。全连接层的定义如下:

    z=relu(w·m c)#(4)

    其中relu为激活函数,m是该层的输入,w是该层的权值矩阵,c为该层的偏置量,z为该层的输出。

    所述训练网络模型,具体包括如下步骤:

    步骤1:本发明将服务机器人利用3d激光雷达、扫描仪等设备获取的点云数据或者已有公开数据集中的每一个点云数据归一化到单位球内,然后随机抽取1024个点作为其采样样本,在点云数据的每一次迭代训练时,随机打乱训练数据的排列顺序,同时,为了增加训练的数据量,提高网络的泛化能力,本发明采用随机旋转、[0.8,1.2]尺度范围内随机缩放、区间[-0.1,0.1]内随机抖动以及添加[0.01,0.05]高斯噪声的方式实现数据扩增。

    将经过预处理的训练数据集和对应的分类基准值作为输入,对构建的三维点云自动分类网络进行前向传播训练以学习该网络的参数,训练前对学习参数进行初始化,其中学习率的初始值设置为[0,0.1],批量归一化的动量为[0,1],最大迭代次数为[200,300],批处理大小为[8,32]。

    步骤2:计算基于交叉熵的损失代价函数值ly′:

    其中:yi指预测标签中第i个值,y′i指实际标签中第i个值,根据损失函数利用批量梯度下降法求解整个训练样本的全局最优解,同时采用adam优化器更新模型的权重和偏置项等学习参数,adam优化器可以让每个参数获得自适应的学习率,来达到优化质量和速度的双重提升。

    步骤3:重复步骤1和步骤2,不断迭代训练网络模型参数,以获得最优的三维点云自动分类网络模型。为了防止过拟合,在训练过程中采用dropout机制,使得模型在训练过程中随机让网络的某些节点权值为零,不参与训练,避免训练过程中出现过拟合的现象。

    最后利用训练完成的网络进行三维点云分类测试。与训练阶段不同,测试阶段只需要加载已经训练好的网络模型,不需要再次训练网络模型。

    有益效果:

    本发明提供一种基于图卷积神经网络的三维点云自动分类方法,便于服务型机器人在抓取三维物体时对复杂的物体实现自动分类识别。通过设计的空间变换矩阵模块、局部特征提取模块、全局特征提取模块、相关层模块以及输出模块,可端到端的实现三维点云的自动分类任务。本发明的三维点云自动分类网络在特征提取过程中不仅包括局部特征而且整合上下文语义信息,提高了网络的分类精度。实验数据表明,经过深度学习训练得到的网络模型,在给定的2468个三维点云测试数据下,应用本发明能够正确识别其中的2261个三维点云,准确率高达91.6%,比poinetnet高2.4%。

    附图说明

    图1是本发明提供的基于图卷积神经网络三维点云自动分类方法的流程图。

    图2是本发明提供的基于图卷积神经网络三维点云自动分类方法的网络结构图。

    图3是本发明提供的基于图卷积神经网络三维点云自动分类方法中局部特征提取模块的网络结构图。

    图4是本发明实施例中提供的modelnet40数据集中的点云数据。

    具体实施方式

    本发明的目的是提供一种基于图卷积神经网络的三维点云自动分类方法,用于服务型机器人抓取三维物体过程中对复杂的物体实现自动分类识别,便于根据类别信息确定抓取位置进行抓取,可端对端的完成网络的训练,无需任何后处理过程。本发明的图卷积神经网络的三维点云自动分类方法不仅可以提取局部细粒度特征而且可以整合上下文语义信息,显著的提高分类精度。

    下面将结合附图对本发明加以详细说明,应指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。

    图1是本发明提供的基于图卷积神经网络三维点云自动分类方法的流程图;图2是本发明提供的基于图卷积神经网络三维点云自动分类方法的网络结构图。图3是本发明提供的基于图卷积神经网络三维点云自动分类方法中局部特征提取模块的网络结构图。图4是本发明实施例中提供的modelnet40数据集中的点云数据。

    本发明提供的基于图卷积神经网络的三维点云自动分类方法具体包括:

    步骤1:数据预处理

    实施例中所述数据预处理是指对公开数据集modelnet40进行预处理,数据集如图4所示。针对每一个点云模型,随机抽取1024个点作为其采样样本,且每一个点云模型坐标预先被归一化至单位球区间[-1,1]内,通过随机旋转、[0.8,1.2]尺度范围内随机缩放、区间[-0.1,0.1]内随机抖动以及添加[0.01,0.05]高斯噪声的方式实现数据扩增。

    步骤2:构建三维点云自动分类网络

    本发明所构建三维点云自动分类的图卷积神经网络,具体包括空间变换矩阵模块、局部特征提取模块、全局特征提取模块、相关层模块以及输出模块。

    空间变换矩阵模块是指通过学习点云自身的位姿信息得到一个最有利于网络进行分类的3×3变换矩阵,其输入是经过预处理的三维点云b×n×d(其中b、n、d分别表示输入点云的批处理大小、点云个数和特征维度),输出是经过空间变换得到的点云,空间变换矩阵模块中所涉及到的参数是通过训练学习得到。该模块由卷积核为1×1,步长为1,输出大小为64,128,1024的卷积神经网络、最大池化层和输出大小为512,128的全连接层组成,除最后一层外,所有层都包括relu激活函数和bn层,最终网络的输出尺寸为16×3×3的三维点云。所述的空间变换矩阵具体计算如公式(1)所示。

    局部特征提取模块是用于对点云中的点构造局部特征的图神经网络,其输入是经过空间变换的三维点云,输出是聚合了20个邻近点特征的局部特征。具体操作步骤如下:利用有向图g=(v,e)来表示点云,有向图中的顶点和边分别用v={1,2,...,n}和表示。点云中的每一个点与其邻近的20个点的局部信息可用knn图来表示,则整个点云可用图g来表示。通过构造局部邻域图和在连接相邻点对的边上应用图卷积操作将3维点云映射到64维,如公式(2)所示。最后,通过对每个顶点所有相关联的边应用对称函数(取最大值)来定义局部图卷积操作,如公式(3)所示。在局部特征提取过程中,四次迭代局部特征提取模块,其中前一个模块的输出作为下一个模块的输入,依次将三维点云映射到64维,64维,64维,128维,最终得到表示局部特征的三维点云的尺寸为16×1024×128,如图2所示。

    全局特征提取模块由knn图和3d卷积层组成,用于获取点云的全局特征,其输入是经过空间变换的三维点云,输出是表示整个点云的全局特征;所述的全局特征提取模块提取全局特征的过程如下:首先利用knn图将输入点云分成1024组,每个组由中心点以及邻近的4个点组成。其次采用两层三维卷积操作将他们映射成n×64维的特征,卷积核的大小分别为[1,1,3]和[1,1,1],步长为1。然后采用两层二维卷积函数将得到的n×64维的特征映射到n×128维,随后将各层卷积操作得到的特征合并,最后再通过卷积核为[1,1],步长为1的卷积操作获得全局特征。所述网络的输出尺寸为16×1024×128,其中16、1024和128分别表示输入点云的批处理大小、点云个数以及特征维度。

    相关层模块利用聚合函数将全局特征和局部特征合并,并通过由输出大小分别为512,256,40的全连接层组成的输出模块输出尺寸大小为1×40的一维矩阵,(40表示modelnet40数据集中的40个不同类别的物体。)矩阵的每一分量对应为点云分类为该类别的分类得分,取具有最高得分的类别作为输入点云的类别。

    步骤3:训练网络模型:

    本发明的硬件环境是英特尔i9-7940x处理器,16gb内存,gpu为titanxp;软件环境为ubuntu16.04操作系统,cuda9.0,cudnn7.3,tensorflow1.9和python3.5。

    实施例中将modelnet40数据集中每一个三维点云模型归一化到单位球区间[-1,1]内,然后随机抽取1024个点作为其采样样本,在点云数据的每一次迭代训练时,随机打乱训练数据的排列顺序,同时,为了增加训练的数据量,提高网络的泛化能力,采用步骤1中的方法对数据进行预处理。

    训练过程中,首先将经过预处理的批处理大小为16的点云数据和对应的分类基准值作为输入,对构建的三维点云自动分类网络进行前向传播训练以学习该网络的参数,学习率的初始值设置为0.001,批量归一化的动量为0.9,最大迭代次数为250,批处理大小为16。然后基于交叉熵的损失函数(5)利用自适应时刻估计方法(adaptivemomentestimation,简称adam)进行反向传播训练,更新模型的权重和偏置项等学习参数。adam在模型训练优化的过程中让每个参数获得自适应的学习率,来达到优化质量和速度的双重提升。最后通过迭代250次训练网络模型参数,以获得最优的三维点云自动分类网络模型。为了防止过拟合,在训练过程中采用dropout机制,使得模型在训练过程中随机让网络的某些节点权值为零,不参与训练,避免训练过程中出现过拟合的现象。

    步骤4:利用训练完成的点云自动分类网络进行分类测试。

    利用训练完成的自动分类网络进行三维点云分类测试。与训练阶段不同,测试阶段只需要加载已经训练好的网络模型,不需要再次训练网络模型。

    以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换和替代,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。


    技术特征:

    1.一种基于图卷积神经网络的三维点云自动分类方法,其特征在于包括以下步骤:

    步骤1:构建数据集并进行预处理,采用3d激光雷达扫描仪获取点云数据,所述数据集由l个类别组成,其中包括i个训练数据和j个测试数据;数据预处理的具体过程为:将采集到的点云数据归一化到单位球内,随机抽取若干个点作为其采样样本;采用随机旋转、随机缩放、随机抖动以及添加高斯噪声的方式实现数据扩增;

    步骤2:构建点云自动分类网络,所述的点云自动分类网络包括空间变换矩阵模块,局部特征提取模块,全局特征提取模块,相关层模块,以及输出模块;

    所述空间变换矩阵模块是指通过学习点云自身的位姿信息得到一个最有利于网络进行分类的d×d变换矩阵,其输入是经过预处理的三维点云b×n×d,其中b、n、d分别表示输入点云的批处理大小、点云个数以及特征维度,输出是经过空间变换得到的点云,空间变换矩阵模块中所涉及到的参数是通过训练学习得到;该模块利用卷积操作对输入点云进行三次下采样,然后利用最大池化层和全连接层对输入特征进行上采样操作,最后加入权重和偏置量;经过上述操作,所述网络的输出尺寸为b×d×d;

    所述局部特征提取模块是用于对点云中的点构造局部特征的图神经网络,其输入是经过空间变换的三维点云,输出是聚合了k个邻近点特征的局部特征;具体操作步骤如下:利用有向图g=(v,e)来表示点云,有向图中的顶点和边分别用v={1,2,...,n}和表示;点云中的每一个点与其邻近的点的局部信息用其k近邻图来表示,则整个点云用图g来表示,通过构造局部邻域图和在连接相邻点对的边上应用图卷积操作来计算局部特征,经过上述操作后,所述网络的输出尺寸为b×n×k×d,其中k表示邻近点的个数;

    所述全局特征提取模块由knn图和3d卷积层组成,用于获取点云的全局特征,其输入是经过空间变换的三维点云,输出是表示整个点云的全局特征;所述的全局特征提取模块提取全局特征的过程如下:首先利用knn图用于将输入点云分成n组,然后将每组点云分别通过3d卷积层进行特征提取,最后通过最大池化操作得到全局特征,所述网络的输出尺寸为b×n×d;

    所述的相关层模块是指将局部特征以及全局特征合并,用于获取局部细粒度特征和具备上下文语义信息的点云特征;

    所述的输出模块主要由全连接层组成,用于整合卷积层中具有类别区分性的特征信息;全连接层中每个神经元采用relu激活函数;

    步骤3:模型训练,将服务机器人利用3d激光雷达、扫描仪等设备获取的点云数据或者已有公开数据集中的每一个点云数据归一化到单位球内,然后随机抽取若干个点作为其采样样本,在点云数据的每一次迭代训练时,随机打乱训练数据的排列顺序,同时采用随机旋转、[0.8,1.2]尺度范围内随机缩放、区间[-0.1,0.1]内随机抖动以及添加[0.01,0.05]高斯噪声的方式实现数据扩增;

    将经过预处理的训练数据集和对应的分类基准值作为输入,对构建的三维点云自动分类网络进行前向传播训练以学习该网络的参数,训练前对学习参数进行初始化,其中学习率的初始值设置为[0,0.1],批量归一化的动量为[0,1],最大迭代次数为[200,300],批处理大小为[8,32];然后基于交叉熵的损失函数利用自适应时刻估计方法简称adam进行反向传播训练,更新模型的权重和偏置项;adam在模型训练优化的过程中让每个参数获得自适应的学习率,来达到优化质量和速度的双重提升;最后不断迭代训练网络模型参数,以获得最优的三维点云自动分类网络模型;在训练过程中采用dropout机制,使得模型在训练过程中随机让网络的某些节点权值为零,不参与训练,避免训练过程中出现过拟合的现象;

    步骤4:利用训练完成的分类网络进行三维点云分类测试。

    2.根据权利要求1所述的三维点云自动分类方法,其特征在于,步骤1所述的预处理指:针对每一个点云模型,随机抽取1024个点作为其采样样本,且每一个点云模型坐标预先被归一化至单位球区间[-1,1]内,通过随机旋转、[0.8,1.2]尺度范围内随机缩放、区间[-0.1,0.1]内随机抖动以及添加[0.01,0.05]高斯噪声的方式实现数据扩增。

    3.根据权利要求1所述的三维点云自动分类方法,其特征在于,所述的空间变换矩阵的具体计算步骤如下:

    t=ω·γ(g(h(x1),h(x2)...h(xn))) b#(1)

    其中:{x1,x2,...,xn}表示三维点云,γ和h表示多层感知器,g表示对称函数,ω和b分别表示权重和偏置量;经过上述操作,所述网络的输出为尺寸为b×d×d的三维点云{x′1,x′2,...,x′n},其中b、d分别表示输入点云的批处理大小和特征维度。

    4.根据权利要求1所述的三维点云自动分类方法,其特征在于,步骤1所述的局部特征提取的定义如下:

    eij=relu(θ·(x′j-x′i) φ·x′i)#(2)

    其中:x′i是当前所关注的三维点云的一个点,x′j表示点x′i的近邻点,θ和φ表示权重,relu表示激活函数,eij表示局部特征;最后,通过对每个顶点所有相关联的边应用对称函数(取最大值)来定义局部图卷积操作,因此第i个顶点的局部图卷积的输出为:

    其中:i表示中心点x′i的下标,j表示中心点x′i的k近邻点的下标,ε表示以x′i为中心的knn图的局部点云对应点的下标集合。

    5.根据权利要求1所述的三维点云自动分类方法,其特征在于,所述全局特征提取模块由knn图和3d卷积层组成,用于获取点云的全局特征,其输入是经过空间变换的三维点云,输出是表示整个点云的全局特征;所述的全局特征提取模块提取全局特征的过程如下:首先利用knn图将输入点云分成n组,其次采用两层三维卷积操作将它们映射成n×64维的特征,然后采用两层二维卷积函数将得到的n×64维的特征映射到n×128维,随后将各层卷积操作得到的特征合并,最后再通过二维卷积操作获得全局特征;经过上述操作,所述网络的输出尺寸为b×n×d。

    6.根据权利要求1所述的三维点云自动分类方法,其特征在于,相关层模块中合并局部特征与全局特征采用的是聚合函数。

    技术总结
    一种基于图卷积神经网络的三维点云分类方法,用于服务型机器人抓取三维物体过程中对复杂的物体实现自动分类识别,便于根据类别信息确定抓取位置进行抓取。属于计算机视觉的三维感知和机器人导航技术领域。包括以下步骤:(1)对三维点云进行预处理;(2)构建点云分类网络;(3)训练所构建的网络;(4)利用训练完成的网络进行分类测试。本发明的优点在于:(1)采用图卷积神经网络进行局部特征学习,增强网络对局部拓扑结构信息的学习能力;(2)对输入的点云进行全局特征学习,增强网络对上下文语义的理解。将局部特征和全局特征相聚合,再利用全连接层输出每个点云的分类得分,相较于现有网络具有更高的分类精度。

    技术研发人员:王亮;李建书;范德巧
    受保护的技术使用者:北京工业大学
    技术研发日:2020.12.02
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-18932.html

    最新回复(0)