一种支持多生物特征识别技术的生物特征识别框架服务的制作方法 - 天下标王

一种支持多生物特征识别技术的生物特征识别框架服务的制作方法

文档序号:17928088发布日期:2019-06-15 00:34阅读:375来源:国知局
一种支持多生物特征识别技术的生物特征识别框架服务的制作方法

本发明属于计算机技术领域,涉及一种支持多生物特征识别技术的生物特征识别框架服务,尤其是基于linux操作系统平台上的多生物特征识别技术和事件驱动的生物特征识别框架服务。



背景技术:

生物特征识别是指利用人的部分身体部位所具备的生理学特性进行认证的一种技术。随着近些年来移动终端的普及、生物特征采集与识别传感器越来越小,生物特征识别技术已经普及到人们生活中。

生物特征识别主要分为特征采集和特征认证。特征采集是利用生物统计学原理和计算机算法,将传感器从人体特征部位收集到的光学、声学、力学等信息进行特征提取并编码,转换为唯一的数字编码,并将这些编码通过各种方式合成一个对应个体身体部位的特征模板。特征认证是将当前采集到的生物特征码与数据库中的指定历史特征模板比对,如果比对匹配,则代表认证通过,比对不匹配则认证不通过。

在主流的操作系统中,几乎都支持了生物特征识别。大多数操作系统都是以服务的形式提供生物特征的统一采集和比对识别,少数操作系统只提供算法库和设备驱动,不提供统一的服务。

(1)windows操作系统中的生物特征识别服务各组件间集成度比较高,总的来说可以分为三层1:认证服务层、服务提供者层和驱动层。认证服务层定义应用接口,使用核心层各个模块的功能为上层的前端应用提供统一的接口。服务提供者层提供功能性接口,为驱动层定义驱动接口并提供存储服务。驱动层负责操控硬件。

(2)android操作系统中的生物特征识别服务分为两层:后端服务层和生物特征识别的可信执行环境(trustedexecutionenvironment,tee)。android的特征识别服务的后端服务层定义应用程序调用的特征识别接口,提供访问tee中的特征数据的keystore服务和api,并通过hal层使用传感器驱动。生物特征识别的tee由硬件供应商提供的传感器驱动库和keymaster硬件加密组件组成。

(3)当前linux平台上没有框架生物特征识别框架,也没有生物特征识别服务,只有一个指纹识别的动态链接库libfprint。libfprint库主要分为三个部分:指纹识别接口、指纹识别算法库和图像传感器驱动。指纹识别接口提供应用程序使用指纹识别硬件的应用级接口。指纹识别算法库提供指纹识别算法,将指纹硬件中图像传感器采样到的指纹图片通过算法转换为指纹特征值和指纹模板。图像传感器驱动用于控制硬件采集指纹图像。

目前windows操作系统和android操作系统的生物特征识别框架已经比较完善,而linux操作系统上却只有一个提供指纹算法的动态链接库,存在以下不足:

(1)应用开发难。在认证架构上,windows平台和android平台都是后端服务的形式,为上层应用提供生物特征服务,所以应用开发时只需要接口调用,不需要管理设备。而linux平台上是以动态链接库的形式存在,需要应用程序在使用功能的时候重新探测并初始化设备,也需要应用程序自己释放设备资源,导致应用开发难度大。

(2)安全性低。在生物特征的存储上,windows平台使用软件加密算法来加密特征,android平台使用硬件芯片中的key加密,linux平台上直接将特征明文存储在系统中,不加密导致数据安全性低。

(3)通用性差。在生物特征的存储方式上,windwos平台和android平台都是统一管理统一存储,所有应用可以共用特征。而linux平台上特征是由应用各自存储,如需共用特征则需要应用开发者互相配合。

(4)支持的设备类型少,可扩展性差。从平台支持生物特征种类上看,windwos平台支持指纹、人脸识别,并且可以扩展虹膜、指静脉、声纹等不同的生物特征类型的识别;android平台支持指纹、人脸、虹膜识别,并且可以扩展指静脉、声纹等生物特征类型的识别;linux平台只支持指纹识别,并且不能扩展其他生物特征类型。



