一种基于生成对抗网络的点云三维重建方法与系统

文档序号:27204490发布日期:2021-11-03 14:06阅读:350来源:国知局
一种基于生成对抗网络的点云三维重建方法与系统

1.本发明涉及三维重建,深度学习领域,具体涉及一种基于生成对抗网络的点云三维重建方法、系统、设备及存储介质。


背景技术:

2.近些年来,随着互联网和多媒体技术不断地发展、数字设备和大容量存储设备的普及,三维点云数据的应用也走进人们的视野之中。例如在虚拟现实中可以人们可以通过手绘而得到三维模型。又比如在自动驾驶中通过激光扫描的到三维的点云数据,在经过一定的处理使得计算机能够根据点云数据辨别当时所处的环境,知道哪里有障碍物,从而推断出汽车之后要如何通行。除此之外,三维模型也广泛应用于视频以及游戏制作之中。
3.三维重建技术是计算机图形学中的一个重要研究方向。它是指通过处理一些已知的数据从而推测原来的三维模型。例如通过一个物体的多张不同角度的图片来合成原来的三维物体,或者通过带有深度信息的图像来推测出三维物体,还有就是通过三维点云数据来获得三维模型等。近几年来随着深度学习的迅速发展,人们也将深度学习应用于三维点云数据的分类分割任务之中,并且取得了比较好的效果。通过深度学习技术计算机能够较好的将点云进行语义分割,从而知道哪些点云是属于同一类的,这在自动驾驶技术的研究中具有重要的意义。此外也有将深度学习应用于三维重建的研究,也取得了较好的效果。
4.目前的现有技术之一是一种基于深度学习的管道三维重建方法、系统、介质及设备,该技术方案为:(1)利用深度学习方法学习点云的特征,至少得到点所属组件的类别、点所属组件的半径和点的方向向量;(2)利用点所属组件的半径和点的方向向量计算轴线点,结合点所属组件的类别标签对轴线点进行聚类得到候选实例;(3)用基于图的方法得到不同候选实例之间的连接关系,以组件为节点构成图的结构;(4)用实际的三维组件模型替代图中的节点以完成整个管道重建。其缺点是:此方案并不是针对点云数据进行三维重建,而是通过点云的到各个点云的所属的组件,在通过使用已存在的三维组件来完成整个管道,此方案专门用于实现管道的三维重建,其通用性不强。
5.目前的现有技术之二是一种基于rgb数据与生成对抗网络的点云三维重建方法,该技术方案为:(1)使用便宜的普通相机捕获二维图像;(2)通过生成对抗网络从单个rgb图像生成深度图像估计;(3)通过生成训练数据深度相机的参数生成深度图像估计,根据深度计算得到三维点云数据;(4)通过球面映射得到粗略表面模型,最后使用判别器对模型判别以得到完整的三维模型。其缺点是:(1)此方案通过二维图像来获得点云数据,之后再进行三维重建。注意到从二维图像来获得点云数据,这其中是通过估计实现的,因此这里必定会出现一定的损失。(2)此外三维重建过程中采用的是简单的球面映射,再通过细化得到完整的三维模型,通过这种方法得到的三维模型只是粗略的近似,所得三维模型不够精确。


技术实现要素:

6.本发明的目的是克服现有方法的不足,提出了一种基于生成对抗网络的点云三维
重建方法。本发明解决的主要问题:一是现有的三维重建技术大多针对专门的物体或场景而设计的,普适性不够强的问题;二是通过二维图像获取点云数据导致数据损失的问题;三是通过简单映射而建立的三维模型导致模型精度不高的问题。
7.为了解决上述问题,本发明提出了一种基于生成对抗网络的点云三维重建方法,所述方法包括:
8.处理等待重建的点云数据,得到一个包围该等待重建的点云数据的三维网格模型;
9.搭建生成器模块,输入是所述三维网格模型,得到该模型中各个顶点的位移,该位移与所述三维网格模型的顶点坐标相加,得到一个新的三维网格模型,从该新模型中均匀采样一些点,得到生成器生成的点云数据;
10.搭建判别器模块,输入是所述等待重建的点云数据和从所述生成器中生成的点云数据,输出是一个小于1的概率值;
11.对所述判别器和所述生成器进行多次训练优化,得到训练完成的判别器和训练完成的生成器;
12.最终所述训练完成的生成器所生成的就是所述等待重建的点云数据对应的三维模型。
13.优选地,所述处理等待重建的点云数据,得到一个包围该等待重建的点云数据的三维网格模型,具体为:
14.对等待重建的点云数据进行归一化处理,将每个点的坐标归一化到

