摘要:針對(duì)企業(yè)對(duì)生產(chǎn)產(chǎn)品測(cè)試設(shè)備的應(yīng)用軟件使用的安全性和追溯性提出了越來(lái)越高的要求,開發(fā)了一款基于檢測(cè)操作人員指紋識(shí)別驗(yàn)證的軟件系統(tǒng)。測(cè)試設(shè)備上位機(jī)主機(jī)電腦使用基于圖形化、模塊化編程新模式的虛擬儀器LabVIEW作為開發(fā)設(shè)計(jì)平臺(tái),并使用.NET動(dòng)態(tài)鏈接庫(kù)為間接訪問(wèn)接口技術(shù),實(shí)現(xiàn)了對(duì)微型指紋采集器的集成和二次研發(fā)應(yīng)用,以及結(jié)合數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)了指紋信息數(shù)據(jù)的存儲(chǔ)、查詢和調(diào)用功能。實(shí)驗(yàn)證明:指紋識(shí)別驗(yàn)證系統(tǒng)運(yùn)行非常安全、可靠、穩(wěn)定,可集成到生產(chǎn)測(cè)試設(shè)備上,符合企業(yè)的生產(chǎn)要求。
關(guān)鍵詞:指紋識(shí)別;虛擬儀器;動(dòng)態(tài)鏈接庫(kù);集成;指紋采集器;數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311.1? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):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 背景
目前,制造型企業(yè)在產(chǎn)品出廠之前都需要工程技術(shù)人員嚴(yán)格地按照國(guó)家相關(guān)標(biāo)準(zhǔn)和法律法規(guī)的要求,使用測(cè)試設(shè)備對(duì)產(chǎn)品相關(guān)參數(shù)指標(biāo)進(jìn)行測(cè)試以形成測(cè)試報(bào)告和結(jié)論,從而判斷產(chǎn)品性能質(zhì)量的好壞與否。但是,目前大部分工廠在使用測(cè)試設(shè)備上存在如下的現(xiàn)象:所使用的測(cè)試軟件只有簡(jiǎn)單的登錄密碼或者無(wú)登錄密碼保護(hù),甚至所有員工共用一個(gè)密碼等現(xiàn)象。這樣的安全性機(jī)制很難保證測(cè)試設(shè)備軟件使用的安全性,人員的區(qū)分性,以及數(shù)據(jù)的可追溯性。針對(duì)該難題,本文以圖形化、模塊化的LabVIEW為測(cè)試設(shè)備軟件開發(fā)設(shè)計(jì)平臺(tái),完成指紋采集注冊(cè)和驗(yàn)證等功能。指紋是人類手指末端指腹上由凹凸的皮膚所形成的紋路,它的重復(fù)率極小,大約幾億甚至幾十億分之一,被稱為“人體身份證”。結(jié)合圖像采集、處理和大容量存儲(chǔ)技術(shù),以及先進(jìn)的模式識(shí)別技術(shù)的發(fā)展和成功應(yīng)用,能夠很好地解決上述問(wèn)題所帶來(lái)的不安全性和難追溯性[1]。
2 系統(tǒng)總體方案設(shè)計(jì)
該指紋驗(yàn)證系統(tǒng)由微型指紋采集器、數(shù)據(jù)庫(kù)和計(jì)算機(jī)等部分組成。指紋采集器采用的是熵基科技股份有限公司生產(chǎn)的型號(hào)為L(zhǎng)ive20R的光學(xué)指紋采集器,能夠自動(dòng)采集指紋圖像信息數(shù)據(jù),并通過(guò)標(biāo)準(zhǔn)USB2.0接口將數(shù)字化后圖像信息數(shù)據(jù)上傳到計(jì)算機(jī)或其他設(shè)備。數(shù)據(jù)庫(kù)采用微軟公司的SQL Server數(shù)據(jù)庫(kù),用于存儲(chǔ)收集到的工程技術(shù)人員的指紋信息庫(kù)和產(chǎn)品生產(chǎn)、測(cè)試過(guò)程中產(chǎn)生的數(shù)據(jù)。計(jì)算機(jī)采用安裝Windows 10的戴爾T5820工作站,負(fù)責(zé)指紋采集和對(duì)比,數(shù)據(jù)存儲(chǔ)和讀取,組成結(jié)構(gòu)如圖1所示。
系統(tǒng)運(yùn)行起來(lái)時(shí),先由指紋采集器采集操作員的手指指紋并形成指紋圖像,注意指紋保持清潔、完整,然后計(jì)算機(jī)對(duì)指紋特征進(jìn)行提取、合并及完成指紋登記入庫(kù)。若該指紋特征與計(jì)算機(jī)中數(shù)據(jù)庫(kù)里面已登記的指紋特征相互匹配,則準(zhǔn)許操作員進(jìn)入系統(tǒng)進(jìn)行測(cè)試和其他操作;若指紋特征和數(shù)據(jù)庫(kù)中已存在的所有特殊均無(wú)法成功匹配,則限制該操作員進(jìn)入系統(tǒng)并限制其進(jìn)行產(chǎn)品測(cè)試等相關(guān)工作。因此,指紋驗(yàn)證系統(tǒng)的中心任務(wù)就是在計(jì)算機(jī)平臺(tái)上調(diào)用指紋器,完成指紋采集和比對(duì)、特性提取和合并、圖像采集和判斷等功能[2]。
3 上位機(jī)軟件設(shè)計(jì)
上位機(jī)軟件采用的是美國(guó)National Instrument(下面文章中簡(jiǎn)稱縮寫:NI)公司推出簡(jiǎn)單易用、開發(fā)速度快、界面直觀的圖形化開發(fā)語(yǔ)言LabVIEW?(下面文章中簡(jiǎn)稱縮寫:G語(yǔ)言)。G語(yǔ)言旨在簡(jiǎn)化分布式系統(tǒng)在測(cè)試、測(cè)量和控制方面的設(shè)計(jì),有助于加快產(chǎn)品研發(fā)過(guò)程。此外,NI提供了很多與G語(yǔ)言較兼容的配套硬件,可助力工程師快速開發(fā)和部署大中型測(cè)量和測(cè)試控制系統(tǒng)。雖然,G語(yǔ)言是一款功能強(qiáng)大的、圖形化的、基于程序框圖拖拉式編程語(yǔ)言,但也有部分無(wú)法實(shí)現(xiàn)的特殊接口功能。為了擴(kuò)展和完善其邊際功能,G語(yǔ)言支持了強(qiáng)大的外部程序調(diào)用接口以便充分利用其他文本開發(fā)語(yǔ)言的底層功能和優(yōu)勢(shì),如支持C/C++、Python、C#以及MATLAB等接口。
3.1 指紋的采集和特征提取
Live20R型微型指紋采集器提供了可供第三方公司進(jìn)行二次研發(fā)設(shè)計(jì)所用的軟件開發(fā)庫(kù)SDK。SDK提供了可以供多種語(yǔ)言調(diào)用指紋采集器的方式和方法,如C、C++、C#、Java、ActiveX等多種語(yǔ)言。本節(jié)利用G語(yǔ)言使用C#編譯成的.NET DLL文件方法,實(shí)現(xiàn)對(duì)指紋圖像的采集、特征提取、注冊(cè)和對(duì)比等功能。
3.1.1 LabVIEW調(diào)用.NET DLL方法
在LabVIEW中使用DLL包括兩種,分別是C/C++ DLL[3]和.NET DLL [4] 。其中,.NET DLL也被稱作.NET程序集,在.NET程序開發(fā)過(guò)程中被大量地采用。.NET使用公共語(yǔ)言運(yùn)行庫(kù)CLR和.NET框架對(duì)DLL中封裝的函數(shù)進(jìn)行組織及管理。
在G語(yǔ)言中使用.NET程序集,首先定位到G語(yǔ)言中位于:程序框圖->函數(shù)選板->互聯(lián)接口->.NET功能選板,即可找到所有可用的功能vi函數(shù)。再次,使用.NET功能選板中所提供的構(gòu)造器節(jié)點(diǎn)讓.NET程序集中的類首先全部進(jìn)行實(shí)例化操作。在此過(guò)程中,需要雙擊構(gòu)造器節(jié)點(diǎn)在彈出選擇.NET構(gòu)造器對(duì)話框進(jìn)行相應(yīng)的選擇操作。最后,將類實(shí)例化后的引用從構(gòu)造器節(jié)點(diǎn)連線到屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn),即可通過(guò)G語(yǔ)言訪問(wèn)封裝在.NET程序集中所有的方法和屬性。
3.1.2 指紋注冊(cè)過(guò)程
在G語(yǔ)言平臺(tái)之上完成對(duì).NET程序集的訪問(wèn)后就需要對(duì)指紋采集器采集上來(lái)的指紋進(jìn)行注冊(cè)和識(shí)別。其注冊(cè)指紋的目的是要將以后允許通過(guò)認(rèn)證的指紋信息記錄在上位機(jī)的數(shù)據(jù)庫(kù)當(dāng)中,方便調(diào)用匹配對(duì)比。具體注冊(cè)指紋的實(shí)現(xiàn)過(guò)程總體流程框圖如圖2所示。
首先使用構(gòu)造器節(jié)點(diǎn)將zkfp2類進(jìn)行實(shí)例化操作;然后使用調(diào)用節(jié)點(diǎn)的Init方法對(duì)指紋采集器進(jìn)行初始化;再使用調(diào)用節(jié)點(diǎn)的Acquire Fingerprint方法獲取指紋數(shù)據(jù),并進(jìn)行特征指紋模板提取,連續(xù)進(jìn)行3次同樣的指紋采集和特征提取操作;再通過(guò)調(diào)用節(jié)點(diǎn)的DBMerge方法對(duì)三次提取的特征進(jìn)行合并;再通過(guò)調(diào)用節(jié)點(diǎn)的DBAdd方法對(duì)合并后的指紋特征進(jìn)制注冊(cè)fid號(hào);最后通過(guò)調(diào)用節(jié)點(diǎn)的BlobBase64方法將一維指紋特征數(shù)組數(shù)據(jù)轉(zhuǎn)換成字符串特征數(shù)據(jù)以方便在數(shù)據(jù)庫(kù)中存儲(chǔ);G語(yǔ)言整個(gè)程序框圖實(shí)現(xiàn)過(guò)程如圖3所示。
3.1.3 指紋存儲(chǔ)
將指紋特征字符串進(jìn)行存儲(chǔ),使用的是LabSQL第三方工具包。首先使用ADO Connection Create建立數(shù)據(jù)庫(kù)連接引用,然后使用ADO Connection Open打開數(shù)據(jù)庫(kù)連接引用,再使用SQL Execute執(zhí)行SQL語(yǔ)言指令,最后使用ADO Connection Close關(guān)掉數(shù)據(jù)庫(kù)引用。其中SQL語(yǔ)言使用insert into語(yǔ)句將指紋編號(hào)fid、指紋名稱NameID、指紋特征字符串?dāng)?shù)據(jù)BlobBase64通過(guò)SQL Execute函數(shù)存儲(chǔ)到SQL Server數(shù)據(jù)庫(kù),方便調(diào)用和查詢[5]。程序框圖如圖4所示。
3.1.4 指紋對(duì)比
首先使用構(gòu)造器節(jié)點(diǎn)將zkfp2類進(jìn)行實(shí)例化操作;然后使用調(diào)用節(jié)點(diǎn)的Init方法對(duì)指紋采集器進(jìn)行初始化;再使用調(diào)用節(jié)點(diǎn)的Acquire Fingerprint方法獲取指紋數(shù)據(jù),并進(jìn)行特征提取;再通過(guò)調(diào)用節(jié)點(diǎn)的DB Identify方法對(duì)已經(jīng)提取的指紋特殊進(jìn)行對(duì)比,并給出注冊(cè)號(hào)ifd和匹配已經(jīng)存在的指紋得分score;此外,還可以通過(guò)imgBuffer將指紋數(shù)據(jù)進(jìn)行圖像顯示;程序框圖如圖5所示。
4 測(cè)量結(jié)果
為了驗(yàn)證已經(jīng)開發(fā)還的指紋驗(yàn)證系統(tǒng)的性能,分別使用5個(gè)指紋,且每個(gè)指紋分別做了10次測(cè)試,一般情況下我們?cè)O(shè)置指紋score得分在90以上即認(rèn)為指紋匹配成功,該系統(tǒng)數(shù)據(jù)測(cè)試結(jié)果如表格1所示。
5 結(jié)束語(yǔ)
本文使用國(guó)產(chǎn)的微型USB 2.0通用型指紋采集器,并利用數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù),結(jié)合虛擬儀器編程軟件G語(yǔ)言設(shè)計(jì)和開發(fā)了具有高度安全性、適用性、穩(wěn)定性的指紋驗(yàn)證識(shí)別登錄系統(tǒng)。測(cè)試數(shù)據(jù)結(jié)果顯示,指紋驗(yàn)證系統(tǒng)整體運(yùn)行穩(wěn)定,可以用于測(cè)試設(shè)備的指紋驗(yàn)證登錄。
參考文獻(xiàn):
[1] 李明進(jìn).指紋識(shí)別技術(shù)現(xiàn)狀及發(fā)展趨勢(shì)研究 [J].無(wú)線互聯(lián)科技,2020, 17(1):158-159.
[2] 劉暢,李曉東,畢云峰.基于LabVIEW虛擬儀器技術(shù)的指紋識(shí)別報(bào)警系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(4):187-191.
[3] 許劍,鄒小芳,王建華.在LabVIEW中利用DLL實(shí)現(xiàn)數(shù)據(jù)采集[J].微計(jì)算機(jī)信息,2008,24(13):95-96
[4] 侯博,廖醒宇.基于LabVIEW環(huán)境下調(diào)用DLL實(shí)現(xiàn)儀器控制[J].電子世界,2015(21):96-98.
[5] 劉柱,徐保國(guó),熊偉麗.PROFIBUS和LabVIEW技術(shù)在污水處理中的應(yīng)用研究[J].儀表技術(shù)與傳感器,2012(11):80-82.
【通聯(lián)編輯:謝媛媛】