基于GA-BP神经网络的序列虹膜质量评价算法

2020-11-26 00:30张齐贤朱晓冬刘元宁王超群吴祖慷李昕龙
吉林大学学报(理学版) 2020年6期
关键词:清晰度虹膜瞳孔

张齐贤, 朱晓冬, 刘元宁, 王超群, 吴祖慷, 李昕龙

(1. 吉林大学 符号计算与知识工程教育部重点实验室, 长春 130012;2. 吉林大学 软件学院, 长春 130012; 3. 吉林大学 计算机科学与技术学院, 长春 130012)

虹膜识别是一种新型的生物特征识别技术, 其误识率在各种生物特征识别方法中最低[1], 应用前景良好. 虹膜识别系统包括虹膜图像采集、 虹膜图像质量评价、 虹膜内外圆定位、 归一化以及特征提取和模式匹配[2]. 其中虹膜图像质量评价非常关键, 会影响后续识别过程的准确性和效率. 对采集的序列虹膜图像进行质量评价可筛选掉部分存在问题的图像, 这些图像不仅会使虹膜所携带的纹理特征不能完全被提取, 而且会导致系统性能的浪费.

对于序列虹膜(连续采集的虹膜)的质量评价, Daugman[3]通过计算虹膜图像的二维Fourier频谱中的高频能量判断虹膜图像的清晰度; Gao等[4]通过支持向量机(SVM)进行指标融合, 得到分类结果; 史春蕾等[5]使用LOG(Laplacian of Gaussian)算子提取瞳孔两边部分虹膜的高频能量信息, 判断是否存在遮挡; 刘帅等[6]提出了基于形态学和灰度分布的虹膜质量评价算法; 晁静静等[7]提出了基于多指标融合的虹膜图像质量评估算法. 上述算法虽然在实验中效果较好, 但算法复杂度较高, 且质量评价指标单一会导致质量差的图像漏检, 指标过多会错误删除部分可进行虹膜识别的图像, 从而浪费虹膜数据. 针对上述问题, 本文提出一种基于遗传算法(GA)与BP神经网络相结合(GA-BP)的序列虹膜质量评价算法. 首先进行粗质量评价, 筛选掉一些易影响虹膜质量的图像, 然后精质量评价选用3个较重要且明显的评价指标(虹膜有效区域面积比、 虹膜有效区域清晰度、 瞳孔-虹膜的扩张性), 并结合BP神经网络融合这些精质量评价指标进行图像质量的最终评价, 最后用遗传算法[8]优化BP神经网络权值和阈值. 该质量评价方法可保留更多高质量的虹膜图像, 以保证后续虹膜识别算法可达到较高的精确度和良好的预测效果. 算法流程如图1所示.

图1 基于GA-BP神经网络的序列虹膜质量评价算法流程Fig.1 Flow chart of sequential iris quality evaluation algorithm based on GA-BP neural network

1 虹膜图像粗质量评价指标

1.1 整体图像的清晰度

在采集虹膜时可能会出现运动模糊和离焦模糊, 从而可能丢失虹膜的全局高频信息, 导致后续步骤很难提取虹膜的有效纹理特征, 因此需先对序列虹膜图像进行整体清晰度的检测. 本文使用Laplace梯度方法[9]. 设图像大小为m×n, 利用Laplace算子分别计算出图像在x方向和y方向上的二阶导数, 然后计算整体图像的平均灰度值作为清晰度评价值F. 清晰度评价值的计算公式为

(1)

其中:Gx,Gy为Sobel算子的卷积核;I(x,y)为图像在(x,y)点的像素值. 本文中F值越大, 表示图像越清晰. 根据实验结果, 本文清晰度阈值设为Q=3.0, 比较图像的F值与设定的阈值Q, 当F值低于Q值时, 则认为该图像不合格即丢弃该图像. 同一个体多幅采集图像的清晰度如图2所示.

1.2 瞳孔半径和虹膜活体检测

