数据处理方法、装置、计算机可读存储介质和电子设备与流程

文档序号:16250496发布日期:2018-12-11 23:59阅读:116来源:国知局
数据处理方法、装置、计算机可读存储介质和电子设备与流程

本申请涉及计算机技术领域,特别是涉及一种数据处理方法、装置、计算机可读存储介质和电子设备。

背景技术

人脸识别技术的应用逐渐被应用到人们的工作和生活中,比如可以采集人脸图像进行支付认证、解锁认证,还可以对拍摄的人脸图像进行美颜处理。通过人脸识别技术中可以对图像中的人脸进行检测,还可以识别图像中的人脸是属于哪一个人的人脸,从而识别用户的身份。由于人脸识别的算法本身比较复杂,所以用于人脸识别处理的算法模型占用的存储空间也比较大。



技术实现要素:

本申请实施例提供一种数据处理方法、装置、计算机可读存储介质和电子设备,可以提高数据处理的效率。

一种数据处理方法,所述方法包括:

获取第一运行环境中存储的人脸识别模型;

在所述第一运行环境中将所述人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包;

依次将所述模型数据包从所述第一运行环境传入到第二运行环境,并在所述第二运行环境中根据所述模型数据包生成目标人脸识别模型;

其中,所述第一运行环境的存储空间大于所述第二运行环境的存储空间,所述目标人脸识别模型用于对图像进行人脸识别处理。

一种数据处理装置,所述装置包括:

模型获取模块,用于获取第一运行环境中存储的人脸识别模型;

模型分割模块,用于在所述第一运行环境中将所述人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包;

模型传输模块,用于依次将所述模型数据包从所述第一运行环境传入到第二运行环境,并在所述第二运行环境中根据所述模型数据包生成目标人脸识别模型;其中,所述第一运行环境的存储空间大于所述第二运行环境的存储空间,所述目标人脸识别模型用于对图像进行人脸识别处理。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:

获取第一运行环境中存储的人脸识别模型;

在所述第一运行环境中将所述人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包;

依次将所述模型数据包从所述第一运行环境传入到第二运行环境,并在所述第二运行环境中根据所述模型数据包生成目标人脸识别模型;

其中,所述第一运行环境的存储空间大于所述第二运行环境的存储空间,所述目标人脸识别模型用于对图像进行人脸识别处理。

一种电子设备,包括存储器及处理器,所述存储器中储存有计算机可读指令,所述指令被所述处理器执行时,使得所述处理器执行如下步骤:

获取第一运行环境中存储的人脸识别模型;

在所述第一运行环境中将所述人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包;

依次将所述模型数据包从所述第一运行环境传入到第二运行环境,并在所述第二运行环境中根据所述模型数据包生成目标人脸识别模型;

其中,所述第一运行环境的存储空间大于所述第二运行环境的存储空间,所述目标人脸识别模型用于对图像进行人脸识别处理。

上述数据处理方法、装置、计算机可读存储介质和电子设备,可以将人脸识别模型存储在第一运行环境中,然后在第一运行环境中将人脸识别模型初始化之后,再将初始化后的人脸识别模型分成至少两个模型数据包,然后再将数据包传到第二运行环境中。由于第二运行环境中的存储空间小于第一运行环境中的存储空间,所以在第一运行环境中将人脸识别模型进行初始化,可以提高人脸识别模型的初始化效率,降低第二运行环境中的资源占用率,提高数据处理速度。同时将人脸识别模型分成多个数据包进行传输,提高了数据的传输的效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一个实施例中电子设备的内部结构示意图;

图2为一个实施例中数据处理方法的流程图;

图3为另一个实施例中数据处理方法的流程图;

图4为一个实施例中实现数据处理方法的系统示意图;

图5为一个实施例中分割人脸识别模型的示意图;

图6为又一个实施例中数据处理方法的流程图;

图7为一个实施例中计算深度信息的原理图;

图8为又一个实施例中数据处理方法的流程图;

图9为一个实施例中实现数据处理方法的硬件结构图;

图10为一个实施例中数据处理装置的结构示意图;

图11为另一个实施例中数据处理装置的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。

图1为一个实施例中电子设备的内部结构示意图。如图1所示,该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器用于存储数据、程序等,存储器上存储至少一个计算机程序,该计算机程序可被处理器执行,以实现本申请实施例中提供的适用于电子设备的数据处理方法。存储器可包括磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(random-access-memory,ram)等。例如,在一个实施例中,存储器包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种数据处理方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。网络接口可以是以太网卡或无线网卡等,用于与外部的电子设备进行通信。该电子设备可以是手机、平板电脑或者个人数字助理或穿戴式设备等。

图2为一个实施例中数据处理方法的流程图。如图2所示,该数据处理方法包括步骤202至步骤206。其中:

步骤202,获取第一运行环境中存储的人脸识别模型。

具体的,电子设备可包括处理器,处理器可以对数据进行存储、计算、传输等处理。电子设备中的处理器可以在不同的环境中运行,例如处理器可以在tee(trustedexecutionenvironment,可信执行环境)中运行,也可以在ree(richexecutionenvironment,自然运行环境)中运行,在tee中运行时,数据的安全性更高;在ree中运行时,数据的安全性更低。

电子设备可以对处理器的资源进行分配,对不同的运行环境划分不同的资源。例如,一般情况下电子设备中的安全性要求较高的进程会比较少,普通进程会比较多,那么电子设备就可以将处理器的小部分资源划分到安全性较高的运行环境中,将大部分资源划分到安全性没那么高的运行环境中。

人脸识别模型是用于对图像中的人脸进行识别处理的算法模型,一般通过文件的形式进行存储。可以理解的是,由于对图像中的人脸进行识别的算法比较复杂,所以存储人脸识别模型时所占用的存储空间也比较大。电子设备对处理器划分不同的运行环境后,划分到第一运行环境中的存储空间要多余划分到第二运行环境中的存储空间,因此电子设备会将人脸识别模型存储在第一运行环境中,以保证第二运行环境中有足够的空间来对数据进行处理。

步骤204,在第一运行环境中将人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包。

需要说明的是,在对图像进行人脸识别处理之前,需要将人脸识别模型进行初始化。如果将人脸识别模型存储在第二运行环境中,那么存储人脸识别模型需要占用第二运行环境中的存储空间,对人脸识别模型进行初始化也需要占占用第二运行环境中的存储空间,这样就会造成第二运行环境的资源消耗过大,影响数据处理的效率。

例如,人脸识别模型占用20m内存,对人脸识别模型进行初始化时需要另外的10m内存,如果存储和初始化都在第二运行环境中进行,那么就需要占用第二运行环境的总共30m内存。而如果将人脸识别模型存储在第一运行环境中,并在第一运行环境中初始化,再将初始化后的人脸识别模型发送到第二运行环境中,那么就只需要占用第二运行环境中的10m内存,大大减少了第二运行环境中的资源占用率。

电子设备将人脸识别模型存储在第一运行环境中,然后在第一运行环境中将人脸识别模型进行初始化,再将初始化之后的人脸识别模型传到第二运行环境中,可以减少对第二运行环境中的存储空间的占用。进一步的,在将人脸识别模型初始化之后,可以将初始化后的人脸识别模型分割成至少两个模型数据包,从而将初始化后的人脸识别模型进行分段传输。

步骤206,依次将模型数据包从第一运行环境传入到第二运行环境,并在第二运行环境中根据模型数据包生成目标人脸识别模型;其中,第一运行环境的存储空间大于第二运行环境的存储空间,目标人脸识别模型用于对图像进行人脸识别处理。

具体的,人脸识别模型是以文件的形式存储的,第一运行环境将初始化后的人脸识别模型分割成模型数据包之后,会将得到的模型数据包依次发送给第二运行环境。模型数据包传到第二运行环境后,会将模型数据包拼接到一起,生成目标人脸识别模型。例如,可以将人脸识别模型按照不同功能模块进行分割,传到第二运行环境后,再将各个功能模块对应的模型数据包进行拼接,生成最后的目标人脸识别模型。

在一个实施例中,可以在检测到满足初始化条件时,开始执行步骤202。例如,把人脸识别模型存储在第一运行环境中,电子设备可以在开机的时候将人脸识别模型进行初始化,也可以在检测到需要进行人脸识别处理的应用程序被打开时就将人脸识别模型初始化,还可以在检测到人脸识别指令的时候将人脸识别模型进行初始化,然后将初始化好的人脸识别模型压缩之后再传入第二运行环境中。

在本申请提供的其他实施例中,在第一运行环境将人脸识别模型进行初始化之前,可以获取第二运行环境中的剩余存储空间;若剩余存储空间小于空间阈值,则在第一运行环境中将人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包。空间阈值可以根据需要进行设置,一般为人脸识别模型所占用的存储空间与对人脸识别模型进行初始化时所占用的存储空间的总和。

若第二运行环境中的剩余存储空间比较大,可以将人脸识别模型直接发送到第二运行环境中,并在第二运行环境中进行初始化处理,初始化完成后再将原始的人脸识别模型删除,这样可以保证数据的安全性。则上述数据处理方法具体还可以包括:若剩余存储空间大于或等于空间阈值,则在第一运行环境中将人脸识别模型分割成至少两个模型数据包,并上述模型数据包传入到第二运行环境中;在第二运行环境中将所述模型数据包生成目标人脸识别模型,并将上述目标人脸识别模型进行初始化;将初始化之前的目标人脸识别模型删除,保留初始化之后的目标人脸识别模型。第二运行环境中生成目标人脸识别模型之后,就可以直接根据目标人脸识别模型进行人脸识别处理。

可以理解的是,人脸识别模型中一般可以包括多个处理模块,每个处理模块完成的处理不同,这多个处理模块可以是相互独立的。例如,可包括人脸检测模块、人脸匹配模块和活体检测模块。其中,一部分模块可能对安全性要求比较低,一部分模块可能对安全性要求比较高。因此,可以将安全性要求比较低的处理模块放在第一运行环境中进行初始化,安全性要求比较高的处理模块放在第二运行环境中进行初始化。

具体的,步骤204可以包括:在第一运行环境中将人脸识别模型进行第一初始化,并将第一初始化后的人脸识别模型分割成至少两个模型数据包。步骤206之后还可以包括:将目标人脸识别模型中的第二模块进行第二初始化,其中第二模块为人脸识别模型中除第一模块之外的模块,第一模块的安全性低于第二模块的安全性。例如,第一模块可以是人脸检测模块,第二模块可以是人脸匹配模块和活体检测模块,第一模块对安全的要求比较低,所以放在第一运行环境中初始化。第二模块对安全的要求比较高,所以放在第二运行环境中初始化。

