一种人脸识别方法和装置转让专利

申请号 : CN202110920396.1

文献号 : CN113807172B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕建明袁江峰

申请人 : 荣耀终端有限公司

摘要 :

本申请实施例提供一种人脸识别方法和装置,涉及终端领域,能够提高人脸识别的安全性。该方法应用于电子设备,电子设备包括TOF摄像头模组,TOF摄像头模组包括用于发射光信号的发射器和用于接收反射光和成像的图像传感器,该方法包括:接收用户的第一操作,第一操作用于触发人脸识别;控制发射器以第一光强度工作;确定发射器是否处于正常工作状态;在发射器处于正常工作状态的情况下,控制发射器以第二光强度工作,第二光强度大于第一光强度;控制图像传感器采集图像数据;基于图像数据执行人脸识别。

权利要求 :

1.一种人脸识别方法,应用于电子设备,所述电子设备包括飞行时间TOF摄像头模组,所述TOF摄像头模组包括用于发射光信号的发射器和用于接收反射光和成像的图像传感器,其特征在于,所述方法包括:接收用户的第一操作,所述第一操作用于触发人脸识别;

控制所述发射器以第一光强度工作;

确定所述发射器是否处于正常工作状态;

在所述发射器处于正常工作状态的情况下,控制所述发射器以第二光强度工作,所述第二光强度大于所述第一光强度;

控制所述图像传感器采集图像数据;

基于所述图像数据执行所述人脸识别。

2.根据权利要求1所述的方法,其特征在于,

所述发射器工作在第一电流值时发射的光信号为所述第一光强度,所述发射器工作在第二电流值时发射的光信号为所述第二光强度,所述第二电流值大于所述第一电流值。

3.根据权利要求1或2所述的方法,其特征在于,所述确定所述发射器是否处于正常工作状态包括:确定所述发射器的第一参数,所述第一参数用于指示所述发射器的工作状态;

若所述第一参数用于指示所述发射器的工作状态为正常工作状态,确定所述发射器处于正常工作状态;若所述第一参数用于指示所述发射器的工作状态为异常工作状态,确定所述发射器处于异常工作状态。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述发射器处于异常工作状态的情况下,控制所述发射器以第三光强度工作,所述第三光强度为0;

控制所述图像传感器采集图像数据;

基于所述图像数据执行所述人脸识别。

5.根据权利要求1或4所述的方法,其特征在于,所述基于所述图像数据执行所述人脸识别包括:基于所述图像数据获取灰度图和深度图;

基于所述灰度图进行人脸对比,基于所述深度图进行防伪检测,得到人脸识别结果。

6.根据权利要求1所述的方法,其特征在于,

所述第一操作包括用于解锁所述电子设备的操作,用于在线支付的操作,用于录入人脸的操作,或者用于安全注册或登录应用程序的操作。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:根据所述人脸识别结果确定是否执行解锁;

若所述人脸识别结果为成功,则执行解锁;

若所述人脸识别结果为失败,不执行解锁或显示解锁失败;或者根据所述人脸识别结果确定是否执行支付;

若所述人脸识别结果为成功,则执行支付;

若所述人脸识别结果为失败,不执行支付或显示支付失败;或者根据所述人脸识别结果确定是否执行人脸录入;

若所述人脸识别结果为成功,则执行人脸录入;

若所述人脸识别结果为失败,不执行人脸录入或显示人脸录入失败;或者根据所述人脸识别结果确定是否执行注册或登录;

若所述人脸识别结果为成功,则执行注册或登录;

若所述人脸识别结果为失败,不执行注册或登录或显示注册或登录失败。

8.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述发射器处于异常工作状态的情况下,向用户提示解锁失败;或者向用户提示支付失败;或者向用户提示人脸录入失败;或者向用户提示注册或登录失败。

9.根据权利要求4所述的方法,其特征在于,所述电子设备包含相机硬件抽象层HAL和摄像头驱动模块,所述相机HAL包括传感器节点,所述控制所述发射器以第一光强度工作包括:所述传感器节点确定所述摄像头模组的工作模式为第一工作模式;所述第一工作模式用于指示所述发射器工作在第一电流值;

所述传感器节点将所述第一工作模式的配置参数发送到所述摄像头驱动模块;

所述摄像头驱动模块将所述第一工作模式的配置参数写入所述TOF摄像头模组的寄存器中;

所述摄像头驱动模块向所述传感器节点发送配置参数写入完成的消息;

响应于接收所述配置参数写入完成的消息,所述传感器节点向所述摄像头驱动模块发送第一启动命令;

所述摄像头驱动模块向所述TOF摄像头模组发送第二启动命令;

所述发射器以所述第一电流值工作,所述发射器以所述第一电流值工作时发射的光信号为所述第一光强度。

10.根据权利要求9所述的方法,其特征在于,所述电子设备还包括第一应用、人脸识别软件开发工具包SDK、人脸识别服务、人脸识别控制模块和相机服务,所述接收用户的第一操作之后,所述方法还包括:所述第一应用调用所述人脸识别SDK进行人脸识别;所述第一应用对应于所述第一操作,所述第一应用包括锁屏应用、购物应用、聊天应用或理财应用;

所述人脸识别SDK向所述人脸识别服务发送人脸识别的请求;所述人脸识别的请求中携带人脸识别类型的标识、图像的分辨率大小和数据流格式;

所述人脸识别服务向所述人脸识别控制模块发送所述人脸识别的请求;

所述人脸识别控制模块根据所述人脸识别的请求匹配摄像头模组;

所述人脸识别控制模块向所述相机服务发送打开摄像头模组的第一请求;所述打开摄像头模组的第一请求中携带安全标识、摄像头模组的标识ID、图像的分辨率和数据流格式;

所述安全标识用于申请安全内存;

所述相机服务向所述相机HAL发送打开摄像头模组的第二请求,所述第二请求中携带所述安全标识、所述摄像头模组的标识ID、所述图像的分辨率和所述数据流格式。

11.根据权利要求10所述的方法,其特征在于,所述传感器节点确定所述摄像头模组的工作模式为第一工作模式,具体包括:所述传感器节点根据所述图像的分辨率、数据流格式和预设规则确定所述摄像头模组的工作模式为第一工作模式。

12.根据权利要求10或11所述的方法,其特征在于,所述相机服务向所述相机HAL发送打开摄像头模组的第二请求之后,所述方法还包括:所述相机HAL根据所述摄像头模组的ID、图像的分辨率和数据流格式创建用于传输数据流和控制流的通路;

所述相机HAL向所述相机服务返回创建通路的结果;所述创建通路的结果为成功;

所述相机服务向所述人脸识别控制模块返回摄像头模组打开完成的消息;

所述人脸识别控制模块向所述相机服务发送数据请求,所述数据请求用于获取数据流;

所述相机服务调用所述相机HAL获取数据流。

13.根据权利要求10所述的方法,其特征在于,所述发射器以所述第一电流值工作之后,所述方法还包括:所述图像传感器在所述第一工作模式对应的曝光时间内获取光信号;

基于接收到的光信号,所述图像传感器获取第一图像数据。

14.根据权利要求13所述的方法,其特征在于,所述图像传感器获取第一图像数据之后,所述方法还包括:所述图像传感器向所述发射器发送获取第一参数的请求;

所述图像传感器从所述发射器接收所述第一参数;

所述图像传感器基于所述第一图像数据和所述第一参数,得到第一RAW Data;所述第一参数用于指示所述发射器在所述第一电流值下的工作状态。

15.根据权利要求14所述的方法,其特征在于,所述电子设备还包括图像处理模块、第一内存和人脸识别可信应用TA,所述确定所述发射器是否处于正常工作状态包括:所述图像传感器基于所述第一图像数据和所述第一参数,得到所述第一RAW Data之后,所述图像传感器将所述第一RAW Data发送到所述图像处理模块;

所述图像处理模块将所述第一RAW Data发送至所述第一内存中存储,所述第一内存对应第一FD;

所述人脸识别TA根据所述第一FD从所述第一内存中读取所述第一RAW Data;

所述人脸识别TA基于所述第一RAW Data确定所述发射器是否处于正常工作状态。

16.根据权利要求15所述的方法,其特征在于,所述人脸识别TA基于所述第一RAW Data确定所述发射器是否处于正常工作状态,具体包括:所述人脸识别TA从所述第一RAW Data中获取所述第一参数;

若所述第一参数用于指示所述发射器的工作状态为正常工作状态,所述人脸识别TA确定所述发射器处于正常工作状态;

若所述第一参数用于指示所述发射器的工作状态为异常工作状态,所述人脸识别TA确定所述发射器处于异常工作状态。

17.根据权利要求15或16所述的方法,其特征在于,所述图像处理模块将所述第一RAW Data发送至第一内存中存储之后,所述方法还包括:所述图像处理模块将所述第一FD发送至所述摄像头驱动模块;

所述摄像头驱动模块将所述第一FD发送至所述相机HAL;

所述相机HAL将所述第一FD发送至所述相机服务;

所述相机服务将所述第一FD发送至所述人脸识别控制模块;

所述人脸识别控制模块将所述第一FD发送至人脸识别可信应用TA,其中,所述人脸识别TA中包含TOF算法和人脸ID算法,所述TOF算法用于将所述第一RAW Data转化成灰度图和深度图,所述人脸ID算法用于根据所述灰度图进行人脸匹配以及根据所述深度图进行防伪检测;

响应于接收所述人脸识别控制模块发送的所述第一FD,所述人脸识别TA根据所述第一FD从所述第一内存中读取所述第一RAW Data。

18.根据权利要求16所述的方法,其特征在于,所述人脸识别TA确定所述发射器处于正常工作状态之后,所述方法还包括:所述人脸识别TA向所述人脸控制模块发送所述发射器的工作状态,所述发射器的工作状态为正常工作状态;

所述人脸控制模块向所述相机服务发送所述发射器的工作状态;

响应于接收所述发射器的工作状态,所述相机服务向所述相机HAL发送所述发射器的工作状态;

或者,所述人脸控制模块向所述相机HAL发送所述发射器的工作状态。

19.根据权利要求18所述的方法,其特征在于,所述控制所述发射器以第二光强度工作,包括:响应于接收所述发射器的工作状态为正常工作状态,所述相机HAL确定所述摄像头模组的工作模式为第二工作模式,所述第二工作模式用于指示所述发射器工作在第二电流值;

所述相机HAL将所述第二工作模式的配置参数发送到所述摄像头驱动模块;

所述摄像头驱动模块将所述第二工作模式的配置参数写入所述TOF摄像头模组的寄存器中;

所述摄像头驱动模块向所述传感器节点发送配置参数写入完成的消息;

响应于接收所述配置参数写入完成的消息,所述传感器节点向所述摄像头驱动模块发送第三启动命令;

所述摄像头驱动模块向所述TOF摄像头模组发送第四启动命令;

所述发射器以所述第二电流值工作,所述发射器以所述第二电流值工作时发射的光信号为所述第二光强度。

20.根据权利要求19所述的方法,其特征在于,所述发射器以所述第二电流值工作之后,所述控制所述图像传感器采集图像数据,具体包括:所述图像传感器在所述第二工作模式对应的曝光时间内获取光信号;

基于接收到的光信号,所述图像传感器获取第二图像数据。

21.根据权利要求20所述的方法,其特征在于,所述图像传感器获取第二图像数据之后,所述方法还包括:所述图像传感器向所述发射器发送获取第二参数的请求;

所述图像传感器从所述发射器接收所述第二参数;

所述图像传感器基于所述第一图像数据和所述第二参数,得到第二RAW Data;所述第二参数用于指示所述发射器在所述第二电流值下的工作状态。

22.根据权利要求21所述的方法,其特征在于,所述电子设备还包括第二内存,所述基于所述图像数据执行所述人脸识别包括:所述图像传感器将所述第二RAW Data发送至所述图像处理模块;

所述图像处理模块将所述第二RAW Data发送至所述第二内存中存储;所述第二内存对应第二FD;

所述人脸识别TA根据第二FD从所述第二内存中读取所述第二RAW Data;

所述人脸识别TA根据所述第二RAW Data中的图像数据获取第一灰度图和第一深度图;

所述人脸识别TA根据所述第一灰度图进行人脸对比,根据所述第一深度图进行防伪检测,得到人脸识别结果。

23.根据权利要求22所述的方法,其特征在于,所述图像处理模块将所述第二RAW Data发送至第二内存中存储之后,所述方法还包括:所述图像处理模块将所述第二FD发送至所述摄像头驱动模块;

所述摄像头驱动模块将所述第二FD发送至相机HAL;

所述相机HAL通过预设接口将所述第二FD发送至相机服务;

所述相机服务将所述第二FD发送至所述人脸识别控制模块;

所述人脸识别控制模块将所述第二FD发送至人脸识别TA。

24.根据权利要求22或23所述的方法,其特征在于,所述方法还包括:所述人脸识别TA将所述人脸识别结果发送至所述人脸识别控制模块;

所述人脸识别控制模块将所述人脸识别结果发送至人脸识别服务;

所述人脸识别服务将所述人脸识别结果发送至人脸识别SDK;

所述人脸识别SDK将所述人脸识别结果发送至所述第一应用;

响应于接收所述人脸识别结果,所述第一应用执行解锁,所述人脸识别结果为成功。

25.根据权利要求16所述的方法,其特征在于,所述在所述发射器处于异常工作状态的情况下,控制所述发射器以第三光强度工作,具体包括:响应于接收所述发射器的工作状态为异常工作状态,所述相机HAL确定所述摄像头模组的工作模式为第三工作模式,所述第三工作模式用于指示所述发射器工作在第三电流值,所述第三电流值为0;

所述相机HAL将所述第三工作模式的配置参数发送到所述摄像头驱动模块;

所述摄像头驱动模块将所述第三工作模式的配置参数写入所述TOF摄像头模组的寄存器中;

所述摄像头驱动模块向所述传感器节点发送配置参数写入完成的消息;

响应于接收所述配置参数写入完成的消息,所述传感器节点向所述摄像头驱动模块发送第五启动命令;

所述摄像头驱动模块向所述TOF摄像头模组发送第六启动命令;

所述发射器不工作。

26.根据权利要求25所述的方法,其特征在于,所述发射器不工作之后,所述方法还包括:所述图像传感器在所述第三工作模式对应的曝光时间内接收光信号;

基于接收到的光信号,所述图像传感器获取第三图像数据。

27.根据权利要求26所述的方法,其特征在于,所述方法还包括:所述人脸识别TA基于所述第三图像数据获取第二灰度图和第二深度图;

基于所述第二灰度图进行人脸对比,基于所述第二深度图进行防伪检测,得到人脸识别结果为失败。

28.根据权利要求27所述的方法,其特征在于,所述方法还包括:所述人脸识别TA将所述人脸识别结果发送至所述人脸识别控制模块;

所述人脸识别控制模块将所述人脸识别结果发送至人脸识别服务;

所述人脸识别服务将所述人脸识别结果发送至人脸识别SDK;

所述人脸识别SDK将所述人脸识别结果发送至所述第一应用;

响应于接收所述人脸识别结果,所述第一应用不执行解锁或显示解锁失败,所述人脸识别结果为失败。

29.一种电子设备,其特征在于,所述电子设备包括:无线通信模块、存储器和一个或多个处理器;所述无线通信模块、所述存储器与所述处理器耦合;

其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1‑28中任一项所述的方法。

30.一种计算机可读存储介质,其特征在于,包括计算机指令;

当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1‑28中任一项所述的方法。

31.一种芯片系统,其特征在于,所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;

所述芯片系统应用于包括通信模块和存储器的电子设备;所述接口电路用于从所述存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如权利要求1‑28中任一项所述的方法。

说明书 :

一种人脸识别方法和装置

技术领域

[0001] 本申请涉及终端领域,尤其涉及一种人脸识别方法和装置。

背景技术

[0002] 目前,人脸识别被广泛用于电子设备进行身份认证的场景。目前的人脸识别采用的是平面(2D)人脸特征检测的技术,提取的人脸特征为2D特征,容易受到虚假攻击(例如,通过机主的照片进行冒充),安全性不高。

发明内容

[0003] 本申请实施例提供一种人脸识别方法和装置,能够提高人脸识别的安全性。
[0004] 第一方面,本申请实施例提供一种人脸识别方法,应用于电子设备,电子设备包括飞行时间TOF摄像头模组,TOF摄像头模组包括用于发射光信号的发射器和用于接收反射光和成像的图像传感器,方法包括:接收用户的第一操作,第一操作用于触发人脸识别;控制发射器以第一光强度工作;确定发射器是否处于正常工作状态;在发射器处于正常工作状态的情况下,控制发射器以第二光强度工作,第二光强度大于第一光强度;控制图像传感器采集图像数据;基于图像数据执行人脸识别。
[0005] 基于本申请实施例提供的方法,确定发射器以第一光强度工作时是否处于正常工作状态,若发射器处于正常工作状态,再控制发射器以第二光强度工作。第二光强度大于第一光强度。由于第一光强度较小,第一光强度不会对人眼造成伤害,可以保证人眼安全。若发射器可以正常工作发射第一光强度的光信号,说明发射器是完好的,未损坏的,这样电子设备可以正常控制发射器,发射器以较大的第二光强度工作时,也可以保证人眼安全,不会出现由于损坏导致发射出伤害人眼的光信号的问题。并且,发射器以第二光强度工作时,可以保证图像传感器采集到更加准确的图像数据,从而可以更加准确的进行人脸识别。
[0006] 另外,TOF摄像头模组采集到的图像数据是3D的人脸数据,相比2D的人脸数据,根据3D的人脸数据进行人脸识别更加安全和准确。
[0007] 在一种可能的实现方式中,发射器工作在第一电流值时发射的光信号为第一光强度,发射器工作在第二电流值时发射的光信号为第二光强度,第二电流值大于第一电流值。也就是说,发射器工作的电流值越大,发射器发射的光信号的光强度越大。
[0008] 在一种可能的实现方式中,确定发射器是否处于正常工作状态包括:确定发射器的第一参数,第一参数用于指示发射器的工作状态;若第一参数用于指示发射器的工作状态为正常工作状态,确定发射器处于正常工作状态;若第一参数用于指示发射器的工作状态为异常工作状态,确定发射器处于异常工作状态。发射器的第一参数可以是发射器工作在第一电流值,发送第一光强度的光信号后生成的。
[0009] 在一种可能的实现方式中,方法还包括:在发射器处于异常工作状态的情况下,控制发射器以第三光强度工作,第三光强度为0;控制图像传感器采集图像数据;基于图像数据执行人脸识别。由于发射器处于异常工作状态,此时发射器可以不工作,这样可以避免出现由于发射器损坏导致发射出伤害人眼的光信号的问题。
[0010] 在一种可能的实现方式中,基于图像数据执行人脸识别包括:基于图像数据获取灰度图和深度图;基于灰度图进行人脸对比,基于深度图进行防伪检测,得到人脸识别结果。若人脸对比结果满足第一预设条件,防伪检测结果满足第二预设条件,可以认为人脸识别结果为成功,从而可以执行解锁等操作。
[0011] 在一种可能的实现方式中,第一操作包括用于解锁电子设备的操作,用于在线支付的操作,用于录入人脸的操作,或者用于安全注册或登录应用程序的操作。第一操作例如可以是按压电源键、点击、滑动等操作,本申请不做限定。
[0012] 在一种可能的实现方式中,方法还包括:根据人脸识别结果确定是否执行解锁;若人脸识别结果为成功,则执行解锁;若人脸识别结果为失败,不执行解锁或显示解锁失败;或者根据人脸识别结果确定是否执行支付;若人脸识别结果为成功,则执行支付;若人脸识别结果为失败,不执行支付或显示支付失败;或者根据人脸识别结果确定是否执行人脸录入;若人脸识别结果为成功,则执行人脸录入;若人脸识别结果为失败,不执行人脸录入或显示人脸录入失败;或者根据人脸识别结果确定是否执行注册或登录;若人脸识别结果为成功,则执行注册或登录;若人脸识别结果为失败,不执行注册或登录或显示注册或登录失败。即本申请可以应用在支付或转账时(例如,用户在支付应用/理财应用/聊天应用/购物应用(例如, )中进行支付或转账操作)的人脸识别,用户在安全注
册或登录应用程序的人脸安全验证(例如,用户在 中进行注册或登录操作)等场景中,本申请不做限定。
[0013] 在一种可能的实现方式中,方法还包括:在发射器处于异常工作状态的情况下,向用户提示解锁失败;或者向用户提示支付失败;或者向用户提示人脸录入失败;或者向用户提示注册或登录失败。由于发射器处于异常工作状态,此时发射器不工作,因此无法成功识别人脸,但可以避免出现由于发射器损坏导致发射出伤害人眼的光信号的问题。
[0014] 在一种可能的实现方式中,电子设备包含相机硬件抽象层HAL和摄像头驱动模块,相机HAL包括传感器节点,控制发射器以第一光强度工作包括:传感器节点确定摄像头模组的工作模式为第一工作模式;第一工作模式用于指示发射器工作在第一电流值;传感器节点将第一工作模式的配置参数发送到摄像头驱动模块;摄像头驱动模块将第一工作模式的配置参数写入TOF摄像头模组的寄存器中;摄像头驱动模块向传感器节点发送配置参数写入完成的消息;响应于接收配置参数写入完成的消息,传感器节点向摄像头驱动模块发送第一启动命令;摄像头驱动模块向TOF摄像头模组发送第二启动命令;发射器以第一电流值工作,发射器以第一电流值工作时发射的光信号为第一光强度。这样,通过电子设备中的相机HAL(其中包括传感器节点)和摄像头驱动模块可以控制发射器以第一光强度工作。
[0015] 在一种可能的实现方式中,电子设备还包括第一应用、人脸识别软件开发工具包SDK、人脸识别服务、人脸识别控制模块和相机服务,接收用户的第一操作之后,方法还包括:第一应用调用人脸识别SDK进行人脸识别;第一应用对应于第一操作,第一应用包括锁屏应用、购物应用、聊天应用或理财应用;人脸识别SDK向人脸识别服务发送人脸识别的请求;人脸识别的请求中携带人脸识别类型的标识、图像的分辨率大小和数据流格式;人脸识别服务向人脸识别控制模块发送人脸识别的请求;人脸识别控制模块根据人脸识别的请求匹配摄像头模组;人脸识别控制模块向相机服务发送打开摄像头模组的第一请求;打开摄像头模组的第一请求中携带安全标识、摄像头模组的标识ID、图像的分辨率和数据流格式;安全标识用于申请安全内存;相机服务向相机HAL发送打开摄像头模组的第二请求,第二请求中携带安全标识、摄像头模组的标识ID、图像的分辨率和数据流格式。这样,相机HAL中的传感器节点可以得到安全标识、摄像头模组的标识ID、图像的分辨率和数据流格式等信息,后续可以根据这些信息确定摄像头模组的工作模式。
[0016] 在一种可能的实现方式中,传感器节点确定摄像头模组的工作模式为第一工作模式,具体包括:传感器节点根据图像的分辨率、数据流格式和预设规则确定摄像头模组的工作模式为第一工作模式。这样,传感器节点可以确定出摄像头模组的工作模式为第一工作模式。
[0017] 在一种可能的实现方式中,相机服务向相机HAL发送打开摄像头模组的第二请求之后,方法还包括:相机HAL根据摄像头模组的ID、图像的分辨率和数据流格式创建用于传输数据流和控制流的通路;相机HAL向相机服务返回创建通路的结果;创建通路的结果为成功;相机服务向人脸识别控制模块返回摄像头模组打开完成的消息;人脸识别控制模块向相机服务发送数据请求,数据请求用于获取数据流;相机服务调用相机HAL获取数据流。
[0018] 在一种可能的实现方式中,发射器以第一电流值工作之后,方法还包括:图像传感器在第一工作模式对应的曝光时间内获取光信号;基于接收到的光信号,图像传感器获取第一图像数据。
[0019] 在一种可能的实现方式中,图像传感器获取第一图像数据之后,方法还包括:图像传感器向发射器发送获取第一参数的请求;图像传感器从发射器接收第一参数;图像传感器基于第一图像数据和第一参数,得到第一原始RAW Data;第一参数用于指示发射器在第一电流值下的工作状态。
[0020] 在一种可能的实现方式中,电子设备还包括图像处理模块、第一内存和人脸识别TA,确定发射器是否处于正常工作状态包括:图像传感器基于第一图像数据和第一参数,得到第一原始RAW Data之后,图像传感器将第一RAW Data发送到图像处理模块;图像处理模块将第一RAW Data发送至第一内存中存储,第一内存对应第一FD;人脸识别TA根据第一FD从第一内存中读取第一RAW Data;人脸识别TA基于第一RAW Data确定发射器是否处于正常工作状态。这样,可以通过电子设备中的人脸识别TA确定出发射器是否处于正常工作状态。
[0021] 在一种可能的实现方式中,人脸识别TA基于第一RAW Data确定发射器是否处于正常工作状态,具体包括:人脸识别TA从第一RAW Data中获取第一参数;若第一参数用于指示发射器的工作状态为正常工作状态,人脸识别TA确定发射器处于正常工作状态;若第一参数用于指示发射器的工作状态为异常工作状态,人脸识别TA确定发射器处于异常工作状态。这样,人脸识别可以根据第一RAW Data中的第一参数确定出发射器是否处于正常工作状态。
[0022] 在一种可能的实现方式中,图像处理模块将第一RAW Data发送至第一内存中存储之后,方法还包括:图像处理模块将第一FD发送至摄像头驱动模块;摄像头驱动模块将第一FD发送至相机HAL;相机HAL将第一FD发送至相机服务;相机服务将第一FD发送至人脸识别控制模块;人脸识别控制模块将第一FD发送至人脸识别可信应用TA,其中,人脸识别TA中包含TOF算法和人脸ID算法,TOF算法用于将第一RAW Data转化成灰度图和深度图,人脸ID算法用于根据灰度图进行人脸匹配以及根据深度图进行防伪检测;响应于接收人脸识别控制模块发送的第一FD,人脸识别TA根据第一FD从第一内存中读取第一RAW Data。这样,人脸识别TA可以得到第一FD,从而可以根据第一FD从第一内存中读取第一RAW Data。
[0023] 在一种可能的实现方式中,人脸识别TA确定发射器处于正常工作状态之后,方法还包括:人脸识别TA向人脸控制模块发送发射器的工作状态,发射器的工作状态为正常工作状态;人脸控制模块向相机服务发送发射器的工作状态;响应于接收发射器的工作状态,相机服务向相机HAL发送发射器的工作状态;或者,人脸控制模块向相机HAL发送发射器的工作状态。这样,相机HAL可以得到发射器的工作状态。
[0024] 在一种可能的实现方式中,控制发射器以第二光强度工作,包括:响应于接收发射器的工作状态为正常工作状态,相机HAL确定摄像头模组的工作模式为第二工作模式,第二工作模式用于指示发射器工作在第二电流值;相机HAL将第二工作模式的配置参数发送到摄像头驱动模块;摄像头驱动模块将第二工作模式的配置参数写入TOF摄像头模组的寄存器中;摄像头驱动模块向传感器节点发送配置参数写入完成的消息;响应于接收配置参数写入完成的消息,传感器节点向摄像头驱动模块发送第三启动命令;摄像头驱动模块向TOF摄像头模组发送第四启动命令;发射器以第二电流值工作,发射器以第二电流值工作时发射的光信号为第二光强度。这样,相机HAL可以根据发射器的正常工作状态确定摄像头模组的工作模式为第二工作模式。通过电子设备中的相机HAL(其中包括传感器节点)和摄像头驱动模块可以控制发射器以第二光强度工作。
[0025] 在一种可能的实现方式中,发射器以第二电流值工作之后,控制图像传感器采集图像数据,具体包括:图像传感器在第二工作模式对应的曝光时间内获取光信号;基于接收到的光信号,图像传感器获取第二图像数据。
[0026] 在一种可能的实现方式中,图像传感器获取第二图像数据之后,方法还包括:图像传感器向发射器发送获取第二参数的请求;图像传感器从发射器接收第二参数;图像传感器基于第一图像数据和第二参数,得到第二RAW Data;第二参数用于指示发射器在第二电流值下的工作状态。
[0027] 在一种可能的实现方式中,基于图像数据执行人脸识别包括:图像传感器将第二RAW Data发送至图像处理模块;图像处理模块将第二RAW Data发送至第二内存中存储;第二内存对应第二FD;人脸识别TA根据第二FD从第二内存中读取第二RAW Data;人脸识别TA根据第二RAW Data中的图像数据获取第一灰度图和第一深度图;人脸识别TA根据第一灰度图进行人脸对比,根据第一深度图进行防伪检测,得到人脸识别结果。这样,人脸识别TA可以根据第二RAW Data确定出人脸识别结果。
[0028] 在一种可能的实现方式中,图像处理模块将第二RAW Data发送至第二内存中存储之后,方法还包括:图像处理模块将第二FD发送至摄像头驱动模块;摄像头驱动模块将第二FD发送至相机HAL;相机HAL通过预设接口将第二FD发送至相机服务;相机服务将第二FD发送至人脸识别控制模块;人脸识别控制模块将第二FD发送至人脸识别TA。这样,人脸识别TA可以得到第二FD,从而可以根据第二FD读取第二RAW Data。
[0029] 在一种可能的实现方式中,方法还包括:人脸识别TA将人脸识别结果发送至人脸识别控制模块;人脸识别控制模块将人脸识别结果发送至人脸识别服务;人脸识别服务将人脸识别结果发送至人脸识别SDK;人脸识别SDK将人脸识别结果发送至第一应用;响应于接收人脸识别结果,第一应用执行解锁,人脸识别结果为成功。这样,当人脸识别结果为成功时,可以成功解锁。
[0030] 在一种可能的实现方式中,在发射器处于异常工作状态的情况下,控制发射器以第三光强度工作,具体包括:响应于接收发射器的工作状态为异常工作状态,相机HAL确定摄像头模组的工作模式为第三工作模式,第三工作模式用于指示发射器工作在第三电流值,第三电流值为0;相机HAL将第三工作模式的配置参数发送到摄像头驱动模块;摄像头驱动模块将第三工作模式的配置参数写入TOF摄像头模组的寄存器中;摄像头驱动模块向传感器节点发送配置参数写入完成的消息;响应于接收配置参数写入完成的消息,传感器节点向摄像头驱动模块发送第五启动命令;摄像头驱动模块向TOF摄像头模组发送第六启动命令;发射器不工作。由于发射器处于异常工作状态,此时发射器不工作,可以避免出现由于发射器损坏导致发射出伤害人眼的光信号的问题。
[0031] 在一种可能的实现方式中,发射器不工作之后,方法还包括:图像传感器在第三工作模式对应的曝光时间内接收光信号;基于接收到的光信号,图像传感器获取第三图像数据。
[0032] 在一种可能的实现方式中,方法还包括:人脸识别TA基于第三图像数据获取第二灰度图和第二深度图;基于第二灰度图进行人脸对比,基于第二深度图进行防伪检测,得到人脸识别结果为失败。由于发射器不工作(不通电、不发光)时,图像传感器得到的图像数据(第三图像数据)通常是无清晰人脸图像的“黑图”,因此人脸识别结果为失败。
[0033] 在一种可能的实现方式中,方法还包括:人脸识别TA将人脸识别结果发送至人脸识别控制模块;人脸识别控制模块将人脸识别结果发送至人脸识别服务;人脸识别服务将人脸识别结果发送至人脸识别SDK;人脸识别SDK将人脸识别结果发送至第一应用;响应于接收人脸识别结果,第一应用不执行解锁或显示解锁失败,人脸识别结果为失败。由于发射器处于异常工作状态,此时发射器不工作,因此人脸识别结果为失败,从而解锁失败,但这样可以避免出现由于发射器损坏导致发射出伤害人眼的光信号的问题。
[0034] 第二方面,本申请提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。上述芯片系统可以应用于包括通信模块和存储器的电子设备。该接口电路用于从电子设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备可以执行如第一方面及其任一种可能的设计方式所述的方法。
[0035] 第三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。当计算机指令在电子设备(如手机)上运行时,使得该电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
[0036] 第四方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
[0037] 第五方面,本申请实施例提供了一种人脸识别装置,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得所述装置实现上述第一方面及其任一种可能的设计方式所述的方法。所述装置可以为电子设备或服务器设备;或可以为电子设备或服务器设备中的一个组成部分,如芯片。
[0038] 第六方面,本申请实施例提供了一种人脸识别装置,所述装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述装置执行上述第一方面及其任一种可能的设计方式所述的方法。
[0039] 可以理解地,上述提供的第二方面所述的芯片系统,第三方面所述的计算机可读存储介质,第四方面所述的计算机程序产品及第五方面、第六方面所述的装置所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。

