一种数据处理方法以及设备
技术领域
本申请涉及数据处理领域,尤其涉及一种数据处理方法以及设备。
背景技术
随着时代的快速发展,越来越多技术的数据呈现出高维的数据特征,如航天遥感数据、生物数据、网络数据以及金融市场交易数据等。在对这些数据进行处理时,存在着维数灾难(curses of dimensionality)问题,维数膨胀给高维数据中模式识别和规则发现带来极大挑战,维数灾难的处理难度极大。因此如何对数据进行有效处理使其既能够地克服“维数灾难”,又能够获得数据的紧致表示是高维信息处理研究的重要问题。
当下的数据降维技术主要包括线性降维技术(如PCA、LDA)与非线性降维技术(如ISOMAP、LLE、Laplacian Eigenmap等)。现实生活中要处理的数据集一般为高维的非线性数据,一些有效的非线性降维方法,如多维尺度方法(MDS)、等距映射(ISOMAP)方法、局部线性嵌入方法(LLE)、拉普拉斯特征映射(LE)方法等,并在实际处理中获得了较为成功的应用。还有一些非线性降维技术能够提供明确的投影矩阵,并能将其应用于样本外数据,以解决样本外问题的非线性降维算法,如局部保持投影(Locality Preserving Projection,LPP)、近邻保持嵌入(Neighborhood Preserving Embedding,NPE)、敏感位置判别分析(Locality Sensitive Discriminant Analysis,LSDA)等算法。这些算法在对高维非线性数据集进行有效降维的同时,既解决了“样本外问题”,又提高了降维后数据的匹配准确率。
发明内容
本申请实施例提供了一种数据处理方法以及设备,用于对两张图像使用多种降维算法进行处理,并通过加权计算得到更准确、性能更优的综合相似性分数。
有鉴于此,本申请第一方面提供了一种数据处理方法,该方法包括:获取第一图像X和第二图像Y;提取该X和该Y的Q个数据特征,分别生成大小均为1*Q的矩阵Xq和矩阵Yq;分别使用N种降维算法对该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i),其中,该P小于该Q,该N为大于等于2的整数;计算该矩阵Xp(i)和该矩阵Yp(i)的相关参数score[(Xp(i),Yp(i)];使用预设的加权参数对该score[Xp(i),Yp(i)]进行加权运算,得到综合相关参数score[mix(Xp,Yp)],i∈{1,2,……,N};若该score[mix(Xp,Yp)]在预设范围内,则确定该X和该Y均指示同一个对象,若不在预设范围内,则确定该X和该Y指示不同的对象。
结合本申请的第一方面,本申请的第一方面的第一种实施方式,包括:使用预设的加权参数ki,该d为常数,对该score[Xp(i),Yp(i)]进行加权运算,得到该该a和该b均为预设常数,该a不等于0,i∈{1,2,……,N}。
结合本申请实施例的第一方面的第一种实施方式,本申请实施例的第一方面的第二种实施方式,包括:使用预设的加权参数ki,对该score[Xp(i),Yp(i)]进行加权运算,得到该
结合本申请实施例的第一方面的第一种实施方式,本申请实施例的第一方面的第三种实施方式,包括:使用预设的加权参数ki,对该score[Xp(i),Yp(i)]进行加权,得到
结合本申请实施例的第一方面、第一方面的第一种实施方式、第一方面的第二种实施方式、第一方面的第三种实施方式,本申请实施例的第一方面的第四种实施方式,包括:分别使用局部保持投影LPP和近邻保持嵌入NPE对该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(LPP)和矩阵Yp(NPE),其中,该P小于该Q。
本申请第二方面提供了一种设备,包括:获取模块,用于获取第一图像X和第二图像Y;提取模块,用于提取该获取模块获取的该X和该Y的Q个数据特征,分别生成大小均为1*Q的矩阵Xq和矩阵Yq;降维模块,用于分别使用N种降维算法对该提取模块提取并生成的该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i),其中,该P小于该Q,该N为大于等于2的整数;计算模块,用于计算该降维模块降维后的该矩阵Xp(i)和该矩阵Yp(i)的相关参数score[(Xp(i),Yp(i)];加权模块,用于使用预设的加权参数对该计算模块计算得到的该score[Xp(i),Yp(i)]进行加权运算,得到综合相关参数score[mix(Xp,Yp)],i∈{1,2,……,N};确定模块,用于若该加权模块加权得到的该score[mix(Xp,Yp)]在预设范围内,则确定该X和该Y均指示同一个对象,若不在预设范围内,则确定该X和该Y指示不同的对象。
结合本申请的第二方面,本申请的第二方面的第一种实施方式,包括:加权子模块,用于使用预设的加权参数ki,该d为常数,对该计算模块计算得到的该score[Xp(i),Yp(i)]进行加权运算,得到该 Yp(i)]}+b,该a和该b均为预设常数,该a不等于0,i∈{1,2,……,N}。
结合本申请实施例的第二方面的第一种实施方式,本申请实施例的第二方面的第二种实施方式,包括:加权单元,用于使用预设的加权参数ki,对该计算模块计算得到的该score[Xp(i),Yp(i)]进行加权运算,得到该
结合本申请实施例的第二方面的第一种实施方式,本申请实施例的第二方面的第三种实施方式,包括:加权子单元,用于使用预设的加权参数ki,对该计算模块计算得到的该score[Xp(i),Yp(i)]进行加权,得到
结合本申请实施例的第二方面、第二方面的第一种实施例、第二方面的第二种实施例、第二方面的第三种实施例,本申请实施例的第二方面的第四种实施方式,包括:降维子模块,用于分别使用局部保持投影LPP和近邻保持嵌入NPE对该提取模块提取并生成的该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(LPP)和矩阵Yp(NPE),其中,该P小于该Q。
从以上技术方案可以看出,本申请实施例具有以下优点:
由于获取第一图像X和第二图像Y,提取该X和该Y的Q个数据特征,分别生成大小均为1*Q的矩阵Xq和矩阵Yq,分别使用N种降维算法对该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i),其中,该P小于该Q,该N为大于等于2的整数,计算该矩阵Xp(i)和该矩阵Yp(i)的相关参数score[(Xp(i),Yp(i)],使用预设的加权参数对该score[Xp(i),Yp(i)]进行加权运算,得到综合相关参数score[mix(Xp,Yp)],i∈{1,2,……,N},若该score[mix(Xp,Yp)]在预设范围内,则确定该X和该Y均指示同一个对象,若不在预设范围内,则确定该X和该Y指示不同的对象,通过实验数据证明,该score[mix(Xp,Yp)]作为该第一图像和该第二图像的综合相关参数时,匹配准确率更高,各性能参数更优。
附图说明
图1为本申请实施例中一种数据处理方法的一个实施例示意图;
图2为本申请实施例中一种设备的一个实施例示意图。
具体实施方式
本申请实施例提供了一种数据处理方法以及设备,用于对两张图像使用多种降维算法进行处理,并通过加权计算得到更准确、性能更优的综合相似性分数。
为了使本技术领域的人员更好地理解本发明实施例方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着时代的快速发展,越来越多技术的数据呈现出高维的数据特征,如航天遥感数据、生物数据、网络数据以及金融市场交易数据等。在对这些数据进行处理时,存在着维数灾难(curses of dimensionality)问题,维数膨胀给高维数据中模式识别和规则发现带来极大挑战,维数灾难的处理难度极大。因此如何对数据进行有效处理使其既能够地克服“维数灾难”,又能够获得数据的紧致表示是高维信息处理研究的重要问题。
当下的数据降维技术主要包括线性降维技术(如PCA、LDA)与非线性降维技术(如ISOMAP、LLE、Laplacian Eigenmap等)。现实生活中要处理的数据集一般为高维的非线性数据,一些有效的非线性降维方法,如多维尺度方法(MDS)、等距映射(ISOMAP)方法、局部线性嵌入方法(LLE)、拉普拉斯特征映射(LE)方法等,并在实际处理中获得了较为成功的应用。还有一些非线性降维技术能够提供明确的投影矩阵,并能将其应用于样本外数据,以解决样本外问题的非线性降维算法,如局部保持投影(Locality Preserving Projection,LPP)、近邻保持嵌入(Neighborhood Preserving Embedding,NPE)、敏感位置判别分析(Locality Sensitive Discriminant Analysis,LSDA)等算法。这些算法在对高维非线性数据集进行有效降维的同时,既解决了“样本外问题”,又提高了降维后数据的匹配准确率。
因此,本申请实施例的核心思想是,由于获取第一图像X和第二图像Y,提取该X和该Y的Q个数据特征,分别生成大小均为1*Q的矩阵Xq和矩阵Yq,分别使用N种降维算法对该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i),其中,该P小于该Q,该N为大于等于2的整数,计算该矩阵Xp(i)和该矩阵Yp(i)的相关参数score[(Xp(i),Yp(i)],使用预设的加权参数对该score[Xp(i),Yp(i)]进行加权运算,得到综合相关参数score[mix(Xp,Yp)],i∈{1,2,……,N},若该score[mix(Xp,Yp)]在预设范围内,则确定该X和该Y均指示同一个对象,若不在预设范围内,则确定该X和该Y指示不同的对象,通过实验数据证明,该score[mix(Xp,Yp)]作为该第一图像和该第二图像的综合相关参数时,匹配准确率更高,各性能参数更优。
为便于理解,下面对本申请实施例中的具体流程进行描述,请参阅图1,本申请实施例中一种数据处理方法一个实施例包括:
101、获取第一图像X和第二图像Y。
在一些可行的实施例中,该第一图像X和第二图像Y可以是人脸图像,可以是指纹图像,也可以是视网膜图像,或者其他用于指示不同对象的图像,此处不作限定。在一些可行的实施例中,以上所称对象,可以是指人,即不同的指纹图像或者人脸图像指示的相同或者不同的人;所称对象还可以是动物,具体用于宠物的识别;所称对象还可以是有不同编号的产品,具体的用于辨识产品的合格率;只要是可以需要被辨识的对象,此处不作限定。在本发明实施例中,若无特别说明,则默认图像为用于人脸识别的人脸图像库为例进行说明。需要说明的是,该人脸图像库中的人脸图像可以通过红外人脸识别获得,也可以通过普通的拍照获得,此处不作限定。
以下以一个具体的实施例为例进行说明,获取人脸图像库,该人脸图像库可以包括10万张人脸图像,分别对应1500个人,每个人可以对应一张或几张人脸图像,其中图像X和图像Y分别是该10万张人脸图像之一,则图像X和图像Y可能指示同一个人,也可能指示不同的人。
102、提取该X和该Y的Q个数据特征,分别生成大小均为1*Q的矩阵Xq和矩阵Yq。
在一些可行的实施例中,当获取了第一图像X和第二图像Y之后,可以提取该第一图像X和第二图像Y的数据特征。在一些可行的实施例中,可以对该人脸图像库中的人脸图像提取多种数据特征的值。具体的,本发明实施例中,可以提取DCP特征。该DCP特征为从人脸图像中提取的多方向多层次的双环模式(Multi-Directional Multi-Level Dual-CrossPatterns,MDML-DCP)特征,DCP特征是由人脸图像独特的纹理结构启发而设计出的一种人脸图像描述方式,其在表情、姿态变化方面与现有其他技术相比较为鲁棒,并且在计算方面较为高效,其所需的时间仅比局部二值特征多一倍。需要说明的是,Q为数据特征的个数,若取了一个图像的Q个特征,则可以认为这是个Q维的数据。如Q个数据特征的值分别为x1,x2,x3,……xQ,并将该Q个数据特征生成大小为1*Q的矩阵Xq=(x1,x2,x3,……xQ),同样的,可以提取Y的Q个数据特征得到Yq=(y1,y2,y3,……yQ)。
103、分别使用N种降维算法对该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i),其中,该P小于该Q,该N为大于等于2的整数。
在一些可行的实施例中,可以使用很多有效的非线性降维方法,如局部保持投影(Locality Preserving Projection,LPP)、近邻保持嵌入(Neighborhood PreservingEmbedding,NPE)、敏感位置判别分析(Locality Sensitive Discriminant Analysis,LSDA)等算法。这些算法在对高维非线性数据集进行有效降维的同时,又提高了降维后数据的匹配准确率。在本发明实施例中,可以使用N种降维算法对该矩阵Xq和该矩阵Yq进行降维处理,得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i)。如对4608维的数据,即大小为1*4608的矩阵Xq和矩阵Yq降维后得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i),i∈{1,2,……,N}。
具体的,在一些可行的实施例中,当获取了包含第一图像X和第二图像Y并提取其数据特征以及生产相应的矩阵后,可以将矩阵Xq和矩阵Yq投影到相应的通过不同的降维算法得到的降维矩阵中进行降维处理,得到的降维后的矩阵中的每一行都对应其中一个人脸图像的降维后的矩阵,如Xq、Yq被降维后得到Xp、Yp。
具体的,得到与降维算法对应的降维矩阵的算法如下。获取人脸图像库时,该人脸图像库包含10万张人脸图像,分别对应1500个人,每个人的图像张数有所不同,该训练集用于分别使用N种降维算法计算得出N种降维矩阵。然后将该人脸图像库作为训练集训练出与不同的降维算法的降维矩阵。
在一些可行的实施例中,N种降维算法可以是2种,或者2种以上,为了描述简洁,以下以两种降维算法为例进行说明,其中这两种降维算法可以分别为LPP和NPE。具体的,降维算法LPP、NPE对DCP特征DCP_train进行降维,具体可降至P维,该P小于Q。现以P为500为例对训练集中的DCP特征降维为例进行说明,则对训练集降维后产生的关于算法LPP、NPE的降维矩阵分别为LPP_matrix、NPE_matrix,其大小均为100000*500。然后,只要将矩阵Xq和矩阵Yq投影到相应的通过不同的降维算法中,即得到的降维后中矩阵Xp和矩阵Yp。需要说明的是,Xp、Xq、Yp以及Yq中的p和q的值分别等于P和Q。
在本发明实施例中,使用分别使用N种降维算法对该矩阵Xq和该矩阵Yq进行降维处理,分别得到的降维矩阵可以使用大小均为1*P的矩阵Xp(i)和矩阵Yp(i)来表示,其中i∈{1,2,……,N},Xp(i)指的是第i种降维算法降维得到的维数为P维的图像X的大小为1*P的矩阵。
104、计算该矩阵Xp(i)和该矩阵Yp(i)的相关参数score[(Xp(i),Yp(i)]。
在一些可行的实施例中,可将N种降维算法降维后的数据矩阵Xp(i)和该矩阵Yp(i),i∈{1,2,……,N},分别进行比对,得到N种降维算法在比对过程中得出的各个相似性分数score[(Xp(i),Yp(i)]。在此,对使用LPP降维算法得到的测试集数据进行比对为例进行说明,使用NPE降维算法或者其他降维算法得到的降维数据的比对过程与此一致,此处不再赘述。
105、使用预设的加权参数对该score[Xp(i),Yp(i)]进行加权运算,得到综合相关参数score[mix(Xp,Yp)],i∈{1,2,……,N}。
在本发明实施例中,可以将现有的N种有效的降维算法进行整合,即对有效的降维算法进行结合使用预设的加权参数对该score[Xp(i),Yp(i)]进行加权运算,得到综合相关参数score[mix(Xp,Yp)],i∈{1,2,……,N},使得高维数据在得到有效降维后,其在生物识别等应用方面的性能指标也更优。
具体的,使用预设的加权参数ki,该d为常数,对该score[Xp(i),Yp(i)]进行加权运算,得到该 该a和该b均为预设常数,该a不等于0,i∈{1,2,……,N}。需要说明的是,预设的加权参数ki是通过实验数据得出的,对加权运算的性能提高较大的预设参数。其中a可以为大于零或者小于零,但是不得等于零,也可以为复数。因为若a等于零,则该算式恒等于b,则毫无意义。b则可以为任何实数或者复数的常数。
进一步的,预设的加权参数可以为对该score[Xp(i),Yp(i)]进行加权运算,得到该当时,则可以得出的数值范围是score[(Xp(i),Yp(i)]的a倍相同,则可以更好得进行比较。
更进一步的,除了预设的加权参数ki满足之外,a还可以等于1和或/b等于,得到的数值范围是score[(Xp(i),Yp(i)]相同,则可以更好得进行比较。
更具体的,当使用2种降维算法,分别是LPP和NPE时:
score[mix(Xp,Yp)]=α*score[(Xp(i),Yp(i)]_NPE+β*score[(Xp(i),Yp(i)]_LPP
其中α+β=1,score[mix(Xp,Yp)]是使用结合降维算法LPP和NPE得到的综合相似性分数,α、β为不同算法所占的比重,即权重系数,其和可以为1。
106、若该score[mix(Xp,Yp)]在预设范围内,则确定该X和该Y均指示同一个对象,若不在预设范围内,则确定该X和该Y指示不同的对象。
在另一些可行的实施例中,若 中score[(Xp(i),Yp(i)]的范围是0-100%,且a=1,b=0,则该预设的范围可以是90%-100%,若得到的score[mix(Xp,Yp)]的范围是0-100分,该预设的范围可以是90-100分。对于不同的得分显示,a和b对score[mix(Xp,Yp)]有相应的影响,此处不再赘述,优选的,为a=1,b=0。
若该score[mix(Xp,Yp)]在预设范围内,则确定该X和该Y均指示同一个对象,在一些可行的实施例中,则指示该X和该Y均指示同一个人,否则,该X和该Y指示不同的人。
为了证明本发明实施例中的效果,可以进行如下的数据实验:
①准备人脸图像数据库,并将人脸图像分为训练集、测试集,其中训练集的图像数目远多于测试集中的图像数目。本次测试中用到的人脸图像数据库为红外人脸数据库,将训练集定为faceenroll-std,将测试集定为Face_Test。具体来说,人脸数据库faceenroll-std中包含38225张人脸图像,这些图像对应于2892个人,只是每个人的图像张数有所不同。同样的,人脸数据库Face_Test中包含2658张人脸图像,这些图像对应于252个人,每个人的图像张数有所不同。将测试集的人脸数据库Face_Test分为两部分Test1、Test2,其中,Test1的生成过程为,将Face_Test按照每个人取出一张图像组成252个人的图像数据,并按照从1到252的顺序设定标签变量X,大小为1×252;而Test2则由Face_Test中剩下的所有图像组成,则Test2的图像个数为2406,Test2的标签设定为对应Test1中的相同人为同一标签,其标签变量为Y,大小为1×2406。
②特征提取阶段。对训练集、测试集中的所有人脸图像生成人脸图像特征,本发明的DCP特征,该特征为从人脸图像中提取的多方向多层次的双环模式(Multi-DirectionalMulti-Level Dual-Cross Patterns,MDML-DCP)特征,DCP特征是由人脸图像独特的纹理结构启发而设计出的一种新颖的人脸图像描述方式,其在表情、姿态变化方面特别鲁棒,并且在计算方面非常高效,其所需的时间仅比局部二值特征多一倍。在测试时,对训练集生成的DCP特征命名为DCP_train,其大小为38225×4608,其中38225为训练集中的图像个数,4608为生成的DCP特征的维数。而对测试集而言,对Test1生成DCP特征后用DCP_Test1表示,其大小为252×4608;对Test2生成DCP特征后用DCP_Test2表示,其大小为2406×4608。
③数据降维阶段。使用降维算法LPP、NPE对⑵中生成的DCP特征DCP_train进行降维,具体维数的选择可根据需要而定。现以500维为例对训练集中的DCP特征降维,则对训练集降维后产生的关于算法LPP、NPE的降维矩阵分别为LPP_matrix、NPE_matrix,其大小均为4608×500。将测试集上的DCP特征的数据投影到该降维矩阵上,得到降维后的测试数据DCP_Test1_LPP_500、DCP_Test2_LPP_500、DCP_Test1_NPE_500、DCP_Test2_NPE_500,其中DCP_Test1_LPP_500、DCP_Test2_LPP_500是测试集使用降维矩阵LPP_matrix得到的结果,DCP_Test1_NPE_500、DCP_Test2_NPE_500测试集使用降维矩阵NPE_matrix得到的结果。具体过程为:
DCP_Test1_LPP_500=DCP_Test1×LPP_matrix (1)
DCP_Test2_LPP_500=DCP_Test2×LPP_matrix (2)
DCP_Test1_NPE_500=DCP_Test1×NPE_matrix (3)
DCP_Test2_NPE_500=DCP_Test2×NPE_matrix (4)
④降维算法的结合使用阶段。首先将使用两种降维算法降维后的数据合并在一起。然后对使用不同降维算法得到的测试集的数据分别进行比对。最后将两个算法在比对过程中得出的两个相似性分数加权相加得到最后的相似性分数。
对使用LPP降维算法得到的测试集数据进行比对,使用NPE降维算法得到的降维数据的比对过程与此一致。具体的比对过程为:对DCP_Test1_LPP_500与DCP_Test2_LPP_500采用余弦距离进行匹配识别,将Test2中的每幅图像与Test1中的每幅图像进行比对,若Test2对应的特征DCP_Test2_LPP_500与Test1中的某一幅图像的特征的距离d最小,则将其标签标定为Test1中该图像对应的标签。这样该过程得到的标签为label,其大小为1×2406,比对过程中的距离变量为d,大小为252×2406。在对Test2中的每幅图像进行比对的过程中,对距离d按行取平均值,得到均值变量MM,大小为252×2406;对距离d取中值得到中值变量ME,大小为252×1;对距离d取最小值得到最小值变量AA,大小为252×1。在ME、AA中分别取中值、最小值得到最终的中值mid_c与最终的最小值min_a。则相似性分数score的计算公式
score(i,j)=round(100*(mid_c-MM(i,j))/(mid_c-min_a)) (5)
其中round为按照四舍五入进行取整的函数。则按照上述方式得到的关于使用LPP、NPE降维算法后的相似性分数分别为score_lpp、score_npe。
接下来将不同算法得到的相似性分数进行加权相加,具体如下:
score_mix=alpha×score_npe+beta×score_lpp (6)
其中beta+alpha=1,score_mix是使用结合型降维算法得到的相似性分数,alpha、beta为不同算法所占的比重,即权重系数,其和为1.
⑤性能评估阶段。
对⑷中得到的标签label与⑴中人工设置的标签Y进行一一比对,从而计算降维后的匹配准确率,其计算公式为:
Test_accuracy=100×(1-sum(label~=Y)/length(Y)) (7)
对使用LPP、NPE以及结合算法的降维数据,测试其在识别方面的性能,即测试FAR、FRR等性能。众所周知,FRR和FAR是用来评估识别算法性能的两个主要参数。FAR和FRR是同一个算法系统的两个参数,FAR是随阈值增大而减小的,FRR是随阈值增大而增大的。因此它们一定有交点,记为EER。这个点是在某个阈值下的FAR与FRR等值的点。习惯上用这一点的值来衡量算法的综合性能。对于一个更优的指纹算法,希望在相同阈值情况下,FAR和FRR都越小越好。
具体的,可以在MATLAB软件中作此数据实验,首先将实现准备好的文件116_npe_eigvector_npe_to_800dim(使用NPE降维方法降维至800维的数据)、A标签filename__selected、B测试filename__modified、DCP_feature_A_modified、DCP_feature_B_modified、label、score_NPE_800放在一个文件夹中,运行test_accuracy.m中的代码,通过以下代码计算得到test_accuracy,test_accuracy.m中的代码在matlab软件中如下:(需要说明的是“%”后的文字为批注)
%%1幅人脸,DCP特征有4608,对其进行降维后,采用余弦距离,进行匹配识别,求出test accuracy以及相似性分数
%在测试时将Face_Test分为DCP_A:252×4608与DCP_B:2406×4608。具体匹配过程是,对于2658张图片,每个人抽出一张图片作为标签集,
%对剩下的2658-252=2406张图片进行匹配测试,该过程采用余弦距离进行匹配。
glac1_A=load('DCP_feature_A_modified.dat');%%从人脸数据库Face_Test中提取的人脸DCP特征
glac1_B=load('DCP_feature_B_modified.dat');
%%%载入降维矩阵
eigvector_npe=load('116_npe_eigvector_npe_to_800dim.txt');%%使用数据库faceenroll-std中所有人的所有图片的DCP特征生成的npe降维矩阵(降维到800维)
X=glac1_A*eigvector_npe;%降维后的数据
Y=glac1_B*eigvector_npe;%对人脸DCP特征进行降维得到降维后的数据
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
glac1_A=X;%%降维后的数据A
glac1_B=Y;%%降维后的数据B
testY=load('label.txt');%%B的标签集,同一个人的所有图片,其标签相同
DCP_A_filename=textread('A标签filename__selected.txt','%s');%%将Face_Test分为两部分(A与B,其人脸DCP特征为DCP_A与DCP_B),其每部分所对应的图像名,用来对两两图片比对时记录其相似性分数情况
DCP_B_filename=textread('B测试filename__modified.txt','%s');%%如fig1.name fig2.name 100表示fig1与fig2相似性分数为100分
r1=size(DCP_A_filename,1);%%将Face_Test分为两部分,每部分包含的图像数量分别为r1、r3
r3=size(DCP_B_filename,1);
lable=zeros(r3,1);%定义对DCP_B中的图像预测的标签
dd=zeros(r1,r3);%%DCP_A与DCP_B中各个特征两两之间的距离
MM=zeros(r1,r3);
score=zeros(r1,r3);%%A与B中图片间的相似性分数
AA=zeros(r3,1);
BB=zeros(r3,1);
ME=zeros(r3,1);
fileID=fopen('score_NPE_800.txt','wt');%%the similarity score textfile记录比较的图片名称与相似性分数的文件
for j=1:r3
for num=1:r1
xy=[glac1_B(j,:);glac1_A(num,:)];
dd(num,j)=pdist(xy,'cosine');%%calculate distance求出A中个图片与B中个图片特征间的距离
end
[a,alab]=min(dd(:,j));%%求出距离中的最小值
AA(j)=a;
[b,blab]=max(dd(:,j));%%求出距离中的最大值
BB(j)=b;
c=median(dd(:,j));%%求出距离中的中值
ME(j)=c;
lable(j)=ceil(alab);%%A中图片与B中图片距离取得最小值所对应的B的序号作为A图片的序号
end
Test_accuracy=100*(1-sum(lable~=testY)/length(testY));%%在B中所有的图片,比较预测标签与实际标签是否相同,相同则匹配准确率高
fprintf('Test accuracy%f%%\n',Test_accuracy);
%%以下部分为计算相似性分数的部分,即将两图片之间的距离转化为0-100之间的相似性分数,分数值越高说明越相似,是一个人的概率越大,反之则为越不相似。
%%分别求距离中的最大、最小以及中值,利用相似性分数的公式,将距离转化为相似性分数
此处则本数据实验结束,得到使用NPE的降维方法将数据降维至800维的test.accuracy。同样的,可以将事先预备好的eigvector_npe_to_200dim.txt、eigvector_npe_to_300dim.txt、eigvector_npe_to_400dim.txt、eigvector_npe_to_500dim.txt、eigvector_npe_to_600dim.txt、eigvector_npe_to_700dim.txt分别替代文件夹中的eigvector_npe_to_800dim.txt,并将代码中的字符“eigvector_npe_to_200dim.txt”、
“116_npe_eigvector_npe_to_300dim.txt”
“116_npe_eigvector_npe_to_400dim.txt”
“116_npe_eigvector_npe_to_500dim.txt”
“116_npe_eigvector_npe_to_600dim.txt”
“116_npe_eigvector_npe_to_700dim.txt”分别替换掉字符
“116_npe_eigvector_npe_to_800dim”,并运行该文件,即可分别得到NPE将数据降维至200维、300维、400维、500维、600维、700维的test.accuracy。
同样的,可以讲NPE的降维数据替换为LPP的降维数据,将test.accuracy.m中的字符NPE替换为LPP,即可得到LPP将数据降维至200维、300维、400维、500维、600维、700维、800维的test.accuracy。
使用以下代码在Python中运行,分别得到frr、far、err的参数:
在matlab中运行以下代码,可以计算出LPP和NPE方法将数据降维到500维后的相似性分数,加权后的mix_score_500,其中,可以将
将以上得到的mix_score_200、mix_score_300、mix_score_400、mix_score_500、mix_score_600、mix_score_700、mix_score_800替换掉116_npe_eigvector_npe_to_200dim、116_npe_eigvector_npe_to_300dim、116_npe_eigvector_npe_to_400dim、116_npe_eigvector_npe_to_500dim、116_npe_eigvector_npe_to_600dim、116_npe_eigvector_npe_to_700dim、116_npe_eigvector_npe_to_800dim,再运行其代码,即可得到相应的frr、far、err的数值。
根据以上数据实验得到的数据结果显示,单独使用LPP算法进行降维时,其匹配准确率Test accuracy=94.47%:
ERR=4.060%,1/10000:FRR=21.70%,1/100000:FRR=26.27%,NONE:FRR=30.26%;
单独使用NPE算法进行降维时,其匹配准确率Test accuracy=94.43%:
ERR=4.584%,1/10000:FRR=20.41%,1/100000:FRR=26.89%,NONE:FRR=31.34%;
使用结合型降维算法:
ERR=3.905%,1/10000:FRR=18.37%,1/100000:FRR=23.48%,NONE:FRR=28.47%;
降维到600维的情况如下:
①单独使用LPP算法进行降维时,其匹配准确率Test accuracy=94.72%:
ERR=4.156%,1/10000:FRR=21.32%,1/100000:FRR=25.77%,NONE:FRR=31.21%;
②单独使用NPE算法进行降维时,其匹配准确率Test accuracy=94.14%:
ERR=4.865%,1/10000:FRR=20.70%,1/100000:FRR=26.77%,NONE:FRR=31.30%
③使用结合型降维算法:
ERR=4.154%,1/10000:FRR=17.91%,1/100000:FRR=21.78%,NONE:FRR=30.55%;
降维到700维的情况如下:
①单独使用LPP算法进行降维时,其匹配准确率Test accuracy=94.64%:
ERR=4.248%,1/10000:FRR=21.65%,1/100000:FRR=26.35%,NONE:FRR=%0.2f%%;
②单独使用NPE算法进行降维时,其匹配准确率Test accuracy=94.06%:
ERR=5.065%,1/10000:FRR=21.45%,1/100000:FRR=26.64%,NONE:FRR=34.83%;
③使用结合型降维算法:
ERR=4.130%,1/10000:FRR=20.12%,1/100000:FRR=24.36%,NONE:FRR=31.50%;
降维到800维的情况如下:
①单独使用LPP算法进行降维时,其匹配准确率Test accuracy=94.93%:
ERR=4.266%,1/10000:FRR=19.95%,1/100000:FRR=28.10%,NONE:FRR=31.34%;
②单独使用NPE算法进行降维时,其匹配准确率Test accuracy=94.18%:
ERR=5.111%,1/10000:FRR=20.74%,1/100000:FRR=26.14%,NONE:FRR=34.25%;
③使用结合型降维算法:
ERR=4.193%,1/10000:FRR=19.91%,1/100000:FRR=24.40%,NONE:FRR=29.59%。
请参考图2,本申请实施例还提供一种设备200,该设备200包括:
获取模块201,用于获取第一图像X和第二图像Y。
提取模块202,用于提取该获取模块201获取的该X和该Y的Q个数据特征,分别生成大小均为1*Q的矩阵Xq和矩阵Yq。
降维模块203,用于分别使用N种降维算法对该提取模块202提取并生成的该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(i)和矩阵Yp(i),其中,该P小于该Q,该N为大于等于2的整数。
计算模块204,用于计算该降维模块203降维后的该矩阵Xp(i)和该矩阵Yp(i)的相关参数score[(Xp(i),Yp(i)]。
加权模块205,用于使用预设的加权参数对该计算模块204计算得到的该score[Xp(i),Yp(i)]进行加权运算,得到综合相关参数score[mix(Xp,Yp)],i∈{1,2,……,N}。
确定模块206,用于若该加权模块205加权得到的该score[mix(Xp,Yp)]在预设范围内,则确定该X和该Y均指示同一个对象,若不在预设范围内,则确定该X和该Y指示不同的对象。
本申请实施例还中该加权模块205包括:
加权子模块2051,用于使用预设的加权参数ki,该d为常数,对该计算模块204计算得到的该score[Xp(i),Yp(i)]进行加权运算,得到该该a和该b均为预设常数,该a不等于0,i∈{1,2,……,N}。
加权单元2052,用于使用预设的加权参数ki,对该计算模块204计算得到的该score[Xp(i),Yp(i)]进行加权运算,得到该
本申请实施例还中该加权模块205包括:
加权子单元2053,用于使用预设的加权参数ki,对该计算模块计算204得到的该score[Xp(i),Yp(i)]进行加权,得到
本申请实施例还中该降维模块203包括:
降维子模块2031,用于分别使用局部保持投影LPP和近邻保持嵌入NPE对该提取模块202提取并生成的该矩阵Xq和该矩阵Yq进行降维处理,分别得到大小均为1*P的矩阵Xp(LPP)和矩阵Yp(NPE),其中,该P小于该Q。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。