基于LabVIEW的指纹验证系统开发和应用
2021-06-28刘柱
摘要:针对企业对生产产品测试设备的应用软件使用的安全性和追溯性提出了越来越高的要求,开发了一款基于检测操作人员指纹识别验证的软件系统。测试设备上位机主机电脑使用基于图形化、模块化编程新模式的虚拟仪器LabVIEW作为开发设计平台,并使用.NET动态链接库为间接访问接口技术,实现了对微型指纹采集器的集成和二次研发应用,以及结合数据库技术实现了指纹信息数据的存储、查询和调用功能。实验证明:指纹识别验证系统运行非常安全、可靠、稳定,可集成到生产测试设备上,符合企业的生产要求。
关键词:指纹识别;虚拟仪器;动态链接库;集成;指纹采集器;数据库
中图分类号:TP311.1 文献标识码:A
文章编号:1009-3044(2021)10-0246-03
Abstract: For the requirements of security and traceability of application software of test equipment of product in industry. The fingerprint of operator verification and validation system is designed and developed. The computer of test equipment uses LabVIEW which is virtual instrument based on graphical and modular development language platform and .NET dynamic link library interface technology. Realize the integration and acquisition in the second development with SDK using micro fingerprint acquisition instrument. And save、query and transfer the data with the database. The test result of verification and validation system shows that the system works security, reliable, steady and can be integrated to test equipment which meets the requirements with industry.
Key words: fingerprint verification; LabVIEW; dynamic link library; integration; fingerprint acquisition instrument; database
1 背景
目前,制造型企业在产品出厂之前都需要工程技术人员严格地按照国家相关标准和法律法规的要求,使用测试设备对产品相关参数指标进行测试以形成测试报告和结论,从而判断产品性能质量的好坏与否。但是,目前大部分工厂在使用测试设备上存在如下的现象:所使用的測试软件只有简单的登录密码或者无登录密码保护,甚至所有员工共用一个密码等现象。这样的安全性机制很难保证测试设备软件使用的安全性,人员的区分性,以及数据的可追溯性。针对该难题,本文以图形化、模块化的LabVIEW为测试设备软件开发设计平台,完成指纹采集注册和验证等功能。指纹是人类手指末端指腹上由凹凸的皮肤所形成的纹路,它的重复率极小,大约几亿甚至几十亿分之一,被称为“人体身份证”。结合图像采集、处理和大容量存储技术,以及先进的模式识别技术的发展和成功应用,能够很好地解决上述问题所带来的不安全性和难追溯性[1]。
2 系统总体方案设计
该指纹验证系统由微型指纹采集器、数据库和计算机等部分组成。指纹采集器采用的是熵基科技股份有限公司生产的型号为Live20R的光学指纹采集器,能够自动采集指纹图像信息数据,并通过标准USB2.0接口将数字化后图像信息数据上传到计算机或其他设备。数据库采用微软公司的SQL Server数据库,用于存储收集到的工程技术人员的指纹信息库和产品生产、测试过程中产生的数据。计算机采用安装Windows 10的戴尔T5820工作站,负责指纹采集和对比,数据存储和读取,组成结构如图1所示。
系统运行起来时,先由指纹采集器采集操作员的手指指纹并形成指纹图像,注意指纹保持清洁、完整,然后计算机对指纹特征进行提取、合并及完成指纹登记入库。若该指纹特征与计算机中数据库里面已登记的指纹特征相互匹配,则准许操作员进入系统进行测试和其他操作;若指纹特征和数据库中已存在的所有特殊均无法成功匹配,则限制该操作员进入系统并限制其进行产品测试等相关工作。因此,指纹验证系统的中心任务就是在计算机平台上调用指纹器,完成指纹采集和比对、特性提取和合并、图像采集和判断等功能[2]。
3 上位机软件设计
上位机软件采用的是美国National Instrument(下面文章中简称缩写:NI)公司推出简单易用、开发速度快、界面直观的图形化开发语言LabVIEW?(下面文章中简称缩写:G语言)。G语言旨在简化分布式系统在测试、测量和控制方面的设计,有助于加快产品研发过程。此外,NI提供了很多与G语言较兼容的配套硬件,可助力工程师快速开发和部署大中型测量和测试控制系统。虽然,G语言是一款功能强大的、图形化的、基于程序框图拖拉式编程语言,但也有部分无法实现的特殊接口功能。为了扩展和完善其边际功能,G语言支持了强大的外部程序调用接口以便充分利用其他文本开发语言的底层功能和优势,如支持C/C++、Python、C#以及MATLAB等接口。
3.1 指纹的采集和特征提取
Live20R型微型指纹采集器提供了可供第三方公司进行二次研发设计所用的软件开发库SDK。SDK提供了可以供多种语言调用指纹采集器的方式和方法,如C、C++、C#、Java、ActiveX等多种语言。本节利用G语言使用C#编译成的.NET DLL文件方法,实现对指纹图像的采集、特征提取、注册和对比等功能。
3.1.1 LabVIEW调用.NET DLL方法
在LabVIEW中使用DLL包括两种,分别是C/C++ DLL[3]和.NET DLL [4] 。其中,.NET DLL也被称作.NET程序集,在.NET程序开发过程中被大量地采用。.NET使用公共语言运行库CLR和.NET框架对DLL中封装的函数进行组织及管理。
在G语言中使用.NET程序集,首先定位到G语言中位于:程序框图->函数选板->互联接口->.NET功能选板,即可找到所有可用的功能vi函數。再次,使用.NET功能选板中所提供的构造器节点让.NET程序集中的类首先全部进行实例化操作。在此过程中,需要双击构造器节点在弹出选择.NET构造器对话框进行相应的选择操作。最后,将类实例化后的引用从构造器节点连线到属性节点和调用节点,即可通过G语言访问封装在.NET程序集中所有的方法和属性。
3.1.2 指纹注册过程
在G语言平台之上完成对.NET程序集的访问后就需要对指纹采集器采集上来的指纹进行注册和识别。其注册指纹的目的是要将以后允许通过认证的指纹信息记录在上位机的数据库当中,方便调用匹配对比。具体注册指纹的实现过程总体流程框图如图2所示。
首先使用构造器节点将zkfp2类进行实例化操作;然后使用调用节点的Init方法对指纹采集器进行初始化;再使用调用节点的Acquire Fingerprint方法获取指纹数据,并进行特征指纹模板提取,连续进行3次同样的指纹采集和特征提取操作;再通过调用节点的DBMerge方法对三次提取的特征进行合并;再通过调用节点的DBAdd方法对合并后的指纹特征进制注册fid号;最后通过调用节点的BlobBase64方法将一维指纹特征数组数据转换成字符串特征数据以方便在数据库中存储;G语言整个程序框图实现过程如图3所示。
3.1.3 指纹存储
将指纹特征字符串进行存储,使用的是LabSQL第三方工具包。首先使用ADO Connection Create建立数据库连接引用,然后使用ADO Connection Open打开数据库连接引用,再使用SQL Execute执行SQL语言指令,最后使用ADO Connection Close关掉数据库引用。其中SQL语言使用insert into语句将指纹编号fid、指纹名称NameID、指纹特征字符串数据BlobBase64通过SQL Execute函数存储到SQL Server数据库,方便调用和查询[5]。程序框图如图4所示。
3.1.4 指纹对比
首先使用构造器节点将zkfp2类进行实例化操作;然后使用调用节点的Init方法对指纹采集器进行初始化;再使用调用节点的Acquire Fingerprint方法获取指纹数据,并进行特征提取;再通过调用节点的DB Identify方法对已经提取的指纹特殊进行对比,并给出注册号ifd和匹配已经存在的指纹得分score;此外,还可以通过imgBuffer将指纹数据进行图像显示;程序框图如图5所示。
4 测量结果
为了验证已经开发还的指纹验证系统的性能,分别使用5个指纹,且每个指纹分别做了10次测试,一般情况下我们设置指纹score得分在90以上即认为指纹匹配成功,该系统数据测试结果如表格1所示。
5 结束语
本文使用国产的微型USB 2.0通用型指纹采集器,并利用数据库存储技术,结合虚拟仪器编程软件G语言设计和开发了具有高度安全性、适用性、稳定性的指纹验证识别登录系统。测试数据结果显示,指纹验证系统整体运行稳定,可以用于测试设备的指纹验证登录。
参考文献:
[1] 李明进.指纹识别技术现状及发展趋势研究 [J].无线互联科技,2020, 17(1):158-159.
[2] 刘畅,李晓东,毕云峰.基于LabVIEW虚拟仪器技术的指纹识别报警系统设计[J].现代电子技术,2012,35(4):187-191.
[3] 许剑,邹小芳,王建华.在LabVIEW中利用DLL实现数据采集[J].微计算机信息,2008,24(13):95-96
[4] 侯博,廖醒宇.基于LabVIEW环境下调用DLL实现仪器控制[J].电子世界,2015(21):96-98.
[5] 刘柱,徐保国,熊伟丽.PROFIBUS和LabVIEW技术在污水处理中的应用研究[J].仪表技术与传感器,2012(11):80-82.
【通联编辑:谢媛媛】