本公开涉及人脸检测,特别涉及一种跨场景人脸检测方法及装置。
背景技术:
1、目前,随着人脸识别技术的广泛应用,其安全问题也受到了越来越高的关注。其中,活体攻击是最常见,也是最有安全威胁的安全风险之一。活体攻击是攻击者利用“受害者”的人脸素材(例如手机照片、打印照片、面具等等)进行对人脸识别系统突破尝试的手段。为了检测活体攻击,各类人脸检测方法被提出。但是由于大部分都是数据驱动的深度学习方法,现有人脸检测方法在跨场景应用时,会有显著的性能下降。人脸检测的跨场景适配一直是人脸检测领域的一个重点和难题,现有技术中的适配方法通常需要云端算力支持,或需要大量训练数据,成本高,周期长,不易维护。
2、因此,如何实现优化人脸检测跨场景适配的成本、性能和效率是目前亟待解决的技术问题。
技术实现思路
1、本公开的目的是提供一种跨场景人脸检测方法,以至少解决相关技术中如何实现优化人脸检测跨场景适配的成本、性能和效率的技术问题。
2、根据本公开实施例的一个方面,提供了一种跨场景人脸检测方法,包括:
3、将当前场景样本输入基础模型,得到所述基础模型的中间层输出的中间层特征;
4、将各个中间层特征输入对应的各个场景的插件模型,得到各个插件模型输出的插件特征;
5、将各个插件特征输入插件选择模型和所述基础模型,得到各个插件模型被选择的概率和对应的检测结果;
6、基于各个插件模型被选择的概率和对应的检测结果,训练所述插件选择模型,得到收敛的插件选择模型和被选择的插件模型;
7、基于所述被选择的插件模型和所述基础模型进行人脸检测。
8、在一个示例性实施例中,各个场景的插件模型是预先训练得到的,训练过程包括:
9、将任一场景中的训练样本输入基础模型,得到所述基础模型的各个中间层输出的中间层特征;
10、将各个中间层特征输入层次选择模型和所述场景对应的插件模型,得到各个中间层被选择接入所述插件模型的概率和所述插件模型输出的对应的插件特征;
11、将所述插件模型输出的各个插件特征输入所述基础模型,得到对应的检测结果;
12、基于各个中间层被选择接入所述插件模型的概率和对应的检测结果,训练所述场景的插件模型。
13、在一个示例性实施例中,基于各个中间层被选择接入所述插件模型的概率和对应的检测结果,训练所述场景的插件模型,包括:
14、基于各个中间层被选择接入所述插件模型的概率,确定所述层次选择模型的层次选择损失函数;
15、基于各个中间层接入所述插件模型对应的检测结果,确定所述基础模型的人脸检测损失函数;
16、基于所述基础模型的人脸检测损失函数和所述层次选择模型的层次选择损失函数,判断所述场景的插件模型是否收敛;
17、在确定所述场景的插件模型收敛的情况下,停止训练所述场景的插件模型。
18、在一个示例性实施例中,所述基础模型是预先轻量化训练得到的,训练过程包括:
19、将不同场景的训练样本分别输入初始基础模型和轻量化基础模型,得到初始基础模型的活体特征向量和检测结果,以及轻量化基础模型的活体特征向量和检测结果;
20、将初始基础模型的活体特征向量和检测结果,以及轻量化基础模型的活体特征向量和检测结果输入泛化评估模型,得到轻量化损失函数;
21、基于所述轻量化损失函数判断所述轻量化基础模型是否收敛;
22、在确定所述轻量化基础模型收敛的情况下,停止轻量化训练所述基础模型。
23、在一个示例性实施例中,所述轻量化损失函数包括:
24、人脸检测损失函数、稀疏损失函数、自蒸馏损失函数、泛化损失函数。
25、在一个示例性实施例中,基于各个插件模型被选择的概率和对应的检测结果,训练所述插件选择模型,得到收敛的插件选择模型和被选择的插件模型,包括:
26、基于各个插件模型插入所述基础模型对应的检测结果,确定所述基础模型的人脸检测损失函数;
27、基于各个插件模型被选择的概率,确定所述插件选择模型的插件选择稀疏损失函数;
28、基于所述基础模型的人脸检测损失函数和所述插件选择模型的插件选择稀疏损失函数,判断所述场景的插件选择模型是否收敛;
29、在确定所述场景的插件选择模型收敛的情况下,停止训练所述插件选择模型。
30、在一个示例性实施例中,基于所述被选择的插件模型和所述基础模型进行人脸检测,包括:
31、将所述被选择的插件模型和所述基础模型进行融合,得到当前场景人脸检测模型;
32、基于所述当前场景人脸检测模型进行人脸检测。
33、在一个示例性实施例中,基于所述被选择的插件模型和所述基础模型进行人脸检测,包括:
34、将当前场景的待测人脸图像输入已插入所述被选择的插件模型的所述基础模型,得到人脸检测概率值;
35、将所述人脸检测概率值对比参考阈值,并基于所述人脸检测概率值与所述参考阈值大小关系确定人脸检测结果。
36、根据本公开实施例的另一个方面,还提供了一种跨场景人脸检测装置,包括:
37、基础模块,用于将当前场景样本输入基础模型,得到所述基础模型的中间层输出的中间层特征;
38、插件模块,用于将各个中间层特征输入对应的各个场景的插件模型,得到各个插件模型输出的插件特征;
39、回馈模块,用于将各个插件特征输入插件选择模型和所述基础模型,得到各个插件模型被选择的概率和对应的检测结果;
40、插件选择训练模块,用于基于各个插件模型被选择的概率和对应的检测结果,训练所述插件选择模型,得到收敛的插件选择模型和被选择的插件模型;
41、人脸检测模块,用于基于所述被选择的插件模型和所述基础模型进行人脸检测。
42、在一个示例性实施例中,还包括插件模型训练模块,包括:
43、中间层子模块,用于将任一场景中的训练样本输入基础模型,得到所述基础模型的各个中间层输出的中间层特征;
44、处理子模块,用于将各个中间层特征输入层次选择模型和所述场景对应的插件模型,得到各个中间层被选择接入所述插件模型的概率和所述插件模型输出的对应的插件特征;
45、回馈子模块,用于将所述插件模型输出的各个插件特征输入所述基础模型,得到对应的检测结果;
46、插件模型训练子模块,用于基于各个中间层被选择接入所述插件模型的概率和对应的检测结果,训练所述场景的插件模型。
47、在一个示例性实施例中,所述插件模型训练子模块,包括:
48、人脸检测损失单元,用于基于各个中间层被选择接入所述插件模型的概率,确定所述层次选择模型的层次选择损失函数;
49、层次选择损失单元,用于基于各个中间层接入所述插件模型对应的检测结果,确定所述基础模型的人脸检测损失函数;
50、插件模型收敛判断单元,用于基于所述基础模型的人脸检测损失函数和所述层次选择模型的层次选择损失函数,判断所述场景的插件模型是否收敛;
51、插件模型停止训练单元,用于在确定所述场景的插件模型收敛的情况下,停止训练所述场景的插件模型。
52、在一个示例性实施例中,还包括基础模型轻量化训练模块,包括:
53、检测子模块,用于将不同场景的训练样本分别输入初始基础模型和轻量化基础模型,得到初始基础模型的活体特征向量和检测结果,以及轻量化基础模型的活体特征向量和检测结果;
54、泛化评估子模块,用于将初始基础模型的活体特征向量和检测结果,以及轻量化基础模型的活体特征向量和检测结果输入泛化评估模型,得到轻量化损失函数;
55、基础模型收敛判断子模块,用于基于所述轻量化损失函数判断所述轻量化基础模型是否收敛;
56、停止轻量化训练子模块,用于在确定所述轻量化基础模型收敛的情况下,停止轻量化训练所述基础模型。
57、在一个示例性实施例中,所述轻量化损失函数包括:
58、人脸检测损失函数、稀疏损失函数、自蒸馏损失函数、泛化损失函数。
59、在一个示例性实施例中,所述插件选择训练模型,包括:
60、人脸检测损失函数子模块,用于基于各个插件模型插入所述基础模型对应的检测结果,确定所述基础模型的人脸检测损失函数;
61、插件选择稀疏损失函数子模块,用于基于各个插件模型被选择的概率,确定所述插件选择模型的插件选择稀疏损失函数;
62、插件选择模型收敛判断子模块,用于基于所述基础模型的人脸检测损失函数和所述插件选择模型的插件选择稀疏损失函数,判断所述场景的插件选择模型是否收敛;
63、插件选择模型停止训练子模块,用于在确定所述场景的插件选择模型收敛的情况下,停止训练所述插件选择模型。
64、在一个示例性实施例中,所述人脸检测模块,包括:
65、融合子模块,用于将所述被选择的插件模型和所述基础模型进行融合,得到当前场景人脸检测模型;
66、人脸检测子模块,用于基于所述当前场景人脸检测模型进行人脸检测。
67、在一个示例性实施例中,基于所述被选择的插件模型和所述基础模型进行人脸检测,包括:
68、概率值子模块,用于将当前场景的待测人脸图像输入已插入所述被选择的插件模型的所述基础模型,得到人脸检测概率值;
69、确定子模块,用于将所述人脸检测概率值对比参考阈值,并基于所述人脸检测概率值与所述参考阈值大小关系确定人脸检测结果。
70、根据本公开实施例的另一个方面,还提供了一种计算机设备,所述计算机设备包括:适于实现各指令的处理器以及存储设备,所述存储设备存储有多条指令,所述指令适于由处理器加载并执行任一项上述的跨场景人脸检测方法。
71、根据本公开实施例的另一个方面,还一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行任一项上述的跨场景人脸检测方法。
72、根据本公开实施例的另一个方面,还一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现任一项上述的跨场景人脸检测方法。
73、下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。