从三视图重建三维模型的方法、装置、设备及存储介质与流程

文档序号:30611856发布日期:2022-07-01 23:53阅读:303来源:国知局
从三视图重建三维模型的方法、装置、设备及存储介质与流程

1.本公开一般涉及模型构建技术领域,具体涉及一种从三视图重建三维模型的方法、装置、设备及存储介质。


背景技术:

2.从三个正交投影的视图重建三维物体是计算机辅助设计领域长期存在的一个问题。该问题成功的解决方案可以使得用户在二维交互界面上通过绘制草图来方便地创建三维物体模型。
3.在现有技术中,正交投影是三维模型构建中最常用的一种方法,其步骤为:首先通过正交视图中的二维顶点生成的所有可能的三维顶点,这些方法逐步枚举所有可能的三维边、三维面和实心体,然后将这些候选者重投影到每个视图上,以检查是否存在匹配。该方法的不足之处为:物体的类型局限于一些常见类型的面,包括平面和有限的二次曲面,例如圆柱体、球体和环面,当出现复杂物体时,例如由两个相交的二次曲面形成的高阶曲线或b样条曲线时,搜索成本变得极其高昂,另外,搜索所有有效的面的过程,尤其是曲面,非常复杂,每个步骤往往需要多次重投影以检查必要条件;由于中间步骤的歧义性,可能还会采取回溯和启发式方法,导致流程复杂,效率比较低。


技术实现要素:

4.鉴于现有技术中的上述缺陷或不足,期望提供一种从三视图重建三维模型的方法、装置、设备及存储介质,能够符合目前在从三视图重建三维模型的具体需求。
5.基于本发明实施例的一个方面,本技术实施例提供了一种从三视图重建三维模型的方法,所述方法包括:
6.获取每一个视图的二维边在三维空间的反向投影;
7.依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边,所述三个不同视图包括正视图、俯视图和侧视图;
8.依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环,每一个所述实际面的环与三维空间物体的实际面相对应;
9.依据所述通过深度神经网络构建的候选边所形成实际面的环,获取所述实际面的环通过拟合参数化模型而获得的三维模型。
10.在另一个实施例中,所述依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边,包括:
11.获取对三维空间进行体素化的多个三维体素;
12.依据所述对三维空间进行体素化的多个三维体素,获取每个所述三维体素投影到三个不同视图的二维视图的位置;
13.依据所述每个所述三维体素投影到三个不同视图的二维视图的位置,获取每一个
所述三维体素在每一个所述不同视图的二维视图的匹配线信息;
14.依据所述每一个所述三维体素在每一个所述不同视图的二维视图的匹配线信息,获取所述三维体素中的三维候选体素;
15.依据所述三维候选体素,获取在所述三个不同视图的二维视图中具有相同匹配线的三维候选体素构建为三维候选边。
16.在另一个实施例中,所述三维候选边与所述二维视图的三个不同视图的匹配线相关联。
17.在另一个实施例中,所述依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环,包括:
18.依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取构建三维空间面的共边,所述共边为相邻两个三维空间面共享的一条候选边;
19.依据所述构建三维空间面的共边和pointer net深度神经网络,获取所述三维候选边构建的实际面的环。
20.在另一个实施例中,所述pointer net深度神经网络,包括:
21.使用编码器为每个输入向量获取上下文嵌入向量,所述输入向量由所述共边组成;
22.在每个解码步骤,解码器输出一个指针向量;
23.通过点积将所述指针向量与所述上下文嵌入向量进行比较,使用softmax算法对比较结果分数进行归一化,以获得在输入集合上的有效概率分布;
24.通过最大化训练集的条件概率学习模型的参数。
25.在另一个实施例中,所述使用编码器为每个输入向量获取上下文嵌入向量时,每个输入向量由共边组成,每个共边嵌入向量包括:
26.值嵌入,表示共边的坐标值;
27.位置嵌入,表示输入向量的位置。
28.基于本发明实施例的另一个方面,公开一种从三视图重建三维模型的装置,所述装置包括:
29.候选线生成模块,用于获取每一个视图的二维边在三维空间的反向投影;依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边,所述三个不同视图包括正视图、俯视图和侧视图;
30.基于深度神经网络的面检测模块,用于依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环,每一个所述实际面的环与三维空间物体的实际面相对应;
31.模型重建模块,用于依据所述通过深度神经网络构建的候选边所形成实际面的环,获取所述实际面的环通过拟合参数化模型而获得的三维模型。
32.基于本发明实施例的又一个方面,公开一种电子设备,所述电子设备包括一个或者多个处理器和存储器,存储器,用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,使得所述处理器实现本发明各实施例提供的从三视图重建三维模型的方法。
33.基于本发明实施例的又一个方面,公开一种存储有计算机程序的计算机可读存储
介质,该计算机程序被执行时实现本发明各实施例提供的从三视图重建三维模型的方法。
34.在本技术实施例中,通过获取每一个视图的二维边在三维空间的反向投影;依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边;依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环;依据所述通过深度神经网络构建的候选边所形成实际面的环,获取所述实际面的环通过拟合参数化模型而获得的三维模型。本技术能够简单且高效的办法来解决cad中三维模型重建问题,在恢复物体的拓扑信息时避免了对几何形状类型的限制,应用范围更广。
附图说明
35.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
36.图1是本技术一个实施例提供的从三视图重建三维模型的方法的应用场景图;
37.图2是本技术一个实施例提供的从三视图重建三维模型的方法的流程图;
38.图3为本技术一个实施例提供的从三视图重建三维模型的装置的结构示意图;
39.图4是本技术一个实施例提供的电子设备的内部结构图。
具体实施方式
40.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
41.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
42.本技术提供的从三视图重建三维模型的方法,可以应用于如图1所示的应用环境中。该从三视图重建三维模型的方法应用于从三视图重建三维模型的装置中。该从三视图重建三维模型的装置可以配置在终端102或者服务器104,或者部分配置在终端102,部分配置在服务器104中,由终端102与服务器104交互完成从三视图重建三维模型的方法。
43.其中,终端102与服务器104可以通过网络进行通信。
44.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,终端102需具有接收、查看、编辑、分享共享的三维模型场景的功能,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
45.在一个实施例中,如图2所示,提供了一种从三视图重建三维模型的方法。本实施例主要以该方法应用于图1中的终端102来举例说明。
46.请参考图2,其示出了可以应用本技术实施例的从三视图重建三维模型的方法的示例性流程。
47.如图2所示,在步骤210中,获取每一个视图的二维边在三维空间的反向投影。
48.具体的,一个物体的三维模型可以用面来表示,一个物体是由有限数量的有界曲面构建而成,每个曲面由形成它的边界的一组边表示,每条边由它的两个端点表示。视图由三个正交投影组成,即正视图、俯视图和侧视图,每个视图都可以看作为一个由二维边和顶
点构成的图。物体的每条三维边都必须投影到每个视图里的一个或多个二维元素上。
49.在步骤220中,依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边,所述三个不同视图包括正视图、俯视图和侧视图。
50.具体的,给定正视图、俯视图和侧视图的二维线分别表示为:就生成了可能位于物体边界的三维候选边。通过匹配不同视图中的参数化线条或曲线,并计算三维空间参数表示来实现。
51.具体的,在本技术的一个实施例中,所述依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边,包括:
52.获取对三维空间进行体素化的多个三维体素;
53.依据所述对三维空间进行体素化的多个三维体素,获取每个所述三维体素投影到三个不同视图的二维视图的位置;
54.依据所述每个所述三维体素投影到三个不同视图的二维视图的位置,获取每一个所述三维体素在每一个所述不同视图的二维视图的匹配线信息;
55.依据所述每一个所述三维体素在每一个所述不同视图的二维视图的匹配线信息,获取所述三维体素中的三维候选体素;
56.依据所述三维候选体素,获取在所述三个不同视图的二维视图中具有相同匹配线的三维候选体素构建为三维候选边。
57.具体的,使用拥有d3个三维体素的网格v对三维空间进行三维体素化,将每个三维体素v∈v投影到二维视图,查看它是否位于任何一条线上。如果一个三维体素在每个二维视图中至少有一条匹配线,则该三维体素被视为三维候选体素,将三个不同视图的二维视图中所有具有相同匹配线的三维候选体素组为一条候选边。
58.比如,一个生成的候选边可以表示为每条边en都与一个唯一的三个不同视图的二维视图(in,jn,kn)相关联,其中in、jn和kn分别是正视图、俯视图和侧视图中的匹配线的索引集合。如果三维体素投影到该视图里二维线的交界点,则每个集合可能包含多个索引。集合可能包含多个线的索引,比如当这些三维体素在对应的视图投影到了二维线的交点。所述三维候选边与所述二维视图的三个不同视图的匹配线相关联。
59.在步骤230中,依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环,每一个所述实际面的环与三维空间物体的实际面相对应。
60.具体的,在本技术的一个实施例中,所述依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环,包括:
61.依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取构建三维空间面的共边,所述共边为相邻两个三维空间面共享的一条候选边;
62.依据所述构建三维空间面的共边和pointer net深度神经网络,获取所述三维候选边构建的实际面的环。
63.具体的,在本技术的一个实施例中,所述pointer net深度神经网络,包括:
64.使用编码器为每个输入向量获取上下文嵌入向量,所述输入向量由所述共边组成;
65.在每个解码步骤,解码器输出一个指针向量;
66.通过点积将所述指针向量与所述上下文嵌入向量进行比较,使用softmax算法对比较结果分数进行归一化,以获得在输入集合上的有效概率分布;
67.通过最大化训练集的条件概率学习模型的参数。
68.具体的,在本技术的一个实施例中,所述使用编码器为每个输入向量获取上下文嵌入向量时,每个输入向量由共边组成,每个共边嵌入向量包括:
69.值嵌入,表示共边的坐标值;
70.位置嵌入,表示输入向量的位置。
71.具体的,共边是沿着边的长度,分割为具有不同方向的边。每一条边刚好都有两条指向相反方向的共边。一个面可以方便地表示为一个或更多的由共边构成的环,在本技术的实施例中,环就是闭合的路径,而每一条边恰好被两个面共享,一个面对应一条共边。
72.一个面的共边的顺序定义为从共边的方向看,面总是在共边的左侧。将面的识别转化为序列生成问题,从任意的候选共边c
n1
开始,生成一个共边序列来代表一个面fm={c
n1


,c
nt
},其中n是介于1和n_e之间的整数。为了检测所有的面f,我们可以将候选共边c中的每条候选共边作为起始共边,并重复该过程n_e次。
73.具体的,在本技术的实施例中,使用pointer net深度神经网络来进行面模型的识别。pointer net深度神经网络旨在生成一个输出序列,其序列组成来自于输入序列。具体来说,给定输入向量的序列p={p1,p2,...},pointer net深度神经网络的学习条件概率:其中n=(n1,n2,...,n
t
)是由t个索引组成的序列,每个索引在1和|p|之间。
74.pointer net深度神经网络采用编码器解码器的架构。它使用编码器为每个输入向量获取上下文嵌入向量wi。在每个解码步骤t,解码器输出一个指针向量u
t
,通过点积将它与输入嵌入向量进行比较。使用softmax对结果分数进行归一化,以获得在输入集合上的有效概率分布:
[0075][0076]ut
=decoder(n《t,p;θ);
[0077][0078]
通过最大化训练集的条件概率来学习模型的参数。
[0079]
对于输入向量和嵌入向量。输入向量由所有候选共边c组成。添加一个停止词元[eos]来表明序列的结束。对每条共边使用两种不同嵌入向量:一种是值嵌入,表示共边的坐标值;另一种是位置嵌入,表示序列中的词元的位置。由于共边的长度不同,采样固定数量的点来代表每条共边。为了避免直接在三维体素的栅格中采样造成的采样误差,将三维体素投影到每个视图上,并在二维线上采样,这些点按照共边的方向排序。将采样的点展平并应用两个线性层以获得一个512维度的嵌入向量。
[0080]
对于输出向量和嵌入向量。由于定义了每个面作为候选共边的一条序列,输出序列可表示为fm={c
n1
,c
n2
...,c
nt
}。当一个面由多个环组成,除了起始共边所属的环,对其他
环中的共边按其索引从低到高进行排序。
[0081]
由于从每条候选共边去预测面,结果中存在很多重复的面预测。如果两个输出序列由同一组共边组成,它们必然对应同一个面,并且两者可以合并。
[0082]
此外,重复的预测可以过滤掉错误的输出序列。如果c