技术实现要素:

鉴于上述问题,本发明要解决的问题是提供一种支持多生物特征识别技术的生物特征识别框架服务,适合基于linux操作系统平台上使用,为应用层定义了生物特征识别的应用接口,为设备提供商定义了生物特征识别的驱动接口,提供统一的生物特征服务,提供统一的存储管理,提供统一的驱动配置管理。

为解决上述技术问题,本发明采用的技术方案是:一种支持多生物特征识别技术的生物特征识别框架服务,包括以下步骤:

s1:构建框架服务分层;

s2:运行框架服务,进行框架服务初始化;

s3:接收并处理应用层各种生物特征请求事件或系统底层插拔设备热插拔事件。

进一步的,步骤s1中,框架服务分层包括服务层、核心层和驱动层,其中,

服务层定义生物特征识别的应用接口,提供驱动管理、设备管理、事件管理和提供状态反馈机制;

核心层定义生物特征识别的驱动接口、配置读写接口和设备驱动的实体,提供生物特征模板的统一存储与加密方式;

驱动层由设备提供商完成驱动编写,用于实现对生物特征识别驱动接口和操作硬件设备。

进一步的,步骤s2包括以下步骤:

s21:获取配置信息,构建驱动列表;

s22:从驱动列表中获取一个驱动并生成驱动结构体,初始化驱动;

s23:探测设备是否存在,若设备存在,则加入到设备列表中,若不存在则进行下一步骤;

s24:判断驱动列表是否遍历完成,若完成则进行下一步骤,若未完成则跳转到s22;

s25:注册插拔设备热插拔事件的处理函数、设备状态变更的处理函数和生物特征识别服务;

s26:框架服务初始化完成,进行事件循环。

进一步的,步骤s3中的接收并处理应用层各种生物特征请求事件为创建一个新线程,在新线程中对应用层各种生物特性请求事件进行相应处理,具体包括以下步骤:

s311:用户权限检测,若没有权限,则跳转步骤s317,若有权限,则继续下一步操作;

s312:打开设备并初始化;

s313:特征录入,设备硬件进行特征采样,且设备状态变更;

s314:获取特征值,从设备上获取所述特征值,并上传到核心层;

s315:对特征值加密,并进行存储;

s316:核心层返回操作结果及状态;

s317:服务层返回操作结果并销毁新线程,完成应用层的生物特征请求事件请求。

进一步的,步骤313中在设备进行特征采样过程中设备状态变更,具体包括以下步骤:

s3131:驱动变更相应状态及提示;

s3132:核心层执行状态变更回调函数;

s3133:向应用层发出状态变更信号;

进一步的,步骤s3中的接收系统底层插拔设备热插拔事件为创建一个事件驱动新线程进行系统底层插拔设备热插拔事件处理,具体包括以下步骤:

s321:获取系统底层插拔设备热插拔事件的信息;

s322:遍历设备支持列表,判断插拔设备是否在设备支持列表中,若不在,则进行步骤s328,若在,则进行下一步骤;

s323:判断热插拔事件中的事件类型,若是设备接入事件,则进行下一步骤,否则跳转到步骤s326进行处理;

s324:探测设备数量,更新设备支持列表;

s325:向应用层发送热插拔设备热插拔信号,并跳转到s328步骤;

s326:判断热插拔事件中的事件类型,若是设备拔出事件,则进行下一步骤;

s327:获取设备的驱动结构体,停止当前操作,并跳转执行步骤s324;

s328:回收新线程执行期间分配的资源,并销毁线程。

进一步的,步骤s25中注册插拔设备热插拔事件的处理函数、设备状态变更的处理函数和生物特征识别服务,包括以下步骤:

s251:框架服务向系统的usb总线注册usb热插拔事件的处理函数;

s252:框架服务向bfs核心层注册设备状态变更的处理函数;

