未来智讯 > 人脸语音识别论文 > 联网型嵌入式系统的指纹识别算法研讨

联网型嵌入式系统的指纹识别算法研讨

发布时间:2018-11-21 01:06:05 文章来源:未来智讯    
    联网型嵌入式系统的指纹识别算法研讨作者: 李冬   摘 要: 通过研讨指纹图像预处理算法,提出了基于指纹灰度分类的图像预处理算法,设计了指纹图像匹配算法,其削减了计算复杂度,提高了匹配速度,并设计了一套联网型指纹识别系统。通过对指纹识别系统软、硬件的设计和开发解决了现有系统网络方面的不足。
  关键词: 嵌入式系统; 指纹识别; 方向场; 图像预处理
  中图分类号: TN919?34; TM417 文献标识码: A 文章编号: 1004?373X(2016)13?0156?04
  Abstract: The fingerprint image preprocessing algorithm is studied to propose the image preprocessing algorithm based on fingerprint grayscale classification and fingerprint image matching algorithm based on block orientation field, which can reduce the computation complexity and improve the matching speed. A set networking fingerprint identification system was designed. The insufficient of the available system network was solved by means of the design and development of the fingerprint identification system hardware and software.
  Keywords: embedded system; fingerprint identification; direction field; image preprocessing
  0 引 言
  传统的身份识别技能主要包括基于实物的身份识别技能和基于知识的身份识别技能,基于实物的识别技能主要是借助于某一种或某几种实物来实现身份的认证;基于知识的身份识别技能主要是借助于某些特征信息来实现身份的认证。然而这两种身份识别技能都存在一定的缺陷:对于基于实物的身份认证方式来说,这些实物容易丢失、损坏或伪造;对于基于知识的身份认证方式存在信息选择的问题,复杂信息不易记忆,大略信息可靠性差。
  生物识别技能中,指纹识别技能具有采集容易、平安性高、易存储、稳定性好、性价比高等优点,因此近年来得到了快速发展。现阶段指纹识别技能分为基于PC的指纹识别技能和基于嵌入式的指纹识别技能。基于PC的指纹识别技能在理论上与应用上都对照成熟,但其存在价格较贵、功耗高、移动本能差等缺点,而嵌入式指纹识别技能则提供了良好的解决方案。
  1 联网型指纹识别系统的整体设计
  1.1 整体方案
  联网型指纹识别系统由上位机和客户端两局部组成,其中上位机局部包括PC和服务器,PC进行信息的管理,服务器进行信息的存储;客户端局部为一个小型的嵌入式指纹识别系统,主要进行指纹的增删、处理、对比等操作,同时实现与上位机的交互功能。联合实验室现有条件,本文进行了联网型指纹门禁系统的设计。该门禁系统整体框架如图1所示。
  PC为抑制中心,与客户端通讯实现对客户端的管理;同时对PC采集和客户端上传的用户信息进行管理,实现对数据库的读/写操作,读取、保存需要的信息。服务器为存储中心,主要进行海量信息的存储,其中内容包括用户信息、指纹信息、房间信息以及开门记录等。门锁端即客户端,为联网系统的终端,是一个小型的嵌入式系统,主要实现指纹信息的采集、处理等功能,同时实现与上位机的通讯功能。为了拓展系统的使用范围,选择TCP/IP方式进行信息的传输,则相应的中继器即为路由器。
  1.2 上位机设计
  (1) 应用软件开发。对PC功能进行分析后,将该局部的开发分为以下几个模块:人员信息管理模块、门锁通讯模块和开门记录查询模块。人员管理模板主要用于实现人员信息的管理、显示功能,同时实现用户信息与指纹信息、密码信息的关联功能。门锁通讯模块实现了PC与客户端的通讯功能,同时实现对门锁的实时监控功能。开门记录查询模块实现了开关门记录的查询功能,实现记录信息的存储和打印功能。
  (2) 数据库设计。数据库作为一个信息存储仓库,主要用于实现对信息的有序管理功能,在系统中联合系统需求,主要使用数据库存储以下信息:用户的基本信息、指纹信息、密码信息,房间的基本信息以及对应的IP地址信息,开门记录等信息。
  1.3 客户端设计
  联合系统联网型应用的需求,选择以ARM芯片作为核心芯片进行相应系统的开发。针对ARM系统计算能力相对较差的问题,能够通过选择高主频的芯片对算法进行优化改进加以克服。联合系统应用的需求,选择嵌入式Linux系统作为本文的软件平台。
  2 指纹识别系统硬件设计
  2.1 系统整体设计
  联合系统的应用需求,在嵌入式系统基本设计环节之外,投入了指纹采集模块、键盘电路模块和网络模块。整个系统的硬件框图如图2所示。
  在图2中,ARM芯片为整个系统的运算单元和抑制核心;指纹采集模块用于实现指纹图像的采集;存储模块用来存储系统程序、应用程序以及用户信息;键盘模块用于实现功能的选择和密码的输入功能;LCD模块用于提示信息的输出;电插锁模块用于模拟门锁的开关功能;网络模块用于实现与上位机的交互功能等。
  2.2 系统硬件设计
  选择S3C2440A作为核心处理芯片,DM9000A作为网络抑制芯片进行硬件的设计。   电源电路设计:外部输入电压为5 V,S3C2440A芯片的内核事务电压为1.3 V,存储器电压为3.3 V,接口电压为3.3 V,因此需要设计相应的电压转换电路。在系统中选用LM1117作为核心转换芯片。选用LM1117?ADJ作为核心电压的转换芯片,选用LM1117?CT3.3作为接口电压和存储电压的转换芯片。
  网络局部设计:以DM9000A作为核心芯片设计网络局部的接口电路,使用HR911105A作为网络的接口。DM9000A是一个带有通用处理器接口的完全集成的单芯片快速以太网抑制器,集成有一个10/100M的自适应收发器和一个4 KB的双字SRAM。
  LCD与触摸屏电路设计:选用WXCAT35?TG3作为显示设备。WXCAT35?TG3是一个投射型TFT?LCD模块,它包含一个TFT?LCD面板、一个驱动电路,、一个背光单元和一个4线模拟电阻式触摸屏。它的面板尺寸为3.5英寸,分别力为320×240,广泛应用于便携式设备。
  指纹识别模块:选取实验室已有的指纹识别模块ZAZ?010作为指纹采集模块。ZAZ?010系列指纹识别模块以高速DSP处理器为核心,配有光学指纹传感器,具有指纹录入,图像处理,指纹匹配、搜索和模板存储等功能。
  电插锁模块:系统选用电插锁模块LS?204,其电源供给为DC 12 V,启动状态电流为960 mA,平凡状态为130 mA,该锁可根据用户需要设定上锁延迟时间为0 s,3 s,6 s和9 s。
  3 指纹识别系统软件设计
  3.1 嵌入式Linux系统开发
  (1) 建立交叉编译环境
  为建立交叉编译环境最初需要安装交叉编译工具,在系统开发过程中,选择现有的cross?3.4.1.tar.bz2作为编译工具。建立交叉编译环境的过程如下:最初在PC机Linux系统的/usr/local目录下建立arm目录,将cross?3.4.1.tar.bz2拷贝至该目录下;然后进入该目录,执行下令“tarjxvfcross?3.4.1.tar.bz2”进行解压,最终编辑/etc/bashrc文件,增加该交叉编译器的路径。
  (2) 编译Bootloader
  Bootloader是在操作系统内核或用户应用程序运行之前的一段启动硬件的指引程序,在绝大局部系统中,整个系统的加载启动任务完全由Bootloader完成。常见的Bootloader包括Redboot,ARMboot,U?Boot,Bootldr等,系统选择U?Boot作为系统的Bootloader。
  (3) Linux内核的选择、配置和编译
  在系统中选用Linux?2.6.12作为核心,该版本运行稳定、内核精简,目前使用较为广泛。在开发过程中,最初下载Linux?2.6.12源码,使用tar下令进行解压;然后进入内核源码,找到“Makefile”文件,添加对ARM的支持,将“ARCH?=(SUBARCH) ”和“CROSS_COMPILE?=”分辨批改为“ARCH=arm”和“CROSS_COMPILE=arm?linux?”;接下来批改输入时钟,联合本系统所使用的12 MHz晶振,将时钟的频率由16.934 MHz改为12 MHz;再次,对系统内核进行配置,添加对系统硬件的支持,主要包括:CPU、串口、LCD、键盘、文件系统等。最终通过输入下令makezImage实现内核的完全编译,编译结束后,可在arch/arm/boot目录下得到Linux内核压缩映像zImage,使用该映像即可实现系统的指引。
  (4) 文件系统的构建
  编译内核之后,系统仅仅能实现正常的指引,为保证系统的正常运行,还需要添加相应的文件系统。在系统中,联合需求,使用Yaffs2文件系统。搭建Yaffs2文件系统步骤如下:
  获取Yaffs源码,在内核和配置单中添加对Yaffs的支持;获取BusyBox源码,批改并配置BusyBox进行编译安装;使用_install中的文件,构建文件系统框架;使用mkyaffs2image工具制作文件系统。
  3.2 驱动开发
  驱动程序是一种能够使操作系统和设备通讯的特殊程序,非常于硬件的接口,在系统开发过程中具有重要意义,Linux中85%的源代码都是驱动程序。在本系统中,为满足联网型应用的要求,需进行网络驱动程序的开发,该过程可分为网卡驱动程序的编码与配置两个局部。
  (1) 网卡驱动程序编码
  网卡驱动程序的编码需联合硬件原理图进行,在本系统中选用的网络芯片为DM9000A,下面针对其进行具体的设计,具体步骤如下:
  ① Linux?2.6.12内核不支持DM9000A芯片,因此需先获得DM9000A驱动的源码,从Linux?2.6.20内核的driver/net/拷贝dm9000.c和dm9000.h到Linux?2.6.12相应目录下,同时拷贝include/linux下的dm9000.h到相应位置。
  ② 批改Linux?2.6.12内核arch/arm/ mach?s3c2410/devs.c文件使其支持DM9000A网卡。最初,添加头文件:#include;然后添加对网卡设备的支持,因为原理图中的CS管脚接ARM芯片的NGCS4管脚,所以该处的起始地址为0x20000300,停止线INT接EINT7,CMD接ADDR2。
  ③ 批改arch/arm/mach?s3c2410/devs.h文件,导出DM9000A设备。
  ④ 批改arch/arm/mach?s3c2410/mach?smdk 2410.c文件,添加DM9000A。
  ⑤ 批改driver/net/dm9000.c文件,设置停止模式。   经过以上过程即完成了对网络驱动程序的编码,接下来需要进行驱动程序的配置。
  (2) 网卡驱动程序配置
  最初,批改文件drivers/net/Kconfig,添加DM9000A驱动选项;其次,批改文件drivers/net/Makefile,添加DM9000A的编译选项;再次,在内核中添加对网络模块的支持,该过程分两步完成:一是配置网络协议支持,投入对TCP/IP协议的支持;二是配置网络设备的支持,投入对网络芯片DM9000A的支持;最终,对内核进行编译,生成新的内核映像文件,通过该过程就完成了对网络模块驱动程序的设计。
  3.3 应用开发
  完成了嵌入式Linux的系统开发和驱动开发,接下来需要进行嵌入式的应用开发。嵌入式Linux应用开发是指联合系统应用需求进行软件的具体设计。在该过程中涉及应用程序设计、数据库开发、GUI设计和网络程序设计等内容[1]。
  (1) 应用程序的设计
  应用程序设计便是对系统进行功能分析,画出相应的流程图并进行编码实现的过程。在本系统中,主要实现指纹信息的增加、匹配和删除功能。因此在开发过程中将系统分为三种模式:指纹增加模式开发、指纹匹配模式开发、指纹删除模式开发等。
  指纹增加模式主要是实现指纹数据库中指纹数据的添加功能,它是指纹匹配和删除的先行条件。联合指纹采集模块的通讯协议,其流程图如图3所示。
  指纹匹配模式主要实现指纹的匹配,进行用户身份的判别。在该模式下,最初进行用户指纹信息的采集和处理,然后搜索指纹特征库,查找相匹配的指纹,进而做出相应的判断。指纹匹配模式流程图,如图4所示。
  指纹删除模式主要是指删除过期的指纹信息,以保证该系统的平安可靠。在该模式中,主要是通过ID号进行身份的验证,进而实现用户指纹模板的删除,联合指纹采集模块具体的通讯协议,其流程图如图5所示。
  (2) 数据库设计
  需要对采集到的指纹模板进行存储,因此引入了数据库,考虑到嵌入式系统资源的限制,本系统中使用SQLite。在数据库的使用过程中,考虑到系统的要求需要建以下几个表格:user,finger,finger_open,passwd_open。其中user表格用来存储用户的信息;finger用来记录对应的指纹信息;finger_open用来记录指纹开门的信息;passwd_open用来记录密码开门的信息。
  (3) 网络程序设计
  在网络应用程序设计中,广泛使用TCP/IP参考模型,在本系统中,为保证信息平安可靠的传输,选用TCP协议作为TCP/IP通讯方式的核心协议。
  经过以上步骤即完成了前期的筹备事务,接下来需要进行网络程序具体的设计。该局部作为联网型系统的客户端,选取如下步骤进行程序的设计:最初,用Socket()函数创建一个Socket套接字;其次,设置服务器端的IP地址和端口等属性;再次,用Connect()函数连接服务器;接下来进行数据的收发;最终,断开连接。相应步骤如图6所示。
  4 结 论
  本文旨在对基于嵌入式系统的指纹识别技能进行相关研讨。研讨内容主要包括两个方面:一是对指纹识别算法进行研讨,联合嵌入式系统的特点,对指纹图像预处理算法、特征提取算法和特征匹配算法进行优化改进,以提高指纹图像处理的鲁棒性,加快特征匹配的速度;二是对指纹识别技能的应用展开研讨,设计一套联网型嵌入式指纹识别系统,满足如今日益普遍的联网型应用需求。
  参考文献
  [1] 葛明涛,关景新,董素鸽.基于双目视角的嵌入式3D指纹识别系统设计[J].现代电子技能,2014,37(18):155?158.
  [2] 刘增明,张文山.嵌入式软件浮点运算精度分析[J].航空兵器,2010(3):42?45.
  [3] 罗西平,田捷.自动指纹识别中的图像增强和细节匹配算法[J].软件学报,2010,13(5):946?956.
  [4] 王业琳,宁新宝,尹义龙.指纹图像细化算法研讨[J].南京大学学报(自然科学版),2013,39(4):468?475.
  [5] 林建民.嵌入式操作系统技能发展趋势[J].计算机工程,2011,27(10):1?4.
  [6] 张微,张华春.U?Boot在S3C2440上的移植方法[J].电子器件,2007,30(4):1423?1426.
  [7] 张娟,张雪兰.基于嵌入式Linux的GUI应用程序的实现[J].计算机应用,2013,23(4):115?117.
  [8] 黎妹红,张其善.一种基于智能卡的指纹认证方案[J].北京航空航天大学学报,2011,31(1):74?77.
  [9] 林建民.嵌入式操作系统技能发展趋势[J].计算机工程,2011,27(10):1?4.
  [10] 王�红,朱勇,谭铁牛.基于虹膜识别的身份辨别[J].自动化学报,2012,28(1):1?10.
转载请注明来源。原文地址:https://www.7428.cn/page/2018/1121/44888/
 与本篇相关的热门内容: