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

一种基于深度学习和体素的三维点云补全方法

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


一种基于深度学习和体素的三维点云补全方法

技术领域

本发明涉及一种基于深度学习和体素的三维点云补全方法,属于计算机视觉、三维点云等技术领域。

背景技术

随着科学技术的高速发展,人们已经不满足于二维图像的使用,而是着力于研究三维物体的生成和表示。其中在自动驾驶、即时定位与地图构建、数字与虚拟城市及社区、建筑设计等诸多领域,用点云表示三维模型的方式已经得到广泛的应用。然而由于受到目前激光雷达、手持扫描仪的使用限制,扫描完整的模型点云费时费力。此外,对于室外等大型现实场景中,想要围绕物体一周扫描完整的模型点云是不可取的。因此,对于扫描到的残缺的三维点云进行补全具有很大的应用价值和现实意义。

随着机器学习算法的发展和深度学习领域的推进,越来越多的深度学习模型被用于三维点云补全,如点云补全网络PCN(Point completion network)、结构化点云解码器TopNet和级联细化网络CRN(Cascaded Refinement Network)等方法。但是目前的点云补全方法具有一定的局限性:有的方法利用纯体素的网络结构,受到体素分辨率的严重限制,并且在转换过程中造成不可避免的误差;有的方法使用纯点云表示在网络中进行学习,但这些方法在补全的细节上不够完整,且具有错误的部分。此外,上述方法均没有考虑到生成点云的均匀性,也无法生成具有多分辨率的结果。

发明内容

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于深度学习和体素的三维点云补全方法。

为了解决上述技术问题,本发明公开了一种基于深度学习和体素的三维点云补全方法,包括以下步骤:

步骤1,采集不同类别的原始物体模型;

步骤2,对原始物体模型进行预处理,得到残缺点云和完整点云;

步骤3,用经过预处理后的残缺点云和完整点云训练体素深度神经网络模型;

步骤4,采集待补全的残缺点云并进行预处理;

步骤5,将步骤4得到的预处理后的点云输入步骤3得到的训练好的体素深度神经网络模型进行点云补全。

在一种实现方式中,所述步骤1中的原始物体模型为OBJ(object,对象)模型或者点云模型,所述OBJ模型是一种3D模型文件格式,包括原始物体的所有三角形面片位置和对应三角形顶点坐标,所述点云模型指原始物体模型是由一系列点组成的点云集合。

在一种实现方式中,步骤2包含以下步骤:

步骤2-1,若原始物体模型为OBJ模型,在所有三角形面片上进行均匀采样,获得原始物体模型的点云集合;

步骤2-2,对原始物体模型进行归一化,将其x,y,z坐标限定在[-1,1]区间内;该步骤是为了消除不同尺度的模型对训练的影响。

步骤2-3,对归一化后的物体模型进行均匀采样,获取固定数量2048个点,作为完整点云;此步骤是方便后续网络训练中计算损失函数并误差回传,采样2048个点是为了保证网络学习效果的同时降低损失函数的计算量。

步骤2-4,随机生成视点,以该视点观察归一化后的物体模型,渲染得到深度图像,将该深度图像中物体模型部分还原到三维空间获取固定数量2048个点,作为残缺点云;该步骤是为了模拟现实中真实扫描到的残缺点云的获取方式,采样2048个点是为了足够表达物体三维形状,且避免点数过多造成冗余。

在一种实现方式中,步骤3包括以下步骤:

步骤3-1,对步骤2-3获得的残缺点云进行体素化,获得16*16*16个在[-1,1]内的体素网格,并获得每个体素网格中心点坐标,统计每个体素网格中包含点的数量;

步骤3-2,构造体素深度神经网络模型,所述体素深度神经网络模型包括尺度预测模块、体素概率模块和点的生成模块;

步骤3-3,初始化体素深度神经网络模型;使用随机化生成参数的方式,或者使用已有训练模型的参数进行初始化;

步骤3-4,用步骤2中获得的残缺点云和完整点云对体素深度神经网络模型进行训练,并保存训练好的体素深度模型。训练中用到的技术都是常用的神经网络训练方法,包含前向传播、反向传播等方法,目前主流的深度学习框架都可以使用上述方法对模型进行训练,并保存训练得到的参数。

