网络训练及人脸活体检测方法、装置、设备及存储介质
文献发布时间:2023-06-19 11:32:36
技术领域
本公开涉及人工智能技术领域,具体而言,涉及一种网络训练及人脸活体检测方法、装置、设备及存储介质。
背景技术
目前,诸如金融、零售等多种场景会涉及活体检测,活体检测的准确度会依赖于模型的处理能力等。以单目活体检测模型为例,现有的单目活体检测模型的模型规模与模型性能之间存在矛盾。比如,若设计一个精度较高的大模型,则需要较多模型参数,导致模型的计算速度变慢,难以在低计算能力的终端平台(如嵌入式设备等)上实时运行;而若设计一个适用性较强的小模型,虽然会提高模型的计算速度,但也会降低模型的计算精度。
发明内容
本公开实施例至少提供一种网络训练及人脸活体检测方法、装置、设备及存储介质。
第一方面,本公开实施例提供了一种网络训练方法,包括:
获取训练好的第一网络;所述第一网络包括第一特征提取网络以及第一全连接网络;所述第一特征提取网络用于在训练所述第一网络的过程中对图像样本集合中的图像样本进行特征提取,得到第一特征提取结果;
基于所述第一网络,构建待训练的第二网络,所述第二网络包括第二特征提取网络及第二全连接网络;其中,所述第二全连接网络通过加载所述第一全连接网络获得,且所述第二网络的规模小于所述第一网络的规模;
基于所述图像样本集合,依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络;所述训练好的第二网络用于对图像进行处理。
本公开实施例中,由于第二全连接网络通过加载第一全连接网络而获得,并依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络。不仅能够提升第二网络的模型精度,还使第二特征提取网络的训练进度变得可观察,也即,通过知识蒸馏方法,在不需要额外数据、不增加推断时间的情况下,提升第二网络的性能,缩小第二网络和第一网络之间的精度差距。此外,由于第二网络的规模(参数量)小,降低了对终端平台的计算能力要求,能够在低计算能力的终端平台上实时运行,提升了最终训练得到的活体检测模型的适用性。
根据第一方面,在一种可能的实施方式中,所述基于所述图像样本集合,依次对所述第二特征提取网络、所述第二全连接网络进行训练,包括:
将所述图像样本集合中的第一图像样本输入所述待训练的第二网络,得到所述第二特征提取网络输出的所述第一图像样本的第二特征提取结果;
基于得到的所述第一图像样本的第二特征提取结果,将所述第一图像样本的第一特征提取结果作为所述第一图像样本的特征标签,对所述第二特征提取网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及所述第二全连接网络在内的第一中间网络;
将所述图像样本集合中的第二图像样本输入所述第一中间网络,得到所述第一中间网络输出的所述第二图像样本的输出结果,并基于所述第二图像样本的输出结果与所述第二图像样本的结果标签,对所述第二全连接网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及进行有监督训练的第二全连接网络在内的第二中间网络。
本公开实施例中,由于将所述第一图像样本的第一特征提取结果作为所述第一图像样本的特征标签,对所述第二特征提取网络进行有监督训练,进而可以提高第二特征提取网络的特征提取精度,且使得第二特征提取网络的训练进度变得可观察,提高了第二特征提取网络的训练效率。另外,通过对第二全连接网络进行训练,可以使得第二全连接网络更适合第二特征提取网络的特征提取结果,提高了第二全连接网络的预测精度。
根据第一方面,在一种可能的实施方式中,在得到所述第二中间网络之后,所述方法还包括:
将所述第二中间网络作为训练好的第二网络。
本实施方式中,通过将所述第二中间网络作为训练好的第二网络,在提高模型训练精度的同时,还提高了模型的训练效率。
根据第一方面,在一种可能的实施方式中,在得到所述第二中间网络之后,所述方法还包括:
将所述图像样本集合中的第三图像样本输入所述第二中间网络,得到所述第二中间网络输出的所述第三图像样本的输出结果;
基于所述第三图像样本的输出结果与所述第三图像样本的结果标签,对所述第二中间网络进行有监督训练,得到训练好的第二网络。
本实施方式中,由于在得到所述第二中间网络之后,还将所述图像样本集合中的第三图像样本输入所述第二中间网络,并对所述第二中间网络进行有监督训练,可以进一步提高模型的精度。
根据第一方面,在一种可能的实施方式中,所述基于得到的所述第一图像样本的第二特征提取结果,将所述第一图像样本的第一特征提取结果作为所述第一图像样本的特征标签,对所述第二特征提取网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及所述第二全连接网络在内的第一中间网络,包括:
基于蒸馏损失函数,得到所述第二特征提取结果相对所述第一特征提取结果的第一损失;
基于所述第一损失,调整所述第二特征提取网络的网络参数;
重复上述训练过程,直到所述第一损失满足第一预设条件,得到所述第一中间网络。
本实施方式中,在对第二特征提取网络的训练过程中,基于蒸馏损失函数,得到所述第二特征提取结果相对所述第一特征提取结果的第一损失;然后基于所述第一损失,调整所述第二特征提取网络的网络参数,如此可以保证第二特征提取网络的性能与第一特征提取网络的性能相近,提高了第二特征提取网络的精度。
根据第一方面,在一种可能的实施方式中,所述第二图像样本的输出结果包括各类别的预测概率分布,所述第二图像样本的结果标签包括各类别的真实概率分布;
所述基于所述第二图像样本的输出结果与所述第二图像样本的结果标签,对所述第二全连接网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及进行有监督训练的第二全连接网络在内的第二中间网络,包括:
基于差异损失函数,得到所述第二图像样本对应的预测概率分布相对所述第二图像样本对应的真实概率分布的第二损失;
基于所述第二损失,调整所述第二全连接网络的网络参数;
重复上述训练过程,直到所述第二损失满足第二预设条件,得到所述第二中间网络。
本公开实施例中,在对第二全连接网络进行有监督训练的过程中,基于差异损失函数,可以提高第二全连接网络的预测精度。
第二方面,本公开实施例提供了人脸活体检测方法,包括:
获取待检测的人脸图像;
将所述待检测的人脸图像输入至活体检测网络,得到所述人脸图像中对象的活体检测结果;所述活体检测网络为第一方面及第一方面任意可能的实施方式所述的网络训练方法中训练好的第二网络。
第三方面,本公开实施例提供了一种网络训练装置,包括:
第一网络获取模块,用于获取训练好的第一网络;所述第一网络包括第一特征提取网络以及第一全连接网络;所述第一特征提取网络用于在训练所述第一网络的过程中对图像样本集合中的图像样本进行特征提取,得到第一特征提取结果;
第二网络构建模块,用于基于所述第一网络,构建待训练的第二网络,所述第二网络包括第二特征提取网络及第二全连接网络;其中,所述第二全连接网络通过加载所述第一全连接网络获得,且所述第二网络的规模小于所述第一网络的规模;
第二网络训练模块,用于基于所述图像样本集合,依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络;所述训练好的第二网络用于对图像进行处理。
根据第三方面,在一种可能的实施方式中,所述第二网络训练模块具体用于:
将所述图像样本集合中的第一图像样本输入所述待训练的第二网络,得到所述第二特征提取网络输出的所述第一图像样本的第二特征提取结果;
基于得到的所述第一图像样本的第二特征提取结果,将所述第一图像样本的第一特征提取结果作为所述第一图像样本的特征标签,对所述第二特征提取网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及所述第二全连接网络在内的第一中间网络;
将所述图像样本集合中的第二图像样本输入所述第一中间网络,得到所述第一中间网络输出的所述第二图像样本的输出结果,并基于所述第二图像样本的输出结果与所述第二图像样本的结果标签,对所述第二全连接网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及进行有监督训练的第二全连接网络在内的第二中间网络。
根据第三方面,在一种可能的实施方式中,所述第二网络训练模块还用于:
将所述第二中间网络作为训练好的第二网络。
根据第三方面,在一种可能的实施方式中,所述第二网络训练模块还用于:
将所述图像样本集合中的第三图像样本输入所述第二中间网络,得到所述第二中间网络输出的所述第三图像样本的输出结果;
基于所述第三图像样本的输出结果与所述第三图像样本的结果标签,对所述第二中间网络进行有监督训练,得到训练好的第二网络。
根据第三方面,在一种可能的实施方式中,所述第二网络训练模块具体用于:
基于蒸馏损失函数,得到所述第二特征提取结果相对所述第一特征提取结果的第一损失;
基于所述第一损失,调整所述第二特征提取网络的网络参数;
重复上述训练过程,直到所述第一损失满足第一预设条件,得到所述第一中间网络。
根据第三方面,在一种可能的实施方式中,所述第二图像样本的输出结果包括各类别的预测概率分布,所述第二图像样本的结果标签包括各类别的真实概率分布;所述第二网络训练模块具体用于:
基于差异损失函数,得到所述第二图像样本对应的预测概率分布相对所述第二图像样本对应的真实概率分布的第二损失;
基于所述第二损失,调整所述第二全连接网络的网络参数;
重复上述训练过程,直到所述第二损失满足第二预设条件,得到所述第二中间网络。
第四方面,本公开实施例提供了一种人脸活体检测装置,包括:
图像获取模块,用于获取待检测的人脸图像;
图像检测模块,用于将所述待检测的人脸图像输入至活体检测网络,得到所述人脸图像中对象的活体检测结果;所述活体检测网络为第一方面及第一方面任意可能的实施方式所述的网络训练方法中训练好的第二网络。
第五方面,本公开实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及第一方面任一实施方式中所述的网络训练方法的步骤,或者,如第二方面所述的人脸活体检测方法的步骤。
第六方面,本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及第一方面任一实施方式中所述的网络训练方法的步骤,或者,如第二方面所述的人脸活体检测方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种网络训练方法的实施环境示意图;
图2示出了本公开实施例所提供的一种网络训练方法的流程图;
图3示出了本公开实施例所提供的一种第一网络的训练过程的示意图;
图4示出了本公开实施例所提供的一种第二特征提取网络的训练过程示意图;
图5示出了本公开实施例所提供的一种依次对所述第二特征提取网络、所述第二全连接网络进行训练的方法流程图;
图6示出了本公开实施例所提供的第二全连接网络的训练过程示意图;
图7示出了本公开实施例所提供的一种第二特征提取网络及第二全连接网络的训练过程示意图;
图8示出了本公开实施例所提供的一种第二特征提取网络训练方法的流程图;
图9示出了本公开实施例所提供的一种第二全连接网络训练方法的流程图;
图10示出了本公开实施例所提供的一种人脸活体检测方法的流程图;
图11示出了本公开实施例所提供的一种网络训练装置的结构示意图;
图12示出了本公开实施例所提供的一种人脸活体检测装置的结构示意图;
图13示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
首先,对本申请实施例中涉及的相关名词术语进行介绍和说明:
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,CV)是一门研究如何使机器“看”的科学,更进一步地说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、光学字符识别(Optical Character Recognition,OCR)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
知识蒸馏(knowledge distillation)也叫暗知识提取,是指通过结构复杂、计算量大但是性能优秀的教师神经网络(teacher network),对结构相对简单、计算量较小的学生神经网络络(student network)的训练进行指导,以提升学生神经网络的性能,实现知识迁移(knowledge transfer)的过程。知识蒸馏能使模型变轻量的同时(方便部署),尽量不损失性能。
活体检测,是指计算机判别检测的人脸是真实的人脸,还是伪造的人脸攻击,如各种打印照片攻击(包括彩色打印照片、黑白打印照片、红外打印照片等)、屏幕播放攻击(手机屏幕、平板屏幕、电脑屏幕等)和高清3D攻击(各种材质的面具、头部模型、头套面具等)等。对此,出现了各种各样基于计算机视觉的活体检测方法。
随着深度学习的发展,人工智能中深度学习方法因强大、灵活的特征提取能力而被应用于活体检测领域并逐渐成为活体检测的主流方法。例如,基于卷积神经网络(CNN,Convolutional Neural Networks)的单目活体检模型进行活体检测的方法。
经研究发现,现有的单目活体检测模型的模型大小(参数量)与模型性能之间存在矛盾。比如,若设计一个精度较高的大模型,则需要的模型参数较多,导致模型的计算速度变慢,难以在低计算能力的终端平台(如嵌入式设备等)上实时运行;而若设计一个适用性较强的小模型,虽然会提高模型的计算速度,但也会降低模型的计算精度。
基于上述研究,本公开提供了一种网络训练方法,获取训练好的第一网络;所述第一网络包括第一特征提取网络以及第一全连接网络;所述第一特征提取网络用于在训练所述第一网络的过程中对图像样本集合中的图像样本进行特征提取,得到第一特征提取结果;基于所述第一网络,构建待训练的第二网络,所述第二网络包括第二特征提取网络及第二全连接网络;其中,所述第二全连接网络通过加载所述第一全连接网络获得,且所述第二网络的规模小于所述第一网络的规模;基于所述图像样本集合,依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络;所述训练好的第二网络用于对图像进行处理。
如此,不仅能够提升第二网络的精度,还使第二特征提取网络的训练进度变得可观察,降低训练的复杂性,也即,通过知识蒸馏方法,在不需要额外数据、不增加推断时间的情况下,提升第二网络的性能,缩小第二网络和第一网络之间的精度差距。此外,由于第二网络的规模(参数量)小,降低了对终端平台的计算能力要求,能够在低计算能力的终端平台上实时运行,提升了最终训练得到的活体检测模型的适用性。
该网络训练方法可应用于终端中,或者可应用于服务器中,或者可应用于由终端和服务器所组成的实施环境中。此外,该网络训练方法还可以是运行于终端或服务器中的软体,例如具有活体检测模型训练功能的应用程序等。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器。在一些可能的实现方式中,该网络训练方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
请参阅图1,图1是本申请实施例提供的一种网络训练方法的实施环境示意图。在一种可能实现方式中,参见图1所示,该实施环境可以包括电子设备100,该电子设备100可以具有图像采集功能和图像处理功能,该电子设备100可以采集对象(如人、环境)的图像,并基于训练好的活体检测模型对图像中人脸区域进行活体检测,以确定对象是否为活体。图1中,智能手机10、台式计算机20、笔记本电脑30均为终端的示例性实施例,而40则为服务器。
需要说明的是,在一些实施方式中,服务器40可以通网络50分别与智能手机10、台式计算机20及笔记本电脑30进行通信。网络50可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
可以理解,在另一种可能实现方式中,该实施环境还可以包括单独的图像采集设备(图中未示出),此时,该图像采集设备可以具有图像采集功能,用于采集对象的图像。电子设备100可以具有图像处理功能,用于对图像采集设备所采集的图像进行处理。
本领域技术人员可以理解的是,电子设备100可以是终端,也可以是服务器,本申请实施例对此不作限定。
参见图2所示,为本公开实施例提供的网络训练方法的流程图,该方法应用于图1所示的电子设备100中。该网络训练方法包括以下S101~S103:
S101,获取训练好的第一网络;所述第一网络包括第一特征提取网络以及第一全连接网络;所述第一特征提取网络用于在训练所述第一网络的过程中对图像样本集合中的图像样本进行特征提取,得到第一特征提取结果。
参见图3所示,为所述第一网络的训练过程示意图。该第一网络可以预先训练好,包括第一特征提取网络X以及第一全连接网络Y。该第一特征提取网络X可以是网络里的特征提取层,用于对图像样本进行特征提取,第一全连接网络Y可以是网络中的全连接层。
首先获取图像样本集合,其中,所述图像样本集合包含多个图像样本a,所述图像样本a可以包括带有标签的人脸图像数据。具体地,带有标签的人脸图像数据是指人脸活体检测结果已知的人脸图像数据。可选地,图像样本a可以是通过图像采集设备或电子设备获取到目标图像后提取出的人脸区域图像,也可以来自互联网或第三方应用(如图像处理软件)的人脸图像,还可以是预先存储在数据库中的人脸图像,本申请对此不作限定。
接着将图像样本a输入至第一特征提取网络X进行特征提取得到第一特征提取结果b,然后将得到的第一特征提取结果b输入至第一全连接网络Y,得到第一预测结果c。该第一预测结果c包括假体预测概率c1以及活体预测概率c2。
可以理解,第一全连接网络Y中包括假体类别对应的向量f1及活体类别对应的向量f2。本实施方式中,该两个向量f1、f2均为行向量,使用该两个向量的夹角衡量两个向量的距离,对于一张输入图片(图像样本),经第一特征提取网络X所提取的第一特征提取结果b越接近第一全连接网络Y中的哪个向量,这张图片属于该行向量对应类别的概率就越大。具体地,如图3所示,通过余弦相似度,可以计算出图像样本a的第一特征提取结果b和第一全连接网络Y中假体类别对应的向量f1距离更近,因此,第一网络会判断图像样本a为假体。
需要说明的是,本实施方式中的第一网络的训练方法与训练一个正常的单目活体检测模型的方法可以相似或相同,只要能够得到一个训练好的第一网络即可,具体的训练方法不做限定。
S102,基于所述第一网络,构建待训练的第二网络,所述第二网络包括第二特征提取网络及第二全连接网络;其中,所述第二全连接网络通过加载所述第一全连接网络获得,且所述第二网络的规模小于所述第一网络的规模。
其中,该第一网络也可以称为教师网络,该第二网络也可以称为学生网络,所述规模是指参数量。本实施方式中,第二网络的模型参数数量小于第一网络的模型参数数量,也即,该第一网络的网络宽度和深度都比第二网络更大,进而使得该第一网络的模型预测精度较高。
示例性地,参见图4所示,通过加载训练好的第一网络中的第一全连接网络Y构建一个第二网络,在第二网络中,加载的第一全连接网络Y称为第二全连接网络Y1,此外,该第二网络还包含第二特征提取网络X1。也即,该第二网络除了第二全连接网络Y1以外的部分被随机初始化,而第二全连接网络Y1则直接加载该第一全连接网络Y。
S103,基于所述图像样本集合,依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络;所述训练好的第二网络用于对图像进行处理。
本公开实施例中,由于第二全连接网络通过加载第一全连接网络而获得,并依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络。不仅能够提升第二网络的模型精度,还使第二特征提取网络的训练进度变得可观察,也即,通过知识蒸馏方法,在不需要额外数据、不增加推断时间的情况下,提升第二网络的性能,缩小第二网络和第一网络之间的精度差距。此外,由于第二网络的规模(参数量)小,降低了对终端平台的计算能力要求,能够在低计算能力的终端平台上实时运行,提升了最终训练得到的活体检测模型的适用性。
参见图5所示,针对上述S103,在基于所述图像样本集合,依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络时,包括以下S1031~S1033:
S1031,将所述图像样本集合中的第一图像样本输入所述待训练的第二网络,得到所述第二特征提取网络输出的所述第一图像样本的第二特征提取结果。
S1032,基于得到的所述第一图像样本的第二特征提取结果,将所述第一图像样本的第一特征提取结果作为所述第一图像样本的特征标签,对所述第二特征提取网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及所述第二全连接网络在内的第一中间网络。
S1033,将所述图像样本集合中的第二图像样本输入所述第一中间网络,得到所述第一中间网络输出的所述第二图像样本的输出结果,并基于所述第二图像样本的输出结果与所述第二图像样本的结果标签,对所述第二全连接网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及进行有监督训练的第二全连接网络在内的第二中间网络。
其中,第一样本图像和第二样本图像,可以相同也可以不同,可以是图像样本集合中的部分或全部,在此不做限定。以第一样本图像和第二样本图像相同为例,请一并参阅图3、图4及图6,在对第二网络进行训练的过程中,首先保持第二全连接网络Y1不变,将所述图像样本集合中的第一图像样本a输入所述待训练的第二网络,得到所述第二特征提取网络X1输出的所述第一图像样本a的第二特征提取结果d,采用第一特征提取网络X的第一特征提取结果b,作为所述第一图像样本a的特征标签,对所述第二特征提取网络X1进行训练,得到经有监督训练的第二特征提取网络X2。本实施方式中,经有监督训练得到的第二特征提取网络X2及第二全连接网络Y1构成了第一中间网络。其中,第一中间网络包括经过有监督训练得到的第二特征提取网络X1,以及加载的第一全连接网络Y(即图4所示的第二全连接网络Y1)。
接着,保持第二网络在第二全连接网络Y1前的部分的网络参数不变,也即,冻结前述经有监督训练得到的第二特征提取网络X2,训练第二网络的第二全连接网络Y1。将所述图像样本集合中的第二图像样本a输入所述第一中间网络,得到所述第一中间网络输出的所述第二图像样本a的输出结果k,并基于所述第二图像样本a的输出结果k与所述第二图像样本的结果标签,对所述第二全连接网络Y1进行有监督训练,得到经有监督训练的第二全连接网络Y2。本实施方式中,经有监督训练得到的第二特征提取网络X2及经有监督训练得到的第二全连接网络Y2构成了第二中间网络。
可以理解,由于第二网络和第一网络的结构差异等原因,使得第二网络所学习到的特征向量的分布(第二特征提取结果)和第一网络得到的特征向量的分布不同,进而导致从第一网络上直接移植至第二网络的第一全连接网络Y并不适合直接用在第二网络上。因此,本步骤训练第二网络的第二全连接网络Y1,使其更适合第二网络的结构参数,进一步提高了第二网络的预测准确率。
一些实施方式中,可以将所述第二中间网络作为训练好的第二网络,如此,在提高第二网络的精度的同时,还能提高训练效率。
另一些实施方式中,为了进一步提高第二网络的预测精度,在得到第二中间网络后,所述方法还包括以下:
(1)将所述图像样本集合中的第三图像样本输入所述第二中间网络,得到所述第二中间网络输出的所述第三图像样本的输出结果;
(2)基于所述第三图像样本的输出结果与所述第三图像样本的结果标签,对所述第二中间网络进行有监督训练,得到训练好的第二网络。
参见图7所示,在得到第二特征提取网络X2和第二全连接网络Y2之后,还可以解冻第二网络在第二全连接网络Y2之前的部分,并对第二网络整体进行进一步训练,以实现第二网络全部参数的共同更新。将所述图像样本集合中的第三图像样本a输入所述第二特征提取网络X2,得到第三特征提取结果m,再将第三特征提取结果m输入至第二全连接网络Y2,得到输出结果n,再基于输出结果n以及第三图像样本a的标注结果,对第二中间网络进行有监督训练,得到训练好的第二网络,该训练好的第二网络包括训练好的第二特征提取网络X3以及训练好的第二全连接网络Y3。如此,可以使得最终得到的第二特征提取网络X3和第二全连接网络Y3更加协调配合,进一步提高了第二网络的预测精度。需要说明的是,第三图像样本和前述的第一图像样本及第二图像样本可以相同或是不同。
参见图8所示,为该第二特征提取网络的训练方法流程图。针对上述步骤S1032,该第二特征提取网络的训练方法可以包括以下S10321~10323:
S10321,基于蒸馏损失函数,得到所述第二特征提取结果相对所述第一特征提取结果的第一损失。
本实施方式中,所述蒸馏损失函数包括L2范数损失函数。其他实施方式中,蒸馏损失函数还可以是L1范数损失函数,此处不做限定,可以是任意能够指示两个向量相似程度的函数。
S1032,基于所述第一损失,调整所述第二特征提取网络的网络参数;
S1033,重复上述训练过程,直到所述第一损失满足第一预设条件,得到所述第一中间网络。
其中,第一预设条件可以是训练次数达到预设次数,也可以是第一损失的数值达到预设阈值,在此不做限定。
具体地,请再次参阅图4,本实施方式中,先冻结第二网络的第二全连接网络Y1,仅仅训练第二网络的其他部分。也即,首先将第一图像样本a输入所述第二特征提取网络X1,得到第二特征提取结果d;然后基于L2范数损失函数计算所述第二特征提取结果d相对所述第一特征提取结果b的第一损失;再基于该第一损失,调整所述第二特征提取网络X1的网络参数,直到所述第一损失满足第一预设条件,得到所述第二特征提取网络X2。
可以理解,对第二征提取网络X1训练目标是使得第二网络从第一图像样本a所提取的第二特征提取结果d和第一网络的第一特征提取网络X的所提取的第一特征提取结果b征尽量相同。由于第二网络中的第二全连接网络Y1中的分别代表假体类和活体类的类别中心的两个向量f1、f2没有改变,而在训练过程中,在蒸馏损失函数的约束下,第二特征提取网络X1从第一图像样本a提取的特征向量(第二特征提取结果d)向着第一网络对应的特征向量(第一特征提取结果b)靠近,使得第二网络的性能尽量与第一网络的性能接近或相同,该过程也称为知识蒸馏。由于第一网络提取的特征向量离假体类别对应的向量f1较近,自然的第二网络提取的向量也变得更靠近假体类别对应的向量f1,从而第二网络也给出了正确的第二预测结果e。其中,该第二预测结果e包括假体预测概率e1以及活体预测概率e2。
需要说明的是,如果第二网络没有预先加载第一网络的第一全连接网络Y,而是随机初始化第二全连接网络,则第二网络从第一图像样本a提取的特征向量与第二全连接网络中的向量的夹角将变得没有任何意义。此时将无法知晓当前第二网络达到的精度,也无法选择效果最好的网络投入下一轮训练。
参见图9所示,为第二全连接网络的训练方法流程图。一些实施方式中,所述第二图像样本的输出结果包括各类别的预测概率分布,所述第二图像样本的结果标签包括各类别的真实概率分布;针对上述步骤S1033,该第二全连接网络的训练方法,包括以下S10331~S10333:
S10331,基于差异损失函数,得到所述第二图像样本对应的预测概率分布相对所述第二图像样本对应的真实概率分布的第二损失。
本实施方式中,差异损失函数包括交叉熵损失函数,其他实施方式中,差异损失函数还可以包括arcface损失函数,此处不做限定,可以是任意能够指示图像样本的预测概率分布与图像样本的真实标签概率之间分布的差异性的函数。
S10332,基于所述第二损失,调整所述第二全连接网络的网络参数。
S10333,重复上述训练过程,直到所述第二损失满足第二预设条件,得到所述第二中间网络。
其中,第二预设条件与第一预设条件类似,也可以是训练次数达到预设次数,或者第二损失达到预设阈值,在此不做限定。
具体地,结合图6所示,将所述第二图像样本a输入第二特征提取网络X2进行特征提取,得到第四特征提取结果g;将得到的第四特征提取结果g输入至待训练的所述第二全连接网络Y1进行分类,得到第三预测结果k,该第三预测结果k包括假体预测概率k1以及活体预测概率k2;基于交叉熵损失函数,计算预测概率分布相对所述第二图像样本a对应的真实概率分布的第二损失,并基于该第二损失,调整所述第二全连接网络Y1的网络参数,直到所述第二损失满足第二预设条件,得到第二全连接网络Y2。
参见图10所示,一些实施方式中,还提供一种人脸活体检测方法,该人脸活体检测方法包括以下S301~302:
S301,获取待检测的人脸图像。
S302,将所述待检测的人脸图像输入至活体检测网络,得到所述人脸图像中对象的活体检测结果;所述活体检测网络为前述任一可能的实施方式所述的网络训练方法中训练好的第二网络。
其中,活体检测结果包括但不限于,人脸图像的分类结果、当前分类结果所对应的置信度信息以及攻击方式等。例如,活体检测结果可以包括,当前人脸图像为活体、置信度为80%;或者,活体检测结果还可以是,当前人脸图像为假体、置信度为90%、攻击方式为打印照片攻击等。
该人脸活体检测方法可以应用于各种场景中,例如,该人脸活体检测方法可以应用于智能门禁系统中,可以采集对象的图像,确定对象是否为活体,如果是活体,则可以控制开门,如果不是活体,则可以不执行开门逻辑。又例如,该人脸活体检测方法可以应用于人脸识别支付场景中,可以采集对象的图像,确定对象是否为活体,如果是活体,则对该对象进行身份验证过程,并在通过身份认证后执行支付逻辑,如果不是活体,则可以返回支付失败。当然,该人脸活体检测方法还可以应用于考勤、社区、零售等其他涉及到身份验证场景中,在此不一一列举。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一技术构思,本公开实施例中还提供了与网络训练方法对应的网络训练装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述网络训练方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图11所示,为本公开实施例提供的一种网络训练装置500的示意图,该网络训练装置500包括:
第一网络获取模块501,用于获取训练好的第一网络;所述第一网络包括第一特征提取网络以及第一全连接网络;所述第一特征提取网络用于在训练所述第一网络的过程中对图像样本集合中的图像样本进行特征提取,得到第一特征提取结果;
第二网络构建模块502,用于基于所述第一网络,构建待训练的第二网络,所述第二网络包括第二特征提取网络及第二全连接网络;其中,所述第二全连接网络通过加载所述第一全连接网络获得,且所述第二网络的规模小于所述第一网络的规模;
第二网络训练模块503,用于基于所述图像样本集合,依次对所述第二特征提取网络、所述第二全连接网络进行训练,得到训练好的第二网络;所述训练好的第二网络用于对图像进行处理。
在一种可能的实施方式中,所述第二网络训练模块503具体用于:
将所述图像样本集合中的第一图像样本输入所述待训练的第二网络,得到所述第二特征提取网络输出的所述第一图像样本的第二特征提取结果;
基于得到的所述第一图像样本的第二特征提取结果,将所述第一图像样本的第一特征提取结果作为所述第一图像样本的特征标签,对所述第二特征提取网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及所述第二全连接网络在内的第一中间网络;
将所述图像样本集合中的第二图像样本输入所述第一中间网络,得到所述第一中间网络输出的所述第二图像样本的输出结果,并基于所述第二图像样本的输出结果与所述第二图像样本的结果标签,对所述第二全连接网络进行有监督训练,得到包括进行有监督训练的第二特征提取网络以及进行有监督训练的第二全连接网络在内的第二中间网络。
在一种可能的实施方式中,所述第二网络训练模块503还用于:
将所述第二中间网络作为训练好的第二网络。
在一种可能的实施方式中,所述第二网络训练模块503还用于:
将所述图像样本集合中的第三图像样本输入所述第二中间网络,得到所述第二中间网络输出的所述第三图像样本的输出结果;
基于所述第三图像样本的输出结果与所述第三图像样本的结果标签,对所述第二中间网络进行有监督训练,得到训练好的第二网络。
在一种可能的实施方式中,所述第二网络训练模块503具体用于:
基于蒸馏损失函数,得到所述第二特征提取结果相对所述第一特征提取结果的第一损失;
基于所述第一损失,调整所述第二特征提取网络的网络参数;
重复上述训练过程,直到所述第一损失满足第一预设条件,得到所述第一中间网络。
在一种可能的实施方式中,所述第二图像样本的输出结果包括各类别的预测概率分布,所述第二图像样本的结果标签包括各类别的真实概率分布;所述第二网络训练模块503具体用于:
基于差异损失函数,得到所述第二图像样本对应的预测概率分布相对所述第二图像样本对应的真实概率分布的第二损失;
基于所述第二损失,调整所述第二全连接网络的网络参数;
重复上述训练过程,直到所述第二损失满足第二预设条件,得到所述第二中间网络。
参见图12所示,为本公开实施例提供的一种人脸活体检测装置600的示意图,该人脸活体检测装置600,包括:
图像获取模块601,用于获取待检测的人脸图像;
图像检测模块602,用于将所述待检测的人脸图像输入至活体检测网络,得到所述人脸图像中对象的活体检测结果;所述活体检测网络为前述任一可能的实施方式所述的网络训练方法中训练好的第二网络。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图13所示,为本公开实施例提供的电子设备700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换。
本申请实施例中,存储器702具体用于存储执行本申请方案的应用程序代码,并由处理器701来控制执行。也即,当电子设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701执行存储器702中存储的应用程序代码,进而执行前述任一实施例中所述的方法。
其中,存储器702可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器701可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备700的具体限定。在本申请另一些实施例中,电子设备700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的网络训练方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中的网络训练方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
- 网络训练及人脸活体检测方法、装置、设备及存储介质
- 人脸活体检测方法和装置、人脸活体检测设备及介质