一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

对象三维重建方法、装置、电子设备及存储介质与流程

2021-10-29 20:17:00 来源:中国专利 TAG:电子设备 重建 装置 对象 视觉


1.本公开涉及计算机视觉技术领域,尤其涉及一种对象三维重建方法、装置、电子设备及存储介质。


背景技术:

2.随着自拍、短视频等功能的普及,对象美颜及相关脸部特效的需求也逐渐加强。其中,很多特效依赖于3d(three dimensions,三维)人头模型,例如影视动漫特效等,其中就包含二次元风格的3d人头模型。如何使用较少的设计资源建立大量的二次元3d人头模型供线上特效使用,成为了一个非常重要的问题。相关技术方案中,依靠3d设计师设计每一个二次元3d人头模型,每个人头模型大概要耗费2个人一周的时间,设计工作量巨大。
3.综上,目前还没有一种简单高效的方法供设计师使用,因此在设计二次元3d人头模型比较耗时,效率较低。


技术实现要素:

4.本公开提供一种对象三维重建方法、装置、电子设备及存储介质,以至少解决相关技术中对象三维重建效率低的问题。本公开的技术方案如下:
5.根据本公开实施例的第一方面,提供一种对象三维重建方法,包括:
6.获取二维目标图像包含的对象中各个部位的关键信息,其中所述关键信息包括关键点和/或蒙版图像;
7.基于所述关键信息,获得由第一差异和第二差异确定的损失函数,其中所述第一差异为根据所述对象的三维目标网格在二维空间的投影确定的关键信息与根据所述二维目标图像获取的关键信息之间的差异,所述第二差异为所述三维目标网格中各个顶点与相邻顶点的相对位置,与所述对象的预设三维网格中各个顶点与相邻顶点的相对位置之间的差异;
8.确定所述损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标;
9.根据确定的各个顶点的位置坐标进行三维重建,生成与所述对象对应的三维模型。
10.在一种可选的实施方式中,所述二维目标图像是按照预设图层次序将所述各个部位的分层图像叠加得到的,每个所述分层图像包括至少一个对象的部位,不同的分层图像包括的部位不同;
11.所述获取二维目标图像包含的对象中各个部位的关键信息,包括:
12.获取所述二维目标图像包含的对象中各个部位的分层图像,其中所述各个部位的分层图像是根据预设的各个部位的分层模板生成的;
13.从所述各个部位的分层图像中提取与各个部位对应的关键信息。
14.在一种可选的实施方式中,所述获取二维目标图像包含的对象中各个部位的关键信息,包括:
15.针对任意一个部位,将所述二维目标图像中与所述部位对应的图像转换为蒙版图像,并将所述蒙版图像作为所述部位的关键信息;或
16.针对任意一个部位,提取所述部位在所述二维目标图像中对应的关键点,并将提取的关键点作为所述部位的关键信息。
17.在一种可选的实施方式中,在所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,还包括:
18.若所有部位的关键信息都为蒙版图像,则将各个部位对应的第一蒙版向量和第二蒙版向量的距离之和作为所述第一差异;其中,部位对应的第一蒙版向量为根据所述投影获得的所述部位的蒙版图像中所有像素点的位置坐标组合得到的,部位对应的第二蒙版向量为根据所述二维目标图像获得的所述部位的蒙版图像中所有像素点的位置坐标组合得到的。
19.在一种可选的实施方式中,在所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,还包括:
20.若所有部位的关键信息都为关键点,则将各个部位对应的第一位置向量和第二位置向量的距离之和作为所述第一差异;其中,部位对应的第一位置向量是根据所述投影获得的所述部位的关键点的位置向量,部位对应的第二位置向量是根据所述二维目标图像获得的所述部位的关键点的位置向量。
21.在一种可选的实施方式中,在所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,还包括:
22.若所有部位中第一目标部位的关键信息为蒙版图像,第二目标部位的关键信息为关键点,则将各个第一目标部位对应的第一蒙版向量与第二蒙版向量的距离之和作为蒙版差异,以及将各个第二目标部位对应的第一位置向量与第二位置向量的距离之和作为关键点差异,并根据所述蒙版差异和所述关键点差异确定所述第一差异。
23.在一种可选的实施方式中,在所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,还包括:
24.针对任意一个部位,确定所述部位在所述二维目标图像中所占的面积;
25.若所述部位所占的面积大于预设阈值,则确定所述部位为第一目标部位;
26.若所述部位所占的面积不大于预设阈值,则确定所述部位为第二目标部位。
27.在一种可选的实施方式中,在所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,还包括:
28.将所述三维目标网格中各个顶点的拉普拉斯坐标组合得到的第一坐标向量,与所述预设三维网格中各个顶点的拉普拉斯坐标组合得到的第二坐标向量之间的距离,作为所述第二差异。
29.在一种可选的实施方式中,所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数,包括:
30.根据所述第一差异、所述第二差异以及第三差异确定所述损失函数,其中所述第三差异包括所述三维目标网格中各个顶点的法向量与所述预设三维网格中各个顶点的法向量之间的法向量差异,和/或所述三维目标网格中各个边的边长与所述预设三维网格中各个边的边长之间的边长差异。
31.在一种可选的实施方式中,在所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,还包括:
32.将所述三维目标网格中各个顶点的法向量坐标组合得到的第一法向量,与所述预设三维网格中各个顶点的法向量坐标组合得到的第二法向量之间的距离,作为所述法向量差异。
33.在一种可选的实施方式中,在所述基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,还包括:
34.将所述三维目标网格中各个边的边长组合得到的第一边长向量,与所述预设三维网格中各个边的边长组合得到的第二边长向量之间的距离,作为所述边长差异。
35.在一种可选的实施方式中,所述根据确定的各个顶点的位置坐标进行三维重建,生成与所述二维目标图像中的对象对应的三维模型,包括:
36.根据所述各个顶点的位置坐标对所述预设三维网格中顶点的位置进行调整;
37.对调整后的预设三维网格进行纹理渲染,生成与所述二维目标人脸图像对应的三维模型。
38.根据本公开实施例的第二方面,提供一种对象三维重建装置,包括:
39.信息获取单元,被配置为执行获取二维目标图像包含的对象中各个部位的关键信息,其中所述关键信息包括关键点和/或蒙版图像;
40.函数构建单元,被配置为执行基于所述关键信息,获得由第一差异和第二差异确定的损失函数,其中所述第一差异为根据所述对象的三维目标网格在二维空间的投影确定的关键信息与根据所述二维目标图像获取的关键信息之间的差异,所述第二差异为所述三维目标网格中各个顶点与相邻顶点的相对位置,与所述对象的预设三维网格中各个顶点与相邻顶点的相对位置之间的差异;
41.顶点确定单元,被配置为执行确定所述损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标;
42.三维重建单元,被配置为执行根据确定的各个顶点的位置坐标进行三维重建,生成与所述对象对应的三维模型。
43.在一种可选的实施方式中,所述二维目标图像是按照预设图层次序将所述各个部位的分层图像叠加得到的,每个所述分层图像包括至少一个对象的部位,不同的分层图像包括的部位不同;
44.所述信息获取单元具体被配置为执行:
45.获取所述二维目标图像包含的对象中各个部位的分层图像,其中所述各个部位的分层图像是根据预设的各个部位的分层模板生成的;
46.从所述各个部位的分层图像中提取与各个部位对应的关键信息。
47.在一种可选的实施方式中,所述信息获取单元具体被配置为执行:
48.针对任意一个部位,将所述二维目标图像中与所述部位对应的图像转换为蒙版图像,并将所述蒙版图像作为所述部位的关键信息;或
49.针对任意一个部位,提取所述部位在所述二维目标图像中对应的关键点,并将提取的关键点作为所述部位的关键信息。
50.在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确
定的损失函数之前,所述函数构建单元还被配置为执行:
51.若所有部位的关键信息都为蒙版图像,则将各个部位对应的第一蒙版向量和第二蒙版向量的距离之和作为所述第一差异;其中,部位对应的第一蒙版向量为根据所述投影获得的所述部位的蒙版图像中所有像素点的位置坐标组合得到的,部位对应的第二蒙版向量为根据所述二维目标图像获得的所述部位的蒙版图像中所有像素点的位置坐标组合得到的。
52.在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元还被配置为执行:
53.若所有部位的关键信息都为关键点,则将各个部位对应的第一位置向量和第二位置向量的距离之和作为所述第一差异;其中,部位对应的第一位置向量是根据所述投影获得的所述部位的关键点的位置向量,部位对应的第二位置向量是根据所述二维目标图像获得的所述部位的关键点的位置向量。
54.在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元还被配置为执行:
55.若所有部位中第一目标部位的关键信息为蒙版图像,第二目标部位的关键信息为关键点,则将各个第一目标部位对应的第一蒙版向量与第二蒙版向量的距离之和作为蒙版差异,以及将各个第二目标部位对应的第一位置向量与第二位置向量的距离之和作为关键点差异,并根据所述蒙版差异和所述关键点差异确定所述第一差异。
56.在一种可选的实施方式中,所有部位中第一目标部位的关键信息为蒙版图像,第二目标部位的关键信息为关键点;
57.在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元还被配置为执行:
58.针对任意一个部位,确定所述部位在所述二维目标图像中所占的面积;
59.若所述部位所占的面积大于预设阈值,则确定所述部位为第一目标部位;
60.若所述部位所占的面积不大于预设阈值,则确定所述部位为第二目标部位。
61.在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元还被配置为执行:
62.将所述三维目标网格中各个顶点的拉普拉斯坐标组合得到的第一坐标向量,与所述预设三维网格中各个顶点的拉普拉斯坐标组合得到的第二坐标向量之间的距离,作为所述第二差异。
63.在一种可选的实施方式中,所述函数构建单元具体被配置为执行:
64.根据所述第一差异、所述第二差异以及第三差异确定所述损失函数,其中所述第三差异包括所述三维目标网格中各个顶点的法向量与所述预设三维网格中各个顶点的法向量之间的法向量差异,和/或所述三维目标网格中各个边的边长与所述预设三维网格中各个边的边长之间的边长差异。
65.在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元还被配置为执行:
66.将所述三维目标网格中各个顶点的法向量坐标组合得到的第一法向量,与所述预设三维网格中各个顶点的法向量坐标组合得到的第二法向量之间的距离,作为所述法向量
差异。
67.在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元还被配置为执行:
68.将所述三维目标网格中各个边的边长组合得到的第一边长向量,与所述预设三维网格中各个边的边长组合得到的第二边长向量之间的距离,作为所述边长差异。
69.在一种可选的实施方式中,所述三维重建单元具体被配置为执行:
70.根据所述各个顶点的位置坐标对所述预设三维网格中顶点的位置进行调整;
71.对调整后的预设三维网格进行纹理渲染,生成与所述二维目标人脸图像对应的三维模型。
72.根据本公开实施例的第三方面,提供一种电子设备,包括:
73.处理器;
74.用于存储所述处理器可执行指令的存储器;
75.其中,所述处理器被配置为执行所述指令,以实现本公开实施例第一方面中任一项所述的对象三维重建方法。
76.根据本公开实施例的第四方面,提供一种非易失性可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例第一方面中任一项所述的对象三维重建方法。
77.根据本公开实施例的第五方面,提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述第一方面以及第一方面任一可能涉及的方法。
78.本公开的实施例提供的技术方案至少带来以下有益效果:
79.由于本公开实施例并非直接构建三维模型,而是基于二维目标图像来构建,并且预先设置了标准的对象三维网格,即对象的预设三维网格,在本公开实施例中,基于关键信息获取根据待确定的三维目标网格在二维空间的投影确定的关键信息与根据二维目标图像确定的关键信息之间的第一差异,以及对象的三维目标网格与预设三维网格之间的第二差异,由第一差异和第二差异确定的损失函数取最小值时所使用的三维目标网格中各个顶点的坐标,即根据第一差异和第二差异构建的目标函数取最小值时所确定的解,因此基于上述信息可以直接得到与二维目标图像对应的三维目标网格中各个顶点的位置坐标,基于这些顶点坐标即可构建三维网格,进而则可直接获取与对象对应的三维模型,本公开实施例基于二维图像来构建三维模型,可以快速实现对象三维重建,提高效率。
80.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
81.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
82.图1是根据一示例性实施例示出的一种对象三维重建方法的流程图;
83.图2是根据一示例性实施例示出的一种二维目标图像的示意图;
84.图3是根据一示例性实施例示出的一种面部皮肤图层的示意图;
85.图4是根据一示例性实施例示出的一种嘴部图层的示意图;
86.图5是根据一示例性实施例示出的一种鼻子图层的示意图;
87.图6是根据一示例性实施例示出的一种左眼图层的示意图;
88.图7是根据一示例性实施例示出的一种右眼图层的示意图;
89.图8a是根据一示例性实施例示出的另一种二维目标图像的示意图;
90.图8b是根据一示例性实施例示出的一种三维人脸图像的示意图;
91.图9是根据一示例性实施例示出的一种对象三维重建的完整方法流程图;
92.图10是根据一示例性实施例示出的一种人脸三维重建的完整方法示意图;
93.图11是根据一示例性实施例示出的一种对象三维重建装置的框图;
94.图12是根据一示例性实施例示出的一种电子设备的框图;
95.图13是根据一示例性实施例示出的一种计算装置的框图。
具体实施方式
96.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
97.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
98.下面对文中出现的一些词语进行解释:
99.1、本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
100.2、本公开实施例中术语“电子设备”可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
101.3、本公开实施例中术语“三维重建”是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。在本公开实施例中,三维重建是指基于包含对象的二维目标图像确定出与对象相关的各个部位的关键信息之后,以关键信息为基础,基于对象预设的三维网格构建与对象的三维模型。
102.4、本公开实施例中术语“渲染”是将一个三维的物体投影到一个二维的平面上。即使用二维平面来表示三维图形。也就是已知三维模型的顶点、颜色和三角形信息,得到对应三维模型的二维平面图。
103.5、本公开实施例中术语“蒙版”指选框的外部(选框的内部就是选区)。在本公开实施例中蒙版图像指可以表示各个部位轮廓的图像。例如在左眼部位对应的蒙版图像中,左眼区域内像素点的像素值为1.0,背景区域(非左眼区域)内像素点的像素值为0.0,其中像素值为1在蒙版图像中表示为白色,像素值为0表示为黑色。在本公开实施例中,任一部位的
蒙版图像可根据分层图像直接转换得到,也可从不分层的二维图像中确定与该部位对应的区域(图像),进一步进行转换得到。
104.6、本公开实施例中术语“拉普拉斯(laplacian)坐标”是指将网格顶点的欧氏空间坐标经过拉普拉斯算子转换得到的。拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,定义为梯度的散度laplacian坐标包含了网格的局部细节特征,能够较好地保持网格模型的局部细节。因此laplacian坐标高效、鲁棒。
105.7、本公开实施例中术语“对象”指进行三维重建时的目标事物,例如人脸(可以是二次元人脸),卡通动物面部,或是其他类人脸的目标事务等。
106.8、本公开实施例中术语“关键信息”指图像中与对象的各个部位相关的关键位置、区域或是轮廓等相关的信息,例如蒙版图像或是关键点等。
107.本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义。
108.图1是根据一示例性实施例示出的一种对象三维重建方法的流程图,如图1所示,包括以下步骤。
109.在步骤s11中,获取二维目标图像包含的对象中各个部位的关键信息,其中关键信息包括关键点和/或蒙版图像;
110.在步骤s12中,基于关键信息,获得由第一差异和第二差异确定的损失函数,其中第一差异为根据对象的三维目标网格在二维空间的投影确定的关键信息与根据二维目标图像获取的关键信息之间的差异,第二差异为三维目标网格中各个顶点与相邻顶点的相对位置,与对象的预设三维网格中各个顶点与相邻顶点的相对位置之间的差异;
111.其中,三维目标网格中的顶点有很多,以三角面组成的三维网格为例,相邻三角面会存在共用边,共用顶点的情况,与某一顶点相邻的各个顶点,可以是与该顶点属于同一条边的顶点。根据各个顶点和相邻顶点的相对位置,即可确定与每个顶点相对于周围顶点的相对位置,当三维目标网格中的每个顶点相对于周围顶点的相对位置,和预设三维网格中的相对位置的顶点相对于周围顶点的相对位置一致的话,就会比较平滑。
112.在步骤s13中,确定损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标;
113.在步骤s14中,根据确定的各个顶点的位置坐标进行三维重建,生成与对象对应的三维模型。
114.在本公开实施例中,对象不同,对象的预设三维网格也不相同,例如对象为人脸时,预设三维网格为人脸的三维网格模型,对象为卡通动物面部时,预设三维网格为卡通动物面部的三维网格模型。
115.其中,无论是三维目标网格还是预设三维网格都是三维网格,是由一个一个网格拼接而成的3d模型,一般是由三角面片拼接而成的,即三维网格中的网格是一个一个的三角形,向量三角形之间共用一部分顶点。
116.需要说明的是,本公开实施例中的预设三维网格是预先制作好的一个标准的三维网格,以对象为人脸为例,则人脸的预设三维网格即可是一个标准的3d人头模型,模型中各
个顶点的位置是固定的,预先设置好的;而三维目标网格是与二维目标图像中的对象相对应的,在本公开实施例中,三维目标网格中各个顶点的位置坐标是自变量,因此基于第一差异和第二差异确定的损失函数是与自变量相关的因变量,在损失函数取最小值时,所获得的解即损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标。基于此时确定的位置坐标即可生成符合二维目标图像中对象的三维模型。
117.在上述实施方式中,由于本公开实施例并非直接构建三维模型,而是基于二维目标图像来构建,并且预先设置了标准的对象三维网格,即对象的预设三维网格,在本公开实施例中,基于关键信息获取根据待确定的三维目标网格在二维空间的投影确定的关键信息与根据二维目标图像确定的关键信息之间的第一差异,以及对象的三维目标网格与预设三维网格之间的第二差异,由第一差异和第二差异确定的损失函数取最小值时所使用的三维目标网格中各个顶点的坐标,即根据第一差异和第二差异构建的目标函数取最小值时所确定的解,因此基于上述信息可以直接得到与二维目标图像对应的三维目标网格中各个顶点的位置坐标,基于这些顶点坐标即可构建三维网格,进而则可直接获取与对象对应的三维模型,本公开实施例基于二维图像来构建三维模型,可以快速实现对象三维重建,提高效率。
118.在一种可选的实施方式中,若二维目标图像是由分层图像叠加得到的,其中二维目标图像包含的对象是按照预设图层次序将各个部位的分层图像叠加得到的,每个分层图像包括至少一个对象的部位,且不同的分层图像包括的部位不同,则在获取二维目标图像包含的对象中各个部位的关键信息时,具体方式如下:
119.获取二维目标图像包含的对象中各个部位的分层图像;从各个部位的分层图像中提取与各个部位对应的关键信息。
120.本公开实施例中,各个部位的分层图像是根据预设的各个部位的分层模板生成的,具体的,这些分层图像可以是(动画)设计师在制作三维模型时,根据自己的意愿或是需求自行设计的,也可以是从预先设计好并存储在数据库中的预设模板。例如数据库中有与各个部位相关的分层图像,且不同部位对应的分层图像包括各种类型,比如针对左眼或是右眼这一部位,可以分为大眼睛、小眼睛、圆眼睛、月牙眼等,每个部位选取一个预设模板,按照预设图层次序叠加即可得到二维目标图像。
121.在本公开实施例中,图像分层可以很方便地识别各个部位对应的关键信息,并且基于分层图像生成的三维模型中的纹理更加完整,例如不分层的情况下,眼睛可能会遮挡一部分面部皮肤,基于此生成的三维模型去展示一些动作时,在眨眼睛时,闭眼状态下会导致眼皮部分的纹理信息缺失。而采用分层图像时,可以得到各个部位完整的纹理特征,基于此生成的三维模型的纹理会更加完整,此时在闭眼状态下眼皮部分的纹理也是完整的。
122.以对象为人脸为例,各个部位的分层图像包括但不限于下列的部分或全部:
123.面部皮肤图层、嘴部图层、鼻子图层、左眼图层、右眼图层。
124.图2为多个分层图像按照预设图层次序叠加得到的,其中预设图层次序自下而上为面部皮肤图层、嘴部图层、鼻子图层、左眼图层和右眼图层。如图3至图7所示,为图2所示的二维目标图像包含的各个分层图像,其中图3为面部皮肤图层,图4为嘴部图层,图5为鼻子图层,图6为左眼图层,图7为右眼图层。
125.在一种可选的实施方式中,获取二维目标图像包含的对象中各个部位的关键信息
时,针对任意一个部位,可以分为以下两种方式:
126.获取方式一、将二维目标图像中与某一部位对应的图像转换为蒙版图像,并将蒙版图像作为该部位的关键信息。
127.其中,可基于图像分割等方法,将二维目标图像中的某一部位作为前景,其他作为背景,对图像进行分割,得到某一部位对应的蒙版图像。
128.假设该部位为面部,则在面部蒙版图像中,面部区域像素点为白色,其他区域像素点为黑色;或者面部区域像素点为黑色,其他区域像素点为白色,等。
129.需要说明的是,上述列举的将二维目标图像中与某一部位对应的图像转换为蒙版图像的方式只是举例说明,任何一种获取蒙版图像的方式都适用于本公开实施例。
130.该方式下,若二维目标图像包含分层图像,则与该部位对应的图像即该部位的分层图像,此时可直接根据分层图像来获取该部位的关键信息。
131.以图3所示的面部皮肤分层图像为例,将该分层图像直接转换为蒙版图像即可得到面部皮肤部位的关键信息。
132.若二维目标图像不包含分层图像时,此时则首先需要从二维目标图像中识别出与面部皮肤部位对应的区域(图像),并将该部分区域的图像转换得到的蒙版图像作为面部皮肤部位的关键信息。
133.获取方式二、提取某一部位在二维目标图像中对应的关键点,并将提取的关键点作为该部位的关键信息。
134.在本公开实施例中,基于二维目标图像获取与某一部位对应的关键点时,可以首先获取该部位的蒙版图像,基于蒙版图像可以确定出该部位的轮廓,此时可将轮廓按距离等分来确定若干关键点。
135.或者,根据分层图像直接提取,以图4所示的嘴部分层图像为例,可直接获取嘴部图层的左右两个端点作为嘴部这一部位对应的关键点,即左嘴角点和右嘴角点。
136.以图5所示的鼻子分层图像为例,则可直接将获取鼻子图层的中心点作为鼻子这一部位对应的关键点,即鼻尖点。
137.基于上述两种获取方式,在获取对象中各个部位的关键信息时,可以是所有部位的关键信息都为蒙版图像;也可以是所有部位的关键信息都为关键点;还可以是部分部位的关键信息为蒙版图像,部分部位的关键信息为关键点。
138.以对象为人脸为例,如图2所示,为本公开实施例中的一种二维目标图像的示意图,图像中包含的对象为人脸,人脸的各个部位可以划分为:面部皮肤、左眼、右眼、鼻子和嘴部。在获取对象的各个部位的关键信息时,可获取这5个部位中各个部位的图像(区域)转换得到的蒙版图像,将各个部位的蒙版图像作为关键信息;也可获取这5个部位中各个部位对应的关键点,例如面部皮肤对应有24个关键点,左眼对应6个关键点,右眼对应6个关键点,嘴部2个关键点(左嘴角和右嘴角),鼻子1个关键点(鼻尖)。
139.此外,还可以是面部皮肤和左眼、右眼的关键信息为蒙版图像,鼻子和嘴部的关键信息为关键点。具体的,将面部皮肤图层转换得到的面部蒙版图像作为面部皮肤部位对应的关键信息,将左眼图层转换得到的左眼蒙版图像作为左眼部位对应的关键信息,将从右眼图层转换得到的右眼蒙版图像作为右眼部位对应的关键信息;以及分别将从嘴部图层中提取的嘴部关键点作为嘴部部位对应的关键信息,将从鼻子图层中提取的鼻子关键点作为
鼻子部位对应的关键信息。
140.在上述实施方式中,根据不同部位提取不同类型的关键信息,可以在保证生成的三维模型符合二维目标图像中对象的基础上,有效减少计算量。
141.在本公开实施例中,第一差异主要是指根据待确定的三维目标网格的投影获得的各个部位的关键信息与根据二维目标图像获得的各个部位的关键信息之间的差异。具体的,根据各个部位关键信息的类型,可以将第一差异划分为以下三种形式,下面分别进行详细介绍:
142.形式一、若所有部位的关键信息都为蒙版图像,则将各个部位对应的第一蒙版向量和第二蒙版向量的距离之和作为第一差异;其中,部位对应的第一蒙版向量为根据投影获得的部位的蒙版图像中所有像素点的位置坐标组合得到的,部位对应的第二蒙版向量为根据二维目标图像获得的部位的蒙版图像中所有像素点的位置坐标组合得到的;例如如下公式的第一差异d1为:
[0143][0144]
其中,n1为对象中部位的总数,m为三维目标网格,r
i
(m)为渲染算子,通过r
i
(m)可以计算三维目标网格中第i个部位所在区域对应的网格在二维空间上的投影轮廓,通过向量的形式表示即可获得根据投影获得的部位的蒙版图像中所有像素点的位置坐标组合得到的第一蒙版向量;ii表示根据二维目标图像获得的部位的蒙版图像中所有像素点的位置坐标组合得到的第二蒙版向量,i取不同的值则表示不同部位的蒙版图像。
[0145]
例如面部皮肤区域为500*500时,第一蒙版向量和第二蒙版向量则是由2500个像素点的位置坐标拼接而成的长向量。
[0146]
仍以图2所示人脸为例,则人脸一共包括5个部位,n1=5,i的取值范围为0~4,i取不同的值表示人脸中的不同部位,其中i=0表示面部皮肤,i=1表示左眼,i=2表示右眼,i=3表示鼻子,i=4表示嘴部。此时,第一差异为面部皮肤对应的第一蒙版向量与第二蒙版向量之差、左眼对应的第一蒙版向量与第二蒙版向量之差、右眼对应的第一蒙版向量与第二蒙版向量之差、鼻子对应的第一蒙版向量与第二蒙版向量之差、嘴部对应的第一蒙版向量与第二蒙版向量之差,这五个差的和即第一差异,其中两个向量之差表示这两个向量之间的距离。
[0147]
在该方式下,基于第一差异(蒙版图像)的约束可以保证三维目标网格的对应区域在二维空间上的投影轮廓与基于二维目标图像获取到的各个部位的蒙版图像尽可能一致。
[0148]
形式二、若所有部位的关键信息都为关键点,则将各个部位对应的第一位置向量和第二位置向量的距离之和作为第一差异;其中,部位对应的第一位置向量是根据投影获得的部位的关键点的位置向量,部位对应的第二位置向量是根据二维目标图像获得的部位的关键点的位置向量。例如如下公式的第一差异d2:
[0149][0150]
其中,n2为各个部位对应的关键点的总数量,lm
j
(m)为关键点投影算子,用于计算
第j个关键点在二维空间上的投影,通过向量的形式表示即可获得某一部位关键点的第一位置向量,p
j
表示根据二维目标图像获得的部位对应的关键点的位置坐标表示的第二位置向量,j取不同的值则表示不同的关键点。
[0151]
仍以图2所示人脸为例,则人脸一共包括5个部位,这5个部位对应的关键点的总数量n2为39,j的取值范围为0~38,j取不同的值表示人脸中的各个部位对应的不同的关键点,例如j=0表示鼻尖点,j=1表示左嘴角点,j=2表示右嘴角点,j=3表示第一个眼部关键点,j=4表示第二个眼部关键点,等等。此时,第一差异为鼻尖点对应的第一位置向量与第二位置向量之差、左嘴角点对应的第一位置向量与第二位置向量之差、右嘴角点对应的第一位置向量与第二位置向量之差、第一个眼部关键点对应的第一位置向量与第二位置向量之差,等等,这39个关键点对应的39个向量差的和即第一差异。
[0152]
该方式下,基于第一差异(关键点)的约束可以保证三维目标网格对应的关键点在二维空间上的投影与基于二维目标图像获取到的各个部位对应的关键点尽可能一致。
[0153]
形式三、若所有部位中第一目标部位的关键信息为蒙版图像,第二目标部位的关键信息为关键点,则将各个第一目标部位对应的第一蒙版向量与第二蒙版向量的距离之和作为蒙版差异,以及将各个第二目标部位对应的第一位置向量与第二位置向量的距离之和作为关键点差异,并根据蒙版差异和关键点差异确定第一差异,即第一差异包含蒙版差异和关键点差异两部分,其中蒙版差异为d3,关键点差异为d4,计算公式如下:
[0154][0155][0156]
其中,n3表示第一目标部位的总数量,n3小于n1,n4表示第二目标部位对应的关键点的总数量,n4小于n2,此时第一差异是由两部分组成的,即包含根据各个第一目标部位确定的蒙版差异,又包含根据各个第二目标部位确定的关键点差异。
[0157]
在一种可选的实施方式中,可通过下列方式从各个部位中选取第一目标部位和第二目标部位,具体的:
[0158]
针对任意一个部位,确定该部位在二维目标图像中所占的面积;
[0159]
若该部位所占的面积大于预设阈值,则确定该部位为第一目标部位;
[0160]
若该部位所占的面部不大于预设阈值,则确定该部位为第二目标部位。
[0161]
仍以对象为图2所示的人脸为例,面部皮肤和左眼、右眼这三个部位所占的面积较大,而嘴部和鼻子这两个部位所占的面积较小,假设如图3所示面部皮肤区域所占的面积为a1,如图4所示的嘴部区域所占的面积为a2,如图5所示的鼻子区域所占的面积为a3,如图6所示的左眼区域所占的面积为a4,如图7所示的左眼区域所占的面积为a5,其中预设阈值为b,且a1>a4=a5>b>a2>a3。因此根据预设阈值确定的第一目标部位为面部皮肤、左眼和右眼,第二目标部位为鼻子和嘴部,则n3=3,n4=3。
[0162]
其中蒙版差异为:面部皮肤对应的第一蒙版向量与第二蒙版向量之差、面部皮肤
对应的第一蒙版向量与第二蒙版向量之差、左眼部位对应的第一蒙版向量与第二蒙版向量之差,以及右眼部位对应的第一蒙版向量与第二蒙版向量之差,这三个向量差的和。
[0163]
关键点差异为:鼻子对应的第一位置向量与第二位置向量之差,以及嘴部对应的第一位置向量与第二位置向量之差,这两个向量差的和。
[0164]
在上述实施方式中,依据各个部位所占区域的面积将各个部位划分为两类,分别为第一目标部位和第二目标部位,这两类部位对应的关键信息的类型不同,由于面积较大的部位对应的关键点也较多,而一些面积较小的部位对应的关键点较少,且基于少量的关键点即可刻画该部位,因此可以保证基于获取到的各个部位关键信息可以有效刻画各个部位的同时,减少计算量。
[0165]
需要说明的是,在本公开实施例中,除了可以根据面积来区分第一目标部位和第二目标部位之外,还可依据各个部位所占区域包含的像素点的数量等来区分,在此不做具体限定。
[0166]
上面介绍完第一差异的几种形式之后,下面对本公开实施例中的第二差异进行介绍,其中第二差异是指三维目标网格中各个顶点与相邻顶点的相对位置,与对象的预设三维网络中各个顶点与相邻顶点的相对位置之间的差异。
[0167]
在一种可选的实施方式中,各个顶点的拉普拉斯坐标是通过对各个顶点的欧氏空间坐标经过拉普拉斯算子转换得到的,拉普拉斯坐标包含了网格的局部细节特征,可用于确定顶点之间的相对位置,因此根据网格中各个顶点的拉普拉斯坐标可构建第二差异,具体方式为:
[0168]
将三维目标网格中各个顶点的拉普拉斯坐标组合得到的第一坐标向量,与预设三维网格中各个顶点的拉普拉斯坐标组合得到的第二坐标向量之间的距离,作为第二差异。
[0169]
在本公开实施例中,拉普拉斯坐标是基于拉普拉斯算子对顶点的欧式空间坐标进行转换得到的,包含了网格的局部细节特征,能够较好地保持网格模型的局部细节。因此,根据各个顶点的拉普拉斯坐标组合得到的坐标向量来构建第二差异,可以约束三维目标网格中各顶点的拉普拉斯坐标预设三维网格的拉普拉斯坐标尽可能一致,第二差异d5的计算公式如下:
[0170][0171]
其中,m为三维目标网格,m0为预设三维网格。lap(m)为拉普拉斯坐标算子,lap(m)为三维目标网格m对应的逐顶点拉普拉斯坐标拼接得到的坐标向量,即第一坐标向量,lap(m0)即预设三维网格m0对应的逐顶点拉普拉斯坐标拼接得到的坐标向量,即第二坐标向量。
[0172]
在本公开实施例中,m和m0包含的顶点的数量是尽可能一致的,只是坐标的位置可能不同。其中一个顶点的拉普拉斯坐标为三维向量,假设网格m有1000个顶点,则第一坐标向量为3000维的向量,同理第二坐标向量也为3000维的向量。例如顶点a0的拉普拉斯坐标为[x0,y0,z0],顶点a1的拉普拉斯坐标为[x1,y1,z1],

