本发明涉及人脸识别,具体涉及一种基于同态加密和聚类算法的人脸识别方法。
背景技术:
1、人脸识别技术被广泛应用于执法、支付、交通出行、门禁和电子政务等领域。传统的人脸认证系统通常通过建立人脸特征模板库进行身份验证,但是这种方法面临着诸多安全隐患,例如,存储在云端数据库上的明文特征数据容易遭受泄漏和窃取的风险。为了解决这些问题,近年来一种基于同态加密的人脸识别技术逐渐受到关注。
2、基于同态加密的人脸识别技术可以将人脸特征值加密,并在不暴露特征信息的情况下实现人脸特征匹配。这种技术可以有效地保护人脸特征信息不被未经授权的第三方访问和窃取。同时,该技术还可以通过对加密数据进行同态运算,实现在密文域上的人脸特征匹配,从而提高身份验证的安全性和准确性。但是,现有基于同态加密的人脸识别技术一般都采用传统的人脸特征值密文搜索算法,在数据量增加时会导致搜索时间成倍增加,大大影响人脸识别的效率。
技术实现思路
1、本发明的目的在于提供一种基于同态加密和聚类算法的人脸识别方法,该方法有利于同时提高人脸识别的安全性、准确率和效率。
2、为了实现上述目的,本发明采用的技术方案是:一种基于同态加密和聚类算法的人脸识别方法,包括以下步骤:
3、步骤s1、本地通过摄像头获取当前人脸图像,然后从人脸图像中找出人脸,并获取人脸明文特征值;
4、步骤s2、本地利用公钥对人脸明文特征值进行同态加密,并将得到的人脸密文特征值发送至云端;
5、步骤s3、云端在获得本地上传的当前人脸密文特征值之后,计算人脸密文特征值与各聚类中心的欧氏距离平方密文,并将人脸密文特征值与各聚类中心的欧氏距离平方密文传输至本地;
6、步骤s4、本地获得云端发送来的欧氏距离平方密文,利用本地的私钥进行解密;然后选取距离最小的d个簇并记录相应编号,再将距离最小d个簇的编号发送至云端;
7、步骤s5、云端接收到本地返回的距离最小d个簇的编号后,逐一计算相应簇中所有人脸密文特征值与当前人脸密文特征值之间的欧氏距离平方密文,并将人脸密文特征值对应的人物编号及密文结果一起传输至本地;
8、步骤s6、本地利用私钥对云端发来的密文进行解密,并进行开方计算,进而获得最后的人脸欧几里得距离;然后由获得的人脸欧几里得距离更新字典,从字典中获得最小距离,并判断获得的最小距离是否小于设定阈值,是则表示人脸识别成功,并返回字典中对应的人物编号,否则表示人脸识别失败。
9、进一步地,步骤s3中,计算人脸密文特征值与各聚类中心的欧氏距离平方密文的具体方法为:先通过计算两个密文向量之间的密文差值,然后计算两个密文向量差值的密文平方,最后将密文向量进行旋转,并进行前k项和相加,获得最后的欧氏距离平方密文。
10、进一步地,步骤s6中,人脸欧几里得距离的计算公式为:
11、
12、其中,x表示第一个人脸特征值,y表示第二个人脸特征值,dist(x,y)表示人脸特征值欧式距离,xi表示第一个人脸特征值第i项,yi表示第二个人脸特征值第i项,n表示人脸特征值有n维。
13、进一步地,在进行人脸识别之前,本地先使用ckks算法的同态加密库进行密钥初始化,生成公钥、私钥,并将公钥发送给云端。
14、进一步地,在进行人脸识别之前,云端先对云端的密文数据库进行密文聚类,包括聚类中心初始化和密文聚类两个过程;
15、聚类中心初始化的具体方法为:首先设定一个k值,表示要将云端数据库中的数据集分成k个簇;然后随机选择k个数据点作为聚类中心,该些聚类中心用于计算每个数据点与其最近的聚类中心之间的距离;
16、密文聚类具体包括以下步骤:
17、1)计算密文向量差值
18、对于每个人脸密文特征值,计算其与每个聚类中心之间的欧式距离平方密文;
19、人脸密文特征值计算判断的欧几里得距离公式如下:
20、
21、通过密文减函数,获得欧几里得距离中的(xi-yi),再使用密文乘法,获得(xi-yi)2,然后使用密文加法以及密文旋转,计算获得人脸密文特征值与聚类中心之间的欧式距离平方密文为:
22、云端将获得的欧式距离平方密文传输至本地进行解密运算;
23、2)本地处理聚类数据
24、本地获得云端传输的欧式距离平方密文,通过本地存储的私钥进行解密,获得所有脸密文特征值与聚类中心的距离;
25、通过比对明文域中特征值与各聚类中心的距离,将每个数据点归入与其距离最近的聚类中心所属的簇;
26、然后将每个数据点所属的簇信息传输至云端,让云端计算新的聚类中心;
27、3)云端计算新聚类中心
28、云端获得本地传输的每个数据点所属的簇信息后,对于每个簇,计算该簇内所有数据点的密文平均值作为新聚类中心向量,并将其传输至本地进行下一步计算;
29、4)本地检查是否收敛
30、本地获得云端传输的新聚类中心向量,使用私钥进行解密,判断其与上一次传输的聚类中心向量距离;每个簇的新旧聚类中心之间的欧氏距离为:
31、
32、判断获得的新旧聚类中心距离之和是否小于设定阈值,或迭代次数达到最大值,如果新旧聚类中心距离之和未小于设定阈值且未达到最大迭代次数,则继续执行步骤1)-4);每次迭代之后,迭代次数加一,直至新旧聚类中心距离之和小于设定阈值或达到最大迭代次数。
33、与现有技术相比,本发明具有以下有益效果:提供了一种基于同态加密和聚类算法的人脸识别方法,该方法结合了同态加密和聚类算法,将数据库中的密文数据进行聚类,同时在匹配时先进行聚类中心距离的计算,然后再在最小簇中进行特征值匹配,从而可以在保证人脸识别的准确率与安全性的基础上,极大地提高人脸识别的效率。因此,本发明具有很强的实用性和广阔的应用前景。
1.一种基于同态加密和聚类算法的人脸识别方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于同态加密和聚类算法的人脸识别方法,其特征在于,步骤s3中,计算人脸密文特征值与各聚类中心的欧氏距离平方密文的具体方法为:先通过计算两个密文向量之间的密文差值,然后计算两个密文向量差值的密文平方,最后将密文向量进行旋转,并进行前k项和相加,获得最后的欧氏距离平方密文。
3.根据权利要求1所述的基于同态加密和聚类算法的人脸识别方法,其特征在于,步骤s6中,人脸欧几里得距离的计算公式为:
4.根据权利要求1所述的基于同态加密和聚类算法的人脸识别方法,其特征在于,在进行人脸识别之前,本地先使用ckks算法的同态加密库进行密钥初始化,生成公钥、私钥,并将公钥发送给云端。
5.根据权利要求1所述的基于同态加密和聚类算法的人脸识别方法,其特征在于,在进行人脸识别之前,云端先对云端的密文数据库进行密文聚类,包括聚类中心初始化和密文聚类两个过程;