具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例一提供的人脸数据处理方法的实现流程,详述如下:
在S101中,创建写入事务。
在进行人脸数据写入时,服务器需要接收来自客户端的数据写入请求,数据写入请求可为超文本传输协议(HyperText Transfer Protocol,HTTP)请求,也可以为任意能使服务器和客户端建立数据连接的请求。服务器获知客户端的写入意图并建立连接后,在服务器内部创建写入事务,准备接收来自客户端的数据。其中,写入事务是指将数个写入流程包含在单个逻辑工作单元中执行的一系列操作,在写入事务中的写入数据库和发送写入消息至消息队列步骤,结果只有完全执行和完全不执行两种情况,创建写入事务,可以防止人脸数据写入时可能发生的写入不统一情况,并能通过检测写入结果来做出应对措施。
可选地,从服务器集群中查找存储空间空余较大的空闲服务器,由空闲服务器创建写入事务。随着人脸识别精度需求的提高和计算机处理能力的增强,需要写入的人脸数据基数不断攀升,导致单一服务器的存储空间难以满足大量写入的要求。故在本发明实施例中,可由多个服务器组成服务器集群,并在服务器集群和客户端的连接中间点设置网关服务器,在接收到数据写入请求后,网关服务器查找到存储空间较空余的空闲服务器,将任务分发至空闲服务器,由其进行人脸数据写入,从而减少单一服务器的压力,提升人脸数据写入的效率。
在S102中,在所述写入事务的执行过程中,将第一样本人脸数据写入至数据库,并发送写入消息至消息队列,所述写入消息用于重复写入所述第一样本人脸数据至缓存。
第一样本人脸数据中的“第一”用于指明样本人脸数据处于写入过程,而并非是对该样本人脸数据进行标记,为了阅读方便,在进行描述时,省去前缀的“第一”,可根据具体语境判断出该样本人脸数据属于的过程。服务器和客户端建立连接后,在写入事务中,服务器获取样本人脸数据进行写入。样本人脸数据来源可以是客户端上传作为写入基础的样本人脸图像,服务器获取到样本人脸图像后对其设置多个特征点,进而进行特征提取所得到的多个特征数据,样本人脸数据包含的多个特征数据使样本人脸数据可以与其他人脸图像提取到的人脸数据形成区别,并且随着划分的特征点越多,区别的准确度越高;也可以是服务器接收到的由客户端直接上传的样本人脸数据和对应的样本人脸图像的集合包,在这种情况下,服务器便不再进行特征提取工作。根据实际项目的需要,客户端可向服务器批量发送样本人脸数据,以达到批量更新服务器存储内容的效果。
服务器在获取样本人脸数据时,也可以同时获取客户端上传的与样本人脸数据对应的用户信息,服务器将用户信息和样本人脸数据配套写入存储空间,方便在进行得到人脸识别结果时能够直接调取。
在获取样本人脸数据后,开始进行写入,由于首先要保证服务器最底层数据库的数据更新,所以先将样本人脸数据写入至位于服务器内存的数据库中。写入成功后,数据库会生成与样本人脸数据对应的用户编号。若写入失败,数据库返回写入数据库失败提示,由服务器将该提示返回至客户端,方便用户获知此结果,并方便用户对写入失败的样本人脸数据进行检查重传。
可选地,将样本人脸数据写入至数据库时,上传样本人脸数据对应的样本人脸图像至云存储空间。为了方便后续的人脸识别过程,将对应的样本人脸图像进行存储,其中存储地址可以为服务器数据库,不过在本发明实施例中,更优选择是将样本人脸图像上传至云存储空间,以减小服务器存储压力。其中样本人脸图像具有图像地址,并且图像地址与样本人脸数据的用户编号具有对应关系,便于后期返回到服务器中的某个样本人脸数据后,能通过对应关系调出对应样本人脸图像,节省时间成本。
在将样本人脸数据写入数据库时,进行写入事务中的下一步骤,即发送写入消息至消息队列(Message Queue,MQ),其中,写入消息用于重复写入样本人脸数据至缓存,直到写入成功。上述的消息队列是一种在消息传输过程中保存消息的容器,可运用在高并发环境下,在本发明实施例中使用,可满足可能出现的批量样本人脸数据写入。消息队列满足队列的先进先出原则,即写入消息被发送至消息队列时,位于消息队列的队尾,直到写入消息排到消息队列的队头,才运行该写入消息。在写入消息将样本人脸数据写入至缓存时,生成与写入数据库过程同样的用户编号。因为在写入事务内的所有步骤完成后,写入事务才能结束,所以本发明实施例将写入消息发送至消息队列,利用消息队列的特殊机制,防止在写入过程中因等待将样本人脸数据写入缓存而造成的浪费资源。优选的,在本发明实施例中,消息队列为RocketMQ消息队列,其作为一款MQ中间件,支持分布式集群部署,支持事务消息、顺序消息和消息重试等功能以及具备消息堆积能力强大等特性。
在S103中,若所述第一样本人脸数据在所述数据库中写入成功,且所述写入消息被成功发送至所述消息队列,则完成所述写入事务。
由于在本发明实施例中采用的是事务处理模式来写入样本人脸数据,所以当写入事务内的所有步骤都成功时,即样本人脸数据在数据库中写入成功,且写入消息被成功发送至消息队列后,完成并提交写入事务,同时服务器可向客户端返回样本人脸数据写入数据库和缓存成功的提示,并将写入过程中生成的用户编号返回至客户端。
可选地,若样本人脸数据在数据库中写入成功,且写入消息未被成功发送至消息队列,则回滚写入事务。回滚的含义,是指程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。在本发明实施例中,回滚事务是指在执行事务的过程中,若某一个步骤出现问题,则将过程中发生的程序或者数据改动恢复到执行此次事务之前的状态,为了减少人为操作的繁琐度,本发明实施例还设定在恢复之后,从事务的第一个步骤开始,重新执行该事务。具体到回滚写入事务操作中,重新开始进行写入事务的的第一步,将样本人脸数据写入至数据库步骤,直到写入事务中的所有步骤成功,即样本人脸数据在数据库中写入成功,且写入消息被成功发送至消息队列为止。通过前述方法,可以提升了写入过程的完整性,防止写入消息未被成功发送至消息队列情况的发生。
当写入消息排至消息队列的队头时,开始运行,将样本人脸数据写入至缓存。所谓消息,是两台计算机中传送的数据单位,消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。在本发明实施例中,写入消息用于将样本人脸数据写入至缓存。在完成写入事务后,虽然客户端已获知到样本人脸数据写入数据库和缓存成功的提示,但此时写入消息可能在发送样本人脸数据至缓存的过程中出现问题,导致实际写入缓存失败。故若检测到写入消息写入样本人脸数据至缓存成功,则说明样本人脸数据已存储在缓存中,可以销毁写入消息;若写入消息写入样本人脸数据至缓存失败,则保存该写入消息,并在重新整理数据后,定时重新发送样本人脸数据至缓存,再一次进行更新,直到写入成功为止,提升了人脸数据存储的准确性。
通过图1所示实施例可知,在本发明实施例一中,通过创建写入事务;在所述写入事务的执行过程中,将第一样本人脸数据写入至数据库,并发送写入消息至消息队列,所述写入消息用于重复写入所述第一样本人脸数据至缓存;若所述第一样本人脸数据在所述数据库中写入成功,且所述写入消息被成功发送至所述消息队列,则完成所述写入事务,提高了人脸数据存储的完整性,保证人脸数据在数据库中和在缓存中的一致性,提升了基于人脸数据的人脸识别的准确性。
图2所示,是在本发明实施例一的基础上,对写入人脸数据完成后,进行的删除人脸数据过程体现。本发明实施例二提供了该人脸数据处理方法的实现流程图,如图所示,该人脸数据处理方法可以包括以下步骤:
在S201中,获取用户编号,所述用户编号用于在所述数据库中确定第二样本人脸数据。
第二样本人脸数据中的“第二”用于指明将要被删除的样本人脸数据,而并非是与之前的样本人脸数据区分,为了阅读方便,在进行描述时,省去前缀的“第二”,可根据具体语境判断出该样本人脸数据属于的过程。在样本人脸数据写入服务器成功,服务器将样本人脸数据对应的用户编号返回至客户端。在实际项目中,可能因为人员变动等情况,需要对服务器中存储的样本人脸数据进行删除操作。首先,客户端需要向服务器发出数据删除请求,数据删除请求可为HTTP请求,也可以为任意能使服务器和客户端建立数据连接的请求。服务器获知客户端的删除意图并建立连接后,获取客户端上传的用户编号,其用于在数据库中确定客户端欲删除的样本人脸数据。另外的一种实现方式是,直接将用户编号夹带在数据删除请求中,以减少客户端操作。可选地,在查找到样本人脸数据后,返回该样本人脸数据和对应的样本人脸图像至客户端,以使用户确认该样本人脸数据是否属于要被删除的人员。
在S202中,创建删除事务。
服务器在接收到数据删除请求后,识别出其目的是将样本人脸数据从服务器的存储空间中删除,从而创建删除事务。在本发明实施例中,因为服务器的数据库和缓存已包含该样本人脸数据,所以在删除事务的处理过程中,可直接利用户编号,对服务器的数据库和缓存中的对应内容进行删除操作,而不需要客户端上传样本人脸数据对应的样本人脸图像,使样本人脸数据删除过程更加简便。
在S203中,在所述删除事务的执行过程中,从所述数据库中删除所述第二样本人脸数据,并发送删除消息至所述消息队列,所述删除消息用于从所述缓存中删除所述第二样本人脸数据。
删除事务与实施例一的写入事务属于同一种事务概念,只是执行的具体步骤不同。在删除事务中,服务器根据客户端上传的用户编号,在数据库中进行查找,如果查找到对应的样本人脸数据,则对其进行删除。若是样本人脸数据存储在多个服务器组成的服务器集群中,则在最初写入时对用户编号做出标识,以便在本阶段能够快速找到服务器集群中的某个服务器,对其数据库的样本人脸数据进行删除。若删除失败,则服务器返回删除数据库失败提示至客户端,方便用户获知数据库删除结果,并查看删除失败的具体原因。
在删除数据库内的样本人脸数据后,进入删除事务的下一步骤,即发送删除消息至消息队列,删除消息可根据用户编号查找到对应样本人脸数据在缓存中的位置,并删除该缓存中的样本人脸数据。
在S204中,若所述第二样本人脸数据在所述数据库中删除成功,且所述删除消息被成功发送至所述消息队列,则完成所述删除事务。
当删除事务内的所有步骤都成功时,即样本人脸数据在数据库中删除成功,且删除消息被成功发送至消息队列后,完成并提交删除事务,同时服务器可向客户端返回样本人脸数据在数据库和缓存中删除成功的提示。
可选地,若样本人脸数据在数据库中删除成功,且删除消息未被成功发送至消息队列,则回滚删除事务。回滚删除事务操作,具体为重新从删除事务的第一个步骤开始执行,直到删除事务中的所有步骤成功,即样本人脸数据在数据库中删除成功,且删除消息被成功发送至消息队列为止,提升了删除过程的完整性,防止删除消息未被成功发送至消息队列情况的发生。
当删除消息排至消息队列的队头时,开始运行,将样本人脸数据从缓存中删除。在完成删除事务后,虽然客户端已获知到从数据库和缓存删除样本人脸数据成功的提示,但此时删除消息可能在从缓存中删除样本人脸数据的过程中出现问题,导致实际删除失败。故若检测到删除消息从缓存中删除样本人脸数据成功,则说明样本人脸数据已不存储在缓存中,可以销毁删除消息;若删除消息从缓存中删除样本人脸数据失败,则保存该删除消息,并在重新整理后,定时重新从缓存中删除样本人脸数据,直到删除成功为止。
通过图2所示实施例可知,在本发明实施例二中,通过获取用户编号,所述用户编号用于在所述数据库中确定第二样本人脸数据;创建删除事务;在所述删除事务的执行过程中,从所述数据库中删除所述第二样本人脸数据,并发送删除消息至所述消息队列,所述删除消息用于从所述缓存中删除所述第二样本人脸数据;若所述第二样本人脸数据在所述数据库中删除成功,且所述删除消息被成功发送至所述消息队列,则完成所述删除事务,实现了对已存储人脸数据的删除,防止在缓存中还存储有数据库中已删除的人脸数据,提升了人脸数据处理方法的适用性。
图3所示,是在本发明实施例一的基础上,对人脸数据写入完成后,基于已写入的人脸数据进行的人脸识别过程体现。本发明实施例三提供了该人脸数据处理方法的实现流程图,如图所示,该人脸数据处理方法可以包括以下步骤:
在S301中,接收待识别人脸数据。
在样本人脸数据写入成功后,服务器接收客户端的人脸识别请求,人脸识别请求可为HTTP请求,这里的HTTP请求与实施例一中样本人脸数据写入时的HTTP请求在内容上不同,用于使服务器与客户端建立连接,以便服务器接收待识别人脸数据。为了安全性的考虑,服务器在接收到客户端的人脸识别请求后,可检查客户端的访问令牌是否合法,当其合法后可检查该客户端用户组是否存在,当其存在后,服务器可判断客户端上传的待识别人脸图像大小是否超出限制,当其不超出限制时,服务器才按照对样本人脸图像处理的格式,对待识别人脸图像设置同样的特征点,进行特征提取得到待识别人脸数据。上述条件若有一项不成立,则服务器可直接提示客户端识别失败。其中,服务器可能会同时接收到多个人脸识别请求,在同一个人脸识别请求中,服务器也可能接收到多个待识别人脸数据,例如待识别人脸图像中含有多张人脸。故在本发明实施例中,可由多个服务器组成服务器集群,并设置网关服务器,网关服务器用于将人脸识别请求转发至服务器集群。基于分布式的理念,网关服务器对多个服务器的负载情况进行检测分析,将人脸识别请求优先转发至负载低的服务器进行处理,以提升人脸识别的效率。
可选地,设置代理缓存服务器,代理缓存服务器接收人脸识别请求,并转发人脸识别请求至服务器。在客户端发出一次人脸识别请求后,代理缓存服务器按照自身配置将人脸识别请求转发至合适的服务器上,并且将此次人脸识别请求和服务器返回的结果存储在客户端本地。在下一次客户端发出相同人脸识别请求,并上传相同待识别人脸图像时,代理缓存服务器即可快速从客户端本地返回结果。优选的,代理缓存服务器为squid,其是一款高性能的代理缓存服务器。通过前述方法,可以提高人脸识别的效率,并且减少服务器压力。
可选地,在代理缓存服务器之前配置nginx服务器,nginx服务器接收人脸识别请求,并转发人脸识别请求至代理缓存服务器。随着实际项目容量增大,对应的代理缓存服务器可能会出现多台,为了提高缓存服务器的存储效率和命中率,在其之前配置nginx服务器,对前端的人脸识别请求进行接收分发,实现流量分担。由于人脸识别请求为HTTP请求,故在nginx服务器中,通常选择统一资源定位符(Uniform Resource Locator,URL)哈希(HASH)算法分配人脸识别请求流量到代理缓存服务器。正常的情况下,不同代理缓存服务器所缓存内容是不同的,而单一URL的HASH结果是一样的,所以在URL进行一次HASH算法后,可以根据HASH结果找到对应的代理缓存服务器,使人脸识别请求分配更加均匀,提高了人脸识别的稳定性。
在S302中,将所述待识别人脸数据与所述缓存中的所述第一样本人脸数据比对,得到比对结果。
服务器在接收到待识别人脸数据后,将待识别人脸数据与存放在缓存中的样本人脸数据进行比对,比对方式可以是对每个特征点产生的人脸数据进行挨个比较,也可以是对某些特征点集合(比如眼部,鼻部等)产生的人脸数据进行比较,得到最接近的比对结果。其中,比对结果可以为某个最接近的样本人脸数据,也可以为多个与待识别人脸数据相近的样本人脸数据的比对结果的集合。得到比对结果后,将比对结果返回至客户端,服务器还可将比对结果对应的样本人脸数据的用户信息一同返回。更多地,服务器还可根据比对结果中的样本人脸数据,查找云存储空间中对应的样本人脸图像,加上前述的比对结果与用户信息一并返回至客户端,便于用户查看。
可选地,服务器包含多线程,其中每个线程将待识别人脸数据与缓存中的部分样本人脸数据比对,最终得到多个线程比对结果,整合多个线程比对结果为比对结果。服务器得到待识别人脸数据后,从缓存取出样本人脸数据,并将样本人脸数据分配至服务器的每个线程中,由每个线程在线程内将待识别人脸数据和分配至该线程的样本人脸数据进行比对,返回线程比对结果。在所有线程都比对完毕后,将线程比对结果整合为比对结果,可以提高人脸识别过程的比对效率,提升人脸识别性能。
通过图3所示实施例可知,在本发明实施例三中,通过接收待识别人脸数据,将所述待识别人脸数据与所述缓存中的所述第一样本人脸数据比对,得到比对结果,将待识别人脸数据与缓存内容中的人脸数据进行比对,提升了人脸识别的工作效率和准确性。
图4所示,是在本发明实施例三的基础上,对人脸数据处理方法中,将待识别人脸数据与缓存中的样本人脸数据比对,得到比对结果进行细化的步骤。本发明实施例四提供了该人脸数据处理方法的实现流程图,如图所示,该人脸数据处理方法可以包括以下步骤:
在S401中,获取所述待识别人脸数据与所述缓存中的多个所述第一样本人脸数据进行单独比对的多个单独比对结果,所述比对结果包括相似度。
服务器在获取到待识别人脸数据后,再从缓存中提取出多个样本人脸数据,将待识别人脸数据与多个样本人脸数据进行比对,其中比对方式为单独比对,然后获取对应的多个比对结果。由于待识别人脸数据和样本人脸数据都属于对人脸图像进行提取后的特征数据,所以比对过程实则是对人脸各个不同部分的特征数据进行比较,最后再将比较的结果集合为比对结果。比对结果用相似度来表示,相似度可以为百分数,例如70%或80%等。
在S402中,对所述多个单独比对结果按所述相似度由高到低进行排序。
获取到多个单独比对结果后,将其依次存储在数组(优选数组为动态数组ArrayList)中,由于用户的需求是获取与待识别人脸图像接近的样本人脸图像,所以在此步骤中,对数组中的多个单独比对结果按相似度由高到低进行排序,越在数组前列,其所属的样本人脸数据就越接近待识别人脸数据。
在S403中,截取所述相似度的排序在前N位的所述单独比对结果,集合为所述比对结果,其中,N为大于零的整数。
进行人脸识别的样本人脸数据通常拥有庞大的基数,所以数组中的单独比对结果通常很多,并且绝大部分都是用户不需要的。所以,在将其返回至客户端之前,需要截取数组中相似度在前N位的单独比对结果,组成比对结果,N为大于零的整数。比对结果可以根据用户需求,取N=1的情况,即为某个最接近的样本人脸数据;也可以取N>1的情况,即为多个与待识别人脸数据相近的样本人脸数据的比对结果的集合。
可选地,设置相似度阈值,当比对结果中的相似度小于相似度阈值时,识别失败。在实际的项目场景,比如门禁系统中,如果得到的比对结果中数值最大的相似度小于预先设置的相似度阈值,比如80%,则服务器直接返回至客户端识别失败的提示。更多地,客户端可以发出人脸识别请求之前,设置自动注册参数,以使注册失败后,启动自动注册机制,将待识别人脸数据作为样本人脸数据,创建写入事务进行写入。通过上述方法可提升人脸识别的适用性,通过增添判断和提示部分,使其适用于不同的应用场景。
可选地,服务器包含多线程,其中每个线程将待识别人脸数据与缓存中的部分样本人脸数据比对,最终得到多个线程比对结果,整合多个线程比对结果为比对结果,可以提升单个服务器进行比对的效率。
通过图4所示实施例可知,在本发明实施例四中,通过获取所述待识别人脸数据与所述缓存中的多个所述第一样本人脸数据进行单独比对的多个单独比对结果,所述单独比对结果包括相似度,对所述多个单独比对结果按所述相似度由高到低进行排序,截取所述相似度的排序在前N位的所述单独比对结果,集合为所述比对结果,其中,N为大于零的整数,体现了基于样本人脸数据进行识别的具体过程,提升了识别过程的精确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的人脸数据处理方法,图5示出了本发明实施例五提供的人脸数据处理装置的结构框图,所述人脸数据处理装置可以应用在服务器中,通过创建写入事务保证了写入过程的完整性。
参照图5,该装置包括:
创建单元51,用于创建写入事务;
写入单元52,用于在所述写入事务的执行过程中,将第一样本人脸数据写入至数据库,并发送写入消息至消息队列,所述写入消息用于重复写入所述第一样本人脸数据至缓存;
完成单元53,用于若所述第一样本人脸数据在所述数据库中写入成功,且所述写入消息被成功发送至所述消息队列,则完成所述写入事务。
可选的,所述完成单元,还包括:
获取单元,用于获取用户编号,所述用户编号用于在所述数据库中确定第二样本人脸数据;
删除创建单元,用于创建删除事务;
删除单元,用于在所述删除事务的执行过程中,从所述数据库中删除所述第二样本人脸数据,并发送删除消息至所述消息队列,所述删除消息用于从所述缓存中删除所述第二样本人脸数据;
删除完成单元,用于若所述第二样本人脸数据在所述数据库中删除成功,且所述删除消息被成功发送至所述消息队列,则完成所述删除事务。
可选的,所述人脸数据处理装置还包括:
接收单元,用于接收待识别人脸数据;
比对单元,用于将所述待识别人脸数据与所述缓存中的所述第一样本人脸数据比对,得到比对结果。
图6是本发明实施例六提供的人脸数据处理设备的示意图。如图6所示,该实施例的人脸数据处理设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个人脸数据处理方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块51至53的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述人脸数据处理设备6中的执行过程。例如,所述计算机程序62可以被分割成创建单元、写入单元、完成单元,各单元具体功能如下:
创建单元,用于创建写入事务;
写入单元,用于在所述写入事务的执行过程中,将第一样本人脸数据写入至数据库,并发送写入消息至消息队列,所述写入消息用于重复写入所述第一样本人脸数据至缓存;
完成单元,用于若所述第一样本人脸数据在所述数据库中写入成功,且所述写入消息被成功发送至所述消息队列,则完成所述写入事务。
所述人脸数据处理设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述人脸数据处理设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是人脸数据处理设备6的示例,并不构成对人脸数据处理设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述人脸数据处理设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述人脸数据处理设备6的内部存储单元,例如人脸数据处理设备6的硬盘或内存。所述存储器61也可以是所述人脸数据处理设备6的外部存储设备,例如所述人脸数据处理设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述人脸数据处理设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述人脸数据处理设备6所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。