基于球哈希二值编码的人脸识别方法及装置的制造方法

文档序号:10570389阅读:483来源:国知局
基于球哈希二值编码的人脸识别方法及装置的制造方法
【专利摘要】本发明提供一种基于球哈希二值编码的人脸识别方法。该方法包括提取训练样本中的多个训练人脸图像的各个局部块中每个像素点对应的像素差值向量;根据球哈希优化算法得到球哈希函数的参数;根据球哈希函数的参数对像素差值向量进行二值编码,得到第一二值向量;对第一二值向量进行聚类,得到多个视觉单词;提取测试人脸图像的局部块中每个像素点对应的像素差值向量;根据球哈希函数的参数对测试人脸图像对应的多个像素差值向量进行二值编码,得到第二二值向量;根据视觉单词对第二二值向量进行特征表示得到特征向量,并根据特征向量进行人脸识别。本发明存储量小,计算速度快,对局部变化的敏感度较低,而且数据适应性较高,数据描述能力较强。
【专利说明】
基于球哈希二值编码的人脸识别方法及装置
技术领域
[0001] 本发明涉及人脸识别技术领域,尤其涉及一种基于球哈希二值编码的人脸识别方 法及装置。
【背景技术】
[0002] 人脸识别技术,是一种通过分析比较人脸视觉特征信息进行身份鉴别的计算机技 术。人脸识别算法可以分为:基于全局特征的算法和基于局部特征的算法。其中,基于全局 特征的人脸识别算法对于局部变化较为敏感,如:表情、遮挡等。而基于局部特征的人脸识 别算法则是将图像视为多个局部块的组合,分别从每个局部块中提取局部特征,再将这些 局部特征拼接成为一个长向量,从而表示一幅人脸图像。该类算法对于局部变化较为鲁棒。 因此,基于局部特征的人脸识别算法的应用较为广泛。
[0003] 现有的基于局部特征的人脸识别算法中包括基于特征学习的人脸识别算法,是通 过从实际数据中来学习算法的组织形式或先验知识,即数据依赖型的算法。因此只需要训 练数据与实际应用场景中的数据具有较高的一致性,在加入少量甚至不加入先验知识的情 况下,就能够应对实际场景中出现的类内变化。而现有的基于特征学习的人脸识别算法大 多是基于实值的特征表示,即首先利用设计的目标函数从输入的人脸图像中提取基于实数 值的人脸特征表示,然后利用模式识别方法判断输入图像到底属于哪个人。
[0004] 但该类算法存在以下缺点:首先,由于特征是基于实数值的,当外界因素发生变化 时,学习得到的特征也必然会随之变化,当变化的程度超过某一阈值时,分类器就会将两个 原本属于同一个人的特征识别为不同人。即该类算法对于人脸图像的局部变化较为敏感, 即提取得到的人脸特征向量的数值容易随着图像的变化而随之变化。而且,基于实值的特 征学习算法的时间、空间复杂度高。

【发明内容】