在一种实现方式中,步骤3-2中所述尺度预测模块用于预测残缺点云的实际尺寸,包括编码器和解码器,其中编码器包括4个全连接层、2个池化层和1个反池化层,输入大小为2048*3的点云,有3个输入节点输入3维坐标,第1层、第2层为全连接层,分别包含128和256个神经节点,并且2048个点共享对应全连接层的权重;第3层为池化层,采用的池化操作是最大池化,将2048个第2层输出的256维特征最大池化为1个256维特征;第4层为反池化层,将第3层输出的1个256维特征复制2048个,然后将其和第2层输出的2048个256维的特征拼接成2048个512维的特征输入第5层;第5层、第6层为全连接层,分别包含512和1024个神经节点,并且2048个512维特征共享对应全连接层的权重;第7层为池化层,采用的池化操作是最大池化,将2048个第6层输出的1024维特征最大池化为1个1024维特征;编码器最终的输出为1个1024维特征;解码器包含3个全连接层,输入编码器输出的1024维特征;第1层、第2层、第3层为全连接层,分别包含1024、1024、3个神经节点;解码器的最终输出为3个维度的尺度坐标。

上述设计的编码器结构(1)使用共享参数的全连接层逐点抽取特征,然后使用最大池化层作用于逐点特征,生成全局特征向量。该步骤在抽取了特征的同时还满足点云的置换不变性,这是对点云提取特征时必须要满足的性质。若将共享参数的全连接层换成一个普通的全连接层,那么就不再具有该性质。(2)对首次提取的全局特征向量,与逐点特征进行拼接。该步骤可以将全局信息共享给点云中的所有点,一定程度上提升了最终点云全局特征的信息携带量,有利于解码步骤的进行。编码器和解码器结合的精简的网络结构能有效预测尺度,且避免了复杂的网络造成训练时过拟合的现象。

在一种实现方式中,步骤3-2中所述体素概率模块用于残缺点云体素化后,预测每一个体素中生成点的概率,包括第一输入部分和6个全连接层,所述第一输入部分包括体素坐标、体素信息和第一全局特征,所述体素坐标为16*16*16个在[-1,1]内的体素的中心点坐标,大小为4096*3;所述体素信息包括原体素信息、对称信息和卷积信息,所述原体素信息为归一化后的残缺点云输入在数量为16*16*16的体素化的情况下,每个体素内包含点的数量,大小为4096*1;所述对称信息为原体素信息进行xyz三个维度的对称后的结果,大小为4096*3;所述卷积信息为原体素信息和对称信息拼接后进行3次3D卷积的结果,即原体素信息和对称信息拼接后的大小为4096*4,3个卷积核大小为3*3,数量为128,3次卷积均不改变大小,最终卷积信息大小为4096*128;第一全局特征由一个编码器输入归一化后的残缺点云生成,大小为1*1024,然后将其复制4096份,每个体素对应1份,大小为4096*1024;第一输入部分3者拼接在一起,大小为4096*(3+1+3+128+1024);所述6个全连接层依次连接,分别包含1024、1024、1024、1024、1024、1个神经节点,每个体素共享对应全连接层的权重,第1个全连接层的输入为所述第一输入部分,第6个全连接层的输出大小为4096*1,表示每个体素内有预测生成的点的概率;所述第一全局特征由一个编码器输入归一化后的残缺点云生成中的编码器采用所述尺度预测模块的编码器结构,但不共享参数。该模块的输出结果将用于点的生成模块和细化模块中。

该体素概率模块与流行的方法不同,使用了体素作为点云的载体,预测体素中出现点的概率,这种方式避免了以往的纯体素网络以体素作为最终结果的不足,又利用体素约束了点云的生成概率和大体位置。该体素概率模块网络结构中创新性地运用了对称信息,该做法能够有效地学习到点云中存在的对称性,提升网络效果。此外,该网络中既包含了局部信息(即卷积信息),也包含了全局信息(即全局特征),能够提升网络的学习效果。

