APP下载

指纹识别系统的设计与实现

2022-05-30许欢庆金力钱源吴静孙大勇

电脑知识与技术 2022年28期
关键词:指纹识别特征提取

许欢庆 金力 钱源 吴静 孙大勇

摘要:文章利用嵌入式技术结合指纹芯片开发出了一套高性能、低成本、低功耗的指纹识别系统,具有良好的实用性和市场前景。与此同时,该文探究了指纹识别的原理,给出了嵌入式指纹识别系统的硬件设计及软件实现方案,旨在为人工智能的普及化起到抛砖引玉的效果。

关键词:生物特征识别技术;指纹识别;特征提取;嵌入式技术

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2022)28-0086-04

当今时代,信息技术的进步极大程度地改變了人们的生活方式,提高了人们的生活质量。与此同时,个人信息和隐私安全的保护也显得尤为重要。传统的加密方式和身份识别技术(例如密码、口令、手势等)因易被伪造和盗用,已经难以满足当前网络安全的需求,生物特征识别技术开始逐步走进大众的视野,受到了前所未有的关注。

生物特征识别技术[1]是指通过采集每个人独特的生理特性(指纹、虹膜、面相、DNA等)和行为特征(步态、按键习惯等)来进行个人身份的鉴别和确认。而其中,指纹识别技术因为采集方便快捷,传感器设备相对价廉,且采集和运算技术相对成熟,存储和处理的特征模板的数据量少,读取、识别速度快,可靠性和稳定性也高,所以被广泛应用于各个领域,图1给出了生物识别技术的市场结构图。

1 系统总体设计

本文以STM32F103ZET6嵌入式开发板作为核心控制器件,指纹传感器采用AS608光学指纹模块,同时外接TFT电容触摸式彩屏方便显示和控制。整个识别系统大致可分为录入、匹配两大过程。在录入时,用户将指头腹部按压在光学采集模块外置的透明玻璃片上,传感器利用光学成像原理,采集到用户的指纹图像,获取图像后,核心板根据指纹识别算法提取出指纹纹理中的特征数据存入内置Flash的特征数据库中作为指纹模板,为后续的比对做准备。在录好指纹信息后,便可以开始匹配的工作。匹配过程同样是从传感器采集用户指纹图像开始,接着把图像送入数据缓存器中,核心板对图像进行分割、增强、二值化、细化等预处理操作后提取出特征数据,将所得特征数据与之前录入的特征数据库中的数据进行比对,从而完成匹配过程,如图2所示。

2 主要硬件设计

2.1 硬件整体设计

本系统的主要模块包括STM32F103ZET6核心板[2]、AS608指纹传感器、TFT可触摸彩色显示屏、串口通信模块、蜂鸣器与按键模块、电源模块、flash模块。系统的主要工作流程如下:

首先接通电源后,5V电压通过AMS1117-3.3正向低压降稳压芯片输出3.3V,给STM32F103ZET6芯片及AS608模块供电,上电后AS608模块开始工作,对按压到镜面上的指纹进行采集,并将采集到的指纹图像通过UART异步串口通信协议传输给MCU,MCU对图像进行预处理、特征提取[3-5]等运算,通过SPI总线协议对Flash进行读写,完成特征数据的录入或匹配工作,再通过SPI总线协议将结果传输到TFT彩屏上显示出来,同时可以通过手动触摸TFT彩屏上的虚拟按键完成进一步的操作,如图3所示。

2.2 核心板电路设计

本系统采用的主控板芯片为STM32F103ZET6,该芯片的配置十分强悍,并且还带外部总线,用来外扩SRAM和连接LCD等,通过FSMC驱动LCD,可以显著提高LCD的刷屏速度。除此之外,核心板还接入了Flash模块、20脚JTAG接口电路、RS232串口下载电路、复位电路、稳压模块等[6]。

复位电路采用低电平复位方式,电阻R3和电容C12构成了上电复位电路,当复位键RESET按下或重新上电时,会输出一个低电平信号使芯片复位,如图4所示。

图5所示的稳压电路采用AMS1117-3.3正向低压降稳压芯片输出3.3V电压,给核心板供电。

模式设置端口电路是由STM32通过BOOT0和BOOT1来设置启动方式:当想用串口下载代码时,需要将BOOT0置1、BOOT1置0;若想让核心板一按复位键就执行代码,则需要将BOOT0置0、BOOT1置0或1均可。各启动模式详情如表1所示。

图6所示为一键下载电路,BOOT0和RST信号取值由来自串口的DTR和RTS信号自动配置,无须手动切换状态,直接串口下载代码非常便捷。

Flash模块采用W25Q128芯片,芯片容量为16M字节。芯片支持电压 2.7V~3.6V,最大 SPI 时钟可以到80MHz,具体电路如图7所示。

3 主要软件设计

3.1 软件总体设计

本系统采用keil5软件对STM32F103ZET6进行编程,使用JTAG进行仿真调试和下载。主要实现的功能包括录入指纹、验证指纹、彩屏显示及触控操作等,总体执行流程如图8所示[7-8]。

3.2 识别模块软件设计

AS608模块与MCU采用UART通讯方式收发数据,MCU发出命令指令,识别模块反馈应答数据。在通讯协议及算法运行前,应通过指令设置好参数表的内容,并将其存于Flash的系统参数存储区,以后每次上电时,初始化程序都要首先将参数表装载到RAM中,并根据参数表内容初始化系统寄存器。参数表长128字节,各参数的属性、用途与设置内容如表2所示。