附图说明

[0040] 图1为本申请实施例提供的一种电子设备的结构示意图;
[0041] 图2为本申请实施例提供的一种TOF成像技术的原理示意图;
[0042] 图3为本申请实施例提供的一种软件模块架构示意图;
[0043] 图4为本申请实施例提供的一种软件模块间的交互示意图;
[0044] 图5为本申请实施例提供的又一种软件模块间的交互示意图;
[0045] 图6为本申请实施例提供的一种信号交互示意图;
[0046] 图7为本申请实施例提供的一种显示示意图;
[0047] 图8为本申请实施例提供的又一种显示示意图;
[0048] 图9为本申请实施例提供的又一种显示示意图;
[0049] 图10为本申请实施例提供的又一种信号交互示意图;
[0050] 图11为本申请实施例提供的一种芯片结构示意图。

具体实施方式

[0051] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0052] 为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
[0053] 通用运行环境(rich execution environment,REE),也可以称为富执行环境或普通执行环境或不可信执行环境,是指移动端的系统运行环境,其中可以运行Android、IOS和Linux等操作系统。REE的开放和扩展性好但安全性不高。
[0054] 可信执行环境(trusted execution environment,TEE),也可以称安全侧或安全区,是需要授权才能访问的区域。TEE与REE共存于电子设备中的运行环境,其通过硬件的支撑,实现与REE的隔离,具有安全能力并且能够抵御常规REE侧易遭受的软件攻击。TEE有自身的运行空间,定义了严格的保护措施,因此,比REE的安全级别更高,能够保护TEE中的资产(assets),如数据,软件等,免受软件攻击,抵抗特定类型的安全威胁。
[0055] REE+TEE架构,是指通过TEE与REE结合共同为应用提供服务的架构。也就是说,TEE与REE共同存在于电子设备中。示例性的,TEE通过硬件的支撑,可实现与REE相隔离的运行机制。TEE有自身的运行空间,比REE的安全级别更高,能够保护TEE中的资产(如数据,软件等)免受软件攻击。只有授权的安全软件才能在TEE中执行,同时它也保护了安全软件的资源和数据的机密性。相比REE,由于其隔离和权限控制等保护机制,TEE能够更好的保护数据和资源的安全性。
[0056] TA,即可信应用,是运行在TEE中的应用,能够为运行在TEE之外的CA提供安全服务,如输入密码,生成交易签名,人脸识别等。
[0057] CA,即客户端应用。CA通常指运行在REE中的应用。CA可以通过客户端(Client)应用程序编程接口(application programming interface,API)对TA进行调用并指示TA执行相应的安全操作。
[0058] 软件开发工具包(software development kit,SDK):广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
[0059] RAW Data,即原始数据,可以理解为“未经加工和未经压缩的数据”。本申请实施例中,RAW Data可以是指TOF摄像头将捕捉到的光源信号转化为数字信号的原始数据。RAW Data中还记录有相机拍摄所产生的一些元数据(Metadata)。
[0060] 元数据,又可以称为中介数据、中继数据,是用于描述数据的数据(data about data),主要是描述数据属性(property)的信息。本申请实施例中,Metadata可以指示摄像头的工作模式,打光电流值大小,TOF摄像头器件工作状态、曝光值等信息。
[0061] TOF摄像头(TOF摄像头模组),可以包括发射器(TX)和接收器(RX),TX用于发射红外光或激光脉冲,RX用于接收反射光并成像。由于TX可以自主发射光信号用于成像,因此TOF图像不受环境中大多数光线的影响,这样,将TOF图像应用在解锁业务中,能够提高人脸识别的安全性。
[0062] 飞行时间(time of flight,TOF)成像技术,是指由一组人眼看不到的红外光(或激光脉冲)向外发射,遇到物体后反射,反射到摄像头结束,计算从发射到反射回摄像头的时间差或相位差,并将数据收集起来,形成一组距离深度数据,从而得到一个立体的3D模型的成像技术。也即,TOF成像技术是在传统的2D XY轴的成像基础上,加入来自Z轴方向的深度信息,最终生成3D的图像信息。
[0063] 采用TOF成像技术时,需要向人脸投射红外光、激光等,为了人眼的安全,需要对TX发射的光的光功率进行检测,以保证在人眼安全范围内,避免TX发射的光信号伤害人眼。
[0064] 本申请实施例提供一种人脸识别方法,使用TOF摄像头采集图像,TOF摄像头可以先工作在人眼安全模式以确定TX是否异常,若TX正常工作,可以正常使用TOF摄像头采集图像,这样能够保证TX发射的光的光功率在人眼安全范围内。若TX异常,可以关闭TX,以避免TX发射的光信号伤害人眼。
[0065] 图1为本申请实施例提供的一种电子设备100的结构示意图。
[0066] 如图1所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器
170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器
192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
[0067] 其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器
180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
[0068] 可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0069] 处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural‑network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0070] 控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0071] 处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0072] 在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter‑integrated circuit,I2C)接口,集成电路内置音频(inter‑integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general‑purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
[0073] 可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0074] 充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
[0075] 电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
[0076] 电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
[0077] 天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
[0078] 移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
[0079] 调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
[0080] 无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi‑Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
[0081] 在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time‑division code division multiple access,TD‑SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi‑zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
[0082] 电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0083] 显示屏194用于显示图像,视频等。该显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),发光二极管(light‑emitting diode,LED),有机发光二极管(organic light‑emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active‑matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light‑emitting diode,FLED),Miniled,MicroLed,Micro‑oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。
[0084] 电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
[0085] 摄像头193可以包括1~N个。例如电子设备可以包括2个前置摄像头和4个后置摄像头。其中,前置摄像头中可以包括TOF摄像头。TOF摄像头包括TX和RX,TX可以用于发射光信号(红外光或激光脉冲),RX可以用于接收成像。TX例如可以为红外光发射器。RX例如可以为互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)或者电荷耦合器件(charge coupled device,CCD)图像感应器。
[0086] 示例性的,如图2中的(a)所示,可以通过TOF摄像头的光发射器(Tx)向被测目标(例如,用户)连续发送光信号(红外光或激光脉冲),在TOF摄像头的传感器端(Rx)接收被测目标返回的光信号,如图2中的(b)所示,根据发射和接收光信号的相位差(延迟)可以得到被测目标的深度信息。
[0087] 其中,Tx和Rx可以通过总线进行信息交互。例如,Rx可以通过总线(例如,串行外设接口(Serial Peripheral Interface,SPI)总线)向Tx发送配置参数,该配置参数用于指示Tx对应的寄存器的地址和针对该寄存器的值。例如Tx对应的寄存器的地址可以是0x11,0x11对应的存储空间中可以存储电流值。Tx可以基于相应的配置参数工作在相应电流值下从而发射出相应光强度的光信号。Rx可以基于发射器发出的相应强度的光信号的反射光获取相应的图像数据。需要说明的是,Tx工作在不同的电流值下,可以发射出不同光强度的光信号。例如,Tx工作在第一电流值下,可以发射出第一光强度的光信号。Tx工作在第二电流值下,可以发射出第二光强度的光信号。第二电流值大于第一电流值。第二光强度大于第一光强度。Rx基于不同强度的光信号的反射光获取的图像数据也是不同的。例如,当Tx工作在第一电流值下,发射出第一光强度的光信时,Rx在相应的曝光时间内获取第一图像数据;Tx工作在第二电流值下,发射出第二光强度的光信号时,Rx在相应的曝光时间内获取第二图像数据;第二图像数据与第一图像数据不同。
[0088] Tx工作在相应电流值下时,可以判断自身的工作状态,工作状态可以是正常或异常。Rx可以通过总线向Tx请求Tx的工作状态,Tx可以通过总线向Rx反馈自身的工作状态(例如,正常or异常),从而Rx可以获取Tx的工作状态。Rx可以将Tx的工作状态和自身的工作状态以及两者的工作模式打包在第一数据包(例如,Metadata)中。Rx还可以将Metadata和基于反射光获取的图像数据打包在第二数据包(例如,RAW Data)中。
[0089] NPU为神经网络(neural‑network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0090] 外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。例如,在本申请实施例中,处理器110可以通过执行存储在内部存储器121中的指令,内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
[0091] 电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0092] 音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。
[0093] 按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
[0094] 以下实施例中的方法均可以在具有上述硬件结构的电子设备100中实现。
[0095] 上述电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
[0096] 分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。在一些实施例中,Android系统可以包括应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,硬件抽象层(hardware abstraction layer,HAL)以及内核层。需要说明的是,本申请实施例以Android系统举例来说明,在其他操作系统中(例如鸿蒙系统,IOS系统等),只要各个功能模块实现的功能和本申请的实施例类似也能实现本申请的方案。
[0097] 其中,应用程序层可以包括一系列应用程序包。
[0098] 如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息、锁屏应用、设置应用等应用程序。当然,应用程序层还可以包括其他应用程序包,例如支付应用,购物应用、银行应用、聊天应用或理财应用等,本申请不做限定。
[0099] 其中,设置应用具有录入人脸的功能,该录入的人脸用于人脸解锁。锁屏应用具有响应于用户的解锁操作(例如,按压电源键)进行解锁的功能。锁屏应用可以进行人脸解锁、指纹解锁、密码解锁等解锁处理,本申请实施例主要以人脸解锁为例进行说明。
[0100] 应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如可以包括活动管理器、窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,相机服务(Camera Service)和人脸识别服务等,本申请实施例对此不做任何限制。
[0101] 系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),OpenGL ES,SGL等。
[0102] 表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
[0103] 媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
[0104] OpenGL ES用于实现三维图形绘图,图像渲染,合成,和图层处理等。
[0105] SGL是2D绘图的绘图引擎。
[0106] 安卓运行时(Android Runtime)包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
[0107] HAL层是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层硬件的实现细节。
[0108] HAL层中可以包括Wi‑Fi HAL,音频(audio)HAL,相机HAL(Camera HAL)和人脸识别控制模块(Face CA)等。
[0109] 其中,相机HAL是Camera的核心软件框架,相机HAL中可以包括传感器节点(sensor node)和图像前处理(image front end,IFE)节点(IFE node)。传感器节点和IFE节点是相机HAL创建的图像数据和控制指令传输通路(也可以称为传输管道)中的组件(节点)。
[0110] 人脸识别控制模块是人脸识别的核心软件框架/应用。
[0111] 人脸可信应用(Face Trusted Application,Face TA):运行在TEE环境下的用于人脸识别的应用。本申请实施例中,将Face TA称为人脸识别TA。
[0112] 内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0113] 其中,摄像头驱动是Camera器件的驱动层,主要负责和硬件的交互。
[0114] 硬件层包括显示器、TOF摄像头、IFE模块和安全内存(Secure Buffer)等。
[0115] 其中,安全内存是指具有安全保护功能的内存,可以用于存放TOF摄像头采集的raw data。
[0116] TOF摄像头,也可以称为TOF传感器(TOF sensor),可以包括发射器(TX)和接收器(RX),TX用于发射红外光或激光脉冲,RX用于接收反射光并成像。
[0117] IFE模块(IFE‑Lite):可以称为图像前处理模块,可以用于转发图像数据,转发过程中不对图像数据进行处理。
[0118] 下面对本申请实施例提供的人脸识别方法所涉及的软件模块和模块间的交互进行说明。如图4所示,应用层中的锁屏应用可以与人脸识别SDK交互,人脸识别SDK可以通过调用预设的应用程序接口(application programming interface,API)接口与框架层中的人脸识别服务交互,人脸识别服务可以与HAL层中的人脸识别控制模块交互,人脸识别控制模块可以通过框架层中的相机服务与HAL层中的相机HAL交互,或者,人脸识别控制模块可以直接与HAL层中的相机HAL交互。相机HAL中可以包括传感器节点和IFE节点。传感器节点可以与内核层中的摄像头驱动模块交互,摄像头驱动模块可以用于驱动硬件层中的TOF摄像头以默认的工作模式(例如,人眼安全模式,具体可以参见下文S112中的说明)采集图像数据。IFE模块可以将TOF摄像头采集的图像数据存储至安全内存中。TOF摄像头采集的图像数据在安全内存中的存储位置,可以使用文件描述符(file descriptor,FD)表示。IFE模块可以将图像数据的FD发送至摄像头驱动模块,摄像头驱动模块可以将FD传递到相机HAL的IFE节点,IFE节点可以将FD传递到相机服务,相机服务可以将FD传递到人脸识别控制模块,人脸识别控制模块可以将FD传递到人脸识别TA,人脸识别TA可以根据FD从安全内存中读取图像数据,对图像数据进行处理,并可以将处理结果发送给人脸识别控制模块,人脸识别控制模块可以继续通过相机服务与相机HAL交互,以切换TOF摄像头的工作模式。相机HAL可以继续与摄像头驱动模块交互,使得摄像头驱动模块可以驱动TOF摄像头以切换后的工作模块(例如,人脸ID模式,具体可以参见下文S112中的说明)采集图像数据,该图像数据对应的FD可以继续通过IFE模块、摄像头驱动模块、IFE节点、相机服务和人脸控制模块传递到人脸识别TA,人脸识别TA可以再次读取图像数据并进行处理,将处理结果(人脸识别成功或人脸识别失败)反馈给人脸识别控制模块。人脸识别控制模块可以通过人脸识别服务、人脸识别SDK将处理结果反馈给锁屏应用,以便锁屏应用确定是否解锁(若人脸识别成功,解锁;若人脸识别失败,不解锁,即解锁失败)。其中,图4中的实线箭头可以用于表示控制流,虚线箭头可以用于表示数据流。
[0119] 具体的,如图5所示,相机HAL中的传感器节点可以用于选择TOF摄像头的工作模式,包括人眼安全模式(第一工作模式)、人脸ID模式(第二工作模式)和TX关闭模式(第三工作模式)等,各种工作模式的具体可以参见下文S112中的说明。TOF摄像头默认的初始工作模式可以为人眼安全模式。当TOF摄像头工作在人眼安全模式时,可以从内存中读取产线标定的人眼安全安全电流值(第一电流值),根据该电流值更新人眼安全模式配置,并可以将人眼安全模式的配置参数发送至摄像头驱动模块。在得到人眼安全检测结果后,可以进行模式切换处理。具体的,若人眼安全检测结果为成功,TOF摄像头可以切换到人脸ID模式。若人眼安全检测结果失败,TOF摄像头可以切换到TX关闭模式。这样,可以保证人眼安全。
[0120] 为了便于理解,以下结合附图对本申请实施例提供的方法进行具体介绍。
[0121] 如图6所示,本申请实施例提供一种基于TOF图像的人眼安全检测和人脸识别的方法,流程如下:
[0122] S101、锁屏应用调用人脸识别SDK进行人脸识别。
[0123] 检测到用户的解锁操作(第一操作)时,锁屏应用调用人脸识别SDK进行人脸识别。其中,用户的解锁操作包括用户拿起手机,或者按下电源键,或者在屏幕上操作(点击、滑动等),或者拔出充电线等操作。
[0124] 同时,锁屏应用可以向人脸识别SDK注册一个回调,注册该回调的作用是当人脸识别SDK获得人脸识别结果后,可以向锁屏应用返回该人脸识别结果。
[0125] S102、人脸识别SDK向人脸识别服务发送人脸识别的请求。
[0126] 其中,人脸识别的请求中携带人脸识别类型的标识、图像的分辨率大小和数据流格式。其中,人脸识别类型包括2D人脸识别类型(例如,可以对应标识0)和3D人脸识别类型(例如,可以对应标识1)。
[0127] 示例性的,人脸识别的请求中携带的人脸识别类型可以为1(即3D人脸识别类型),图像的分辨率大小可以为1280x2898像素(pixel),数据流格式可以为原始图像格式(raw image format,RAW)16。
[0128] 同时,人脸识别SDK可以向人脸识别服务注册一个回调,注册该回调的作用是当人脸识别服务获得人脸比对结果后,可以向人脸识别SDK返回该人脸识别结果。
[0129] S103、人脸识别服务向人脸识别控制模块发送人脸识别的请求。
[0130] 人脸识别的请求可以参考S102的描述,在此不做赘述。
[0131] 也就是说,人脸识别SDK可以通过人脸识别服务通知人脸识别控制模块执行人脸识别。人脸识别服务可以将从人脸识别SDK接收到的人脸识别的请求发送给人脸识别控制模块。
[0132] 同时,人脸识别服务可以向人脸识别控制模块注册一个回调,注册该回调的作用是当人脸识别控制模块获得人脸比对结果后,可以向人脸识别服务返回该人脸比对结果。
[0133] S104、响应于接收到人脸识别的请求,人脸识别控制模块根据人脸识别的请求匹配摄像头。
[0134] 具体的,人脸识别控制模块可以从人脸识别的请求中获得人脸识别类型的标识、图像的分辨率大小和数据流格式,通过从相机服务查询摄像头能力确定匹配的摄像头。
[0135] 应该理解的是,电子设备开机过程中,相机服务可以向相机HAL发送摄像头能力查询请求,摄像头能力查询请求用于请求查询电子设备支持的摄像头能力。相机HAL接收到摄像头能力查询请求后,可以将电子设备支持的摄像头的能力发送给相机服务,相机服务可以将接收到的电子设备支持的摄像头的能力存储起来。其中,电子设备支持的摄像头能力包括各摄像头的摄像头标识(identity,ID)、支持的最大分辨率大小、数据流的格式和摄像头是否支持采集深度信息等。
[0136] 示例性的,假设手机上安装有三个摄像头,该三个摄像头的能力信息可以如表1所示:
[0137] 表1
[0138] 摄像头ID 安装位置 支持的最大分辨率 数据流格式 深度信息1 后置 4096x3072pixel YUY No
2 前置 3264x2448 pixel YUY No
3 前置 1280x2898 pixel RAW16 Yes
[0139] 其中,摄像头ID为3的摄像头可以是TOF摄像头,支持采集深度信息。摄像头ID为1和2的摄像头可以是普通摄像头,不支持采集深度信息。当然,手机上可以安装更多前置或后置摄像头,例如手机可以安装2个前置摄像头和4个后置摄像头。
[0140] 人脸识别控制模块可以向相机服务发送摄像头能力查询请求,相机服务可以向将电子设备支持的摄像头的能力发送给人脸识别控制模块,人脸识别控制模块可以根据电子设备支持的摄像头的能力确定匹配的摄像头,例如可以确定匹配的摄像头是ID为3的摄像头(即TOF摄像头)。
[0141] 需要说明的是,表1仅是一种示例,每个摄像头对应的数据流格式可以包括多种。例如,摄像头标识为1的摄像头不仅可以对应YUY的数据流格式,还可以对应RAW16的数据流格式,本申请不做限定。
[0142] S105、人脸识别控制模块向相机服务发送打开相机(Camera)的请求。
[0143] 示例性的,人脸识别控制模块可以通过供应商原生开发套件(vendor native development kit,VNDK)接口向相机服务发送用于打开Camera的请求。其中,用于打开Camera的请求中携带安全标识、摄像头ID、分辨率的大小和数据流格式等信息。其中,安全标识用于指示将数据存储在安全Buffer中。也就是说,安全标识可以用于申请一块安全内存,后续用于存储摄像头采集的数据。例如,安全标识可以为1或0,1表示将数据存储在安全Buffer,0表示将数据存储在非安全Buffer。
[0144] 示例性的,用于打开Camera的请求中携带的安全标识可以为1(即将数据存储在安全Buffer),图像的分辨率大小可以为1280x2898 pixel,数据流格式可以为RAW16,摄像头ID可以为3。
[0145] 同时,人脸识别控制模块可以向Camera服务注册一个回调,注册该回调是用于在相机服务完成camera打开后通知人脸识别控制模块Camera打开完成。
[0146] S106、响应于接收到打开Camera的请求,相机服务向相机HAL发送打开Camera的请求,打开Camera的请求携带安全标识、摄像头ID、分辨率的大小和数据流格式等信息。
[0147] 相机服务调用相机HAL的过程中,相机服务可以向相机HAL发送安全标识、摄像头ID、图像的分辨率、数据流格式等信息。相机HAL可以将安全标识、摄像头ID、图像的分辨率、数据流格式等信息缓存预设时间。
[0148] 同时,相机服务可以向相机HAL注册回调,该回调用于相机HAL将创建通路的结果通知相机服务。
[0149] S107、相机HAL根据摄像头ID、图像的分辨率和数据流格式创建对应的通路。
[0150] 相机HAL可以根据摄像头ID、分辨率和数据流格式选择可用的节点,再根据可用的节点创建相应的通路。示例性的,若分辨率为1280x2898 pixel,数据流格式是RAW16,摄像头ID为3,则可以确定选择传感器节点和IFE节点。这是由于传感器节点和IFE节点可以支持传输摄像头ID为3的摄像头采集到的分辨率为1280x2898 pixel、数据流格式是RAW 16的数据。
[0151] 其中,传感器节点对应的通路可以为:传感器节点‑摄像头驱动‑TOF摄像头‑IFE模块‑安全内存组成的通路。IFE节点对应的通路可以为:IFE模块(携带FD)‑摄像头驱动‑IFE节点组成的通路。相机HAL可以在HAL层将传感器节点的输出端口和IFE节点的输入端口进行连接。从而传感器节点对应的通路和IFE节点对应的通路可以组成一条闭环的通路。通路创建完成后,通路中的硬件完成上电(即硬件电路通电)等待数据请求。
[0152] S108、相机HAL向相机服务返回创建通路的结果。
[0153] 其中,创建通路的结果可以是成功或失败。若创建通路的结果是失败,相机HAL通知相机服务通路创建失败。若创建通路的结果是成功,相机HAL通知相机服务通路创建成功,可以继续执行S109及其后续步骤。
[0154] S109、响应于接收到通路创建成功的通知,相机服务向人脸识别控制模块返回相机打开完成的消息。
[0155] 可以理解的是,相机打开完成是指相机进行拍照或摄像前的准备工作(例如,相机参数配置、上电等准备工作)已完成。
[0156] S110、响应于接收到相机打开完成的消息,人脸识别控制模块向相机服务发送数据请求。
[0157] 其中,数据请求用于请求获取相机的数据流。
[0158] S111、响应于接收到人脸识别控制模块发送的数据请求,相机服务调用相机HAL获取数据流。
[0159] S112、相机HAL通过传感器节点进行摄像头工作模式选择。
[0160] 具体的,传感器节点可以通过S106中缓存的相机分辨率和数据流格式选择传感器节点对应的摄像头工作模式。示例性的,传感器节点可以通过查表(例如,表2)选择传感器节点对应的摄像头工作模式。
[0161] 表2
[0162]
[0163] 其中,人眼安全模式(EyeSafe Mode),是指TOF摄像头的Tx工作在一个小电流(小于预设阈值的电流,第一电流值)下的模式,人眼安全模式用于检查TOF摄像头是否有损坏。人脸ID模式(Face ID Mode),是TOF摄像头的Tx工作在一个正常电流(第二电流值,预设阈值范围内)的模式,人脸ID模式用于进行安全人脸解锁和安全支付等场景。其中,第二电流值大于第一电流值。TX关闭模式(Tx OFF Mode),是指TOF摄像头的Tx不通电(从而不发光)的模式,TX关闭模式用于检测到TOF摄像头的Tx器件损坏或无法正常工作的情况下。这是由于Tx器件损坏的情况下仍通电使用可能会对人眼产生不利影响,因此当检测到TOF摄像头的Tx器件损坏时,采用TX关闭模式使得Tx器件不通电,从而避免对人眼造成伤害。
[0164] 当然,摄像头的工作模式还可以包括更多,本申请不做限定。
[0165] 根据表2可知,在图像的分辨率的最大值为1280x2898 pixel,数据流格式为Raw时,摄像头工作模式可以包括人眼安全模式、人脸ID模式、TX关闭模式等。传感器节点可以默认摄像头的初始工作模式为人眼安全模式。当摄像头工作模式为人眼安全模式时,传感器节点可以从内存(例如,oeminfo)中读取产线标定的人眼安全电流值(即对人眼没有伤害的电流值),根据人眼安全电流值更新TOF摄像头的人眼安全模式设置(setting)。例如,可以通过查表的方式获取TOF摄像头的电流寄存器的地址,将人眼安全电流值写入TOF摄像头的电流寄存器中。应该理解的是,传感器节点可以存储有TOF摄像头的各个寄存器的地址,TOF摄像头的各个寄存器的地址可以如表3所示。
[0166] 表3
[0167]
[0168]
[0169] 示例性的,通过查询表3,可以确定电流值对应的寄存器的地址为0x1,从而可以将人眼安全电流值写入0x1对应的存储空间中。
[0170] S113、传感器节点将人眼安全模式的配置参数发送到Kernel层的摄像头驱动(Camera Driver)模块。
[0171] 示例性的,人眼安全模式的配置参数可以为:电流值为700mA,IR灰度图曝光时间为10μs,depth图曝光时间为10μs。
[0172] S114a、摄像头驱动模块将人眼安全模式的配置参数写入(更新)到TOF摄像头的寄存器中。
[0173] 也即,摄像头驱动模块可以向TOF摄像头发送人眼安全模式的配置参数。
[0174] 示例性的,摄像头驱动模块可以通过集成电路总线(inter‑integrated circuit,I2C)将人眼安全模式的配置参数写入TOF摄像头的RX的寄存器中。RX的寄存器对应的地址可以是0x01。RX对应的寄存器可以包括多个,本申请不做限定。即可以通过I2C向TOF摄像头的RX发送人眼安全模式的配置参数。其中,人眼安全模式的配置参数包括针对RX和TX的配置参数。例如,针对TX的配置参数可以是第一电流值。针对RX的配置参数可以是曝光时间。RX可以将TX对应的配置参数通过SPI总线写入TX对应的寄存器。TX对应的寄存器的地址可以是0x11。TX对应的寄存器可以包括多个,本申请不做限定。
[0175] S114b、摄像头驱动模块向TOF摄像头发送启动(stream on)命令/指令(第二启动命令)。
[0176] stream on命令用于驱动TOF摄像头进行数据采集。
[0177] 需要说明的是,S114b之前,S114a之后,摄像头驱动模块还可以向传感器节点发送配置参数写入完成的消息;响应于接收配置参数写入完成的消息,传感器节点向摄像头驱动模块发送启动命令(第一启动命令)。
[0178] S115、响应于接收到stream on命令,TOF摄像头基于人眼安全模式采集RAW Data 1。
[0179] 具体的,响应于接收到stream on命令,RX可以向TX发送发光信号的请求,TX工作在对应的电流值(第一电流值)下发送第一光强度的光信号;RX在相应的曝光时间(曝光值,例如,10us)接收光信号,RX接收到的光信号中包括第一光强度的光信号的反射光。基于接收到的光信号,RX获取第一图像数据。
[0180] 也就是说,RAW Data 1(原始数据1)是指TOF摄像头的Tx工作在产线标定的人眼安全电流值向人脸发射光信号时,TOF摄像头的Rx接收反射光并成像得到的图像数据(第一图像数据)。其中,Tx工作在产线标定的人眼安全电流值时发射光信号为第一光强度。
[0181] RX还可以通过SPI总线向TX获取工作状态,然后TX可以向RX返回自己的工作状态,RX接收到TX发送的工作状态后,RX中可以获得TOF摄像头器件工作状态,包括:TX的工作状态和RX的工作状态。
[0182] 其中,RAW Data中包含Metadata。示例性的,Metadata保存有当前TOF摄像头的工作模式(例如,人眼安全模式),打光电流值大小(例如,产线标定的人眼安全电流值),TOF摄像头器件工作状态(例如,正常or异常)和图曝光值(例如,10μs)等信息。
[0183] S116、TOF摄像头将基于人眼安全模式采集到的RAW Data 1发送到IFE模块。
[0184] 示例性的,TOF摄像头可以通过移动产业处理器接口(mobile indμstry processor interface,MIPI)将TOF摄像头采集的RAW Data 1传输到IFE模块。IFE模块也可以称为图像前处理模块(IFE‑Lite),IFE模块可以不对RAW Data 1进行处理。
[0185] S117、IFE模块将RAW Data 1发送至安全内存(Secure Buffer)中存储。
[0186] TOF摄像头基于人眼安全模式采集的RAW Data 1在安全内存中的存储位置可以使用FD1表示。
[0187] 示例性的,当FD1为69时,可以表示存储位置为XX安全内存;当FD1为96时,可以表示存储位置为YY非安全内存(普通内存)。
[0188] S118、IFE模块将FD1发送至摄像头驱动模块。
[0189] S119、摄像头驱动模块将FD1发送至IFE节点。
[0190] S120、IFE节点通过相机HAL的接口将FD1发送给相机服务。
[0191] S121、相机服务将FD1发送至人脸识别控制模块。
[0192] S122、人脸识别控制模块将FD1发送至人脸识别TA(FACE TA)。
[0193] 其中,人脸识别TA中包含有TOF算法和人脸ID算法。其中,TOF算法用于将RAW Data转化成灰度图和深度图,根据灰度图和深度图计算人脸是否安全(即当前用户是否是机主)。人脸ID算法用于灰度图的匹配和深度图判断防伪。
[0194] S123、人脸识别TA根据FD1从安全内存中读取RAW Data 1。
[0195] 人脸识别TA可以根据FD1向安全内存请求RAW Data 1,安全内存向人脸识别TA发送RAW Data 1。
[0196] S124、人脸识别TA根据RAW Data 1得到人眼安全检测结果。
[0197] 具体的,人脸识别TA可以通过TOF算法对RAW Data 1中的Metadata进行处理,得到人眼安全检测结果。
[0198] 首先,可以根据Metadata确定TOF摄像头是否在人眼安全工作模式,若是(即工作在人眼安全工作模式),确定器件工作状态是否正常,若器件工作状态正常,人眼安全检测结果为安全/正常(或者说人眼安全检测成功)。若器件工作状态异常,人眼安全检测结果为不安全/异常(或者说人眼安全检测失败)。
[0199] S125、人脸识别TA将人眼安全检测结果发送至人脸识别控制模块。
[0200] S126、人脸识别控制模块将人眼安全检测结果发送至相机HAL。
[0201] 在一种可能的设计中,若人眼安全检测结果为安全/正常(或者说人眼安全检测成功),人脸识别控制模块将人眼安全检测结果发送至相机HAL,由相机HAL根据人眼安全检测结果确定相应的工作模式(参见S127)。若人眼安全检测结果为不安全(异常),人脸识别控制模块可以认为人脸识别失败,人脸识别控制模块可以基于之前(S103中)人脸识别服务注册的回调,将人脸识别结果(失败)传递到人脸识别服务。人脸识别服务基于之前(S102中)人脸识别SDK注册的回调,将人脸识别结果(失败)传递到人脸识别SDK。人脸识别SDK基于之前(S101中)锁屏应用注册的回调,将人脸识别结果(失败)传递到锁屏应用。锁屏应用可以根据人脸识别结果(失败)决定不进行解锁。
[0202] 在另一种可能的设计中,人脸识别控制模块可以直接将人眼安全检测结果发送至相机HAL(无论人眼安全检测结果是成功还是失败),由相机HAL根据人眼安全检测结果确定相应的工作模式(参见S127)。
[0203] 示例性的,人脸识别控制模块可以将人眼安全检测结果通过HAL接口定义语言(HAL interface definition language,HIDL)接口直接传递到相机HAL中。或者,人脸识别控制模块可以通过VNDK接口将人眼安全检测结果发送给相机服务,使得相机服务将人眼安全检测结果发送给相机HAL。
[0204] S127、相机HAL的传感器节点基于人眼安全检测结果确定TOF摄像头的工作模式。
[0205] 若人眼安全检测结果为安全(正常),则确定TOF摄像头的工作模式为人脸ID模式;若人眼安全检测结果为不安全(异常),则确定TOF摄像头的工作模式为Tx关闭模式。
[0206] 需要说明的是,传感器节点中可以存储有人脸ID模式和Tx关闭模式对应的配置参数。
[0207] 示例性的,人脸ID模式对应的配置参数可以为:电流值(第二电流值)为2800mA,IR灰度图曝光时间为500μs,depth为yes,图曝光时间为800μs。TxOFF模式对应的配置参数可以为:电流值(第三电流值)为0mA,IR灰度图曝光时间为10μs,depth为no,图曝光时间为10μs。
[0208] 需要说明的是,本申请实施例不限定S101‑S127的执行顺序。在一些实施例中,S101‑S107执行完毕后,可以直接执行S112‑S126,S126之后再执行S108‑S111,S111之后可以再执行S127。当然,S101‑S127还可以有其他的组合顺序,以保证相机HAL的传感器节点可以获取人眼安全检测结果,从而确定TOF摄像头的工作模式,本申请在此不做一一赘述。
[0209] 下面以传感器节点确定的TOF摄像头的工作模式为人脸ID模式为例进行说明,S127之后,还包括S128‑S144:
[0210] S128、传感器节点将人脸ID模式的配置参数发送到摄像头驱动模块。
[0211] S129、摄像头驱动模块将人脸ID模式的配置参数写入TOF摄像头的寄存器中,以驱动TOF摄像头基于人脸ID模式进行数据采集。
[0212] 也即,摄像头驱动模块可以向TOF摄像头发送人脸ID模式的配置参数。
[0213] 示例性的,摄像头驱动模块可以通过I2C将人脸ID模式的配置参数写入TOF摄像头寄存器中。也即,摄像头驱动模块可以通过I2C向TOF摄像头发送人脸ID模式的配置参数。
[0214] S130、TOF摄像头基于人脸ID模式采集RAW Data 2。
[0215] 其中,RAW Data 2可以是TOF摄像头的Tx工作在第二电流值(例如,2800mA)向人脸发射光信号时,TOF摄像头的Rx接收反射光并成像得到的图像数据(第二图像数据)。TOF摄像头的Tx工作在第二电流值时发射的光信号为第二光强度。第二光强度大于第一光强度。
[0216] 其中,RAW Data 2中包含Metadata。示例性的,Metadata保存有当前TOF摄像头的工作模式(例如,人脸ID模式),打光电流值大小(例如,2800mA),TOF摄像头器件工作状态(例如,正常)和图曝光时间(例如,800μs)等信息。
[0217] S131、TOF摄像头将RAW Data 2发送至IFE模块。
[0218] 示例性的,TOF摄像头可以通过MIPI将TOF摄像头基于人脸ID模式采集的RAW Data2传输到IFE模块。
[0219] S132、IFE模块将RAW Data 2发送至安全内存中存储。
[0220] TOF摄像头基于人脸ID模式采集的RAW Data 2在安全内存中的存储位置可以使用FD2表示。
[0221] 本步骤中的FD2与S117中的FD1可以相同或不同。本步骤中的FD2与S117中的FD1相同时,即TOF摄像头基于人脸ID模式采集的RAW Data 2与S117中TOF摄像头基于人眼安全模式采集的RAW Data 1被存入同一块安全内存。可以将S117中TOF摄像头基于人眼安全模式采集的RAW Data 1删除掉,从而TOF摄像头基于人脸ID模式采集的RAW Data 2可以被重新存入安全内存。在FD2与FD1不同的情况下,TOF摄像头基于人脸ID模式采集的RAW Data 2与S117中TOF摄像头基于人眼安全模式采集的RAW Data 1可以被存入不同的安全内存。
[0222] S133、IFE模块将FD2发送至摄像头驱动模块。
[0223] S134、摄像头驱动模块将FD2发送给IFE节点。
[0224] S135、IFE节点通过相机HAL的接口将FD2发送给相机服务。
[0225] S136、相机服务将FD2发送至人脸识别控制模块。
[0226] S137、人脸识别控制模块将FD2发送至人脸识别TA。
[0227] S138、人脸识别TA根据FD2从安全内存中读取RAW Data 2。
[0228] S139、人脸识别TA根据RAW Data 2得到人脸识别结果。
[0229] 具体的,人脸识别TA可以从RAW Data 2中的Metadata获取TOF摄像头的工作模式,例如可以是人脸ID模式。然后,人脸识别TA可以通过TOF算法对RAW Data 2中的第二图像数据进行处理得到第一灰度图和第一深度图,再通过人脸ID算法基于第一灰度图进行人脸识别,基于第一深度图和防伪检测,从而得到人脸识别结果。
[0230] 需要说明的是,人脸识别TA中还存储有用户之前录入的人脸信息,TOF算法可以将用户录入的人脸信息转化成灰度图和深度图。若当前采集的人脸信息(TOF摄像头基于人脸ID模式采集的RAW Data,即RAW Data 2)与之前录入的人脸信息(即用户进行人脸录入操作时电子设备采集到的RAW Data)对应的灰度图匹配,可以认为是同一个用户(即进行录入人脸的操作和进行解锁的操作的是同一个用户),并且,若当前采集的人脸信息包括深度信息,可以认为当前用户是真实可信的(非照片、视频等伪装),此时可以认为当前用户的人脸安全,即人脸识别结果为成功。若当前采集的人脸信息(TOF摄像头基于人脸ID模式采集的RAW Data,即RAW Data 2)与之前录入的人脸信息(即用户进行人脸录入操作时电子设备采集到的RAW Data)对应的灰度图不匹配,或者,若当前采集的人脸信息不包括深度信息,认为当前用户的人脸不安全,即人脸识别结果为失败。
[0231] S140、人脸识别TA将人脸识别结果发送至人脸识别控制模块。
[0232] S141、人脸识别控制模块将人脸识别结果发送至人脸识别服务。
[0233] 人脸识别控制模块可以基于之前(S103中)人脸识别服务注册的回调,将人脸识别结果(成功或失败)传递到人脸识别服务。
[0234] S142、人脸识别服务将人脸识别结果传递到人脸识别SDK。
[0235] 人脸识别服务基于之前(S102中)人脸识别SDK注册的回调,将人脸识别结果(成功或失败)传递到人脸识别SDK。
[0236] S143、人脸识别SDK将人脸识别结果传递到锁屏应用。
[0237] 人脸识别SDK基于之前(S101中)锁屏应用注册的回调,将人脸识别结果(成功或失败)传递到锁屏应用。
[0238] S144、锁屏应用根据人脸识别结果决定是否解锁。
[0239] 若人脸识别结果为成功,锁屏应用可以成功解锁,从而电子设备可以显示桌面或者应用(系统应用或第三方应用)的界面。若人脸识别结果为失败,锁屏应用不解锁,即人脸解锁失败。人脸解锁失败后,锁屏应用可以在人脸识别失败的一段时间内(例如,5分钟)禁用人脸识别功能。
[0240] 示例性的,若用户设置了人脸解锁,如图7中的(a)所示,当用户拿起手机进行人脸识别时,响应于用户拿起手机的操作,如图7中的(b)所示,手机可以显示锁屏界面701,手机在进行人脸识别过程中可以在锁屏界面701显示解锁图标702和提示文字“正在识别人脸”703。
[0241] 若人脸识别成功,如图8中的(a)所示,可以显示界面704,界面704中可以包括解锁图标705(呈打开状,可以形象地提示用户人脸解锁成功)以及提示文字“上滑进入”706,响应于用户的上滑操作,手机可以显示桌面或者应用(系统应用或第三方应用)的界面。或者,如图8中的(b)所示,若人脸识别成功,无需用户额外操作,手机可以直接解锁,即可以立即显示桌面707(或者直接显示应用的界面)。
[0242] 若人脸识别失败,如图9中的(a)所示,可以显示界面708,界面708中可以包括解锁图标709(呈关闭状,可以形象地提示用户人脸未解锁成功)以及提示文字“未识别成功,双击屏幕重试”710,响应于用户的双击操作,手机可以再次进行人脸识别(即再次采集用户的人脸信息进行比对和防伪判断)。或者,响应于用户在界面708中的上滑操作,如图9中的(b)所示,手机可以显示界面711,进入界面711后手机可以再次进行人脸识别,界面711中可以包括人脸识别图标712和提示文字“正在进行人脸识别”713,若仍未识别成功,如图9中的(c)所示,手机可以显示界面714,界面714中可以包括提示文字“未识别成功,点击此处重试”715,用户可以点击相应位置重新触发人脸识别,或者也可以通过软键盘716输入密码进行解锁,避免一直无法识别成功导致用户体验低的问题。
[0243] 需要说明的是,上述实施例是以锁屏应用进行人脸解锁的方法流程为例对TOF摄像头的工作模式选择进行说明的,TOF摄像头的工作模式选择也可以应用在支付或转账时(例如,用户在支付应用/理财应用/聊天应用/购物应用(例如, )中进行支付或转账操作)的人脸识别,用户在安全注册或登录应用程序的人脸安全验证(例如,用户在 中进行注册或登录操作)等场景中,本申请不做限定。即可以将锁屏应用替换为购物应用、聊天应用、支付应用、银行应用或理财应用等,本申请不做限定。
[0244] 下面以传感器节点确定的TOF摄像头的工作模式为Tx关闭模式为例进行说明,如图10所示,S126之后,还包括S150‑S167:
[0245] S150、相机HAL的传感器节点基于人眼安全检测结果确定TOF摄像头的工作模式为Tx关闭模式。
[0246] S151、传感器节点将Tx关闭模式的配置参数发送到摄像头驱动模块。
[0247] S152、摄像头驱动模块将Tx关闭模式的配置参数写入(更新)到TOF摄像头的寄存器中,以驱动TOF摄像头进行数据采集。
[0248] 也即,摄像头驱动模块可以向TOF摄像头发送Tx关闭模式的配置参数。
[0249] 示例性的,摄像头驱动模块可以通过I2C将Tx关闭模式的配置参数写入TOF摄像头寄存器中。即通过I2C向TOF摄像头发送Tx关闭模式的配置参数。
[0250] S153、TOF摄像头基于Tx关闭模式采集RAW Data 3。
[0251] 其中,RAW Data 3可以是TOF摄像头的Tx不通电不发光时,TOF摄像头的Rx接收反射光(无发射光或环境发射光)并成像得到的图像数据(第三图像数据),通常是无清晰人脸图像的“黑图”。
[0252] 其中,RAW Data 3中包含Metadata。示例性的,Metadata保存有当前TOF摄像头的工作模式(例如,Tx关闭模式),打光电流值(第三电流值)大小(例如,0mA),TOF摄像头器件工作状态(例如,异常)和图曝光时间(例如,10μs)等信息。
[0253] S154、TOF摄像头将RAW Data 3传输到IFE模块。
[0254] 示例性的,TOF摄像头可以通过MIPI将TOF摄像头采集的RAW Data 3传输到IFE模块。
[0255] S155、IFE模块将RAW Data 3发送至安全内存中存储。
[0256] TOF摄像头基于Tx关闭模式采集的RAW Data 3在安全内存中的存储位置可以使用FD3表示。
[0257] 本步骤中的FD3与S117中的FD1可以相同或不同。本步骤中的FD3与S117中的FD1相同时,即TOF摄像头基于Tx关闭模式采集的RAW Data 3与S117中TOF摄像头基于人眼安全模式采集的RAW Data 1被存入同一块安全内存。可以将S117中TOF摄像头基于人眼安全模式采集的RAW Data 1删除掉,从而TOF摄像头基于Tx关闭模式采集的RAW Data 3可以被重新存入安全内存。在FD3与FD1不同的情况下,TOF摄像头基于Tx关闭模式采集的RAW Data 3与S117中TOF摄像头基于人眼安全模式采集的RAW Data 1可以被存入不同的安全内存。
[0258] S156、IFE模块将FD3发送至摄像头驱动模块。
[0259] S157、摄像头驱动模块将FD3发送给IFE节点。
[0260] S158、IFE节点通过相机HAL的接口将FD3发送给相机服务。
[0261] S159、相机服务将FD3发送至人脸识别控制模块。
[0262] S160、人脸识别控制模块将FD3发送至人脸识别TA。
[0263] S161、人脸识别TA根据FD3从安全内存中读取RAW Data 3。
[0264] S162、人脸识别TA根据RAW Data 3得到人脸识别结果。
[0265] 具体的,人脸识别TA可以从TOF摄像头基于Tx关闭模式采集的RAW Data 3中的Metadata数据获取当前是Tx关闭模式,然后通过TOF算法基于第三图像数据得到第二灰度图和第二深度图,通过人脸ID算法基于第二灰度图进行人脸识别,基于第二深度图进行防伪检测,得到人脸识别结果。
[0266] 需要说明的是,TOF摄像头工作在Tx关闭模式下时,人脸识别结果为失败。这是由于TOF摄像头在Tx关闭模式下无法发射光线,因此TOF摄像头无法采集到清晰的人脸图像,即使当前解锁的用户是认证过的用户(即机主),人脸识别结果仍为失败。
[0267] S163、人脸识别TA将人脸识别结果(为失败)传递到人脸识别控制模块。
[0268] 即人脸识别TA可以通知人脸识别控制模块人脸识别结果为失败。
[0269] S164、人脸识别控制模块将人脸识别结果(为失败)传递到人脸识别服务。
[0270] 人脸识别控制模块基于之前人脸识别服务注册的回调,将人脸识别结果(为失败)传递到人脸识别服务。即人脸识别控制模块通知人脸识别服务人脸识别结果为失败。
[0271] S165、人脸识别服务将人脸识别结果(为失败)传递到人脸识别SDK。
[0272] 人脸识别服务基于之前人脸识别SDK注册的回调,将人脸识别结果(为失败)传递到人脸识别SDK。即人脸识别服务可以通知人脸识别SDK人脸识别结果为失败。
[0273] S166、人脸识别SDK将人脸识别结果(为失败)传递到锁屏应用。
[0274] 人脸识别SDK基于之前锁屏应用注册的回调,将人脸识别结果(为失败)传递到锁屏应用。即人脸识别SDK可以通知锁屏应用人脸识别结果为失败。
[0275] S167、锁屏应用根据人脸识别结果(为失败)决定不解锁。
[0276] 由于人脸识别结果为失败,因此锁屏应用不解锁。
[0277] 示例性的,若人脸识别失败,如图9中的(a)所示,可以显示界面708,界面708中可以包括解锁图标709(呈关闭状,可以形象地提示用户人脸未解锁成功)以及提示文字“未识别成功,双击屏幕重试”710,响应于用户的双击操作,手机可以再次进行人脸识别(即再次采集用户的人脸信息进行比对和防伪判断)。或者,响应于用户在界面708中的上滑操作,手机可以显示界面711,进入界面711后手机可以再次进行人脸识别,界面711中可以包括人脸识别图标712和提示文字“正在进行人脸识别”713,若仍未识别成功,手机可以显示界面714,界面714中可以包括提示文字“未识别成功,点击此处重试”715,用户可以点击相应位置重新触发人脸识别,或者也可以通过软键盘716输入密码进行解锁,避免一直无法识别成功导致用户体验低的问题。
[0278] 本申请一些实施例提供了一种电子设备,该电子设备可以包括:触摸屏、存储器和一个或多个处理器。该触摸屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中电子设备执行的各个功能或者步骤。该电子设备的结构可以参考图1所示的电子设备100的结构。
[0279] 本申请实施例还提供一种芯片系统(例如,片上系统(system on a chip,SoC)),如图11所示,该芯片系统包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1102可用于向其它装置(例如处理器1101或者电子设备的触摸屏)发送信号。示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当所述指令被处理器1101执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
[0280] 本申请实施例还提供一种TOF摄像头,该TOF摄像头可以用于实现上述实施例中人眼安全模式、人脸ID模式和TX关闭模式等,安装有该TOF摄像头的电子设备可以执行上述方法实施例中电子设备执行的各个功能或者步骤。
[0281] 本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
[0282] 本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
[0283] 通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0284] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0285] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0286] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0287] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0288] 以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。