在一种实现方式中,步骤3-2中所述点的生成模块用于计算每个体素内的预测生成的点距离体素中心点的偏移量,包括第二输入部分和7个全连接层,所述第二输入部分包括第一基础部分、体素概率部分、第一卷积部分和第二全局特征,所述第一基础部分由体素概率模块中的第一输入部分的体素坐标以及体素信息中的原体素信息和对称信息拼接而成,大小为4096*(3+1+3);所述体素概率部分为体素概率模块输出结果及其对称结果的拼接,所述对称结果按体素概率模块中第一输入部分的体素信息的对称信息的获取方式生成,拼接后的结果为4096*4;所述第一卷积部分为第一基础部分、体素概率部分和第三全局特征拼接后进行2次3D卷积的结果,即第一基础部分、体素概率部分和第三全局特征拼接大小为4096*(3+1+3+4+1024),2个卷积核大小为3*3,数量为128,2次卷积均不改变大小,最终第一卷积部分大小为4096*128,所述第三全局特征由一个编码器输入归一化后的残缺点云生成,大小为1*1024,然后将其复制4096份,每个体素对应1份,大小为4096*1024;所述第二全局特征由一个编码器输入归一化后的残缺点云生成,大小为1*1024,然后将其复制4096份,每个体素对应1份,大小为4096*1024;第二输入部分4者拼接在一起,大小为4096*(3+1+3+4+128+1024);所述7个全连接层依次连接,分别包含1024、512、512、512、128、128、3*M个神经节点,每个体素共享对应全连接层的权重,第1个全连接层的输入为所述第二输入部分,第7个全连接层的输出大小为4096*3*M,表示每个体素内所生成的M个点距每个体素中心点的偏移;上述偏移和体素中心点坐标相加得到相应的点坐标;每个点坐标和尺度预测模块输出的尺度坐标相乘得到去归一化的点坐标,所述去归一化的点坐标为未去概率的结果;根据体素概率模块输出的每个体素包含点的概率随机选取2048个点作为输出;所述第二全局特征由一个编码器输入归一化后的残缺点云生成中的编码器采用所述尺度预测模块的编码器结构,但不共享参数;所述第三全局特征由一个编码器输入归一化后的残缺点云生成中的编码器采用所述尺度预测模块的编码器结构,但不共享参数。

体素概率预测模块和点的生成模块串联结合,前者预测体素中生成点的概率,将该概率作为点的生成模块的一部分输入,再预测点出现的位置。通过此方式能有效的预测点的生成位置。所述点的生成模块网络中既包含了局部信息(即卷积信息),也包含了全局信息(即全局特征),能够提升网络的学习效果。

在一种实现方式中,步骤3-2中所述体素深度神经网络模型还包括细化模块,所述细化模块用于对点的生成模块输出的点的坐标进一步优化,包括第三输入部分和4个全连接层,所述第三输入部分包括第二基础部分、点云部分、第二卷积部分和第四全局特征,所述第二基础部分由点的生成模块的第二输入部分中的第一基础部分和体素概率部分拼接而成,大小为4096*(3+1+3+4);所述点云部分为由点的生成模块获得的未去概率的结果,大小为4096*3*M;所述第二卷积部分为第二基础部分、点云部分拼接后进行1次3D卷积的结果,即第二基础部分、点云部分拼接后的大小为4096*(3+1+3+4+3*M),卷积核大小为3*3,数量为128,卷积均不改变大小,最终第二卷积部分的输出大小为4096*128;所述第四全局特征包括输入点云特征和输出点云特征,其中输入点云特征由一个新的同尺度预测模块中的编码器相同结构的编码器输入残缺点云生成,大小为1*1024;输出点云特征由一个新的同尺度预测模块中的编码器相同结构的编码器输入点的生成模块获得的未去概率的结果生成,大小为1*1024;输入点云特征和输出点云特征拼接在一起后,将其复制4096份,每个体素对应1份,大小为4096*2048;第三输入部分四部分拼接在一起,大小为4096*(3+1+3+4+3*M+128+2048);所述4个全连接层依次连接,分别包含1024、512、128、3*M个神经节点,每个体素共享对应全连接层的权重,第1个全连接层的输入为所述第三输入部分,第4个全连接层的输出大小为4096*3*M,表示每个体素内所生成的M个点距点的生成模块获得的未去概率的结果的偏移;上述偏移和点的生成模块获得的未去概率的结果相加得到细化后的点;根据体素概率模块输出的每个体素包含点的概率随机选取2048个点作为细化后的输出。