上述实施例提供的数据处理方法,可以将人脸识别模型存储在第一运行环境中,然后在第一运行环境中将人脸识别模型初始化之后,再将初始化后的人脸识别模型分成至少两个模型数据包,然后再将数据包传到第二运行环境中。由于第二运行环境中的存储空间小于第一运行环境中的存储空间,所以在第一运行环境中将人脸识别模型进行初始化,可以提高人脸识别模型的初始化效率,降低第二运行环境中的资源占用率,提高数据处理速度。同时将人脸识别模型分成多个数据包进行传输,提高了数据的传输的效率。

图3为另一个实施例中数据处理方法的流程图。如图3所示,该数据处理方法包括步骤302至步骤314。其中:

步骤302,获取第一运行环境中存储的人脸识别模型。

一般情况下,在进行人脸识别处理之前,会将人脸识别模型进行训练,使人脸识别模型的识别精度更高。在对模型进行训练的过程中,会获取一个训练图像集合,将训练图像集合中的图像作为模型的输入,并根据训练过程中得到的训练结果不断调整模型的训练参数,以此得到模型的最佳参数。训练图像集合中包含的图像越多,训练得到的模型越精确,但耗时也会相应地增加。

在一个实施例中,电子设备可以是与用户交互的终端,而由于终端资源有限,所以可在服务器上将人脸识别模型进行训练。服务器将人脸识别模型训练好之后,再将训练好的人脸识别模型发送给终端。终端接收到训练好后的人脸识别模型之后,再将训练好的人脸识别模型存储到第一运行环境中。则步骤302之前还可以包括:终端接收服务器发送的人脸识别模型,并将人脸识别模型存储到终端的第一运行环境中。

终端中可以包括第一运行环境和第二运行环境,终端可在第二运行环境中对图像进行人脸识别处理,但由于终端划分到第一运行环境下的存储空间比划分到第二运行环境中的存储空间大,所以终端可以将接收到的人脸识别模型存放在第一运行环境的存储空间中。在一个实施例中,可以在每次检测到终端重启的时候,再将第一运行环境中存储的人脸识别模型加载到第二运行环境中,这样需要对图像进行人脸识别处理时,就可以直接调用第二运行环境中加载好的人脸识别模型进行处理。则步骤302具体可以包括:当检测到终端重启时,获取第一运行环境中存储的人脸识别模型。

可以理解的是,人脸识别模型是可以更新的,当人脸识别模型更新时,服务器会将更新后的人脸识别模型发送给终端,终端接收到更新之后的人脸识别模型后,将更新之后的人脸识别模型存储在第一运行环境中,覆盖原来的人脸识别模型。然后控制终端进行重启,终端重启后,再获取更新后的人脸识别模型,并将更新后的人脸识别模型进行初始化。

步骤304,在第一运行环境中将人脸识别模型进行初始化,并获取共享缓冲区的空间容量,并根据空间容量将人脸识别模型分割成至少两个模型数据包。

在通过人脸识别模型进行人脸识别处理之前,需要将人脸识别模型进行初始化。初始化过程中,可将人脸识别模型中的参数、模块等设置为默认状态。由于对模型进行初始化的过程也需要占用内存,因此终端可在第一运行环境中将人脸识别模型进行初始化,然后将初始化后的人脸识别模型发送到第二运行环境中,这样就可以直接在第二运行环境中进行人脸识别处理,而不需要占用额外的内存去对模型进行初始化。

人脸识别模型是以文件形式存储的,也可以是以其他形式存储的,在此不做限定。人脸识别模型一般可以包括多个功能模型,例如可以包括人脸检测模块、人脸匹配模块、活体检测模块等。那么在对人脸识别模型进行切割的时候,可以按照各个功能模块分割成至少两个模型数据包,这样方便后续重组生成目标人脸识别模型。在其他实施例中,还可以按照其他方式进行分割,不做限定。

步骤306,对每个模型数据包赋予对应的数据编号,按照数据编号依次将模型数据包从第一运行环境传入到第二运行环境。

可以理解的是,在存储数据的时候,一般会将数据按照存储的时间先后,将数据按照顺序写入到连续的存储地址中。对人脸识别模型进行分割之后,可以对分割得到的模型数据包进行编号,然后可按照数据编号依次将模型数据包传入到第二运行环境中进行存储。在模型数据包传输完成之后,再将依次将模型数据包进行拼接,生成目标人脸识别模型。

在一个实施例中,第一运行环境和第二运行环境之间的数据传输可以通过共享缓冲区(sharebuffer)来实现,那么第一运行环境切割人脸识别模型的时候,就可以根据共享缓冲区的容量来进行切割。具体的,获取共享缓冲区的空间容量,并根据空间容量将人脸识别模型分割成至少两个模型数据包;其中,模型数据包的数据量小于或等于空间容量。

需要说明的是,共享缓冲区是第一运行环境和第二运行环境传输数据的通道,第一运行环境和第二运行环境都可以对共享缓冲区进行访问。电子设备可以对共享缓冲区进行配置,可根据需求设置共享缓冲区的空间大小。例如,电子设备可以将共享缓冲区的存储空间可以设置为5m,也可以设置为10m。在数据传输的时候,将人脸识别模型根据共享缓冲区的容量进行切割之后再传输,就不需要额外地对共享缓冲区配置更大的容量来传输数据,减少了电子设备的资源占用。

通过共享缓冲区传输人脸识别模型的时候,具体包括:依次将模型数据包从第一运行环境传入到共享缓冲区,并将模型数据包从共享缓冲区传入到第二运行环境。步骤306具体可以包括:对每个模型数据包赋予对应的数据编号,按照数据编号依次将模型数据包从第一运行环境传入到共享缓冲区,然后将模型数据包从共享缓冲区传入到第二运行环境。

图4为一个实施例中实现数据处理方法的系统示意图。如图4所示,该系统中包括第一运行环境402、共享缓冲区404和第二运行环境406。第一运行环境402和第二运行环境406可以通过共享缓冲区404进行数据传输。人脸识别模型存储在第一运行环境402中,系统可以获取第一运行环境402中存储的人脸识别模型,并对获取的人脸识别模型进行初始化处理,然后将初始化后的人脸识别模型进行分割,并将分割后形成的模型数据包传入到共享缓冲区404中,通过共享缓冲区404将模型数据包传入到第二运行环境406中。最后在第二运行环境406中将模型数据包拼接成目标人脸识别模型。

步骤308,在第二运行环境中根据数据编号将模型数据包进行拼接,生成目标人脸识别模型。

具体的,数据编号可以用于表示模型数据包的排列顺序,模型数据包传入到第二运行环境中之后,按照数据编号将模型数据包进行顺序排列,然后按照排列顺序进行拼接,生成目标人脸识别模型。

图5为一个实施例中分割人脸识别模型的示意图。如图5所示,人脸识别模型502以文件形式存储,将人脸识别模型502分割成3个模型数据包504,该模型数据包504也可以是文件形式。分割后的模型数据包504的数据量小于人脸识别模型502的数据量,各个模型数据包504的数据量可以相同,也可以不同。例如,人脸识别模型502总共30m,则可以按照数据量大小平均分割,每个模型数据包就为10m。

步骤310,当检测到人脸识别指令时,判断人脸识别指令的安全等级。

第一运行环境和第二运行环境中都存储了人脸识别模型,终端可在第一运行环境中进行人脸识别处理,也可以在第二运行环境中进行人脸识别处理。具体的,终端可根据触发人脸识别处理的人脸识别指令,判断是在第一运行环境中进行人脸识别处理,还是在第二运行环境中进行人脸识别处理。

人脸识别指令是由终端的上层应用发起的,上层应用发起人脸识别指令时,可以将发起人脸识别指令的时间、应用标识、操作标识等信息写入到人脸识别中。应用标识可用于标示发起人脸识别指令的应用程序,操作标识可用于标示需要人脸识别结果进行的应用操作。例如,可以通过人脸识别结果进行支付、解锁、美颜等应用操作,则人脸识别指令中的操作标识就用于标示支付、解锁、美颜等应用操作。

安全等级用于表示应用操作的安全性高低,安全等级越高,则应用操作对安全性的要求越高。例如,支付操作对安全性的要求比较高,美颜操作对安全性的要求就比较低,那么支付操作的安全等级就高于美颜操作的安全等级。安全等级可以直接写入到人脸识别指令中,终端检测到人脸识别指令后,直接读取人脸识别指令中的安全等级。也可以预先建立操作标识的对应关系,在检测到人脸识别指令后,通过人脸识别指令中的操作标识获取对应的安全等级。

步骤312,若安全等级低于等级阈值,则在第一运行环境中根据人脸识别模型进行人脸识别处理。

当检测到安全等级低于等级阈值时,认为发起人脸识别处理的应用操作的安全性要求较低,则可以直接在第一运行环境中根据人脸识别模型进行人脸识别处理。具体的,人脸识别处理可以但不限于包含人脸检测、人脸匹配、活体检测中的一种或多种,人脸检测是指检测图像中是否存在人脸的过程,人脸匹配是指将检测到的人脸与预设的人脸进行匹配的过程,活体检测是指检测图像中的人脸是否为活体的过程。

步骤314,若安全等级高于等级阈值,则在第二运行环境中根据人脸识别模型进行人脸识别处理;其中,第二运行环境的安全性高于第一运行环境的安全性。

当检测到安全等级高于等级阈值时,认为发起人脸识别处理的应用操作的安全性要求较高,则可以在第二运行环境中根据人脸识别模型进行人脸识别处理。具体的,终端可将人脸识别指令发送给第二运行环境,通过第二运行环境来控制摄像头模组采集图像。采集的图像会首先发送到第二运行环境中,在第二运行环境中判断应用操作的安全等级,若安全等级低于等级阈值,则将采集的图像发送到第一运行环境中进行人脸识别处理;若安全等级高于等级阈值,则在第二运行环境中对采集的图像进行人脸识别处理。

具体的,如图6所示,在第一运行环境中进行人脸识别处理时,包括:

步骤602,控制摄像头模组采集第一目标图像和散斑图像,并将第一目标图像发送到第一运行环境中,将散斑图像发送到第二运行环境中。

终端中安装的应用程序可发起人脸识别指令,并将人脸识别指令发送到第二运行环境中。在第二运行环境中检测到人脸识别指令的安全等级低于等级阈值时,就可以控制摄像头模组采集第一目标图像和散斑图像。摄像头模组采集到的第一目标图像可以直接发给第一运行环境,并将采集的散斑图像发送到第二运行环境中。

在一个实施例中,第一目标图像可以是可见光图像,也可以是其他类型的图像,在此不做限定。当第一目标图像为可见光图像时,摄像头模组中可包括rgb(redgreenblue,红绿蓝)摄像头,通过rgb摄像头采集第一目标图像。摄像头模组中还可包括镭射灯和激光摄像头,终端可控制镭射灯开启,然后通过激光摄像头采集镭射灯发射的激光散斑照射到物体上所形成的散斑图像。

具体的,当激光照射在平均起伏大于波长数量级的光学粗糙表面上时,这些表面上无规分布的面元散射的子波相互叠加使反射光场具有随机的空间光强分布,呈现出颗粒状的结构,这就是激光散斑。形成的激光散斑具有高度随机性,因此不同的激光发射器发射出来的激光所生成的激光散斑不同。当形成的激光散斑照射到不同深度和形状的物体上时,生成的散斑图像是不一样的。通过不同的镭射灯形成的激光散斑具有唯一性,从而得到的散斑图像也具有唯一性。

步骤604,在第二运行环境中根据散斑图像计算得到深度图像,并将深度图像发送到第一运行环境中。

终端为了保护数据的安全,会保证散斑图像一直在安全的环境中进行处理,所以终端会将散斑图像传到第二运行环境下进行处理。深度图像是用于表示被拍摄物体深度信息的图像,根据散斑图像计算可以得到深度图像。终端可以控制摄像头模组同时采集第一目标图像和散斑图像,根据散斑图像计算得到的深度图像就可以表示第一目标图像中的物体的深度信息。

可在第二运行环境中根据散斑图像和参考图像计算得到深度图像。深度图像是激光散斑照射到参考平面时所采集的图像,所以参考图像是带有参考深度信息的图像。首先可根据散斑图像中的散斑点相对于参考图像中的散斑点的位置偏移量计算相对深度,相对深度可以表示实际拍摄物体到参考平面的深度信息。然后再根据获取的相对深度和参考深度计算物体的实际深度信息。具体的,将参考图像与散斑图像进行比较得到偏移信息,偏移信息用于表示散斑图像中散斑点相对于参考图像中对应散斑点的水平偏移量;根据偏移信息和参考深度信息计算得到深度图像。

图7为一个实施例中计算深度信息的原理图。如图7所示,镭射灯702可以生成激光散斑,激光散斑经过物体进行反射后,通过激光摄像头704获取形成的图像。在摄像头的标定过程中,镭射灯702发射的激光散斑会经过参考平面708进行反射,然后通过激光摄像头704采集反射光线,通过成像平面710成像得到参考图像。参考平面708到镭射灯702的参考深度为l,该参考深度为已知的。在实际计算深度信息的过程中,镭射灯702发射的激光散斑会经过物体706进行反射,再由激光摄像头704采集反射光线,通过成像平面710成像得到实际的散斑图像。则可以得到实际的深度信息的计算公式为:

其中,l是镭射灯702到与参考平面708之间的距离,f为激光摄像头704中透镜的焦距,cd为镭射灯702到激光摄像头704之间的距离,ab为物体706的成像与参考平面708的成像之间的偏移距离。ab可为像素偏移量n与像素点的实际距离p的乘积。当物体704到镭射灯702之间的距离dis大于参考平面706到镭射灯702之间的距离l时,ab为负值;当物体704到镭射灯702之间的距离dis小于参考平面706到镭射灯702之间的距离l时,ab为正值。

步骤606,通过第一运行环境中的人脸识别模型,对第一目标图像和深度图像进行人脸识别处理。

在第二运行环境中计算得到深度图像之后,可以将计算得到的深度图像发送到第一运行环境中,然后在第一运行环境中根据第一目标图像和深度图像进行人脸识别处理,第一运行环境再将人脸识别结果发送给上层应用,上层应用可以根据人脸识别结果进行相应的应用操作。

例如,在对图像进行美颜处理的时候,通过第一目标图像可以检测到人脸所在的位置和区域。由于第一目标图像和深度图像是对应的,那么就可以通过深度图像的对应区域获取人脸的深度信息,通过人脸的深度信息可以构建人脸三维特征,从而根据人脸三维特征对人脸进行美颜处理。

在本申请提供的其他实施例中,如图8所示,在第二运行环境中进行人脸识别处理时,具体包括:

步骤802,控制摄像头模组采集第二目标图像和散斑图像,并将第二目标图像和散斑图像发送到第二运行环境中。

在一个实施例中,第二目标图像可以为红外图像,摄像头模组中可包括泛光灯、镭射灯和激光摄像头,终端可控制泛光灯开启,然后通过激光摄像头采集泛光灯照射物体所形成的红外图像作为第二目标图像。终端还可以控制镭射灯开启,然后通过激光摄像头采集镭射灯照射物体所形成的散斑图像。

