发明名称 一种基于小波变换过零表示的虹膜识别方法
摘要 本发明公开了一种基于小波变换过零表示的虹膜身份识别算法,此算法能够在欠理想的情况下,即所采集的虹膜图像存在一定眼皮遮挡和一定形变的,仍然能够通过小波变换过零表示的方法准确的提取特征点,并进行虹膜编码,从而完成正确的身份识别。同时,本发明对原来图像进行了基于一定阀值的二值化处理,所以能够提高瞳孔粗定位的精度和简化瞳孔精定位,并能提高精度。提出基于虹膜外缘粗定位的双阀值处理,进行中值滤波后,能够有效提取虹膜的大概部分,并进行快速比较准确的粗定位。在之后的Hough变换精定位过程中要使用粗定位的结果,并且比较精确的定位虹膜外缘。使用4阶B-样条小波滤波器进行特征提前并进行虹膜编码,有效的提取信息部分,简化编码,提高匹配的效果。
申请公布号 CN101093538A 申请公布日期 2007.12.26
申请号 CN200610021197.2 申请日期 2006.06.19
申请人 电子科技大学 发明人 解梅;李栩荣
分类号 G06K9/00(2006.01) 主分类号 G06K9/00(2006.01)
代理机构 代理人
主权项 1.一种基于小波变换过零表示的虹膜身份识别算法,其特征在于包括如下步骤:步骤1,将虹膜摄像采集装置靠近人眼,在人眼进入摄像范围内后进行图像采集,通过数字图像采集CCD的光电转换得到含有虹膜图像的原始灰度图像I(x,y),图像左上角为I(x,y)的零点I(0,0),图像向右令横坐标x递增,图像向下令纵坐标y递增,得到人眼图像,虹膜图像的原始灰度图像I(x,y)的取值范围为0~255,x的范围为1~M,y的范围为1~N,原图像大小为M×N;步骤2,显示原始灰度图像I(x,y)的直方图,标识1左面的第一个峰值为瞳孔区域的灰度值,取阈值T0为其向右的第一个谷值;步骤3,对步骤1中得到的原始灰度图像I(x,y),用阈值T0进行二值化处理;原始灰度图像I(x,y)小于T0的点I(x,y)的值取为0,I(x,y)大于T0的点I(x,y)的值取为1,组成二值矩阵I’(x,y),得到的二值化图像I’(x,y)大小等于原图像I(x,y);步骤4,瞳孔粗定位;通过步骤3得到原始灰度图像I(x,y)的二值化后的图像I’(x,y),用式子<![CDATA[ <math><mrow><mi>P</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mi>y</mi></munder><msup><mi>I</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths><![CDATA[ <math><mrow><mi>P</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mi>x</mi></munder><msup><mi>I</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow></math>]]></maths>将二值化后的图像进行水平方向上和垂直方向上的投影,得到二值化后的图像水平方向上和垂直方向上的投影值P(x),P(y);并且通过计算<![CDATA[ <math><mrow><msub><mi>X</mi><mi>p</mi></msub><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mi>x</mi></munder><mi>P</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths><![CDATA[ <math><mrow><msub><mi>Y</mi><mi>p</mi></msub><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mi>y</mi></munder><mi>P</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>得到瞳孔粗定位圆的圆心在直角坐标上的结果(x<sub>p</sub>,y<sub>p</sub>),如说明书附图3(c)所示;从水平的投影值P(x)谷值点X<sub>p</sub>向左搜索,得到点P1,满足在P1以后的点的投影值变化比较平缓(在5以内),同理,从谷值点X<sub>p</sub>向右搜索得到P2,满足在P2以后的点的投影值变化比较平缓(在5以内);取P1、P2之间部分的范围为瞳孔的粗定位直径,并且可以得到瞳孔粗定位圆的半径r<sub>p</sub>=P2-P1;步骤5,瞳孔精定位方法:根据步骤4的瞳孔粗定位结果,圆心(x<sub>p</sub>,y<sub>p</sub>)、半径r<sub>p</sub>,通过迭代运算求得瞳孔精确定位结果,圆心(x<sub>0</sub>,y<sub>0</sub>)、半径r,方法为:<![CDATA[ <math><mrow><mi>max</mi><mrow><mo>(</mo><mi>r</mi><mo>,</mo><msub><mi>x</mi><mn>0</mn></msub><mo>,</mo><msub><mi>y</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>|</mo><munder><mi>&Sigma;</mi><mi>m</mi></munder><msup><mi>I</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>,</mo><msub><mi>y</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>)</mo></mrow><mo>-</mo><munder><mi>&Sigma;</mi><mi>m</mi></munder><msup><mi>I</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>y</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>|</mo><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中X<sub>m,k</sub>=r×cos(m×Δθ)+x<sub>0</sub>,x<sub>0</sub>=x<sub>p</sub>+α,α=-10~+10,y<sub>m,k</sub>=r×sin(m×Δθ)+y<sub>0</sub>,y<sub>0</sub>=yp+β,β=-10~+10,r=r<sub>p</sub>+k×Δr,k=-10~+10,α、β、k为变量Δθ是圆周上的一个角度采样间隔,取Δθ=1°,所以m=0~360,Δr为在半径方向上的间隔,取Δr=1;通过α、β、k的代入运算,求得当式子(1)得到最大值时的x<sub>0</sub>、y<sub>0</sub>、r的值,则瞳孔的精确定位结果:圆心为(x<sub>0</sub>,y<sub>0</sub>)、半径为r<sub>0</sub>;步骤6,虹膜外缘粗定位方法:从步骤5得到的瞳孔精定位结果,由虹膜外缘半径范围的先验知识,取一个与瞳孔同心、半径值为比瞳孔半径值大20个像素的同心圆,求出这个圆和瞳孔圆之间的虹膜部分的灰度值平均值Avg:Avg=位于这环形区域点的灰度值的和÷位于这环形区域之间的总点数;计算过程是:环形区域中的点的集合s:{(x,y)|瞳孔圆心<sup>2</sup>≤x<sup>2</sup>+y<sup>2</sup>≤(瞳孔圆心+20)<sup>2</sup>}原图像上的灰度值为I(x,y),位于这环形区域点的灰度值的和为<img file="A2006100211970003C1.GIF" wi="221" he="95" />位于这环形区域之间的总点数为集合s的点的总数;令阈值T1=Avg-15,阈值T2=Avg+15,作为双阈值对原灰度图像I(x,y)进行如下处理:<img file="A2006100211970003C2.GIF" wi="1453" he="137" />这样得到图像矩阵I”(x,y)是基本上只包含虹膜部分的图像,再对其进行中值滤波,得到图像矩阵I<sub>2</sub>(x,y);求I<sub>2</sub>(x,y)在水平投影值<![CDATA[ <math><mrow><msup><mi>P</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mi>v</mi></munder><msub><mi>I</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>然后求<![CDATA[ <math><mrow><msup><msub><mi>X</mi><mi>p</mi></msub><mo>&prime;</mo></msup><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mi>x</mi></munder><msup><mi>P</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>从谷值点X<sub>p</sub>′向左搜索,得到点P1’,满足在P1’以后的点的点间灰度值变化比较平缓(在5以内);同理,从谷值点X<sub>p</sub>′向右搜索得到P2’,满足在P2’以后的点的点间灰度值变化比较平缓(在5以内);取P1’、P2’之间部分的范围为虹膜外缘的粗定位直径,并且可以得到虹膜外缘粗定位圆的半径R’=P2’-P1’,虹膜外缘粗定位圆心设为与瞳孔精定位圆心一样,为(x<sub>0</sub>,y<sub>0</sub>;步骤7,虹膜外缘精定位方法:对步骤3二值化后的图像,进行基于Canny算子的边缘提取,得到关于边缘的二值图像,1为边缘,0为其他点;根据步骤6的虹膜外缘粗定位半径R’和圆心(x<sub>0</sub>,y<sub>0</sub>),在R’±δ,x<sub>0</sub>±α,y<sub>0</sub>±β范围内和在图像的-45°~45°and 135°~225°范围内进行Hough变换,其中δ、α、β为待定常数,其取值与精度和运算量有关,它们的值越大精度越高、运算量越大,反之亦然;这样就可以得到虹膜外缘的精定位结果:半径为R,圆心为(x<sub>i</sub>,y<sub>i</sub>);步骤8,对原图像进行归一化处理:由步骤5的瞳孔精定位结果(x<sub>0</sub>,y<sub>0</sub>,r<sub>0</sub>)和步骤7的虹膜外缘精定位结果(x<sub>i</sub>,y<sub>i</sub>,R),进行虹膜图像归一化处理;把原灰度图像的虹膜部分归一化为64×512的矩形图像I_nor(i,j),1≤i≤64、1≤j≤512;步骤9,对步骤8得到的图像进行光照不均的校正,然后进行直方图均衡化,得到总体亮度均匀、纹理清晰的图像I_adj(i,j),1≤i≤64、1≤j≤512;步骤10,虹膜编码:对步骤9所得到的图像进行特征点提取;先用4阶B-样条小波滤波器对步骤9所得到的图像I_adj(i,j)分别在水平方向和垂直方向进行卷积滤波;4阶B-样条小波滤波器:是一个小波滤波器,其参数如下:表1 4阶B-样条小波滤波器<tables id="tabl0001" num="0001"><img file="A2006100211970004C1.GIF" wi="1547" he="248" /></tables>K是变量,ψ(K)是相应的小波函数值;卷积方法如下:temp_h(i,j)=ψ(-i)*I_adj(i,j)……行方向上卷积,j固定temp_v(i,j)=ψ(-j)*I_adj(i,j)……列方向上卷积,i固定分别得到行和列方向上的卷积滤波后的临时存储矩阵temp_h(i,j),temp_v(i,j),并且进行如下判决得到行和列方向上编码,行和列方向上的编码进行与操作得到虹膜编码:<img file="A2006100211970004C2.GIF" wi="1252" he="348" /><img file="A2006100211970004C3.GIF" wi="1312" he="351" />3.令code(i,j)=code_h(i,j)And code_v(i,j),这里的And为求两个数的与运算,以上i=1~64,j=1~512;这样二值化矩阵code(i,j)就是由虹膜特征点所组成的虹膜编码,大小为64×512;步骤11,编码匹配:由步骤9得到的矩阵code(i,j)可以代表原始图像的虹膜的编码,如果要把两个虹膜编码code1(i,j)和code2(i,j)进行匹配,可以使用下面的Hamming距离的式子,其表征的意义为两个虹膜编码之间的相似程度:<![CDATA[ <math><mrow><mi>Ham</mi><mi>min</mi><mi>g</mi><mo>_</mo><mi>Dis</mi><mi>tan</mi><mi>ce</mi><mo>=</mo><munder><mi>Min</mi><mi>&phi;</mi></munder><mo>{</mo><mfrac><mn>1</mn><mrow><mi>M</mi><mo>&times;</mo><mi>N</mi></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>M</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mi>N</mi></munderover><mrow><mo>(</mo><mi>code</mi><mn>1</mn><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>&phi;</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>Xor</mi><mrow><mo>(</mo><mi>code</mi><mn>2</mn><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>for-10≤φ≤10如果HammingDistance小于某阈值T,则两个虹膜是相同虹膜;如果HammingDistance大于T,则两个虹膜是不相同虹膜;其中T的取值和样本的性质有关,可以在数据统计的时候决定最优的阈值T。
地址 610054四川省成都市建设北路二段四号