人脸识别方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 12:22:51
【技术领域】
本发明涉及计算机图像数据处理技术领域,尤其涉及一种人脸识别方法、装置、电子设备及存储介质。
【背景技术】
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别。人脸识别分为1比1人脸识别和1比N人脸识别,1比1人脸识别即为一张底图照片和一张待比对图片中的人脸进行比对,来判断是否是同一个人。
在1比1人脸识别实际过程中,由于手机/平板或者其他终端的使用人员的操作不当,以及第三方APP接入问题造成上传到云端服务器进行图片比对时候出现图片翻转90度/180度/270度的情况,导致在云端服务器上进行人脸检测的过程中出现检测不到人脸的情况,从而造成识别失败。现有技术中为了避免人脸方向异常导致的人脸识别失败,在人脸识别过程中对所有图像均进行人脸方向识别及翻转,但是经过统计分析,出现图像翻转的情况占比总调用次数约1-2%,对所有图像进行人脸方向识别会导致单次请求耗时高,响应慢。
【发明内容】
本发明的目的在于提供一种人脸识别方法、装置、电子设备及存储介质,以解决现有技术中人脸识别单次请求计算量高及耗时高的技术问题。
本发明的技术方案如下:提供一种人脸识别方法,包括:
从数据库中获取待识别的目标数据,其中,所述目标数据包括标准图像、待识别图像以及标签类型,所述标签类型包括初始标签和重识别标签;
当所述目标数据的标签类型为初始标签时,对所述目标数据的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;当检测到所述待识别图像中不存在人脸时,将所述目标数据中的标签类型更新为重识别标签并将所述目标数据返回至所述数据库;
当所述目标数据的标签类型为重识别标签时,对所述目标数据的待识别图像进行人脸方向识别,根据方向识别结果对所述待识别图像进行方向调整,对调整后的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;
当检测到所述待识别图像或所述调整后的待识别图像中存在人脸时,将所述标准图像和所述待识别图像进行人脸对齐,利用预先训练的人脸特征提取模型分别对人脸对齐后的所述标准图像和所述待识别图像进行特征提取,分别得到标准人脸特征数据和待识别人脸特征数据;
将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,并将比对结果返回至所述目标数据的对应终端。
可选地,所述对所述目标数据的待识别图像进行人脸方向识别,包括:
将所述待识别图像输入至resnet50网络,对所述待识别图像进行人脸方向识别;
所述resnet50网络按照如下步骤进行训练:
获取至少一个训练样本,其中,所述训练样本包括人脸翻转图像以及真实方向类别标注,所述人脸翻转图像是分别对正脸图像进行向左翻转、向下翻转以及向右翻转得到的,所述方向类别标注包括向左翻转、向下翻转以及向右翻转;
将所述训练样本输入至待训练的resnet50网络进行特征提取,将所提取特征输入至resnet50网络的策略函数中,得到所述策略函数输出的每一预设方向类别的预测概率值;
根据每一预设方向类别的预测概率值以及所述真实方向类别标注,对所述策略函数的参数进行训练,直至所述策略函数收敛,得到训练完成的resnet50网络。
可选地,所述对调整后的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸,包括:
将所述待识别图像输入至多个人脸检测器中进行人脸检测,其中,所述多个人脸检测器所检测的人脸角度类型不同,所述人脸角度类型包括左侧脸、正脸以及右侧脸;
当存在至少一个人脸检测器的检测结果为是时,判断所述待识别图像中存在人脸。
可选地,所述将所述标准图像和所述待识别图像进行人脸对齐,包括:
对所述标准图像进行人脸关键点定位,得到对应的标准人脸关键点;
所述待识别图像进行人脸关键点定位,得到对应的人脸关键点;
根据所述标准关键点和所述人脸关键点,获取所述待识别图像对应的用于实现人脸关键点对齐的第一变换数据,其中,所述第一变换数据包括第一尺寸变换数据和第一平移变换数据;
对所述第一变换数据进行平滑处理,得到第二变换数据;
根据所述第二变换数据对所述待识别图像进行人脸关键点对齐,得到人脸对齐后的所述待识别图像。
可选地,所述利用预先训练的人脸特征提取模型分别对人脸对齐后的所述标准图像和所述待识别图像进行特征提取,分别得到标准人脸特征数据和待识别人脸特征数据,包括:
分别将所述标准图像和所述待识别图像输入至所述人脸特征提取模型中,得到所述标准图像和所述待识别图像各自对应的特征图;
按照预设的划分方式将所述特征图划分为不同区域,提取所述特征图不同区域的高维特征;
将所述高维特征进行降维处理,得到所述标准图像的不同区域的低维特征以及所述待识别图像的不同区域的低维特征。
可选地,所述将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,包括:
计算所述标准图像和所述待识别图像的相同区域的低维特征,分别得到不同区域的相似度值;
根据不同区域的预设重要性权重以及不同区域的相似度值,计算所述标准人脸特征数据和所述待识别人脸特征数据的相似度,将所述相似度作为比对结果。
可选地,所述将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,并将比对结果返回至所述目标数据的对应终端之后,还包括:
获取标签类型为重识别标签的目标数据的返回时间;
获取当前时间与所述返回时间的差值,当所述差值大于预设间隔时间时,生成所述目标数据的人脸识别请求。
本发明的另一技术方案如下:提供一种人脸识别装置,包括:
目标数据获取模块,用于从数据库中获取待识别的目标数据,其中,所述目标数据包括标准图像、待识别图像以及标签类型,所述标签类型包括初始标签和重识别标签;
人脸检测模块,用于当所述目标数据的标签类型为初始标签时,对所述目标数据的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;当检测到所述待识别图像中不存在人脸时,将所述目标数据中的标签类型更新为重识别标签并将所述目标数据返回至所述数据库;
人脸方向识别模块,用于当所述目标数据的标签类型为重识别标签时,对所述目标数据的待识别图像进行人脸方向识别,根据方向识别结果对所述待识别图像进行方向调整,对调整后的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;
人脸特征提取模块,用于当检测到所述待识别图像或所述调整后的待识别图像中存在人脸时,将所述标准图像和所述待识别图像进行人脸对齐,利用预先训练的人脸特征提取模型分别对人脸对齐后的所述标准图像和所述待识别图像进行特征提取,分别得到标准人脸特征数据和待识别人脸特征数据;
对比模块,用于将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,并将比对结果返回至所述目标数据的对应终端。
本发明的另一技术方案如下:提供一种电子设备,包括处理器、以及与所述处理器耦接的存储器,所述存储器存储有可被所述处理器执行的程序指令;所述处理器执行所述存储器存储的所述程序指令时实现上述的人脸识别方法。
本发明的另一技术方案如下:提供一种存储介质,所述存储介质内存储有程序指令,所述程序指令被处理器执行时实现上述的人脸识别方法。
本发明的人脸识别方法、装置、电子设备及存储介质,当人脸检测失败时,对待识别图像进行人脸方向识别和图像翻转,增加人脸识别准确率;同时,为了降低单次人脸识别请求的计算量和耗时,对目标数据的结构进行了改进,在目标数据中添加标签类型,通过标签类型对人脸识别流程进行了优化,对于标签类型为初始标签的目标数据直接进行人脸检测,人脸检测成功后进行人脸对齐和特征提取,人脸检测失败后,将初始标签更新为重识别标签并返回;对于标签类型为重识别标签的目标数据直接进行人脸方向识别和图像翻转,随后再进行人脸检测、人脸对齐及特征提取;通过上述方式,只有具有重识别标签的目标数据会进行人脸方向识别及翻转图像,避免由于需要对每个目标数据进行人脸方向识别及翻转图像导致单次人脸识别请求耗时高、计算量大,并且,对于待识别图像发生了图像翻转的目标数据,首次请求并未执行完整个人脸识别流程就快速返回了结果,再次请求才会进行人脸方向识别及翻转图像并执行完整个人脸识别流程,将整个执行流程分为两次请求,尽可能减少每次请求的计算量,有利于降低硬件资源使用量。
【附图说明】
图1为本发明第一实施例的人脸识别方法的流程图;
图2为本发明第一实施例的人脸识别方法中S103的子步骤流程图;
图3为本发明第一实施例的人脸识别方法中S103的另一子步骤流程图;
图4为本发明第一实施例的人脸识别方法中S104的子步骤流程图;
图5为本发明第一实施例的人脸识别方法中S104的另一子步骤流程图;
图6为本发明第一实施例的人脸识别方法中S105的子步骤流程图;
图7为本发明第二实施例的人脸识别方法的流程图;
图8为本发明第三实施例的人脸识别装置的结构示意图;
图9为本发明第四实施例的电子设备的结构示意图;
图10为本发明第五实施例的存储介质的结构示意图;
图11为不同人脸方向的待识别图像示例图;
图12为不同人脸角度类型的待识别图像示例图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明第一实施例的人脸识别方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。
如图1所示,该人脸识别方法包括步骤:
S101,从数据库中获取待识别的目标数据,其中,所述目标数据包括标准图像、待识别图像以及标签类型,所述标签类型包括初始标签和重识别标签。
其中,本实施例的应用场景为1:1人脸识别,在终端进行人脸验证时,终端中预存有标准图像(正脸图像,0°方向),用户现场拍摄一张待识别图像,将标准图像和待识别图像的图像对发送至云端服务器进行人脸比对,云端服务器将比对结果反馈至终端。一般情况下,用户现场拍摄的待识别图像为正脸图像(0°方向),但是,有时由于用户操作的问题或由于第三方APP接入的问题,用户现场拍摄的待识别图像在保存时发生翻转,为向左翻转(90°方向)、向下翻转(180°方向)或向右翻转(270°方向),请参阅图11所示。在本实施例中,标准图像为预先拍摄保存的标准正脸图像,不会出现翻转。
其中,标签类型包括初始标签和重识别标签,终端生成人脸识别请求时,采用初始标签,根据标准图像、待识别图像以及初始标签生成目标数据,将目标数据发送至云端服务器上的数据库内暂时存储以进行后续的人脸识别操作,重识别标签是目标数据在后续的人脸识别过程中出现人脸检测失败时生成的,当出现人脸检测失败时,目标数据中的标签类型更新为重识别标签并再次生成人脸识别请求,在后续的步骤S102中进行详细说明。
S102,当所述目标数据的标签类型为初始标签时,对所述目标数据的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;当检测到所述待识别图像中不存在人脸时,将所述目标数据中的标签类型更新为重识别标签并将所述目标数据返回至所述数据库。
其中,当所述目标数据的标签类型为初始标签时,说明该目标数据为初次人脸识别请求,此时不进行人脸方向识别,直接进行人脸检测。本步骤中的人脸检测与步骤S103中的人脸检测相同,将在步骤S103处详细说明。
其中,初次请求检测到所述待识别图像中不存在人脸时,说明待识别图像中的人脸很有可能发生翻转,此时,将标签类型由初始标签更新为重识别标签,将目标数据返回至数据库中,等待重新生成下一次人脸识别请求,下一次人脸识别请求会按照步骤S103执行。
S103,当所述目标数据的标签类型为重识别标签时,对所述目标数据的待识别图像进行人脸方向识别,根据方向识别结果对所述待识别图像进行方向调整,对调整后的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸。
其中,标签类型为重识别标签,说明目标数据在之前的人脸识别过程中出现过人脸识别失败,该目标数据中待识别图像有可能出现了翻转,于是,直接对待识别图像进行人脸方向识别,根据方向识别结果将待识别图像调整为0°方向。具体地,可以利用resnet50网络进行人脸方向识别,在resnet50网络中包括两个基本块(block),两个基本块分别为单位块(Ident ity Block)和连接块(Conv Block),其中,单位块(Ident ity Block)的输入维度和输出维度一致,可以连续串联,其作用为加深网络,x(shotcut)为直连结构,conv2d为2维卷积,batchnorm为批归一化处理,单位块将其输入以及该输入经过三次卷积后所得结果进行连接后输出;连接块(Conv Block)的输入维度和输出维度不一致,不可以连续串联,其作用为改变网络的维度,x(shotcut)为直连结构,conv2d为2维卷积,batchnorm为批归一化处理,连接块将其输入经过三次卷积后所得结果以及该输入经过一次卷积后所得结果进行连接后输出。resnet50网络包括依次设置的输入层、第一卷积层、第一池化层、通过连接块(Conv Block)连接的多个连接块组,每个连接块组包括连续串联的若干连接块(ConvBlock),resnet50网络还包括与最后一个连接块(Conv Block)连接的第二池化层、全连接层和softmax归一化函数,输出待识别图像属于各不同预设方向类别的概率,将概率最大的方向类别作为该待识别图像的人脸方向识别结果,其中,预设的方向类别包括向左翻转(90°方向)、向下翻转(180°方向)或向右翻转(270°方向)。
在一个可选的实施方式中,该resnet50网络按照如下步骤进行训练:
S201,获取至少一个训练样本,其中,所述训练样本包括人脸翻转图像以及真实方向类别标注,所述人脸翻转图像是分别对正脸图像进行向左翻转、向下翻转以及向右翻转得到的,所述方向类别标注包括向左翻转、向下翻转以及向右翻转;
S202,将所述训练样本输入至待训练的resnet50网络进行特征提取,将所提取特征输入至resnet50网络的策略函数中,得到所述策略函数输出的每一预设方向类别的预测概率值;
S203,根据每一预设方向类别的预测概率值以及所述真实方向类别标注,对所述策略函数的参数进行训练,直至所述策略函数收敛,得到训练完成的resnet50网络。
在本实施方式中,通过对正脸图像进行三个方向的翻转构建训练样本,更加接近真实状态下用户操作时由于手持终端方向产生的翻转或第三方APP保存拍摄图像时产生的翻转,有利于提高resnet50网络的识别准确率。
在一个可选的实施方式中,人脸检测为正脸检测,可以直接采用opencv预训练好的Haar级联人脸分类器作为正脸检测模型进行人脸检测。
在另一个可选的实施方式中,所述对调整后的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸,具体包括如下步骤:
S301,将所述待识别图像输入至多个人脸检测器中进行人脸检测,其中,所述多个人脸检测器所检测的人脸角度类型不同;
S302,当存在至少一个人脸检测器的检测结果为是时,判断所述待识别图像中存在人脸;
其中,请参阅图12所示,由于用户在进行现场拍摄时很难拍摄到正脸图像,小角度的侧脸图像不会影响后续人脸识别的准确性,于是,人脸角度类型可以包括左侧脸、正脸以及右侧脸,其中,左侧脸为小角度左侧脸,对应角度范围为-30°~-15°;正脸对应角度范围为-15°~15°;右侧脸为小角度右侧脸,对应角度范围为15°~30°。
在本实施例中,当首次出现人脸检测失败时,将目标数据修改标签类型后重新返回,再重新生成新的人脸识别请求,只有具有重识别标签的目标数据会进行人脸方向识别及翻转图像,避免由于需要对每个目标数据进行人脸方向识别及翻转图像导致单次人脸识别请求耗时高、计算量大,并且,对于待识别图像发生了图像翻转的目标数据,首次请求并未执行完整个人脸识别流程就快速返回了结果,再次请求才会进行人脸方向识别及翻转图像并执行完整个人脸识别流程,将整个执行流程分为两次请求,尽可能减少每次请求的计算量,有利于降低硬件资源使用量。
S104,当检测到所述待识别图像或所述调整后的待识别图像中存在人脸时,将所述标准图像和所述待识别图像进行人脸对齐,利用预先训练的人脸特征提取模型分别对人脸对齐后的所述标准图像和所述待识别图像进行特征提取,分别得到标准人脸特征数据和待识别人脸特征数据。
其中,对于人脸检测成功的目标数据,将标准图像和待识别图像的图像对分别进行人脸对齐和人脸特征提取。
在一个可选的实施方式中,将所述标准图像和所述待识别图像进行人脸对齐,具体包括如下步骤:
S401,对所述标准图像进行人脸关键点定位,得到对应的标准人脸关键点;
S402,所述待识别图像进行人脸关键点定位,得到对应的人脸关键点;
其中,可以预先建立人脸关键点检测模型,预先设置多个人脸关键点,例如,一共21个人脸关键点,每个眉毛对应3个关键点、每只眼睛对应3个关键点、鼻子对应4个关键点、嘴巴对应5个关键点,人脸关键点检测模型对标准图像或待识别图像中的人脸进行定点拟合,根据定点拟合的结果确定各人脸关键点的坐标。人脸关键点检测模型可以为深度学习神经网络,在进行训练时,将标定了人脸关键点的人脸图像作为训练样本,将训练样本输入至人脸关键点检测模型,输出各个人脸关键点的预测位置,根据各人脸关键点的预测位置与标定位置的距离对所述人脸关键点检测模型的参数进行调整,直至模型收敛。
S403,根据所述标准关键点和所述人脸关键点,获取所述待识别图像对应的用于实现人脸关键点对齐的第一变换数据,其中,所述第一变换数据包括第一尺寸变换数据和第一平移变换数据;
其中,将标准关键点与人脸关键点进行比对,计算每组关键点和人脸关键点的尺寸变换参数和平移变换参数,形成尺寸变换参数的组合和平移变换参数的组合分别作为第一尺寸变化数据和第一平移变换数据。
S404,对所述第一变换数据进行平滑处理,得到第二变换数据;
其中,经过平滑处理后,所得的第二变换数据更接近与真实的变换数据。
S405,根据所述第二变换数据对所述待识别图像进行人脸关键点对齐,得到人脸对齐后的所述待识别图像;
其中,通过人脸关键点对齐将待识别图像中人脸按照其人脸关键点位把图像映射到标准图像中人脸的标准关键点位置上,就能得到尺寸、位置、姿态都与标准图像相对统一的待识别图像,更有利于进行计算和比较。
在一个可选的实施方式中,利用预先训练的人脸特征提取模型分别对人脸对齐后的所述标准图像和所述待识别图像进行特征提取,分别得到标准人脸特征数据和待识别人脸特征数据,具体包括如下步骤:
S501,分别将所述标准图像和所述待识别图像输入至所述人脸特征提取模型中,得到所述标准图像和所述待识别图像各自对应的特征图;
S502,按照预设的划分方式将所述特征图划分为不同区域,提取所述特征图不同区域的高维特征;
S503,将所述高维特征进行降维处理,得到所述标准图像的不同区域的低维特征以及所述待识别图像的不同区域的低维特征;
其中,所述标准图像的不同区域的低维特征作为标准人脸特征数据,所述待识别图像的不同区域的低维特征作为待识别人脸特征数据。不同区域可以是基于网格划分形成的多个网格,每个网格对应一个区域,具体地,可以将图像划分为至少一个行和至少一个列,行之间的间隔和列之间的间隔相等或不等,例如,每个网格的大小相等,图像划分为2*3、或者3*4、或者1*2(左半脸区域和右半脸区域)、或者2*1(上半脸区域和下半脸区域)。
S105,将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,并将比对结果返回至所述目标数据的对应终端。
其中,可以基于两个特征数据之间的相似度进行对比,于是,在步骤S501至S503的基础上,将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,具体包括如下步骤:
S601,计算所述标准图像和所述待识别图像的相同区域的低维特征,分别得到不同区域的相似度值;
S602,根据不同区域的预设重要性权重以及不同区域的相似度值,计算所述标准人脸特征数据和所述待识别人脸特征数据的相似度,将所述相似度作为比对结果。
图7是本发明第二实施例的人脸识别方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。
如图7所示,该人脸识别方法包括步骤:
S701,从数据库中获取待识别的目标数据,其中,所述目标数据包括标准图像、待识别图像以及标签类型,所述标签类型包括初始标签和重识别标签;
S702,当所述目标数据的标签类型为初始标签时,对所述目标数据的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;当检测到所述待识别图像中不存在人脸时,将所述目标数据中的标签类型更新为重识别标签并将所述目标数据返回至所述数据库;
S703,当所述目标数据的标签类型为重识别标签时,对所述目标数据的待识别图像进行人脸方向识别,根据方向识别结果对所述待识别图像进行方向调整,对调整后的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;
S704,当检测到所述待识别图像或所述调整后的待识别图像中存在人脸时,将所述标准图像和所述待识别图像进行人脸对齐,利用预先训练的人脸特征提取模型分别对人脸对齐后的所述标准图像和所述待识别图像进行特征提取,分别得到标准人脸特征数据和待识别人脸特征数据;
S705,将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,并将比对结果返回至所述目标数据的对应终端;
S706,获取标签类型为重识别标签的目标数据的返回时间;获取当前时间与所述返回时间的差值,当所述差值大于预设间隔时间时,生成所述目标数据的人脸识别请求;
当首次请求失败时,需要发送再次请求,为了保证人脸识别结果快速返回至用户的终端,在本步骤中,获取步骤S703中目标数据返回至数据库的返回时间,当前时间和返回时间的差值即为首次请求失败后该目标数据的等待时间,当等待时间大于预设间隔时间时,进行再次请求。
S707,根据所述目标数据、所述标准人脸特征数据和所述待识别人脸特征数据建立目标特征集合,将所述目标特征集合上传至区块链中,以使得所述区块链对所述目标特征集合进行加密存储。
具体地,基于目标特征集合得到对应的摘要信息,具体来说,摘要信息为目标特征集合进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证目标特征集合是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
图8是本发明第三实施例的人脸识别装置的结构示意图。如图8所示,该人脸识别装置30包括目标数据获取模块31、人脸方向识别模块32、人脸检测模块33、人脸特征提取模块34及对比模块35,其中,目标数据获取模块31,用于从数据库中获取待识别的目标数据,其中,所述目标数据包括标准图像、待识别图像以及标签类型,所述标签类型包括初始标签和重识别标签;人脸方向识别模块32,用于当所述目标数据的标签类型为重识别标签时,对所述目标数据的待识别图像进行人脸方向识别,根据方向识别结果对所述待识别图像进行方向调整,对调整后的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;人脸检测模块33,用于当所述目标数据的标签类型为初始标签时,对所述目标数据的待识别图像进行人脸检测,判断所述待识别图像中是否存在人脸;当检测到所述待识别图像中不存在人脸时,将所述目标数据中的标签类型更新为重识别标签并将所述目标数据返回至所述数据库;人脸特征提取模块34,用于当检测到所述待识别图像或所述调整后的待识别图像中存在人脸时,将所述标准图像和所述待识别图像进行人脸对齐,利用预先训练的人脸特征提取模型分别对人脸对齐后的所述标准图像和所述待识别图像进行特征提取,分别得到标准人脸特征数据和待识别人脸特征数据;对比模块35,用于将所述标准人脸特征数据和所述待识别人脸特征数据进行比对,并将比对结果返回至所述目标数据的对应终端。
进一步地,该人脸方向识别模块32还用于将所述待识别图像输入至resnet50网络,对所述待识别图像进行人脸方向识别;更进一步地,该人脸方向识别模块32还用于获取至少一个训练样本,其中,所述训练样本包括人脸翻转图像以及真实方向类别标注,所述人脸翻转图像是分别对正脸图像进行向左翻转、向下翻转以及向右翻转得到的,所述方向类别标注包括向左翻转、向下翻转以及向右翻转;将所述训练样本输入至待训练的resnet50网络进行特征提取,将所提取特征输入至resnet50网络的策略函数中,得到所述策略函数输出的每一预设方向类别的预测概率值;根据每一预设方向类别的预测概率值以及所述真实方向类别标注,对所述策略函数的参数进行训练,直至所述策略函数收敛,得到训练完成的resnet50网络。
进一步地,该人脸检测模块33还用于将所述待识别图像输入至多个人脸检测器中进行人脸检测,其中,所述多个人脸检测器所检测的人脸角度类型不同;当存在至少一个人脸检测器的检测结果为是时,判断所述待识别图像中存在人脸。
进一步地,该人脸特征提取模块34还用于对所述标准图像进行人脸关键点定位,得到对应的标准人脸关键点;所述待识别图像进行人脸关键点定位,得到对应的人脸关键点;根据所述标准关键点和所述人脸关键点,获取所述待识别图像对应的用于实现人脸关键点对齐的第一变换数据,其中,所述第一变换数据包括第一尺寸变换数据和第一平移变换数据;对所述第一变换数据进行平滑处理,得到第二变换数据;根据所述第二变换数据对所述待识别图像进行人脸关键点对齐,得到人脸对齐后的所述待识别图像。
进一步地,该人脸特征提取模块34还用于分别将所述标准图像和所述待识别图像输入至所述人脸特征提取模型中,得到所述标准图像和所述待识别图像各自对应的特征图;按照预设的划分方式将所述特征图划分为不同区域,提取所述特征图不同区域的高维特征;将所述高维特征进行降维处理,得到所述标准图像的不同区域的低维特征以及所述待识别图像的不同区域的低维特征。
进一步地,该对比模块35还用于计算所述标准图像和所述待识别图像的相同区域的低维特征,分别得到不同区域的相似度值;根据不同区域的预设重要性权重以及不同区域的相似度值,计算所述标准人脸特征数据和所述待识别人脸特征数据的相似度,将所述相似度作为比对结果。
进一步地,该人脸识别装置30还包括请求模块,用于获取标签类型为重识别标签的目标数据的返回时间;获取当前时间与所述返回时间的差值,当所述差值大于预设间隔时间时,生成所述目标数据的人脸识别请求。
图9是本发明第四实施例的电子设备的结构示意图。如图9所示,该电子设备40包括处理器41及和处理器41耦接的存储器42。
存储器42存储有用于实现上述任一实施例的所述人脸识别方法的程序指令。
处理器41用于执行存储器42存储的程序指令以进行人脸识别。
其中,处理器41还可以称为CPU(Central Process ing Unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图10,图10为本发明第五实施例的存储介质的结构示意图。本发明实施例的存储介质存储有能够实现上述所有方法的程序指令51,所述存储介质可以是非易失性,也可以是易失性。其中,该程序指令51可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
- 人脸识别方法、人脸识别装置、存储介质及电子设备
- 人脸信息识别方法及装置、电子设备、机器可读存储介质