,顶点a999的拉普拉斯坐标为[x999,y999,z999],则第一坐标向量为[x0,y0,z0,x1,y1,z1,

,x999,y999,z999],第二坐标向量同理。
[0173]
在上述实施方式中,基于拉普拉斯坐标来构建第二差异更加高效、鲁棒性好。
[0174]
在一种可选的实施方式中,基于关键信息,获得由第一差异和第二差异确定的损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标时,可分为以下两种情
况:
[0175]
情况一、根据第一差异以及第二差异确定损失函数,并将损失函数取最小值时对应的三维目标网格中各个顶点的坐标位置,作为损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标。
[0176]
可选的,损失函数为第一差异以及第二差异中各个差异与相应权重的乘积之和。
[0177]
假设第一差异仅包括蒙版差异,以对象为人脸为例,则共包含5个部位,i的取值范围为0~4,此时损失函数l1为:
[0178][0179]
其中,α1为第一差异对应的权重,α2为第二差异对应的权重。
[0180]
假设第一差异仅包括关键点差异,仍以人脸为例,5个部位共包含39个关键点,i的取值为0~18,则损失函数l2可表示为:
[0181][0182]
其中,β1为第一差异对应的权重,β2为第二差异对应的权重。
[0183]
假设第一差异既包括蒙版差异,又包括关键点差异,第一目标部位为上述列举的面部皮肤、左眼和右眼,第二目标部位为上述列举的鼻子和嘴部,则损失函数l3可表示为:
[0184][0185]
此时第一差异以及第二差异中的各个差异包括:蒙版差异、关键点差异和第二差异。其中,γ1为蒙版差异对应的权重,γ2为关键点差异对应的权重,γ3为第二差异对应的权重。
[0186]
情况二、根据第一差异、第二差异以及第三差异确定损失函数,并将所损失函数取最小值时对应的三维目标网格中各个顶点的坐标位置,作为损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标。
[0187]
其中,第三差异包括三维目标网格中各个顶点的法向量与预设三维网格中各个顶点的法向量之间的法向量差异,和/或三维目标网格中各个边的边长与预设三维网格中各个边的边长之间的边长差异。也就是说,第三差异包括法向量差异和边长差异中的一个或多个,和第一差异类似。
[0188]
下面对第三差异进行详细介绍:
[0189]
针对法向量差异,具体是指三维目标网格中各个顶点的法向量坐标组合得到的第一法向量,与预设三维网格中各个顶点的法向量坐标组合得到的第二法向量之间的距离。在第三差异为法向量差异时,第三差异d6计算公式如下:
[0190][0191]
在本公开实施例中,基于法向量差异约束三维目标网格的顶点法向与预设三维网格的顶点法向尽可能一致。其中,norm(m)为顶点法向算子,可用于计算三维目标网格m和预设三维网格m0对应的逐顶点法向。在本公开实施例中,三维目标网格m对应的各个顶点的法向量坐标拼接得到的第一法向量即norm(m),预设三维网格m0对应的各个顶点的法向量坐标拼接得到的第二法向量即norm(m0)。
[0192]
在本公开实施例中,m和m0包含的顶点的数量是尽可能一致的。其中每一个顶点的顶点法向坐标都为三维向量,假设网格m有1000个顶点,则第一法向量为3000维的向量,同理第二法向量也为3000维的向量。例如顶点a0的顶点法向坐标为[a0,b0,c0],顶点a1的顶点法向坐标为[a1,b1,c1],

,顶点a999的顶点法向坐标为[a999,b999,c999],则第一法向量为[a0,b0,c0,a1,b1,c1,

,a999,b999,c999],第二法向量同理。
[0193]
针对边长差异,具体是指三维目标网格中各个边的边长组合得到的第一边长向量,与预设三维网格中各个边的边长组合得到的第二边长向量之间的距离。在第三差异为边长差异时,第三差异d7计算公式如下:
[0194][0195]
在本公开实施例中,基于边长差异约束三维目标网格的网格边长与预设三维网格的网格边长尽可能一致。其中,el(m)为网格边长算子,可用于计算三维目标网格m和预设三维网格m0对应的所有边的边长。在本公开实施例中,三维目标网格m对应的各个边的边长坐标拼接得到的第一边长向量即el(m),预设三维网格m0对应的各个边的边长坐标拼接得到的第二边长向量即el(m0)。
[0196]
同样地,在本公开实施例中,m和m0包含的顶点的数量是尽可能一致的,边的数量也是尽可能一致的。其中每一条边的边长都为一维向量,假设网格m有1000条边,则第一边长向量为1000维的向量,同理第二边长向量也为1000维的向量。例如边el0的边长为el0,边el1的边长为el1,

,边el999的边长为el999,则第一边长向量为[el0,el1,

,el999],第二边长向量同理。
[0197]
此外,第三差异还可既包括法向量差异,又包括边长差异,此时第三差异既包括d6,又包括d7。
[0198]
可选的,损失函数为第一差异以及第二差异以及第三差异中各个差异与相应权重的乘积之和。
[0199]
例如,第一差异包括蒙版差异和关键点差异两部分,第三差异包括法向量差异和边长差异两部分时,以对象为人脸为例,损失函数l4为:
[0200][0201]
此时,第一差异以及第二差异以及第三差异中一共包含5个差异,λ1为第一差异包
含的蒙版差异对应的权重,λ2为第一差异包含的关键点差异对应的权重,λ3为第二差异对应的权重,λ4为第三差异包含的法向量差异对应的权重,λ5为第三差异包含的边长差异对应的权重。
[0202]
当第一差异仅包含蒙版差异与关键点差异中的一种,或者第三差异仅包含法向量差异与边长差异中的一种时,损失函数还可以有以下几种形式:
[0203][0204][0205][0206][0207][0208][0209]
[0210][0211]
需要说明的是,上述列举的l5~l12八种损失函数都是根据第一差异、第二差异以及第三差异确定的,本公开实施例中一共给出了12种损失函数的计算公式,这些计算公式都适用于本公开实施例,在这12种计算方式中,其中l5在取最小值时所确定的三维目标网格中各个顶点的位置坐标最优,因为其在保证了三维目标网格与预设三维网格的关键信息和顶点之间相对位置的前提下,尽可能保证通过预设三维网格较小的变形即可得到与二维目标图像对应的三维目标网格,即最优解。
[0212]
需要说明的是,在本公开实施例中的各个向量需要由顶点的坐标拼接得到时,对于第一向量和第二向量的拼接顺序是一致的,例如第一坐标向量是由1000个顶点的拉普拉斯坐标拼接而成时,假设拼接顺序为编号为由编号a0至编号a999,在m0中与编号a0至编号a999对应的顶点的编号分别为b0至b999,则第二坐标向量则是按照b0至b999的顺序,将m0中1000个顶点的拉普拉斯坐标拼接而成,其它向量也类似,在此不再重复赘述。
[0213]
在一种可选的实施方式中,在确定的各个顶点的位置坐标,则可基于确定的位置坐标生成与二维目标图像中的对象对应的三维模型,具体过程如下:
[0214]
根据各个顶点的位置坐标对预设三维网格中顶点的位置进行调整;
[0215]
对调整后的预设三维网格进行纹理渲染,生成与二维目标人脸图像对应的三维模型。
[0216]
在本公开实施例中,通过获取到的各个顶点的位置,对预设三维网格中需要调整的顶点的位置进行调整,使得调整后该顶点的位置坐标与确定的相应顶点的位置坐标相同。经过调整得到的预设三维网格实际上与根据确定的各个顶点的位置坐标构建的三维网格相同,本公开实施例中仅需要通过对预设三维网格进行调整变形即可得到与二维目标图像中的对象对应的三维目标网格,不需要再自行构建三维网格,因此效率更高,得到三维目标网格之后经过纹理渲染即可生成与二维目标图像中的对象对应的三维模型。基于该方式可以实现三维人脸重建,高效快速地生成二次元3d人头,应用于影视动漫特效等场景下。
[0217]
例如图8a和图8b所示,图8a为本公开实施例中的一种二维目标图像(只包含人脸)的示意图,图8b即本公开实施例提供的一种与图8a中的人脸对应的三维模型,在确定与图8a对应的三维目标网格中各个顶点的位置坐标后,即可获得相应的三维目标网格,再基于二维目标图像中的纹理对三维目标网格进行渲染,即可获得图8b所示的三维模型,是一个二次元3d人头。基于此获得3d人头后,还可进一步设计动态表情等。
[0218]
在本公开实施例中,求损失函数最优解时有很多种方式,例如最小二乘法、梯度下降法、迭代法等。
[0219]
其中,最小二乘法可以一次性直接求得最优解;梯度下降法或是迭代法等都需要通过多次调整三维目标网格中各个顶点的位置坐标(自变量),进而求得损失函数取最小值时所使用的各个顶点的位置坐标,此时所使用的各个顶点的位置坐标就是一组最优解。
[0220]
图9是根据一示例性实施例示出的一种对象三维重建的完整方法流程图,具体包
括以下步骤:
[0221]
s91:获取平面设计师依照对象的平面设计分层模板设计得到的对象分层设计稿;
[0222]
s92:从对象分层设计稿中,读取第一目标部位的蒙版图像,以及第二目标部位的关键点信息;
[0223]
s93:基于根据对象的三维目标网格中各个第一目标部位对应的区域在二维空间的投影确定的蒙版图像与根据二维目标图像获取的蒙版图像之间的差异,构建第一差异包含的蒙版差异;
[0224]
s94:基于根据三维目标网格中各个第二目标部位对应的关键点在二维空间的投影位置与根据二维目标图像获取的关键点位置之间的差异,构建第一差异包含的关键点差异;
[0225]
s95:基于三维目标网格中各个顶点的拉普拉斯坐标与对象的预设三维网格中各个顶点的拉普拉斯坐标之间的差异,构建第二差异;
[0226]
s96:基于三维目标网格中各个顶点的法向量与预设三维网格中各个顶点的法向量之间的差异,构建第三差异中包含的法向量差异;
[0227]
s97:基于三维目标网格中各个边的长度与预设三维网格中各个边的长度之间的差异,构建第三差异中包含的边长差异;
[0228]
s98:将第一差异以及第二差异以及第三差异中各个差异与相应权重的乘积之和作为损失函数,获取损失函数取得最小值时所使用的三维目标网格中各个顶点的位置坐标;
[0229]
s99:根据各个顶点的位置坐标对预设三维网格中顶点的位置进行调整;
[0230]
s910:对调整后的预设三维网格进行纹理渲染,生成与二维目标图像中的对象对应的三维模型。
[0231]
以对象为人脸为例,如图10所示,为本公开实施例提供的一种人脸三维重建的完整方法示意图。
[0232]
首先获取平面设计师依照二次元人头平面设计分层模板进行设计得到的人头分层设计稿;进一步从人头分层设计稿中,读取面部蒙版图像i1,左眼蒙版图像i2,右眼蒙版图像i3,及鼻子和嘴部的关键点信息,基于这些信息与标准二次元3d人头网格m0(3d设计预先制作),构建蒙版约束项、关键点约束项、拉普拉斯坐标约束项、网格顶点法向约束项、网格边长约束项,将各个约束项与相应权重的乘积之和作为损失函数,根据最优化问题求解损失函数,最终根据求得的最优解进行人脸三维重建,得到与二维图像对应的二次元3d人头,其中损失函数为:
[0233][0234]
其中,蒙版约束项即第一差异包含的蒙版差异,关键点约束项即第一差异包含的关键点差异,拉普拉斯坐标约束项即第二差异,网格顶点法向约束项即第三差异包含的法向量差异,网格边长约束项即第三差异中的边长差异。
[0235]
在本公开实施例中的三维目标网格中,各个顶点的位置坐标是未知的,即损失函
数中的自变量,通过求最优解的方式解得的最优解,即与二维目标图像对应的三维目标网格中各个顶点的位置坐标,基于得到最优解中所使用的各个顶点的位置坐标,确定的三维目标网格是对预设三维网格做最优的变形得到的,符合二维目标图像中对象的三维网格。
[0236]
上述实施方式中,设计了二次元人头平面设计分层模板,并提供了配套的三维重建算法。2d设计师严格按照该模板设计出的分层素材,可以通过算法自动生成高质量的二次元3d人头网格模型。按照此法进行二次元3d人头设计,每个人头需要2人一日的设计资源,相比于相关技术中2人一周的设计资源,大大降低了3d人头设计中的人力资源消耗。通过构造设计模板,并用配套算法进行辅助,大幅提升二次元3d人头生成效率。
[0237]
图11是根据一示例性实施例示出的一种对象三维重建装置1100框图。参照图11,该装置包括信息获取单元1101,函数构建单元1102,顶点确定单元1103和三维重建单元1104。
[0238]
信息获取单元1101,被配置为执行获取二维目标图像包含的对象中各个部位的关键信息,其中所述关键信息包括关键点和/或蒙版图像;
[0239]
函数构建单元1102,被配置为执行基于所述关键信息,获得由第一差异和第二差异确定的损失函数,其中所述第一差异为根据所述对象的三维目标网格在二维空间的投影确定的关键信息与根据所述二维目标图像获取的关键信息之间的差异,所述第二差异为所述三维目标网格中各个顶点与相邻顶点的相对位置,与所述对象的预设三维网格中各个顶点与相邻顶点的相对位置之间的差异;
[0240]
顶点确定单元1103,被配置为执行确定所述损失函数取最小值时所使用的三维目标网格中各个顶点的位置坐标;
[0241]
三维重建单元1104,被配置为执行根据确定的各个顶点的位置坐标进行三维重建,生成与所述对象对应的三维模型。
[0242]
在一种可选的实施方式中,所述二维目标图像是按照预设图层次序将所述各个部位的分层图像叠加得到的,每个所述分层图像包括至少一个对象的部位,不同的分层图像包括的部位不同;
[0243]
所述信息获取单元1101具体被配置为执行:
[0244]
获取所述二维目标图像包含的对象中各个部位的分层图像,其中所述各个部位的分层图像是根据预设的各个部位的分层模板生成的;
[0245]
从所述各个部位的分层图像中提取与各个部位对应的关键信息。
[0246]
在一种可选的实施方式中,所述信息获取单元1101具体被配置为执行:
[0247]
针对任意一个部位,将所述二维目标图像中与所述部位对应的图像转换为蒙版图像,并将所述蒙版图像作为所述部位的关键信息;或
[0248]
针对任意一个部位,提取所述部位在所述二维目标图像中对应的关键点,并将提取的关键点作为所述部位的关键信息。
[0249]
在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元1102还被配置为执行:
[0250]
若所有部位的关键信息都为蒙版图像,则将各个部位对应的第一蒙版向量和第二蒙版向量的距离之和作为所述第一差异;其中,部位对应的第一蒙版向量为根据所述投影获得的所述部位的蒙版图像中所有像素点的位置坐标组合得到的,部位对应的第二蒙版向
量为根据所述二维目标图像获得的所述部位的蒙版图像中所有像素点的位置坐标组合得到的。
[0251]
在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元1102还被配置为执行:
[0252]
若所有部位的关键信息都为关键点,则将各个部位对应的第一位置向量和第二位置向量的距离之和作为所述第一差异;其中,部位对应的第一位置向量是根据所述投影获得的所述部位的关键点的位置向量,部位对应的第二位置向量是根据所述二维目标图像获得的所述部位的关键点的位置向量。
[0253]
在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元1102还被配置为执行:
[0254]
若所有部位中第一目标部位的关键信息为蒙版图像,第二目标部位的关键信息为关键点,则将各个第一目标部位对应的第一蒙版向量与第二蒙版向量的距离之和作为蒙版差异,以及将各个第二目标部位对应的第一位置向量与第二位置向量的距离之和作为关键点差异,并根据所述蒙版差异和所述关键点差异确定所述第一差异。
[0255]
在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元1102还被配置为执行:
[0256]
针对任意一个部位,确定所述部位在所述二维目标图像中所占的面积;
[0257]
若所述部位所占的面积大于预设阈值,则确定所述部位为第一目标部位;
[0258]
若所述部位所占的面积不大于预设阈值,则确定所述部位为第二目标部位。
[0259]
在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元1102还被配置为执行:
[0260]
将所述三维目标网格中各个顶点的拉普拉斯坐标组合得到的第一坐标向量,与所述预设三维网格中各个顶点的拉普拉斯坐标组合得到的第二坐标向量之间的距离,作为所述第二差异。
[0261]
在一种可选的实施方式中,所述函数构建单元1102具体被配置为执行:
[0262]
根据所述第一差异、所述第二差异以及第三差异确定所述损失函数,其中所述第三差异包括所述三维目标网格中各个顶点的法向量与所述预设三维网格中各个顶点的法向量之间的法向量差异,和/或所述三维目标网格中各个边的边长与所述预设三维网格中各个边的边长之间的边长差异。
[0263]
在一种可选的实施方式中,在基于所述关键信息,获得由第一差异和第二差异确定的损失函数之前,所述函数构建单元1102还被配置为执行:
[0264]
将所述三维目标网格中各个顶点的法向量坐标组合得到的第一法向量,与所述预设三维网格中各个顶点的法向量坐标组合得到的第二法向量之间的距离,作为所述法向量差异。
[0265]
在一种可选的实施方式中,在根据所述第一差异以及所述第二差异,确定所述二维目标图像中的对象对应的三维目标网格中各个顶点的位置坐标之前,所述函数构建单元1102还被配置为执行:
[0266]
将所述三维目标网格中各个边的边长组合得到的第一边长向量,与所述预设三维网格中各个边的边长组合得到的第二边长向量之间的距离,作为所述边长差异。
[0267]
在一种可选的实施方式中,所述三维重建单元1104具体被配置为执行:
[0268]
根据所述各个顶点的位置坐标对所述预设三维网格中顶点的位置进行调整;
[0269]
对调整后的预设三维网格进行纹理渲染,生成与所述二维目标人脸图像对应的三维模型。
[0270]
关于上述实施例中的装置,其中各个单元执行请求的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0271]
图12是根据一示例性实施例示出的一种电子设备1200的框图,该装置包括:
[0272]
处理器1210;
[0273]
用于存储所述处理器1210可执行指令的存储器1220;
[0274]
其中,所述处理器1210被配置为执行所述指令,以实现本公开实施例中的对象三维重建方法。
[0275]
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器1220,上述指令可由电子设备1200的处理器1210执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0276]
在一些可能的实施方式中,本公开实施例还提供一种计算装置,可以至少包括至少一个处理单元、以及至少一个存储单元。其中,存储单元存储有程序代码,当程序代码被处理单元执行时,使得处理单元执行本说明书上述描述的根据本公开各种示例性实施方式的服务调用方法中的步骤。例如,处理单元可以执行如图1中所示的步骤。
[0277]
下面参照图13来描述根据本公开的这种实施方式的计算装置130。图13的计算装置130仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0278]
如图13,计算装置130以通用计算装置的形式表现。计算装置130的组件可以包括但不限于:上述至少一个处理单元131、上述至少一个存储单元132、连接不同系统组件(包括存储单元132和处理单元131)的总线133。
[0279]
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
[0280]
存储单元132可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)1321和/或高速缓存存储单元1322,还可以进一步包括只读存储器(rom)1323。
[0281]
存储单元132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0282]
计算装置130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置130交互的设备通信,和/或与使得该计算装置130能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口135进行。并且,计算装置130还可以通过网络适配器136与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于计算装置130的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据
备份存储系统等。
[0283]
在一些可能的实施方式中,本公开提供的内容推荐方法的每个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本公开各种示例性实施方式的内容推荐方法中的步骤,例如,计算机设备可以执行如图1中所示的步骤。
[0284]
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0285]
本公开的实施方式的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在计算装置上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
[0286]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
[0287]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等,或者上述的任意合适的组合。
[0288]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
[0289]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由上面的权利要求指出。
[0290]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