基于区块链的人脸识别方法及系统与流程

文档序号:22967532发布日期:2020-11-19 21:41阅读:443来源:国知局
基于区块链的人脸识别方法及系统与流程

本发明涉及区块链技术领域,具体地,涉及一种基于区块链的人脸识别方法及系统。



背景技术:

深度学习属于机器学习的一个分支体系,近些年来在语音识别、自然语言处理、计算机视觉等多个应用领域中取得了突破性进展。深度学习技术在人脸识别方面的应用促进了计算机视觉领域的发展,给人们的生活带来了极大的便利。

基于深度学习技术进行人脸识别,一般是通过训练人的面部图像数据,提取个体的面部图像特征建立面部特征模型的实例。此处构建的人脸识别模型可以用来做个体的身份认证,如登陆系统使用人脸识别确认登陆的用户身份等。在使用此人脸识别模型进行认证时,对于给定的人脸图片,模型给出预测值以确定是否为用户本人登陆。使用此模型进行人脸识别时,预测效果取决于模型实例的准确性及泛化性。深度学习算法在训练过程中需要大量训练数据才能得到理想的训练效果,然而,目前单个机构之间拥有的人脸识别训练数据集相互独立无法共享,导致用户使用每一个机构的模型时都需要重新采集面部图像。另外,面部图像数据往往涉及用户隐私,未经用户授权每个机构都无法直接将其共享给其他机构,因此无法通过直接共享用户的面部图像数据集来提升人脸识别的准确性。

协作深度学习是一种分布式的深度学习方法,利用协作深度学习训练人脸面部数据进行人脸识别时,参与的机构只需要在其本地使用其拥有的用户面部图像数据进行训练并将模型参数上传至中心化参数服务器,由参数服务器进行参数聚合。这种方法实现了机构之间训练数据共享效果的同时也保护了机构本地用户面部图像数据的隐私性。然而研究表明,协作深度学习中未经认证的恶意的参与机构可以通过在本地训练对抗生成网络进而获取其他参与机构的隐私面部图像训练数据,导致用户的隐私信息泄露。



技术实现要素:

本发明实施例的主要目的在于提供一种基于区块链的人脸识别方法及系统,以在提升人脸识别准确率的同时保护用户隐私数据。

为了实现上述目的,本发明实施例提供一种基于区块链的人脸识别方法,包括:

获取用户的当前面部图像数据;

将当前面部图像数据输入最优人脸识别模型中,得到当前人脸识别结果;其中,创建最优人脸识别模型的步骤包括:将人脸识别模型参数上传至区块链网络以使区块链网络根据人脸识别模型参数生成全局模型参数;根据全局模型参数创建最优人脸识别模型。

本发明实施例还提供一种基于区块链的人脸识别系统,包括:

获取单元,用于获取用户的当前面部图像数据;

人脸识别结果单元,用于将当前面部图像数据输入最优人脸识别模型中,得到当前人脸识别结果;其中,创建最优人脸识别模型的步骤包括:将人脸识别模型参数上传至区块链网络以使区块链网络根据人脸识别模型参数生成全局模型参数;根据全局模型参数创建最优人脸识别模型。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现所述的基于区块链的人脸识别方法的步骤。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现所述的基于区块链的人脸识别方法的步骤。

本发明实施例的基于区块链的人脸识别方法及系统可以在提升人脸识别准确率的同时保护用户隐私数据。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中基于区块链的人脸识别方法的流程图;

图2是本发明一实施例中区块链网络及参与结构的示意图;

图3是本发明实施例中创建最优人脸识别模型的流程图;

图4是本发明一实施例中创建最优人脸识别模型的示意图;

图5是本发明实施例中基于区块链的人脸识别系统的结构框图;

图6是本发明实施例中计算机设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

鉴于现有技术无法在提升人脸识别准确性的同时防止用户隐私泄露,本发明实施例提供一种基于区块链的人脸识别方法,以在提升人脸识别准确率的同时保护用户隐私数据。以下结合附图对本发明进行详细说明。

区块链是一种依次连接的链式存储结构,它通过共识机制保证了存储的数据的一致性和不可篡改性。智能合约是存储在区块链网络中的一段自动执行的电子合同代码,开发者可以根据需求编写合约代码完成相应的功能。本发明去除了传统协作深度学习中的中心化参数服务器,参与机构之间采用去中心化的环形架构,并使用混合精度训练提高面部图像数据训练过程中参与机构之间的通信效率。本发明使用区块链技术保护参与机构的训练数据隐私性,并通过相似性检测算法,一定程度上杜绝了恶意参与者,进一步保护了参与机构的隐私训练数据集,并提高最终构建的人脸识别模型的准确性和泛化性;该深度学习过程中包含n个相互独立的参与机构,每个参与的机构同时也是一个区块链节点,在本地保存完整的区块信息。参与机构之间通过区块链网络发送和接收更新的模型参数数据,并由区块链中运行的智能合约进行模型参数聚合。

图1是本发明一实施例中基于区块链的人脸识别方法的流程图。图2是本发明一实施例中区块链网络及参与结构的示意图。如图1-图2所示,基于区块链的人脸识别方法包括:

s101:获取用户的当前面部图像数据。

s102:将当前面部图像数据输入最优人脸识别模型中,得到当前人脸识别结果。

其中,创建最优人脸识别模型的步骤包括:将人脸识别模型参数上传至区块链网络以使区块链网络根据人脸识别模型参数生成全局模型参数;根据全局模型参数创建最优人脸识别模型。

当前人脸识别结果为各个用户身份的概率,最大概率对应的用户身份即为当前面部图像数据的用户身份。区块链网络中共有n个区块链节点,即对应有n个参与机构。如图2所示,n=5,则共有p1-p5共五个参与机构。参与机构的身份需要经过验证为合法用户,是经过认证系统保证为合法且拥有可信来源用户面部图像数据的机构。对于某一个特定的模型训练任务,所有参与机构协商好共同的训练目标,使用同样的模型训练方法。参与机构之间构建区块链联盟网络,搭建深度学习训练所需服务器环境,如基于pytorch框架实现深度学习模型的训练。

具体实施时,本发明可以采用异步随机梯度下降法进行深度学习训练,学习目标为训练一个适用于人脸识别的最优人脸识别模型,各参与机构可协商是否使用预训练模型,如果使用则需指出使用何种预训练模型,如facenet等。

图1所示的基于区块链的人脸识别方法的执行主体可以为基于区块链的人脸识别系统,基于区块链的人脸识别系统与对应的区块链节点构成参与结构。由图1所示的流程可知,本发明实施例的基于区块链的人脸识别方法可以在提升人脸识别准确率的同时保护用户隐私数据。

图3是本发明实施例中创建最优人脸识别模型的流程图。图4是本发明一实施例中创建最优人脸识别模型的示意图。如图3-图4所示,将人脸识别模型参数上传至区块链网络以使区块链网络根据人脸识别模型参数生成全局模型参数;根据全局模型参数创建最优人脸识别模型具体包括:

执行如下迭代处理:

s201:将人脸识别模型参数上传至区块链网络中对应的区块链节点进行广播,以使区块链网络的其中一个区块链节点根据来自各个区块链节点的人脸识别模型参数生成全局模型参数并进行广播。

其中,区块链网络中的每个区块链节点均位于一个参与机构中,并与一个基于区块链的人脸识别系统对应。n个参与机构会通过内部的区块链节点上传本地的人脸识别模型参数。如图4所示,上传人脸识别模型参数即上传本地更新。

所有参与机构在其本地启动区块链联盟网络,并在网络中分别部署用于参数聚集的智能合约contractagg和用于模型评估的智能合约contracteval。区块链联盟网络仅允许已经认证的参与机构接入网络,如基于以太坊搭建区块链联盟链,如图2所示。可以使用solidity语言编写用于参数聚集和模型评估的智能合约,并部署于联盟链中。

一实施例中,区块链网络的其中一个区块链节点根据来自各个区块链节点的人脸识别模型参数生成全局模型参数包括:

区块链网络的其中一个区块链节点通过智能合约contractagg完成参数聚集,并根据预设的相似度阈值和各个人脸识别模型参数之间的相似度筛选人脸识别模型参数,根据筛选后的人脸识别模型参数生成全局模型参数并进行广播。

具体实施时,智能合约contractagg根据余弦相似性或杰卡德相似性算法计算任意两个参与机构上传的人脸识别模型参数之间的相似性。如果该相似性大于相似度阈值,则删除该相似性对应的其中一个人脸识别模型参数。根据删除后的人脸识别模型参数生成全局模型参数并进行广播。其中,全局模型参数可以为删除后的人脸识别模型参数的和的平均值。

s202:获取全局模型参数,根据全局模型参数创建人脸识别模型。

如图4所示,获取全局模型参数即下载全局更新。其中,下载全局更新可以通过向合约地址发起一笔任意类型的交易实现,调用以太坊提供的api查询区块数据以获取全局更新。

s203:根据本地人脸测试数据确定人脸识别模型的准确率。

在执行s203之后,还包括:将人脸识别模型的准确率上传至区块链网络中对应的区块链节点进行广播,以使区块链网络的其中一个区块链节点通过智能合约contracteval根据来自各个区块链节点的人脸识别模型的准确率确定打包奖励和区块链打包节点并将打包奖励发送至区块链打包节点,区块链打包节点获得打包奖励。

具体实施时,智能合约contracteval根据人脸识别模型的准确率生成人脸识别模型的评估值,根据评估值确定第j轮迭代的打包奖励rewardj,将评估值的最大值对应的区块链节点作为区块链打包节点,区块链打包节点上传的人脸识别模型参数为最优人脸识别模型参数。

s204:判断准确率是否大于预设准确率。

s205:当准确率大于预设准确率时,确定人脸识别模型为最优人脸识别模型。

s206:当准确率小于或等于预设准确率时,根据本地人脸训练数据更新全局模型参数,确定更新后的全局模型参数为人脸识别模型参数,继续执行迭代处理。

传统的深度学习需要将所有训练数据归集到同一组服务器或数据中心进行存储,因此可能会出现隐私数据泄露的情况。如图2所示,本发明无需上传本地训练数据,只需要参与机构把本地人脸训练数据保留在本地设备上即可。

其中,本地人脸训练数据为各参与机构使用图像采集设备如手机等采集到的用户的历史面部图像数据,包括历史面部图像数据和历史人脸实际结果。

根据本地人脸训练数据更新全局模型参数包括:将历史面部图像数据输入人脸识别模型中,得到历史人脸识别结果;根据历史人脸实际结果和历史人脸识别结果确定精度损失;根据精度损失和预设的学习率更新全局模型参数。

其中,全局模型参数和人脸识别模型参数均包括参数权重和参数偏置,可以通过随机梯度下降算法更新全局模型参数。在使用随机梯度下降算法对本地的数据进行训练时,为了减小模型参数体积,提高通信效率,本发明在梯度正反向传播时使用fp16浮点半精度张量,在模型更新阶段使用fp32浮点单精度张量。以更新参数权重为例,通过如下公式更新全局模型参数权重:

其中,wj+1为更新后的全局模型参数,即第j+1次迭代中上传至区块链网络的人脸识别模型参数权重,wj为第j次迭代中的全局模型参数,α为学习率,l为学习率。全局模型参数和人脸识别模型参数使用fp16浮点半精度张量

本发明实施例的具体流程如下:

1、人脸识别系统将人脸识别模型参数上传至区块链网络中对应的区块链节点进行广播。人脸识别系统和对应的区块链节点构成参与机构。

2、区块链网络的其中一个区块链节点通过智能合约contractagg完成参数聚集,智能合约contractagg根据余弦相似性或杰卡德相似性算法计算任意两个参与机构上传的人脸识别模型参数之间的相似性。如果该相似性大于相似度阈值,则删除该相似性对应的其中一个人脸识别模型参数,根据删除后的人脸识别模型参数生成全局模型参数并进行广播。

3、人脸识别系统获取全局模型参数,根据全局模型参数创建人脸识别模型。

4、人脸识别系统根据本地人脸测试数据确定人脸识别模型的准确率。

5、人脸识别系统将人脸识别模型的准确率上传至区块链网络中对应的区块链节点进行广播。

6、区块链网络的其中一个区块链节点通过智能合约contracteval根据来自各个区块链节点的人脸识别模型的准确率确定打包奖励和区块链打包节点并将打包奖励发送至区块链打包节点,区块链打包节点获得打包奖励。

7、人脸识别系统判断准确率是否大于预设准确率。当准确率大于预设准确率时,确定人脸识别模型为最优人脸识别模型,否则将历史面部图像数据输入人脸识别模型中,得到历史人脸识别结果;根据历史人脸实际结果和历史人脸识别结果确定精度损失;根据精度损失和预设的学习率更新全局模型参数,确定更新后的全局模型参数为人脸识别模型参数,返回步骤1。

8、获取用户的当前面部图像数据。

9、将当前面部图像数据输入基于本地人脸训练数据和区块链网络中区块链节点的人脸识别模型参数创建的最优人脸识别模型中,得到当前人脸识别结果。

综上,本发明具有以下有益效果:

1、本发明基于区块链技术训练面部图像数据构建人脸识别,去除了协作深度学习中的中心化参数服务器,避免了中心化的参数服务器作恶,防止其窃取协作深度学习参与机构的用户面部图像数据,保护了面部图像数据的隐私性和用户的隐私信息。

2、本发明通过区块链中的智能合约生成全局模型参数、对参与机构上传的人脸识别模型参数进行评估,将上传最优人脸识别模型参数的参与机构作为下一轮打包区块的节点,激励参与机构分享最优人脸识别模型参数,间接提高了最终构建的人脸识别模型的准确性及泛化性,提高使用模型进行人脸识别时的准确率。