1到1之间;
15.如果要得到的三维模型是多个三维模型的不同部分拼接而成的,需要将待拼接部分的点云摆放到相对应的位置,并且也进行归一化处理;
16.归一化处理后所得的点云数据使用三维建模软件,得到一个能够包围该点云数据的三维网格模型。
17.优选地,所述搭建生成器模块,输入是所述三维网格模型,得到该模型中各个顶点的位移,该位移与所述三维网格模型的顶点坐标相加,得到一个新的三维网格模型,从该新模型中均匀采样一些点,得到生成器生成的点云数据,具体为:
18.生成器采用meshcnn,是一个作用于三维网格中每一条边的神经网络,它首先根据三维网格计算出各条边所拥有的五个特征,这五个特征分别为每条边所在的两个三角面片之间的二面角、以及那条边所在两个三角面片中所对的对角和那条边所在两个三角面片的高与那条边的比值;
19.计算好的特征类比于图像的卷积神经网络送到网络中进行计算,从而得到三维网格中每一个顶点所需的位移;
20.把点的位移与所述三维网格模型的顶点坐标相加,从而得到一个更加接近真实点云数据的三维网格模型;
21.从该新模型中均匀采样一些点,得到生成器生成的点云数据。
22.优选地,所述搭建判别器模块,输入是所述等待重建的点云数据和从所述生成器中生成的点云数据,输出是一个小于1的概率值,具体为:
23.判别器是一个二分类器,采用pointnet++网络模型作为判别器,输入是所述等待重建的点云数据和从所述生成器中生成的点云数据;
24.修改pointnet++全连接后的输出个数为1,判别器判断是否是所述等待重建的点云数据,pointnet++的输出是一个小于1的概率值;
25.当pointnet++输出接近1时则表示当前输入的点云数据是真实是的点云数据,而当pointnet++输出接近0时则表示当前输入是从生成器生成的点云数据。
26.优选地,所述对所述判别器和所述生成器进行多次训练优化,得到训练完成的判别器和训练完成的生成器,具体为:
27.采用最小二乘gans的损失函数进行网络的优化,生成对抗网络的损失函数包括判别器的损失函数和生成器的损失函数;
28.判别器的损失函数计算,如公式所示:
[0029][0030]
x代表所述等待重建的点云数据,d(x)代表向判别器中输入x所得的概率值,而g(x)则代表从生成器中生成的点云数据,d(g(x))代表向判别器中输入g(x)所得的概率值,l
d
则是最终的判别器损失;
[0031]
生成器的损失函数计算,如公式所示:
[0032]
l
g
=γ1l
gd
+γ2d
[0033][0034][0035]
其中γ1和γ2是自行定义的参数,可以根据实际情况调整,l
gd
为对抗损失,计算的是判别器将生成器生成的点云数据判别为真实点云数据的误差,其中x代表的是整个所述等待重建的点云数据集,x代表所述等待重建的点云数据,g(x)代表从生成器生成的点云数据,d(g(x))代表向判别器中输入g(x)所得的概率值;
[0036]
d是双向倒角距离,指的是所述等待重建的点云数据与生成器生成的点云数据之间的双向倒角距离,其中x和y分别代表所述等待重建的点云数据和生成器生成的点云数据,x和y分别代表所述等待重建的点云数据和生成器生成的点云数据中一个点的坐标,l
g
则是最终的生成器损失;
[0037]
实际训练次数根据所需要的三维模型的复杂度而定,多次训练优化,得到训练完成的判别器和训练完成的生成器。
[0038]
相应地,本发明还提供了一种基于生成对抗网络的点云三维重建系统,包括:
[0039]
数据处理单元,处理等待重建的点云数据,得到一个包围该等待重建的点云数据的三维网格模型;
[0040]
模块搭建单元,搭建生成器模块和搭建判别器模块;
[0041]
模块训练单元,对判别器和生成器进行多次训练优化,得到训练完成的判别器和训练完成的生成器,最终训练完成的生成器所生成的就是等待重建的点云数据对应的三维模型。
[0042]
相应地,本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储
有计算机程序,所述处理器执行上述一种基于生成对抗网络的点云三维重建方法的步骤。
[0043]
相应地,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于生成对抗网络的点云三维重建方法的步骤。
[0044]
实施本发明,具有如下有益效果:
[0045]
第一,首先当前我们获得点云数据大多是通过激光扫描来获得,然而通过在现实生活中通过激光扫描而获得的点云数据大部分分布不均匀,会出现一些非常稀疏的地方,而且会出现法向量缺失或错误的情况,这些不理想的情况对于三维重建具有很大的影响,而本发明能够较好的应对这种情况;第二,在处理多个不同三维模型不同部位进行拼接的任务时能够生成光滑的过度区域,而不会只是简单的拼接在一起,另外由于三维模型的网格组成是不一样,有可能是三角网格、四边形网格和多边形网格,本方案可以将不同网格模型进行拼接,最终得到三角网格;第三,此方案可以应用多种多样的单个物体,在三维重建上的应用比较广泛。
附图说明
[0046]
图1是本发明实施例的一种基于生成对抗网络的点云三维重建方法总体流程图;
[0047]
图2是本发明实施例的生成器计算特征图;
[0048]
图3是本发明实施例的一种基于生成对抗网络的点云三维重建系统的结构图。
具体实施方式
[0049]
下面将结合本发明实施例中的附图,对本发明实施例中的技术发明进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050]
图1是本发明实施例的一种基于生成对抗网络的点云三维重建方法总体流程图,如图1所示,该方法包括:
[0051]
s1,处理等待重建的点云数据,得到一个包围该等待重建的点云数据的三维网格模型;
[0052]
s2,搭建生成器模块,输入是所述三维网格模型,得到该模型中各个顶点的位移,该位移与所述三维网格模型的顶点坐标相加,得到一个新的三维网格模型,从该新模型中均匀采样一些点,得到生成器生成的点云数据;
[0053]
s3,搭建判别器模块,输入是所述等待重建的点云数据和从所述生成器中生成的点云数据,输出是一个小于1的概率值;
[0054]
s4,对所述判别器和所述生成器进行多次训练优化,得到训练完成的判别器和训练完成的生成器;
[0055]
s5,最终所述训练完成的生成器所生成的就是所述等待重建的点云数据对应的三维模型。
[0056]
步骤s1,具体如下:
[0057]
s1

