使用粗到细级联神经网络的面部关键点定位的制作方法

文档序号:10617903阅读:364来源:国知局
使用粗到细级联神经网络的面部关键点定位的制作方法
【专利摘要】本发明通过利用神经网络层级的级联以粗到细的方式执行面部关键点定位,并且对于每一神经网络层级执行几何约束,克服现有技术的限制。在一个方法中,该神经网络层级可以利用深度卷积神经网络实现。一个方面涉及一种用于在面部图像上定位关键点的系统。该系统包括用于接收面部图像的输入,以及用于呈现由该系统识别的关键点的输出。对于该系统,神经网络层级从输入到输出级联耦合。每个神经网络层级产生关键点的估计。关键点的该估计比在前的神经网络层级的关键点的估计更精确。
【专利说明】
使用粗到细级联神经网络的面部关键点定位
技术领域
[0001] 本发明一般地涉及图像处理,更特别地,涉及使用机器学习的面部识别。
【背景技术】
[0002] 面部识别系统执行在数字图像或视频帧上的图像处理,以自动地识别人。面部识 别系统可以执行用于面部分析的面部关键点定位(facial landmark localization)。一些 面部识别方法的性能可能严重信赖面部图像中识别出的关键点。然而,因为由于姿态、光 照、表情等的改变导致的面部外观的大变化,面部关键点定位是困难的。在要求大量关键点 时,面部关键点定位更具挑战性。
[0003] 在一种方法中,实现单个模型以执行面部关键点定位。然而,这个方法通常不适合 用于产生可能从一个面部到下一个显著地改变的许多关键点。特别地,可能难以定位每个 关键点。例如,当可能有大量定位环境便于检测眼角的同时,确定面颊上的点的精确位置在 一些情形甚至对于人也是不容易的。
[0004]在另一种方法中,对于每个关键点实现单独的系统,以执行面部关键点定位。然 而,对于每个面部点实现分别的单独的系统遭受长的计算时间,因为计算负担随着关键点 的数目按比例增长。另外,可能使用昂贵的迭代步骤以估计用于每个单独的系统的参数。
[0005] 因此,对于面部识别及其他目的,存在对于面部关键点定位的更好方法的需要。

【发明内容】

