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所示。
1.1.2 虹膜噪声区域定位和消减
考虑到提取到的虹膜区域中有眼睑这部分噪声区域[9],会影响到识别精度,因此使用Randon变换定位噪声区域。2维空间Randon变换的定义如下:
式中,D为整个图像平面,f(x,y)为图像在点(x,y)的灰度,ρ为坐标原点到直线的距离,θ为距离与x轴间的夹角,δ为冲激函数。使用Radon变换标记虹膜噪声区域,如图2所示。
由于虹膜的上下部分常被眼睑遮挡,而左右部分受眼睑遮挡一般较少,因此在提取眼睑噪声区域后,只取以区域水平线为中心的左右部分两段圆弧,如图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所示。
得到虹膜归一化图像后,为了增大图像的对比度,得到清晰的虹膜纹理,便于特征提取,采用直方图均衡化来达到增强图像的效果,如式(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分别表示不同类别的虹膜图像。
本文将每个虹膜图像的通道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函数波。
滤波器参数为wavelength=1/f0=18、sigma=β/f0=0.5,得到的32×180表征虹膜纹理信息的特征数据如图7所示。
1.3 特征编码
虹膜图像经过Log-Gabor滤波后得到其纹理的特征系数后,判断其系数的实部和虚部的正负进行量化编码,如式(9)所示。
其中,hRe、hIm分别表示为滤波后特征数据的实部与虚部,fft表示傅里叶变换,ifft表示为傅里叶反变换。本文使用的Log-Gabor滤波提取的虹膜纹理特征编码后的数据如图8所示,编码后生成一个32×360的二进制虹膜特征模板,虹膜特征模板如图9所示。
1.4 虹膜特征匹配
本文使用的是基于汉明距离的分类器进行匹配。其原理为:设A与B是两个虹膜特征编码模板,长度为N,汉明距离表示为:
计算出的距离HD越小,表明这两个特征模板的匹配度越高。
虹膜类内汉明距离分布如图10(a)所示,类间汉明距离的分布如图10(b)所示,虹膜类内类间汉明距离分布如图10(c)所示。类内类间汉明距离分布接近正态分布,由于类间虹膜的汉明距离远大于类内虹膜的汉明距离,因此可以通过设置合适的分类阈值对虹膜进行类别识别匹配。
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间,本文使用的算法识别性能优于其他两种算法,识别的准确率较高。
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变换代码_基于Haar小波和Log-Gabor变换的虹膜识别方法相关推荐
- 二维小波变换_小波变换-哈尔小波(Haar)
最近比较忙,但是在网上无意中看到一篇哈尔小波的文章,觉得浅显易懂,就将其摘录下来,原文链接: https://blog.csdn.net/u014744118/article/details/5043 ...
- 傅里叶变换 matlab代码_基于机器学习的心律失常分类(三)——小波阈值去噪[MATLAB]...
在对心电信号进行分析前,需要对其进行去噪预处理.因为在心电信号采集或者数模转换的过程中,会产生噪声,包括工频干扰.肌电干扰.基线漂移这三种.本文将介绍目前十分常用且有效的一种去噪方法--小波阈值去噪. ...
- 图像算法五:【图像小波变换】多分辨率重构、Gabor滤波器、Haar小波
matlab设计: 与单纯运用某种自适应算法相比,基于小波分解的自适应滤波算法在收敛速度和稳定性上都有了很大的提高 小波变换: 示意:尺度越大,采用越大的时间窗,尺度越小,采用越短的时间窗,即尺度与频 ...
- 【图像去噪】基于matlab小波滤波(硬阙值+软阙值)+中值滤波图像去噪【含Matlab源码 462期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab小波滤波(硬阙值+软阙值)+中值滤波图像去噪[含Matlab源码 462期] 获取代码方式2: 通过订阅紫极神光 ...
- Haar小波提升算法
传统的小波变换是在傅里叶变换的基础上演变而来,计算过程中存在着大量的卷积运算或是乘累加的计算,如若在硬件上实现,势必会消耗大量的寄存器资源,而且速度也上不去.提升小波又称为第二代小波,最早是由 Swe ...
- 二维haar小波matlab_洪泽湖入湖水沙序列的多时间尺度小波分析
摘要: 为了分析洪泽湖入湖水沙序列的多时间尺度变化过程及特征,预测洪泽湖入湖水沙变化趋势,利用洪泽湖1975-2015年的年来水.来沙量数据,在统计分析的基础上,对洪泽湖年来水.来沙序列进行延伸和距平 ...
- 正交db小波 图像处理 matlab,基于matlab小波工具箱的数字图像处理及小波分析
基于matlab小波工具箱的数字图像处理及小波分析 基于 Matlab 小波工具箱的数字图像处理摘要:小波分析在图像处理中有非常重要的应用,包括图像压缩.去噪.分解和增强等.运用多分辨率分析可以将信号 ...
- 【小波变换】小波变换入门----haar小波
小波可以认为是一个带通滤波器,只允许频率和小波基函数频率相近的信号通过.小波变换的基本思想是用一组小波函数和基函数表示一个函数或者信号. haar小波变换 首先,以haar小波变换过程为例来理解小波变 ...
- 【语音去噪】基于matlab小波硬阈值语音降噪【含Matlab源码 532期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[语音去噪]基于matlab小波硬阈值语音降噪[含Matlab源码 532期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
最新文章
- C++ OP相关注意事项
- RESTful编程究竟是什么?
- Alibre Design 2018中文版
- linux mac地址文件夹,android4.4.2系统的mac地址文件在哪个文件里面
- 概率论 一维随机变量
- Firefox必备的24款web开发插件[转]
- 接口向mapper传参数
- 20172318 2018-2019-1 《程序设计与数据结构》第9周学习总结
- java基本命令_java基础篇 快捷键 常见Dos命令等等
- java每轮排序结果,冒泡排序及其优化java
- python123输出hello world_2-python学习——hello world
- 高手常用的15 种 SQL 优化
- PSPnet预训练模型caffe model转pytorch
- IOS 微信端 视频自动播放问题解决方法
- Windows系统下上架iOSAPP
- ubuntu20.04 外接显示器检测不到 未知的显示器 显卡安装黑屏 解决方案
- 软件工程 个人学习笔记(第三章)
- php json里面追加一个数组,如何往指定是json数组里面添加数据
- 求助大神Mac换硬盘后的奇葩问题
- IPv4向IPv6转换的几种技术分析(中科三方)
热门文章
- 孙悟空吃蟠桃c语言编程,孙悟空吃了几壶仙丹, 几颗蟠桃, 怎么就炼成金刚不坏之身了?...
- 普歌-浅谈RabbitMQ
- 超级详细!!!Spring、SpringMVC、Mybatis知识点完整版更新!IOD、DI依赖注入、Mybatis配置、SQL、MVC拦截器、Web开发、SSM整合案例。
- STM32硬件AES
- 增长黑客AB-Test系统(三)——AB-Test Hash分流
- 【职业女性着装全攻略】_职业女性应该怎样着装
- 2年5个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天
- CentOS联网(图解超详细)
- 静态路由配置(不会配静态路由,看这里就够了!)
- (转载)机器学习方法的PPT .