紧凑人脸表示的制作方法

文档序号:10598361阅读:461来源:国知局
紧凑人脸表示的制作方法
【专利摘要】一种深度学习框架联合地优化人脸表示的紧凑性和辨别能力。紧凑表示能够被紧凑至32位并且仍然产生高度的辨别性能。在另一方面,基于极度的紧凑性,给定大规模人脸数据集,传统的人脸分析任务(例如,性别分析)能够由查找表方法高效地解决。
【专利说明】
紧凑人脸表示
技术领域
[0001] 本发明一般地涉及图像处理,尤其涉及使用机器学习的人脸识别和人脸表示。
【背景技术】
[0002] 人脸识别系统在数字图像或视频帧上执行图像处理以自动地识别人。人脸识别系 统典型地将人脸图像表示为超大维度的特征矢量。在获得表示(representation)之后,能 够应用各种算法来执行分类、验证和/或搜索的任务。算法的性能严重取决于表示的选择。 最近,对于基于人脸图像的先验知识设计更好的表示感兴趣。
[0003] 超大维度的手工制作的表示可以提供人脸识别结果的高准确度。然而,为了使用 手工制作的表示执行人脸识别,单独地对于每个模块仔细地优化复杂的多级系统。多级系 统典型地包括例如用于预处理、低级编码、特征变换和较高级表示的模块。每个个体模块的 手工制作调谐是劳动密集的。
[0004] 另外,这些表示典型地是超大维度。传统地,使用数千维度的人脸表示被认为是 "紧凑的"。可以采用一些维度缩减或量化方法来压缩大规模人脸识别系统的应用的表示维 度。然而,辨别能力通常因紧凑性需求而降低。结果,现有的方法在紧凑性和辨别能力之间 做出不同的权衡。
[0005] 因此,存在对于为了人脸识别和其他目的而学习人脸的紧凑表示的更好方法的需 求。

【发明内容】