1:对要进行重建的点云数据进行归一化处理,将每个点的坐标归一化到

1到1之间。如果要得到的三维模型是多个三维模型的不同部分拼接而成的,需要将待拼接部分
的点云摆放到相对应的位置,并且也需要进行归一化处理。
[0058]
s1

2:使用三维建模软件例如blend等,根据s1

1所得的点云数据得到一个能够包围该点云数据的三角网格模型。
[0059]
步骤s2,具体如下:
[0060]
s2

1:如图2所示,生成器采用meshcnn,meshcnn是一个作用于三维网格中每一条边的神经网络,它的输入是一个能够包围原始点云数据的封闭的三维网格模型。它首先根据三维网格计算出各条边所拥有的五个特征。这五个特征分别为每条边所在的两个三角面片之间的二面角、以及那条边所在两个三角面片中所对的对角和那条边所在两个三角面片的高与那条边的比值。
[0061]
s2

2:将s2

1中计算好的特征类比于图像的卷积神经网络送到网络中进行计算,从而得到三维网格中每一个顶点应该要的位移。之后把点的位移与原来的三维网格顶点的坐标相加,从而得到一个更加接近真实点云数据的三维网格。从新的三维网格模型中均匀采样一些点,从而得到生成器生成的点云数据。
[0062]
步骤s3,具体如下:
[0063]
s3

1:判别器总的来说是一个二分类器,采用在点云数据分类中有较好表现的pointnet++网络模型作为判别器,输入是所述等待重建的点云数据和从生成器中生成的三维模型中采样得到的点云数据。
[0064]
s3

2:修改pointnet++全连接后的输出个数为1,因为此处是进行二分类,只需判断是否是所述等待重建的点云数据。pointnet++的输出是一个小于1的概率值。当pointnet++输出接近1时则表示当前输入的点云数据是真实是的点云数据,而当pointnet++输出接近0时则表示当前输入是从生成器生成三维模型中采样得到的点云数据。
[0065]
步骤s4,具体如下:
[0066]
s4