MCU与指纹模块间的通信数据必须按照一定的格式进行交换。在发送数据前,MCU需要先向指纹芯片发送相应的指令,指令需满足命令包格式,依次为2字节的包头、4字节的芯片地址、1字节的包标识、2字节的包长度、1字节的指令和2字节的校验和,包头内容为0xEF01,包标识内容为0x01。

在接收到指令后,指纹模块需要按照指令内容返回相应的数据给MCU,发送的数据需满足数据包格式,依次为2字节的包头、4字节的芯片地址、1字节的包标识、2字节的包长度、数据内容和2字节的校验和。其中包头内容与指令包一致,包标识为0x02,芯片地址的初始默认值为0xFFFFFFFF,可通过指令进行修改。完成数据发送后,模块将按照结束包格式发送结束信号给MCU,表示数据已全部发送,包标识为0x08。

指纹模块还需要向MCU发送应答包来反馈指令的执行情况。应答包的内容包括2字节的包头、4字节的芯片地址、1字节的包标识、2字节的包长度、1字节的确认码、返回参数和2字节的校验和,包标识为0x07,确认码是应答包的核心内容,表达了指令执行的结果。若指令成功执行,则确认码返回值为00H;若读写FLASH时出错,则确认码返回值为18H;若模块不能接受后续数据包,则确认码返回值为0EH;若端口操作失败,则确认碼返回值为1dH;若指纹库满,则确认码返回值为0x1F等。

在进行指纹录入时,首先读取AS608模块触摸感应状态引脚,由于感应到触摸时引脚输出为高电平,所以将状态感应引脚配置为下拉输出模式。

在完成状态感应的初始化后,开始按照指令包格式配置串口发送指令的包头、指令码、校验和等数据,以便于指令的发送。

接着判断串口中断接收的数据包中是否包含规定格式的应答包,如果包含,则返回数据的首地址,以便读取包头、指令码、确认码等信息,否则返回 NULL。

最后,通过图像获取函数PS_GetImage发送录入图像指令,指令码为0x01,根据探测手指的结果返回相应的确认码:若成功完成指纹图像录入,则确认码的返回值为00H;若接收数据包时出错,则确认码的返回值为01H;若并未检测到手指,则确认码的返回值为02H;若录入指纹图像失败,则确认码的返回值为03H。当成功完成录入时,所获取的图像将存放于图像缓冲区ImageBuffer中。

图像的特征生成通过PS_GenChar函数进行,发送指令码0x02对图像缓冲区ImageBuffer中的原始图像进行分析,并生成指纹特征文件存放于特征缓冲区CharBuffer1或CharBuffer2中,BufferID为特征缓冲区号,用来选定使用哪个缓冲区。然后接收片上系统反馈的应答包并根据应答包中所包含的确认码判断图像的特征提取情况:若成功生成特征,则确认码的返回值为00H;若接收数据包时出错,则确认码的返回值为01H;若指纹图像较为混乱而无法生成特征,则确认码的返回值为06H;若指纹图像正常,但因特征点太少而无法生成特征,则确认码的返回值为07H;若图像缓冲区内没有找到有效的原始图像而无法进行分析,则确认码的返回值为15H。

当成功生成指纹图像特征后,通过执行PS_Match函数来精确比对两个特征缓冲区CharBuffer1与CharBuffer2中两枚指纹的特征文件是否能够匹配。在完成包头和芯片地址的发送后,指令包发送指令码03H,命令SOC进行特征比对;接着根据对比结束后所反馈的应答包提取确认码来判断比对结果:若两个缓冲区的特征文件能成功完成匹配则返回00H,若接收数据包出错则返回01H,若两个缓冲区中的特征文件差异较大,不能成功完成匹配则返回08H。

4 结束语

随着信息技术的高速发展,人们越来越重视个人隐私的保护,对信息安全的要求逐步提升。生物特征识别技术很好地满足了人们的需求,成为当下的研究热点。本文在探究指纹识别原理的基础上,给出了指纹识别中图像预处理的四个关键步骤:图像分割、图像增强、二值化、细化的运算过程及指纹图像特征提取与匹配的主要方案。利用上述研究成果,安徽中医药大学学生参加了全国大学生电子设计竞赛并获得省级一等奖,随着本研究继续深入地开展,旨在为人工智能的普及化做出力所能及的贡献。

参考文献:

[1] 郝海燕,龚杰.基于单片机的指纹考勤系统设计[J].内江科技,2021,42(7):47-48.

[2] 林佳智,常凤筠,朱文斌,等.基于stm32系统与物联网的AI多功能门禁系统研究[J].科学技术创新,2021(13):88-89.

[3] 邢月秀.无线设备指纹的提取与识别方法研究[D].南京:东南大学,2021.

[4] 李乃坤,李乃宁.简易指纹考勤机的设计原理[J].电子世界,2020(17):99-102.

[5] 朱晓琴.基于单片机的图书馆电子阅览指纹识别系统设计[J].自动化与仪器仪表,2021(11):111-115.

[6] 罗博威.基于单片机的指纹密码锁的设计[J].集成电路应用,2020,37(4):41-43.

[7] 雷求胜.Gabor滤波的指纹图像增强的应用研究[J].单片机与嵌入式系统应用,2021,21(10):32-35.

[8] 艾马德.基于心电图和指纹的多生物识别方法[D].哈尔滨:哈尔滨工业大学,2019.

【通联编辑:唐一东】

猜你喜欢

指纹识别特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于Daubechies(dbN)的飞行器音频特征提取
基于单片机指纹识别电子寄存柜设计
指纹识别
一种基于LBP 特征提取和稀疏表示的肝病识别算法
指纹识别技术综述
基于DSP的直线特征提取算法
指纹挂锁
基于大容量指纹识别的实时身份认证系统
基于线阵CCD的指纹识别实验