[0006] 本发明通过一起优化紧凑性和辨别能力,而不是顺序地或单独地优化二者来克服 现有技术的限制。
[0007] 在一个方面,一种用于训练用于紧凑人脸表示的深度学习神经网络的方法包括下 面的步骤。将人脸图像呈现到神经网络。神经网络处理人脸图像以产生人脸图像的紧凑表 示。处理紧凑表示以产生度量的估计值,关于该度量的实际值是已知的。基于与度量的实际 值相比较的度量的估计值来训练神经网络。在一种实现方式中,神经网络是金字塔卷积神 经网络(金字塔CNN)。
[0008] 能够以许多不同的方法来强制紧凑性。例如,可以约束紧凑表示以具有预先确定 的维度数量、总位数和/或关于每个维度的某个层级的量化。32位的紧凑表示可以是每个1 位的32个维度、每个8位的4个维度或者32位的1个维度。
[0009] 在量化的人脸中训练神经网络可能是有问题的,因为量化不提供表现良好的梯 度。在一种方法中,量化被建模为舍入误差,并且然后使用该模型训练神经网络。在另一种 方法中,量化被建模为随机变量,并且使用动态编程基于随机变量计算预期值。在再一种方 法中,基于包括标准偏差项的目标函数训练神经网络。
[0010] 在另一方面,能够以不同的方法使用紧凑人脸表示。例如,32位的人脸表示将所有 人脸的整个空间细分成232个子空间。如果目标是人脸识别,那么能够使用32位的表示来对 于应当首先搜索哪个子空间确定优先次序。作为另一个示例,如果目标是人脸分类(例如, 这个人脸是男性还是女性),那么紧凑人脸表示可以用作查找表的索引。
[0011] 其他方面包括与前述有关的组件、设备、系统、改进、方法、处理、应用和其他技术。
【附图说明】
[0012] 本发明具有其他的优点和特征,当结合附图时,这些优点和特征将从下面的本发 明的详细描述和附加权利要求书中更容易明白。
[0013] 图1是人脸识别系统的简化图。
[0014] 图2是训练金字塔卷积神经网络(CNN)的过程的图。
[0015] 图3是卷积神经网络的明细图。
[0016] 图4是执行人脸识别的方法的流程图。
[0017]图5是训练金字塔CNN的方法的流程图。
[0018] 图6a-C是示出量化成一位之前的输出的分布的直方图。
[0019] 图7绘制出不同维度和量化的32位人脸表示的准确度。
[0020] 图8例示紧凑人脸表示的使用。
[0021 ]图9绘制出作为所访问过的库(b in)数量的函数的查全率。
[0022] 图10示出不同人脸表示库中的人脸样本。
[0023] 附图仅为了例示的目的描绘本发明的实施例。本领域的技术人员从下面的讨论中 将容易认识到,可以采用在这里所例示的结构和方法的替换实施例,而不背离在这里所描 述的本发明的原理。
【具体实施方式】
[0024] 附图和下面的描述仅通过例示的方式涉及优选的实施例。从下面的讨论中应当注 意,这里所公开的结构和方法的替换实施例将容易被认为是可以被采用而不背离所要求保 护的原理的可行的替代选择。
[0025] 人脸识别概述
[0026]图1是根据一个实施例的人脸识别系统100的简化图。人脸识别系统100接收目标 人脸图像110T并且试着识别人脸(亦即,将人脸与具体的个体相关联)或者在人脸上执行其 他辨别任务。人脸识别系统1〇〇也接收关于已知个体的参考人脸图像110R。人脸识别系统 1〇〇执行分析以生成度量150,以指示目标人脸图像110T中的个体是否与参考人脸图像110R 中的个体相同。人脸识别系统100可以具有关于不同个体的参考人脸图像110R的大型数据 库,并且可以将目标人脸图像110T与许多不同的参考人脸图像110R相比较,以便识别关于 目标人脸图像110T的个体。
[0027]在该特定的示例中,人脸识别系统100包括金字塔CNN 120、分析模块130和处理器 140,但是人脸识别系统100的其他实现方式可以使用其他组件。例如,能够使用其他类型的 神经网络或者人脸制码引擎代替金字塔CNN。这些组件的每个可以作为硬件、软件、固件或 者它们的组合来实施。共同地,这些组件执行人脸识别并且确定两个人脸图像110中的对象 是否相同。
[0028]金字塔CNN 120接收人脸图像110作为输入并且对于人脸图像的每个生成表示。作 为替换,可以预先计算参考人脸图像的表示。人脸图像的表示优选地以身份保留(ID保留) 的方式来获得,使得被映射空间中的距离紧密地反映人脸图像的身份的语义距离,从而最 小化不相干因素(例如,照明、表情和姿势)的影响。
[0029] 而且,表示优选地对紧凑空间中的人脸图像的身份的抽象和高级信息进行编码。 即,优选地能够使用并不是许多位对人脸表示进行编码。这典型地意味着人脸表示具有低 维度并且被量化。例如,如果人脸表示作为INT32存储,那么存在总共32位可用于人脸表示。 它可能是8维度表示,其中每个维度被量化成4位,或者它可能是32维度表示,其中每个维度 是单个位。其他组合将是显然的。传统的方法典型地使用大于1K字节的人脸表示,而金字塔 CNN能够使用4至64字节并且优选地不多于64个维度的人脸表示维持良好的人脸辨别。
[0030] 分析模块130确定参考人脸图像110R中的对象与目标人脸图像110T中的对象是否 匹配。分析模块130在金字塔CNN 120的输出处获得人脸图像110的表示。而且,分析模块130 基于人脸图像110的表示生成关于人脸图像110是否属于同一对象(人)的度量150。度量150 能够用来执行人脸识别。典型的度量基于计算两个矢量表示之间的余弦角,或者计算两个 表示之间的欧几里得(或者其他)距离。
[0031] 处理器140执行指令以在人脸识别系统100上执行人脸识别。处理器140从存储器 (未示出)或者外部电路系统接收指令。指令也可以完全或者至少部分地驻留在处理器140 内(例如,在处理器的高速缓冲存储器内)。根据指令,处理器140变换或者选择人脸图像110 的一部分以提供给金字塔CNN 120。另外,处理器140根据指令操作金字塔CNN 120和分析模 块130以执行人脸识别的核心功能。
[0032] 人脸表示
[0033]根据有监督的学习信号来训练金字塔CNN 120以获得紧凑并且独特的表示。即,训 练同时优化紧凑性方面和辨别方面。在许多传统的人脸识别系统中,可以首先训练系统来 辨别但是使用大维度的人脸表示。在第二步骤中,缩减大维度人脸表示的维度。然而,分离 关于辨别和紧凑性需求的训练可能导致次优的结果。训练人脸识别系统而同时考虑紧凑性 和辨别需求二者是优选的。
[0034] 由金字塔CNN产生的表示能够被表达为从图像像素到数值矢量的函数映射。
[0035] f:Rhxw^Rm (1)
[0036]在训练金字塔CNN 120时,从成对的人脸图像110的训练集中学习期望的表示。这 涉及确定函数族的参数并且使用目标函数L来选择表示提取字:
[0037] (9)
[0038]其中fe是当使用权重0时由金字塔CNN实现的函数,Idata是训练集,L〇是目标函数, 并且是优化目标函数L的权重。潜在的函数族f应当包含足够的复杂度,以表达所必需的 复杂并且高级的计算。为了强制ID保留的性质,应当在目标函数L中使用身份信息。这导致 有监督的表示学习方法,有监督的表示学习方法与目的在于对数据点的密度分布建模的无 监督的方法相对照。虽然无监督的方法能够发现数据中显现的模式,但是它们的优化目标 不直接地涉及识别任务,所以由无监督的方法所获得的经学习的表示不可避免地容易受到 包括光照、表情和姿态的因素所影响。与此相反,有监督的方法明确地强加 ID保留需求。因 此,由有监督的方法所获得的学习表示不受照明、表情和姿势所影响。
[0039] 在一个实施例中,人脸识别中的有监督的信号使用它们是否属于同一人的指示标 注人脸图像对。一种输出神经网络使用距离函数来比较成对的人脸图像的表示,并且预测 人脸图像对是否属于同一人。示例的损失函数是:
[0040] L ^ + (3)
[0041] D(Ii,I2) = a ? d(f0(Ii),f0(I2))-P (4)其中6(1^12)是指示一对的两个人脸图 像1:和12是否属于同一人的度量。fe表示由神经网络完成的以将人脸图像变换成表示的计 算,并且d是测量两个人脸图像的表示矢量之间的距离的函数。常见的函数是(1=15(10-5 (I 2) I。9是网络中的权重,对权重进行训练。a和0是另外的可训练的参数。
[0042]该损失函数鼓励属于同一人(或者对象)的特征之间的小距离并且处罚不匹配的 对之间的相似性。因此,一对中两个人脸图像的表示之间的距离用作确定每对的两个人脸 图像是否是关于同一人的度量。当两个人脸图像110是关于同一人时,距离应当较低。当两 个人脸图像110不是关于同一人时,距离应当较高。这样,经学习的特征表明良好的ID保留 性质,并且它非常针对识别任务。与人内部的变化相对应的因素将由网络所抑制。
[0043]上面的方法训练辨别但是不强制紧凑性。紧凑性能够看作是低维度和量化(或者 离散性)的组合。低维度约束通过将等式(1)中的模型的输出维度m设置成足够小的数来强 制。32位的表示能够通过设置m = 32,并且32个维度的每个被量化成单个位来实现。也能够 选择较小的m,使得能够将更多的位分配给每个维度。例如,设置m = 8,并且8个维度的每个 被量化成四位也产生32位的表示。并不是所有的维度必须量化成相同的位数。使用多于一 位具有在特征空间中形成分层结构的优点,使得数据点能够以不同的粒度级被索引。然而, 一些应用明确地要求二进制表示。
[0044] 另一个约束是离散性,这意味着模型的输出的每个维度被舍入:
[0045] /(x) - (5)其中Q对应于可用于对一 个维度进行编码的位的数目,fmcK^lU) G [0,1 r是使用连续变量的m维表示,U是地板函数 (一种类型的舍入算子),并且f (X)是经量化的m维表示。
[0046] 然而,不可微分的舍入算子对于基于梯度的学习算法提出问题。这个障碍能够使 用不同的技术,包括下面描述的技术来克服。
[0047] 一种技术称作"舍入误差项"技术。在该技术中,引入"噪声"项?'(.Y)对由舍入带来 的误差进行建模:
[0048] /W = 2%,▲心.')+ (6)
[0049] 其中?'(X)对应于残差。当相对于模型参数计算损失函数的梯度时,该项看作常数。
[0050] 该技术对于非二进制的情况运行良好。接下来的两种技术专门处理二进制的情 况。
[0051] 专门技术的第一种将模型的实值输出与随机的m位变量相关联。f(x)的第i位具有 fmcKMUhSl的概率和的概率。位是独立的。然后取损失函数的期望值:
[0052] L V.s (7)
[0053] 其中在f(h)和f(I2)的随机选择上取期望值。然后,1/相对于模型的输出是可微分 的。期望值能够由动态编程高效地计算,所以该技术也将被称作"动态编程"技术。对于1:和 12,假设Pi,j是f(Ii)和f(I 2)在它们的前i位中的j位处不同的概率。这产生
[0054] Pi,j = (l-pi_p2+2pip2)Di-i,j+(pi+p2_2pip2)Di-i,j-1, (8)
[0055] 其中 pi = f (Ui 并且p2 = f (i2)i。边界条件是口。,。-和pi;-1 = 〇。
[0056] 另一种技术目的在于最小化由舍入引入的误差。想法是通过添加标准偏差项来鼓 励模型输出二值化的值: _7] ?侧, 他 1 m
[0058] 其中Std( ?)表示跨越训练集的标准偏差。该技术将被称作"标准偏差"技术。
[0059] 在紧凑性和辨别力的需求都紧紧地合并到框架中的意义上,联合地优化框架。这 与使用散列法或者维度缩减算法作为后处理步骤的其他方法相对照。
[0060] 金字塔卷积神经网络(金字塔CNN)
[00611图2是根据一个实施例训练金字塔CNN 120的过程的图。金字塔CNN 120可以直接 接收未经任何处理的人脸图像(或者人脸图像的部分)110。作为替换,金字塔CNN 120可以 接收经处理的人脸图像(或者人脸图像的部分)110。金字塔CNN 120包括N个层级的卷积神 经网络。在该示例中,N = 4并且不同的CNN层级标注为"层级1"至"层级4"。每个神经网络执 行卷积、非线性和下采样。不同的CNN层级典型地具有不同的深度和输入大小,并且不同的 CNN层级也共享层(在图2中标注为210)。金字塔CNN 120生成人脸图像110的每个的表示,并 且基于人脸图像110的每个的表示来适配神经网络。
[0062] 金字塔CNN 120包括N个共享层210,其中N彡2,以及耦合到第N个共享层的至少一 个非共享层220。金字塔CNN 120包括N个CNN层级。每个CNN层级n(n = l至N)包括输入、共享 层中的n个、非共享层和输出。
[0063]例如,图2中所例示的金字塔CNN 120包括四个层级。因此,在该示例中的金字塔 CNN 120 包括四个共享层 210(1)、210(2)、210(3)和210(4),非共享层220(1)、220(2)、220 (3) 和 220(4),输入230(1)、230(2)、230(3)和 230(4)以及输出240(1)、240(2)、240(3)和 240 ⑷。
[0064] CNN层级1仅包括单个共享层210(1)。输入230(1)耦合到第一个共享层210 (1 ),第 一个共享层210(1)耦合到非共享层220(1),非共享层220(1)耦合到输出240(1)。相对照, CNN层级4包括四个共享层210(1)-(4)。输入230(4)耦合到第一个共享层210(1),第一个共 享层210(1)最终耦合到最后一个共享层210(4),最后一个共享层210(4)耦合到非共享层 220(4),非共享层220(4)耦合到输出240(4)。通常,对于CNN层级n,输入230(n)耦合到第一 个共享层210(1),第一个共享层210(1)最终耦合到第n个共享层210(n),第n个共享层210 (n)耦合到非共享层220(n),非共享层220(n)耦合到输出240(n)。注意,共享层210(1)对于 所有的CNN层级具有相同的结构和权重,对于共享层210(n)的每个同样成立。非共享层220 对于所有的CNN层级具有相同的结构但是对于每个CNN层级可以具有不同的权重。
[0065] 在操作中(亦即,当没有训练时),人脸图像输入到输入230(4),由共享层210(1)- (4) 和非共享层220(4)处理,并且最后一层输出240(4)产生人脸图像的紧凑表示。
[0066] 在一个实施例中,以有监督的贪婪方式训练金字塔CNN 120。如图2中所例示的,虚 线轮廓指示哪些层在哪个CNN层级训练。共享层210(1)和非共享层220(1)对于CNN层级1 一 起训练。共享层210(2)和非共享层220(2)对于CNN层级2-起训练。共享层210(1)对于CNN层 级2不训练。而是,它获得由关于CNN层级1的训练而产生的权重。
[0067]每个共享层210包括卷积层、下采样层和非线性层。假设CNN层级1在32x32的人脸 图像上训练并且进一步假设每个共享层210包括2倍(2x)下采样。这意味着,CNN层级1接收 32x32的人脸图像并且共享层210(1)基于进入的32x32的图像训练。然而,CNN层级2接收 64x64的人脸图像,但是共享层210(2)基于因下采样而由共享层210(1)生成的进入的32x32 的图像/特征训练。即,共享层210(2)和非共享层220(2)-起在来自第一个共享层210(1)的 经处理的图像/特征上训练。对于其他CNN层级和共享层以此类推。这样,随着共享层的总数 量增加,用来训练每个共享层210(n)的图像/特征的大小不会变得过分地大。能够从图像的 相同集合中得到每个CNN层级的输入。例如,3 2x3 2的剪辑能够用作到CNN层级1的输入, 64x64的剪辑用作到CNN层级2的输入,以此类推。
[0068]对于每个递增的CNN层级n,执行类似的步骤,其中前(n-1)个共享层210(1)…210 (n-1)固定不变。第n个共享层210 (n)和第n个非共享层220 (n)-起基于来自共享层210 (1)…210(n-l)的级联的经处理的图像/特征而训练。例如,在层级3中,不对共享层210(1) 和210(2)进行适配,并且一起训练共享层210(3)和非共享层220(3)。类似地,在层级4中,不 对共享层210(1)、210(2)和210(3)进行适配,并且一起训练共享层210(4)和非共享层220 (4)。在一个实施例中,根据从共享层210(1)…210(n-l)的下采样,随着n从1增加到N,到CNN 层级n的输入230(n)的大小增加。因此,到第n个共享层210的图像/特征输入的大小对于n = 1至N几乎是恒定的。
[0069]表格1示出如关于图2所说明的,金字塔CNN的有监督训练中的一种方法。
[0071]图3例示卷积神经网络层300的一个实施例。卷积神经网络层300可以用于共享层 210和/或用于非共享层220。卷积神经网络300包括卷积滤波器310、非线性激活算子320和 下采样算子330。
[0072]卷积神经网络层300是高度非线性的实值多元函数,它由卷积滤波器310、非线性 激活算子320和下采样算子330构成:
[0073] + (l〇)
[0074] 其中I1是第i层中的神经元的值。卷积滤波器310能够被定义为:
[0075] ^ ? ^ ~ ,h、 w.: (11)
[0076] 其中W是卷积滤波器的权重,并且B(等式(5)中)是卷积滤波器偏置。W和B都在训练 期间进行适配。非线性激活算子320由非线性函数g表示。函数g的示例包括超正切函数 (hyper-tangent function)、整流线性函数(rectified-linear function)、S型函数 (sigmoid function)等。下采样能够被定义为最大池化(max-pooling)算子
[0077] )x,y ~ 〇 s lx:i i h ( ! 2)
[0078] 开发基于梯度的算法,包括上面描述的考虑紧凑性和量化的技术,以估计卷积神 经网络层300中的权重。因此,适配(亦即,训练)金字塔CNN(例如,共享层210、非共享层220 或者它们的组合)包括适配关于卷积滤波器310的卷积滤波器权重。通过使用共享的权重, 相同的卷积滤波器310用于层中的每个像素。因此,减小了执行卷积的存储器大小并且提高 了计算速度。
[0079]有益地,使用具有有监督的学习信号的金字塔CNN 120的人脸识别系统100以快速 并且高效计算的方式实现人脸的高度辨别的和紧凑的表示的提取,用于执行人脸识别。通 过采用有强力监督的金字塔CNN 120,所有层级的学习信号直接反映最终的任务。因此,共 享层210学习提取与任务紧密相关的辨别信息。
[0080] 金字塔CNN 120的另一种解释是多尺度特征提取体系结构。金字塔优选地能够自 然地处理在人脸识别中常见的多尺度输入碎片。不同大小的图像碎片在相应的规模级别馈 送到网络。金字塔通过对于较大的输入区域使用较深的网络来利用多尺度结构。深度的增 加允许更高层级的网络经历较大图像碎片上的更复杂和抽象的计算。
[0081] 在替换实施例中,在相同层级中存在多于一个非共享层220,并且它们在不同的区 域上工作同时共享它们的第一层参数。因此,金字塔CNN 120进一步包括耦合到第N个共享 层210(N)的两个或多个非共享层220。
[0082]金字塔CNN的某些实现方式可以具有下面的特性的一些或全部。到CNN层级N的输 入图像大小典型地在80x80至400x400的范围内。金字塔CNN典型地可以具有1至4个共享层 210,并且下采样优选地在层之间在1.2至1.5的范围内,并且优选地小于2x。金字塔CNN也可 以具有任意地从10至1〇〇个非共享层220。图2中的盒子220表示这些非共享层的全部。典型 的卷积核大小可以在3x3至7x7的范围内变化。每个共享层可以存在任意地从1,000至1百万 权重。对于这些大小的金字塔CNN,训练集的大小典型地在从50万至1千万个图像之间变化。 这些数量仅仅是代表性的。设计不必须坚持这些数量。
[0083] 人脸识别的操作
[0084]图4例示根据一个实施例,使用人脸识别系统100执行人脸识别的方法的流程图。 人脸识别系统100采用用于生成人脸图像的表示的金字塔CNN 120。使用成对的人脸图像 110对金字塔CNN 120进行训练410。在训练完成之后,目标人脸图像110呈现420到金字塔 CNN 120的输入,并且在金字塔CNN 120的输出处获得430人脸图像110的紧凑表示。然后,使 用人脸图像110的这些表示执行440人脸识别。例如,表示之间的距离能够用来确定两个人 脸图像是否关于同一人。
[0085] 图5是训练410金字塔CNN 120的方法的流程图。金字塔CNN 120接收510成对的人 脸图像110。金字塔CNN 120生成520 1至10个CNN层级。CNN层级n包括用于接收人脸图像110 的输入、前n个共享层210、非共享层220以及用于产生人脸图像的表示的输出240。输入耦合 到第一个共享层210(1),并且第n个共享层210(n)耦合到非共享层220。而且,非共享层220 耦合到输出240。从层级1至层级N以那个次序对CNN层级进行训练530。即,首先训练CNN层级 1,然后CNN层级2,以此类推直到CNN层级N。
[0086] 为了训练CNN层级n,使用到CNN层级n的输入230的人脸图像110呈现532CNN层级n。 每个人脸图像110在输出240产生相应的表示。在一种方法中,成对的人脸图像110呈现给 CNN层级n的输入230(n)。另外,处理534表示以产生度量150的估计值。例如,度量150是每对 的两个人脸图像110是否关于同一人。度量150也能够是该对中的两个人脸图像110的表示 之间的距离。度量的实际值是已知的。而且,第n个共享层210(n)和非共享层220(n)基于与 度量150的实际值相比较的度量150的估计值而适配。适配第n个共享层210(n)和非共享层 220(n)可以基于当两个人脸图像110是关于同一人时降低距离,并且当两个人脸图像不是 关于同一人时增加距离。
[0087] 模拟结果
[0088] 野生标注人脸(LFW)是人脸识别系统的一个挑战基准。它包含从网络上获取的多 于13,000张图片。实验协议是评估验证两个图像是否属于同一人的准确度。使用32位紧凑 人脸表示的人脸识别的结果与使用其他方法的人脸识别的结果相比较。使用与LFW几乎不 重叠的外部训练集。使用包含9百万参数的6层神经网络。神经网络中的参数由随机梯度下 降法优化。为了加速训练,使用贪婪预训练。
[0089] 模拟两个类别的32位表示。第一类别是二进制表示,其中每个位对应于一个二值 化的维度。上面描述的三种技术都在该类别中适用。图6a_c是示出在量化成一位之前的输 出的分布的直方图。图6a是关于舍入误差项技术,图6b是关于动态编程技术,并且图6c是关 于标准偏差技术。在实验中观察到,所有这些技术高效地鼓励激活函数在+1和-1的二进制 值处饱和。
[0090] 这些表示的性能在表格2中进行比较。如表格中所示出的,后两种技术实现高达 88.5%的准确度值。作为比较,当使用多于1000个维度时,基于高维度LBP和PCA的基线法实 现96%的准确度,但是当维度缩减至32个时,它的性能急剧地退化到81.3%。
[0091 ]表格2:强制紧凑性的技术的准确度
[0094]图7绘制出32位表示的准确度,其中对于每个维度可以使用多于一位。32x1配置是 量化成每个1位的32个维度,16x2配置是量化成每个2位的16个维度,以此类推。使用舍入误 差项技术。如图7中所示,最佳的结果通过对于8个维度的每个使用4位而获得。它实现 91.4 %的准确度,这大于二进制表示的性能。这示出通过对于一个维度使用多个位而引入 的灵活性的益处。值得提到的是,32位表示已经打败许多更复杂的特征。对于剩下的实验, 使用8X4配置。
[0095] 应用于人脸搜索和分析
[0096] 紧凑人脸表示的一种应用是加速人脸识别。如图8中所示,在大规模人脸搜索中, 紧凑表示能够用来构建关于最接近的邻近搜索的索引。接收到的人脸图像被转变成紧凑表 示(810)。基于使用紧凑表示作为索引,生成候选人脸匹配(820)。接着进行更细粒度搜索和 重新排序步骤。32位表示形成关于特征矢量的2 32个库。以到查询矢量的距离的升序访问库。 为了能够进行公平的比较,评估在LFW数据集上进行。对于该实验选出在数据集中具有多于 两张图片的人,并且它们的人脸用作查询以搜索匹配的图像。当访问不同数量的库时的查 全率在图9中绘制。明显地,查全率随着所考虑的库数量增加而增加。该图示出通过访问总 共库中的少于一千个能够获得高的查全率,这极大地加速搜索。
[0097] 关于紧凑人脸表示的另一个应用是学习分类器。构建分类器的通常方法是基于特 征矢量学习统计模型。随着训练样本的数量增加,训练时间变得更长。大规模的社交网络通 常维护来自数十亿人的巨大的图像图库,每天上传数以亿计的照片。尽管有在线上学习和 增量算法方面的当前努力,学习处理不总是随着增加的容量而良好地按规模调整。
[0098] 然而,如果人脸表示足够短,能够进行简单的并且可伸缩的分析方法。参考图8,方 法是使用人脸表示作为地址并且构建关于任务的查找表(LUT) (830)。因为紧凑表示的ID保 留性质,属于同一个库的照片应当共享共同的属性。当训练样本的数量足够大时,分类器的 准确度接近贝叶斯错误率。训练和分类变得与表格查找一样简单。
[0099]图10示出不同人脸表示库中的人脸样本。落在相同库中的人脸(亦即,具有相同的 紧凑人脸表示)共享具有高级面部属性(例如,性别)的强相关。开发原型系统来演示该方 法。任务是从人脸图像中预测人的性别。训练集包括来自现有数据集的80,000张图片,并且 在LFW上评估性能。这实现96.8 %的准确度。
[0100] 虽然详细描述包含许多细节,但是这些不应当解释为限制本发明的范围,而是仅 仅例示本发明的不同示例和方面。应当领会到,本发明的范围包括没有在上面详细讨论的 其他实施例。例如,可以使用不同于CNN的神经网络体系结构。作为另一个示例,同时考虑量 化和辨别的其他方法可以用来产生二进制或者经量化的人脸表示。可以在这里所公开的本 发明的方法和装置的布置、操作和细节方面做出对于本领域技术人员而言是显然的各种其 他修改、改变和变化,而不背离如在所附权利要求书中所限定的本发明的精神和范围。因 此,本发明的范围应当由所附权利要求书和它们的法律等同物所确定。
[0101] 在替换的实施例中,本发明在计算机硬件、固件、软件和/或它们的组合中实现。本 发明的装置能够在计算机程序产品中实现,计算机程序产品在机器可读的存储设备中有形 地实施,用于由可编程处理器执行;并且本发明的方法步骤能够由可编程处理器执行,可编 程处理器通过在输入数据上操作并且生成输出来执行指令的程序以执行本发明的功能。本 发明能够有利地在一个或多个计算机程序中实现,一个或多个计算机程序在包括至少一个 可编程处理器、至少一个输入设备以及至少一个输出设备的可编程系统上可执行,至少一 个可编程处理器耦合以从数据存储系统接收数据和指令,以及传输数据和指令到数据存储 系统。每个计算机程序能够以高级程序或者面向对象的编程语言,或者如果期望的话以汇 编或机器语言实现;并且在任何情况下,语言可以是被编译或解释的语言。作为示例,适当 的处理器包括通用和专用微处理器。一般地,处理器将从只读存储器和/或随机存取存储器 接收指令和数据。一般地,计算机将包括用于存储数据文件的一个或多个海量存储设备;这 种设备包括磁盘,诸如内部硬盘和可移除磁盘;磁光盘;以及光盘。适合于有形地实施计算 机程序指令和数据的存储设备包括所有形式的非易失性存储器,作为示例包括半导体存储 设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内部硬盘和可移除磁盘;磁光盘;以及CD-ROM盘。前述的任何能够由ASIC(专用集成电路)以及其他形成的硬件所补充,或者合并在 ASIC以及其他形成的硬件中。
【主权项】
1. 一种用于训练用于紧凑人脸表示的深度学习神经网络的计算机实现的方法,该方法 包括: 将人脸图像呈现到神经网络; 所述神经网络处理人脸图像以产生人脸图像的紧凑表示,其中所述紧凑表示具有不多 于64个维度; 处理所述紧凑表示以产生度量的估计值,关于该度量的实际值是已知的;以及 基于与所述度量的所述实际值相比较的所述度量的所述估计值来训所述练神经网络。2. 根据权利要求1所述的计算机实现的方法,其中所述紧凑表示具有预先确定的维度 数量。3. 根据权利要求1所述的计算机实现的方法,其中对所述紧凑表示进行量化。4. 根据权利要求3所述的计算机实现的方法,其中训练所述神经网络包括将所述紧凑 表示量化建模成舍入误差项。5. 根据权利要求3所述的计算机实现的方法,其中训练所述神经网络包括将所述紧凑 表示量化建模成随机变量并且使用动态编程基于所述随机变量计算预期值。6. 根据权利要求3所述的计算机实现的方法,其中训练所述神经网络包括基于目标函 数训练神经网络,该目标函数包括标准偏差项。7. 根据权利要求3所述的计算机实现的方法,其中对于所述紧凑表示的每个维度,将所 述紧凑表示量化成单个位。8. 根据权利要求3所述的计算机实现的方法,其中对于所述紧凑表示的每个维度,将所 述紧凑表示量化成多个位。9. 根据权利要求3所述的计算机实现的方法,其中对于所述紧凑表示的不同维度,将所 述紧凑表示量化成不同数量的位。10. 根据权利要求1所述的计算机实现的方法,其中所述紧凑表示的每个不多于64字 To11. 根据权利要求10所述的计算机实现的方法,其中所述神经网络是在所述紧凑表示 的每个具有不多于64字节的条件下训练的。12. 根据权利要求1所述的计算机实现的方法,其中所述神经网络是金字塔卷积神经网 络(CNN)013. 根据权利要求12所述的计算机实现的方法,其中所述金字塔CNN包括至少N个共享 层,其中N多2,以及耦合到第N个共享层的至少一个非共享层,并且训练所述金字塔CNN包 括: 以CNN层级1至N的次序训练CNN层级1至N,其中CNN层级η包括用于接收人脸图像的输 入、金字塔CNN的前η个共享层、金字塔CNN的非共享层以及产生所述人脸图像的所述紧凑表 示的输出;其中输入耦合到η个共享层的第一个;每个共享层包括卷积层、非线性层和下采 样层;η个共享层的第η个耦合到非共享层;并且非共享层耦合到输出; 其中训练CNN层级η包括: 将人脸图像呈现到输入,每个人脸图像在输出处产生相应的紧凑表示; 处理所述紧凑表示以产生度量的估计值,关于该度量的实际值是已知的;以及 基于与所述度量的所述实际值相比较的所述度量的所述估计值,适配第η个共享层和 非共享层。14. 根据权利要求13所述的计算机实现的方法,其中: 将人脸图像呈现到所述输入包括将成对的人脸图像呈现到所述输入,其中已知每对中 的两个人脸图像是否关于同一人; 所述度量是每对的两个人脸图像是否关于同一人;以及 适配包括基于与每对的两个人脸图像实际上是否关于同一人的已知值相比较的该两 个人脸图像是否关于同一人的估计度量,适配第η个共享层和非共享层,并且还包括不适配 前(η-1)个共享层。15. -种处理人脸图像的方法,该方法包括: 将人脸图像呈现到根据权利要求1所述的计算机实现的方法而训练的深度学习神经网 络;以及 在所述深度学习神经网络的输出处获得所述人脸图像的紧凑表示。16. 根据权利要求15所述的计算机实现的方法,还包括: 使用所述人脸图像的所述紧凑表示执行人脸识别。17. 根据权利要求16所述的计算机实现的方法,还包括: 使用所述人脸图像的所述紧凑表示对大规模人脸搜索确定优先次序;以及 基于所述优先次序执行人脸图像的进一步搜索。18. 根据权利要求15所述的计算机实现的方法,还包括: 使用所述人脸图像的所述紧凑表示对所述人脸图像进行分类。19. 根据权利要求18所述的计算机实现的方法,其中使用所述紧凑表示包括: 使用所述紧凑表示作为到用于所述分类的查找表中的索引。20. -种被配置为存储程序代码的非临时性计算机可读介质,程序代码包括用于训练 关于紧凑人脸表示的深度学习神经网络的指令,当由处理器执行时,指令使得处理器执行 方法,该方法包括: 将人脸图像呈现到神经网络; 神经网络处理所述人脸图像以产生所述人脸图像的紧凑表示,其中所述紧凑表示具有 不多于64个维度; 处理所述紧凑表示以产生度量的估计值,关于该度量的实际值是已知的;以及 基于与所述度量的所述实际值相比较的所述度量的所述估计值来训练所述神经网络。
【文档编号】G06K9/00GK105960647SQ201480074938
【公开日】2016年9月21日
【申请日】2014年5月29日
【发明人】印奇, 曹志敏, 姜宇宁, 范浩强
【申请人】北京旷视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1