c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法

在虹膜的识别研究方面,学者提出多种识别方法。DAUGMAN J提出使用二维Gabor变换提取虹膜特征[1];谭铁牛等使用多通道Gabor滤波器提取虹膜特征[2-3];LIM S等用二维小波对虹膜进行特征提取和编码[4];文献[5]使用二维Gabor滤波器对虹膜特征进行提取与识别;文献[6]提出使用使用小波变换对虹膜特征进行提取识别算法。本文首先使用Haar小波对图像特征提取,使用K-means对图像粗分类,使用Log-Gabor滤波器提取虹膜局部纹理特征,量化编码后形成虹膜特征模板,实现了在小样本集内通过计算特征模板间的相似度来完成对虹膜的识别,同时与文献[5]和文献[6]的识别方法分别在认证模式和识别模式下做了对比分析。本文提出的虹膜识别方法相对传统的方法在识别准确度和稳定性上有了较大的提高,取得了较好的效果。

1 本文虹膜识别方法

本文设计的虹膜识别方法包括:图像的预处理、特征提取、特征编码和匹配。

1.1 图像的预处理

虹膜图像的预处理包括对虹膜内外边缘的定位、噪声区域定位和消除、对虹膜区域图像归一化等一系列操作。

1.1.1 虹膜内外边缘定位

由于虹膜的灰度大于瞳孔的灰度,因此使用阈值法、数学形态学运算以及Hough变换对虹膜的内边缘进行定位。一般虹膜内边缘定位是直接在原始的虹膜图像上进行Canny算子的边缘检测,提取到边缘点后作Hough变换,所以本文方法计算量和定位时间相对减小。

由于虹膜区域与巩膜区域的灰度差别较小,因此先确定外边缘的半径范围,对图像进行Canny变换[7],得到虹膜的边缘图像后使用Hough变换[8],实现了对虹膜外边缘定位。虹膜边缘定位结果如图1所示。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第1张图片

1.1.2 虹膜噪声区域定位和消减

考虑到提取到的虹膜区域中有眼睑这部分噪声区域[9],会影响到识别精度,因此使用Randon变换定位噪声区域。2维空间Randon变换的定义如下:

式中,D为整个图像平面,f(x,y)为图像在点(x,y)的灰度,ρ为坐标原点到直线的距离,θ为距离与x轴间的夹角,δ为冲激函数。使用Radon变换标记虹膜噪声区域,如图2所示。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第2张图片

由于虹膜的上下部分常被眼睑遮挡,而左右部分受眼睑遮挡一般较少,因此在提取眼睑噪声区域后,只取以区域水平线为中心的左右部分两段圆弧,如图3所示。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第3张图片

1.1.3 虹膜区域归一化

为了消除图像的平移、缩放和旋转所造成的影响,对图像采用归一化操作。归一化是将环形的虹膜图像转化为矩形图像,如式(2)所示:

其中,I(x,y)表示虹膜图像。(r,θ)表示归一化后的极坐标,r∈[0,1],θ∈[0°,360°],当r=0时,表示I(x(r,θ),y(r,θ))为瞳孔边缘上的像素点;当r=1时,I(x(r,θ),y(r,θ))为虹膜边缘上的像素点。改变r的值对整个虹膜区域归一化,如图4所示。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第4张图片

得到虹膜归一化图像后,为了增大图像的对比度,得到清晰的虹膜纹理,便于特征提取,采用直方图均衡化来达到增强图像的效果,如式(4)所示:

式中,N是图像像素的总数,N(rk)为图像出现灰度级为rk的像素数,k为灰度级数。

使用该变换后输出的图像具有较宽的灰度动态范围和较强的对比度,效果如图5所示。

1.2 虹膜的特征提取

通过使用Haar小波变换提取各通道的能量均值μn及方差σn,使用K-means方法进行聚类,得到小样本集的虹膜图像,使用Log-Gabor滤波提取虹膜的纹理信息,得到相应的虹膜特征。

1.2.1 基于Haar小波变换和K-means粗分类