3、本发明采用相似性算法检测上传相似的人脸识别模型参数的参与机构,一定程度上杜绝了参与机构上传恶意参数,进一步提高人脸识别模型的准确性和泛化性。

4、本发明基于区块链构建的深度学习架构,参与机构只需向本地发送和接收全局模型参数,提高了通信效率。参与机构进行本地训练,在梯度正反向传播时使用fp16浮点半精度张量,在模型更新阶段使用fp32浮点单精度张量,减小了模型参数的体积,提高了区块链网络传播的速度,进而加快了面部图像数据的训练速度,加快了人脸识别模型构建速度。

5、本发明基于分布式的区块链技术通过间接实现参与机构之间用户面部图像数据的“共享”,使得用户在使用人脸识别系统时无需多次采集面部数据,提高了使用的便捷性,进而促进了人脸识别系统在日常生活中的应用,同时也保护了参与机构本地用户的面部图像数据的隐私性。

基于同一发明构思,本发明实施例还提供了一种基于区块链的人脸识别系统,由于该系统解决问题的原理与基于区块链的人脸识别方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。

图5是本发明实施例中基于区块链的人脸识别系统的结构框图。如图5所示,基于区块链的人脸识别系统包括:

获取单元,用于获取用户的当前面部图像数据;

人脸识别结果单元,用于将当前面部图像数据输入最优人脸识别模型中,得到当前人脸识别结果;其中,创建最优人脸识别模型的步骤包括:将人脸识别模型参数上传至区块链网络以使区块链网络根据人脸识别模型参数生成全局模型参数;根据全局模型参数创建最优人脸识别模型。

在其中一种实施例中,还包括:

最优人脸识别模型创建单元,用于执行如下迭代处理:

将人脸识别模型参数上传至区块链网络中对应的区块链节点进行广播,以使区块链网络的其中一个区块链节点根据来自各个区块链节点的人脸识别模型参数生成全局模型参数并进行广播;

获取全局模型参数,根据全局模型参数创建人脸识别模型;

根据本地人脸测试数据确定所述人脸识别模型的准确率;

当准确率大于预设准确率时,确定人脸识别模型为最优人脸识别模型,否则根据本地人脸训练数据更新全局模型参数,确定更新后的全局模型参数为人脸识别模型参数,继续执行迭代处理。

在其中一种实施例中,最优人脸识别模型创建单元具体用于:

区块链网络的其中一个区块链节点根据预设的相似度阈值和各个人脸识别模型参数之间的相似度筛选人脸识别模型参数,根据筛选后的人脸识别模型参数生成全局模型参数并进行广播。

在其中一种实施例中,本地人脸训练数据包括历史面部图像数据和历史人脸实际结果;

最优人脸识别模型创建单元具体用于:

将历史面部图像数据输入人脸识别模型中,得到历史人脸识别结果;

根据历史人脸实际结果和历史人脸识别结果确定精度损失;

根据精度损失和预设的学习率更新全局模型参数。

在其中一种实施例中,还包括:

奖励单元,用于将人脸识别模型的准确率上传至区块链网络中对应的区块链节点进行广播,以使区块链网络的其中一个区块链节点根据来自各个区块链节点的人脸识别模型的准确率确定打包奖励和区块链打包节点并将打包奖励发送至区块链打包节点。

综上,本发明实施例的基于区块链的人脸识别系统可以在提升人脸识别准确率的同时保护用户隐私数据。

本发明实施例还提供能够实现上述实施例中的基于区块链的人脸识别方法中全部步骤的一种计算机设备的具体实施方式。图6是本发明实施例中计算机设备的结构框图,参见图6,所述计算机设备具体包括如下内容:

处理器(processor)601和存储器(memory)602。

所述处理器601用于调用所述存储器602中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的基于区块链的人脸识别方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

获取用户的当前面部图像数据;

将当前面部图像数据输入最优人脸识别模型中,得到当前人脸识别结果;其中,创建最优人脸识别模型的步骤包括:将人脸识别模型参数上传至区块链网络以使区块链网络根据人脸识别模型参数生成全局模型参数;根据全局模型参数创建最优人脸识别模型。

综上,本发明实施例的计算机设备可以在提升人脸识别准确率的同时保护用户隐私数据。

本发明实施例还提供能够实现上述实施例中的基于区块链的人脸识别方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于区块链的人脸识别方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

获取用户的当前面部图像数据;

将当前面部图像数据输入最优人脸识别模型中,得到当前人脸识别结果;其中,创建最优人脸识别模型的步骤包括:将人脸识别模型参数上传至区块链网络以使区块链网络根据人脸识别模型参数生成全局模型参数;根据全局模型参数创建最优人脸识别模型。

综上,本发明实施例的计算机可读存储介质可以在提升人脸识别准确率的同时保护用户隐私数据。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1