细化模块对点云坐标进行了进一步的调整,借助了点的生成模块的输出作为该模块的一个输入,使得预测结果的准确度进一步提升。另外,细化模块可以选择性的保留或删除,删除该模块以牺牲少量精度带来网络的训练和预测速度的提升。该细化模块网络中既包含了局部信息(即卷积信息),也包含了全局信息(即全局特征),能够提升网络的学习效果。

在一种实现方式中,所述步骤4中,所述预处理为对采集的待补全的残缺点云进行归一化,将其坐标限定在[-1,1]区间内。

在一种实现方式中,所述步骤5中,将训练好的体素深度神经网络模型中点的生成模块第7个全连接层设置成3*m个神经节点,将细化模块第4个全连接层设置成3*m个神经节点,能够对点云补全结果进行采样获得预期分辨率的点云,所述m为每个体素内生成点的个数,也称为点云输出分辨率,1≤m≤M。

区别于其他现有方法无法在预测阶段指定网络的输出分辨率,本发明方法可以一定程度上控制网络的输出点云分辨率,而不改变点云的分布特征。

有益效果:

1)本申请提供的方法融合了体素和点云结构的优点,通过使用不同类别的物体点云训练深度学习网络模型,再利用训练好的模型对残缺点云进行补全,得到具有细节的、均匀的、多分辨率的补全结果,解决了传统算法难以解决的问题。

2)本申请提供的方法通过对尺度预测模块、体素概率模块、点的生成模块、细化模块的精巧设计,不但能够较好的预测残缺点云缺失的细节部分,并且具有很好的均匀性。

3)本申请提供的方法相比现有技术,在预测的准确性上有所提升,并且可以根据使用需求输出不同分辨率的均匀预测结果。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本申请提供的方法的基本流程图。

图2为预处理后的残缺点云和完整点云样例图。

图3为本申请实施例提供的深度学习网络示意图。

图4为本申请实施例提供的编码器结构。

图5为本申请实施例提供的体素概率模块的网络结构图。

图6为本申请实施例提供的点的生成模块的网络结构图。

图7为本申请实施例提供的方法与现有技术方法补全点云的对比示意图。

图8为本申请实施例提供的设置不同点云输出分辨率获得的点云补全结果示意图。

具体实施方式

下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,在不同的实施例中,可以根据需要补全的物体的类别选择不同的模型,例如对模型较小复杂度较低的模型可以选择减少网络中的层数,对复杂度较高的可以继续增加网络的层数。本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明的保护范围。

实施例1

本实施例的实验硬件环境是:显卡NVIDIA Geforce GTX 1080Ti。软件环境是Python3.6版本和CUDA10.0版本。收集的点云模型来自开源数据集ShapeNet。

参照图1所示,一种基于深度学习和体素的三维点云补全方法,具体包括如下步骤:

步骤1,采集不同类别的原始物体模型;

步骤2,对原始物体模型进行预处理,得到残缺点云和完整点云;

步骤3,用经过预处理后的残缺点云和完整点云训练体素深度神经网络模型;

步骤4,采集待补全的残缺点云并进行预处理;

步骤5,将步骤4得到的预处理后的点云输入步骤3得到的训练好的体素深度神经网络模型进行点云补全。

本实施例中,所述步骤1中的原始物体模型为OBJ模型或者点云模型,所述OBJ模型包括原始物体的所有三角形面片位置和对应三角形顶点坐标,所述点云模型指原始物体模型是由一系列点组成的点云集合,本实施例中,原始物体模型为OBJ模型,主要是下载并使用了公开数据集ShapeNet的子集,其类别包含飞机、汽车、椅子、灯等常见的物体模型类别,一共27458个模型。

本实施例中,步骤2包括以下步骤:

步骤2-1,若原始物体模型为OBJ模型,在所有三角形面片上进行均匀采样,获得原始物体模型的点云集合;