由于虹膜图像纹理特征明显,则小波通道输出的能量较大,因此采用各小波通道[10]的能量均值和方差来表示其虹膜的纹理特征。第n个通道的能量均值μn和方差σn分别表示如式(5)、式(6)所示。

能量均值μn

式中,M、N表示小波通道的尺寸,s(i,j)为该通道的小波分解系数。计算对应通道的低频小波系数cA3、水平高频系数cD3h、垂直高频系数cD3v的统计信息,部分虹膜样本统计信息如表1所示。其中,S1、S2、S3、S4分别表示不同类别的虹膜图像。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第5张图片

本文将每个虹膜图像的通道3的小波系数统计特征通过使用K-means方法[11]进行聚类,得到虹膜图像小样本集。使用的K-means算法步骤如下:

(1)选取适当的12个虹膜样本作为初始质心;

(2)分别计算所有虹膜图像样本到这12个质心的距离;

(3)如果样本离质心Si最近,那么这个样本属于Si这个点群;如果到多个质心的距离相等,则可划分到任意组;

(4)按距离对所有样本分完组之后,计算每个组的均值,作为新的质心Si*

(5)重复步骤(2)~(4)直到新的质心和原质心相等,算法结束。

通过以上的算法,将虹膜图像集分为12个小的样本集,实现了在小样本集内计算虹膜特征模板的相似度,完成对虹膜图像的识别。

1.2.2 基于Log-Gabor滤波的虹膜特征提取

文献[1]提取虹膜纹纹理信息采用的是二维Gabor滤波,二维Gabor函数如式(7)所示。

由于偶对称Gabor滤波器是一个不严格的带通滤波器,该频域表现为在坐标轴原点处出现一个相对较大的直流分量,影响识别算法的性能,本文通过采用Log-Gabor滤波器实现对虹膜的特征提取。Log-Gabor滤波器的频率表示如式(8)所示。

式中,f0为中心频率,β为带宽,Log-Gabor滤波器的传递函数在线性频率与对数频率下的形状如图6所示。Log-Gabor滤波器在对数尺度上具有高斯形状的分布,不存在其直流分量,为严格意义上的带通小波,由于人类的视觉系统具有对数性质的非线性,因此使用对数频率下具有Gauss分布的Log-Gabor函数波。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第6张图片

滤波器参数为wavelength=1/f0=18、sigma=β/f0=0.5,得到的32×180表征虹膜纹理信息的特征数据如图7所示。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第7张图片

1.3 特征编码

虹膜图像经过Log-Gabor滤波后得到其纹理的特征系数后,判断其系数的实部和虚部的正负进行量化编码,如式(9)所示。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第8张图片

其中,hRe、hIm分别表示为滤波后特征数据的实部与虚部,fft表示傅里叶变换,ifft表示为傅里叶反变换。本文使用的Log-Gabor滤波提取的虹膜纹理特征编码后的数据如图8所示,编码后生成一个32×360的二进制虹膜特征模板,虹膜特征模板如图9所示。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第9张图片

1.4 虹膜特征匹配

本文使用的是基于汉明距离的分类器进行匹配。其原理为:设A与B是两个虹膜特征编码模板,长度为N,汉明距离表示为:

计算出的距离HD越小,表明这两个特征模板的匹配度越高。

虹膜类内汉明距离分布如图10(a)所示,类间汉明距离的分布如图10(b)所示,虹膜类内类间汉明距离分布如图10(c)所示。类内类间汉明距离分布接近正态分布,由于类间虹膜的汉明距离远大于类内虹膜的汉明距离,因此可以通过设置合适的分类阈值对虹膜进行类别识别匹配。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第10张图片

2 实验结果与分析

本文使用虹膜图像均来自中科院CASIA V1.0虹膜数据库,符合虹膜质量评价标准[12]。使用MATLAB R2014a编程实现。使用认证模式和识别模式这两种模式对本文的实验结果进行分析和评价。

2.1 认证模式分析与评价

认证模式目的在于测试算法是否能够正确判断该输入数据来自某一类别。测试时采用3个指标来衡量算法的系统识别性能,即错误接受率(False Acceptance Rate,FAR)、错误拒绝率(False Rejection Rate,FRR)和等错误率(Equal Error Rate,ERR)。其中,ERR数值越小,说明其算法性能越好。