s253:框架服务向系统的dbus总线注册生物特征识别服务;

进一步的,框架服务可接收的生物特征请求包括但不限于:特征捕获、特征录入、特征验证、特征识别、特征搜索、特征删除、特征重命名、获取特征列。

进一步的,步骤s315中对特征值加密为将加密后的特征值密文、应用事件请求中的参数和驱动的信息合并为一个特征信息结构体。

进一步的,步骤s316中的操作结果及状态包括核心层设置操作状态为特征录入成功,设置人机交互消息为特征录入成功,设置设备状态为设备空闲。

本发明具有的优点和积极效果是:

1.应用开发简单,应用只需要调用bfs提供的应用接口即可,无需关注生物特征种类、生物特征算法、用户权限等;

2.安全性高,bfs会将生物特征加密,并存储在系统数据库中,只有高权限的管理员才能访问;

3.通用性强,bfs会管理所有的生物特征,应用使用的生物特征信息都来自于bfs,从而得到强通用性;

4.支持的设备类型多,可扩展性强。bfs的框架不局限于某一种或某几种生物特征类型,通过对各种生物特征类型的抽象,定义出通用的生物特征接口,并提供驱动开发接口,使得bfs具备高度的扩展性。

附图说明

图1是本发明的一实施例的结构框架图;

图2是本发明的一实施例的实施流程图;

图3是本发明的一实施例的bfs服务初始化流程图;

图4是本发明的一实施例的bfs服务中各种生物特征请求事件流程图;

图5是本发明的一实施例的bfs服务中usb设备热插拔事件流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的说明。

图1示出了本发明一实施例的结构框架图,具体示出了本实施例的结构关系,本实施例中涉及linux平台上一种基于多生物特征识别技术和事件驱动的生物特征识别框架及服务,简称bfs(biometricframeworkservice),后续说明中均以简称bfs来进行说明。该bfs为应用层定义了生物特征识别的应用接口,为设备提供商定义了生物特征识别的驱动接口,提供统一的生物特征服务,提供统一的存储管理,提供统一的驱动配置管理。

一种支持多生物特征识别技术的生物特征识别框架服务,如图2所示,具体包括以下步骤:

s1:构建分层:bfs分层构建,bfs分为三层,包括服务层、核心层和驱动层,其中,

服务层定义生物特征识别的应用接口,提供驱动管理、设备管理、事件管理和提供状态反馈机制;

核心层定义生物特征识别的驱动接口、配置读写接口和设备驱动的实体,提供生物特征模板的统一存储与加密方式;

驱动层由设备提供商完成驱动编写,用于实现对生物特征识别驱动接口和操作硬件设备,并且bfs提供基于libfprint动态链接库的指纹设备驱动。

s2:运行服务,并且对服务进行初始化,在初始化阶段完成驱动的初始化、设备的探测、服务的注册等操作,如图3所示,具体包括以下步骤:

s21:获取配置信息,构建驱动列表,bfs读取系统目录中的配置文件,获取驱动的配置信息,并构建驱动列表,这里,配置信息包括驱动名、驱动位置、启用状态;

s22:从驱动列表中获取一个驱动并生成驱动结构体,初始化驱动,bfs从驱动列表中获取一个驱动,加载、注册该驱动,生成驱动结构体,初始化该加载的驱动,将驱动中的各生物特征操作的回调函数注册到驱动结构体中,生物特征包括但不限于录入特征、验证特征、识别特征等;

s23:探测设备是否存在,通过服务层和核心层调用驱动的探测函数进行设备检测,若设备存在,则将该设备加入到设备列表中,若该设备不存在则进行下一步骤;

s24:判断驱动列表是否遍历完成,若遍历完成则进行下一步骤,若未完成则跳转到s22,继续步骤22和步骤23,以此进行循环,直至驱动列表遍历完成;

s25:注册插拔设备热插拔事件的处理函数、设备状态变更的处理函数和生物特征识别服务,具体包括以下步骤:

s251:bfs服务向系统的usb总线注册usb热插拔事件的处理函数,用于在提供服务期间处理各种使用usb接口的生物特征设备的热插拔事件;

s252:bfs服务向bfs核心层注册设备状态变更的处理函数,用于在生物特征设备的状态变更时向应用服务发送状态变更信号;

s253:bfs服务向系统的dbus总线注册生物特征识别服务、生物特征识别应用接口、以及两种通知信号,该两种通知信号包括usb设备热插拔信号和设备状态变更信号;

s26:bfs服务初始化完成,进行下一阶段:事件循环,对应用层各种生物特征请求事件或系统底层插拔设备热插拔事件进行处理。

s3:接收应用层各种生物特征请求事件或系统底层插拔设备热插拔事件。

具体地,bfs服务开始事件循环之后就可以接收来自应用的各种生物特征请求事件,bfs服务可接收的生物特征请求包括但不限于:特征捕获、特征录入、特征验证、特征识别、特征搜索、特征删除、特征重命名、获取特征列。

当接收应用层各种生物特征请求事件具体过程为:来自应用的各种生物特征请求事件来临后,bfs会检测权限、打开设备、初始化硬件、使用硬件进行各种生物特征操作,获取硬件操作结果并返回。在此期间,硬件状态变更及人机交互消息变更都会使得bfs向应用层发送状态变更信号。

对于不同的生物特征请求,bfs的服务层、核心层的时间处理及消息反馈有着相似的逻辑。在本实施例中,仅使用“特征录入”请求来例举bfs服务的具体实施步骤,如图4所示,具体的包括以下步骤:

来自应用的“特征录入”事件通过dbus总线传递给bfs服务时,bfs服务创建一个新线程,来自应用的“特征录入”时间处理的所有步骤均在新线程执行,在新线程中对“特征录入”事件进行相应处理,具体包括以下步骤:

s311:用户权限检测,bfs首先检测用户是否有权限执行该类型操作,若没有权限,则跳转步骤s317,若有权限,则继续下一步操作;

s312:打开设备并初始化,服务层通过核心层的设备打开函数打开设备,核心层设备打开函数通过用户指定的驱动id找到对应的驱动和设备,执行驱动的初始化函数,对硬件设备初始化;

s313:特征录入,设备进行特征采样,且设备状态变更,核心层特征录入函数开始进行特征录入,核心层特征录入函数通过用户指定的驱动id找到对应的驱动和设备,执行驱动的特征采样函数,进行硬件特征采样,在驱动的特征采样函数执行期间,设备的状态、人机交互引导消息会不断变化,该状态变化时的操作具体包括以下步骤:

s3131:驱动变更相应状态及提示,在状态变化的时候驱动使用核心层提供的三类状态变更函数来改变相应驱动变更状态及提示,该三类状态变更函数包括设备状态、人机交互消息和操作结果;

s3132:核心层执行状态变更回调函数,上述的核心层三类状态变更函数执行时,调用上述s22步骤中注册的服务层回调函数;

s3133:向应用层发出状态变更信号,状态变更函数被调用,获取变更的状态类型,同时获取状态变更事件的时间戳,向应用层发出状态变更信号,该变更信号包括变更的状态类型和变更事件的时间戳;

s314:获取特征值,从设备上获取所述特征值,并上传到核心层,当硬件完成特征采样后,驱动获取特征值,然后将特征值上传到核心层,如果设备是通过硬件存储特征值,则驱动同时将特征值保存到设备上;

s315:对特征值加密,并进行存储,核心层获取到特征值后将其加密,将加密后的特征值密文、应用事件请求中的参数、驱动的信息合并为一个特征信息结构体,然后进行存储,将该信息特征信息结构体存储到数据库中,上述的应用事件请求中的参数包括用户id、特征名等信息,上述的驱动信息包括驱动名和特征类型;

s316:核心层返回操作结果及状态,核心层设置操作状态为“特征录入成功”,设置人机交互消息为“特征录入成功”,设置设备状态为“设备空闲”;

s317:所述服务层返回操作结果并销毁所述新线程,完成所述应用层的生物特征请求事件请求,即服务层通过dbus总线返回操作结果并销毁由s21创建的线程,完成一次生物特征的“特征录入”请求。

在bfs服务运行期间,不仅仅只有来自应用层的生物特征请求事件,还有来自系统底层usb设备热插拔事件。

bfs服务获知usb设备热插拔后,会进行判断和处理,最后决定是否通知应用层,接收系统底层插拔设备热插拔事件操作具体过程为:来自系统底层插拔设备热插拔事件来临后,bfs服务获取插拔设备热插信息,包括厂商号、设备号,然后进行判断和处理,更新设备列表和设备数量,最后决定是否通知应用层,这里插拔设备包括但不限于usb设备。

当usb设备发生热插拔后,bfs收到来自系统的usb热插拔事件通知,会创建一个新线程进行该usb热插拔事件处理,且事件处理的所有步骤均在该新线程中执行,在新线程中对“usb设备热插拔”事件进行相应处理。

usb设备热插拔事件处理过程,如图5所示,具体操作实施包括以下步骤:

s321:获取系统底层插拔设备热插拔事件的信息,bfs在新线程中获取热插拔事件的信息,包括插拔设备的厂商号、设备号、事件类型,该事件类型包括但不限于设备接入、设备拔出;

s322:遍历设备支持列表,对比插拔设备的厂商号、设备号,判断所述插拔设备是否在所述设备支持列表中,若不在,则进行步骤s328,若在,则进行下一步骤;

s323:判断所述热插拔事件中的事件类型,若是设备接入事件,则进行下一步骤,否则跳转到步骤s326进行处理;

s324:探测设备数量,更新所述设备支持列表,通过接入的设备信息来获取设备的驱动结构体,该设备信息包括厂商号和设备号,然后调用驱动的探测函数,更新设备数量,将发生事件的设备加入到设备列表中;

s325:向所述应用层发送所述热插拔设备热插拔信号,该信号附带设备驱动id、插拔类型、插拔后的设备数量三个信息,并跳转到s328步骤;

s326:判断所述热插拔事件中的事件类型,若是设备拔出事件,则进行下一步骤;

s327:获取设备的驱动结构体,停止当前操作,根据插拔设备信息来获取设备的驱动结构体,该插拔设备包括厂商号和设备号,然后调用驱动的“终止操作”函数,用于停止当前的人机交互过程,并跳转执行步骤s324;

s328:回收新线程执行期间分配的资源,并销毁线程。

通过上述步骤,实现对多种生物特征识别和事件驱动的生物特征识别,只需要调用bfs提供的应用接口即可,无需关注生物特征种类、生物特征算法、用户权限等,bfs会将生物特征加密,并存储在系统数据库中,只有高权限的管理员才能访问,bfs会管理所有的生物特征,应用使用的生物特征信息都来自于bfs,从而得到强通用性。

本发明具有的优点和积极效果是:应用开发简单,应用只需要调用bfs提供的应用接口即可,无需关注生物特征种类、生物特征算法、用户权限等;安全性高,bfs会将生物特征加密,并存储在系统数据库中,只有高权限的管理员才能访问;通用性强,bfs会管理所有的生物特征,应用使用的生物特征信息都来自于bfs,从而得到强通用性;支持的设备类型多,可扩展性强,bfs的框架不局限于某一种或某几种生物特征类型,通过对各种生物特征类型的抽象,定义出通用的生物特征接口,并提供驱动开发接口,使得bfs具备高度的扩展性。

以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

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

相关内容推荐