[0006] 本发明通过利用神经网络层级的级联以粗到细的方式执行面部关键点定位,克服 了现有技术的限制。神经网络层级可通过深度卷积神经网络实现。
[0007] -个方面涉及一种用于在面部图像上定位关键点的系统。该系统包括用于接收面 部图像的输入和用于呈现由该系统识别的关键点的输出。神经网络层级从输入到输出级联 耦合。每个神经网络层级产生关键点的估计,其优选地比在前的神经网络层级产生的关键 点的更精确(即,更准确)。
[0008] 在一种方法中,实施对于各神经网络层级的几何约束,以实现粗到细级联。例如, 对于每个神经网络层级,该神经网络层级的输入的尺寸可能等于或大于该神经网络层级的 输出。在一种方法中,到该神经网络层级的输入是该面部图像利用第一边界框的剪取 (clip),并且对于该神经网络层级的输出是该面部图像利用第二边界框的剪取。第一边界 框的尺寸等于或大于第二边界框。优选地,第二边界框是第一边界框的子集。
[0009] 在示例实现中,第一(即最粗)神经网络层级接收面部图像作为到该神经网络层级 的输入。该神经网络层级产生剪裁的面部图像作为输出。下一神经网络层级接收剪裁的面 部图像,并且产生标记出关键点的面部图像,其包含面部图像内的关键点的初始预测。下一 神经网络层级将整体面部的标记出关键点的图像分解为标记出关键点的面部部位图像。每 个标记出关键点的面部部位图像包含各自关键点的精确的估计。下一神经网络层级产生该 标记出关键点的面部部位图像的旋转版本。
[0010] 在另一方面,该关键点包括内部点和外部点。内部点定义该面部图像的面部内的 关键点。例如,该内部点定义眼、口和鼻。外部点定义该面部图像的面部的轮廓。
[0011] 本发明的其他的方面包括与上述相关的组件、装置、系统、改进、方法、过程、应用 及其他技术。
【附图说明】
[0012] 本发明具有其他的优势和特征,其在结合附图时从以下发明的详细说明和权利要 求将更容易清晰可见,附图中:
[0013] 图1是面部识别系统的简图。
[0014] 图2是示例关键点定位模块的图。
[0015] 图3是通过级联卷积神经网络实现的神经网络层级的图。
[0016] 图4是显示各种网络的分辨率、滤波器大小和通道数的表格。
[0017] 图5是执行面部识别的方法的流程图。
[0018] 图6是定位面部关键点的方法的流程图。
[0019] 图7描绘验证集上的累积误差。
[0020]图8图不内部点和外部点的分尚的效果。
[0021] 图9描绘300-Faces in the Wild Challenge上的累积误差。
[0022] 图10显示具有在不同的面部特征仓中的关键点的面部样本。
[0023] 各图描绘本发明的各实施例,仅仅为了说明。本领域技术人员将从以下讨论容易 地认识到,可能使用此处说明的结构和方法的替代实施例,而没有脱离此处描述的发明的 原理。
【具体实施方式】
[0024] 各图及以下描述涉及仅仅为了说明的优选实施例。应该注意,从以下讨论,此处公 开的结构和方法的各替代实施例将容易地承认为可能使用的可行的替代,而没有脱离所要 求的原理。
[0025] 公开的面部识别系统(和方法)包括面部关键点定位。面部关键点表达面部或面部 的部分的表示(representation ),用于计算机器(例如,计算机)识别面部或面部的部分。面 部关键点定位通过训练多级联神经网络层级获得。训练每一神经网络层级,以精确化通过 在前的层级产生的面部关键点(在此也称为关键点)的子集。各层级以粗到细的方式操作, 在级联的下游变得更被定位和准确。在一种方法中,每一神经网络层级预测明确的几何约 束。利用神经网络的级联和几何约束执行的面部关键点定位,能够导致准确度、计算效率和 针对局部遮挡的鲁棒性的改进。
[0026] 优选地,用于神经网络的关键点被分成内部点和外部点(在此也称为轮廓点)。内 部点是定义面部图像的面部内的区域的关键点。例如,内部点可定义眼、□、眉毛和鼻。外部 点是定义面部图像的面部的轮廓的关键点。例如,轮廓围绕面颊。
[0027] 面部识别概述
[0028]图1是根据一个实施例的面部识别系统100的简图。面部识别系统100接收目标面 部图像110T,并且尝试识别面部(即,将面部与特定个体关联)。面部识别系统100也接收用 于已知个体的参考面部110R。面部识别系统100执行分析,以产生度量150,以指示目标面部 图像110T中的个体是否与参考面部图像110R中的个体相同。面部识别系统100可具有用于 不同个体的参考面部图像110R的大型数据库,并且可将目标面部图像110T与许多不同的参 考面部图像110R作比较,以便识别目标面部图像110T中的个体。
[0029]面部识别系统100包括关键点定位模块120、分析模块130和处理器140。这些模块 中间每一个可能具体化为硬件、软件、固件或其组合。这些模块一起执行面部识别,并且确 定两个面部图像110中的对象是否相等。
[0030] 关键点定位模块120接收面部图像110作为输入,并且定位面部图像110的关键点。 关键点定位模块120最初估计关键点并且精确化估计以改进准确度。在一个方法中,关键点 定位模块120利用几何精确以通过级联级产生关键点。关键点定位模块120可产生标记出关 键点的面部图像(包括面部图像的标记出关键点的部分)。
[0031] 分析模块130确定参考面部图像110R中的对象和目标面部图像110T中的对象是否 匹配。分析模块130从关键点定位模块120获得面部图像110的关键点。对于之前可用的面部 图像,关键点定位可能预先处理,而在这样情况下分析模块130可从数据库检索关键点。此 外,分析模块130基于面部图像110的关键点表示,产生关于面部图像110是否属于相同对象 (人)的度量150。度量150可用于执行面部识别。度量的示例包括在关键点表示之间的角度 的余弦、或在不同的关键点表示之间的欧几里德距离。
[0032] 处理器140运行指令以在面部识别系统100上执行面部识别。处理器140从存储器 (未显示)或外部电路接收指令。指令可能也完全或至少部分地驻留在处理器140内(例如, 在处理器的高速缓冲存储器内)。根据该指令,处理器140转换或选择面部图像110的部分, 以提供到关键点定位模块120。另外,处理器140按照该指令操作关键点定位模块120和分析 模块130,以执行面部识别的核心功能。
[0033] 关键点定位
[0034] 图2是示例的关键点定位模块120的图。关键点定位模块120训练级联神经网络,以 在面部图像110的面部上定位关键点。在一个实施例中,关键点定位模块120分解定位任务 成为多级。例如,关键点定位模块120划分面部关键点为内部关键点和面部轮廓。此外,关键 点定位模块120识别许多不同的内部关键点-例如,眼、眉毛、口和鼻。关键点定位模块120使 用两个分别的神经网络的级联,分别用于内部关键点和用于面部轮廓。在这个示例中,用于 内部关键点的级联包括四个神经网络层级,而用于面部轮廓的级联包括两个神经网络层 级。通过分开内部关键点和轮廓部分的定位,关键点定位模块120能够分开地优化内部关键 点的关键点定位和面部轮廓的关键点定位。
[0035] 如图2中图示的,关键点定位模块120包括输入210、边界框估计器220、初始预测模 块230、面部部位精确模块240、最终精确模块250和输出260。边界框估计器220、初始预测 230、面部部位精确模块240和最终精确模块250形成级联神经网络。优选地,每个网络实现 为卷积神经网络。每个神经网络过滤来自在前的层级的不相关信息,并且训练神经网络以 精确关键点定位。这些模块的每一个具体化为硬件、软件、固件或其组合。这些模块一起训 练神经网络,以在面部图像110中定位关键点。
[0036] 关键点定位模块120的输入210接收面部图像110以执行关键点定位。输入210可直 接地接收面部图像(或部分面部图像)11〇,而不用任何处理。替换地,输入210可接收经过处 理的面部图像110(或面部图像110的部分)。在一方面,输入210包括用于接收多面部图像 110的队列,并且提供要执行关键点定位的面部图像110到边界框估计器220。
[0037] 边界框估计器220接收面部图像110,并且产生两个边界框:一个用于内部关键点 的边界框222,和用于面部轮廓的另一个边界框224。因此,边界框估计器220训练两个神经 网络,以估计这两个边界框(即x-y坐标的最大和最小值)。边界框估计器220计算与面部的 姿态紧密相关的面部轮廓的相对位置。边界框估计器220也可以根据用于内部关键点的边 界框222或用于面部轮廓的边界框224,产生估计面部图像110内的面部的位置的剪裁的面 部图像。在一些系统中,边界框估计器220也可以产生包含面部图像110内的关键点的初始 预测的标记出关键点的面部图像,虽然对于图2中显示的系统不是这样的情况。
[0038]初始预测模块230从边界框估计器220接收剪裁的面部图像222、224,并且执行初 始关键点估计。模块230也具有用于内部关键点和用于面部轮廓的分别的神经网络。在图2 的顶行中,初始预测模块230进行定义不同内部关键点(如:口、鼻、眼和眉毛等)的内部关键 点的初始估计232。在图2的底端行中,初始预测模块230进行定义面部轮廓的关键点的初始 估计234。注意,对于内部关键点和面部轮廓两者,定位是对于整个面部执行。
[0039] 相反,面部部位精确模块240基于人脸部位在人脸部位上精确该关键点定位。它接 收用于内部关键点的标记出关键点的面部图像232,并且分开考虑每个内部关键点,进一步 精确内部关键点的关键点定位。面部部位精确模块240将面部分段为面部的部位(如:眼、眉 毛、口和鼻等)。此外,面部部位精确模块240分开地精确每个面部部位的关键点定位。面部 部位精确模块240产生标记出关键点的面部部位图像,如图2所示。
[0040] 最终精确模块250从模块240接收标记出关键点的面部部位图像,并且进一步精确 和完结内部点的关键点定位。在这个例子中,最终精确模块250旋转面部部位以使得内部关 键点在规格化的方向。最终精确模块250估计每个面部部位的旋转角,并且相应地校正每个 面部部位的位置。最终精确模块250也可以进一步精确内部点的估计。
[0041] 在图2的例子中,面部部位精确模块240和最终精确模块250对于内部关键点而不 是对于面部轮廓执行。也就是说,与对于面部轮廓(即外部点)相比较,实现大量的神经网络 层级,用于对于内部关键点(即内部点)计算关键点。
[0042]用于边界框估计器220、初始预测模块230、面部部位精确模块240和最终精确模块 250中的每个层级的神经网络的训练,优选地以几何约束执行。例如,定位任务分解成多级, 在每级考虑在点或人脸部位之间的交互作用。在第一层级,计算与面部的姿态密切地相关 的面部轮廓的相对位置。在更高层级,逐步地展现更多详细信息。第二层级网络获悉面部部 位的相对位置,并且辨认面部部位内部的形状的任务由随后层级处理。特定面部部位的位 置和旋转角,根据到另一个面部部位的相对位置计算。
[0043] 输出260接收来自最终精确模块250的用于内部关键点和来自初始预测模块230的 用于面部轮廓精确化的标记出关键点的面部图像。内部和外部点组合以产生用于关键点定 位模块120的输出表示。在一个方法中,内部关键点由51个关键点代表,并且面部轮廓由17 个关键点代表。
[0044] 通过分别地定位内部关键点和面部轮廓,更有效率地优化两个部分。因为轮廓在 面部图像中的面部和背景之间的边界上,所以来自背景的不相关信息引入模糊和更多噪 声。相反,内部关键点较少对噪声或不相关信息敏感。结果,一起定位内部关键点和面部轮 廓导致不平衡定位。通过划分面部为内部关键点和面部轮廓,训练两个分别的级联子系统 使整体系统能够以计算有效率的方式获悉内部关键点的详细结构,而不投入大部分计算能 力到拟合困难的轮廓部分。
[0045] 优选地,对于每个神经网络层级,到该神经网络层级的输入是具有第一边界框的 面部图像110的剪取,并且对于该神经网络层级的输出是具有第二边界框的面部图像110的 剪取。例如,第一边界框的尺寸等于或大于第二边界框的尺寸。进一步,第二边界框可能是 第一边界框的子集。
[0046] 卷积神经网络(CNN)
[0047] 在一个实施例中,关键点定位模块120由卷积神经网络(CNN)实现。图3是由级联卷 积神经网络实现的神经网络层级(具体地,模块232)的图。在这个例子中,实现初始预测层 级2的卷积神经网络包括三个卷积层310、330、350和三个最大池化层320、340、360。每个卷 积层后面是最大池化层。该卷积神经网络也包括非线性的算子。这个神经网络层级进一步 包括非共享的卷积层370,后面是全连接层380。对于该非共享的卷积层,用于不同位置的权 重不同。
[0048]三个卷积操作310、330、350在输入节点之后堆叠。每个卷积层应用几个滤波器到 多通道输入图像并且输出响应。令到第t卷积层的输入是IS则按照以下计算输出
[0049]