CASIA V1.0虹膜数据库中有108只人的眼睛,每只眼睛有7张虹膜图像;选取每人的3幅虹膜图像作为训练集,将其余的每人4幅虹膜图像作为测试集,选取0.3~0.5的阈值区间分别对各方法进行认证实验,各算法在不同阈值下FRR和FAR曲线如图11所示。由图11可以看出,错误拒绝率FRR随阈值的增大而减小,错误接受率FAR随阈值的增大而增大,图中FAR曲线与FRR曲线的交点为等错率EER。本文使用的算法求得的EER在0.1以内,文献[5]使用二维Gabor变换的EER在0.1~0.2间,文献[6]使用二维小波变换的EER在0.2~0.3间,本文使用的算法识别性能优于其他两种算法,识别的准确率较高。

c++ hough变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法_第11张图片

2.2 识别模式分析与评价

识别模式是指将待识别的虹膜特征编码与数据库中的虹膜特征编码进行匹配计算,将小于阈值的类别作为识别结果。该模式采用识别率(CCR)作为评价指标,定义如式(12)所示:

式中,M是正确识别的样本数,N为识别的样本总数。本文将虹膜数据库108只虹膜中每只虹膜选择3幅作为训练集,共324个,其他的432个虹膜样本作为测试样本进行识别。文献[5]基于二维Gabor变换虹膜识别算法、文献[6]基于小波变换的虹膜识别算法以及本文算法的识别率对比如表2所示。

3 结束语

本文为了改善传统虹膜识别方法,首先使用了阈值法和数学形态学操作得到虹膜的内边缘;为了减少虹膜噪声对识别精度的干扰,进行了对虹膜噪声区域的定位和处理;通过Haar小波变换提取虹膜的特征信息,使用K-means进行聚类得到虹膜图像小样本集,减少了识别的复杂度,同时使用了Log-Gabor滤波器s提取虹膜纹理特征;最后通过在认证模式和识别模式这两种模式对本文的方法进行了分析和评价。该算法提高了识别率,有较好的应用价值。

参考文献

[1] DAUGMAN J.High confidence visual recognition of persons by a test of statistical independence[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1993,15(11):1148-1161.

[2] 王蕴红,朱勇,谭铁牛.基于虹膜识别的身份鉴别[J].自动化学报,2002(1):1-10.

[3] 李海青,孙哲南,谭铁牛,等.虹膜识别技术进展与趋势[J].信息安全研究,2016,2(1):40-43.

[4] LIM S,LEE K,BYEON O,et al.Efficient iris recognition through improvement of feature vector and classifier[J].ETRI Journal,2001,23(2):61-70.

[5] 曹江中,戴青云,何家峰,等.基于纹理分布和Gabor滤波器的虹膜识别算法[J].计算机工程,2006(9):199-200,205.

[6] BOLES W W,BOASHASH B.A human identification technique using images of the iris and wavelet transform[J].IEEE Transactions on Signal Processing,1998,46(4):1185-1188.

[7] 李锦明,高文刚,张虎威,等.自适应实时边缘检测系统设计[J].电子技术应用,2017,43(2):85-87,91.

[8] 张林,王保强.一种改进的基于Hough变换的虹膜定位算法[J].电子技术应用,2014,40(4):66-69.

[9] 来毅,路陈红,卢朝阳.用于虹膜识别的眼睑及眼睫毛遮挡检测.计算机辅助设计与图形学学报,2011,19(3):346-347.

[10] 李一博,沈慧,高远.基于奇异值分解和小波包分解的故障检测[J].电子技术应用,2018,44(3):56-59.

[11] 余成波,李彩虹,曾亮.K-means指纹定位的优化算法[J].电子技术应用,2018,44(2):70-74.

[12] 彭智勇,曾庆宁,彭超男.虹膜图像质量评价的研究[J].电子技术应用,2006,32(2):62-64.

作者信息:

姚立平,潘中良

(华南师范大学 物理与电信工程学院,广东 广州510006)

你可能感兴趣的:(c++,hough变换代码,二维小波变换)