1:由于生成对抗网络训练困难,本方案参考最小二乘gans,采用它的损失函数进行网络模型的优化。生成对抗网络的损失函数包括判别器的损失函数和生成器的损失函数。
[0067]
s4

2:判别器的损失函数计算公式如公式(1)所示。其中x代表所述等待重建的点云数据,d(x)代表向判别器中输入x所得的概率值,而g(x)则代表从生成器中得到的点云数据,d(g(x))代表向判别器中输入g(x)所得的概率值,l
d
则是最终的判别器损失,用于反馈传播优化判别网络。
[0068][0069]
s4

3:生成器损失函数计算公式如公式(4)所示。其中γ1和γ2是自行定义的参数,建议设置为0.01和100,可以根据实际情况调整,而l
gd
和d的计算方式如公式(2)和(3)所示。公式(2)计算的是判别器将生成器生成点云数据判别为真实点云数据的误差,其中x代表的是整个所述等待重建的点云数据集,g(x)代表将x输入生成器中得到的点云数据集,d(g(x))代表向判别器中输入g(x)所得的概率值。公式(3)计算的是所述等待重建的点云数据与生成点云数据之间的双向倒角距离,其中x和y分别代表所述等待重建的点云数据和生成的点云数据,x和y分别代表所述等待重建的点云数据和生成的点云数据中一个点的坐标。
[0070][0071][0072]
l
g
=γ1l
gd
+γ2d
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0073]
相应地,本发明还提供了一种基于生成对抗网络的点云三维重建系统,如图3所示,包括:
[0074]
数据处理单元1,处理等待重建的点云数据,得到一个包围该等待重建的点云数据的三维网格模型。
[0075]
具体地,对等待重建的点云数据进行归一化处理,将每个点的坐标归一化到

1到1之间,如果要得到的三维模型是多个三维模型的不同部分拼接而成的,需要将待拼接部分的点云摆放到相对应的位置,并且也进行归一化处理,归一化处理后所得的点云数据使用三维建模软件例如blend等,得到一个能够包围该点云数据的三维网格模型。
[0076]
模块搭建单元2,搭建生成器模块和搭建判别器模块。
[0077]
具体地,搭建生成器模块,生成器采用meshcnn,输入是三维网格模型,得到该模型中各个顶点的位移,该位移与三维网格模型的顶点坐标相加,得到一个新的三维网格模型,从该新模型中均匀采样一些点,得到生成器生成的点云数据,搭建判别器模块,输入是所述等待重建的点云数据和从生成器中生成的点云数据,输出是一个小于1的概率值。
[0078]
模块训练单元3,对判别器和生成器进行多次训练优化,得到训练完成的判别器和训练完成的生成器,最终训练完成的生成器所生成的就是等待重建的点云数据对应的三维模型。
[0079]
具体地,采用最小二乘gans的损失函数进行网络的优化,生成对抗网络的损失函数包括判别器的损失函数和生成器的损失函数,实际训练次数根据所需要的三维模型的复杂度而定,多次训练优化,得到训练完成的判别器和训练完成的生成器,最终训练完成的生成器所生成的就是等待重建的点云数据对应的三维模型。
[0080]
因此,本发明通过构建生成器模块和判别器模块,使用pointnet++作为判别器来构建生成对抗网络,来进行点云的三维重建;同时,判别器的损失函数参照lsgans(最小二乘gans),生成器的损失函数对抗损失和真实点云数据与采样得到的点云数据的双向倒角距离的线性组合,次损失函数能够更好的体现点云数据的三维特性,能够加快网络模型的收敛速度,能够使得生成器所得结果更好的收敛到我们所期望的地方;最后,本发明以已经拥有的点云数据为基准最终得到相对应的三维模型,能够应用于多种多样的单个物体,并且在多个模型的不同部分的拼接任务中能够生成较为光滑的过度区域,而不会很出现非常突兀的变化。
[0081]
相应地,本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述一种基于生成对抗网络的点云三维重建方法的步骤。同时,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于生成对抗网络的点云三维重建方法的步骤。
[0082]
以上对本发明实施例所提供的一种基于生成对抗网络的点云三维重建方法、系
统、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1