APP下载

一种基于ABC—BP神经网络的指纹识别算法研究

2017-12-15文祝青吴志攀

电脑知识与技术 2017年32期
关键词:BP神经网络指纹识别

文祝青+吴志攀

摘要:针对BP神经网络存在着收敛速度慢、对初始值敏感以及容易陷入局部极小值等缺点而导致指纹识别效果不理想事实,该文提出了一种基于ABC-BP神经网络的指纹识别算法,将指纹的特征点坐标的数值归一化后输入到BP神经网络进行训练,利用人工蜂群算法在训练过程中进行网络优化,从而在BP神经网络的训练过程中获得最优的权值和阈值,以更为准确地得到指纹识别结果。实验数据表明,该算法取得了较好的识别结果,具有一定的应用价值。

关键词:指纹识别;BP神经网络;人工蜂群算法

中图分类号:TP751 文献标识码:A 文章编号:1009-3044(2017)32-0196-03

1 概述

生物识别技术是一种用来鉴定个人身份信息的技术。目前研究最为深入、应用范围最为广泛、发展最为成熟的生物识别技术当属指纹识别技术,但其以前主要应用在刑事侦查、司法鉴定当中[1]。当代的指纹识别一般都是在光学传感器上实现的,远离了脱机的研究而开始了联机的指纹识别。随着半导体指纹传感器的发展,指纹辨认的应用范畴迅速扩大,已经深入至个人电脑,手机、金融系统、门禁系统、考勤系统等领域。虽然人们的生活当中慢慢不可避免地接触使用指纹,但正确识别指纹并不是一件简单的事情。因为指纹识别过程是比较复杂的,涉及内容不仅包括图像预处理部分,还包括指纹识别部分。由于指纹污损、光照程度、倾斜角度和算法缺陷等原因,大多指纹识别系统并不能做到一次性100%的识别,这就需要学者们作进一步的跟进研究。

2 指纹预处理

指纹可能因为出汗而潮湿、长期泡水而脱皮,也可能因为勤劳而粗糙,所以采集的指纹图像质量有高有低,这些指纹图像存在着参差不齐的噪声干扰。指纹图像的预处理就是去掉一些不必要的杂质,给后续识别提供一幅清晰的二值化指纹图像。指纹图像的预处理流程如图1所示。

一张指纹图片,往往复合着与指纹无关、会降低识别率的背景部分,如图2所示。通过图像分割去掉不需要的背景部分,保留感兴趣区域(Region of Interest,ROI),即脊线和谷线组成的部分。本文采用复合分割算法[2],即基于指纹图像局部灰度方差分割和基于指纹图像的方向场分割的复合算法,前人已證明它更适合指纹图像的背景分割。采用复合算法得到的分割图像如图3所示。

图像的增强有好几种方法,本文选用根据图像本身特点设计的方向滤波[3],如图4所示,图像变得更加清晰了,将该淡化的地方淡化,称之为噪音减少;该增强的地方增强了,称之为指纹方向的点增强。一个指纹图像一般用到多个滤波器,因为纹线方向是多向的。

一张普通的图片是五颜六色的,也就是有不同的灰度值,而图像的二值化就是把这样的图片变成黑(0)和白(255)的,如图5所示,使得图像的数据量减小和突显出感兴趣的区域。这里选择基于方向图的二值化方法,可以动态地设置每个像素点的阈值。假设有一张图像,它的灰度为1-m级,灰度值为i,像素数为Ni。

各灰度值的分布如公式(1)所示。

[Pi=nii=1mni] (1)

由于二值化之后的图像还是不能满足后续的要求,因而需要图像细化来得到宽度为单个像素点的脊线的骨架图像,细化不但减少了图像数据量,而且使脊线更加清晰,可以提高处理效率。

一个图像有成千上万的像素点,研究每个点很繁琐,那就需要将其剔除,是否可删由该目标点 8 邻域内各像素点的值决定。一个目标像素依次跟周围的8个领域进行匹配从而判断是否删除,细化后效果如图6所示。

指纹的细节特征信息应包含以下几点[4]:

(1) 特征点类型;

(2) 特征点坐标(x,y);

(3) 在局部分块图像上,特征点的纹线方向d;

令提取的特征点坐标记为(x,y,d),一个区域内有很多这样的特征点,用P=Pn(xn,yn,dn)表示,指纹匹配就是以上特征点的匹配。

4 基于ABC-BP神经网络的指纹识别

BP神经网络已经在很多领域都得到了成功地运用,它的基本原理是:输入信号Xi,通过隐层这个中间节点作用于输出节点后经过非线性变动得到输出信号,网络训练的过程中每个样本包括了输入向量和期望输出量,而网络实际输出值与期望的输出值之间是有误差的,通过调整输入节点与隐层节点的连接强度取值,还有隐层节点与输出节点之间的连接强度以及阈值,使得误差减小而沿梯度方向下降,经过重复地学习训练,确定权值和阈值,训练结束。训练后的网络可以对类似样本做同样的处理。

本文选取32个指纹样本,对应设置32个5位的二进制编码,则输出层节点5个;每个样本提取8个特征点,特征点的3个坐标值归一化后作为输入信号Xi[5],则输入层节点24个,如图7,信号通过3个隐层节点作用于输出节点后得到输出信号。

BP神经网络虽然在智能算法中得到了很好的运用,但是其可能会陷入局部最优等的缺陷。为此,本文提出一种基于人工蜂群(Artificial Bee Colony,ABC)优化的BP神经网络智能算法进行指纹识别[6-8],指纹识别的基本流程如图8所示。