[0005] 本发明提供一种基于球哈希二值编码的人脸识别方法及装置,以克服现有技术中 基于实值的特征学习算法的时间、空间复杂度高的问题。
[0006] 第一方面,本发明提供一种基于球哈希二值编码的人脸识别方法,包括:
[0007] 分别将训练样本中的多个训练人脸图像进行局部块的划分,得到所述训练人脸图 像对应的多个局部块,并提取各个所述训练人脸图像的各个所述局部块中每个像素点对应 的像素差值向量;
[0008] 根据所述像素差值向量和球哈希优化算法得到球哈希函数的参数;所述球哈希函 数的参数包括:中心点和半径;
[0009] 根据所述球哈希函数的参数对所述像素差值向量进行二值编码,得到所述像素差 值向量对应的第一二值向量;
[0010] 对所述第一二值向量进行聚类,获取聚类得到的多个视觉单词;
[0011]对测试人脸图像进行局部块的划分,得到所述测试人脸图像对应的多个局部块, 并提取测试人脸图像中每个所述局部块中每个像素点对应的像素差值向量;
[0012] 根据所述球哈希函数的参数对所述测试人脸图像对应的多个像素差值向量进行 二值编码,得到所述像素差值向量对应的第二二值向量;
[0013] 根据所述视觉单词对所述第二二值向量进行特征表示得到特征向量,并根据所述 特征向量进行人脸识别。
[0014] 第二方面,本发明提供一种基于球哈希二值编码的人脸识别装置,包括:
[0015] 第一提取模块,用于分别将训练样本中的多个训练人脸图像进行局部块的划分, 得到所述训练人脸图像对应的多个局部块,并提取各个所述训练人脸图像的各个所述局部 块中每个像素点对应的像素差值向量;
[0016] 优化模块,用于根据所述像素差值向量和球哈希优化算法得到球哈希函数的参 数;所述球哈希函数的参数包括:中心点和半径;
[0017] 第一编码模块,用于根据所述球哈希函数的参数对所述像素差值向量进行二值编 码,得到所述像素差值向量对应的第一二值向量;
[0018] 聚类模块,用于对所述第一二值向量进行聚类,获取聚类得到的多个视觉单词;
[0019] 第二提取模块,用于对测试人脸图像进行局部块的划分,得到所述测试人脸图像 对应的多个局部块,并提取测试人脸图像中每个所述局部块中每个像素点对应的像素差值 向量;
[0020] 第二编码模块,用于根据所述球哈希函数的参数对所述测试人脸图像对应的多个 像素差值向量进行二值编码,得到所述像素差值向量对应的第二二值向量;
[0021 ]处理模块,用于根据所述视觉单词对所述第二二值向量进行特征表示得到特征向 量,并根据所述特征向量进行人脸识别。
[0022] 本发明基于球哈希二值编码的人脸识别方法及装置,首先提取训练样本中的多个 训练人脸图像的局部块中的像素点对应的像素差值向量,然后根据球哈希优化算法得到球 哈希函数的参数;进一步的,根据所述球哈希函数的参数对所述像素差值向量进行二值编 码,得到所述像素差值向量对应的第一二值向量;然后,对所述第一二值向量进行聚类,获 取聚类得到的多个视觉单词;进一步的,提取测试人脸图像的局部块中的像素点对应的像 素差值向量;根据所述球哈希函数的参数对所述测试人脸图像对应的多个像素差值向量进 行二值编码,得到所述像素差值向量对应的第二二值向量;根据所述视觉单词对所述第二 二值向量进行特征表示得到特征向量,并根据所述特征向量进行人脸识别,由于采用了二 值编码,因此计算存储消耗量小,计算速度快,而且对局部变化的敏感度较低,而且利用无 监督的聚类算法将利用球哈希二值编码算法得到的二值向量进一步表示为词袋模型,数据 适应性较高,而且由于采用的是球哈希算法,因此数据描述能力较强。
【附图说明】
[0023] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
[0024] 图1为本发明基于球哈希二值编码的人脸识别方法一实施例的流程示意图;
[0025] 图2为本发明方法一实施例的实现流程示意图;
[0026] 图3为本发明方法一实施例的像素差值向量提取示意图;
[0027] 图4为本发明基于球哈希二值编码的人脸识别装置一实施例的结构示意图。
【具体实施方式】
[0028] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 本发明实施例的方法,可应用于所有自然条件(即非约束条件)下的人脸识别任 务。如:在人机交互系统中的用户身份识别、表情识别等;人员密集场所下的黑名单监控和 VIP监控等;在社交网络中,含有人脸的上传照片中的用户标签推荐等。由于本发明利用基 于球哈希二值编码的人脸识别算法,算法的运算速度极快,可完成某些非实时的人脸识别 算法无法完成的识别任务。
[0030] 图1为本发明基于球哈希二值编码的人脸识别方法一实施例的流程示意图。图2为 本发明方法一实施例的实现流程示意图。图3为本发明方法一实施例的像素差值向量提取 示意图。如图1、图2所示,本实施例的方法,包括:
[0031] 步骤101、分别将训练样本中的多个训练人脸图像进行局部块的划分,得到所述训 练人脸图像对应的多个局部块,并提取各个所述训练人脸图像的各个所述局部块中每个像 素点对应的像素差值向量;
[0032] 训练样本中包括多个训练人脸图像,即至少包括两个训练人脸图像。
[0033] 可选地,提取局部块中每个像素点对应的像素差值向量具体可以通过如下方式实 现:
[0034]以每个像素点为中心,以R为半径,提取位于所述像素点四周的邻域像素点,并以 顺时针方向依次将所述邻域像素点的像素值与所述像素点的像素值进行差值运算,得到所 述像素点对应的N维像素差值向量;R为预设值;N= (2 XR+l) X (2 XR+l)-1。
[0035] 具体的,如图3所示,该局部块中的中心像素块中像素点g对应的像素差值向量的 提取过程如下:
[0036] 以像素点g为中心点,以R=1为半径,提取位于该像素点四周的邻域像素点,并以 顺时针方向依次将邻域像素点的像素值与该像素点的像素值进行差值运算,得到的N=8维 像素差值向量为(a-g,f-g,k-g,1 -g,m-g,h-g,c-g,b-g)。
[0037] 该中心像素块中的其他像素点对应的像素差值向量如图3中所示,即像素差值矩 阵的每一列为一个像素点对应的像素差值向量,具体提取过程与上述过程类似,此处不再 赘述。
[0038] 图3中的邻域像素块分别表示了像素点g、q、s和i的邻域像素块。
[0039] R取值范围为大于0的整数。
[0040] 图2中的像素差值向量只列出了一个像素点的像素差值向量(_8,7,3,0,-2,-1,9, 2)〇
[0041] 步骤102、根据所述像素差值向量和球哈希优化算法得到球哈希函数的参数;所述 球哈希函数的参数包括:中心点和半径;
[0042] 利用球哈希优化算法,计算球哈希函数中每个球哈希函数的参数,即每个超球体 的中心点和半径。
[0043] 步骤103、根据所述球哈希函数的参数对所述像素差值向量进行二值编码,得到所 述像素差值向量对应的第一二值向量;
[0044] 可选地,步骤103具体可以采用如下方式实现:
[0045] 将所述像素差值向量分别代入所述球哈希函数中,将所述球哈希函数的值作为所 述第一二值向量对应位置的元素。
[0046] 如图2所示,假设球哈希函数的个数为4个,则将像素差值向量分别代入4个球哈希 函数中,将球哈希函数的值作为第一二值向量对应位置的元素,即得到向量(〇,1,1,〇)。 [0047]例如,假设在二维空间中,我们学习得到了三个球哈希函数(即三个圆形A,B,C), 假设它们的半径均为1,中心点分别为4:(-1,1),8:(0,0)和(: :(1,-1)。那么,基于实值的像 素差值向量5)不在圆A,B的范围内,在圆C的范围内,因此,它对应的二值向量为(0, 〇,1);同理,(-V 2/2, V 2/2)位于圆A和B的范围内,不在圆C的范围内,因此,它对应的二值 向量为(1,1,〇);再比如:(-1,-1)不在任何一个球的范围内,故其二值向量为(〇,〇,〇)。
[0048] 步骤104、对所述第一二值向量进行聚类,获取聚类得到的多个视觉单词;
[0049] 可选的,可以利用K-Means算法对第一二值向量进行聚类,分别将聚类得到的k个 类别中的几何中心点作为所述视觉单词;k为预设的大于0的整数。
[0050] 例如,以二维空间为例,二维空间共有4个二值向量,即(0,0),(0,1),(1,0)和(1, 1 )。利用K-Means方式聚类,可以将(0,0),(0,1)聚成一堆,将(1,0),(1,1)聚成一堆。当然也 可以(0,0),(1,0)-堆,另两个一堆。反正就是将距离近的多个二值向量聚在一起。并取这 一堆中的几何中心点作为视觉单词,在我们的例子中,可以取(〇,〇. 5)和(1,0.5)作为单词。 这样,任何二值向量均可以用这两个单词线性表示;高维空间类似。
[0051] 本发明实施例中还可以利用无监督的聚类算法进行聚类。
[0052]步骤105、对测试人脸图像进行局部块的划分,得到所述测试人脸图像对应的多个 局部块,并提取测试人脸图像中每个所述局部块中每个像素点对应的像素差值向量;
[0053]该步骤中提取像素差值向量的过程与步骤101中的相同,此处不再赘述。
[0054]步骤106、根据所述球哈希函数的参数对所述测试人脸图像对应的多个像素差值 向量进行二值编码,得到所述像素差值向量对应的第二二值向量;
[0055] 该步骤中而孩子编码的过程与步骤103中的相同,此处不再赘述。
[0056] 步骤107、根据所述视觉单词对所述第二二值向量进行特征表示得到特征向量,并 根据所述特征向量进行人脸识别。
[0057] 具体的,可以根据所述视觉单词对所述第二二值向量进行线性表示,即将多个视 觉单词(多个二值向量)的加权和作为第二二值向量的特征向量,并利用多个像素点对应的 特征向量进行人脸识别。
[0058] 权重的取值可以采用如下的方式:
[0059] 将每一个视觉单词(即二值向量)与其他所有的视觉单词计算欧氏距离,得到欧氏 距离最小值的个数,进行归一化,得到各个视觉单词对应的权重。
[0060] 综上所述,本发明实施例的人脸识别方法,具体可分为训练阶段和测试阶段。如图 2所示,其中,在训练阶段中,我们首先从训练样本中的每个训练人脸图像的局部块中提取 每个像素点对应的像素差值向量;然后利用球哈希优化算法,计算球哈希函数中每个球哈 希函数的参数(即每个超球体的中心点和半径);最后,利用计算得到的球哈希参数,分别将 训练样本中提取的各个像素差值向量编码为二值向量的形式,即得到多个第一二值向量, 并利用聚类算法(如K-Means算法)对多个第一二值向量进行聚类,得到聚类的多个类别分 别对应的视觉单词,形成词袋模型。
[0061]在测试阶段中,我们同样从测试人脸图像的局部块中提取每个像素点对应的像素 差值向量;然后利用训练阶段计算得到的球哈希参数,将测试人脸图像中提取的像素差值 向量编码为二值向量的形式,即得到多个第二二值向量;最后,利用训练阶段学习得到的词 袋模型,对第二二值向量进行特征表示。
[0062]本发明实施例的方法在以下方面均得到了优化:
[0063] 1、存储量方面。由于存储一个二值数据只需要1个字节,是存储一个double类型的 实值数据所需空间的1/8。且在使用稀疏存储的情况下,存储大规模数据所需的空间会进一 步减少。在使用本发明的基础上,利用64个比特存储一副图像,对于一个拥有64G内存的工 作站,可以存储近10亿张人脸图像,几乎能够满足现有的所有人脸识别应用。
[0064] 2、计算速度方面。二值运算只需要对0和1进行数值计算,而计算机底层的逻辑电 路可以极快地完成这项运算。因此,使用二值编码能够加快人脸识别算法的训练过程和测 试过程。本发明比现有水平的基于实值的人脸识别算法快近10倍。
[0065] 3、人脸图像中的局部变化是否敏感方面。本发明是基于二值编码的人脸识别算 法,当人脸图像中像素点的值发生变化时,基于二值编码的人脸特征向量有很大可能保持 不变。从而保证了类内差异减小,类间差异增加。实验结果表明,本发明在面对各种应用场 景下的人脸识别问题时,均获得了比基于实值编码的人脸识别算法更为优秀的识别性能。
[0066] 4、先验知识的依赖性方面。由于本发明实施例的算法是通过从训练样本中学习得 到特征向量,从而避免了依赖于先验知识的准确性,只要训练样本中存在的类内变化与实 际应用场景中的具有较高的一致性,即使不加入先验先验知识,依然可以得到能够准确描 述人脸图像的特征。
[0067] 5、数据适应性方面。本发明利用无监督的聚类算法将利用球哈希二值编码算法得 到的二值向量进一步表示为词袋模型。词袋模型中的每个"单词"即为聚类算法得到的聚类 中心。使用聚类中心表示基于二值的特征向量,使得该发明在保存了对人脸图像中的局部 变化具有鲁棒性的前提下,还能够为算法模型提供更优秀的数据适应性。从而使得在某一 应用场景下训练得到的算法模型,可以直接应用于其他应用场景下,而不需要做出任何改 变。
[0068] 6、描述能力方面。本发明利用球哈希算法,该算法在高维原始空间中具有较强的 空间封闭能力。对提取得到的像素差值向量进行有效编码。因此,本发明利用的球哈希算 法,能够将相同人的人脸图像特征聚集在一起,同时将不同人的人脸图像特征尽可能地分 隔。相比于现有技术而言,本发明具有更强的结构信息(包括:底层结构信息和中高层结构 信息)描述能力。
[0069] 本实施例提供的方法,通过基于球哈希的二值编码算法对人脸图像进行特征表 示,使人脸识别算法能够同时具有计算存储消耗量小,计算速度快和对人脸图像中的局部 变化具有鲁棒性等特点。并且利用K-Means等无监督聚类算法,对学习得到的基于二值的人 脸特征向量进行聚类,并得到相应的词袋模型。使得本发明能够对于不同类型的数据(即, 不同应用场景下的数据)具有较好的适应性。
[0070] 本实施例提供的方法,首先提取训练样本中的多个训练人脸图像的局部块中的像 素点对应的像素差值向量,然后根据球哈希优化算法得到球哈希函数的参数;进一步的,根 据所述球哈希函数的参数对所述像素差值向量进行二值编码,得到所述像素差值向量对应 的第一二值向量;然后,对所述第一二值向量进行聚类,获取聚类得到的多个视觉单词;进 一步的,提取测试人脸图像的局部块中的像素点对应的像素差值向量;根据所述球哈希函 数的参数对所述测试人脸图像对应的多个像素差值向量进行二值编码,得到所述像素差值 向量对应的第二二值向量;根据所述视觉单词对所述第二二值向量进行特征表示得到特征 向量,并根据所述特征向量进行人脸识别,由于采用了二值编码,因此计算存储消耗量小, 计算速度快,而且对局部变化的敏感度较低,而且利用无监督的聚类算法将利用球哈希二 值编码算法得到的二值向量进一步表示为词袋模型,数据适应性较高,而且由于采用的是 球哈希算法,因此数据描述能力较强。
[0071] 在上述实施例的基础上,本实施例中,步骤102具体可以通过如下方式实现:
[0072]根据如下公式(1)和公式(2)的目标函数进行优化,使得所述公式(1)的取值为n/ 2,所述公式⑵的取值为n/4,得到第i个球哈希函数的中心点pf = pfi+fi;
[0073] vi= | sg | hi(sg) =+1, l^g^n | ; (1)
[0074] vij= |sg|hi(sg)=+l,hj(sg)=+l,l^g^n| ;(2)
[0075] 其中
[0076]其中,| ? |表示变量的非零元素的数量,所述sg为像素差值向量,n表示像素差值 向量的个数;lu(Sg)和h」(Sg)分别表示参数为&的第i个和第j个球哈希函数;i的取值范围为 1至K;j的取值范围为1至K-1;K为大于1的整数; Ple表示在第c次迭代时的第i个球哈希函数 的中心点;pf1表示在第c-1次迭代时的第i个球哈希函数的中心点;P/表示在第c次迭代时 的第j个球哈希函数的中心点;c为大于0的整数;pf 1在。=1时的初始值为预设的初始值。
[0077]具体地,球哈希优化得到的数据具有平衡的比特分布利于数据携带更多的具有判 别性的消息,且哈希函数之间的独立则有利于平衡的二值比特分布。为了实现这两个目标, 我们提出了如下的目标函数:
[0079] 其中,lu(X)表示第i个球哈希函数。h」(X)表示第j个球哈希函数。x表示像素差值向 量。为了使学习得到的二值编码数据能够尽可能地满足上述条件,我们使用两阶段的迭代 优化算法,分别对空间中的超球体的中心点和半径进行优化。在优化其中一个变量时,使另 一个变量保持不变,通过多次迭代运算,最终求得满足上述条件的超球体。为了清楚地表示 优化的计算过程,我们设置两个变量来描述上述的目标函数:
[0080] vi= | sg | hi(sg) =+1, l^g^n | ; (1)
[0081] vij= |sg|hi(sg)=+l,hj(sg)=+l,l^g^n| ;(2)
[0082] 根据上述公式(1)和公式(2)进行优化,使得所述公式(1)的取值为n/2,所述公式 ⑵的取值为n/4,得到第i个球哈希函数的中心点pf = p^+fi;
[0083]其中,| ? |表示变量的非零元素的数量,所述sg为像素差值向量,n表示像素差值 向量的个数;lu(Sg)和h」(Sg)分别表示参数为&的第i个和第j个球哈希函数;i的取值范围为 1至K;j的取值范围为1至K-U Vl描述的是在训练样本中的像素差值向量的集合中对于第i 个球哈希函数,有多少个数值为+1的像素差值向量,它用于描述式(a)中的变化情况;描 述的是在训练样本中的像素差值向量的集合中对于第i个和第j个球哈希函数的数据点对 (像素差值向量对),有多少对数据点(数据点即像素差值向量)满足数值同时为+1的情况, 它用于描述式(b)中的变化情况。为了求解上述目标函数,具体的优化过程如下所示:
[0084]首先,假设半径固定,计算中心点。
[0085]在这种情况下,我们即通过调整中心点的数值,使得学习得到的参数尽可能满足 式(2)中的目标函数,即使变量的数值尽可能接近n/4。对于任意一对第i个和第j个球哈 希函数(即两个超球体i和j)而言,当vu的数值大于n/4时,表明两个超球体距离过近,需要 一个"排斥力"将二者分来;相反,则需要一个"吸引力"将二者拉近。如果万有引力定律一 样,超球体j对于超球体i的吸引力或排斥力如下定义:
[0087]其中,pf表示在第c次迭代时的第i个球哈希函数的中心点;p/表示在第c次迭代 时的第j个球哈希函数的中心点。故所有其他超球体中心对超球体i的合力如下所示:
[0089] 故,第i个球哈希函数的中心点即可被更新为
[0090] 其中,pf1在。=1时的初始值为预设的初始值,即也可以采用随机的初始值。
[0091] 在上述实施例的基础上,根据已经求出的中心点计算半径:
[0092] 根据所述第i个球哈希函数的中心点pf得到所述第i个球哈希函数的半径为ri = d (pi , Sn/2 );
[0093]其中,sn/2表示分别将n个像素差值向量与第i个球哈希函数的中心点的距离进行 升序排列之后的第n/2个像素差值向量;
[0094] d( ?)表示计算欧氏距离的函数。
[0095]具体的,假设中心点固定,即已经求出中心点,然后计算半径。
[0096]在这种情况下,我们即通过调整中心点的数值,使得学习得到的参数尽可能满足 式(1)中的目标函数,即使变量Vl的数值尽可能接近n/2。在各个像素差值向量已经根据其 对于中心点的距离进行升序排序的条件下,我们可以简单地将第i个球哈希函数的半径设 置为 ri = d(Ple,Sn/2),其中d( ?)表示计算欧氏距离的函数。
[0097]其中,在实际应用中,虽然从理论上来说,上述目标函数(a)和(b)能够得到最小的 量化误差,即使得学习得到的二值向量与原有特征向量之间的差值最小。但该目标函数会 使得迭代过程变得漫长,又几乎没有提高人脸识别算法的识别准确率。因此,我们考虑利用 表示作为迭代过程停止的指示器。
[0098] 具体地,理想条件下,Vi,」的均值和标准差分别为n/4和0。我们考虑当Vi, j的均值和 标准差的误差分别为理想情况的10%和15%时,即可以认为该迭代过程已足够收敛,从而 停止迭代过程。实验结果表明,在几乎不损失精度的情况下,能够加速上述方法的迭代过 程。
[0099] 在上述实施例的基础上,由于在上述的具体实施例中,将第i个球哈希函数的半径 设置为^icKpAsw)。但这种半径赋值方法在~ /2附近数据点比较密集的情况下难以获得 很好的区分效果。因此,本实施例中,可以根据如下方式计算半径:
[0100] 根据所述第i个球哈希函数的中心点pf以及公式(3)得到第i个球哈希函数的半径 ri;
[0102]其中,根据公式(4)得到j的取值;
[0105] ~+1表示分别将n个像素差值向量与第i个球哈希函数的中心点的距离进行升序排 列之后的第j+1个像素差值向量;^表示分别将n个像素差值向量与第i个球哈希函数的中 心点的距离进行升序排列之后的第j个像素差值向量;
[0106] a为预设值。
[0107]具体的,在实际应用中,我们可以放松对式(a)的要求,获得基于最大边缘的超球 体的半径。同样是在各个像素差值向量已经根据其对于中心点的距离进行升序排序的条件 下,我们选择靠近sn/2点附近的一系列数据点,用于最大边缘的优化。
[0109] 其中,a用于控制对于式(a)的松弛程度,可以为预设值。而最大化边缘的数据点可 定义为:
[0110] /=argrnax[t/(;;/ ,.y;+l)-^/(/;; ,5,.)] ; (4) j . J
[0111] 即求使得cKpAsj+d-cKpAsj)最大的j的取值,且jGj。
[0112] 因此,最终基于最大边缘的超球体半径为:
[0114] 需要说明的是,对于上述具体实施例而言,由于其基本相应于图1所示的方法实施 例,所以相关之处参见图1所示方法实施例的部分说明即可。
[0115] 图4为本发明基于球哈希二值编码的人脸识别装置一实施例的结构示意图。如图4 所示,本实施例的基于球哈希二值编码的人脸识别装置,包括:
[0116] 第一提取模块401,用于分别将训练样本中的多个训练人脸图像进行局部块的划 分,得到所述训练人脸图像对应的多个局部块,并提取各个所述训练人脸图像的各个所述 局部块中每个像素点对应的像素差值向量;
[0117] 优化模块402,用于根据所述像素差值向量和球哈希优化算法得到球哈希函数的 参数;所述球哈希函数的参数包括:中心点和半径;
[0118] 第一编码模块403,用于根据所述球哈希函数的参数对所述像素差值向量进行二 值编码,得到所述像素差值向量对应的第一二值向量;
[0119] 聚类模块404,用于对所述第一二值向量进行聚类,获取聚类得到的多个视觉单 词;
[0120] 第二提取模块405,用于对测试人脸图像进行局部块的划分,得到所述测试人脸图 像对应的多个局部块,并提取测试人脸图像中每个所述局部块中每个像素点对应的像素差 值向量;
[0121] 第二编码模块406,用于根据所述球哈希函数的参数对所述测试人脸图像对应的 多个像素差值向量进行二值编码,得到所述像素差值向量对应的第二二值向量;
[0122] 处理模块407,用于根据所述视觉单词对所述第二二值向量进行特征表示得到特 征向量,并根据所述特征向量进行人脸识别。
[0123] 可选地,作为一种可实施的方式,所述第一提取模块401,具体用于:
[0124] 以每个像素点为中心,以R为半径,提取位于所述像素点四周的邻域像素点,并以 顺时针方向依次将所述邻域像素点的像素值与所述像素点的像素值进行差值运算,得到所 述像素点对应的N维像素差值向量;R为预设的大于0的整数;N= (2 XR+1) X (2 XR+1)-1。
[0125] 可选地,作为一种可实施的方式,所述第二提取模块405,具体用于:
[0126] 以每个像素点为中心,以R为半径,提取位于所述像素点四周的邻域像素点,并以 顺时针方向依次将所述邻域像素点的像素值与所述像素点的像素值进行差值运算,得到所 述像素点对应的N维像素差值向量;R为预设的大于0的整数;N= (2 XR+1) X (2 XR+1)-1。
[0127] 可选地,作为一种可实施的方式,优化模块402,具体用于:
[0128] 根据如下公式(1)和公式(2)的目标函数进行优化,使得所述公式(1)的取值为n/ 2,所述公式⑵的取值为n/4,得到第i个球哈希函数的中心点pf = pfi+fi;
[0129] vi= | sg | hi(sg) =+1, l^g^n | ; (1)
[0130] vij= |sg|hi(sg)=+l,hj(sg)=+l,l^g^n| ;(2)
[0131] 其中:
[0132] 其中,| ? |表示变量的非零元素的数量,所述Sg为像素差值向量,n表示像素差值 向量的个数;lu( Sg)和h」(Sg)分别表示参数为&的第i个和第j个球哈希函数;i的取值范围为 1至K;j的取值范围为1至K_1;K为大于1的整数; Ple表示在第c次迭代时的第i个球哈希函数 的中心点;pf1表示在第c-1次迭代时的第i个球哈希函数的中心点;P/表示在第c次迭代时 的第j个球哈希函数的中心点;c为大于0的整数;pf 1在。=1时的初始值为预设的初始值。
[0133] 可选地,作为一种可实施的方式,优化模块402,具体用于:
[0134] 根据所述第i个球哈希函数的中心点pf得到所述第i个球哈希函数的半径为ri = d (pi , Sn/2 );
[0135] 其中,sn/2表示分别将n个像素差值向量与第i个球哈希函数的中心点的距离进行 升序排列之后的第n/2个像素差值向量;
[0136] d( ?)表示计算欧氏距离的函数。
[0137] 可选地,作为一种可实施的方式,优化模块402,具体用于:
[0138] 根据所述第i个球哈希函数的中心点Ple以及公式(3)得到第i个球哈希函数的半径 ri;
[0140] 其中,根据公式(4)得到j的取值;
[0141] ./ = argmax[//(/;; ,5/+,)-1/{/;;,5,)], /&J: (4)
[0142] 其中
[0143] Sj+1表示分别将n个像素差值向量与第i个球哈希函数的中心点的距离进行升序排 列之后的第j+1个像素差值向量;^表示分别将n个像素差值向量与第i个球哈希函数的中 心点的距离进行升序排列之后的第j个像素差值向量;
[0144] a为预设值。
[0145] 可选地,作为一种可实施的方式,第一编码模块403,具体用于:
[0146] 将所述像素差值向量分别代入所述球哈希函数中,将所述球哈希函数的值作为所 述第一二值向量对应位置的元素。
[0147] 可选地,作为一种可实施的方式,第二编码模块406,具体用于:
[0148] 将所述像素差值向量分别代入所述球哈希函数中,将所述球哈希函数的值作为所 述第二二值向量对应位置的元素。
[0149] 可选地,作为一种可实施的方式,聚类模块404,用于:
[0150] 利用K-Means算法对所述第一二值向量进行聚类,分别将聚类得到的k个类别中的 几何中心点作为所述视觉单词;k为预设的大于0的整数。
[0151] 可选地,作为一种可实施的方式,所述处理模块402,具体用于:
[0152] 将所述视觉单词的加权和作为特征表示得到的特征向量。
[0153] 本实施例的装置,可以用于执行如图1所示方法实施例的技术方案,其实现原理和 技术效果类似,此处不再赘述。
[0154] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光 盘等各种可以存储程序代码的介质。
[0155] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依 然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进 行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术 方案的范围。
【主权项】
1. 一种基于球哈希二值编码的人脸识别方法,其特征在于,包括: 分别将训练样本中的多个训练人脸图像进行局部块的划分,得到所述训练人脸图像对 应的多个局部块,并提取各个所述训练人脸图像的各个所述局部块中每个像素点对应的像 素差值向量; 根据所述像素差值向量和球哈希优化算法得到球哈希函数的参数;所述球哈希函数的 参数包括:中心点和半径; 根据所述球哈希函数的参数对所述像素差值向量进行二值编码,得到所述像素差值向 量对应的第一二值向量; 对所述第一二值向量进行聚类,获取聚类得到的多个视觉单词; 对测试人脸图像进行局部块的划分,得到所述测试人脸图像对应的多个局部块,并提 取测试人脸图像中每个所述局部块中每个像素点对应的像素差值向量; 根据所述球哈希函数的参数对所述测试人脸图像对应的多个像素差值向量进行二值 编码,得到所述像素差值向量对应的第二二值向量; 根据所述视觉单词对所述第二二值向量进行特征表示得到特征向量,并根据所述特征 向量进行人脸识别。2. 根据权利要求1所述的方法,其特征在于,提取各个所述训练人脸图像的各个所述局 部块中每个像素点对应的像素差值向量,包括: 以每个像素点为中心,以R为半径,提取位于所述像素点四周的邻域像素点,并以顺时 针方向依次将所述邻域像素点的像素值与所述像素点的像素值进行差值运算,得到所述像 素点对应的N维像素差值向量;R为预设的大于O的整数;N=(2XR+1)X(2XR+1)-1。3. 根据权利要求1或2所述的方法,其特征在于,根据所述像素差值向量和球哈希优化 算法得到球哈希函数的参数,包括: 根据如下公式(1)和公式(2)的目标函数进行优化,使得所述公式(1)的取值为n/2,所 述公式⑵的取值为n/4,得到第i个球哈希函数的中心点pf = Pi=1+;^; Vi= |sg|hi(sg)=+l,l^g^n| ; (I) Vij= |sg|hi(sg)=+l,hj(sg)=+l,l^g^n| ; (2)其中,I · I表示变量的非零元素的数量,所述sg为像素差值向量,η表示像素差值向量的 个数;hi(sg)和hj(sg)分别表示参数为Sg的第i个和第j个球哈希函数;i的取值范围为1至Κ; j 的取值范围为1至K-I ;K为大于1的整数;pf表示在第c次迭代时的第i个球哈希函数的中心 点;Pf1表示在第c-1次迭代时的第i个球哈希函数的中心点;P/表示在第c次迭代时的第j 个球哈希函数的中心点;c为大于O的整数;Pf1在。=1时的初始值为预设的初始值。4. 根据权利要求3所述的方法,其特征在于,还包括: 根据所述第i个球哈希函数的中心点Pie得到所述第i个球哈希函数的半径为ri = d(pie, Sn/2); 其中,Sn/2表示分别将η个像素差值向量与第i个球哈希函数的中心点的距离进行升序 排列之后的第n/2个像素差值向量; d( ·)表示计算欧氏距离的函数。5. 根据权利要求3所述的方法,其特征在于,还包括: 根据所述第i个球哈希函数的中心点以及公式(3)得到第i个球哈希函数的半径r1;其中,根据公式(4)得到j的取值;sJ+1表示分别将η个像素差值向量与第i个球哈希函数的中心点的距离进行升序排列之 后的第j + Ι个像素差值向量;Sj表示分别将η个像素差值向量与第i个球哈希函数的中心点 的距离进行升序排列之后的第j个像素差值向量;α为预设值。6. 根据权利要求1或2所述的方法,其特征在于,根据所述球哈希函数的参数对所述像 素差值向量进行二值编码,得到所述像素差值向量对应的第一二值向量,包括: 将所述像素差值向量分别代入所述球哈希函数中,将所述球哈希函数的值作为所述第 一二值向量对应位置的元素。7. 根据权利要求1或2所述的方法,其特征在于,对所述第一二值向量进行聚类,获取聚 类得到的多个视觉单词,包括: 利用K-Means算法对所述第一二值向量进行聚类,分别将聚类得到的k个类别中的几何 中心点作为所述视觉单词;k为预设的大于O的整数。8. 根据权利要求1或2所述的方法,其特征在于,根据所述视觉单词对所述第二二值向 量进行特征表示,包括: 将所述视觉单词的加权和作为特征表示得到的特征向量。9. 一种基于球哈希二值编码的人脸识别装置,其特征在于,包括: 第一提取模块,用于分别将训练样本中的多个训练人脸图像进行局部块的划分,得到 所述训练人脸图像对应的多个局部块,并提取各个所述训练人脸图像的各个所述局部块中 每个像素点对应的像素差值向量; 优化模块,用于根据所述像素差值向量和球哈希优化算法得到球哈希函数的参数;所 述球哈希函数的参数包括:中心点和半径; 第一编码模块,用于根据所述球哈希函数的参数对所述像素差值向量进行二值编码, 得到所述像素差值向量对应的第一二值向量; 聚类模块,用于对所述第一二值向量进行聚类,获取聚类得到的多个视觉单词; 第二提取模块,用于对测试人脸图像进行局部块的划分,得到所述测试人脸图像对应 的多个局部块,并提取测试人脸图像中每个所述局部块中每个像素点对应的像素差值向 量; 第二编码模块,用于根据所述球哈希函数的参数对所述测试人脸图像对应的多个像素 差值向量进行二值编码,得到所述像素差值向量对应的第二二值向量; 处理模块,用于根据所述视觉单词对所述第二二值向量进行特征表示得到特征向量, 并根据所述特征向量进行人脸识别。10.根据权利要求9所述的装置,其特征在于,所述第一提取模块,具体用于: 以每个像素点为中心,以R为半径,提取位于所述像素点四周的邻域像素点,并以顺时 针方向依次将所述邻域像素点的像素值与所述像素点的像素值进行差值运算,得到所述像 素点对应的N维像素差值向量;R为预设的大于0的整数;N=(2XR+1)X(2XR+1)-1。
【文档编号】G06K9/62GK105930834SQ201610513332
【公开日】2016年9月7日
【申请日】2016年7月1日
【发明人】明悦, 范春晓, 田雷, 吴岳辛, 李阳, 史家昆, 翟正元, 吴琼
【申请人】北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1