首页 / 专利库 / 图形技术 / 迭代重建 / 3D面部模型重建装置和方法

3D面部模型重建装置和方法

阅读:75发布:2020-05-11

专利汇可以提供3D面部模型重建装置和方法专利检索,专利查询,专利分析的服务。并且本文公开与3D面部模型重建相关联的装置、方法和存储介质。在 实施例 中,装置可包括面部地标检测器、模型拟合器和模型 跟踪 器。面部地标检测器可配置为检测面部的多个地标和它们在多个图像 帧 的每一帧中的 位置 。模型拟合器可配置为考虑检测到的面部地标和它们在多个图像帧中的第一帧内的位置而从中性面部的3D模型生成面部的3D模型。模型跟踪器可以配置为维持3D模型来跟踪后续图像帧中的面部,考虑检测到的面部地标和它们在多个图像帧中的连续帧的每一个中的位置而连续更新3D模型。在实施例中,面部地标检测器还包括面部检测器、初始面部地标检测器以及一个或多个面部地标检测线性回归器。可以描述和/或要求保护其它实施例。,下面是3D面部模型重建装置和方法专利的具体信息内容。

1.一种配备为构建三维3D面部模型的装置,包括:
面部地标检测器,在多个图像中的每一帧内检测面部的多个地标及其位置
耦合到所述面部地标检测器的模型拟合器,考虑到在所述多个图像帧中的第一帧内检测到的所述面部的地标及其位置而从中性面部的3D模型生成所述面部的3D模型;以及耦合到所述面部地标检测器和所述模型拟合器的模型跟踪器,调整所述3D模型以在后续图像帧中跟踪所述面部,考虑到在所述多个图像帧中连续帧的每帧内检测到的所述面部的地标及其位置而连续地调整所述3D模型,
其中,所述模型跟踪器在考虑到在所述多个图像帧中连续帧内检测到的所述面部的地标及其位置而连续地更新3D模型时,固定人之间的形状变化并且仅考虑同一人的表情变化。
2.如权利要求1所述的装置,其中所述面部地标检测器包括:
面部检测器,在图像帧内检测面部;
与所述面部检测器耦合的初始面部地标检测器,在检测到的面部内检测包括内眼的一个或多个地标及其位置;
与所述面部检测器和所述初始面部地标检测器耦合的一个或多个面部地标检测线性回归器,以增加的精度迭代地细化所述检测到的面部的面部地标位置。
3.如权利要求2所述的装置,其中所述面部地标检测器进一步包括:
与所述面部检测器和所述初始面部地标检测器耦合的验证器,从所述面部地标重建面部且重建图像帧,并且提供重建的图像帧到所述面部地标检测器和所述初始面部地标检测器以检测面部与一个或多个眼睛是否存在于所述重建的图像帧内。
4.如权利要求2所述的装置,其中,所述一个或多个面部地标检测线性回归器包括:
第一面部地标检测线性回归器,将面部地标位置细化到第一精度,以及
第二面部地标检测线性回归器,将所述面部地标位置从所述第一精度细化到第二精度,其中所述第二精度比所述第一精度更精确。
5.如权利要求1所述的装置,其中,所述模型拟合器考虑到在所述第一图像帧内检测到的所述面部的地标及其位置而估计初始3D网格和头部姿势。
6.如权利要求5所述的装置,其中,所述模型拟合器进一步修改所述初始3D网格和头部姿势以减少所述3D网格和头部姿势所描绘的地标的位置与由所述面部地标检测器检测到的地标的位置之间的第一差异量。
7.如权利要求5所述的装置,其中,所述模型拟合器进一步修改所述初始3D网格和头部姿势以减少所述面部的椭圆模型所描绘的地标的位置与由所述面部地标检测器检测到的地标的位置之间的第二差异量。
8.如权利要求5所述的装置,其中,所述模型拟合器进一步修改所述初始3D网格和头部姿势以减少面部的可变形网格模型所描绘的地标的位置与由所述面部地标检测器检测到的地标的位置之间的第三差异量。
9.如权利要求5所述的装置,其中,所述模型拟合器进一步修改所述初始3D网格和头部姿势以减小第一差异量、第二差异量和第三差异量之和,其中,所述第一差异量是所述3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的差异量,所述第二差异量是所述面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的差异量,以及所述第三差异量是所述面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的差异量。
10.如权利要求1-9的任一项所述的装置,还包括:与所述模型拟合器和所述模型跟踪器耦合的验证器,监视所述3D模型的所述调整来跟踪所述面部以检测过度漂移,并在检测出过度漂移时使模型拟合器再生成所述面部的另一3D模型。
11.如权利要求10所述的装置,其中,所述验证器通过检测由所述模型跟踪器连续地维持的所述3D模型的不准确度是否已经增长到超过阈值来检测过度漂移。
12.如权利要求10所述的装置,其中,所述模型拟合器考虑到在所述多个图像帧中的当前帧或下一帧内检测到的所述面部的地标及其位置而从中性面部的3D模型再生成所述面部的另一3D模型。
13.一种用于构建三维3D面部模型的方法,包括:
通过计算设备,在多个图像帧中的每一帧内检测面部的多个地标及其位置;
通过所述计算设备,考虑到在所述多个图像帧中的第一帧内检测到的所述面部的地标及其位置而从中性面部的3D模型生成所述面部的3D模型;以及
通过所述计算设备,调整所述3D模型以在后续图像帧中跟踪所述面部,考虑到在所述多个图像帧中连续帧的每帧内检测到的所述面部的地标及其位置而连续地调整所述3D模型,
其中,调整包括在考虑到在所述多个图像帧中的连续帧内检测到的所述面部的地标及其位置而连续地更新3D模型时,固定人之间的形状变化并且仅考虑同一人的表情变化。
14.如权利要求13所述的方法,其中检测面部的多个地标包括:
在图像帧内检测面部;
在检测到的面部内检测包括内眼角的一个或多个地标及其位置;以及
以增加的精度迭代地细化所述检测到的面部的面部地标位置。
15.如权利要求14所述的方法,其中检测面部的多个地标进一步包括:从所述面部地标重建面部且重建图像帧,并且检测面部与一个或多个眼睛是否存在于重建的图像帧内。
16.如权利要求14所述的方法,其中,迭代地细化包括将面部地标位置细化到第一精度的第一细化,以及将所述面部地标位置从所述第一精度细化到第二精度的第二细化,其中所述第二精度比所述第一精度更精确。
17.如权利要求14所述的方法,其中,生成包括考虑到在所述第一图像帧内检测到的所述面部的地标及其位置而估计初始3D网格和头部姿势。
18.如权利要求17所述的方法,其中,生成进一步包括修改所述初始3D网格和头部姿势以减少所述3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的第一差异量。
19.如权利要求17所述的方法,其中,生成进一步包括修改所述初始3D网格和头部姿势以减少所述面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的第二差异量。
20.如权利要求17所述的方法,其中,生成进一步包括修改所述初始3D网格和头部姿势以减少所述面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的第三差异量。
21.如权利要求17所述的方法,其中,生成进一步包括修改所述初始3D网格和头部姿势以减小第一差异量、第二差异量和第三差异量之和,其中,所述第一差异量是所述3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的差异量,所述第二差异量是所述面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的差异量,以及所述第三差异量是所述面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的差异量。
22.如权利要求13-21中的任一项所述的方法,还包括监视所述3D模型的所述调整来跟踪所述面部以检测过度漂移,并在检测出过度漂移时再生成所述面部的另一3D模型。
23.一种配备为构建三维3D面部模型的装置,包括:
用于在多个图像帧中的每一帧内检测面部的多个地标及其位置的部件;
用于考虑到在所述多个图像帧中的第一帧内检测到的所述面部的地标及其位置而从中性面部的3D模型生成所述面部的3D模型的部件;以及
用于调整所述3D模型以在后续图像帧中跟踪所述面部,考虑到在所述多个图像帧中连续帧的每帧内检测到的所述面部的地标及其位置而连续地调整所述3D模型的部件,其中,用于调整的部件包括用于在考虑到在所述多个图像帧中的连续帧内检测到的所述面部的地标及其位置而连续地更新3D模型时,固定人之间的形状变化并且仅考虑同一人的表情变化的部件。
24.如权利要求23所述的装置,其中用于检测面部的多个地标的部件包括:
用于在图像帧内检测面部的部件;
用于在检测到的面部内检测包括内眼角的一个或多个地标及其位置的部件;以及用于以增加的精度迭代地细化所述检测到的面部的面部地标位置的部件。
25.如权利要求24所述的装置,其中用于检测面部的多个地标的部件进一步包括:用于从所述面部地标重建面部且重建图像帧,并且检测面部与一个或多个眼睛是否存在于重建的图像帧内的部件。
26.如权利要求24所述的装置,其中,用于迭代地细化的部件包括用于将面部地标位置第一细化到第一精度的部件,以及用于将所述面部地标位置从所述第一精度第二细化到第二精度的部件,其中所述第二精度比所述第一精度更精确。
27.如权利要求23所述的装置,其中,用于生成的部件包括用于考虑到在所述第一图像帧内检测到的所述面部的地标及其位置而估计初始3D网格和头部姿势的部件。
28.如权利要求23-27中的任一项所述的装置,还包括用于监视所述3D模型的所述调整来跟踪所述面部以检测过度漂移的部件,以及在检测出过度漂移时再生成所述面部的另一
3D模型的部件。
29.一种配备为检测面部的多个地标的装置,包括:
面部检测器,在图像帧内检测面部;
与所述面部检测器耦合的初始面部地标检测器,在检测到的面部内检测包括内眼角的一个或多个地标及其位置;
与所述面部检测器和所述初始面部地标检测器耦合的一个或多个面部地标检测线性回归器,以增加的精度迭代地细化所述检测到的面部的面部地标位置;以及与所述初始面部地标检测器耦合的模型跟踪器,所述模型跟踪器在考虑到在多个图像帧中连续帧内检测到的所述内眼角的地标及其位置而连续地更新3D模型时,固定人之间的形状变化并且仅考虑同一人的表情变化。
30.如权利要求29所述的装置,其中所述面部地标检测器进一步包括:
与所述面部检测器和所述初始面部地标检测器耦合的验证器,从所述面部地标重建面部且重建图像帧,并且提供重建的图像帧到所述面部地标检测器和所述初始面部地标检测器以检测面部与一个或多个眼睛是否存在于所述重建的图像帧内。
31.如权利要求29或30所述的装置,其中,所述一个或多个面部地标检测线性回归器包括:
第一面部地标检测线性回归器,将面部地标位置细化到第一精度,以及
第二面部地标检测线性回归器,将所述面部地标位置从所述第一精度细化到第二精度,其中所述第二精度比所述第一精度更精确。
32.一种用于检测面部的多个地标的方法,包括:
在图像帧内检测面部;
在检测到的面部内检测包括内眼角的一个或多个地标及其位置;
以增加的精度迭代地细化所述检测到的面部的面部地标位置;以及
在考虑到在多个图像帧中连续帧内检测到的所述内眼角的地标及其位置而连续地更新3D模型时,固定人之间的形状变化并且仅考虑同一人的表情变化。
33.如权利要求32所述的方法,其中检测面部的多个地标进一步包括:从所述面部地标重建面部且重建图像帧,并且检测面部与一个或多个眼睛是否存在于重建的图像帧内。
34.如权利要求32或33所述的方法,其中,迭代地细化包括将面部地标位置细化到第一精度的第一细化,以及将所述面部地标位置从所述第一精度细化到第二精度的第二细化,其中所述第二精度比所述第一精度更精确。
35.一种配备为检测面部的多个地标的装置,包括:
用于在图像帧内检测面部的部件;
用于在检测到的面部内检测包括内眼角的一个或多个地标及其位置的部件;
用于以增加的精度迭代地细化所述检测到的面部的面部地标位置的部件;以及用于在考虑到在多个图像帧中连续帧内检测到的所述内眼角的地标及其位置而连续地更新3D模型时,固定人之间的形状变化并且仅考虑同一人的表情变化的部件。
36.如权利要求35所述的装置,其中用于检测面部的多个地标的部件进一步包括:用于从所述面部地标重建面部且重建图像帧的部件,以及用于检测面部与一个或多个眼睛是否存在于重建的图像帧内的部件。
37.如权利要求35或36所述的装置,其中,用于迭代地细化的部件包括用于将面部地标位置第一细化到第一精度的部件,以及用于将所述面部地标位置从所述第一精度第二细化到第二精度的部件,其中所述第二精度比所述第一精度更精确。
38.一个或多个计算机可读介质,具有指令,所述指令使计算设备响应于所述计算设备执行所述指令而执行权利要求13-22的任一项所述的方法。
39.一个或多个计算机可读介质,具有指令,所述指令使计算设备响应于所述计算设备执行所述指令执行权利要求32-34的任一项所述的方法。