在ABC 算法中一个蜜源对应问题的一个解,蜂蜜的多与少表示解质量的高与低,一个人工蜂群由雇佣蜂、观察蜂和侦查蜂这三部分组成。蜂群大小用Nc表示,雇佣蜂(Ne)和观察蜂的数量(No)以及解的数目(Ns)三者相等,每个解都是一个D维向量(D是需优化参数的个数)。有三个控制参数:解的个数(Ns)、极限值(limit)以及最大循环次数(MCN)。

开始时,算法随机地产生Ns个解(X1,...,XNs)、设置极限值(limit)和最大循环次数(MCN)。初始化后,蜜蜂用贪婪选择法进行循环搜寻新的解,若新解的适应度大于旧解,则雇佣蜂放弃旧解而记住新解。接着计算解的收益率,观察蜂也采纳贪婪选择法,再根据这些解的收益率和雇佣蜂所记住的解在邻域搜寻新的解。假定出现最新解不能再被更新,也就是更新失败的次数超过了极限值 limit,那么这个解就会被仅有的一个侦查蜂遗弃并用新的解替代。按照此循环直至最大循环次数[6]。endprint

搜寻新解的表达式如公式(2)所示:

[Vij=Xij+rand(-1,1)(Xij-Xkj)lowerbounduperbound,,,Vij∈(lowerbound,upperbound)Vijupperbound] (2)

式中i是指第i个蜜源,[ j∈1,2,…,D],[k∈1,2,…,Ns]是随机产生的,且k≠i。如果[Vij]超过规定的最大边界值和最小边界值,则根据公式转化成边界值。

蜜蜂摇摆舞确定蜜源的收益率,再根据收益率大小挑选蜜源,观察蜂选择蜜源主要是看蜜源的适应度值[7],收益率Pi用公式(3)计算:

[Pi=f(Xi)n=1Nsf(xn)] (3)

其中,[f(Xi)]表示蜜源的适应值,当舍弃旧解时使用公式(4)产生新解:

[Xi=Xmin+rand(0,1)(Xmax-Xmin)] (4)

ABC算法優化 BP 神经网络(ABC-BP)的具体步骤如下:

(1) 构建一个 BP 神经网络;

(2) 初始化种群及 ABC 算法的参数(Nc、Ne、No、Ns、limit、MCN)[13],应满足公式(5):

[Nc=2Ns=Ne+No,Ne=No=Ns] (5)

初始种群即初始解[Xi(i=1,…,Ns)]是随机产生的(-1,1)之间的数,每一个[Xi]都代表了步骤(1)中所创立神经网络的连接权值和阈值,每个解的维数D满足公式(6):

[D=Nin×Nhidden+Nhidden+Nhidden×Nout+Nout] (6)

其中[Nin] 、[Nhidden] 、[Nout]分别是输入层、隐含层和输出层对应的神经元个数。

(3) 计算每个解的适应度值[fXi],如公式(7)所示:

[fXi=11MSEi+1,,MSEi=0MSEi>0] (7)

式中[i=(1,2,…,Ns)],[MSEi] 表示第i个解的 BP 网络均方误差,理想状态值为1。

(4) 雇佣蜂按照公式(2)根据当前的记忆解搜寻新的解。假如新解的适应度值比旧解的适合度值大,则记下更新的旧解,要不然在旧解的更新失败次数上加1。

(5) 按照公式(3)根据第i个解的适应度值[f(Xi)]计算解的收益率。观察蜂根据这些收益率搜寻新的解。

(6) 若解[Xi]的更新失败次数超过了预定的最大值 limit,侦查蜂用公式(4)产生的新解将其替代。

(7) 要是迭代的次数超过了最大的循环次数 MCN,那就完结训练。否则,返回第(5)步。

(8) 将得到的最优解变换成BP网络连接的权值和阈值[8]。

相比普通BP神经网络,引入了ABC算法的BP神经网络对指纹的识别率有所提高,如表1所示。

5 结论

为了克服BP神经网络收敛速度慢和容易陷入局部最优的缺点,我们利用人工蜂群算法优化BP神经网络,以寻找出其最优的权值和阈值。实践证明,ABC算法和BP神经网络的结合有利于指纹的识别,可以提高识别准确率。

参考文献:

[1] 潘滟.基于神经网络的指纹识别系统研究[D].湖南大学,2007.

[2] 冯国进,顾国华,张保民.指纹图像预处理与特征提取[J].计算机应用研究,2004(9):183-186.

[3] 周永东.指纹图像增强算法研究和加速器设计[D].浙江大学,2006.

[4] 韩涛.指纹图像预处理与特征提取算法研究[D].华中科技大学,2005:36-40.

[5] 徐黎明,王清,陈剑平,等.基于BP神经网络的泥石流平均流速预测[J].吉林大学学报,2013,43(1):186-191.

[6] 苏彩红,向娜,陈广义,等.基于人工蜂群算法与BP神经网络的水质评价模型[J].环境工程学报,2012,6(2):699-704.

[7] 张超群,郑建国,王翔.蜂群算法研究综述[J].计算机应用研究,2011,28(9):3201-3205.

[8] 孙航.基于BP神经网络的指纹识别[J].信息与电脑:理论版,2011(5):38-39.

猜你喜欢

BP神经网络指纹识别
基于单片机指纹识别电子寄存柜设计
指纹识别
指纹识别技术综述
指纹挂锁
基于大容量指纹识别的实时身份认证系统
基于线阵CCD的指纹识别实验