采集第二目标图像和散斑图像之间的时间间隔要比较短,才能保证采集到的第二目标图像和散斑图像的一致性,避免第二目标图像和散斑图像之间存在较大的误差,提高了对图像处理的准确性。具体地,控制摄像头模组采集第二目标图像,并控制摄像头模组采集散斑图像;其中,采集第二目标图像的第一时刻与采集散斑图像的第二时刻之间的时间间隔小于第一阈值。

可分别设置泛光灯控制器和镭射灯控制器,通过两路pwm(pulsewidthmodulation,脉冲宽度调制)分别连接泛光灯控制器和镭射灯控制器,当需要控制泛光灯开启或镭射灯开启时,可通过pwm向泛光灯控制器发射脉冲波控制泛光灯开启或向镭射灯控制器发射脉冲波控制镭射灯开启,通过pwm分别向两个控制器发射脉冲波来控制采集第二目标图像和散斑图像之间的时间间隔。可以理解的是,第二目标图像可以为红外图像,也可以是其他类型的图像,在此不做限定。例如,第二目标图像也可以为可见光图像。

步骤804,在第二运行环境中根据散斑图像计算得到深度图像。

需要说明的是,当人脸识别指令的安全等级高于等级阈值时,认为发起人脸识别指令的应用操作的安全性要求较高,则需要在安全性较高的环境中进行人脸识别处理,才能保证数据处理的安全性。摄像头模组采集的第二目标图像和散斑图像直接发送到第二运行环境,然后在第二运行环境中根据散斑图像计算深度图像。

步骤806,通过第二运行环境中的人脸识别模型,对第二目标图像和深度图像进行人脸识别处理。

在一个实施例中,在第二运行环境中进行人脸识别处理时,可根据第二目标图像进行人脸检测,检测第二目标图像中是否包含目标人脸。若第二目标图像中包含目标人脸,则将检测到的目标人脸与预设人脸进行匹配。若检测到的目标人脸与预设人脸匹配,再根据深度图像获取目标人脸的目标深度信息,根据目标深度信息检测目标人脸是否为活体。

在对目标人脸进行匹配的时候,可以提取目标人脸的人脸属性特征,再将提取的人脸属性特征与预设人脸的人脸属性特征进行匹配,若匹配值超过匹配阈值,则认为人脸匹配成功。例如,可以提取人脸的偏转角度、亮度信息、五官特征等特征作为人脸属性特征,若目标人脸的人脸属性特征与预设人脸的人脸属性特征匹配度超过90%,则认为人脸匹配成功。

一般地,在人脸认证的过程中,假设拍摄的为照片或雕塑中的人脸时,提取的人脸属性特征也可能认证成功。那么为了提高准确率,可以根据采集的深度图像进行活体检测处理,这样必须保证采集的是人脸是活体人脸才能认证成功。可以理解的是,采集的第二目标图像可以表示人脸的细节信息,采集深度图像则可以表示对应的深度信息,根据深度图像就可以进行活体检测。例如,被拍摄的人脸为照片中的人脸的话,根据深度图像就可以判断采集的人脸不是立体的,则可以认为采集的人脸为非活体的人脸。

具体地,根据上述校正深度图像进行活体检测包括:深度图像中查找与上述目标人脸对应的人脸深度信息,若上述深度图像中存在与上述目标人脸对应的人脸深度信息,且上述人脸深度信息符合人脸立体规则,则上述目标人脸为活体人脸。上述人脸立体规则是带有人脸三维深度信息的规则。

在一个实施例中,还可以采用人工智能模型对上述第二目标图像和深度图像进行人工智能识别,获取目标人脸对应的活体属性特征,并根据获取的活体属性特征判断上述目标人脸是否为活体人脸图像。活体属性特征可以包括目标人脸对应的肤质特征、纹理的方向、纹理的密度、纹理的宽度等,若上述活体属性特征符合人脸活体规则,则认为上述目标人脸具有生物活性,即为活体人脸。

可以理解的是,在进行人脸检测、人脸匹配、活体检测等处理时,处理顺序可以根据需要进行调换。例如,可以先对人脸进行认证,再检测人脸是否为活体。也可以先检测人脸是否为活体,再对人脸进行认证。

在本申请提供的实施例中,为保证数据的安全,在传输人脸识别模型的时候,可以将压缩后的人脸识别模型进行加密处理,并将加密处理后的人脸识别模型从第一运行环境传入到第二运行环境;在第二运行环境中对加密处理后的人脸识别模型进行解密处理,并将解密处理后的人脸识别模型进行存储。

第一运行环境可以是普通运行环境,第二运行环境为安全运行环境,第二运行环境的安全性要高于第一运行环境。第一运行环境一般用于对安全性较低的应用操作进行处理,第二运行环境一般用于对安全性较高的应用操作进行处理。例如,拍摄、游戏等安全性要求不高的操作可以在第一运行环境中进行,支付、解锁等安全性要求较高操作可以在第二运行环境中进行。

第二运行环境一般用于进行安全性要求较高的应用操作,因此在向第二运行环境中发送人脸识别模型的时候,也需要保证人脸识别模型的安全性。在第一运行环境将人脸识别模型压缩处理之后,可将压缩后的人脸识别模型进行加密处理,然后将加密后处理后的人脸识别模型通过共享缓冲区发送到第二运行环境中。