为防止发生伪造、 假冒虹膜等情形, 需对采集的图像进行虹膜活体检测[10]. 如果检测到非活体虹膜则丢弃该序列虹膜, 避免后续无意义的质量评价和特征提取. 本文基于二值形态学对序列虹膜进行瞳孔半径计算. 针对清晰度检测合格的图像, 根据瞳孔和虹膜之间存在灰度值差异的原理, 先将原图像进行二值化操作, 然后用高斯滤波消除图像的噪声, 再进行Canny边缘检测, 寻找瞳孔和虹膜之间的边缘点, 最后用霍夫圆变换[11]描绘出虹膜内圆, 再根据描绘的虹膜内圆得到瞳孔圆心的半径值, 图3为确定瞳孔圆心和半径的示意图.

图2 同一个体多幅采集图像的清晰度Fig.2 Definition of multiple images collected by same individual

图3 确定瞳孔圆心和半径示意图Fig.3 Schematic diagram to determine center and radius of pupil

当光照较强时, 瞳孔会收缩以减少进光量; 当光照较弱时, 瞳孔会放大以增加进光量. 对于采集的序列虹膜图像, 即使采集模块的红外光源较稳定, 这些图像的瞳孔大小也是不断变化的. 因此本文根据人体这一生理特性进行虹膜图像的活体检测. 从清晰度合格的序列虹膜库中随机选取连续的u×24张虹膜图片(1 s拍摄24张图像), 然后以每连续24张中选择一张图像计算该虹膜图像的圆心和半径. 为使结果更精确, 引入瞳孔半径方差因子CP, 方差可表示数据的偏离程度. 最后计算前后us内u张虹膜图像的Cp值进行虹膜活体判断. 判断公式为

(2)

minCp≤Cp≤maxCp,

(3)

则证明该序列虹膜是活体虹膜, 其中minCp和maxCp是通过对训练集进行大量实验得出的阈值.

1.3 睁闭眼检测

采集的序列虹膜图像中会出现睁眼、 眯眼、 闭眼这3种情形. 闭眼图像不包含有用信息, 眯眼图像眼睫毛干扰严重, 有效信息较少, 因此这两类图像可丢弃. 已知在虹膜灰度图像中瞳孔灰度值为0, 光斑灰度值为255. 本文采用一种较简单快速的方法进行检测, 根据Canny边缘检测和霍夫圆圈到的瞳孔轮廓图, 得出瞳孔的圆心和半径. 判断霍夫圆的个数, 如果未出现霍夫圆则证明该虹膜图像为闭眼状态. 然后根据圈到的霍夫圆中黑色瞳孔像素占整个圈到瞳孔轮廓的比例, 如果比例超过2/3则为睁眼图像, 否则为眯眼图像. 判断睁眯眼图像公式为

(4)

其中:Ipupil为霍夫圆中黑色瞳孔像素; πr2为整个圈到瞳孔轮廓的面积.Q=1表示睁眼图像,Q=0表示眯眼不合格图像. 虹膜图像的睁闭眼检测结果如图4所示.

图4 睁闭眼虹膜图像检测结果Fig.4 Detection results of iris images with eyes opened and closed

1.4 虹膜偏移检测

在采集的序列虹膜中经常会出现虹膜位于图像的边界处和翻白眼的情形, 这两种情形在后续的虹膜定位中, 易导致系统崩溃. 虽然这些图像可能包含丰富的虹膜特征, 但为简化识别流程, 本文舍弃偏移较大的虹膜图像. 由于瞳孔半径和虹膜活体检测中求圆心的方法并不适用于偏移图像, 因此采用统计瞳孔像素的坐标位置. 首先对原始图像进行二值化, 再用区域生长法[12]消除瞳孔光斑, 瞳孔的中心坐标计算公式为

Ppupil=((minx+maxx)/2,(miny+maxy)/2),

(5)

其中:Ppupil为瞳孔的中心坐标;x和y分别为瞳孔区域的横纵坐标值. 本文以图像的中心点(m/2,n/2)为基准, 如果瞳孔中心坐标位于以图像中心点坐标为中心的、 边长为200像素的正方形外, 则认为该虹膜偏移角度过大, 不符合要求. 偏移检测结果如图5所示.

图5 偏移检测结果Fig.5 Detection results of iris migration