说明书全文

3D面部模型重建装置和方法

技术领域

[0001] 本公开涉及数据处理领域。更具体地,本公开涉及三维(3D)面部模型重建方法和装置。

背景技术

[0002] 本文提供的背景描述是为了整体上呈现本公开的上下文。除非在本文另有说明,在此部分中描述的材料不是本申请权利要求现有技术,并不因包含在该部分中而认为是现有技术。
[0003] 随着计算机视觉图像处理和数字摄影的发展,制作人的面部的3D模型已经引起研究者和工程师日益增加的兴趣,这是因为可以使用3D面部网格作为基本工具来理解面部形状、表情和头部姿势。此外,3D面部模型比两维(2D)面部模型具有更大的可扩展性,并且允许应用的开发者/设计者向用户提供更丰富的体验,例如,在视觉通信和娱乐中。然而,从单个图像制作3D面部模型不是一项容易的任务。此外,在单个视频流跟踪3D网格的表情和头部姿势是更具有挑战性的问题。现有技术典型地需要复杂的注册步骤,其可能需要5-10分钟,并且它们往往是不十分稳健的平面外(out-of-plane)旋转。此外,现有技术往往提供对面部形状或表情的较小集合的有限的覆盖,并且通常,所需的计算资源的量超过更多资源受限设备(例如移动设备,如智能电话或平板式计算机)的能或至少使其承压。
附图说明
[0004] 通过以下详细说明并结合附图将容易理解实施例。为了便于此描述,相似的附图标记表示相似的结构元件。以举例方式、而不以限制方式说明了在附图的图中的实施例。
[0005] 图1是根据各实施例的并入本公开的3D面部建模器的计算设备的框图
[0006] 图2示出根据各实施例的示例面部地标检测器。
[0007] 图3示出根据各实施例的模型拟合器的示例操作流程。
[0008] 图4示出根据各实施例的模型跟踪器的示例操作流程。
[0009] 图5示出根据各实施例的验证器的示例操作流程。
[0010] 图6示出根据各实施例的适合用来本公开的各方面的示例计算机系统
[0011] 图7示出根据所公开的实施例的存储介质,其具有用于实践参照图2-5描述的方法的指令。

具体实施方式

[0012] 本文公开与3D面部模型重建相关联的装置、方法和存储介质。在实施例中,装置可包括彼此耦合的面部地标检测器、模型拟合器和模型跟踪器。面部地标检测器可以配置为在多个图像的每一帧中检测面部的多个地标和它们的位置。模型拟合器可以耦合到面部地标检测器,并且配置为从中性面部的3D模型生成或再生成面部的3D模型,该生成或再生成考虑到在多个图像帧之一中检测到的面部地标和它们的位置。模型跟踪器可以耦合到面部地标检测器和模型拟合器,并配置为调整由模型拟合器生成的3D模型来跟踪后续图像帧中的面部。模型跟踪器可以连续更新3D模型,该更新考虑到在多个图像帧中的连续帧的每一个中检测到的面部地标和它们的位置。在实施例中,装置还可包括验证器,验证器与模型跟踪器耦合,并配置为监视面部跟踪的过度漂移,以及在检测到过度漂移时使模型拟合器再生成3D模型。
[0013] 在一些实施例中,面部地标检测器可以包括彼此耦合的面部检测器、初始面部地标检测器以及一个或多个面部地标检测线性回归器。面部检测器可配置为检测图像帧内的面部,而初始面部检测器可以与面部检测器耦合,并配置为在检测到的面部内检测包括内眼的多个面部地标和它们的位置。一个或多个面部地标检测线性回归器可以与面部检测器和初始面部检测器耦合,并配置为以增加的精度迭代细化面部地标位置。在实施例中,面部地标检测器还可以包括验证器来从面部地标重建面部、并重建图像帧,并提供重建的图像帧到面部和初始面部地标检测器,以检测是否有面部和一个或者多个眼睛在重建的图像帧中出现。
[0014] 在实施例中,模型拟合器可以配置成通过确定用于面部的3D网格来从中性面部的面部生成或再生成3D模型,该确定采用了基于点的面部地标模型、用于估计面部的刚性运动的椭圆头部模型和用于面部形状和表情的非刚性变形网格模型。模型跟踪器可以同样地构成为模型拟合器,除了模型跟踪器可以配置成通过调整先前图像帧中所得到的面部的3D模型来维持面部的3D模型。
[0015] 因此,这些元件可允许从视频流的每个图像帧更高效地重建3D面部模型,需要较少的计算资源,因此更适合于资源受限计算设备,诸如移动计算设备。此外,重建的3D面部模型可以更稳健且能够跟踪大范围的面部表情和头部姿势。
[0016] 在下面的详细描述中,参考形成本文的一部分的附图,其中相似的标记通篇表示相似的部件,并且其中通过说明的方式示出了可以实践的实施例。应当理解,可以利用其它实施例并且可以进行结构上或逻辑上的改变而不脱离本公开的范围。因此,不应以限制的意义理解下面的详细描述,并且实施例的范围由所附的权利要求和它们的等同物来限定。
[0017] 本公开的各方面在所附描述中公开。可以设计出本公开的备选实施例以及它们的等同物而不脱离本公开的精神或范围。应该指出的是,下面公开的类似的元件在附图中用类似参考标号表示。
[0018] 可以按最有助于理解所要求保护的主题的方式,将各种操作描述为依次的多个分立的动作或操作。然而,描述的顺序不应解释为暗示这些操作必须依赖于顺序。具体地,这些操作可以不按呈现的顺序执行。所描述的操作可以按不同于所描述的实施例的顺序执行。在附加实施例中,可以执行各种附加操作,和/或可以省略所描述的操作。
[0019] 为了本公开的目的,短语“A和/或B”表示(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或C”表示(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
[0020] 本描述可以使用短语“在一实施例中”或“在实施例中”,其每个可以指代一个或多个相同或不同的实施例。此外,术语“包括”、“包含”、“具有”等,如相对于本公开的实施例所使用的,是同义的。
[0021] 如本文所使用的,术语“模”可以指、属于或包括执行一个或多个软件固件程序的专用集成电路(ASIC)、电子电路、处理器(共享的、专用的或组)和/或存储器(共享的、专用的或组),组合逻辑电路,和/或提供所述功能性的其他合适的部件。
[0022] 现在参见图1,其中示出根据各实施例的并入本公开的3D面部建模器的计算设备。如图所示,计算设备50可以包括3D面部建模器100。在实施例中,3D面部建模器100可以包括彼此耦合的面部地标检测器102、模型拟合器104和模型跟踪器106。面部地标检测器102可以配置成在多个图像帧110的每个中检测面部的多个地标和它们的位置。模型拟合器104可以耦合到面部地标检测器102,并配置为从中性面部的3D模型生成或再生成面部的3D模型,该生成或再生成考虑到在多个图像帧110内检测到的面部地标和它们的位置。模型跟踪器
106可耦合到面部地标检测器102和模型拟合器104,并配制成调整由模型拟合器104生成的
3D模型来跟踪后续图像帧中的面部。模型跟踪器106可以连续地更新3D模型,该更新考虑到在多个图像帧110的连续图像帧的每个内检测到的面部地标和它们的位置。在实施例中,3D面部建模器100还可包括与模型跟踪器106和模型拟合器104耦合的验证器108,以监视面部跟踪的过度漂移,并且当检测到过度漂移时使模型拟合器104再生成3D面部模型。
[0023] 仍参考图1,在实施例中,面部地标检测器102可以配置成在多个图像帧110中的每个内的所检测的面部中检测稀疏数量的地标位置,例如,30-80。可以从旋转+/-45度至+/-30度的面部检测稀疏数量的地标。多个图像帧110的每个中的面部的稀疏数量的地标位置可以提供给模型拟合器104以从中性面部生成/再生成面部的3D模型,并且提供给模型跟踪器106以连续地维持模型拟合器104所生成的面部的3D模型。将稍后参照图2描述面部地标检测器的示例实施例。也可以替代地使用除了稍后参照图2描述的实施例以外的其它实施例。
[0024] 在实施例中,模型拟合器104可配置成通过采用多个模型确定用于面部的3D网格来从中性面部生成或再生成面部的3D模型,多个模型例如为基于点的面部地标模型、用于估计面部的刚性运动的椭圆头部模型和/或用于面部形状和表情的非刚性变形网格模型。更具体地,在实施例中,模型拟合器104可配置为通过求解以下目标函数来确定3D面部:
[0025] 最小化E=Elandmark+Eellipsoidal+Emesh  (1)
[0026] 其中Elandmark是基于点的面部地标模型和输入的图像帧的面部地标位置之间的误差量;
[0027] Eellipsoidal是用于估计面部的刚性运动椭圆头部模型和该图像帧之间的投影的像素值差;
[0028] Emesh是用于面部形状和表情的非刚性变形网格模型与该图像帧之间的投影的像素值差;
[0029] E是上面的三个误差分量之和。
[0030] 在确定3D网格时,模型拟合器104可以估计从中性形状的所有模型参数、表情和从头开始的头部姿势。模型拟合器104可以考虑人之间的形状变化以及同一人的表情变化。模型拟合器104的操作流程的示例实施例将随后参考图3进行描述。
[0031] 在实施例中,模型跟踪器106可以同样地构成为模型拟合器104,除了模型跟踪器106可以配置为通过调整所得到的先前图像帧的面部的3D模型来维持面部的3D模型。此外,模型跟踪器106可固定人之间的形状变化,并且只考虑同一人的表情变化。换句话说,为了进一步提高计算效率,模型跟踪器106假定它跟踪相同的对象或人的面部。模型跟踪器106的操作流程的示例实施例将随后参照图4进行描述。
[0032] 在实施例中,验证器108可配置为通过检测由模型跟踪器106连续地调整的3D模型的不准确度已经增长到超过阈值来监控面部跟踪的过度漂移。尽管得到3D模型的先前帧作为当前帧的起始3D模型使用改进了计算效率,但随着时间前进,跟踪误差可以累积。虽然与面部地标检测相关联的误差最小化项可减少跟踪时的漂移量,但不太可能完全阻止漂移伪影。因此,验证器108用来确保不会过度牺牲精度来改进计算效率。验证器108的操作流程的示例实施例将随后参照图5进行描述。
[0033] 在更详细地描述面部地标检测器102、模型拟合器104、模型跟踪器106和验证器108之前,应该注意的是,3D面部建模器100可实现为硬件、软件或它们的组合。对于硬件实施例,3D面部建模器100可实现为例如以3D面部建模器100的操作逻辑编程的专用集成电路(ASIC)或可编程逻辑器件(PLD)。对于部分或完全软件实施例,计算设备50还可以包括一个或多个处理器、以及存储器,并且一个或多个面部地标检测器102、模型拟合器104、模型跟踪器106和验证器108可以实现为汇编程序/处理器支持的机器指令或编译到汇编程序/处理器支持的机器指令的多个编程语言的任何一种。在实施例中,计算设备50还可包括多个外围设备,例如显示设备、输入/输出设备或通信/联网设备。除了3D面部建模器100,计算设备50可以是本领域已知的多个计算设备的任何一种,包括但不限于智能电话、超级笔记本、平板计算机、膝上型计算机、桌上型计算机、服务器、机顶盒或游戏控制台。如将理解的,面部建模器100的部件的协调布置的优势,以及其改进的计算效率,它甚至对于资源受限的设备(诸如移动设备,如智能电话和/或平板计算机)也可以是合适的。
[0034] 现在参见图2,其中示出根据各实施例的示例面部地标检测器。如图所示,示例面部地标检测器200可包括面部检测器202、初始面部地标检测器204、多个面部地标检测线性回归器206和验证器208。在实施例中,检测器202、面部地标检测器204、面部地标检测线性回归器206和验证器208可配置成协作以进行由粗到细的方法。在初始阶段中,可以估计图像帧内的面部的大致位置,然后可以以基于蕨(fern)级联回归为基础定位稀疏数量的面部地标。然后,可以应用几个连续的正则化的线性回归器以更准确地识别面部地标的位置。在实施例中,示例面部地标检测器200可用作图1的面部地标检测器102。
[0035] 在实施例中,面部检测器202可配置为将图像帧的区域(例如矩形区域)识别为包含面部。面部检测器202可以配置为搜索几个不同图像尺度以对于每个给定的图像帧高效地找到不同尺寸的面部。可以用大量的训练图像预先计算找到的矩形和实际的面部边界框之间的统计(诸如距离的平均数和标准偏差),并且然后将该统计用于补偿面部矩形和实际面部区域之间的差。
[0036] 初始面部地标检测器204可以与面部检测器耦合,并配置为在识别为具有面部的每个区域内检测面部的多个面部地标(具体而言包括内眼角)和它们的位置。在实施例中,为了提高计算效率,检测稀疏数量的面部地标。经验已经表明,相对于人面部中的表情和姿势,内眼角是高度可区分的和稳健的。这些面部地标和它们的初始位置然后可以用来作为将要被一个或多个线性回归器206细化的初始面部地标。利用线性回归器,而不是非线性回归器,实现高速的性能,同时避免数据过拟合,这又使得能够处理宽范围的面部姿势、表情和光照变化。
[0037] 一个或多个面部地标检测线性回归器206可以与面部检测器202和初始面部地标检测器204耦合,并配置为迭代地细化和更精确地识别面部地标位置。在实施例中,使用四个(4个)线性回归器。第一线性回归器206可以用输入和图像中的面部地标的人为注解的地面实测数据(以下简称为地面实测数据)之间的相对较大的变化来训练,以便覆盖面部和初始面部地标检测器202和204的初始误差。剩余的线性回归器206可以用输入和地面实测数据之间的减小的变化来训练,其中,每个回归迭代以更高的精确度细化面部地标位置。
[0038] 在实施例中,每个回归器206可以训练为最小化当前的地标位置和地面实测注解之间的总距离,以及最小化回归器206的范数。结果,可以改进输出面部地标位置的信噪比。在实施例中,回归器206可配置为对图像帧的梯度起作用,而不是在图像帧的强度值。经验显示,对图像梯度起作用可以改进计算相对于照明变化的稳健性。
[0039] 在实施例中,验证器208可配置为从一个或多个检测到的面部地标重建图像帧的面部,且重建图像帧,并且将重建的图像帧再次提供到面部和初始面部地标检测器202和204以检查面部和初始面部地标检测器202和204是否能够检测到面部与一个或多个眼睛是否在重建的图像帧中出现。
[0040] 在实施例中,为了计算效率,一旦确认,对于下一帧可以跳过面部和初始面部地标检测。取而代之的是,先前帧的面部地标位置可用于当前帧。然后过程可继续,直至验证失败。然后,可再次执行面部检测和初始面部地标检测。
[0041] 在实施例中,可以用大量训练例预先训练面部检测器202、初始面部地标检测器204和回归器206的每一个。在实施例中,用具有大范围的面部表情和头部姿势的数以万计的面部图像来训练面部检测器202、初始面部地标检测器204和回归器206的每一个。
[0042] 现在参见图3,其中示出根据各实施例的模型拟合器的示例操作流程。如图所示,用于基于对图像帧内的面部识别的面部地标来从中性面部模型生成初始3D面部模型的示例过程300,可以包括框302-310中执行的操作。这些操作可以例如通过较早描述的图1的模型拟合器104执行。尽管为了易于理解,将按顺序描述框302-310的操作,但是将理解的是,在备选实施例中,所选的一些操作可以按不同的顺序执行。
[0043] 在框302,可以接收图像帧内的面部的面部地标位置。在框304中,使用中性面部,可以计算Elandmark,基于点的面部地标模型和图像帧的输入面部地标位置之间的误差量。此外,使用中性面部,也可以计算Eellipsoidal,用于估计面部的刚性运动的椭圆头部模型与图像帧之间的投影像素值差的量。此外,使用中性面部,可类似地计算Emesh,用于面部形状和表情的非刚性变形网格模型与图像帧之间的投影像素值差的量。
[0044] 在框306和308,可以调整3D网格和头部姿势的模型参数,并且重新计算Elandmark、Eellipsoidal和/或Emesh,试图减少Elandmark、Eellipsoidal和/或Emesh。在框310,可以作出确定减少Elandmark、Eellipsoidal和/或Emesh时的改进是否是临界的,例如,低于预定阈值;换句话说,E,即Elandmark、Eellipsoidal和Emesh的总和是否被有效地最小化。如果E,即Elandmark、Eellipsoidal和Emesh的总和已经被有效地最小化,并且过程300可以结束,否则过程300可以返回到框306,并且如前所述那样从其继续。在确定3D网格时,从中性形状、表情和头部姿势的所有模型参数可以从刮痕估计。可以考虑人之间的形状变化以及同一人的表情变化。
[0045] 现在参见图4,其中示出根据各实施例的模型跟踪器的示例操作流程。如图所示,用于调整3D面部模型来跟踪面部表情和头部姿势的示例过程400可以包括在框402-410中执行的操作。这些操作类似于框302-310的操作,除了操作开始于最后的图像帧的3D模型,而不是开始于中间帧。这些操作可以例如通过先前描述的图1的模型跟踪器106执行。尽管为了便于理解,将按顺序描述框402-410的操作,但是将理解的是,在备选实施例中,选定的一些操作可以按不同的顺序执行。
[0046] 在框402,可以接收图像帧内的面部的面部地标位置。在框404中,使用最后的图像帧的3D模型,可以计算Elandmark,基于点的面部地标模型和图像帧的输入面部地标位置之间的误差量。此外,使用最后的图像帧的3D模型,也可以计算Eellipsoidal,用于估计面部的刚性运动的椭圆头部模型与图像帧之间的投影像素值差的量。此外,使用最后的图像帧的3D模型,可类似地计算Emesh,用于面部形状和表情的非刚性变形网格模型与图像帧之间的投影像素值差的量。
[0047] 在框406和408,可以调整3D网格和头部姿势的模型参数,并且重新计算Elandmark、Eellipsoidal和/或Emesh,试图减少Elandmark、Eellipsoidal和/或Emesh。在框410,可以作出确定减少Elandmark、Eellipsoidal和/或Emesh时的改进是否是临界的,例如,低于预定阈值;换句话说,E,即Elandmark、Eellipsoidal和Emesh的总和是否被有效地最小化。如果E,即Elandmark、Eellipsoidal和Emesh的总和已经被有效地最小化,则过程400可以结束,否则过程400可以返回到框406,并且如前所述那样从其继续。在确定3D网格时,从中性形状和头部姿势时,可以固定人之间的形状变化,仅考虑同一人的表情变化。
[0048] 参见图5,其中示出根据各实施例的验证器的示例操作流程。如图所示,用于监视和检测跟踪3D面部模型时的过度漂移的示例过程500可以包括在框502-508中执行的操作。这些操作可以例如通过先前描述的图1的验证器108执行。尽管为了便于理解,将按顺序描述框502-508的操作,但是将理解的是,在备选实施例中,选定的一些操作可以按不同的顺序执行。
[0049] 在框502,可以确定被跟踪的3D模型的最新的误差量(累积漂移效应)。在框504,可以确定最新的误差量(累积漂移效应)是否超过预先配置的阈值。如果最新的误差量(累积漂移效应)不超过预先配置的阈值,则在框506,可以允许继续跟踪当前3D模型,并对于下一图像帧细化当前3D模型。此后,过程500可从框502继续,如先前所述。另一方面,如果最新的误差量(累积的漂移效应)超过预先配置的阈值,则在框508,对于当前或下一图像帧,可以使新的3D模型从中性形状再生成。
[0050] 图6示出示例计算机系统,其可适合于用作客户端设备或服务器以实践本公开的所选方面。如图所示,计算机800可以包括一个或多个处理器或处理器核802、以及系统存储器804。对于本申请(包括权利要求)的目的,术语“处理器”和“处理器核”可以看作是同义的,除非上下文以其它方式明确要求。另外,计算机800可以包括大容量存储设备806(例如磁盘、硬盘驱动器、光盘只读存储器(CD-ROM)等等),输入/输出设备808(例如显示器、键盘光标控制等)以及通信接口810(例如网络接口卡、调制解调器等等)。这些元件可经由系统总线812彼此耦合,系统总线812可以代表一个或多个总线。在多个总线的情况下,它们可以通过一个或多个总线桥(未示出)桥接。
[0051] 这些元件中的每个元件可以执行其在本领域中已知的常规功能。具体地,系统存储器804和大容量存储设备806可以用来存储编程指令的工作拷贝和永久拷贝,这些编程指令实现与面部地标检测器102、模型拟合器104、模型跟踪器106和验证器108相关联的操作,如前所述,统称为计算逻辑822。各种元件可以由处理器802所支持的汇编指令或可以被编译为这样的指令的高级语言(例如C)来实现。
[0052] 这些元件810-812的数量、能力和/或容量可以改变,取决于计算机800用作客户端设备还是服务器。当用作客户端设备时,这些元件810-812的能力和/或容量可以改变,取决于客户端设备是固定的还是移动设备(如智能电话、平板计算机、超级笔记本或膝上型计算机)。否则,元件810-812的组成是已知的,因此将不作进一步的说明。
[0053] 如本领域技术人员将理解的,本公开可实现为方法或计算机程序产品。因此,本公开除了实现为如前所述的硬件以外,还可以采取以下形式:完全为软件的实施例(包括固件、驻留软件、微代码等)或者结合软件和硬件方面的实施例,其可以全部一般地称为“电路”、“模块”或“系统”。此外,本公开可采取计算机程序产品的形式,其实现在任何有形的或非临时性表现介质(具有包含在该介质中的计算机可用程序代码)。图7示出了示例计算机可读非临时性存储介质,其可以是适用于存储指令,该指令使装置响应于通过装置执行指令而实现本公开的所选方面。如图所示,非暂时性计算机可读存储介质902可以包括多个编程指令904。编程指令904可配置成使设备(例如计算机800)响应于执行编程指令,而执行例如与面部地标检测器102、模型拟合器104、模型跟踪器106和验证器108相关联的各种操作。在备选实施例中,编程指令904可以替代为放置在多个计算机可读非临时性存储介质902上。在备选实施例中,编程指令904可以放置在计算机可读暂时性存储介质902(诸如信号)上。
[0054] 可以使用一个或多个计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质可以是,例如但不限于,电子的、磁的、光学的、电磁的、红外的或半导体的系统、装置、设备或传播介质。计算机可读介质的更具体的示例(非穷尽的列表)可以包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、传输介质(例如支持因特网或内联网的那些)或磁存储设备。注意,计算机可用或计算机可读的介质甚至可以是纸或另一种合适的在其上打印程序的介质,因为程序可以以电子方式被捕获,通过例如光扫描所述纸张或其他介质,随后编译,解释,或另外以适合的方式处理(如果必要),然后存储在计算机存储器中。在本文的上下文中,计算机可用或计算机可读介质可以是任何介质,其可以包含、存储、通信、传播或传输程序,由或结合指令执行系统、装置或设备使用。计算机可用介质可以包括传播数据信号(在其上包含计算机可用程序代码),在基带中或作为载波的一部分。计算机可用程序代码可以使用任何合适的介质来传输,包括但不限于,无线、有线、光缆、RF等。
[0055] 用于执行本公开的操作的计算机程序代码可以用一个或多个编程语言的任意组合来编写,包括面向对象的编程语言(诸如Java、Smalltalk、C++等)和传统的过程编程语言(例如“C”编程语言或类似的编程语言)。程序代码可以完全地在用户计算机上执行、部分地在用户的计算机上执行、作为独立的软件包执行、部分地在用户的计算机上且部分地在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN)、或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。
[0056] 参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图示和/或框图,描述本公开。将会理解,流程图示和/或框图的每个框、以及流程图示和/或框图中的框的组合,可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机的处理器、专用计算机或其它可编程数据处理设备,以产生一种机器,使得通过计算机的处理器或其它可编程数据处理设备执行指令来建立用于实现在流程图和/或框图的一个框或多个框中所指定的功能/动作的装置。
[0057] 这些计算机程序指令还可以存储在计算机可读介质中,其可以引导计算机或其它可编程数据处理设备以特定的方式起作用,使得存储在计算机可读介质的指令产生一个制品,其中包括指令装置,该指令装置实现流程图和/或框图的框或多个框中指定的功能/动作。
[0058] 计算机程序指令还可以加载到计算机或其它可编程数据处理设备上,以促使一系列操作步骤在计算机或其它可编程设备上执行,以产生一种计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图的框或多个框中指定的功能/动作的过程。
[0059] 附图中的流程图和框图图示了根据本公开的各种实施例的系统,方法和计算机程序产品的可能实现的架构、功能性和操作。在这方面,流程图或框图中的每个框可表示模块、段或部分代码,其包括一个或多个可执行指令,所述指令用于实现指定的逻辑功能。还应指出,在一些备选实现中,在框中说明的功能可以不按附图中所指出的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意到,框图和/或流程图示的每个框、以及框图和/或流程图示的框的组合,可以由专用的基于硬件的系统(其执行指定的功能或动作)或专用硬件和计算机指令的组合来实现。
[0060] 本文中使用的术语仅仅是为了描述具体实施例,而并不意图限制本公开。如本文所使用的,单数形式“一”、“一种”和“该”旨在也包括复数形式,除非上下文中清楚地另行指明。将进一步理解,当用在本说明书中时,术语“包括”和/或“包含”指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或更多个其它特征、整数、步骤、操作、元件、部件和/或它们的组。
[0061] 实施例可实现为计算机过程、计算系统或者制品,如计算机可读介质的计算机程序产品。计算机程序产品可以是计算机存储介质,其可由计算机系统读取并编码用于执行计算机进程的计算机程序指令。
[0062] 下面权利要求中的相应的结构、材料、动作和所有装置或步骤加功能元件的等同物都旨在包括具体要求保护的任何结构、材料或动作,其用于与其他要求保护的元件一起执行所述功能。已呈现本公开的描述用于说明和描述目的,但并不旨在是穷尽的,或者局限于所公开的形式的本公开。许多修改和变化对于本领域技术人员将是明显的,而不背离本公开的范围和精神。实施例的选择和描述是为了最好地解释本公开的原理和实际应用,并且使得本领域的其它普通技术人员能够理解,本公开对于具有各种修改的实施例适用于所预期的特定使用。
[0063] 回头参考图6,在一个实施例中,至少一个处理器802可以与具有计算逻辑822的存储器封装在一起(代替存储在存储器804和存储806)。在一个实施例中,至少一个处理器802可以与具有计算逻辑822的存储器封装在一起,以形成系统级封装(SiP)。在一个实施例中,至少一个处理器802可以与具有计算逻辑822的存储器集成在同一管芯上。在一个实施例中,至少一个处理器802可以与具有计算逻辑822的存储器封装在一起,以形成片上系统(SoC)。对于至少一个实施例,可将所述SoC用于例如但不限于智能电话或平板计算机。
[0064] 因此,已经描述了本公开的不同的示例实施例,包括但不限于:
[0065] 示例1可以是一种配备为构建三维3D面部模型的装置。所述装置可以包括:彼此耦合的面部地标检测器、模型拟合器以及模型跟踪器。面部地标检测器可以配置为在多个图像帧中的每一帧内检测面部的多个地标及其位置。模型拟合器可以配置为考虑到在多个图像帧中的第一帧内检测到的面部的地标及其位置而从中性面部的3D模型生成面部的3D模型。模型跟踪器可以配置为调整3D模型来跟踪后续图像帧中的面部,考虑到在多个图像帧中的连续帧中的每帧内检测到的面部的地标及其位置而连续地调整3D模型。
[0066] 示例2可以是面部地标检测器,例如示例1的面部地标检测器。面部地标检测器可以包括彼此耦合的面部检测器、初始面部地标检测器、以及一个或多个面部地标检测线性回归器。面部检测器可配置为检测图像帧内的面部。初始面部地标检测器可以配置为在检测到的面部内检测一个或多个地标(包括内眼角)及其位置。一个或多个面部地标检测线性回归器可配置为以增加的精度迭代地细化检测到的面部的面部地标位置。
[0067] 示例3可以是示例2,其中面部地标检测器可进一步包括验证器,与面部检测器和初始面部地标检测器耦合,并且配置为从面部地标重建面部,且重建图像帧,并且提供重建的图像帧到面部和初始面部地标检测器以检测面部与一个或多个眼睛是否存在于重建的图像帧内。
[0068] 示例4可以是示例2或3,其中,一个或多个面部地标检测线性回归器可以包括第一面部地标检测线性回归器以将面部地标位置细化到第一精度,以及第二面部地标检测线性回归器以将面部地标位置从第一精度细化到第二精度,其中第二精度比第一精度更精确。
[0069] 示例5可以是示例1(可选地具有示例2-4中的任一个的面部地标检测器),其中,模型拟合器可以配置为考虑到在第一图像帧内检测到的面部的地标及其位置而估计初始3D网格和头部姿势。
[0070] 示例6可以是示例5,其中,模型拟合器可配置为进一步修改初始3D网格和头部姿势以减少3D网格和头部姿势所描绘的地标的位置与由面部地标检测器检测到的地标的位置之间的第一差异量。
[0071] 示例7可以是示例5或6,其中,模型拟合器可配置为进一步修改初始3D网格和头部姿势以减少面部的椭圆模型所描绘的地标的位置与由面部地标检测器检测到的地标的位置之间的第二差异量。
[0072] 示例8可以是示例5-7中的任一个,其中,模型拟合器可配置为进一步修改初始3D网格和头部姿势以减少面部的可变形网格模型所描绘的地标的位置与由面部地标检测器检测到的地标的位置之间的第三差异量。
[0073] 示例9可以是示例5,其中,模型拟合器可配置为进一步修改初始3D网格和头部姿势以减小第一、第二、第三差异量之和,其中,第一差异量是3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的差异量,第二差异量是面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的差异量,以及第三差异量是面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的差异量。
[0074] 示例10可以是示例1和示例5-9中的任一个(可选地具有示例2-4中的任一个的面部地标检测器),其中,模型跟踪器可以配置为,当考虑到在多个图像帧中的连续帧内检测到的面部的地标及其位置连续地更新3D模型时,固定人之间的形状变化,而仅考虑同一人的表情变化。
[0075] 示例11可以是示例1和示例5-9中的任一个(可选地具有示例2-4中的任一个的面部地标检测器),还包括验证器,与模型拟合器和模型跟踪器耦合,监视3D模型的调整来跟踪面部以检测过度漂移,并在检测出过度漂移时使模型拟合器再生成面部的另一3D模型。
[0076] 示例12可以是示例11,其中,验证器可配置为通过检测由模型跟踪器连续地维持的3D模型的不准确度是否已经增长到超过阈值来检测过度漂移。
[0077] 示例13可以是示例11或12,其中,模型拟合器可配置为考虑到在多个图像帧中的当前帧或下一帧内检测到的面部的地标及其位置,从中性面部的3D模型再生成面部的另一3D模型。
[0078] 示例14可以是一种用于构建三维3D面部模型的方法。所述方法可以包括:通过计算设备,在多个图像帧中的每一帧内检测面部的多个地标及其位置;以及通过计算设备,考虑到在多个图像帧中的第一帧内检测到的面部的地标及其位置而生成。所述方法可以进一步包括通过计算设备,调整3D模型来跟踪后续图像帧中的面部,考虑到在多个图像帧中的连续帧中的每帧内检测到的面部的地标及其位置而连续地调整3D模型。
[0079] 示例15可以是一种用于检测面部的多个地标的方法。所述方法可以用于示例14的检测操作。所述方法可以包括通过计算设备,检测图像帧内的面部;以及通过计算设备,在检测到的面部内检测一个或多个地标(包括内眼角)及其位置。所述方法可以进一步包括通过计算设备,以增加的精度迭代地细化检测到的面部的面部地标位置。
[0080] 示例16可以是示例15的方法,其中检测面部的多个地标可进一步包括从面部地标重建面部,且重建图像帧,并且检测面部与一个或多个眼睛是否存在于重建的图像帧内。
[0081] 示例17可以是示例15或16的方法,其中,迭代地细化包括将面部地标位置细化到第一精度的第一细化,以及将面部地标位置从第一精度细化到第二精度的第二细化,其中第二精度比第一精度更精确。
[0082] 示例18可以是示例14的方法(可选地使用示例15-17中的任一个方法的检测面部地标的操作),其中,生成可以包括考虑到在第一图像帧内检测到的面部的地标及其位置而估计初始3D网格和头部姿势。
[0083] 示例19可以是示例18的方法,其中,生成可进一步包括修改初始3D网格和头部姿势以减少3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的第一差异量。
[0084] 示例20可以是示例18或19的方法,其中,生成可进一步包括修改初始3D网格和头部姿势以减少面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的第二差异量。
[0085] 示例21可以是示例18-20中的任一个的方法,其中,生成可进一步包括修改初始3D网格和头部姿势以减少面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的第三差异量。
[0086] 示例22可以是示例18的方法,其中,生成可进一步包括修改初始3D网格和头部姿势以减小第一、第二、第三差异量之和,其中,第一差异量是3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的差异量,第二差异量是面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的差异量,以及第三差异量是面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的差异量。
[0087] 示例23可以是示例14的方法(可选地使用示例15-17中的任一个方法的检测面部地标的操作),其中,调整可包括,当考虑到在多个图像帧中的连续帧内检测到的面部的地标及其位置连续地更新3D模型时,固定人之间的形状变化,而仅考虑同一人的表情变化。
[0088] 示例24可以是示例14或23的方法(可选地使用示例15-17中的任一个方法的检测面部地标的操作),还包括监视3D模型的调整来跟踪面部以检测过度漂移,并在检测出过度漂移时再生成面部的另一3D模型。
[0089] 示例25可以是示例24的方法,其中,监视可包括检测由模型跟踪器连续地维持的3D模型的不准确度是否已经增长到超过阈值。
[0090] 示例26可以是示例24或25的方法,其中,再生成可包括考虑到在多个图像帧中的当前帧或下一帧内检测到的面部的地标及其位置,从中性面部的3D模型再生成面部的另一3D模型。
[0091] 示例27可以是一个或多个计算机可读介质,具有指令,该指令使计算设备响应于该指令的执行而通过计算设备执行示例14-26的任一个方法。
[0092] 示例28可以是一种用于构建三维3D面部模型的装置。所述装置可以包括:用于检测面部的多个地标及其在多个图像帧中的每一帧内的位置的部件;以及用于考虑到在多个图像帧中的第一帧内检测到的面部的地标及其位置而生成的部件。所述装置可以进一步包括用于调整3D模型来跟踪后续图像帧中的面部,考虑到在多个图像帧中的连续帧中的每帧内检测到的面部的地标及其位置,连续地调整3D模型的部件。
[0093] 示例29可以是一种用于检测面部的多个地标的装置。所述装置可以用于示例28的检测操作。所述装置可以包括用于检测图像帧内的面部的部件;以及用于在检测到的面部内检测一个或多个地标(包括内眼角)及其位置的部件。所述装置可以进一步包括用于以增加的精度迭代地细化检测到的面部的面部地标位置的部件。
[0094] 示例30可以是示例29的装置,其中用于检测面部的多个地标的部件可进一步包括用于从面部地标重建面部,且重建图像帧的部件,以及用于检测面部与一个或多个眼睛是否存在于重建的图像帧内的部件。
[0095] 示例31可以是示例29或30的装置,其中,用于迭代地细化的部件包括用于将面部地标位置到第一精度的第一部件,以及用于将面部地标位置从第一精度细化到第二精度的第二部件,其中第二精度比第一精度更精确。
[0096] 示例32可以是示例28的装置(可选地使用示例29-31中的任一个装置的用于检测面部地标的部件),其中,用于生成的部件可以包括用于考虑到在第一图像帧内检测到的面部的地标及其位置而估计初始3D网格和头部姿势的部件。
[0097] 示例33可以是示例32的装置,其中,用于生成的部件可进一步包括用于修改初始3D网格和头部姿势以减少3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的第一差异量的部件。
[0098] 示例34可以是示例32或33的装置,其中,用于生成的部件可进一步包括用于修改初始3D网格和头部姿势以减少面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的第二差异量的部件。
[0099] 示例35可以是示例32-34中的任一个的装置,其中,用于生成的部件可进一步包括用于修改初始3D网格和头部姿势以减少面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的第三差异量的部件。
[0100] 示例36可以是示例32的装置,其中,用于生成的部件可进一步包括用于修改初始3D网格和头部姿势以减小第一、第二、第三差异量之和的部件,其中,第一差异量是3D网格和头部姿势所描绘的地标的位置与检测到的地标的位置之间的差异量,第二差异量是面部的椭圆模型所描绘的地标的位置与检测到的地标的位置之间的差异量,以及第三差异量是面部的可变形网格模型所描绘的地标的位置与检测到的地标的位置之间的差异量。
[0101] 示例37可以是示例36的装置(可选地示例29-31中的任一个的用于检测面部地标的部件),其中,用于调整的部件可包括,当考虑到在多个图像帧中的连续帧内检测到的面部的地标及其位置连续地更新3D模型时,用于固定人之间的形状变化的部件,以及用于仅考虑同一人的表情变化的部件。
[0102] 示例38可以是示例28或37的装置(可选地使用示例29-31的部件的用于检测面部地标的部件),还包括用于监视3D模型的调整来跟踪面部以检测过度漂移的部件,以及用于在检测出过度漂移时再生成面部的另一3D模型的部件。
[0103] 示例39可以是示例38的装置,其中,用于监视的部件可包括检测由模型跟踪器连续地维持的3D模型的不准确度是否已经增长到超过阈值。
[0104] 示例40可以是示例38或39的装置,其中,用于再生成的部件可包括用于考虑到在多个图像帧中的当前帧或下一帧内检测到的面部的地标及其位置,从中性面部的3D模型再生成面部的另一3D模型的部件。
[0105] 对于本领域技术人员来说将是明显的是可进行各种修改和变更,所公开的实施例中所公开的装置和相关方法,而不背离本公开的精神或范围。因此,本公开旨在覆盖上述公开的实施例的这些修改和变化,假定这些修改和变化落入任何权利要求和它们的等同物的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