出现在含有起始共边c的真实输出序列中,那么c也应该出现在具有起始共边c

的真实输出序列中。对所有面的预测提出一个一致性指标。具体来说,令f(c)表示以共边c起始的面的预测序列,定义面预测的一致性分数为f(c
n1
)={c
n1
,c
n2
,

,c
nt
}如下:
[0083][0084]
丢弃一致性分数低于阈值δ的面的预测。
[0085]
在步骤240中,依据所述通过深度神经网络构建的候选边所形成实际面的环,获取所述实际面的环通过拟合参数化模型而获得的三维模型。
[0086]
具体的,在本技术的实施例中,基于open cascade technology的brepbuilder apis实现重建算法,通过识别出属于同一对面的候选边,从边的相交点中恢复顶点,为了恢复物体的几何信息,将边上的点拟合为参数化模型。将参数化模型限制为线段和圆弧。基于面的预测,利用brepbuilderapi_makewire将边连接成线,通过brepbuilderapi_makeface从中获得面的参数化模型。
[0087]
本技术的从三视图重建三维模型的方法通过获取每一个视图的二维边在三维空间的反向投影;依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边;依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环;依据所述通过深度神经网络构建的候选边所形成实际面的环,获取所述实际面的环通过拟合参数化模型而获得的三维模型。本技术能够简单且高效的办法来解决cad中三维模型重建问题,在恢复物体的拓扑信息时避免了对几何形状类型的限制,应用范围更广。
[0088]
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0089]
图3是本技术一个实施例提供的从三视图重建三维模型的装置的结构示意图,如图3所示,所述从三视图重建三维模型的装置包括:
[0090]
候选线生成模块、基于深度神经网络的面检测模块、模型重建模块;
[0091]
候选线生成模块,用于获取每一个视图的二维边在三维空间的反向投影;依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边,所述三个不同视图包括正视图、俯视图和侧视图;
[0092]
基于深度神经网络的面检测模块,用于依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环,每一个所述实际面的环与三维空间物体的实际面相对应;
[0093]
模型重建模块,用于依据所述通过深度神经网络构建的候选边所形成实际面的环,获取所述实际面的环通过拟合参数化模型而获得的三维模型。
[0094]
具体的,在本技术的另一个实施例中,所述候选线生成模块用于获取对三维空间进行体素化的多个三维体素;依据所述对三维空间进行体素化的多个三维体素,获取每个所述三维体素投影到三个不同视图的二维视图的位置;依据所述每个所述三维体素投影到三个不同视图的二维视图的位置,获取每一个所述三维体素在每一个所述不同视图的二维视图的匹配线信息;依据所述每一个所述三维体素在每一个所述不同视图的二维视图的匹配线信息,获取所述三维体素中的三维候选体素;依据所述三维候选体素,获取在所述三个不同视图的二维视图中具有相同匹配线的三维候选体素构建为三维候选边。
[0095]
具体的,在本技术的另一个实施例中,所述基于深度神经网络的面检测模块用于依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取构建三维空间面的共边,所述共边为相邻两个三维空间面共享的一条候选边;依据所述构建三维空间面的共边和pointer net深度神经网络,获取所述三维候选边构建的实际面的环。
[0096]
本技术的从三视图重建三维模型的装置通过候选线生成模块获取每一个视图的二维边在三维空间的反向投影;依据所述每一个视图的二维边在三维空间的反向投影,获取三个不同视图的反向投影相交的所有点所构建的三维候选边,所述三个不同视图包括正视图、俯视图和侧视图;基于深度神经网络的面检测模块依据所述三个不同视图的反向投影相交的所有点所构建的三维候选边,获取通过深度神经网络构建的候选边所形成实际面的环,每一个所述实际面的环与三维空间物体的实际面相对应;模型重建模块依据所述通过深度神经网络构建的候选边所形成实际面的环,获取所述实际面的环通过拟合参数化模型而获得的三维模型。本技术能够简单且高效的办法来解决cad中三维模型重建问题,在恢复物体的拓扑信息时避免了对几何形状类型的限制,应用范围更广。
[0097]
关于从三视图重建三维模型的装置的具体限定可以参见上文中对于从三视图重建三维模型的方法的限定,在此不再赘述。上述从三视图重建三维模型的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0098]
特别地,根据本公开的实施例,如图4所示,本发明公开一种电子设备,该设备包括一个或者多个处理器和存储器,存储器,用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,使得所述处理器实现本发明实施例所述的从三视图重建三维模型的方法。
[0099]
特别地,根据本公开的实施例,上述任一实施例描述的从三视图重建三维模型的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行从三视图重建三维模型的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
[0100]
所述一个或多个程序被存储在只读存储器rom中的程序或者随机访问存储器ram中的程序而执行各种适当的动作和处理。在随机访问存储器ram中,包括服务器完成相应业务的软件程序,还包括车辆驾驶操作所需的各种程序和数据。服务器与其被控制的硬件设
备、只读存储器rom、随机访问存储器ram通过总线彼此相连,各种输入/输出接口也连接至总线。
[0101]
以下部件连接至输入/输出接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管crt、液晶显示器lcd等以及扬声器等的输出部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至输入/输出接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储器。
[0102]
特别地,根据本公开的实施例,上述任一实施例描述的从三视图重建三维模型的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行从三视图重建三维模型的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
[0103]
描述于本技术实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中。这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0104]
以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1