步骤2-2,对原始物体模型的点云集合进行归一化,将其坐标限定在[-1,1]区间内;记原始物体模型的点云集合为S,点p为点云集合S中的任意点,坐标为(x

对任意点p的x坐标取值x

计算点云集合S中y坐标轴上的最大值y

对任意点p的y坐标取值y

计算点云集合S中z坐标轴上的最大值z

对任意点p的z坐标取值z

步骤2-3,对归一化后的原始物体模型的点云集合进行均匀采样,通常点云补全任务中,为了各方法之间的对比,约定统一设置成固定数量的2048个点作为完整点云。

步骤2-4,为了模拟现实中真实扫描到的残缺点云的获取方式,在归一化后的原始物体模型坐标系内单位球上随机生成视点,以该视点观察归一化后的原始物体模型中心点,即坐标原点,渲染画面得到深度图像,已知视点位置和图像中物体深度,可以将该深度图像中原始物体模型部分还原到三维空间,作为残缺点云。如图2所示为归一化后获得的残缺点云和完整点云。

本实施例中,步骤3包括以下步骤:

步骤3-1,对步骤2-3获得的残缺点云进行体素化,获得16*16*16个在[-1,1]内的体素网格,并获得每个体素网格中心点坐标,统计每个体素网格中包含点的数量;对于[-1,1]

步骤3-2,构造体素深度神经网络模型,如图3所示,所述体素深度神经网络模型包括尺度预测模块、体素概率模块和点的生成模块;

步骤3-3,初始化体素深度神经网络模型;使用随机化生成参数的方式,或者使用已有训练模型的参数进行初始化;

步骤3-4,用步骤2中获得的残缺点云和完整点云对体素深度神经网络模型进行训练,并保存训练好的体素深度模型。

本实施例中,步骤3-2中所述尺度预测模块用于预测残缺点云的实际尺寸,这是因为残缺点云的尺寸是未知的,难以直接进行归一化,包括:编码器和解码器,其中编码器结构如图4所示,需要注意的是,该编码器结构在本发明中被多次使用,下文中每次提到均为相同的网络结构,但不共享参数,因此即使对于相同输入,不同的编码器具有不同参数,会输出不同结果。编码器包括4个全连接层,2个池化层,1个反池化层,具体结构为:输入大小为2048*3的点云,有3个输入节点输入3维坐标,第1层、第2层为全连接层,分别包含128和256个神经节点,并且2048个点共享全连接层的权重;第3层为池化层,采用的池化操作是最大池化,将2048个第2层输出的256维特征最大池化为1个256维特征;第4层为反池化层,将第3层输出的1个256维特征复制2048个,然后将其和第2层输出的2048个256维的特征拼接成2048个512维的特征输入第5层;第5层、第6层为全连接层,分别包含512和1024个神经节点,并且2048个512维特征共享全连接层的权重;第7层为池化层,采用的池化操作是最大池化,将2048个第6层输出的1024维特征最大池化为1个1024维特征;编码器最终的输出为1个1024维特征。解码器包含3个全连接层,具体结构为:输入编码器输出的1024维特征;第1层、第2层、第3层为全连接层,分别包含1024、1024、3个神经节点;解码器的最终输出为3个维度的尺度坐标。

本实施例中,步骤3-2中所述体素概率模块用于残缺点云体素化后,预测每一个体素中生成点的概率,包括第一输入部分和6个全连接层,体素概率模块结构如5所示,所述第一输入部分包括体素坐标、体素信息和第一全局特征,所述体素坐标为16*16*16个在[-1,1]内的体素的中心点坐标,大小为4096*3;所述体素信息包括原体素信息、对称信息和卷积信息,所述原体素信息为归一化后的残缺点云输入在数量为16*16*16的体素化的情况下,每个体素内包含点的数量,大小为4096*1;所述对称信息为原体素信息进行xyz三个维度的对称后的结果,大小为4096*3,具体的,比如x轴的-1、-0.5、0、0.5和1位置的体素点数原来是[6,7,3,2,4],对称后就变成[4,2,3,7,6];所述卷积信息为原体素信息和对称信息拼接后进行3次3D卷积的结果,即原体素信息和对称信息拼接后的大小为4096*4,3个卷积核大小为3*3,数量为128,3次卷积均不改变大小,最终卷积信息大小为4096*128;第一全局特征由一个编码器输入归一化后的残缺点云生成,大小为1*1024,然后将其复制4096份,每个体素对应1份,大小为4096*1024;第一输入部分3者拼接在一起,大小为4096*(3+1+3+128+1024);所述6个全连接层依次连接,分别包含1024、1024、1024、1024、1024、1个神经节点,每个体素共享对应全连接层的权重,第1个全连接层的输入为所述第一输入部分,第6个全连接层的输出大小为4096*1,表示每个体素内预测生成的点的概率;所述第一全局特征由一个编码器输入归一化后的残缺点云生成中的编码器采用所述尺度预测模块的编码器结构,但不共享参数。

本实施例中,步骤3-2中所述点的生成模块用于计算每个体素内的预测生成的点距离体素中心点的偏移量,包括第二输入部分和7个全连接层,点的生成模块结构如图6所示,所述第二输入部分包括第一基础部分、体素概率部分、第一卷积部分和第二全局特征,所述第一基础部分由体素概率模块中的第一输入部分的体素坐标以及体素信息中的原体素信息和对称信息拼接而成,大小为4096*(3+1+3);所述体素概率部分为体素概率模块输出结果及其对称结果的拼接,所述对称结果按体素概率模块中第一输入部分的体素信息的对称信息的获取方式生成,拼接后的结果为4096*4;所述第一卷积部分为第一基础部分、体素概率部分和第三全局特征拼接后进行2次3D卷积的结果,即第一基础部分、体素概率部分和第三全局特征拼接大小为4096*(3+1+3+4+1024),2个卷积核大小为3*3,数量为128,2次卷积均不改变大小,最终第一卷积部分大小为4096*128,所述第三全局特征由一个编码器输入归一化后的残缺点云生成,大小为1*1024,然后将其复制4096份,每个体素对应1份,大小为4096*1024;所述第二全局特征由一个编码器输入归一化后的残缺点云生成,大小为1*1024,然后将其复制4096份,每个体素对应1份,大小为4096*1024;第二输入部分4者拼接在一起,大小为4096*(3+1+3+4+128+1024);所述7个全连接层依次连接,分别包含1024、512、512、512、128、128、3*M个神经节点,每个体素共享对应全连接层的权重,第1个全连接层的输入为所述第二输入部分,第7个全连接层的输出大小为4096*3*M,表示每个体素内所生成的M个点距每个体素中心点的偏移,M一般取值为4或8;上述偏移和体素中心点坐标相加得到相应的点坐标;每个点坐标和尺度预测模块输出的尺度坐标相乘得到去归一化的点坐标,所述去归一化的点坐标为未去概率的结果;根据体素概率模块输出的每个体素包含点的概率随机选取2048个点作为输出;所述第二全局特征由一个编码器输入归一化后的残缺点云生成中的编码器采用所述尺度预测模块的编码器结构,但不共享参数;所述第三全局特征由一个编码器输入归一化后的残缺点云生成中的编码器采用所述尺度预测模块的编码器结构,但不共享参数。根据体素概率模块输出的每个体素包含点的概率随机选取2048个点作为输出,其中随机选取概率大于0.4的点。

本实施例中,步骤3-2中所述体素深度神经网络模型还包括细化模块,所述细化模块用于对点的生成模块输出的点的坐标进一步优化,包括第三输入部分和4个全连接层,所述第三输入部分包括第二基础部分、点云部分、第二卷积部分和第四全局特征,所述第二基础部分由点的生成模块的第二输入部分中的第一基础部分和体素概率部分拼接而成,大小为4096*(3+1+3+4);所述点云部分为由点的生成模块获得的未去概率的结果,大小为4096*3*M;所述第二卷积部分为第二基础部分、点云部分拼接后进行1次3D卷积的结果,即第二基础部分、点云部分拼接后的大小为4096*(3+1+3+4+3*M),卷积核大小为3*3,数量为128,卷积均不改变大小,最终第二卷积部分的输出大小为4096*128;所述第四全局特征包括输入点云特征和输出点云特征,其中输入点云特征由一个新的同尺度预测模块中的编码器相同结构的编码器输入残缺点云生成,大小为1*1024;输出点云特征由一个新的同尺度预测模块中的编码器相同结构的编码器输入点的生成模块获得的未去概率的结果生成,大小为1*1024;输入点云特征和输出点云特征拼接在一起后,将其复制4096份,每个体素对应1份,大小为4096*2048;第三输入部分四部分拼接在一起,大小为4096*(3+1+3+4+3*M+128+2048);所述4个全连接层依次连接,分别包含1024、512、128、3*M个神经节点,每个体素共享对应全连接层的权重,第1个全连接层的输入为所述第三输入部分,第4个全连接层的输出大小为4096*3*M,表示每个体素内所生成的M个点距点的生成模块获得的未去概率的结果的偏移;上述偏移和点的生成模块获得的未去概率的结果相加得到细化后的点;根据体素概率模块输出的每个体素包含点的概率随机选取2048个点作为细化后的输出。根据体素概率模块输出的每个体素包含点的概率随机选取2048个点作为细化后的输出,其中随机选取概率大于0.4的点。

本实施例中,所述步骤4中,所述预处理为对采集的待补全的残缺点云进行归一化,将其坐标限定在[-1,1]区间内,归一化步骤和步骤2-1中步骤相同。

本实施例中,所述步骤5中,将训练好的体素深度神经网络模型中点的生成模块第7个全连接层设置成3*m个神经节点,将细化模块第4个全连接层设置成3*m个神经节点,能够对点云补全结果进行采样获得不同分辨率的点云,所述m为每个体素内生成点的个数,也称为点云输出分辨率,1≤m≤M,本实施例中M取值为4,则1≤m≤4,如图8所示为m取值为1、2、3和4时补全飞机和桌子点云的示意图,从图中可以看出本发明实施例提供的方法,通过在预测阶段设置体素深度神经网络的输出分辨率,能够获得不同分辨率的点云图,而不改变点云的分布特征。

本发明实施例提供的方法与现有技术方法的对比具体数据如下表所示,其中m=M=8,所用指标为点云补全公用指标倒角距离(Chamfer Distance,CD),为了方便查看将值放大了1000倍。视角效果对比见图7所示。从下表和图7可以看出本发明实施例提供的方法在大部分类别标签上性能都超过了其他先进的方法。相比PCN、TopNet、CRN,本发明实施例提供的方法在ShapeNet数据集的CD指标分别提升了9.86%、8.18%、1.57%。此外,本发明实施例提供的方法生成的点云能够保留输入点云中可见的部位,并且预测出具有更多细节的不可见部位。如图7第一行的飞机模型,其他方法对尾翼的预测结果比较模糊,而本发明实施例提供的方法可以确定性的预测出尾翼结构。在第三行的椅子模型中,椅背的形状是可见的,但其他方法都认为椅背是不完整的,对其进行了填充,而本发明实施例提供的方法精准的保留了椅背的形状。出现这种情况是因为其他方法都受到了先验知识的约束,数据集中大部分椅子的椅背是填充式的,因而误导了它们的网络,使得生成了错误的结果。另外,本发明实施例提供的方法生成的结果具有更少的飞点。例如第四行的台灯模型和第八行的桌子模型中,其他各方法预测的结果中具有一些离点云模型比较远的飞点,而本发明实施例提供方法的网络预测结果十分紧凑。现有技术涉及较少的一个方面是生成结果的均匀性,可以看到,在各个模型中(第八行的桌子最为明显),本发明实施例提供方法的预测结果具有明显的更均匀的空间分布情况,这得益于本发明实施例提供方法的网络的体素化结构,这种结构使得生成的点云仍然保留体素的整齐排列的优点,这种均匀的分布对进一步的应用,如重建、采样等,都有很大的价值。

本发明提供了一种基于深度学习和体素的三维点云补全方法,这种方法利用我们设计的基于体素的深度学习网络结构,能够对残缺点云进行补全,预测更具细节特征和更少噪声的点云结构。具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

相关技术
  • 一种基于深度学习和体素的三维点云补全方法
  • 一种基于深度学习的点云稠密补全方法
技术分类

06120112879311