2 虹膜图像精质量评价指标

经过虹膜图像粗质量评价能筛选掉大部分不合格的序列虹膜图像, 然后对合格的图像进行精质量评价.

2.1 虹膜有效区域面积比

虹膜有效区域是指未被睫毛、 眼睑、 光斑等遮挡的有效纹理区域, 如图6所示. 首先根据瞳孔定位结果对虹膜外圆进行粗定位, 本文采用文献[13]中的一维灰度均值法进行外圆粗定位. 将虹膜内圆和外圆近似为两个圆形, 其中环形的区域减去眼睑、 睫毛、 光斑的遮挡即为虹膜的有效区域, 计算虹膜有效区域面积占整个环形的百分比EAI, 计算公式为

(6)

其中:Riris和rpupil分别表示虹膜、 瞳孔的半径;Seyelid表示环形区域中被眼睑、 睫毛、 光斑遮挡的面积像素总和. EAI值越大表示虹膜有效区域越多, 进而获取的虹膜信息量越多.

图6 虹膜有效区域示意图Fig.6 Schematic diagram of effective area of iris

2.2 虹膜有效区域清晰度

图7 评价区域选取Fig.7 Selection of evaluation area

虽然已经在粗质量评价阶段对虹膜图像整体清晰度进行了计算, 但虹膜图像整体清晰度值的高低与虹膜有效区域清晰度值的高低关系较小. 虹膜有效区域的清晰度会直接影响虹膜识别的性能. 因此, 在精评价阶段需对虹膜有效区域的清晰度进行检测. 分别选取瞳孔水平方向左侧和右侧以及垂直方向上侧和下侧大小为27×27的区域作为子区域进行评价, 如图7所示. 完成评价区域选择后, 分别对4个区域用Laplace梯度方法求得清晰度值, 最终虹膜有效区域清晰度值ACI计算公式为

ACI=(Fup+Fdown+Fleft+Fright)/4.

(7)

2.3 瞳孔-虹膜的扩张性

每个人的虹膜半径变化都较小, 但当人眼受外界光照影响时, 瞳孔会发生收缩或扩张现象. 瞳孔收缩会导致虹膜区域的面积变大, 提供的虹膜信息量也会增多, 反之虹膜信息量会减少. 因此, 本文瞳孔-虹膜的扩张性因子PID定义为瞳孔半径和虹膜半径之比:

PID=rpupil/Riris,

(8)

其中rpupil和Riris分别表示瞳孔、 虹膜的半径. PID越大, 说明瞳孔扩张越严重. 图8为不同PID的虹膜图像.

图8 不同PID的虹膜图像Fig.8 Iris images with different PID

3 GA-BP神经网络融合精质量评价指标

本文先用GA-BP神经网络方法对图像质量进行综合评价, 再利用训练好的网络模型对序列虹膜库进行快速、 准确的质量分类.

3.1 构建BP神经网络

图9 BP神经网络结构Fig.9 Structure of BP neural network

BP神经网络采用梯度下降的方法实现自动学习, 用反向传播机制调整网络的权重和阈值. 通常由输入层、 隐含层和输出层组成, 理论上含有一个隐含层的三层网络可逼近任意非线性函数. 典型的三层BP神经网络结构如图9所示.

3.2 GA-BP神经网络

传统的BP神经网络在数据训练过程中易陷入局部极小值. 针对该缺陷, 本文利用GA算法具有全局搜索能力优化BP神经网络, 使BP神经网络在全局范围中能找到最优解[14]. GA-BP神经网络的步骤如下:

1) 计算样本的精质量指标值, 进行归一化后将样本划分为训练样本和测试样本;

2) 对BP神经网络权值和阈值进行编码, 设置适应度函数, 得到初始种群;

3) 训练网络时以误差绝对值作为适应度函数, 函数值越大, 该网络的权值和阈值就越优;

4) 选择适应度高的染色体进行复制, 利用交叉、 变异操作产生新群体;

5) 如果满足算法的终止条件, 则解码后得到最佳的网络权值和阈值, 并把最优权值和阈值赋值给BP神经网络的权值和阈值; 否则返回步骤3);

