基于Linux系统的指纹识别门禁系统
指纹作为人体的身体特征,具有唯一性、稳定性和不易盗用等特点。随着指纹识别理论逐渐成熟、指纹采集工具这一难题得到解决,指纹识别已经成为目前最广泛应用的生物识别之一,逐渐取代了传统的认证识别方式,广泛应用于金融、公安、证券、门禁系统等领域。指纹识别技术的研究已经成为当前建筑智能化研究的热点。但是对于在Linux 系统下的由FPI 指纹识别模块、Raspberry Pi 主控模块、AVR 模块组成的,采用无线通讯方式定时向用户发送邮件来监控门锁状态的指纹识别系统的研究至今未见诸报端。本文在不改变现有门锁结构的前提下,通过设计编程,开发了一套基于指纹识别的门禁系统,定时检测门锁状态并向用户发送报警邮件,大大增强了门锁的安全性。 1 指纹识别的技术原理 指纹识别的技术原理是从指纹数据库中查找与采集指纹是否匹配的指纹数据,达到通过辨别身份实现开关门锁的目的。其基本原理如图1 所示,指纹识别系统由指纹图像采集、指纹图像预处理、指纹特征提取、指纹特征匹配、特征数据库等几部分组成。指纹图像预处理采用了Gabor 滤波的方法进行灰度图滤波去噪,通过将图像滤波后,对其进行二值化处理使各种噪声得到滤除或者修正。指纹特征提取是建立在对该点8 邻点统计分析基础之上,特征点通过计算CN(Croosing Number)得到。指纹特征匹配的过程是计算两幅指纹相似程度的过程,在做指纹匹配前必须把不同的指纹图像校准,找到输入特征点集和模板特征点集之间的最佳变换。 指纹识别系统大体上可分为两个内容:指纹注册和指纹比对。指纹注册主要包括指纹采集、指纹图像预处理、特征点提取和特征值存储。指纹比对的前3 步操作与指纹注册完全相同,在特征点提取后,生成的指纹特征值将与存储在指纹特征数据库的特征值作特征匹配,最后输出匹配结果。
图1 指纹识别技术的基本原理 2 指纹识别系统硬件开发 指纹识别系统主要由FPI 指纹识别模块、Raspberry Pi 主控模块、AVR 模块3 部分组成,该硬件结构如图2 所示。三方通讯实现用户的指纹录入和匹配,以及门锁的开关,并且以发送邮件的方式来监控门锁的状态。FPI 指纹识别模块强大的图像处理功能对指纹识别非常灵敏,及时处理接收到的指纹信息,并与Raspberry Pi 通讯;Raspberry Pi 模块,一方面控制AVR 去检测门的开关状态以及开关门锁,另一方面控制FPI 指纹录入和匹配,并在Raspberry Pi 上建立数据库记录用户信息;控制器AVR 反馈给Raspberry Pi 门的开关状态,并且控制电机来开关门锁,加强了在硬件方面的拓展,可通过硬件在更多方面对门进行监测。此外,使用了无线通讯模块,避免了过多布线可能对原本门锁结构的破坏,使该系统的硬件组成方便快速。
图2 系统的硬件结构 2.1 指纹识别模块 指纹模块基于TI 公司的TMS320VC5509 高级数字DSP处理器为主核,芯片结构框图如图3 所示。高精光学采集头(TFS-D0307),高速、稳定; 标准UART 接口通讯,标准8 字节通讯协议, FPI 完成处理接收到的指纹信息, 并与Raspberry Pi主控模块通讯的工作。
图3 指纹识别芯片FPI 2.1.1 图像采集芯片 FPI 芯片上集成了图像采集芯片FPC1011F,FPC1011F指纹传感器是电容式半导体传感器件,该电容式指纹传感器利用了反射式探测技术,属于平面式采集指纹传感。相比传统的电容式传感器,它采集的是指头的真皮层,且对干湿手指有良好的适用性。FPC1011F 的指纹采集原理:FPC1011F指纹传感器是由152×200 个传感器阵列组成的,每一个阵列是一个金属电极,充当电容器的一极,安在传感面上的手指头的对应点则作为另外一极,其工作原理是基于变极板间距的电容式传感器,其电容量由式(1)确定:
(式中:C 为电容量;d 为极板间距;ε0为真空介电常数;εr为极板间介质的相对介电常数;s 为极板的有效面积) 当手指接触传感器导电框以后,由式(1) 可知, 谷和脊因为离传感器阵列的距离不同, 产生了不同的电容值C,经过运算放大电路, 形成不同的电压值, 通过内部的A/D 转换,获得高质量的数字指纹图像。 2.1.2 处理器 该系统采用的主处理器是TMS320VC5509 的32 位定点高速数字DSP 处理器,开发板的硬件包括:USB2.0 FullSpeed接口用以传输图像、视频等高速数据; 片外外扩1M BytesFLASH;RTL8019AS 网络接口芯片,实现以太网通讯太网电路;开发接口:UART(RS232)与上位机实现通讯;2 路10 位A/D 输入接口。 2.2 主控模块 该系统采用的主控模块Raspberry Pi,代替了体积庞大的电脑实现控制功能。Raspberry Pi 是一款基于ARM,操作系统采用开源的Linux 系统的个人电脑,配备一枚700MHz 的处理器,支持SD 卡和Ethernet, 拥有两个USB 接口,以及HDMI 和RCA 输出支持。Raspberry Pi 一方面控制AVR 去检测门的开关状态以及开关门锁,另一方面控制FPI 的指纹录入以及匹配并在Raspberry Pi 上建立数据库记录用户信息。 利用这些硬件便可以进行嵌入式开发,快速的建立起指纹识别系统的硬件系统。 3 指纹识别系统软件开发 该系统基于Linux 操作系统,将自动指纹识别系统移植到嵌入式Linux,在Linux 上进行指纹识别系统的软件设计,指纹识别系统的软件设计包括四个方面:上位机与AVR 串口通讯、上位机与指纹模块串口通讯、维护MYSQL 以及脚本发送报警。 3.1 指纹识别的处理过程 如图4 所示:首先对串口进行初始化,打开串口设备0、1,设置串口参数,恢复串口未阻塞状态,串口初始化成功后执行用户选择功能:注册开门账号或注册关门账号或运行门禁服务[N/C/R]。选择系统功能N 后注册新开门用户,对同一指纹共获取3 次图像,与传统采集一次图像相比,杜绝了随意采集造成的注册指纹不精和验证时不易识别的问题。采集指纹成功后输入用户个人信息,注册来自上位机数据库的新ID号并把该用户指纹信息存入数据库,然后选择是否继续添加用户。同理用户选择系统功能C后完成注册关门用户的操作。 用户选择系统功能R 后运行门禁服务,一方面AVR 查询当前门锁状态, 例如把开门的命令赋给门的匹配状态,如果指纹匹配操作FPI 和门的匹配状态相同,则由继电器接收来自AVR 的开门命令,带动电机执行开门动作,并且记录当时时间,向本地数据库添加一条新的用户使用记录并写进日志里。同理执行关门命令。另一方面AVR 查询当前电机电流等级,将门锁的实时开关状态,由谁执行开关门动作和当前门锁电机电流状态通过邮件的方式发送给用户,实现对门的实时监控,大大增强了门禁系统的安全性。 |