技术新讯 > 计算推算,计数设备的制造及其应用技术 > 面向静默式活体检测的端侧部署方法、装置、设备及介质  >  正文

面向静默式活体检测的端侧部署方法、装置、设备及介质

  • 国知局
  • 2024-09-19 14:39:52

本发明涉及模型部署,特别是涉及面向静默式活体检测的端侧部署方法、装置、设备及介质。

背景技术:

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、由此,本发明通过采用静默式活体检测模型部署在端侧设备,在部署目标模型时,获取预设编程语言形式的目标算子,由于预设编程语言适用于任一端侧设备,使得采用预设编程语言形式的目标算子的目标模型能够部署在任一端侧设备,而不依赖于端侧设备的推理框架,进而提高了模型部署的通用性。

本文地址:https://www.jishuxx.com/zhuanli/20240919/299480.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。