6) 用测试样本进行仿真并得到输出结果.

在寻优过程中, 需对GA算法的参数进行设置: 种群大小为40, 最大遗传代数为50, 交叉概率为0.7, 变异概率为0.01. GA-BP算法流程如图10所示.

图10 GA-BP算法流程Fig.10 Flow chart of GA-BP algorithm

4 实验与分析

采用JLU-6.0(http://www.jlucomputer.com/index/irislibrary/irislibrary.html)的原始虹膜库作为实验虹膜库, 该虹膜库由80类虹膜样本组成, 每类包含3 000张虹膜图像, 共24万张虹膜图像. 从JLU-6.0虹膜库中选择40类虹膜样本, 其中每类样本含有100张图像, 共4 000张虹膜图像. 先用粗质量评价方法筛选掉其中365张不合格的图像, 再将剩余的3 635张图像组成数据集Iris_Data, 并对每个样本进行人工标记. 将该数据集分为两个子集, 其中一个子集包含3 219张图像, 另一个子集包含416张图像. 从两个子集中随机选择3/4的图像共2 726张作为训练集Iris_Train_Data, 余下的909张图像作为测试集Iris_Test_Data. 实验环境为: CPU主频3.2 GHz, 内存16 GB, Windows10操作系统, 编程工具为MATLAB R2018a.

输入样本训练前需先对精质量评价值进行归一化处理, 归一化处理就是把数据都转化为[0,1]内的数, 以便消除数量级差异较大引起的误差, 加速网络训练的收敛. 采用最大最小法进行数据归一化, 函数形式为

xm=(xm-xmin)/(xmax-xmin),

(9)

其中:xm为需要归一化的数据;xmin为数据序列中的最小数;xmax为序列中的最大数. 从样本集Iris_Data中选出12个虹膜样本, 按质量从低到高进行排序编号, 并计算这些样本的精评价指标, 最后将得到的指标值和样本质量进行对比. 样本的精质量评价指标值列于表1, 分析结果如图11所示.

表1 样本的精质量评价指标值

由表1和图11可见, 当图像质量情况变好时, 虹膜图像的有效区域面积比、 有效区域清晰度指标均不断增大, 而瞳孔-虹膜的扩张性不断减小. 因此, 本文的精质量评价指标与图像质量人为主观上的变化相同, 从而证明了本文精评价指标选取的有效性.

用GA-BP网络模型对精评价指标进行融合, 对虹膜图像整体质量进行评估, 并与未使用GA优化算法的网络进行对比. 图12为部分测试样本(25个)在两个网络模型中预测和期望输出值的对比结果. 由图12可见, GA-BP神经网络模型的预测值与期望值拟合度较好. 表明使用GA算法在优化神经网络上体现了良好的全局搜索能力, 为BP神经网络提供了更精确的权值和阈值.

图11 不同质量样本的精指标分析结果Fig.11 Analysis results of fine index of different quality samples

图12 网络预测和期望输出值对比Fig.12 Comparison of network prediction and expected output values

经过训练集训练后对测试集Iris_Test_Data中909张虹膜图像进行质量分类, 正确分类数为897张, 正确率达98.68%, 而BP神经网络模型正确分类数为838张, 正确率为92.19%. 表明GA-BP神经网络模型质量评价分类精确度较高.

图13 虹膜预处理过程Fig.13 Preprocessing process of iris

因为质量评价的本质是为保留具有较多有效信息的虹膜图像, 尽可能将影响识别效率质量较差的虹膜图像去除, 进而提高虹膜识别系统的准确性. 因此, 还需对本文算法筛选出的图像进行后续的处理识别, 并将本文算法与Fourier评价法[3]、 SVM评价法[4]、 基于形态学和灰度分布的虹膜质量评价算法[6]、 基于多指标融合的虹膜图像质量评估算法[7]进行比较. 针对以上4种算法及本文算法筛选出的合格虹膜图像分别进行定位、 归一化、 虹膜增强、 特征提取, 并进行虹膜识别. 实验时, 保证除质量评价算法外其他方法均一致. 采用文献[3]的微积分圆模板法对内外圆进行精定位, 用橡皮圈模型进行虹膜图像归一化. 先将环形虹膜展开成一个512×64维的矩形, 并用直方图均衡化增强图像纹理; 然后从增强图像后的右上角截取一个256×32的(纹理最强且干扰最少)区域作为虹膜识别区域; 最后进行水平移位, 以消除虹膜旋转. 用二维Gabor滤波[15]提取虹膜的纹理特征, 并通过比对样本间的欧氏距离[16]判断虹膜类别. 虹膜预处理[17]过程如图13所示.

首先, 将等错率(EER)、 ROC曲线和正确识别率(CRR)作为算法的评价指标, 其中EER是错误拒绝率(FRR)与错误接受率(FAR)相等的值; 其次, 根据实际识别效果对上述5种算法进行评价. 各算法中可用于虹膜识别的图像经过后续处理识别操作的CRR和EER值列于表2. 各算法的ROC曲线如图14所示.

表2 不同算法的CRR和EER值

图14 各算法的ROC曲线Fig.14 ROC curves of each algorithm

由表2和图14可见: 文献[3]基于二维Fourier频谱中的高频能量评价虹膜图像质量, 这种经典算法的缺点是空域到频域转换时易丢失信息, 且频域信息不易被人类视觉观察; 文献[4]基于SVM分类的虹膜质量评价算法, 虽然CRR值达98.24%, 但SVM分类不适用于较大规模的虹膜库; 文献[6]基于形态学和灰度分布的虹膜质量评价算法, 能提高有效虹膜的幸存率, 但计算较复杂, 且虹膜分类依赖于人的主观评价, 一旦人为认为合格, 质量评价法也认定合格, 但后续识别算法却不能识别该图像, 会导致系统崩溃; 文献[7]基于多指标融合的虹膜图像质量评估算法, 用7个质量指标结合BP神经网络融合出质量评估分数, 且CRR值达97.46%, 但该算法评价指标过多, 计算这些指标值耗时较长; 本文算法CRR值比4种对比算法高, 说明经过本文算法评价合格的虹膜图像确实可进行虹膜识别. 而且其他对比算法未对序列虹膜图像进行活体检测, 安全性没有本文算法好. 本文算法经过粗质量评价能筛选出大多数干扰识别效率的差质量图像, 避免了后续识别系统的崩溃. 精质量评价指标仅评价几个较重要的指标, 缩短了计算时间, 且采用GA-BP神经网络模型能快速对大规模的虹膜库进行质量评价.

综上所述, 针对序列虹膜图像, 本文提出了一种基于GA-BP神经网络的序列虹膜质量评价算法. 首先, 进行粗质量评价, 快速有效地筛选图像, 利用Laplace梯度方法判断整体图像的清晰度, 计算瞳孔半径并进行虹膜活体检测, 增加系统的安全性, 并进行睁闭眼检测和虹膜偏移检测,4个粗质量评价指标只要有一项不合格即丢弃该图像; 其次, 精质量评价选用3个较重要的指标并计算得出指标值; 最后, 结合GA-BP神经网络融合精质量评价指标值并进行分类. 实验结果表明, 本文算法具有较高的分类精确度. 与其他虹膜质量评价算法对比结果表明, 本文算法在尽量筛选掉质量较差的虹膜图像时, 保留了较多有效虹膜图像, 适用于较大规模的虹膜库进行质量评价分类.

猜你喜欢
清晰度虹膜瞳孔
新入职护士工作价值观、未来工作自我清晰度与心理弹性研究
双眼虹膜劈裂症一例
基于轮廓匹配和多项式拟合的虹膜分割算法
鲜明细腻,拥有更好的清晰度 Ascendo Immersive Audio CCRM-12 MKII/CCRM-6P/SMS-15
修身的效果,改善声像和定位的清晰度 意大利新一代架皇 BAS AS-S4/AS-B4避震脚钉
嘈杂语噪声下频段增益对汉语语言清晰度的影响
瞳孔检查及常见瞳孔异常
一种基于虹膜识别技术的车辆启动系统
瞳孔里的太阳
“刷眼”如何开启孩子回家之门