seo推广 是什么seo 指令seo优化企业网站seo多长时间能学会济南专业seo推广费用多少seo军刀破解版南昌seo云优化绍兴百度seoseo模板网seo网页优化工具专业网站seo报价昆明seo昆明网络推广江门站长seo平台单页面seo案例重庆seo新手入门教程北京品质seo优化有哪些少年SEO从化seo优化哪家好宝坻seo推广咨询电话排名企业网站seo关键词优化荣耀seoseo专员职责seo 优化目标seo研究中心教程下载SEO老汤网站优化推广seo多少钱seo域名查询网站优化seo是什么谁需要SEOseo定制大连seo招聘如何学seo网站优化seo黑帽优化蜘蛛池seo冰箱seo 天津网站seo原创文章南昌企业网站seo郑州seo优化培训新乡seo推广seo蜘蛛精有什么用哪家公司seo优化好锚文本 seoseo网页优化平台深圳关键词seo优化公司谷歌大叔 外贸seo浙江智能化seo优化格式化网站seo优化设计seo技术新手入门教程霸屏推广外贸seo优化公司广西抖音短视频seo点石 seo低成本seo推广开户吐鲁番seo网络营销策略武汉市seo关键词优化哪家好网站名称 seoseo搜索优化哪家靠谱淄博seo外包价格企业网站做seo武汉做SEO苏州网站seo优化dz论坛seo设置seo万词盐城seo服务北京论坛seo而的跟地seo排名点击软件seo培训多少宁国SEOseo页面布局优化汕头 seo 培训seo怎么面试seo虚拟主机基本SEOseo稳定吗seo cpaseo优化推广平台黑帽seo 隐藏链接seo优化加盟合作sem和seo品牌案例seo行业术语武汉seo服务商seo 关键字优化希望seo免费教程公司网站seo外包网上学习seo谷歌seo 营销seo详细教程搜索seo优化平台佛山seo关键词推广seo优化 教程洮南优化seo刷关键字排行seo软件seo基础试题网站seo做什么seo ip张国维seo湛江网站seo北京优化seo西宁seo关键词优化成都关键词seo收费标准seo 指令怎样快速学习seo嘉兴seo外包工作室网站seo报价网站seo检查seo按效果计费seo咖啡seo搜索引擎优化怎么样seo新手怎样做关键词百度 seo检测seo网站页面f布局现在有不做seo的公司吗网络seo优化是什么seo研发惠城seo网络推广密云网络推广seo优化seo优化方法有哪些火狐seo 插件廊坊专门做seo的公司西安seo排名扣费新乡 seo站长seo综合查询工具湖南360seo优化哪家好hanbit seo投seo东莞关键词seo优化汤姆seoseo cpaseo黑帽与白帽seo网络建设dx seo下载ajax 对seoSeo网站推广计划无锡seo营销站内搜索seo优化辽中区一站式抖音seo优化方案烟台360seo排名公司深圳哪家SEO优化公司好首页 标题 seo林seo佛山seo好找工作吗seo 最好的cms北京招聘seo学徒java seo香港主机seoseo好seoseo灌水区域名后缀 seo权重seo优化软件多少钱闽侯效果好的seo费用是多少seo蜘蛛精 破解版h标签 seo四川网站seoseo图片外链seo蜘蛛精怎么用烟台seo招聘seo搜索优化哪家靠谱seo优化几天学会桐城市seo推广公司东莞 seo排名seo公司seo推广优化报价营销型网站seo纵横seo助手免费领取金堂seo网络推广代理商哈尔滨seo关键词的优化seo搜索引擎优化怎么样seo实战密码.mobi北京专业整站优化seo价格飞驰seo网站备案 seosem seo招聘seo网络推广是什么意思爱情岛SEOseo研究中心sem58同城 seo青岛最好的seo外包百家号段视频SEO域名到期时间 seoseo黑冒谷歌seo关键字怎么玩学seo优化好不好禁推seoseo快速排名怎么样百度文库seo牛排系统seo百度推广找谁seo顾问seo优化培训学院seo年终总结友情链接对seoseo初学教程seo实战培训费用2015淘宝seoseo背心口碑好的网络seo优化软件长宁seo费用seo外链分析自学seo要学会什么推广冰锋seo谷歌seo网站推广小威seo

合作伙伴

天下标王

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统