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

利用纹理解析的对象重建的制作方法

2023-02-02 05:02:30 来源:中国专利 TAG:


1.概括而言,本公开内容涉及图像处理,并且更具体地,本公开内容涉及用于利用纹理解析来执行对象重建的技术和系统。


背景技术:

2.许多设备和系统允许通过生成场景的图像(也被称为帧)和/或视频数据(包括多个图像或帧)来捕获场景。例如,相机或包括相机的计算设备(例如,诸如包括一个或多个相机的移动电话或智能电话之类的移动设备)可以捕获场景的图像序列。图像和/或视频数据可以由这样的设备和系统(例如,移动设备、ip相机等)捕获和处理,并且可以被输出以用于消耗(例如,被显示在设备和/或其它设备上)。在一些情况下,图像和/或视频数据可以由这样的设备和系统捕获并且输出以供其它设备处理和/或消耗。
3.可以对图像进行处理(例如,使用对象检测、识别、分割等),以确定在图像中存在的任何对象,这可能对于许多应用是有用的。例如,可以确定用于表示图像中的对象的模型,并且可以使用该模型来促进各种系统的有效操作。除了许多其它应用和系统之外,此类应用和系统的示例包括增强现实(ar)、机器人、汽车业和航空、三维场景理解、对象抓取、对象跟踪。


技术实现要素:

4.在一些示例中,描述了用于处理一个或多个图像并且针对图像中的一个或多个对象执行利用纹理解析的对象重建的技术和系统。根据至少一个说明性示例,提供了一种用于生成一个或多个三维(3d)模型的方法。所述方法包括:获得对象的图像;生成所述图像中的所述对象的3d模型,所述3d模型包括几何形状信息;确定用于所述3d模型的色彩信息;基于对所述几何形状信息和用于所述3d模型的所述色彩信息的修改,来生成所述对象的经拟合的3d模型;以及基于所述经拟合的3d模型以及与所述经拟合的3d模型相关联的深度信息来生成所述对象的经细化的3d模型。
5.在另一示例中,提供了一种用于处理一个或多个图像的装置,包括:存储器(例如,被配置为存储至少一个图像的图像数据);以及在电路中实现并且耦合到所述存储器的一个或多个处理器。所述一个或多个处理器被配置为并且可以进行以下操作:获得对象的图像;生成所述图像中的所述对象的3d模型,所述3d模型包括几何形状信息;确定用于所述3d模型的色彩信息;基于对所述几何形状信息和用于所述3d模型的所述色彩信息的修改,来生成所述对象的经拟合的3d模型;以及基于所述经拟合的3d模型以及与所述经拟合的3d模型相关联的深度信息来生成所述对象的经细化的3d模型。
6.在另一示例中,提供了一种具有存储在其上的指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器进行以下操作:获得对象的图像;生成所述图像中的所述对象的3d模型,所述3d模型包括几何形状信息;确定用于所述3d模型的色彩信息;基于对所述几何形状信息和用于所述3d模型的所述色彩信息的修
改,来生成所述对象的经拟合的3d模型;以及基于所述经拟合的3d模型以及与所述经拟合的3d模型相关联的深度信息来生成所述对象的经细化的3d模型。
7.在另一示例中,提供了一种用于处理一个或多个图像的装置。所述装置包括:用于获得对象的图像的单元;用于生成所述图像中的所述对象的3d模型的单元,所述3d模型包括几何形状信息;用于确定用于所述3d模型的色彩信息的单元;用于基于对所述几何形状信息和用于所述3d模型的所述色彩信息的修改,来生成所述对象的经拟合的3d模型的单元;以及用于基于所述经拟合的3d模型以及与所述经拟合的3d模型相关联的深度信息来生成所述对象的经细化的3d模型的单元。
8.在一些方面中,所述色彩信息包括反照率色彩。
9.在一些方面中,生成所述对象的所述3d模型包括:获得通用对象模型;识别所述图像中的所述对象的关键点;以及通过使用所述对象的所识别的关键点将所述通用对象模型拟合到所述图像中的所述对象来生成所述3d模型。
10.在一些方面中,生成所述对象的所述经拟合的3d模型以及确定用于所述3d模型的所述色彩信息包括:执行所述3d模型的至少一个顶点级别拟合,所述至少一个顶点级别拟合修改所述3d模型的所述几何形状信息并且使用对象解析遮罩来确定用于所述3d模型的所述色彩信息,所述对象解析遮罩定义所述3d模型的用于色彩调整的一个或多个区域。
11.在一些方面中,执行所述3d模型的所述至少一个顶点级别拟合包括:执行所述几何形状信息和所述色彩信息的联合优化。
12.在一些方面中,执行所述3d模型的所述至少一个顶点级别拟合包括:识别由所述对象解析遮罩定义的所述一个或多个区域;执行所述3d模型到所述对象的第一顶点级别拟合,所述第一顶点级别拟合通过将所述3d模型的每个顶点移位以拟合所述图像中的所述对象来修改所述3d模型的所述几何形状信息,所述第一顶点级别拟合还确定用于所述3d模型的每个顶点的所述色彩信息;以及执行所述3d模型到所述对象的第二顶点级别拟合,所述第二顶点级别拟合调整用于所述3d模型的被包括在由所述对象解析遮罩标识的所述一个或多个区域中的每个顶点的所述色彩信息。
13.在一些方面中,确定用于所述3d模型的每个顶点的所述色彩信息包括:使用聚类算法来确定用于所述3d模型的被包括在由所述对象解析遮罩标识的所述一个或多个区域中的每个顶点的多个候选色彩;以及针对被包括在由所述对象解析遮罩标识的所述一个或多个区域中的每个顶点,从针对每个顶点确定的所述多个候选色彩中选择最亮色彩。
14.在一些方面中,所述聚类算法包括k-means算法。
15.在一些方面中,生成所述对象的所述经细化的3d模型包括:执行所述经拟合的3d模型的像素级别细化,所述像素级别细化将所述深度信息添加到所述经拟合的3d模型的一部分中。
16.在一些方面中,上述方法、装置和计算机可读介质还包括:使用细化遮罩来确定所述经拟合的3d模型的用于使用所述像素级别细化来添加所述深度信息的所述一部分。
17.在一些方面中,所述对象包括面部,并且其中,所述细化遮罩包括眼睛遮罩,所述眼睛遮罩指示所述一部分包括所述面部的在所述面部的眼睛区域之外的区域。
18.在一些方面中,执行所述经拟合的3d模型的所述像素级别细化包括:生成用于所述经拟合的3d模型的反照率图像和深度图像;以及使用所述反照率图像和所述深度图像来
生成所述经细化的3d模型。
19.在一些方面中,上述方法、装置和计算机可读介质还包括:将平滑函数应用于所述经拟合的3d模型。
20.在一些方面中,所述平滑函数包括离散laplacian平滑函数。
21.在一些方面中,所述对象是面部。
22.在一些方面中,上述方法、装置和计算机可读介质还包括:输出所述对象的所述经细化的3d模型。
23.在一些方面中,所述装置是以下各者或以下各者的一部分:相机(例如,ip相机)、移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、可穿戴设备、扩展现实设备(例如,虚拟现实(vr)设备、增强现实(ar)设备或混合现实(mr)设备)、个人计算机、膝上型计算机、服务器计算机或其它设备。在一些方面中,所述装置包括用于捕获一个或多个图像的一个或多个相机。在一些方面中,所述装置还包括用于显示一个或多个图像、通知和/或其它可显示数据的显示器。在一些方面中,上述装置可以包括一个或多个传感器。
24.该发明内容既不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或全部附图以及每个权利要求来理解该主题。
25.在参考以下说明书、权利要求和附图之后,前述内容以及其它特征和实施例将变得更加显而易见。
附图说明
26.下文参考以下附图来详细描述本技术的说明性实施例:
27.图1是示出根据一些示例的用于基于三维形变模型(3dmm)技术来执行对象重建的过程的示例的图;
28.图2a是示出根据一些示例的用于利用纹理解析来执行对象重建的过程的示例的图;
29.图2b是示出根据一些示例的用于利用纹理解析来执行对象重建的过程的另一示例的图;
30.图3是示出根据一些示例的用于肤色提取的过程的示例的框图;
31.图4a是根据一些示例的输入图像的示例;
32.图4b是示出根据一些示例的示出经重建的面部的示例的图,其示出了通过肤色提取估计的光和通过平均反照率纹理估计的光(具有由圆圈标记的内置阴影引起的不正确的光);
33.图5是示出根据一些示例的用于利用面部解析遮罩(作为对象解析遮罩的示例)进行色彩调整的过程的示例的框图;
34.图6是示出根据一些示例的使用利用纹理解析的面部重建而执行的面部重建结果的示例的图像;
35.图7a是示出根据一些示例的基于ibug的面部关键点(landmark)的示例的图像;
36.图7b是示出根据一些示例的基于本文描述的技术的面部关键点的示例的图像;
37.图8是示出根据一些示例的被投影到图像上的关键点和顶点的可视化的图像;
38.图9包括示出根据一些示例的对色彩正则化的比较的图像;
39.图10包括示出根据一些示例的利用和不利用面部解析遮罩求解的反照率的示例的图像;
40.图11是示出根据一些示例的用于生成一个或多个三维(3d)模型的过程的示例的流程图;以及
41.图12是示出用于实现本文描述的某些方面的系统的示例的图。
具体实施方式
42.下文提供了本公开内容的某些方面和实施例。如对于本领域技术人员将显而易见的,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以相结合地应用。在下文的描述中,出于解释的目的,阐述了具体细节以便提供对本技术的实施例的全面理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各个实施例。附图和描述并不旨在是限制性的。
43.随后的描述仅提供了示例性实施例,并且不旨在限制本公开内容的范围、适用性或配置。而是,对示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的可行描述。应当理解的是,在不脱离如在所附的权利要求中阐述的本技术的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
44.对用于物理对象的三维(3d)模型和/或深度图的生成对于许多系统和应用可能是有用的,诸如除了许多其它系统和应用之外,对于以下各项可能是有用的:扩展现实(xr)(例如,包括增强现实(ar)、虚拟现实(vr)、混合现实(mr)等)、机器人、汽车业、航空、3d场景理解、对象抓取、对象跟踪。例如,在ar环境中,用户可以查看包括人工或虚拟图形与用户的自然环境的集成的图像。ar应用允许对真实图像进行处理,以将虚拟对象添加到图像中并且在多个维度上将虚拟对象与图像对齐或配准。例如,现实中存在的真实世界对象可以使用与真实世界对象相似或作为其的精确匹配的模型来表示。在一个示例中,可以在ar设备(例如,ar眼镜、ar头戴式显示器(hmd)或其它设备)的视野中呈现表示停在跑道上的真实飞机的虚拟飞机的模型,同时用户继续在ar环境中查看他或她的自然环境。观看者能够在查看真实世界场景时操纵模型。在另一示例中,可以利用在ar环境中具有不同色彩或不同物理属性的模型来标识和渲染位于桌子上的实际对象。在一些情况下,还可以将现实中不存在的人工虚拟对象或用户自然环境的实际对象或结构的计算机生成的副本添加到ar环境中。
45.生成对象的详细三维(3d)模型(例如,3d面部模型)通常需要昂贵的设备,这阻碍了大规模数据收集过程。面部是可以针对其生成3d模型的对象的示例。存在越来越多的与面部相关的应用(例如,用于xr系统、用于3d图形、用于安全等等),这导致对具有以高效且高质量的方式生成详细的3d面部模型(以及其它对象的3d模型)的能力的系统的巨大需求。还存在对生成其它类型的对象的3d模型的巨大需求,诸如车辆的3d模型(例如,用于自主驾驶系统)、房间布局的3d模型(例如,对于xr应用,用于由设备、机器人进行的导航等)等等。
46.从一个或多个图像(例如,单个rgb图像)执行三维(3d)对象重建(例如,以生成对象(诸如面部)的3d模型和/或深度信息)可能是具有挑战性的。例如,基于涉及几何形状、反照率(albedo)纹理和照明估计的3d对象重建,可能会出现困难。反照率纹理是指没有任何
阴影或高光的图像纹理(例如,色彩)。执行单图像3d面部重建的一种方式是基于3d形变模型(3dmm)拟合,这在以下文档中进行了描述:volkerblanz和thomasvetter,“amorphablemodelforthesynthesisof3dfaces”,siggraph,第99卷,第1999号,1999,据此通过引用的方式将其全部内容并入并且用于所有目的。使用3dmm拟合生成的3dmm模型是3d面部几何形状和纹理的统计模型。3d面部模型可以通过基础项与用于形状的系数x
shape
、用于表情的系数x
expression
和用于纹理的系数x
albedo
的线性组合来表示,例如如下:
47.vertices
3d_coordinate
=x
shape
basis
shape
x
expression
basis
expression
(1)
48.vertices
color
=color
mean_albedo
x
albedo
basis
albedo
(2)
49.等式(1)用于确定3dmm模型的每个顶点的位置,而等式(2)用于确定用于3dmm模型的每个顶点的色彩。
50.图1是示出用于基于3dmm技术来执行对象重建的过程100的示例的图。在操作102处,过程100包括获得输入,该输入包括图像(例如,rgb图像)和关键点(例如,面部关键点)。在操作104处,过程100执行3dmm拟合技术以生成3dmm模型。3dmm拟合包括求解对象(例如,面部)的3dmm模型的形状系数(例如,x
shape
)、表情系数(例如,x
expression
)和反照率系数(例如,x
albedo
)。拟合还可以包括求解相机矩阵和球面谐波光照系数。
51.在操作106处,过程100包括对3dmm模型执行laplacian变形。例如,laplacian变形可以被应用于3dmm模型的顶点,以改进关键点拟合。在操作108处,过程100包括求解反照率。例如,过程100可以微调反照率系数以拆分出不属于球面谐波光照模型的色彩。在操作110处,过程100求解深度。例如,过程100可以基于从着色恢复形状(shape-from-shading)公式来确定每像素深度位移。从着色恢复形状公式将3dmm模型的每个点的色彩定义为反照率色彩乘以光系数的乘积。例如,在图像中看到的色彩用公式表示为反照率色彩乘以光系数。针对给定点的光系数是基于该点的表面法线的。在操作112处,过程100包括输出深度图和/或3d模型。
52.然而,基于执行3dmm拟合的3d面部重建的质量可能受到3dmm拟合本身的复杂性的限制。例如,3dmm是具有用于生成输出(例如,深度图和/或3d模型)的大数据集的预定义模型。基于复杂性,经重建的对象(例如,面部)将不具有大量细节(例如,所产生的深度图将不是高度详细的)。此外,由于其统计性质,3dmm模型的纹理基础伴随着照明(例如,有光泽的斑点或聚光照明(spotlight)、阴影等)。这样的照明导致对象的照明的估计不正确,并且也是正确恢复详细几何形状的阳碍。
53.本文描述了如下的系统、装置、过程(或方法)和计算机可读介质(统称为“系统和技术”):其可以从单个图像(例如,rgb图像)或在一些情况下从多个图像执行3d对象重建(例如,面部或其它对象的3d模型),以产生3d模型和/或深度图。例如,在一些情况下,可以使用本文描述的系统和技术来生成3d模型(其包括深度信息)。在另一示例中,可以使用本文描述的系统和技术来生成深度图。
54.在一些示例中,如下文更详细描述的,所述系统和技术可以基于图像(例如,单个图像)来执行初始拟合(例如,3d形变模型(3dmm)拟合)。所述系统和技术可以基于初始拟合(例如,3dmm拟合)和对象解析遮罩来执行一个或多个顶点级别拟合过程。在一些示例中,对象解析遮罩可以包括面部解析遮罩。在一些情况下,对象解析遮罩可以指示对象的用于应用聚类算法和/或用于色彩调整的一个或多个区域。所述系统和技术还可以执行像素级别
细化(例如,在执行一个或多个顶点级别拟合过程之后)以生成经细化的3d模型。在一些情况下,可以使用细化遮罩来确定3d模型的用于使用像素级别细化来添加深度信息的一部分。
55.从初始(例如,3dmm)拟合产生的纹理由于其统计特性而可能包括初步光泽和阴影,从而导致不正确的光估计结果。在一些示例中,本文描述的系统和技术可以将聚类算法(例如,k-means算法)应用于属于对象的非纹理区域(例如,由对象解析遮罩来标识)(诸如前额、脸颊、鼻子和/或面部的其它区域)的每个顶点色彩。可以选择最亮中心作为用于3d模型的基础反照率色彩,从而提供不具有光泽和阴影的纹理并且导致更准确的光估计。
56.所述系统和技术可以将语义对象(例如,面部)解析集成到详细的3d对象重建(例如,3d面部或其它对象重建)中。上述对象解析遮罩可以提供对象的语义解析。所述系统和技术能够在3dmm拟合期间即时合成反照率纹理,使得反照率纹理不仅产生无光泽和阴影的纹理,而且导致准确的光照估计。该解决方案可以利用轻量级的初始(例如,3dmm)拟合来重建详细的3d对象(例如,3d面部),同时在主观和客观质量度量方面保持优越的质量。
57.除了其它益处之外,本文描述的技术和系统可以解决3dmm拟合技术的缺陷(例如,与基础项、复杂性等相关联的缺陷)。例如,所述技术和系统可以进行自由形式的3d移位(例如,在laplacian变形约束下),以使得非刚性变形具有超过形状和表情系数的更好的拟合能力,同时保持对象(例如,面部)的主要表面形状。所述技术和系统还可以实现一种新颖的算法,以在对象解析遮罩(例如,指示图像中的要根据其从图像中提取反照率纹理的区域)(诸如面部解析遮罩)的引导下,直接从参考图像(例如,输入rgb图像)中提取反照率纹理。此外,在细化遮罩的引导下,可以避免在非均匀区域(例如,面部的眼睛以保持眼睛的真实球形形状)中的意外的深度结果。
58.出于说明性目的,本文中将使用面部作为对象的示例。然而,本领域普通技术人员将明白,本文描述的系统和技术可以针对在一个或多个图像中捕获的任何类型的对象来执行。
59.图2a是示出可以从单个rgb图像执行详细3d面部重建的系统200流水线的示例的图。如图2a所示,所提出的流水线包括三个不同的阶段,包括初始拟合阶段202(其可以包括3dmm拟合)、顶点级别拟合阶段(例如,包括顶点级别拟合过程204和顶点级别拟合过程206)以及像素级别细化阶段208(也被称为像素级别拟合)。对于初始拟合(例如,3dmm拟合),可以应用基于关键点的方法(使用面部关键点203),但不使用色彩相关项。在以下文档中描述了可以使用的基于关键点的方法的一个示例:yudong guo等人,“cnn-based real-time dense face reconstruction with inverse-rendered photo-realistic face images”,ieee transactions on pattern analysis and machine intelligence 41.6(2018):1294-1307,据此通过引用的方式将其全部内容并入并且用于所有目的。在一些情况下,系统200可以求解相机弱透视矩阵以及形状和表情的系数。
60.在一些示例中,如图2a所示,顶点级别拟合阶段包括可以顺序地应用的第一顶点级别拟合过程204和第二顶点级别拟合过程206。例如,第一顶点级别拟合过程204可以包括仅几何形状拟合,而第二顶点级别拟合过程206可以包括经组合的几何形状和纹理拟合。顺序地应用第一顶点级别拟合过程204和第二顶点级别拟合过程206可以提供以下描述的损失函数的更好收敛。在一些示例中,顶点级别拟合可以包括通过对由面部解析遮罩207定义
的皮肤区域应用聚类算法(诸如k-means算法)来提取图像中的面部的肤色。在一些情况下,使用最小二乘解来求解球面谐波(sh)的光系数。在以下文档中描述了最小二乘解的示例:ira kemelmacher-shlizerman和ronen basri,“3d face reconstruction from a single image using a single reference face shape”,ieee transactions on pattern analysis and machine intelligence 33.2(2010):394-405,据此通过引用的方式将其全部内容并入并且用于所有目的。然后,该过程可以基于在仅几何形状顶点拟合过程204期间具有顶点的自由移位(例如,参见下面的等式(3))的损失(例如,真实感损失,诸如在下面的等式(9)中所示)来优化形状、表情和光系数。用于丰富纹理区域的面部解析遮罩207可以用于第一顶点级别拟合过程204和/或第二顶点级别拟合过程206。例如,可以将额外的色彩调整项(例如,参见下面的等式(11))添加到损失函数中,以在第二顶点级别拟合过程206期间生成反照率纹理。如在下面的等式中所示,顶点级别拟合过程204和206联合优化3d模型的形状和反照率。
61.在像素级别细化阶段208中,系统200可以渲染粗略的深度图,并且可以基于从着色恢复形状损失(例如,参见下面的等式(17))或其中估计了照明和纹理的其它损失来求解针对每个像素的深度位移。该步骤是基于在顶点级别拟合阶段中求解的反照率纹理(例如,光系数)和3d模型或网格的。
62.可以在不同阶段中应用对象解析遮罩(例如,面部解析遮罩207)以改善重建结果。在一些示例中,对象解析遮罩可以用于在顶点级别拟合阶段期间(例如,在第一顶点级别拟合过程204期间)的肤色提取。例如,从初始拟合(例如,基于3dmm的拟合)产生的肤色是由其平均纹理和基础的线性组合来确定的,如在上面的等式(2)中所示。然而,由于3dmm的统计特性,从初始(例如,3dmm)拟合产生的纹理通常包含初步光泽和阴影。图4a是输入图像的示例,并且图4b提供了对基于肤色提取估计的光(在列402的顶部行中示出)和基于平均反照率估计的光(在列404的顶部行中示出)的比较。在列402中示出了通过肤色提取估计的光的结果,并且在列404中示出了通过平均反照率纹理估计的光的结果。在图4b中通过圆圈标记了由内置阴影和光泽引起的不正确的光估计结果。例如,如在图4b的列404中所示,初步光泽和阴影导致基于在图4a中所示的输入图像的不正确的光估计结果。
63.如图3所示,本文描述的系统和技术可以将聚类算法(例如,k-means或其它聚类算法)应用于属于输入图像302中的由面部解析遮罩207标识的非纹理区域(诸如图像中的面部的前额、脸颊和鼻子区域)的每个顶点色彩(被称为候选色彩)。面部解析遮罩由图像304示出。如在图3中进一步示出,最亮色彩306被选择为基础反照率色彩(例如,最亮色彩306是从候选色彩中选择的)。反照率色彩在下面被表示为c
albedo
。此类技术导致不具有光泽和阴影的纹理,从而提供了更准确的光估计,如在图4的列402中所示。在图像308中示出了基于所选择的最亮色彩306而估计的肤色。
64.在一些示例中,对象解析遮罩(例如,面部解析遮罩207)也可以用于在顶点级别拟合阶段期间(例如,在第二顶点级别拟合过程206期间)执行色彩调整。图5是示出用于使用面部解析遮罩207来执行色彩调整的示例过程的图。在给定输入图像502的情况下,确定初始肤色(在示出面部的反照率色彩的反照率图像504中示出)。在图像506中示出了面部解析遮罩,并且面部解析遮罩用于确定哪些区域是丰富纹理区域,诸如眉毛、嘴、嘴唇和眼睛。例如,如下面更详细描述的,将色彩调整项添加到拟合损失函数(拟合损失函数的示例如下面
的等式(11)所示)中,以进一步合成具有丰富纹理信息的那些区域,诸如面部的眉毛和嘴。色彩调整项可以包括纹理部分和非均匀部分两者(诸如镜面反射和遮挡阴影),这超出了球面谐波光照模型的范围。在优化过程期间,该过程迫使丰富纹理区域中的顶点的色彩调整接近参考或输入图像中的对应色彩,丰富纹理区域具有高于其它区域中的像素的权重(例如,如在等式(15)和(16)中所示)。如上所述,从着色恢复形状公式指示输入图像502中的每个像素的色彩应当是某种标量乘以反照率色彩。然而,丰富纹理区域(例如,眉毛、嘴、嘴唇、眼睛等)中的色彩变化可能不是由于表面的正常光照造成的,而是实际上可能直接来自反照率(例如,来自输入图像)。例如,嘴唇是红色的原因是因为嘴唇实际上是红色的,而不是因为面部的光或几何形状。当针对图像中的面部生成反照率时,本文描述的系统和技术可以使用面部解析遮罩来确定如何处理不同的区域(例如,如何处理丰富纹理区域与如何处理非纹理区域)。例如,面部解析遮罩可以指示哪些像素属于将通过从着色恢复形状函数处理的区域(例如,非纹理区域)以及哪些像素属于将不通过从着色恢复形状函数处理(或将以与非纹理区域不同的方式来处理)的区域(丰富纹理区域)。图像508示出了从着色恢复形状函数的结果(例如,在第二顶点级别拟合过程206之后产生的)。
65.如上所述,在一些情况下可以使用细化遮罩。例如,因为人类(以及其它动物)的眼睛是反射性的,所以在球面谐波光照模型下执行每像素深度细化可能导致不自然的几何形状。为了克服这种问题,可以使用眼睛细化遮罩来执行在像素级别细化阶段208期间执行的深度细化。例如,眼睛细化遮罩可以定义眼睛的位置,使得像素级别细化阶段208将深度添加到面部的在模型的与眼睛相对应的区域之外的一部分中(并且因此不调整与眼睛相对应的点的深度),并且不添加或修改眼睛区域的深度。在一些示例中,眼睛细化遮罩可以在执行顶点级别拟合阶段之后用于眼睛,并且可以诸如通过使用额外损失函数(例如,参见下面的等式(18))来限制在眼睛细化遮罩中定义的眼睛区域的像素的深度位移。对眼睛细化遮罩的使用允许系统200输出带有具有球形形状的眼睛区域的3d模型和/或深度图,从而产生具有对人的物理眼睛的形状更真实地建模的视觉外观的输出。图6是示出使用眼睛细化遮罩执行的面部重建结果的示例的图像,其中眼睛区域(在方框602中示出)具有带有平滑表面的球状形状。如果在像素级别细化阶段208期间调整眼睛区域的深度,则眼睛区域将具有凹凸纹理。
66.图2b是示出用于执行3d面部重建(例如,从单个rgb图像)的流水线或过程210的另一示例的图。例如,在操作211处,过程210接收输入图像(例如,rgb图像)、关键点(例如,在图2a中示出的面部关键点203)和面部解析遮罩(例如,在图2a中示出的面部解析遮罩207)。在操作212处,过程210执行初始拟合,其可以包括3dmm拟合。初始拟合可以生成图像中的面部的3d模型。初始拟合可以包括:求解3dmm模型的形状和表情系数(例如,使用上面的等式(1)和(2)),求解或获得相机矩阵(例如,下面的x
cam
)。初始拟合还可以包括求解球面谐波光照系数。可以使用任何适当的变换算法来求解相机矩阵,该变换算法可以执行从2d图像域到3d域的变换。
67.在操作214处,过程210执行顶点级别拟合,以提取肤色并且联合求解在操作212确定的3d模型(例如,3dmm模型)的顶点移位、色彩调整、形状、表情系数以及光照系数。如上所述,顶点级别拟合可以包括第一顶点级别拟合过程204和第二顶点级别拟合过程206。下面描述了顶点级别拟合的进一步细节。
68.在操作216处,过程210执行像素级别细化(或拟合)以求解每像素深度位移,这可以基于从着色恢复形状公式来执行,如下所述(例如,参见下面的等式(17))。在操作218处,过程210输出包括深度信息的深度图和/或3d模型。例如,3d模型可以包括由边和面连接的顶点或点的集合构成的3d网格。网格可以通过为这些顶点中的每个顶点分配(x,y,z)空间坐标来建模对象(例如,面部),其中x坐标对应于水平维度,y坐标对应于垂直维度,并且x坐标对应于深度维度。网格可以包括体积网格或多边形网格。
69.现在关于面部重建来描述关于由系统200和过程210执行的操作的实现细节。可以使用多个关键点来执行初始拟合(例如,3dmm拟合)。例如,可以使用针对输入图像(例如,rgb图像)中的面部而确定的面部关键点来将通用3d模型拟合到输入图像中的面部几何形状。该拟合可以包括基于面部关键点来修改3d模型的顶点(例如,修改模型的鼻子上的一个或多个顶点以与图像中的面部的鼻子上的一个或多个关键点对齐或紧密对齐),使得3d模型的几何形状更紧密地匹配图像中的面部。初始拟合将提供面部的深度图和/或3d模型的粗略估计。本文描述的顶点级别过程204和206以及像素级别细化阶段208可以提供更详细和细化的深度图和/或3d模型。
70.在一个说明性示例中,68个面部关键点可以用于初始拟合,诸如在图7a中所示的面部关键点。68个关键点可以包括由https://ibug.doc.ic.ac.uk/resources/300-w/中的ibug定义的那些关键点,据此通过引用的方式将其全部内容并入并且用于所有目的。对于顶点级别拟合,可以使用不同的面部关键点集合。在一个说明性示例中,70个关键点可以用于顶点级别拟合,诸如在图7b中所示的面部关键点。在一些情况下,如图7b所示,沿着眉毛的下边界定义针对眉毛的关键点,并且还添加了针对两个鼻子的关键点(与在图7a中所示的关键点相比),以提供更好的鼻子形状。在一些示例中,来自pytorch的adam优化器可以用于解决本文描述的所有优化问题。在以下文档中描述了adam优化器和pytorch:adam paszke等人,“automatic differentiation in pytorch”(2017),据此通过引用的方式将其全部内容并入并且用于所有目的。在下面的等式中,为了更好的易读性,省略了针对球面谐波(sh)和3dmm系数的边界约束项。
71.如下所述,顶点级别拟合过程204和206可以联合优化光、几何形状和反照率。例如,可以从初始拟合(例如,3dmm拟合)获得初始光照。顶点级别拟合过程204和206可以根据几何形状和反照率来优化光。许多现有系统分开优化形状(或几何形状)、光和反照率。本文描述的系统和技术可以通过使用下面描述的技术(例如,在等式(9)、(11)等中示出)联合优化光、几何形状和反照率来提供改进的深度图和/或3d模型结果。
72.现在将描述第一顶点级别拟合过程204的示例实现(例如,仅关于几何形状)。在该阶段,系统200可以进行每顶点移位x
shift
(例如,导致修改初始模型(诸如3dmm模型)的几何形状信息),以确保获得更好的拟合(与仅使用初始拟合(例如,初始3dmm拟合)获得的拟合相比)。每顶点移位x
shift
可以导致每个顶点被非线性地移位。在一个示例中,在给定相机矩阵x
cam
以及来自初始拟合(例如,来自3dmm拟合)的用于形状的系数x
shape
和用于表情的系数x
expression
的情况下,系统200可以通过如下将顶点坐标v
3d
和v
2d
投影到2d图像来重建这些顶点坐标:
[0073]v3d
=x
shape
×
basis
shape
x
expression
×
basis
expression
x
shift
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0074]v2d
=project(v
3d
,x
cam
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0075]
使用等式(3)确定的项v
3d
是作为初始拟合的结果而生成的初始模型的每个顶点的每顶点3d位置。使用等式(4)确定的项v
2d
表示在2d中(在图像中)的每个顶点位置。3d位置v
3d
可以用于计算几何形状。2d位置v
2d
可以用于计算图像坐标域中的每个顶点的色彩。形状系数x
shape
和形状基础basis
shape
(来自3dmm)表示初始模型(例如,3dmm模型)中的每个顶点的位置,并且表情系数x
expression
和表情基础basis
expression
表示用于每个顶点要移动的预定义图案(基于特定表情)。形状和表情系数以及基础项在初始3dmm拟合中使用(如在等式(1)和(2)中所示),并且是线性项,并且因此不能用于封装对象(例如,面部)的所有详细信息。x
shift
项是使用以下优化来确定的,并且通过修改每个3d顶点位置v
3d
来向每个顶点的3d位置提供非线性度。x
shift
可以是在任何方向上(包括水平或x方向、垂直或y方向和/或深度或z方向),在这种情况下,每个顶点可以基于x
shift
的值在任何方向上移位。
[0076]
laplacian约束项用于在优化期间保持表面外观一致。在以下文档中提供了laplacian约束项的示例:olga sorkine等人,“laplacian surface editing”,2004年欧洲制图学会/acm siggraph关于几何形状处理的研讨会的论文集,acm,2004,据此通过引用的方式将其全部内容并入并且用于所有目的。系统200可以将每个顶点转变到其laplacian坐标,并且可以例如使用以下等式计算在添加x
shift
之后的损失:
[0077]
l
laplacian
=||laplacian(v
3d
)-laplacian(v
3d-x
shift
)||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0078]
其中,l
laplacian
是laplacian约束。如在上面的等式(3)中所示(定义v
3d
),每个顶点位置v
3d
通过x
shift
进行修改。如上所述,每个顶点可以基于x
shift
的值在任何方向上移位。laplacian约束可以用于约束由x
shift
引起的每个顶点的移位量。例如,laplacian可以通过用与顶点相邻的相邻顶点的平均位置减去顶点来定义顶点坐标,从而保持顶点与其邻居之间的关系。laplacian约束可以充当平滑项,使得3d网格(构成3d模型)的顶点是平滑的。例如,构成鼻子的边缘的顶点通常应当定义平滑边缘,并且laplacian约束可以确保相邻顶点保持一致的空间关系。
[0079]
关键点可以在顶点级别拟合过程期间用作控制点。例如,为了进一步控制经重建的面部的3d几何形状,系统200可以计算被投影的顶点相对于相应关键点的2d距离损失l
static_lmk
。在一些示例中,关键点中的一个或多个关键点可以包括轮廓关键点。轮廓关键点是位于可见面部区域的边缘的关键点。在一些情况下,轮廓关键点可能在初始模型(例如,3dmm模型)上没有固定的对应顶点。在这样的情况下,系统200可以确定针对轮廓关键点的最近顶点,并且可以在拟合期间使用最近顶点作为控制点。例如,对于轮廓关键点,系统200可以计算到其最近顶点的距离损失,以计算其损失l
lmk_dynamic
。2d距离损失可以如下用公式表示:
[0080]
l
lmk_static
=||landmark-corresponding(v
2d
)||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0081]
l
lmk_dynamic
=||landmark-closet(v
2d
)||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0082]
静态关键点l
lmk_static
是在初始模型(例如,3dmm模型)的顶点索引之间具有特定对应关系的关键点。例如,与模型中的特定顶点相对应的关键点是静态关键点。对于静态关键点,等式(6)确定该关键点与对应顶点的2d位置之间的距离。动态关键点l
lmk_dynamic
是不具有与初始模型的3dmm顶点索引中的任何一者的对应关系的关键点。对于动态关键点,等式(7)确定该关键点与最接近该关键点的顶点的2d位置之间的距离(例如,如通过距离来度量,诸如余弦距离、曼哈顿距离或其它距离)。
[0083]
如上所讨论的,系统200可以执行肤色提取(例如,使用聚类算法,诸如k-means),以确定针对每个顶点的纯反照率色彩c
albedo
。然后,系统200可以应用最小二乘解来确定针对每个顶点的初始光系数x
light
。在上面引用的文档中描述了最小二乘解的示例:kemelmacher-shlizerman等人,“3d face reconstruction from a single image using a single reference face shape”。系统200可以如下使用每个顶点的法线的球面谐波(sh)函数来计算针对每个顶点的照明或光标量s
light

[0084]slight
=sh(normal(v
3d
),n
band
)
·
x
light
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0085]slight
项是乘以反照率色彩的光标量(例如,参见下面的等式(9)),以确定针对3d模型的顶点的光。项normal(v
3d
)是每个3d顶点v
3d
的表面法线。项n
band
是球面谐波频带的数量。在一个说明性示例中,n
band
可以是值2。根据球面谐波(sh)函数,可以将法线值传递到由球面谐波函数预定义的特征向量(例如,一维(1d)特征向量)。在以下文档中描述了sh函数:c.muller,“spherical harmonics”,inlecture notes in mathematics,第17卷,1966,据此通过引用的方式将其全部内容并入并且用于所有目的。来自等式(8)的被优化的变量是光项x
light
,其是1d向量(匹配sh特征向量的维度)。例如,光x
light
是从法线获得的sh基础的线性组合。
[0086]
系统200可以将x
shape
、x
expression
、x
light
和x
shift
与真实感损失l
photo
联合地求解,其中*表示逐元素乘法,例如使用以下公式:
[0087]
l
photo_1
=||c
target-c
albedo
*s
light
||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0088]ctarget
项是用于每个顶点的目标色彩。等式(9)的真实感损失l
photo
确定目标色彩c
target
与基于光标量s
light
和反照率色彩c
albedo
计算的色彩之间的距离。如图8所示,可以从输入图像对每个顶点的目标色彩c
target
进行双线性采样。图8是示出针对被投影到图像的关键点和顶点的可视化的图像。在图8中,空心圆圈表示关键点,菱形表示具有定义的对应关键点的顶点,并且圆点表示顶点。如图所示,鼻子的多个顶点(在鼻孔区域周围)聚类在一起。在一些示例中,系统200可以在优化期间忽略不可见的顶点。
[0089]
在第一顶点级别拟合过程204中的具有损失权重的总体损失函数的示例如下:
[0090][0091]
如上所述,l
photo_1
是色彩项,l
laplacian
是平滑laplacian函数(针对3d顶点位置v
3d
),并且l
lmk_static
和l
lmk_static
是基于关键点的项(针对2d顶点位置v
2d
)。权重w
photo
、w
laplacian
、w
lmk_static
和w
lmk_dynamic
是可以调谐到特定值的超参数。用于加权参数(其用于下面描述的结果)的值的示例包括w
photo
=2e6,w
laplacian
=0.05,w
lmk_static
=1e5以及w
lmk_dynamic
=1e4。学习率可以被设置为0.005,并且系统200可以在第一顶点级别拟合过程204中运行100次迭代。
[0092]
现在将描述第二顶点级别拟合过程206的示例实现(例如,关于几何形状和纹理)。基于执行第一顶点级别拟合过程204,系统200输出针对输入图像中的面部的准确拟合的网格(其可以被称为拟合3d模型)。系统200可以开始使用面部解析遮罩从参考图像(输入图像)中提取反照率纹理色彩。在第二顶点级别拟合过程206的优化中引入了两个色彩调整项c
adjust
和c
residual
以及其正则化项。c
adjust
项定义针对每个顶点的色彩移位并且因此用于调整针对每个顶点的色彩。如上所述,在第一顶点级别拟合过程204中仅使用了c
albedo
,其中calbedo
是纯肤色(例如,如在图5的图像504中所示)。可以使用c
adjust
项来调整c
albedo
,如在下面的等式(11)中所示。使用色彩残差c
residual
项是因为sh模型无法处理由遮挡或聚光照明引起的一些阴影。如图9所示,所求解的残差c
residual
不仅关注纹理部分(例如,眉毛、嘴唇等),而且关注聚光照明(例如,鼻尖)。
[0093]
与可以使用逐步方法和/或依赖于手动定义的遮罩的其它重建技术不同,系统200可以将c
adjust
和cr
esidual
与其它参数联合求解。例如,使用色彩调整项c
adjust
和c
residual
,系统200可以将等式9和10中的l
photo_1
修改为l
photo_2
,如下所示:
[0094]
l
photo_2
=||c
target-((c
albedo
c
adjust
)*s
light
c
residual
)||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0095]
与等式(9)相比,等式(11)中的l
photo_2
在将反照率色彩乘以光标量s
light
之前使用c
adjust
来调整c
albedo
。色彩调整可以生成被认为仅由实际面部几何形状和光照形成的色彩。图9示出了提供对色彩正则化的比较的图像。几何形状细节(例如,如通过图9的第二行中的方框所示)可以在没有适当约束的情况下由纹理直接表示。在一些情况下,可以引入正则化项r
adjust
和r
residual
以避免过度拟合(如在图9的第二列中所示),这可以确保色彩将不会改变太大的量。正则化项可以使用以下公式来定义:
[0096]radjust
=||c
adjust
||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0097]rresidual
=||c
residual
||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0098]
在一些示例中,对于每个顶点的色彩ci=c
albedo_i
c
adjust_i
,系统200可以约束与其邻居的色彩亲和性,以防止形成复杂的反照率纹理(如在图9的第三列中所示)。例如,可以确定色彩亲和性损失l
affinity
,以确保所确定的反照率色彩是分段的,而不是非常详细的色彩图。色彩亲和性损失l
affinity
可以使用以下公式来定义:
[0099][0100]
其中,i、j、n、k是顶点(i)的索引、相邻顶点(j)的索引、面部区域中的顶点总数(n)和相邻顶点的数量(k)。等式(14)的色彩亲和性损失l
affinity
定义了每个顶点的色彩ci与其相邻顶点的色彩cj之间的色彩差,其中,如果两个顶点的色彩ci和cj彼此足够接近,则这些色彩被认为是相同的色彩。否则,如果这些色彩不够接近,则这些色彩可以彼此不同。例如,如在等式(14)的上部部分中指示的,如果色彩差太大(如由||c
i-cj||2>τ定义),则不计算损失。对于位于两种不同色彩之间的边界的不同侧的两个顶点,可能出现这种情形。如果损失在||c
i-cj||2>τ内,则根据函数来计算损失。两个超参数τ和σ可以用于控制亲和性门限。
[0101]
在一些示例中,对于面部的属于由面部解析遮罩定义的特定区域(例如,眼睛、眉毛、嘴、头发和/或面部上的其它丰富纹理区域)的顶点,损失函数l
albedo
被定义为从参考图像合成反照率纹理。损失函数l
albedo
可以如下定义:
[0102][0103]
在等式(15)中定义的损失函数l
albedo
使所生成的反照率纹理与所预测的色彩或纹
理之间的差异最小化,所预测的色彩或纹理是通过从参考图像中移除光来计算的。如通过下面的等式(15)和等式(16)所示,对于纹理区域(例如,眼睛、眉毛等),将对色彩应用较多权重,而将对几何形状应用较少权重,从而联合优化色彩和几何形状。对于非纹理区域,l
albedo
将为0,在这种情况下,该项将对根据等式(16)确定的总体损失没有影响。使用面部解析遮罩来确定纹理区域和非纹理区域。例如,可以向面部解析遮罩中的每个像素分配指示输入图像中的对应像素属于纹理区域的第一值,或者分配指示输入图像中的对应像素属于非纹理区域的第二值。图10包括示出利用和不利用面部解析遮罩求解的反照率的示例的图像。
[0104]
在第二顶点级别拟合过程206中的具有权重和正则化项的总体损失函数的示例如下:
[0105][0106]
用于权重参数(其用于以下描述的结果)的值的示例包括w
adjust
=5e3,w
residual
=1e3,w
albedo
=1e7,w
adjust_reg
=0.1,以及w
residual
=1e5。学习率可以被设置为0.005,并且系统200可以在第一顶点级别拟合过程204中运行100次迭代。
[0107]
现在将描述像素级别细化阶段208的示例实现。在一些示例中,因为自由形式的移位在一些情况下可能导致粗糙表面(例如,在低分辨率网格中),所以系统200可以在渲染之前对网格执行平滑函数(例如,离散laplacian平滑化)以降低其粗糙度。在以下文档中描述了离散laplacian平滑化的示例:maxwardetzky等人,“discretelaplaceoperators:nofreelunch”,几何处理研讨会,2007,据此通过引用的方式将其全部内容并入并且用于所有目的。
[0108]
然后,系统200可以利用经平滑的网格来渲染反照率图像i
albedo
和深度图像i
depth
,以进行像素级别细化。在像素级别细化中,需要求解的变量是在深度或z方向上的每像素位移d
shift
。用于像素级别细化阶段208的损失函数也是真实感损失,但是在像素级别。系统200可以计算针对每个像素的法线,并且可以在优化期间将所求解的光照系数应用于经渲染的反照率图像i
albedo
。针对像素级别细化阶段208的目标变为不具有经渲染的残差部分i
residual
的参考图像i
target
,如下:
[0109]
l
photo_3
=||i
target-(i
albedo
*(5h(normal(i
dpeth
d
shift
))
·
x
light
) i
residual
)||2(17)
[0110]
等式(17)类似于等式(11),但是考虑了图像的每个像素而不是模型的每个顶点。像素级别移位d
shift
将像素在深度或z方向上移位,以便确保深度是准确的,而x
shift
可以在任何方向(包括水平或x方向、垂直或y方向和/或深度或z轴方向)上将顶点移位,以将3d模型与图像中的面部的几何形状对齐。为了保持球形眼睛几何形状(如通过图6中的结果所示),系统200可以使用眼睛细化遮罩来限制眼睛的像素具有接近零的位移。为了限制眼睛像素的位移(如通过眼睛细化遮罩所指示的),系统200可以使用针对经渲染的深度图像中的每个像素p的区域特定惩罚,其可以如下用公式表示:
[0111][0112]
像素p是否属于眼睛区域是由眼睛细化遮罩来指示的。例如,可以向眼睛细化遮罩中的每个像素分配指示输入图像中的对应像素属于眼睛区域的第一值,或者分配指示输入图像中的对应像素属于除了眼睛区域之外的区域的第二值。
[0113]
离散laplacian算子的大小(例如,如在上面引用的文档中描述的:wardetzky,“discrete laplace operators:no free lunch”)可以用作损失函数l
discrete_laplacian
,这约束了经细化的3d模型或深度图的平滑度。对于位移的总大小,系统200可以使用l2损失d
shift
作为正则化项r
shift

[0114]
用于像素级别细化的总体损失函数的示例如下:
[0115][0116]
求解方程(19)产生d
shift
的值,该值可以用于确定将输出的最终深度图和/或3d模型。例如,可以应用d
shift
来将先前生成的深度图(或图像)i
depth
的值移位(上面示为i
depth
d
shift
)。用于参数(其用于下面描述的结果)的值的示例包括w
photo_3
=1e3,w
eyes
=1e9,w
discrete_laplacian
=1,以及w
shift_reg
=1e-5

[0117]
提供了在面部识别大挑战(frgc)数据集上的经重建的3d面部相对于包括以下技术的其它面部重建技术的评估:在以下文档中描述的技术:yue li等人,“feature-preserving detailed 3d face reconstruction from a single image”,第15届acm siggraph欧洲视觉媒体生产会议的论文集,acm,2018;以及在上面引用的文档中描述的技术:kemelmacher-shlizerman等人,“3d face reconstruction from a single image using a single reference face shape”。在以下文档中描述了frgc数据集:p.j.phillips等人,“overview of the face recognition grand challenge”,在2005年ieee计算机学会的计算机视觉和模式识别会议(cvpr’05)中,第1卷,第947954页,ieee,2005,据此通过引用的方式将其全部内容并入并且用于所有目的。
[0118]
使用迭代最近点(icp)算法来配准经重建的点云,并且如在下面的表1中所示地计算每像素深度误差。如表1所示,使用本文描述的技术生成的重建在所有度量当中实现最佳结果。
[0119][0120]
表1-对实际扫描的深度数据的定量比较结果,其中,较低值指示较好结果
[0121]
为了以更直观的方式比较结果,本文描述的重建技术可以被应用于图像,其中已
经针对这些图像应用了其它重建技术。使用本文描述的技术获得的重建结果表明更好的细节并且显著更真实。
[0122]
图11是示出使用本文描述的技术来生成一个或多个三维(3d)模型的过程1100的示例的流程图。在一些示例中,过程1100可以由在图2a中所示的系统200来执行。在操作1102处,过程1100包括获得对象的图像。对象可以包括面部、车辆、建筑物或任何其它对象。
[0123]
在操作1104处,过程1100包括生成图像中的对象的3d模型。3d模型包括几何形状信息。例如,在一些示例中,过程1100可以获得通用对象模型,并且可以识别图像中的对象的关键点(例如,在图7a中所示的关键点)。过程1100可以通过使用所识别的对象的关键点将通用对象模型拟合到图像中的对象来生成3d模型。将通用对象模型拟合到图像中的对象可以包括修改通用对象模型中的顶点的位置以更好地拟合到关键点。在一些示例中,在操作1104处被执行以生成对象的3d模型的拟合可以包括上述初始拟合,诸如3dmm拟合。
[0124]
在操作1106处,过程1100包括确定用于3d模型的色彩信息。在一些示例中,色彩信息包括反照率色彩。在操作1108处,过程1100包括基于对几何形状信息和用于3d模型的色彩信息的修改来生成对象的经拟合的3d模型。在一些实现中,过程1100可以执行3d模型的至少一个顶点级别拟合。至少一个顶点级别拟合修改3d模型的几何形状信息,并且使用对象解析遮罩(例如,面部解析遮罩)来确定用于3d模型的色彩信息。如上所述,对象解析遮罩定义3d模型的用于色彩调整的一个或多个区域。在一些方面中,执行3d模型的至少一个顶点级别拟合包括执行对几何形状信息和色彩信息的联合优化,如上所述。
[0125]
如上所述,在一些实现中,可以使用上述第一顶点级别拟合过程204和第二顶点级别拟合过程206来执行对象的经拟合的3d模型以及确定用于3d模型的色彩信息。例如,执行3d模型的至少一个顶点级别拟合可以包括识别由对象解析遮罩定义的一个或多个区域,并且执行3d模型到对象的第一顶点级别拟合(例如,第一顶点级别拟合过程204)。第一顶点级别拟合通过将3d模型的每个顶点移位以拟合图像中的对象来修改3d模型的几何形状信息。第一顶点级别拟合还确定用于3d模型的每个顶点的色彩信息。例如,如上所述,过程1100可以使用聚类算法(例如,k-means算法)来确定用于3d模型的被包括在由对象解析遮罩标识的一个或多个区域中的每个顶点的多个候选色彩。过程1100可以针对被包括在由对象解析遮罩标识的一个或多个区域中的每个顶点,从针对每个顶点确定的多个候选色彩中选择最亮色彩(例如,用作上面的c
albedo
)。
[0126]
执行3d模型的至少一个顶点级别拟合还可以包括执行3d模型到对象的第二顶点级别拟合(例如,第二顶点级别拟合过程206)。第二顶点级别拟合调整用于3d模型的被包括在由对象解析遮罩标识的一个或多个区域中的每个顶点的色彩信息。
[0127]
在操作1110处,过程1100包括基于经拟合的3d模型以及与经拟合的3d模型相关联的深度信息来生成对象的经细化的3d模型。在一些情况下,过程1100可以输出对象的经细化的3d模型。在一些示例中,生成对象的经细化的3d模型包括执行经拟合的3d模型的像素级别细化,诸如使用上述像素级别细化阶段208。像素级别细化将深度信息添加到经拟合的3d模型的一部分中。例如,使用细化遮罩(例如,眼睛细化遮罩),过程1100可以确定经拟合的3d模型的用于使用像素级别细化来添加深度信息的该部分。在各示例中,当对象包括面部时,细化遮罩可以包括眼睛细化遮罩(或者眼睛遮罩),其指示该部分包括面部的在面部的眼睛区域之外的区域。在一些示例中,如上所述,经拟合的3d模型的像素级别细化可以包
括生成用于经拟合的3d模型的反照率图像和深度图像。过程1100可以使用反照率图像和深度图像来生成经细化的3d模型。在一些实现中,过程1100可以将平滑函数应用于经拟合的3d模型。在一些示例中,平滑函数包括离散laplacian平滑函数。
[0128]
在一些示例中,本文描述的过程(例如,过程210、1100和/或本文描述的其它过程)可以由计算设备或装置来执行。在一个示例中,过程1100(和/或本文描述的其它过程)可以由图2a中的系统200来执行。在另一示例中,过程1100(和/或本文描述的其它过程)可以由在图12中所示的计算系统1200来执行。例如,在图12中所示的计算系统200可以包括系统200的组件,并且可以实现图11的操作。
[0129]
计算设备可以包括任何适当的设备,诸如移动设备(例如,移动电话)、桌面计算设备、平板计算设备、可穿戴设备(例如,vr头戴式设备、ar头戴式设备、ar眼镜、网络连接手表或智能手表、或其它可穿戴设备)、服务器计算机、自主车辆或自主车辆的计算设备、机器人设备、电视机和/或具有执行本文描述的过程(包括过程1100和/或本文描述的其它过程)的资源能力的任何其它计算设备。在一些情况下,计算设备或装置可以包括各种组件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器、和/或被配置为执行本文描述的过程的步骤的其它组件。在一些示例中,计算设备可以包括显示器、被配置为传送和/或接收数据的网络接口、其任何组合和/或其它组件。网络接口可以被配置为传送和/或接收基于互联网协议(ip)的数据或其它类型的数据。
[0130]
计算设备的组件可以在电路中实现。例如,组件可以包括和/或可以使用电子电路或其它电子硬件来实现,电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(gpu)、数字信号处理器(dsp)、中央处理单元(cpu),和/或其它适当的电子电路)、和/或可以包括和/或使用计算机软件、固件或其任何组合来实现,以执行本文描述的各种操作。
[0131]
过程210和1100被示为逻辑流程图,逻辑流程图的操作表示可以在硬件、计算机指令或其组合中实现的一系列操作。在计算机指令的背景下,所述操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的次序并不旨在被解释为限制,并且任何数量的所描述的操作可以以任何次序组合和/或可以是并行的,以实现这些过程。
[0132]
另外,过程210、1100和/或本文描述的其它过程可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,以及可以作为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用)来实现,通过硬件来实现,或其组合。如上所提到,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式被存储在计算机可读或机器可读存储介质上。计算机可读存储介质或机器可读存储介质可以是非暂时性的。
[0133]
图12是示出用于实现本文技术的某些方面的系统的示例的图。具体地,图12示出了计算系统1200的示例,计算系统1200可以是例如组成以下各者的任何计算设备:内部计算系统、远程计算系统、相机、或其任何组件(其中系统的组件使用连接1205彼此通信)。连接1205可以是使用总线的物理连接、或进入处理器1210的直接连接(诸如在芯片组架构
中)。连接1205还可以是虚拟连接、网络连接或逻辑连接。
[0134]
在一些实施例中,计算系统1200是分布式系统,其中,在本公开内容中描述的功能可以分布在数据中心、多个数据中心、对等网络等内。在一些实施例中,所描述的系统组件中的一个或多个系统组件表示许多这样的组件,每个组件执行针对该组件所描述的功能的一些或全部功能。在一些实施例中,组件可以是物理或虚拟设备。
[0135]
示例系统1200包括至少一个处理单元(cpu或处理器)1210和连接1205,连接1205将包括系统存储器1215(诸如只读存储器(rom)1220和随机存取存储器(ram)1225)的各种系统组件耦合到处理器1210。计算系统1200可以包括高速存储器的高速缓存1212,高速缓存1212与处理器1210直接连接、接近处理器1210或被集成为处理器1210的一部分。
[0136]
处理器1210可以包括任何通用处理器以及被配置为控制处理器1210的硬件服务或软件服务(诸如被存储在存储设备1230中的服务1232、1234和1236)、以及其中软件指令被并入实际处理器设计中的专用处理器。处理器1210本质上可以是完全自包含的计算系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或非对称的。
[0137]
为了实现用户交互,计算系统1200包括可以表示任何数量的输入机构的输入设备1245,诸如用于语音的麦克风、用于手势或图形输入的触摸敏感屏幕、键盘、鼠标、运动输入、语音等。计算系统1200还可以包括输出设备1235,其可以是多个输出机构中的一个或多个输出机构。在一些情况下,多模态系统可以使得用户能够提供多个类型的输入/输出以与计算系统1200进行通信。计算系统1200可以包括通信接口1240,其通常可以支配和管理用户输入和系统输出。通信接口可以使用有线和/或无线收发机来执行或促进接收和/或发送有线或无线通信,包括利用以下各项的那些有线和/或无线收发机:音频插孔/插头、麦克风插孔/插头、通用串行总线(usb)端口/插头、端口/插头、以太网端口/插头、光纤端口/插头、专有有线端口/插头、无线信号传输、低能(ble)无线信号传输、无线信号传输、射频标识(rfid)无线信号传输、近场通信(nfc)无线信号传输、专用短程通信(dsrc)无线信号传输、802.11wi-fi无线信号传输、无线局域网(wlan)信号传输、可见光通信(vlc)、微波接入全球互操作性(wimax)、红外(ir)通信无线信号传输、公共交换电话网(pstn)信号传输、综合业务数字网络(isdn)信号传输、3g/4g/5g/lte蜂窝数据网络无线信号传输、自组织网信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外光信号传输、沿着电磁频谱的无线信号传输、或其某种组合。通信接口1240还可以包括一个或多个全球导航卫星系统(gnss)接收机或收发机,其用于基于从与一个或多个gnss系统相关联的一个或多个卫星接收一个或多个信号来确定计算系统1200的位置。gnss系统包括但不限于基于美国的全球定位系统(gps)、基于俄罗斯的全球导航卫星系统(glonass)、基于中国的北斗导航卫星系统(bds)和基于欧洲的伽利略gnss系统。对任何特定硬件排列的操作没有限制,并且因此在其被开发时,此处的基本功能可以容易地替换为改进的硬件或固件布置。
[0138]
存储设备1230可以是非易失性和/或非暂时性和/或计算机可读存储器设备,以及可以是硬盘或其它类型的计算机可读介质,其可以存储可由计算机访问的数据,诸如盒式磁带、闪存卡、固态存储器设备、数字多功能磁盘、盒式磁带、软盘、软磁盘、硬盘、磁带、磁片(strip)/磁条(stripe)、任何其它磁性存储介质、闪存、忆阻器存储器、任何其它固态存储
器、压缩盘只读存储器(cd-rom)光盘、可重写压缩盘(cd)光盘、数字视频盘(dvd)光盘、蓝光盘(bdd)光盘、全息光盘、另一光学介质、安全数字(sd)卡、微型安全数字(microsd)卡、memory卡、智能卡芯片、emv芯片、用户身份模块(sim)卡、迷你/微型/纳米/微微sim卡、另一集成电路(ic)芯片/卡、随机存取存储器(ram)、静态ram(sram)、动态ram(dram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪速eprom(flashprom)、高速缓存存储器(l1/l2/l3/l4/l5/l#)、电阻式随机存取存储器(rram/reram)、相变存储器(pcm)、自旋转移转矩ram(stt-ram)、另一存储器芯片或盒、和/或其组合。
[0139]
存储设备1230可以包括软件服务、服务器、服务等,当由处理器1210执行定义这样的软件的代码时,其使得系统执行功能。在一些实施例中,执行特定功能的硬件服务可以包括被存储在计算机可读介质中的软件组件,软件组件与用于执行该功能的必要硬件组件(诸如处理器1210、连接1205、输出设备1235等)相连接。
[0140]
如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备、以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括数据可以被存储在其中并且不包括以下各项的非暂时性介质:无线地或者在有线连接上传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于:磁盘或磁带、诸如压缩光盘(cd)或数字多功能光盘(dvd)的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可以具有被存储在其上的代码和/或机器可执行指令,代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容,来耦合到另一代码段或硬件电路。可以使用包括存储器共享、消息传递、令牌传递、网络传输等的任何适当的手段来传递、转发或发送信息、自变量、参数、数据等。
[0141]
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身的介质。
[0142]
在上文的描述中提供了具体细节以提供对本文提供的实施例和示例的全面理解。然而,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实践这些实施例。为了解释清楚,在一些情况下,本文的技术可以被呈现为包括包含如下的功能块的单独的功能块,这些功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。除了在各图中所示和/或本文描述的组件之外,还可以使用额外的组件。例如,电路、系统、网络、过程和其它组件可以以框图形式被示为组件,以便不会在不必要的细节上模糊这些实施例。在其它情况下,公知的电路、过程、算法、结构和技术可以被示为不具有不必要的细节,以便避免模糊这些实施例。
[0143]
上文可以将各个实施例描述为过程或方法,该过程或方法被描绘为流程图、流程示意图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序的过程,但是这些操作中的许多操作可以并行或并发地执行。另外,可以重新排列操作的次序。过程在其操作完成后被终止,但是可以具有未被包括在图中的额外步骤。过程(process)可以对应于方法、函数、过程(procedure)、子例程、子程序等。当过程对应于函数时,其终止可以对应于该
函数返回到调用函数或主函数。
[0144]
根据上述示例的过程和方法可以使用计算机可执行指令来实现,计算机可执行指令被存储在计算机可读介质中或者以其它方式可从计算机可读介质得到。这样的指令可以包括例如指令或数据,指令或数据使得通用计算机、专用计算机或处理设备执行或者以其它方式将其配置为执行特定功能或特定的一组功能。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制文件、诸如汇编语言的中间格式指令、固件、源代码等。可以用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、被提供有非易失性存储器的usb设备、网络存储设备等。
[0145]
实现根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,以及可以采用多种形状因子中的任何一种。当在软件、固件、中间件或微代码中实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。处理器可以执行必要任务。形状因子的典型示例包括膝上型计算机、移动电话(例如,智能电话或其它类型的移动电话)、平板设备或其它小型形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能还可以体现在外围设备或插件卡中。通过另外的举例,这样的功能还可以在单个设备中执行的不同芯片或不同过程之间的电路板上实现。
[0146]
指令、用于传送这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其它结构是用于提供在本公开内容中描述的功能的示例单元。
[0147]
在前面的描述中,参考本技术的特定实施例描述了本技术的各方面,但是本领域技术人员将认识到,本技术不限于此。因此,尽管本文已经详细描述了本技术的说明性实施例,但是应理解的是,可以以其它方式不同地体现和采用本发明构思,并且所附的权利要求旨在被解释为包括这样的变型,除了由现有技术限制的变型。可以单独地或联合地使用上述应用的各个特征和方面。此外,在不脱离本说明书的较宽精神和范围的情况下,实施例可以在除了本文描述的环境和应用之外的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定次序描述了方法。应当认识到的是,在替代实施例中,可以以与所描述的次序不同的次序来执行所述方法。
[0148]
本领域普通技术人员将认识到的是,在不脱离本说明书的范围的情况下,本文中使用的小于(“《”)和大于(“》”)符号或术语可以分别用小于或等于(“≤”)以及大于或等于(“≥”)符号来替换。
[0149]
在将组件描述为“被配置为”执行某些操作的情况下,这样的配置可以例如通过以下方式来实现:将电子电路或其它硬件设计为执行该操作,将可编程电子电路(例如,微处理器或其它适当的电子电路)编程为执行该操作,或其任何组合。
[0150]
短语“耦合到”指代直接或间接地物理连接到另一组件的任何组件、和/或直接或间接地与另一组件通信的任何组件(例如,通过有线或无线连接和/或其它适当的通信接口而连接到另一组件)。
[0151]
记载集合中的“至少一个”和/或集合中的“一个或多个”的权利要求语言或其它语言指示该集合中的一个成员或者该集合中的多个成员(以任何组合)满足该权利要求。例如,记载“a和b中的至少一个”或“a或b中的至少一个”的权利要求语言意指a、b、或者a和b。
在另一示例中,记载“a、b和c中的至少一个”或“a、b或c中的至少一个”的权利要求语言意指a、b、c、或者a和b、或者a和c、或者b和c、或者a和b和c。语言集合中的“至少一个”和/或集合中的“一个或多个”并不将该集合限制为在该集合中列出的项目。例如,记载“a和b中的至少一个”或“a或b中的至少一个”的权利要求语言可以意指a、b或者a和b,并且可以另外包括未在a和b的集合中列出的项目。
[0152]
结合本文公开的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上文已经对各种说明性的组件、框、模块、电路和步骤围绕其功能进行了总体描述。这样的功能被实现为硬件还是软件取决于特定的应用和被施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同的方式来实现所描述的功能,但是这样的实现决策不应当被解释为导致脱离本技术的范围。
[0153]
本文描述的技术还可以在电子硬件、计算机软件、固件或其任何组合中实现。这样的技术可以在各种设备中的任何一种中实现,诸如通用计算机、无线通信设备手持设备或具有多种用途(包括在无线通信设备手持设备和其它设备中的应用)的集成电路设备。被描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者分别作为分立但是可互操作的逻辑设备来实现。如果在软件中实现,则所述技术可以至少部分地由计算机可读数据存储介质来实现,计算机可读数据存储介质包括程序代码,程序代码包括在被执行时执行上述方法中的一种或多种方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(ram)(诸如同步动态随机存取存储器(sdram))、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁或光数据存储介质等。另外或替代地,所述技术可以至少部分地由以指令或数据结构的形式携带或传送程序代码并且可以由计算机访问、读取和/或执行的计算机可读通信介质(诸如传播的信号或波)来实现。
[0154]
程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其它等效的集成或分立逻辑电路。这样的处理器可以被配置为执行在本公开内容中描述的任何技术。通用处理器可以是微处理器,但是在替代方式中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp核的结合、或任何其它这样的配置。因此,如本文所使用的术语“处理器”可以指代任何前述结构、前述结构的任何组合、或适于实现本文描述的技术的任何其它结构或装置。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献