加密处理后的人脸识别模型从第一运行环境传入到共享缓冲区之后,再从共享缓冲区传入到第二运行环境中。第二运行环境再将接收到的加密处理后的人脸识别模型进行解密处理。对人脸识别模型进行加密处理的算法在本实施例中不做限定。例如,可以是根据des(dataencryptionstandard,数据加密标准)、md5(message-digestalgorithm5,信息-摘要算法5)、haval(diffie-hellman,密钥交换算法)等加密算法进行加密处理的。

在一个实施例中,在第二运行环境中生成目标人脸识别模型之后,还可以包括:当检测到目标人脸识别模型未被调用的时长超过时长阈值,或检测到终端被关闭时,将第二运行环境中的目标人脸识别模型删除。这样可以将第二运行环境中的存储空间释放,以节省电子设备的空间。

进一步地,可以在电子设备运行过程中检测运行情况,根据电子设备的运行情况将目标人脸识别模型占用的存储空间进行释放。具体的,当检测到电子设备处于卡顿状态,且目标人脸识别模型未被调用的时长超过时长阈值时,将第二运行环境中的目标人脸识别模型删除。

目标人脸识别模型被释放之后,可以在检测到电子设备恢复正常运行状态,或检测到人脸识别指令时,获取第一运行环境中存储的人脸识别模型;然后在第一运行环境中将人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包;依次将模型数据包从第一运行环境传入到第二运行环境,并在第二运行环境中根据模型数据包生成目标人脸识别模型。

上述实施例提供的数据处理方法,可以将人脸识别模型存储在第一运行环境中,然后在第一运行环境中将人脸识别模型初始化之后,再将初始化后的人脸识别模型分成至少两个模型数据包,然后再将数据包传到第二运行环境中。由于第二运行环境中的存储空间小于第一运行环境中的存储空间,所以在第一运行环境中将人脸识别模型进行初始化,可以提高人脸识别模型的初始化效率,降低第二运行环境中的资源占用率,提高数据处理速度。同时将人脸识别模型分成多个数据包进行传输,提高了数据的传输的效率。另外,根据人脸识别指令的安全等级选择在第一运行环境或第二运行环境中进行处理,避免将所有应用都放在第二运行环境中处理,可以降低第二运行环境的资源占用率。

应该理解的是,虽然图2、图3、图6、图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3、图6、图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

图9为一个实施例中实现数据处理方法的硬件结构图。如图9所示,该电子设备中可包括摄像头模组910、中央处理器(centralprocessingunit,cpu)920和微控制单元(microcontrollerunit,mcu)930,上述摄像头模组910中包括激光摄像头912、泛光灯914、rgb摄像头916和镭射灯918。微控制单元930包括pwm(pulsewidthmodulation,脉冲宽度调制)模块932、spi/i2c(serialperipheralinterface/inter-integratedcircuit,串行外设接口/双向二线制同步串行接口)模块934、ram(randomaccessmemory,随机存取存储器)模块936、depthengine模块938。其中,中央处理器920可以为多核运行模式,中央处理器920中的cpu内核可以在tee或ree下运行。tee和ree均为arm模块(advancedriscmachines,高级精简指令集处理器)的运行模式。中央处理器920中的自然运行环境可为第一运行环境,安全性较低。中央处理器920中的可信运行环境为第二运行环境,安全性较高。可理解的是,由于微控制单元930是独立于中央处理器920的处理模块,且其输入和输出都是由可信运行环境下的中央处理器920来控制的,所以微控制单元930也是安全性较高的处理模块,可认为微控制单元930也是处于安全运行环境中的,即微控制单元930也处于第二运行环境中。

通常情况下,安全性要求较高的操作行为需要在第二运行环境中执行,其他操作行为则可在第一运行环境下执行。本申请实施例中,中央处理器920可通过可信运行环境控制securespi/i2c向微控制单元930中的spi/i2c模块934发送人脸识别指令。微控制单元930在接收到人脸识别指令后,若判断人脸识别指令的安全等级高于等级阈值,则通过pwm模块932发射脉冲波控制摄像头模组910中泛光灯914开启来采集红外图像、控制摄像头模组910中镭射灯918开启来采集散斑图像。摄像头模组910可将采集到的红外图像和散斑图像传送给微控制单元930中depthengine模块938,depthengine模块938可根据散斑图像计算深度图像,并将红外图像和深度图像发送给中央处理器920的可信运行环境中。中央处理器920的可信运行环境会根据接收到的红外图像和深度图像进行人脸识别处理。

若判断人脸识别指令的安全等级低于等级阈值,则通过pwm模块932发射脉冲波控制摄像头模组910中镭射灯918开启来采集散斑图像,并通过rgb摄像头916来采集可见光图像。摄像头模组910将采集的可见光图像直接发送到中央处理器920的自然运行环境中,将散斑图像传送给微控制单元930中depthengine模块938,depthengine模块938可根据散斑图像计算深度图像,并将深度图像发送给中央处理器920的可信运行环境。再由可信运行环境将深度图像发送到自然运行环境中,在自然运行环境中根据可见光图像和深度图像进行人脸识别处理。

