一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种建档方法、装置、电子设备及计算机可读存储介质与流程

2022-03-04 23:24:29 来源:中国专利 TAG:


1.本公开涉及图片识别技术领域,尤其涉及一种建档方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.现有人脸建档中对于建档人脸图片选择,方案一是依靠检测分数来排序,选择检测分数高的;方案二是依靠多种分类或回归模型(遮挡分类、正侧脸分类、亮度分类、位姿回归),选择多模型分数高的。
3.这些技术方案,实际上是人工设计出来的一些分类器,其分数值与手工设计的监督信号(如检测框信号、遮挡信号等)有关,而与人脸空间没有直接关系,都不是直接依据人脸空间的分布进行质量建模,那么在人脸图片选择精度较低的情况下,就会导致人脸建档质量较差。针对该技术问题,相关技术并未提出有效的解决方案。


技术实现要素:

4.有鉴于此,本公开实施例提供了一种建档方法、装置、电子设备及计算机可读存储介质,以解决现有技术中简单采用分类器的方式选择建档图片导致建档质量较差的问题。
5.本公开实施例的第一方面,提供了一种建档方法,包括:分别获取已采集的图片所对应的第一特征空间和第二特征空间,其中,该第一特征空间用于描述该图片在第一类内的空间,该第二特征空间用于描述该图片与第二类之间的空间,该第二类是除该第一类之外的类别,该第一类为该图片所对应的类别;根据该第一特征空间和该第二特征空间,从该已采集的图片中确定出目标图片;根据该目标图片确定建档图片。
6.本公开实施例的第二方面,提供了一种建档装置,包括:获取模块,用于分别获取已采集的图片所对应的第一特征空间和第二特征空间,其中,该第一特征空间用于描述该图片在第一类内的空间,该第二特征空间用于描述该图片与第二类之间的空间,该第二类是除该第一类之外的类别,该第一类为该图片所对应的类别;第一确定模块,用于根据该第一特征空间和该第二特征空间,从该已采集的图片中确定出目标图片;第二确定模块,用于根据该目标图片确定建档图片。
7.本公开实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
8.本公开实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
9.本公开实施例与现有技术相比存在的有益效果是:通过分别获取已采集的图片所对应的第一特征空间和第二特征空间,其中,该第一特征空间用于描述该图片在第一类内的空间,该第二特征空间用于描述该图片与第二类之间的空间,该第二类是除该第一类之外的类别,该第一类为该图片所对应的类别;根据该第一特征空间和该第二特征空间,从该
已采集的图片中确定出目标图片;根据该目标图片确定建档图片。本公开实施例在选择建档图片时,是根据图片空间估计的,而并不是现有技术中简单采用分类器的方式,进而解决了现有技术中采用分类器的方式选择建档图片导致建档质量较差的问题,达到了提高建档质量的技术效果。
附图说明
10.为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
11.图1是本公开实施例的应用场景的场景示意图;
12.图2是本公开实施例提供的一种建档方法的流程示意图;
13.图3是本公开实施例提供的另一种建档方法的流程示意图;
14.图4是本公开实施例提供的一种建档装置的结构示意图;
15.图5是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
16.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本公开实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。
17.下面将结合附图详细说明根据本公开实施例的一种建档方法和装置。
18.图1是本公开实施例的应用场景的场景示意图。该应用场景可以包括终端设备101、102和103、服务器104以及网络105。
19.终端设备101、102和103可以是硬件,也可以是软件。当终端设备101、102和103为硬件时,其可以是具有显示屏且支持与服务器104通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等;当终端设备101、102和103为软件时,其可以安装在如上所述的电子设备中。终端设备101、102和103可以实现为多个软件或软件模块,也可以实现为单个软件或软件模块,本公开实施例对此不作限制。进一步地,终端设备101、102和103上可以安装有各种应用,例如数据处理应用、即时通信工具、社交平台软件、搜索类应用、购物类应用等。
20.服务器104可以是提供各种服务的服务器,例如,对与其建立通信连接的终端设备发送的请求进行接收的后台服务器,该后台服务器可以对终端设备发送的请求进行接收和分析等处理,并生成处理结果。服务器104可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心,本公开实施例对此不作限制。
21.需要说明的是,服务器104可以是硬件,也可以是软件。当服务器104为硬件时,其可以是为终端设备101、102和103提供各种服务的各种电子设备。当服务器104为软件时,其可以是为终端设备101、102和103提供各种服务的多个软件或软件模块,也可以是为终端设备101、102和103提供各种服务的单个软件或软件模块,本公开实施例对此不作限制。
22.网络105可以是采用同轴电缆、双绞线和光纤连接的有线网络,也可以是无需布线就能实现各种通信设备互联的无线网络,例如,蓝牙(bluetooth)、近场通信(near field communication,nfc)、红外(infrared)等,本公开实施例对此不作限制。
23.用户可以通过终端设备101、102和103经由网络105与服务器104建立通信连接,以接收或发送信息等。需要说明的是,终端设备101、102和103、服务器104以及网络105的具体类型、数量和组合可以根据应用场景的实际需求进行调整,本公开实施例对此不作限制。
24.图2是本公开实施例提供的一种建档方法的流程示意图。图2的建档方法可以由图1的终端设备或服务器执行。如图2所示,该建档方法包括:
25.s201,分别获取已采集的图片所对应的第一特征空间和第二特征空间,其中,该第一特征空间用于描述该图片在第一类内的空间,该第二特征空间用于描述该图片与第二类之间的空间,该第二类是除该第一类之外的类别,该第一类为该图片所对应的类别。
26.需要说明是,在本公开实施例中,上述图片包括但并不限于人脸图片、动物图片、建筑物图片等,在此,并不作任何限定。
27.上述已采集的图片可以包括一个,也可以包括多个,可以根据具体建档要求进行设置。在此,并不作任何限定。
28.上述第一特征空间、上述第二特征空间使用到的参数包括但并不限于距离,也可以是其它可以描述空间的参数,在此,并不作任何限定。例如,以距离为例,上述第一特征空间包括该图片与该第一类内空间密集点的第一距离、该图片与该第一类的类中心的第二距离;该第二特征空间包括该图片与该第二类之间的第三距离和第四距离,该第三距离为最近邻距离,该第四距离为最近邻近边缘的距离。
29.上述第二类可以包括一个类别,也可以包括多个类别,在此,并不作任何限定。
30.s202,根据该第一特征空间和该第二特征空间,从该已采集的图片中确定出目标图片。
31.s203,根据该目标图片确定建档图片。
32.通过上述步骤s201~s203,在选择建档图片时,根据图片空间估计,而并不是现有技术中简单采用分类器的方式,进而解决了现有技术中采用分类器的方式选择建档图片导致建档质量较差的问题,达到了提高建档质量的技术效果。
33.下面结合具体示例,对本公开实施例进行举例说明。
34.本示例提供了一种基于人脸空间估计的人脸建档方法,如图3所示,包括以下步骤:
35.步骤s301,搭建神经网络n,在数据集v1上训练完成;
36.步骤s302,神经网络n在v2上提特征,聚类,计算出每一类的中心、密集点、散度,计算类间距离;
37.步骤s303,在神经网络n的基础上接共享参数和两个主分支,预测类内和类间距离,并预测散度;
38.步骤s304,神经网络n预测值与真实值作平方差损失,反向传播来指导网络优化;
39.步骤s305,建档时,使用基于质量的相似度公式,来确定图片的类别归属;
40.步骤s306,确定类别归属后,我们计算图片的建档指标,来确定该图片是否作为建档图片。
41.由此可见,本示例直接基于人脸空间来估计类内分布和类间分布,是从根本上来定义人脸质量,依据从人脸空间估计的质量分,可以用于选择建档图片,也可以调整识别相似度分值,保证识别任务的精度。
42.在一些实施例中,上述第一距离和上述第二距离可以通过以下方式确定:
43.步骤s401,将已搭建的神经网络在第一训练集上完成训练,得到训练后的神经网络。
44.步骤s402,设置该训练后的神经网络在第二训练集上提取已采集的图片特征并进行聚类运算,得到该已采集的图片的每一类的类内空间密集点。
45.可选地,上述聚类算法包括但并不限于:基于密度的聚类算法dbscan(density-based spatial clustering of applications with noise)。
46.需要说明的是,上述第一训练集和上述第二训练集为两份同等规模的训练集。
47.步骤s403,分别获取该已采集的图片与该第一类内所有空间密集点的距离,得到距离集合。
48.步骤s404,将该距离集合中最小距离设置为该第一距离,将该距离集合中所有距离的平均值设置为该第二距离。
49.通过上述步骤s401~s404,可以预知图片“最近”的空间密集点的距离以及预知其与“类中心”的距离。
50.下面结合具体示例,对本公开实施例进行举例说明。
51.理论上,如果一个人脸图片质量好,应该离类内空间密集点的距离近;反之,则离类内空间密集点较远。因此,输入一张人脸图片,我们希望该图片能够预知自己与类内空间密集点的距离。
52.在一个人脸类内,存在多个空间密集点。输入一张人脸图,需要(1)预知其“最近”的空间密集点的距离。(2)需要预知其与“类中心”的距离。所谓“类中心”,指的是所有样本点的中心。
53.本示例的技术解决方案如下:
54.有两份同等规模的训练集v1和v2。首先,在训练集v1上训练人脸识别深度神经网络n,该神经网络可以提取人脸特征。训练完成后,我们使用神经网络n对训练集v2提取特征并进行聚类运算,采用dbsan算法。聚类运算完成后,训练集v2的每一类会出现多个密集簇,这些多密集簇对应的多中心,我们称之为类内密集点。类内密集点不会太多,一般是1-5之间,之所以类内形成多密集点,往往是因为年龄、姿态、光照等区别造成的局部聚集。
55.聚类后,我们可以计算出v2所有样本与其“最近”密集点距离,因为每个样本都有对应的类别,只需要计算样本与其类内所有密集点的距离:
56.取最小距离的即是与“最近密集点”距离。
57.取平均距离,即是与“类中心”的距离。
58.可选地,本公开实施例还可以搭建网络来分别预测“类内最近密集点距离”和“类中心距离”。
59.可选地,利用上述使用v1训练好的神经网络n,在该神经网络n后续加入若干(一般取4)共享参数矩阵,共享模块的输出为m。然后设计两个主分支。第一个主分支计算类内距离,第二个主分支后续介绍,用于计算类间距离。在第一个主分支上,包含2个参数矩阵,第
一个参数矩阵w01的维度是(512,512),代表同维度变换,后接relu激活;第二个参数矩阵w02的维度是(512,128),代表进行维度压缩的变换,过滤无效信息,后接tanh激活,设输出为a。然后接两个次分支,第一个次分支有两个参数矩阵,分别为w11(128,64),relu激活,w12(64,1),sigmoid运算,用于预测最近密集点距离;第二个次分支有两个参数矩阵,分别为w21(128,128),swish激活,w22(128,1),sigmoid运算,用于预测中心点距离。公式如下:
60.a=tanh(w
02
relu(w
01
m))
61.dn=sigmoid(w
12
relu(w
11
a))
62.dc=sigmoid(w
22
swish(w
21
a))
63.另外,还可以计算损失函数采用平方差损失:
64.ld=(d
n-dn)2 (d
c-dc)265.这样,网络可以准确地预测与类内最近密集点的距离和与类中心的距离。
66.在一个可选地实施例中,上述第三距离、第四距离可以通过以下方式确定:
67.步骤s501,设置该图片与最近的k1个类的类中心的距离的平均值,作为该第三距离,其中k1为大于0的整数;
68.步骤s502,设置该图片与最近的k1个类的密集点最近的距离的平均值,作为该第四距离。
69.具体地,人脸在特征空间中,分布是不均匀的。有些人脸与其他人脸的类间距离大,有些人脸则与其他人脸的类间距离小。我们希望能够预测出类间最近邻距离。对于同类中的人脸,类间距离越大,则质量更好。所以我们提出“类间距离”的简单算法:与最近的k个类的密集点最近的距离求平均,称作“最近邻近边缘距离”;与最近的k个类的类中心的距离求平均,称作“最近邻距离”。
70.或者,上述第三距离、第四距离还通过以下方式确定:
71.步骤s601,计算该图片所对应的类中心与类内所有密集点之间的平均距离,得到类内散度;
72.步骤s602,设置该图片与最近的k2个类的类中心的距离分别乘上该类内散度并求平均值,作为该第三距离,其中k2为大于0的整数;
73.步骤s603,设置该图片与最近的k2个类的密集点最近的距离分别乘上该类内散度并求平均值,作为该第四距离。
74.具体地,为了更加准确地估计“类间距离”,我们提出较为复杂的算法。我们首先要计算出类内的另一个统计量:类内散度。类内散度的定义为:类中心与类内所有密集点之间的平均距离。类内散度越大,其空间重要性上升;类内散度较小,空间重要性下降。我们提出“类间距离”的复杂算法:与最近的k个类的密集点最近的距离,分别乘上其散度求平均,称作“最近邻近边缘距离”;与最近的k个类的类中心的距离,分别乘上其散度求平均,称作“最近邻距离”。在这个算法里,散度相当于作为权重,来有效区分邻近节点的重要程度。我们将k取为10,也就是说,对于某个样本x,我们求出与其最近的10个其他类类中心的距离的加权(权重是散度)平均值,来作为“最近邻距离”;同时,我们求出与其最近的10个其他类密集点的距离的加权(权重是散度)平均值,来作为“最近邻近边缘距离”。遍历一遍所有样本,我们可以得到所有样本的“最近邻距离”ec和“最近邻近边缘距离”en。
75.又或者,可以搭建网络来预测,网络如同上述一中说明的情况。有若干共享参数矩
阵,输出为m,两个主分支。一个主分支预测类内距离。另一个主分支则预测“类间距离”。首先包含2个参数矩阵,第一个参数矩阵w31的维度是(512,512),后接relu激活;第二个参数矩阵w32的维度是(512,256),后接tanh激活,设输出为b。然后接两个次分支,第一个次分支有两个参数矩阵,分别为w41(256,128),mish激活,w42(128,1),sigmoid运算,用于预测最近邻近边缘距离;第二个次分支有两个参数矩阵,分别为w51(256,128),swish激活,w52(128,1),sigmoid运算,用于预测最近邻距离。公式如下:
76.b=tanh(w
32
relu(w
31
m))
77.en=sigmoid(w
42
mish(w
41
b))
78.ec=sigmoid(w
52
swish(w
51
b))
79.还可以计算损失函数采用平方差损失:
80.le=(e
n-en)2 (e
c-ec)281.这样,网络可以准确地预测与类间最近邻距离和类间最近邻近边的距离。
82.可以看到,预测类内距离的分支和预测类间距离的分支,结构大体相似。
83.本实施例提出,因为类内距离和类间距离有一定的相关性,设计一个联合两个主分支的计算模块,来计算散度。第一个主分支w02输出为f1,第二个主分支w41输出为f2,第二个主分支w51输出为f3,三个向量拼接,接一个(384,128)矩阵和swish激活,一个(128,1)矩阵和sigmoid函数,得到一个值,即散度值。
84.网络计算的散度值与真实散度值采用平方差损失计算:
85.ls=(s-s)286.最终的损失是三个损失相加:
87.l=ld le ls88.在一个可选地实施方式中,根据该第一特征空间和该第二特征空间,从该已采集的图片中确定出目标图片包括:通过以下公式计算该图片对应的目标参数y:
[0089][0090]
在该目标参数小于第一预设阈值时,将该图片确定为目标图片。
[0091]
或者,根据该第一特征空间和该第二特征空间,从该已采集的图片中确定出目标图片包括:
[0092]
通过以下公式计算该图片对应的目标参数y:
[0093][0094]
在该目标参数小于第二预设阈值时,将该图片确定为目标图片。
[0095]
通过上述方法确定出目标图片,可以进一步提高建档的精度。
[0096]
下面结合具体示例,对本实施例进行举例说明。
[0097]
人脸建档,即对一个人建档,要求在这个人众多的抓拍图中,选取若干张最具有代表性、质量最高的人脸图像进行建档。建档图片选取得好,则可以很大地提高识别的召回率和精确率。
[0098]
如果在算法部署的设备上,没有对算法模型个数和算法运行时间的限制,我们会
前置几个质量模型。如,我们会训练图像模糊度识别模型,面部遮挡识别模型、人脸位姿模型,一张人脸图片会先经过上述三个模型,可以得到模糊度分值、遮挡分值、位姿分值,代表图像是否模糊,是否发生遮挡,位姿是否过大。显然,质量不好的图片会被过滤掉。
[0099]
剩下的图片,我们会进入本文提出的空间估计神经网络。当然,如果算法部署设备有算力和内存的限制,我们可以不需要上述多质量模型,而直接只使用本文提出的网络模型。本文的单模型,就可以获得超过多质量模型的效果,并输出更丰富的空间估计。
[0100]
对于一张图片,经过本文网络,可以得到dn,dc,en,ec和类内散度s,dn越小,en越大,越适合作为建档的图片。我们提出建档指标y如下:
[0101][0102]
对于同一个人的多张抓拍图,取y最小的图片作为建档图片。
[0103]
或者,建档指标可以改为:
[0104][0105]
在这些距离上添加指数,可以作为权重值;共享参数矩阵可以2-4;
[0106]
只预测dn和en,或只预测dn和dc,即预测本技术方案的子集,在网络结构上删减一些分支,都属于本技术范畴。
[0107]
在一个可选地实施方式中,根据该目标图片确定建档图片包括:
[0108]
步骤s701,计算该目标图片与已有图片之间的相似度;
[0109]
步骤s702,根据相似度,选择是否替换该已有图片。
[0110]
通过上述步骤s701~步骤s702,可以选择出质量更好的图片作为建档图片。
[0111]
下面结合具体示例,对本实施例进行举例说明。
[0112]
可选地,如果该人已有建档图片p,新抓拍到若干图片。若新抓拍图里,某张人脸图p1与建档图p相似度小于0.5,但dc《0.02,则该图也可以作为建档图。当然,如果新抓拍图中,某张人脸图的y值比已建档图小,则可以进行替换。
[0113]
上述还可以调整人脸识别的分值。
[0114]
给两张人脸图片,新人脸识别相似度score为:
[0115][0116]
可见,建档指标y越小,上式的相似度得分越高。
[0117]
我们使用这个新的相似度来计算人脸是否属于同一类。
[0118]
此外,如果质量太差,如类内距离太大,类间距离太小,我们可以将该图片舍弃,来防止图片攻击。
[0119]
上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
[0120]
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
[0121]
图4是本公开实施例提供的一种建档装置的示意图。如图4所示,该建档装置包括:
[0122]
获取模块401,被配置为分别获取已采集的图片所对应的第一特征空间和第二特征空间,其中,该第一特征空间用于描述该图片在第一类内的空间,该第二特征空间用于描述该图片与第二类之间的空间,该第二类是除该第一类之外的类别,该第一类为该图片所对应的类别。
[0123]
需要说明是,在本公开实施例中,上述图片包括但并不限于人脸图片、动物图片、建筑物图片等,在此,并不作任何限定。
[0124]
上述已采集的图片可以包括一个,也可以包括多个,可以根据具体建档要求进行设置。在此,并不作任何限定。
[0125]
上述第一特征空间、上述第二特征空间使用到的参数包括但并不限于距离,也可以是其它可以描述空间的参数,在此,并不作任何限定。例如,以距离为例,上述第一特征空间包括该图片与该第一类内空间密集点的第一距离、该图片与该第一类的类中心的第二距离;该第二特征空间包括该图片与该第二类之间的第三距离和第四距离,该第三距离为最近邻距离,该第四距离为最近邻近边缘的距离。
[0126]
上述第二类可以包括一个类别,也可以包括多个类别,在此,并不作任何限定。
[0127]
第一确定模块402,被配置为根据该第一特征空间和该第二特征空间,从该已采集的图片中确定出目标图片
[0128]
第二确定模块403,被配置为根据该目标图片确定建档图片。
[0129]
通过上述模块,在选择建档图片时,根据图片空间估计,而并不是现有技术中简单采用分类器的方式,进而解决了现有技术中采用分类器的方式选择建档图片导致建档质量较差的问题,达到了提高建档质量的技术效果。
[0130]
下面结合具体示例,对本公开实施例进行举例说明。
[0131]
本示例提供了一种基于人脸空间估计的人脸建档方法,如图3所示,包括以下步骤:
[0132]
步骤s301,搭建神经网络n,在数据集v1上训练完成;
[0133]
步骤s302,神经网络n在v2上提特征,聚类,计算出每一类的中心、密集点、散度,计算类间距离;
[0134]
步骤s303,在神经网络n的基础上接共享参数和两个主分支,预测类内和类间距离,并预测散度;
[0135]
步骤s304,神经网络n预测值与真实值作平方差损失,反向传播来指导网络优化;
[0136]
步骤s305,建档时,使用基于质量的相似度公式,来确定图片的类别归属;
[0137]
步骤s306,确定类别归属后,我们计算图片的建档指标,来确定该图片是否作为建档图片。
[0138]
由此可见,本示例直接基于人脸空间来估计类内分布和类间分布,是从根本上来定义人脸质量,依据从人脸空间估计的质量分,可以用于选择建档图片,也可以调整识别相似度分值,保证识别任务的精度。
[0139]
在一些实施例中,上述第一距离和该第二距离通过以下方式确定:将已搭建的神经网络在第一训练集上完成训练,得到训练后的神经网络;设置该训练后的神经网络在第二训练集上提取已采集的图片特征并进行聚类运算,得到该已采集的图片的每一类的类内空间密集点;分别获取该已采集的图片与该第一类内所有空间密集点的距离,得到距离集
[0158]
这样,网络可以准确地预测与类内最近密集点的距离和与类中心的距离。
[0159]
在一个可选地实施例中,上述第三距离、该第四距离通过以下方式确定:设置该图片与最近的k1个类的类中心的距离的平均值,作为该第三距离,其中k1为大于0的整数;设置该图片与最近的k1个类的密集点最近的距离的平均值,作为该第四距离。
[0160]
具体地,人脸在特征空间中,分布是不均匀的。有些人脸与其他人脸的类间距离大,有些人脸则与其他人脸的类间距离小。我们希望能够预测出类间最近邻距离。对于同类中的人脸,类间距离越大,则质量更好。所以我们提出“类间距离”的简单算法:与最近的k个类的密集点最近的距离求平均,称作“最近邻近边缘距离”;与最近的k个类的类中心的距离求平均,称作“最近邻距离”。
[0161]
或者,上述第三距离、第四距离还通过以下方式确定:
[0162]
步骤s601,计算该图片所对应的类中心与类内所有密集点之间的平均距离,得到类内散度;
[0163]
步骤s602,设置该图片与最近的k2个类的类中心的距离分别乘上该类内散度并求平均值,作为该第三距离,其中k2为大于0的整数;
[0164]
步骤s603,设置该图片与最近的k2个类的密集点最近的距离分别乘上该类内散度并求平均值,作为该第四距离。
[0165]
具体地,为了更加准确地估计“类间距离”,我们提出较为复杂的算法。我们首先要计算出类内的另一个统计量:类内散度。类内散度的定义为:类中心与类内所有密集点之间的平均距离。类内散度越大,其空间重要性上升;类内散度较小,空间重要性下降。我们提出“类间距离”的复杂算法:与最近的k个类的密集点最近的距离,分别乘上其散度求平均,称作“最近邻近边缘距离”;与最近的k个类的类中心的距离,分别乘上其散度求平均,称作“最近邻距离”。在这个算法里,散度相当于作为权重,来有效区分邻近节点的重要程度。我们将k取为10,也就是说,对于某个样本x,我们求出与其最近的10个其他类类中心的距离的加权(权重是散度)平均值,来作为“最近邻距离”;同时,我们求出与其最近的10个其他类密集点的距离的加权(权重是散度)平均值,来作为“最近邻近边缘距离”。遍历一遍所有样本,我们可以得到所有样本的“最近邻距离”ec和“最近邻近边缘距离”en。
[0166]
又或者,可以搭建网络来预测,网络如同上述一中说明的情况。有若干共享参数矩阵,输出为m,两个主分支。一个主分支预测类内距离。另一个主分支则预测“类间距离”。首先包含2个参数矩阵,第一个参数矩阵w31的维度是(512,512),后接relu激活;第二个参数矩阵w32的维度是(512,256),后接tanh激活,设输出为b。然后接两个次分支,第一个次分支有两个参数矩阵,分别为w41(256,128),mish激活,w42(128,1),sigmoid运算,用于预测最近邻近边缘距离;第二个次分支有两个参数矩阵,分别为w51(256,128),swish激活,w52(128,1),sigmoid运算,用于预测最近邻距离。公式如下:
[0167]
b=tanh(w
32
relu(w
31
m))
[0168]en
=sigmoid(w
42
mish(w
41
b))
[0169]
ec=sigmoid(w
52
swish(w
51
b))
[0170]
还可以计算损失函数采用平方差损失:
[0171]
le=(e
n-en)2 (e
c-ec)2[0172]
这样,网络可以准确地预测与类间最近邻距离和类间最近邻近边的距离。
[0173]
可以看到,预测类内距离的分支和预测类间距离的分支,结构大体相似。
[0174]
本实施例提出,因为类内距离和类间距离有一定的相关性,设计一个联合两个主分支的计算模块,来计算散度。第一个主分支w02输出为f1,第二个主分支w41输出为f2,第二个主分支w51输出为f3,三个向量拼接,接一个(384,128)矩阵和swish激活,一个(128,1)矩阵和sigmoid函数,得到一个值,即散度值。
[0175]
网络计算的散度值与真实散度值采用平方差损失计算:
[0176]
ls=(s-s)2[0177]
最终的损失是三个损失相加:
[0178]
l=ld le ls[0179]
在一个可选地实施例中,上述第一确定模块402还用于通过以下公式计算该图片对应的目标参数y:
[0180][0181]
在该目标参数小于第一预设阈值时,将该图片确定为目标图片。
[0182]
或者,上述第一确定模块402还用于通过以下公式计算该图片对应的目标参数y:
[0183][0184]
在该目标参数小于第二预设阈值时,将该图片确定为目标图片。
[0185]
通过上述第一确定模块402确定出目标图片,可以进一步提高建档的精度。
[0186]
下面结合具体示例,对本实施例进行举例说明。
[0187]
人脸建档,即对一个人建档,要求在这个人众多的抓拍图中,选取若干张最具有代表性、质量最高的人脸图像进行建档。建档图片选取得好,则可以很大地提高识别的召回率和精确率。
[0188]
如果在算法部署的设备上,没有对算法模型个数和算法运行时间的限制,我们会前置几个质量模型。如,我们会训练图像模糊度识别模型,面部遮挡识别模型、人脸位姿模型,一张人脸图片会先经过上述三个模型,可以得到模糊度分值、遮挡分值、位姿分值,代表图像是否模糊,是否发生遮挡,位姿是否过大。显然,质量不好的图片会被过滤掉。
[0189]
剩下的图片,我们会进入本文提出的空间估计神经网络。当然,如果算法部署设备有算力和内存的限制,我们可以不需要上述多质量模型,而直接只使用本文提出的网络模型。本文的单模型,就可以获得超过多质量模型的效果,并输出更丰富的空间估计。
[0190]
对于一张图片,经过本文网络,可以得到dn,dc,en,ec和类内散度s,dn越小,en越大,越适合作为建档的图片。我们提出建档指标y如下:
[0191][0192]
对于同一个人的多张抓拍图,取y最小的图片作为建档图片。
[0193]
或者,建档指标可以改为:
[0194][0195]
在这些距离上添加指数,可以作为权重值;共享参数矩阵可以2-4;
[0196]
只预测dn和en,或只预测dn和dc,即预测本技术方案的子集,在网络结构上删减一些分支,都属于本技术范畴。
[0197]
在一个可选地实施例中,上述第二确定模块403还用于计算该目标图片与已有图片之间的相似度;根据相似度,选择是否替换该已有图片。
[0198]
通过上述第二确定模块403,可以选择出质量更好的图片作为建档图片。
[0199]
下面结合具体示例,对本实施例进行举例说明。
[0200]
可选地,如果该人已有建档图片p,新抓拍到若干图片。若新抓拍图里,某张人脸图p1与建档图p相似度小于0.5,但dc《0.02,则该图也可以作为建档图。当然,如果新抓拍图中,某张人脸图的y值比已建档图小,则可以进行替换。
[0201]
上述还可以调整人脸识别的分值。
[0202]
给两张人脸图片,新人脸识别相似度score为:
[0203][0204]
可见,建档指标y越小,上式的相似度得分越高。
[0205]
我们使用这个新的相似度来计算人脸是否属于同一类。
[0206]
此外,如果质量太差,如类内距离太大,类间距离太小,我们可以将该图片舍弃,来防止图片攻击。
[0207]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
[0208]
图5是本公开实施例提供的电子设备5的示意图。如图5所示,该实施例的电子设备5包括:处理器501、存储器502以及存储在该存储器502中并且可在处理器501上运行的计算机程序503。处理器501执行计算机程序503时实现上述各个方法实施例中的步骤。或者,处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能。
[0209]
示例性地,计算机程序503可以被分割成一个或多个模块/单元,一个或多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本公开。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在电子设备5中的执行过程。
[0210]
电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备5可以包括但不仅限于处理器501和存储器502。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,电子设备还可以包括输入输出设备、网络接入设备、总线等。
[0211]
处理器501可以是中央处理单元(central processing unit,cpu),也可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路
(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0212]
存储器502可以是电子设备5的内部存储单元,例如,电子设备5的硬盘或内存。存储器502也可以是电子设备5的外部存储设备,例如,电子设备5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器502还可以既包括电子设备5的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及电子设备所需的其它程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
[0213]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0214]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0215]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
[0216]
在本公开所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0217]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0218]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0219]
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本公开实现上述实施例方法
中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0220]
以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献