[0050] 其中I表示到该卷积层的输入,并且F和B是可调参数。超正切(Hyper-tangent)和 绝对值函数被用于该滤波器响应,以引入非线性到该系统。
[0051 ] 具有不重叠的池化区域的最大池化层320、340和360,在卷积层310、330、350以后 使用。 _2]
(2)
[0053]虽然最大池化操作可以引入误差项,并且劣化计算中的准确度,但是该级联神经 网络的鲁棒性可补偿池化操作中的信息的损失。因为关键点的总体形状和相对位置比输入 图像中的像素级细节更重要,所以来自最大池化操作的不准确度变得无关紧要。
[0054] 在非共享的卷积层370中,应用的滤波器跨越不同的位置不相同,所以该层是局部 易于接收的而非卷积的。
[0055](3) V '' V.? - VX- >?
[0056] 最终预测由一个或两个充分连接的层产生。调节参数以最小化L2(即,最小平方误 差)损失:
[0057]
(4)
[0058] 图3显示各种数据和操作的大小。卷积运算310指示沿着各边的具有60x60的正方 形,1在左下角,而5x5在内部正方形。这意味着存在到这个操作的1个输入图像/特征,每个 输入图像/特征是60x60,而卷积核是5x5。卷积产生用于下一操作的由正方形集指示的输 出,即每个是56x56的20个图像/特征。(在非线性以后),这也是到最大池化操作320的输入。 用于最大池化320的该2x2正方形指示,最大池化发生在2x2区域上,所以存在2:1下抽样。最 大池化的输出是每个是28x28的20个图像/特征,如由用于卷积运算330的正方形集指示的。 对于该图的其余诸如此类。
[0059] 图3仅仅是执行内部关键点的初始预测的神经网络层级232的示例实现。图2中显 示的每一其他的神经网络层级可以由类似的架构(或不同的架构)的神经网络实现。特别 地,层级1包括两个神经网络:用于内部关键点的边界框估计器222,和用于面部轮廓点的边 界框估计器224。层级2包括两个神经网络:用于内部关键点的初始预测232,和用于面部轮 廓点的初始预测234。层级3具有四个神经网络,每一用于每个显示的关键点。层级4也具有 四个神经网络。
[0060] 图4提供示例卷积神经网络中的网络架构的概要。N1网络架构用于模块232,其进 行内部关键点的初始预测。N2网络架构用于模块234,其进行轮廓点的初始预测。N3网络架 构用于层级3(人脸部位精确化)和4(最终精确化)中的八个神经网络中的每一个。两个全连 接层用于N3网络,并且在其间存在120个隐藏单元。在N1和N2, 一个全连接层直接地连接输 出单元和非共享卷积层。N1具有比N2大的输入尺寸,因为它的输入覆盖整体面部的范围。 [0061 ]在图4中,输入行中的数字NxN指示该输入的大小。例如,N1网络取作为60x60的输 入。对于该行的其余,数字MxMxK意谓滤波器大小是MxM并且输出图像/特征的数目是K。对于 N1网络,第一卷积层产生20个不同的输出,其每个使用5x5卷积核产生。
[0062] 该神经网络通过使用手动调谐超参数的随机梯度下降方法训练。为了避免严重的 过拟合,该图像在馈入该网络之前通过轻相似变换(旋转、平移和缩放)随机改变。这个步骤 实际上创造训练样本的无穷大数,并且保持训练误差接近于验证集上的误差。另外,倒转该 图像来对于右眼重新使用左眼的模型,并且对于右眉毛重新使用左眉毛。
[0063] 图像补丁规格化到零平均值和单位方差。然后应用超正切函数,以便像素值落于 [_1,1]的范围。当剪裁边界框内部的图像时,框扩大10%到20%。通过增大保持更多上下文 信息,并且它允许系统容忍边界框估计器220中的小故障。在最终精确模块250中,从面部部 位中的两个角点的位置计算旋转角。
[0064] 通过利用级联神经网络,对于不同级别的考虑的特定任务训练每个神经网络层 级,并且通过适中大小的网络实现好的性能。不是建立单个甚大网络,全面的操作分离成几 个面部部位任务,每个可以通过更可管理的大小的神经网络实现。例如,第二级别网络获悉 面部部位的相对位置,并且该获悉的相对位置依靠边界框传递到处理辨认面部部位的形状 的任务的继任级别。因为全局信息反映在早先网络中,所以敏感于局部恶化妥协的之后网 络不导致最终预测的同样多漂移。
[0065] 面部识别的操作
[0066] 图5图示按照一个实施例的使用面部识别系统100执行面部识别的方法的流程图。 面部识别系统100使用用于在面部图像110上产生关键点的关键点定位。呈现面部图像110 (510)给关键点定位操作。执行关键点定位(520)以在面部图像110上识别面部的关键点。然 后使用识别的面部的关键点执行面部识别(530)。例如,关键点之间的距离可用于确定两个 面部图像110是否属于同一个人。
[0067] 图6图示执行面部的关键点定位520的方法的流程图。面部图像由关键点定位模块 120接收(620)。预测用于内部点和用于轮廓点的边界框(630)。根据该边界框内的图像,获 得关键点的初始预测(640)。进一步,产生标记出关键点的面部部位图像(650)。精确内部关 键点的预测(655 ),并且相应地产生精确的标记出关键点的面部部位图像。旋转内部关键点 的预测(660)。组合标记出关键点的面部部位图像(670),并且呈现识别的关键点(680)。
[0068] 板拟结果
[0069] 在在包含由300-Faces in the Wild Challenge提供的3837张图像的数据集上进 行实验。该图像和附注来自AFW、LFPW、HELEN和IBUG。随机选择500张图像的子集作为验证 集。在预测的关键点位置和由两眼间距离规格化的标定真值(ground truth)之间的平均距 离被用作性能度量。在预测的关键点位置和标定真值之间的平均距离可以获得为:
[0070]
(5)
[0071] 其中,Μ是关键点的数目,p是预测,g是标定真值,1和r是左眼角和右眼角的位置。 另外,标绘各点的百分比对着标称化距离的累积误差曲线,被用作另一个性能度量。
[0072] 图7描绘验证集上的累积误差。图7中的面板包括7图线。图线710是整体面部(总计 68个关键点)的累积误差曲线。图线720是仅仅内部点的累积误差曲线(51个点)。图线730是 仅仅轮廓点(17个点)的累积误差曲线。图线740是用于眼的关键点的累积误差曲线。图线 750是用于眉毛的关键点的累积误差曲线。图线760是用于鼻的关键点的累积误差曲线。图 线770是用于口的关键点的累积误差曲线。如图7中图示的,用于每个面部部位的确认误差 变化。图线730显著地更坏。因此,分开内部关键点和面部轮廓改进关键点定位中的准确度。 [0073]进行另一个实验,其中训练三个网络。具有大尺寸的其中之一一起预测68个点。另 两个分别获悉轮廓点和内部点,以及两个网络的训练和测试中涉及的计算量的和粗略地匹 配较大的网络(68个点)。因此,不存在计算方面的惩罚。
[0074]图8图示分开内部点和外部点(即轮廓点)的效果。一个网络一起预测面部(68个 点),并且内部点和轮廓点上的其误差分别是II和CUI2和C2由分开地预测那些点的两个网 络实现。如在图8中图示的,在轮廓点C1和C2上不存在重要的性能差异,无论是否分开轮廓 点和内部点以执行面部的关键点定位。然而,通过分开轮廓部分和内部关键点以执行面部 的关键点定位,存在12中的重要的性能改善。
[0075]表1列出在各种情况下实现的确认误差。该误差值是在预测和标定真值之间的平 均标称化距离。前两行数据显示仅仅在内部点上计算的误差,而其他的行相应于在全部68 个点上的平均误差。
[0076]表1.在各种情况下实现的验证误差 [0077]
[0078]第一行"(51个点)检测器框"是使用由面部检测器提供的边界框的用于51个内部 点的误差值。也就是说,使用完全的面部输入预测内部点,没有任何边界框估计(层级1)。第 二行"(51个点)层级1框"是用于51个内部点的误差值,但是使用边界框估计(层级1)。这个 表指示通过在第一层级估计的边界框在内部点上改进性能。
[0079]剩余三行是在层级2、3和4之后在全部68个关键点上的误差值。可见,误差随每个 增加的层级降低。也就是说,每个层级产生比上述的层级更准确的关键点的估计。为定量地 研究第三和第四层级的效果,计算在每个网络层级实现的确认误差。对于每个面部部位通 过级联级训练分开的网络,允许第三层级网络改进性能14%。性能增益仍然通过调整转动 的第四层级获得。
[0080] 图9图示在300Faces in the Wild Challenge上的面部的关键点定位结果。在这 个实验中AAM被用作用于比较的基线。图9中的面板包括四个图线。图线910是使用AAM以完 全的面部(68个点)模拟获得的结果。图线920是使用AAM以内部关键点(51个点)模拟获得的 结果。图线930是如上所述使用面部的关键点定位以完全的面部(68个点)模拟获得的结果。 图线940是如上所述使用面部的关键点定位以内部关键点(51个点)模拟获得的结果。如在 图9中图示的,与使用AAM的关键点定位相比,以面部的关键点定位,规格化误差低得多的。
[0081] 图10提供从验证集取的示例。如此处公开的关键点定位能处理在姿态和照明条件 包含大变化的图像。如公开的使用卷积神经网络的使用关键点定位的系统,甚至在存在遮 掩(occlusion)时也可以预测面部的形状。
[0082] 虽然详细说明包含许多详情,但是这些不应被认为是限制发明的范围,而仅仅作 为举例说明发明的不同的示例和方面。应该理解,发明的范围包括上面未详细地论述的其 他的实施例。例如,应该显然的是,可以使用不同的架构。卷积层的数目、滤波器大小、通道 数、非线性的选择、下抽样的选择、关键点的表示等等的特定选择,将依赖应用改变。将对本 领域技术人员显然的各种其他的修改、变化和变异,可能在此处公开的本发明的方法和设 备的安排、操作和细节中做出,而不脱离如在权利要求中限定的发明的精神和范围。因此, 发明的范围应该通过权利要求及其合法的等效确定。
[0083] 在替代实施例中,该发明以计算机硬件、固件、软件和/或其组合实现。该发明的设 备可以计算机程序产品实现,该计算机程序有形地具体表现在机器可读的存储装置中用于 通过可编程处理器执行;并且该发明的方法步骤可以由可编程处理器执行,其执行指令的 程序以通过在输入数据上操作并且产生输出来执行该发明的功能。该发明可以有利地实现 在可在可编程系统上执行的一或多个计算机程序中,该可编程系统包括至少一个可编程处 理器(被耦合以从数据存储系统接收数据和指令并且发送数据和指令到数据存储系统)、至 少一个输入设备和至少一个输出设备。每个计算机程序可以实现为高级过程或面向对象的 编程语言,或汇编或机器语言(如果需要);并且在任何情况下,该语言可以是编译或解释语 言。适当的处理器包括举例来说通用和专用微处理器。通常,处理器将从只读存储器和/或 随机存取存储器接收指令和数据。通常,计算机将包括一或多个大规模储存设备用于储存 数据文件;这样的设备包括磁盘,如内部硬盘和可拆卸盘;磁光盘;和光盘。适合于有形地具 体化计算机程序指令和数据的存储设备包括全部形式的非易失性存储器,包括举例来说半 导体存储器设备,如EPROM、EEPR0M、和闪速存储器设备;磁盘,如内部硬盘和可拆卸盘;磁光 盘;和⑶-ROM盘。前述任何可以通过ASIC(专用集成电路)及其他形式硬件补充,或被并入 ASIC及其他形式硬件中。
[0084] 术语"模块"不意指限于特定物质形式。依赖特定应用,模块可以实现为硬件、固 件、软件和/或这些的组合。此外,不同的模块可以共享公共的组件,或甚至由相同组件实 现。在不同的模块之间可能有或可能没有清楚的边界。
[0085] 依赖模块的形式,在模块之间的"耦合"也可能取不同的形式。例如,专用的电路可 以通过硬接线或通过存取公用寄存器或存储位置彼此耦合。软件"耦合"可以通过在软件组 件之间(或在软件和硬件之间,如果是该情况)传递信息的任何数量的方式发生。术语"耦 合〃意谓包括所有这些,并且不意指限于在两个组件之间的硬连线的永久连接。另外,可能 有插入元件。例如,当两个元件描述为彼此耦合时,这不暗示这些元件彼此直接耦合,也不 排除在两个之间的其他元件的使用。
【主权项】
1. 一种用于在面部图像上定位关键点的系统,所述系统包括: 输入,用于接收面部图像; 输出,用于呈现由所述系统识别的关键点;以及 多个神经网络层级,从所述输入到所述输出以级联耦合;其中每个神经网络层级产生 关键点的估计,其比在前的神经网络层级的关键点的估计更精确。2. 如权利要求1的系统,其中,对于每个神经网络层级,到所述神经网络层级的输入的 尺寸等于或大于所述神经网络层级的输出。3. 如权利要求2的系统,其中,对于每个神经网络层级,到所述神经网络层级的输入是 所述面部图像利用第一边界框的剪取,所述神经网络层级的输出是所述面部图像利用第二 边界框的剪取,并且所述第一边界框的尺寸等于或大于所述第二边界框。4. 如权利要求3的系统,其中所述第二边界框是所述第一边界框的子集。5. 如权利要求1的系统,其中所述神经网络层级的一个接收面部图像作为输入并且产 生剪裁的面部图像作为输出,所述剪裁的面部图像估计所述面部图像内的面部的位置。6. 如权利要求1的系统,其中所述神经网络层级的一个接收面部图像作为输入并且产 生标记出关键点的面部图像作为输出,所述标记出关键点的面部图像包含所述面部图像内 的关键点的初始预测。7. 如权利要求1的系统,其中所述神经网络层级的一个接收标记出关键点的面部图像 作为输入,所述标记出关键点的面部图像包含所述面部图像内的关键点的初始预测,并且 产生多个标记出关键点的面部部位图像作为输出,每个标记出关键点的面部部位图像包含 各自的关键点的精确的估计。8. 如权利要求1的系统,其中所述神经网络层级的一个接收标记出关键点的面部部位 图像作为输入,并且产生所述标记出关键点的面部部位图像的旋转版本作为输出。9. 如权利要求1的系统,其中所述关键点包括定义所述面部图像的面部内的关键点的 内部点。10. 如权利要求9的系统,其中所述内部点包括定义眼、口和鼻的内部点。11. 如权利要求1的系统,其中所述关键点包括定义所述面部图像的面部的轮廓的外部 点。12. 如权利要求1的系统,其中级联的神经网络层级的数目对于不同的关键点是不同 的。13. 如权利要求12的系统,其中所述关键点包括定义所述面部图像的面部内的关键点 的内部点和定义所述面部的轮廓的外部点,并且用于所述内部点的级联的神经网络层级的 数目大于用于所述外部点的级联的神经网络层级的数目。14. 如权利要求1的系统,其中所述神经网络层级是卷积神经网络,其包括卷积层、非线 性层和下采样层。15. 如权利要求14的系统,其中每个神经网络层级包括具有至少两个卷积层的卷积神 经网络。16. 如权利要求14的系统,其中所述下采样不高于2倍下采样。17. 如权利要求1的系统,其中所述系统包含级联的3到5个神经网络层级。18. 如权利要求1的系统,其中所述多个的神经网络层级包括: 至少三个级联的神经网络层级,用于预测定义所述面部图像的面部内的关键点的内部 点,所述三个级联的神经网络层级从输入到输出按顺序包括下列: 第一边界框估计器,其接收所述面部图像作为输入,并且产生第一剪裁的面部图像作 为输出,所述第一剪裁的面部图像内部点估计所述面部图像内的面部的位置以用于估计内 部点; 第一初始预测模块,其接收所述第一剪裁的面部图像作为输入并且产生第一标记出关 键点的面部图像作为输出,所述第一标记出关键点的面部图像包含所述面部图像内的内部 点的初始预测;以及 面部部位精确模块,对于要预测的每一关键点,其接收所述第一标记出关键点的面部 图像作为输入,并且产生标记出关键点的面部部位图像作为输出,所述标记出关键点的面 部部位图像包含定义所述关键点的内部点的精确的估计;以及 两个级联神经网络层级,用于预测定义所述面部图像的面部的轮廓的外部点,所述两 个级联的神经网络层级从输入到输出按顺序包括下列: 第二边界框估计器,其接收所述面部图像作为输入,并且产生第二剪裁的面部图像作 为输出,所述第二剪裁的面部图像估计所述面部图像内的面部的位置以用于估计外部点; 以及 第二初始预测模块,其接收所述第二剪裁的面部图像作为输入并且产生第二标记出关 键点的面部图像作为输出,所述第二标记出关键点的面部图像包含所述面部图像内的外部 点的预测。19. 一种用于在面部图像上定位关键点的方法,所述方法包括: 接收面部图像; 产生神经网络对关键点的估计,其比在级联的神经网络中在前的神经网络层级对关键 点的估计更精确;以及 呈现根据关键点的所述估计识别的关键点, 其中所述方法由一个或多个处理器执行。20. -种配置为存储程序代码的非暂时计算机可读介质,所述程序代码包括用于在面 部图像上定位关键点的指令,该指令当由处理器执行时使得处理器: 接收面部图像; 产生神经网络对关键点的估计,其比在级联的神经网络中在前的神经网络层级对关键 点的估计更精确;以及 呈现根据关键点的所述估计识别的关键点。
【文档编号】G06K9/00GK105981041SQ201480075046
【公开日】2016年9月28日
【申请日】2014年5月29日
【发明人】周而进, 范浩强, 曹志敏, 姜宇宁, 印奇
【申请人】北京旷视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1