图10为一个实施例中数据处理装置的结构示意图。如图10所示,该数据处理装置1000包括模型获取模块1002、模型分割模块1004和模型传输模块1006。其中:

模型获取模块1002,用于获取第一运行环境中存储的人脸识别模型。

模型分割模块1004,用于在所述第一运行环境中将所述人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包。

模型传输模块1006,用于依次将所述模型数据包从所述第一运行环境传入到第二运行环境,并在所述第二运行环境中根据所述模型数据包生成目标人脸识别模型;其中,所述第一运行环境的存储空间大于所述第二运行环境的存储空间,所述目标人脸识别模型用于对图像进行人脸识别处理。

上述实施例提供的数据处理装置,可以将人脸识别模型存储在第一运行环境中,然后在第一运行环境中将人脸识别模型初始化之后,再将初始化后的人脸识别模型分成至少两个模型数据包,然后再将数据包传到第二运行环境中。由于第二运行环境中的存储空间小于第一运行环境中的存储空间,所以在第一运行环境中将人脸识别模型进行初始化,可以提高人脸识别模型的初始化效率,降低第二运行环境中的资源占用率,提高数据处理速度。同时将人脸识别模型分成多个数据包进行传输,提高了数据的传输的效率。

图11为另一个实施例中数据处理装置的结构示意图。如图11所示,该数据处理装置1100包括模型获取模块1102、模型分割模块1104和模型传输模块1106和人脸识别模块1108。其中:

模型获取模块1102,用于获取第一运行环境中存储的人脸识别模型。

模型分割模块1104,用于在所述第一运行环境中将所述人脸识别模型进行初始化,并将初始化后的人脸识别模型分割成至少两个模型数据包。

模型传输模块1106,用于依次将所述模型数据包从所述第一运行环境传入到第二运行环境,并在所述第二运行环境中根据所述模型数据包生成目标人脸识别模型;其中,所述第一运行环境的存储空间大于所述第二运行环境的存储空间,所述目标人脸识别模型用于对图像进行人脸识别处理。

人脸识别模块1108,用于当检测到人脸识别指令时,判断所述人脸识别指令的安全等级;若所述安全等级低于等级阈值,则在所述第一运行环境中根据所述人脸识别模型进行人脸识别处理;若所述安全等级高于等级阈值,则在所述第二运行环境中根据所述人脸识别模型进行人脸识别处理;其中,所述第二运行环境的安全性高于所述第一运行环境的安全性。

上述实施例提供的数据处理方法,可以将人脸识别模型存储在第一运行环境中,然后在第一运行环境中将人脸识别模型初始化之后,再将初始化后的人脸识别模型分成至少两个模型数据包,然后再将数据包传到第二运行环境中。由于第二运行环境中的存储空间小于第一运行环境中的存储空间,所以在第一运行环境中将人脸识别模型进行初始化,可以提高人脸识别模型的初始化效率,降低第二运行环境中的资源占用率,提高数据处理速度。同时将人脸识别模型分成多个数据包进行传输,提高了数据的传输的效率。另外,根据人脸识别指令的安全等级选择在第一运行环境或第二运行环境中进行处理,避免将所有应用都放在第二运行环境中处理,可以降低第二运行环境的资源占用率。

在一个实施例中,模型分割模块1104还用于获取所述共享缓冲区的空间容量,并根据所述空间容量将所述人脸识别模型分割成至少两个模型数据包;其中,所述模型数据包的数据量小于或等于所述空间容量。

在一个实施例中,模型传输模块1106还用于依次将所述模型数据包从所述第一运行环境传入到共享缓冲区,并将所述模型数据包从所述共享缓冲区传入到第二运行环境。

在一个实施例中,模型传输模块1106还用于对每个模型数据包赋予对应的数据编号,按照所述数据编号依次将所述模型数据包从所述第一运行环境传入到第二运行环境;在所述第二运行环境中根据所述数据编号将所述模型数据包进行拼接,生成目标人脸识别模型。

在一个实施例中,模型传输模块1106还用于将所述模型数据包进行加密处理,并将加密处理后的模型数据包从所述第一运行环境传入到第二运行环境;在所述第二运行环境中对所述加密处理后的模型数据包进行解密处理。

在一个实施例中,人脸识别模块1108还用于控制摄像头模组采集第一目标图像和散斑图像,并将所述第一目标图像发送到第一运行环境中,将所述散斑图像发送到所述第二运行环境中;在所述第二运行环境中根据所述散斑图像计算得到深度图像,并将所述深度图像发送到所述第一运行环境中;通过所述第一运行环境中的人脸识别模型,对所述第一目标图像和深度图像进行人脸识别处理。

在一个实施例中,人脸识别模块1108还用于控制摄像头模组采集第二目标图像和散斑图像,并将第二目标图像和散斑图像发送到所述第二运行环境中;在所述第二运行环境中根据所述散斑图像计算得到深度图像;通过所述第二运行环境中的人脸识别模型,对所述第二目标图像和深度图像进行人脸识别处理。

上述数据处理装置中各个模块的划分仅用于举例说明,在其他实施例中,可将数据处理装置按照需要划分为不同的模块,以完成上述数据处理装置的全部或部分功能。

本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行上述实施例提供的数据处理方法。

一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的数据处理方法。

本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram),它用作外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1