G06K9/00 G06K9/62
1.多注册指纹融合方法其特征在于,它依次含有以下步骤:
一、学习阶段
计算机在离线状态下对所有注册的指纹进行细节点的提取、存储,再进行伪细节点的 去除和特征融合后,建立数据库;它依次含有以下步骤:
(1)对计算机进行初始化
设定下列各初始值:
设定注册指纹数量m=4;
在指纹有效区域的检测步骤中,对于已经分割成大小为4×4像素的方格的原始指纹图 像而言,当以点(i,j)为左上角的每一个方格的灰度均值I avg(i,j)和方差Var(i,j)处于下述范 围内时,该方格为有效,标记为1;否则为无效,标记为0;
th1<I avg(i,j)<th2且Var(i,j)>th3,其中th表示为阈值:th1=20;th2=220;th3=6;
在图像增强的步骤中,Gabor滤波器空域表达形式G(x 掩,y 掩,θ)中的参数值 δ x′=δ y′=5.0,f=0.6,空域掩模大小为7×7像素;
设定细节点比对中两个细节点比对成功的阈值为8像素;
设定特征融合的置信度阈值为0.5;
设定最终融合相似度域值Th s为0.4;
(2)计算机通过取指器采集所有注册指纹的原始图像并存储,对同一枚手指提取m 枚指纹;
(3)计算机检测指纹的有效区域,它依次包含以下步骤:
(3.1)把原始图像分割成大小为4×4像素的方格;
(3.2)计算机按下式计算以点(i,j)为左上角的每一个方格的灰度均值I avg(i,j)和方差 Var(i,j):
其中,I(i+x,j+y)为(i+x,j+))点的图像灰度值;
(3.3)计算机按下式判断上述每一个方格是否有效:
若th1<I avg(i,j)<th2且Var(i,j)>th3,则该方格有效标记为1;
(3.4)去噪声处理
(3.4.1)对上述图像进行3×3滤波,即检查以待测点为中心的3×3邻域内的9个点, 如果只有该待测点是有效的,则认为该点为噪声,更改标记为0,表明以该点为左上角的方 格无效;若只有该待测点是无效的,则认为该点为有效点,更改标记为1,表明以该点为左 上角的方格有效;
(3.4.2)去掉有效区域中间的“洞”,即逐行对上述图像扫描,填补最左边和最右边 的有效点之间的所有无效点,将其标记为有效;逐列扫描,填补最上边和最下边的有效点之 间的所有无效点,将其标记为有效,从而得到有效区域,长和宽分别为原图的1/4;
(4)用基于梯度统计的金字塔形算法进行方向场估计,它依次包含以下步骤:
(4.1)利用Soble算子的水平方向算子S x和竖直方向算子S y求取点(x,y)的灰度梯 度:
水平方向:
竖直方向:
其中I(i,j)为(i,j)点的灰度值,S x(x-i,y-j),S y(x-i,y-j)分别表示水平和竖直方向 的Soble算子,在(x-i,y-j)点的值,算子分别用一个大小为3×3的掩膜表示;
(4.2)把指纹图划分成大小为 W× W的方格, W=7,再依次进行以下步骤:
(4.2.1)用下式求取每一方格对应的局部方向θ:
(4.2.2)计算方向场一致性水平:
其中,Ω是第(i,j)方格的邻域,取为5×5,N是Ω中所含方格的个数,N=25; θ(i′,j′)和θ(i,j)分别为第(i′,j′)和第(i,j)方格的局部方向;
若E 0>T c,则 令 W=1.5 W,重新估计Ω中各方格的方向,重复步骤(4.2.1)和(4.2.2);直至E 0≤T c, 这里T c=1.5;
(5)采用Gabor滤波方法进行图像增强,它依次包含以下步骤:
(5.1)Gabor滤波器空域表达形式为:
其中
θ∈[0,180)为当前点的方向场垂直方向,x 掩,y 掩为掩膜中各点相对于掩膜中心点的坐标, δ x′=δ y′=5.0,f=0.6,空域掩膜大小为7×7像素;
(5.2)自适应滤波:
假设输入指纹灰度图像为I(i,j),θ为(i,j)点方向场方向垂直的方向,则用上述 滤波器滤波如下:
其中W=3;
然后按下式求取一个数值:
其中L=12为统计数据区域长度,D=2为统计步长,进行脊线提取:如果 F(i,j)>flag(i,j),则(i,j)点位于谷即背景,否则位于脊即前景;
(6)脊线细化,它依次包含以下步骤:
(6.1)在保持原图的骨架即不改变拓扑结构和不删除直线端点的前提下,根据以待测点 为中心的8邻域的不同状态来决定待测点的“去”或“留”,“去”用“0”表示,“留”用“1” 表示;
(6.2)建立1维索引表table,标记索引为0~255,共256个元素,每个元素取1表示保 留,0表示去掉;
(6.3)遍历有效区域内所有点,考察其8邻域,对所有排列组合通过下面的公式映射到 0~255之间:
index=A32×2 0+A31×2 1+A21×2 2+A11×2 3
+A12×2 4+A13×2 5+A23×2 6+A33×2 7;
其中,Aij代表8个邻域中的点的值,然后通过查询索引表中索引值为index的元 素即table[index],决定该待测点是否保留或者去掉;
(6.4)重复(6.3)直到没有被去掉的点出现;
(6.5)细化后处理:
(6.5.1),按照细化图,初步确定细节点中的端点,即本身为1且周围8个点 中有且仅有一个点为1,和分岔点,即本身为1且周围8个点中有且仅有三个点 为1;
(6.5.2),沿着细节点生长,对细节点进行后处理:
(a),对于端点,如果在其12×12的邻域内有另一个端点的方向与之接近,即 角度差小于Tha=30度,则将这两个端点都去掉;
(b),将形成环形的邻近分叉点连接起来,对于一个分叉点,如果在其12×12 的邻域内有另一个分叉点的方向与之接近,即角度差小于Tha=30度,则将两者 都去掉;
(c),去除一些小短棒对应的两个端点,对于一个端点,如果沿着它所在脊线 经过12个像素之内就碰到另一个端点,则将两个端点都去掉;
(6.5.3),筛除方向与该点方向场角度差大于30度的特征点;
(7)对所有注册指纹进行步骤(2)~(6)的操作,并把所得的细节点集合存入数据 库;
(8)对同一枚手指的m枚指纹两两进行细节点比对;
(8.1)用基于Hough变换的方法进行细节点配准:
计算补偿旋转和平移偏差,按照下面方法计算:把两个指纹各自的细节点分别构 成各自含有M和N个细节点的点集,从两个点集中各选一个细节点分别表示为 (x 1,y 1,θ 1)和(x 2,y 2,θ 2),利用它们之间的坐标、方向求出一个平移量: 一个旋转量:Δ θ=θ 2-θ 1,遍历所有M×N对细节点对,统计 (Δ x,Δ y,Δ θ)出现的次数,得票最高的平移旋转量就是最终使用的平移旋转量,同时记 录得票数vote;
用下面的公式计算平移旋转后的新坐标:
x″=x′×cos(Δ θ)-y′×sin(Δ θ)+Δ x;
y″=x′×sin(Δ θ)-y′×cos(Δ θ)+Δ y;
其中(x′,y′)是旋转平移前的坐标,(x″,y″)是旋转平移后的坐标;
(8.2)公共有效区域提取:
记两枚指纹r,t配准后的有效区域分别为R r、R t,根据上面求得的参数 (Δ x,Δ y,Δ θ),利用上述新坐标求取公式对R t进行旋转平移,则公共有效区域为 R=R r∩R t;
(8.3)比对指纹r,t中所有的细节点,记录比对成功的细节点对数;若两幅匹配 好的指纹图中的两个细节点距离小于设定用像素数表示的阈值,则比对成功,该阈值 为8;
(8.4)计算指纹r,t细节点集合的相似度M rt,0<M rt<1:
其中count表示比对成功的细节点对数,count r表示指纹r在两幅指纹公共有效 区域内的细节点个数,count t表示指纹t在两幅指纹公共有效区域内的细节点个数; Th为经验阈值,取为12;
(9)特征级融合,即把数据库中对应同一个手指的m枚指纹中的细节点进行融合,它 依次含有以下步骤:
(9.1)把同一手指对应的m枚注册指纹两两按上述步骤(8)所述的方法进行细节点比对 操作,得出用S ij表示的两枚指纹之间的相似度,其中:S ij表示第i枚指纹与第j枚指纹的相 似度,i=1,2,…m,j=1,2,…m,且i≠j;
(9.2)计算每一枚指纹相对于其他m-1枚指纹的优良性参数J i:
(9.3)按下式选取m枚指纹中J值最高的一个作为基准,即J a=max(J i),i=1,2,…,m,记 为F 1;
(9.4)将F 1中所有细节点M k的置信度c k记为1,即c k=1,k=1,2,…,n 1,n 1表示F 1中细节 点的个数;
(9.5)将F 1复制到模板T,令n t=n 1,n t为模板中细节点个数,用c k表示模板T中第k个细 节点的置信度,与步骤(9.4)中的c k值相等;
(9.6)对于T中的所有细节点M k,k=1,2,…,n t,在F 2的所有细节点M j,j=1,2,…,n 2中, 寻与M k匹配的细节点,即两个细节点距离小于8像素:
如果到,则T中的细节点M k的置信度c k增1,即c k=c k+1;
如过所有的寻已经进行完,而F 2中某个细节点仍未与T中任何细节点匹配,则直接将 其加到T中并将其置信度置为1,同时令T中细节点数n t=n t+1;
对于F 2中所有没有匹配的细节点都进行这样的操作;
(9.7)重复步骤(9.6),依次把F 2替换成F 2,…,F m,直到所有m枚指纹融合完毕;
(10)对融合后的模板T进行后处理,即去掉置信度低于某一阈值的细节点,得到 一个由细节点合成的合成模板,该阈值为0.5;
(11)对数据库中每一个手指进行上述步骤(9)~(10)的操作,则每一个手指对 应唯一的一个合成模板;
二、验证阶段
(1)把申请指纹按学习阶段的步骤(2)~(6)进行细节点提取;
(2)把(1)中得到的申请指纹的细节点按学习阶段的(8)和同一手指的模板进行 细节点比对得出相似度S f;
(3)决策融合,它依次含有以下步骤:
(3.1)把(1)中得到的申请指纹的细节点与同一个手指的所有m枚注册指纹按学 习阶段步骤(8)进行细节点比对,得出m个相似度S 1,...,S m;
(3.2)按下式求取申请指纹与注册手指之间的相似度S d:
(4)最终融合:用下面所选的加权平均方法对合成模板给出的相似度S f和决策融合 给出的相似度S d进行最终融合:
(4.1)计算最终融合的相似度S:
S=w dS d+(1-w d)S f,其中w d是决策融合结果的权重,设定为w d=0.5;
(4.2)比较S与预设的相似度阈值Th s,设定为0.4:
若S≥Th s,则判断申请者与注册者是同一个人;
若S<Th s,则判断申请者与注册者不是同一个人。
本发明涉及指纹识别领域,特别涉及含有多枚注册指纹的指纹识别系统中信息融合的技 术。
随着社会的发展与进步,进行快速、有效、自动的人身辨别的实际要求日益迫切,重要 部门保安、过境控制、移民检查、机密或贵重物品保存场所的进出、防止信用卡欺骗、网络 安全等都需要进行可靠的人身鉴别。在身份验证的依据中,钥匙、证件可能会丢失、被盗或 复制,密码又容易被忘掉、混淆或被偷看,而生物特征(包括指纹、人脸、手形、手写签名、 虹膜等)是人的内在属性,它们不会出现上述情况,因此成为最理想的辨别依据。这其中, 指纹识别是应用最普遍、识别率最高、最容易被接受的个人身份认定方法。作为物证之首, 指纹识别已有一个非常漫长而且成果丰富的历史。基于计算机的自动指纹识别始于二十世纪 60年代,它首先应用在刑事侦破中。近年来,指纹自动识别从刑事应用逐渐推广到考勤、门 禁、银行保险箱、社会保险等领域,我国也已初步决定在新一代身份证中引入指纹信息进行 个人身份认证。在美国911恐怖事件后,基于指纹自动识别的个人身份识别更是得到前所未 有的重视。
目前的指纹自动识别方法主要是基于细节点特征的,即提取细节点(指纹中脊线的终结 点或交叉点)作为特征来表征指纹图像,通过比对这些特征进行识别。其步骤一般包括:指 纹图像采集、方向图(指纹纹理的方向)提取、图像增强、指纹脊线细化、细节点提取等。 围绕着如何更好更快地提取细节点,近二十年来国内外研究单位做出了大量工作,并且现有 指纹产品都是基于这种方法的,如美国BAC公司的SecuTouch,日本Sony公司的FIU-500, 美国BII公司的Veriprox,韩国Bogo公司的Bogo2000,美国DP公司的U.are.U 2000,美 国Identix公司的Biologon等。
实际应用表明,单纯用一枚注册指纹、一种特征、一个分类器很难达到实际要求的性能。 因此,实用的自动指纹识别系统,在注册阶段都会要求用户对同一枚手指进行多次按捺以获 取多枚注册指纹。如何充分利用多枚注册指纹的信息,是提高指纹识别系统性能的一个重要 课题。在所有可以查到地专利或发表文献中,与本发明相近的方法有:在“Xudong Jiang,and Wee Ser,“Online Fingerprint Template Improvement”,IEEE Trans.Pattern Analysis and Machine Intelligence,vol.24,No.8,pp.1121-1126,Aug.2002”中提到的生成指纹模板的特征级融合方法和 “Salil Parbhakar,Anil K.Jain,“Decision-level fusion in fingerprint verification”,Pattern Recognition vol.35,pp.861-874,2002.”中提到的基于联合概率密度估计的Neyman-Pearson准 则的决策级方法。本发明则是利用特征融合和决策融合能够互补的特性,提出了两种具体的 新融合方法,在特征融合和决策融合的结果之上再进行融合,更好地提高系统识别率的性能。
本发明的目的是充分利用多枚注册指纹中含有的有用信息,来提高指纹识别系统的性 能。所用的识别算法是基于细节点的指纹识别算法。
本发明的特征在于:
它依次含有以下步骤:
一、学习阶段
计算机在离线状态下对所有注册的指纹进行细节点的提取、存储,再进行伪细节点的去 除和特征融合后,建立数据库;它依次含有以下步骤:
(1)对计算机进行初始化
设定下列各初始值:
设定注册指纹数量m=4;
在指纹有效区域的检测步骤中,对于已经分割成大小为4×4像素的方格的原始指纹 图像而言,当以点(i,j)为左上角的每一个方格的灰度均值Iavg(i,j)和方差Var(i,j)处于 下述范围内时,该方格为有效,标记为1;否则为无效,标记为0;
th1<Iavg(i,j)<th2且Var(i,j)>th3,其中th表示为阈值:th1=20;th2=220;th3=6;
在图像增强的步骤中,Gabor滤波器空域表达形式G(x掩,y掩,θ)中的参数值 δx′=δy′=5.0,f=0.6,空域掩模大小为7×7像素;
设定细节点比对中两个细节点比对成功的阈值为8像素;
设定特征融合的置信度阈值为0.5;
设定最终融合相似度域值Ths为0.4;
(2)计算机通过取指器采集所有注册指纹的原始图像并存储,对同一枚手指提取m 枚指纹;
(3)计算机检测指纹的有效区域,它依次包含以下步骤:
(3.1)把原始图像分割成大小为4×4像素的方格;
(3.2)计算机按下式计算以点(i,j)为左上角的每一个方格的灰度均值Iavg(i,j)和方 差Var(i,j):
其中,I(i+x,j+y)为(i+x,j+y)点的图像灰度值;
(3.3)计算机按下式判断上述每一个方格是否有效:
若th1<Iavg(i,j)<th2且Var(i,j)>th3,则该方格有效标记为1;
(3.4)去噪声处理
(3.4.1)对上述图像进行3×3滤波,即检查以待测点为中心的3×3邻域内的9 个点,如果只有该待测点是有效的,则认为该点为噪声,更改标记为0,表明以该 点为左上角的方格无效;若只有该待测点是无效的,则认为该点为有效点,更改标 记为1,表明以该点为左上角的方格有效;
(3.4.2)去掉有效区域中间的“洞”,即逐行对上述图像扫描,填补最左边和最 右边的有效点之间的所有无效点,将其标记为有效;逐列扫描,填补最上边和最下 边的有效点之间的所有无效点,将其标记为有效,从而得到有效区域,长和宽分别 为原图的1/4;
(4)用基于梯度统计的金字塔形算法进行方向场估计,它依次包含以下步骤:
(4.1)利用Soble算子的水平方向算子Sx和竖直方向算子Sy求取点(x,y)的灰度梯度:
水平方向:
竖直方向:
其中I(i,j)为(i,j)点的灰度值,Sx(x-i,y-j),Sy(x-i,y-j)分别表示水平和竖直 方向的Soble算子,在(x-i,y-j)点的值,算子分别用一个大小为3×3的掩膜表示;
(4.2)把指纹图划分成大小为 W× W的方格, W=7,再依次进行以下步骤:
(4.2.1)用下式求取每一方格对应的局部方向θ:
(4.2.2)计算方向场一致性水平:
其中,Ω是第(i,j)方格的邻域,取为5×5,N是Ω中所含方格的个数,N=25; θ(i′,j′)和θ(i,j)分别为第(i′,j′)和第(i,j)方格的局部方向;
则令 W=1.5 W,重新估计Ω中各方格的方向,重复步骤(4.2.1)和(4.2.2);直至
E0≤Tc,这里Tc=1.5;
(5)采用Gabor滤波方法进行图像增强,它依次包含以下步骤:
(5.1)Gabor滤波器空域表达形式为:
其中
θ∈[0,180)为当前点的方向场垂直方向,x掩,y掩为掩膜中各点相对于掩膜中心点的 坐标,δx′=δy′=5.0,f=0.6,空域掩膜大小为7×7像素;
(5.2)自适应滤波:
假设输入指纹灰度图像为I(i,j),θ为(i,j)点方向场方向垂直的方向,则用上述 滤波器滤波如下:
其中W=3;
然后按下式求取一个数值:
其中L=12为统计数据区域长度,D=2为统计步长,进行脊线提取:如果 F(i,j)>flag(i,j),则(i,j)点位于谷即背景,否则位于脊即前景;
(6)脊线细化,它依次包含以下步骤:
(6.1)在保持原图的骨架即不改变拓扑结构和不删除直线端点的前提下,根据以 待测点为中心的8邻域的不同状态来决定待测点的“去”或“留”,“去”用“0” 表示,“留”用“1”表示;
(6.2)建立1维索引表table,标记索引为0~255,共256个元素,每个元素取1 表示保留,0表示去掉;
(6.3)遍历有效区域内所有点,考察其8邻域,对所有排列组合通过下面的公式映 射到0~255之间:
index=A32×20+A31×21+A21×22+A11×23
+A12×24+A13×25+A23×26+A33×27;
其中,Aij代表8个邻域中的点的值,然后通过查询索引表中索引值为index的 元素即table[index],决定该待测点是否保留或者去掉;
(6.4)重复(6.3)直到没有被去掉的点出现;
(6.5)细化后处理:
(6.5.1),按照细化图,初步确定细节点中的端点,即本身为1且周围8个 点中有且仅有一个点为1,和分岔点,即本身为1且周围8个点中有且仅有三 个点为1;
(6.5.2),沿着细节点生长,对细节点进行后处理:
(a),对于端点,如果在其12×12的邻域内有另一个端点的方向与之接近, 即角度差小于Tha=30度,则将这两个端点都去掉;
(b),将形成环形的邻近分叉点连接起来,对于一个分叉点,如果在其12×12 的邻域内有另一个分叉点的方向与之接近,即角度差小于Tha=30度,则将两 者都去掉;
(c),去除一些小短棒对应的两个端点,对于一个端点,如果沿着它所在脊 线经过12个像素之内就碰到另一个端点,则将两个端点都去掉;
(6.5.3),筛除方向与该点方向场角度差大于30度的特征点;
(7)对所有注册指纹进行步骤(2)~(6)的操作,并把所得细节点集合存入数据库;
(8)对同一枚手指的m枚指纹两两进行细节点比对;
(8.1)用基于Hough变换的方法进行细节点配准:
计算补偿旋转和平移偏差,按照下面方法计算:把两个指纹各自的细节点分别 构成各自含有M和N个细节点的点集,从两个点集中各选一个细节点分别表示为 (x1,y1,θ1)和(x2,y2,θ2),利用它们之间的坐标、方向求出一个平移量: 一个旋转量:Δθ=θ2-θ1,遍历所有M×N对细节点对,统 计(Δx,Δy,Δθ)出现的次数,得票最高的平移旋转量就是最终使用的平移旋转量,同 时记录得票数vote;
用下面的公式计算平移旋转后的新坐标:
x″=x′×cos(Δθ)-y′×sin(Δθ)+Δx;
y″=x′×sin(Δθ)-y′×cos(Δθ)+Δy;
其中(x′,y′)是旋转平移前的坐标,(x″,y″)是旋转平移后的坐标
(8.2)公共有效区域提取:
记两枚指纹r,t配准后的有效区域分别为Rr、Rt,根据上面求得的参数 (Δx,Δy,Δθ),利用上述新坐标求取公式对Rt进行旋转平移,则公共有效区域为 R=Rr∩Rt;
(8.3)比对指纹r,t中所有的细节点,记录比对成功的细节点对数;若两幅匹 配好的指纹图中的两个细节点距离小于设定用像素数表示的阈值,则比对成功,该 阈值为8;
(8.4)计算指纹r,t细节点集合的相似度Mrt,0<Mrt<1:
其中count表示比对成功的细节点对数,countr表示指纹r在两幅指纹公共有 效区域内的细节点个数,countt表示指纹t在两幅指纹公共有效区域内的细节点个 数;Th为经验阈值,取为12;
(9)特征级融合,即把数据库中对应同一个手指的m枚指纹中的细节点进行融合, 它依次含有以下步骤:
(9.1)把同一手指对应的m枚注册指纹两两按上述步骤(8)所述的方法进行细 节点比对操作,得出用Sij表示的两枚指纹之间的相似度,其中:Sij表示第i枚指纹 与第j枚指纹的相似度,i=1,2,…m,j=1,2,…m,且i≠j;
(9.2)计算每一枚指纹相对于其他m-1枚指纹的优良性参数Ji:
(9.3)按下式选取m枚指纹中J值最高的一个作为基准,即
Ja=max(Ji),i=1,2,…,m,记为F1;
(9.4)将F1中所有细节点Mk的置信度ck记为1,即ck=1,k=1,2,…,n1,n1表示 F1中细节点的个数;
(9.5)将F1复制到模板T,令nt=n1,nt为模板中细节点个数,用ck表示模板T 中第k个细节点的置信度,与步骤(9.4)中的ck值相等;
(9.6)对于T中的所有细节点Mk,k=1,2,…,nt,在F2的所有细节点 Mj,j=1,2,…,n2中,寻与Mk匹配的细节点,即两个细节点距离小于8像素:
如果到,则T中的细节点Mk的置信度ck增1,即ck=ck+1;
如过所有的寻已经进行完,而F2中某个细节点仍未与T中任何细节点匹配, 则直接将其加到T中并将其置信度置为1,同时令T中细节点数nt=nt+1;
对于F2中所有没有匹配的细节点都进行这样的操作;
(9.7)重复步骤(9.6),依次把F2替换成F2,…,Fm,直到所有m枚指纹融合完毕;
(10)对融合后的模板T进行后处理,即去掉置信度低于某一阈值的细节点,得到一 个由细节点合成的合成模板,该阈值为0.5;
(11)对数据库中每一个手指进行上述步骤(9)~(10)的操作,则每一个手指对应 唯一的一个合成模板;
二、验证阶段
(1)把申请指纹按学习阶段的步骤(2)~(6)进行细节点提取;
(2)把(1)中得到的申请指纹的细节点按学习阶段的(8)和同一手指的模板进行细 节点比对得出相似度Sf;
(3)决策融合,它依次含有以下步骤:
(3.1)把(1)中得到的申请指纹的细节点与同一个手指的所有m枚注册指纹按 学习阶段步骤(8)进行细节点比对,得出m个相似度S1,…,Sm;
(3.2)按下式求取申请指纹与注册手指之间的相似度Sd:
(4)最终融合:用下面所选的加权平均方法对合成模板给出的相似度Sf和决策融合给 出的相似度Sd进行最终融合:
(4.1)计算最终融合的相似度S:
S=wdSd+(1-wd)Sf,其中wd是决策融合结果的权重,设定为wd=0.5;
(4.2)比较S与预设的相似度阈值Ths,设定为0.4:
若S≥Ths,则判断申请者与注册者是同一个人;
若S<Ths,则判断申请者与注册者不是同一个人。
实验表明,本发明提出的多注册指纹的融合算法能够极大地提高指纹识别系统性能。 如图12所示,当各阈值按照上面的推荐值(加权平均相似度阈值0.4)设定时,融合算法 的错误接受率(即将其他手指的指纹认为是这个手指的)一般在0.01%附近,而错误拒绝率 (将同一手指的指纹认为是其他手指的)在8%左右,这个数值还不到单一注册指纹时的一 半(18%左右)。阈值增大会使错误接受率减小,同时使错误拒绝率增大。实际使用中应适 当权衡。
图1多特征指纹识别系统的组成;
图2 Sobel算子,2-1)为水平方向算子,2-2)为竖直方向算子;
图3细节点的类型,3-1)为端点,3-2)为分叉点;
图4是细化的八个例子;
图5为细化索引表;
图6为细化索引建立方式示意图;
图7是指纹识别各步骤中间结果,其中,7-1)是原始指纹图,7-2)是原始有效区域, 7-3)是位于有效区域内增强的指纹图(以下各图均在有效区域内),7-4)是对“脊”(前 景)的细化图,7-5)是对“谷”(背景)的细化图,7-6)是用基于梯度的金字塔方法求得 的方向场图,7-7)是最终求得的细节点在指纹图像中的位置(为突出细节点位置,对指纹 图像作了弱化);
图8是细节点提取的流程;
图9是特征级融合的实例;
图10是人工神经网络的结构;
图11是融合策略的流程;
图12是采用融合策略的系统性能与单使用一枚指纹的性能比较。
本发明可以在普通PC机上实现,对操作系统没有要求。
发明的内容包含基于细节点的指纹识别算法和多注册指纹融合策略。分别说明如下:
基于细节点的指纹识别算法包括:有效区域提取,方向场估计,图像增强与二值化, 细节点提取,细节点比对。融合策略包括特征级融合,决策级融合,以及融合特征与决策 的再融合。其中,有效区域提取、方向场估计、图像增强与二值化、细节点提取和细节点 比对等各步均可采用传统的任意一种方法进行,决策级融合的方法也可采用传统的方法进 行。下面对各步骤逐一介绍:
有效区域提取
通过取指器采集到的原始指纹图中指纹部分并不是充满全图,含有指纹的部分图像在 指纹识别中才有意义,称为有效区域。将原始图像分割为大小为(4×4)的方格,对每个这样 的方格,计算这一区域内所有象素的灰度值的均值与方差,只有两者均满足各自条件时才 认为该点处于有效区域。其中均值和方差的计算依靠下面的公式:
这里,Iavg(i,j),Var(i,j)分别表示在以点(i,j)为左上角的方格的灰度均值和方差, I(i+x,j+y)为(i+x,j+y)点的图像灰度值。要求当th1<Iavg(i,j)<th2且Var(i,j)>th3时, 标记该方格为有效,标记为1。其中,阈值选择为:th1=20;th2=220;th3=6。
对图像上所有的方格进行上述操作,为了去掉噪声影响,需要进行后处理:
1、3×3滤波,具体做法就是检查包含被检测点在内的其3×3邻域内的9个点,如果只 有该点是有效的,其他都是无效的,那么认为该点为噪声,更改标记为0(表明无效);如 果只有该点是无效的,其他都是有效的,那么认为该点为有效点,更改标记为1(表明有效)。
2、去掉有效区域中间的“洞”,方法是逐行扫描,填补图像中最左边和最右边的有效 点之间的所有无效点,将其标记为有效1;逐列扫描,填补图像中最上边和最下边的有效点 之间的所有无效点,将其标记为有效1。
这样就得到了有效区域(长宽分别为原图的1/4)。效果如图7-2)所示。
方向场估计
方向场是表示指纹脊线走向的一幅图像,其中每点的数值代表了指纹图像中对应点的 局部脊线方向。方向图刻画了指纹的全局信息,在指纹识别中起着重要的作用。本方法中 采用的是基于梯度统计的金字塔形算法,效果如图7-6)所示。算法如下:
1、利用Soble算子的水平方向算子Sx和竖直方向算子Sy(见图2)求取点(x,y)的灰度梯 度:
水平方向:
竖直方向:
其中I(i,j)为(i,j)点的灰度值。
2、把指纹图划分成大小为 W× W的方格, W=7,再依次进行以下步骤:
2.1用下式求取每一方格对应的局部方向θ:
2.2计算方向场一致性水平:
其中,D是第(i,j)方格的邻域,取为5×5,N是D中所含方格的个数,N=25。θ(i′,j′) 和θ(i,j)分别为第(i′,j′)和第(i,j)方格的局部方向;
若E0>Tc,则令 W=1.5 W,重新估计D中各方格的方向,重复步骤(4.2.1)和(4.2.2)。 直至E0≤Tc。这里Tc=1.5。
图像增强和二值化
图像增强算法采用Gabor滤波方法,即根据各点方向场取值,用Gabor滤波器进行滤 波。滤波并二值化后效果如图7-3)所示。滤波算法如下:
1、求取指定大小的空域掩膜:
Gabor滤波器空域表达形式为:
其中
θ∈[0,180)为当前点的方向场垂直方向,x掩,y掩为掩膜中各点相对于掩膜中心点的 坐标,δx′=δy′=5.0,f=0.6,空域掩膜大小为7×7像素。由于对于相同的θ,空域 掩膜是相同的。所以可以在滤波之前将空域掩膜一次求取完成并存储下来,以减少 不必要的重复计算。
2、自适应滤波:
对于指纹图像中的点(i,j),假设输入指纹灰度图像为I(i,j),θ为(i,j)点方向场方向垂 直的方向,则用上述滤波器滤波如下:
其中W=3;
然后按下式求取一个数值
其中L=12为统计数据区域长度,D=2为统计步长,进行脊线提取:如果 F(i,j)>flag(i,j),则(i,j)点位于谷(背景),否则位于脊(前景)。
细节点提取
细节点可分为两种,一种是脊线的端点,另一种是脊线的分岔点。如图3所示。细节 点的提取方法我们采用的是基于细化图的方法。分别对前景和背景进行细化,得到两张细 化图。最终结果如图7-4、5)所示。
具体的细化方法如下:
对增强后的指纹图像,我们将其二值化(直接选择阈值为128即可)。每个点取值为1 或者0,1表示前景;0表示背景。细化的目标就是考察每一个值为1的点,根据其8邻域 的取值来决定是否将这个待考察的点置为0(即将该点变成背景),通过对全图的几次遍历, 不断将一些前景(值为1)的点变成背景点,从而达到细化的目的。
我们根据待测点8邻域的不同状态来决定待测点的“去”或“留”。这8个邻域点的 所有可能取值组合有28=256种(每个点只能取1或者0)。我们将每种可能设定为一条规 则对应结果为“1”(保留)或“0”(去除),规则设定的原则是保持原图的骨架。对于 指纹脊线细化,我们定义的骨架,可以理解为图像的中轴,例如一个长方形的骨架是它的 长方向上的中轴线,圆的骨架是它的圆心,环的骨架是类似圆的封闭曲线,直线的骨架是 它自身,孤立点的骨架也是自身。不同应用场合,对骨架的定义可能有不同,我们通过几 个例子说明,图4中给出了几个例子,其中:(1)不能删,因为它是个内部点,如果删去, 就没有了骨架;(2)不能删,这是一个特殊要求,尽量保留直线;(3)不能删,这点是骨架, 删掉后,改变拓扑结构;(4)不能删,因为删掉后,原来相连的部分断开,改变拓扑结构; (5)不能删,因为它是直线的端点;(6)可以删,该点不是骨架;(7)不能删,该点是骨架; (8)可以删,该点不是骨架。我们简单总结一下,有如下的判据:(1)直线端点不能删除;(2) 改变拓扑结构的点不能删除,例如内部点不能删除、孤立点不能删除等。
对所有情况按照上面的例子总结,可以得到256个规则,将其结果编码为一张表(其 实就是一个1维数组,标记0~255,共256个元素),每个待测点的8邻域的值对应一个0 到255的数,将这个数作为索引,查表中对应的值,如果是1表示保留;0表示该点被去掉 (即将这个待测点的值置为0)。
索引方法如图6,Aij代表8个邻域中的点,索引定义为:
index=A32×20+A31×21+A21×22+A11×23+A12×24+A13×25+A23×26+A33×27
按照索引值到表table中对应的元素table[index],其中索引值index的取值范围在[0, 255]内的整数,如果table[index]为1,则保留该点(值不变);如果为0,则将该点置0。 我们采用的表如图5所示。从图4的八个例子中选出两个作说明如下:
图4-2):中心(待测)点不能删,因为:
index=1×20+0×21+0×22+0×23+1×24+0×25+1×26+0×27=81,
table[81]=1,所以表示该点不能去掉。
图4-8):中心(待测)点可以删,因为:
index=1×20+1×21+0×22+0×23+0×24+0×25+0×26+0×27=3,
table[3]=0,所以表示该点可以去掉。
我们总结一下细化的步骤:
第一步,给出索引方法,例如按照图6中设定的方法;
第二步,根据规则给出索引表,例如按照图5中设定的表;
第三步,遍历全图所有值为1的点,计算索引,判断是否保留;
第四步,如果第三步没有去掉任何点,则下一步,否则重复第三步。
第五步,后处理,我们将在下面详细介绍:
求出细化图后的操作如下:
第一步,按照细化图,初步确定细节点中的端点(本身为1且周围8个点中有且仅有 一个点为1)和分岔点(本身为1且周围8个点中有且仅有三个点为1)。
第二步,沿着细节点生长,对细节点进行后处理:
(a),对于端点,如果在其12×12的邻域内有另一个端点的方向与之接近(角度差小于30 度),则将这两个端点都去掉;
(b),将形成环形的邻近分叉点连接起来,对于一个分叉点,如果在其12×12的邻域内 有另一个分叉点的方向与之接近(角度差小于30度),则将两者都去掉;
(c),去除一些小短棒对应的两个端点,对于一个端点,如果沿着它所在脊线经过12个 像素之内就碰到另一个端点,则将两个端点都去掉;
第三步,筛除方向与该点方向场角度差大于30度的特征点。
对所有注册指纹进行上述特征提取操作并将所得细节点集合存入数据库。
细节点比对
细节点的比对过程分为细节点配准和细节点匹配两个步骤。
由于用于比对的两枚指纹间存在旋转和平移,必须利用细节点配准的方法补偿旋转和 平移偏差。我们采用的是基于Hough变换的配准方法。简单解释为:将两个指纹的各自的 细节点分别构成两个点集(各有M和N个细节点),从两个点集中各选一个细节点分别表 示为(x1,y1,θ1)和(x2,y2,θ2),利用它们之间的坐标、方向可以求出一个平移量和旋转量: Δθ=θ2-θ1。遍历所有细节点对(共M×N对),将所有的平移和旋 转量进行投票,即统计(Δx,Δy,Δθ)出现的次数,得票最高的平移旋转量就是最终使用的平 移旋转量,同时记录得票数vote。
根据下面的公式进行点的旋转平移变换:
x″=x′×cos(Δθ)-y′×sin(Δθ)+Δx;
y″=x′×sin(Δθ)-y′×cos(Δθ)+Δy;
其中(x′,y′)是旋转平移前的坐标,(x″,y″)是旋转平移后的坐标。对于有效区域,分别 对应变换前所包含的点的坐标和变换后所包含的点的坐标;对于细节点,则分别对应配准 前和配准后的坐标。
将两枚指纹有效区域变换之后就可以计算两枚指纹(记为r,t,并假设r为基准,t 向r旋转平移)之间的公共有效区域。求取方法如下:设两幅配准好的指纹有效区域分别 为Rr、Rt,则公共有效区域为Rc=Rr∩Rt,其中Rt是由指纹t的未配准的有效区域按上面 求得的参数(Δx,Δy,Δθ)旋转平移得到
对于这两枚已经配准好的指纹,进行细节点比对。最终得出的是0~1之间的一个数, 表示两枚指纹细节点集合的相似度。当两幅配准好的指纹图中的两个细节点距离小于某一 阈值(取为8像素)时,认为这两个点比对成功,匹配成功点对计数加1。最终可以求出这 两枚指纹之间的相似度:
其中count表示比对成功的细节点对数,countr表示指纹r在两幅指纹公共有效区域内 的细节点个数,countt表示指纹t在两幅指纹公共有效区域内的细节点个数。Th为经验阈值, 取为12。
特征级融合
该步骤的实质是将对应同一个手指的多枚指纹中的细节点进行融合,融合原则是:如 果一个细节点在m枚注册指纹中出现的频率高于某一阈值,则该细节点被保存到模板中, 否则被去除。
融合过程如下:
1 将同一个手指对应的多枚注册指纹两两进行细节点比对操作,得出相似度Sij,Sij表 示第i枚指纹与第j枚指纹的相似度,其中i=1,2,…m,j=1,2,…m,并且i≠j(i=j 表示第i枚指纹与自身比较,没有意义)。然后令 作为第i枚指纹优 良性的度量,选取m枚指纹中J值最高的一个作为基准指纹,即如果 Ja=max(Ji),i=1,2,…,m,则选取第a枚指纹作为基准指纹,记为F1,并将其他指 纹按照前面提到的细节点配准方法与该指纹进行配准(以后提到的细节点均为经过 旋转平移得到的配准后结果),并按与该指纹的相似度从大到小排序,依次标记为 F2,…,Fm;
2 将F1中所有细节点Mk,k=1,2,…,n1,的置信度记为1,即ck=1,k=1,2,…,n1,n1表 示F1中细节点的个数,然后将F1复制到模板T,同时令nt=n1,代表模板中细节点个数,ck 为第k个细节点的置信度,是一个特征融合过程中的临时变量;
3 对于T中的所有细节点Mk,k=1,2,…,nt,在F2的所有细节点Mj,j=1,2,…,n2中, 寻与其匹配的细节点(即两个细节点距离小于8像素)。如果到则T中的细节点Mk的 置信度增1,即ck=ck+1。如F2中某一细节点未与T中任何细节点匹配,则直接将其加到 T中并将其置信度置为1,同时改变T中细节点的记数,即nt=nt+1。
重复3,将其中的F2替换成F3,…,Fm,直至所有注册指纹均融合完毕。
对融合后的模板进行后处理,去掉置信度低于某一阈值的细节点。建议采集四枚注册 指纹,此时该阈值选为2。阈值选取过高会使模板中所剩细节点过少,选取过低会使模板中 虚假细节点过多。经过后处理就得到了合成的模板,这是一个细节点集合,本质上与单幅 指纹的细节点特征集合是相同的。
对数据库中每一手指进行上述特征融合操作,最终每一手指对应唯一一个合成模板。
验证阶段
按照前面所述的细节点提取的方法对申请指纹进行细节点提取,然后将申请指纹的细 节点与与合成的模板进行细节点比对,得出相似度Sf,这一数值将在后面最终融合中用到。
决策融合
决策融合有许多经典方法,这里我们以一种比较简单的方法为例说明其应用:申请指 纹与一个注册手指的所有m枚指纹进行细节点比对,得出m个相似度S1,…,Sm,决策融 合就是根据这些相似度综合做出决策。令 作为决策融合的最终结果,即申请 指纹与注册手指之间的相似度。
最终融合
该步融合也可以采用多种经典的决策融合策略来实现,这里我们以下面两种方法(加 权平均法和人工神经网络法)为例来说明其应用:
加权平均法的公式如下:
S=wdSd+(1-wd)Sf,其中S是最终的结果;Sd是决策级融合求和算法给出的相似度; Sf是合成模板给出的相似度。wd是决策融合结果的权重。公式的形式保证了结果是归一化 的,即S∈[0,1]。wd是根据经验选定的,建议设定为0.5。判决规则为:
若S≥Ths则判断为成功比对,即申请者与注册者是同一个人;
若S<Ths则判断为失败比对,即申请者与注册者不是同一个人;
其中Ths为预先设定的阈值,设定为0.4。
人工神经网络方法如下:
选用三层前馈神经网络,两个输入层节点,分别对应Sf和Sd,五个隐层节点,一个输 出层节点,用反向传播(BP)算法进行训练。
训练方法如下:
建议训练所用数据在2000个以上,其中一半为正样本,即真实匹配(属于同一手指) 的比对结果组成的二维向量(Sf,Sd);一半为负样本,即虚假匹配(不属于同一手指) 的比对结果组成的二维向量(Sf,Sd)。
训练算法分为两个阶段:第一阶段(正向过程)输入信息,从输入层经隐层逐层计算 各单元的输出值;第二阶段(反向传播过程)内计算输出误差,并逐层向前算出隐层各单 元的误差,然后用此误差修正前层到本层的连接强度(权值)。我们设计的神经网络一共 含有15个权系数,其中输入层到隐层10个,隐层到输出层5个,训练就是要确定这15个 权系数的值。令输入层第i个节点到隐层第j个节点的权系数为wij′(i=1,2,j=1,2,…5),隐 层第j个节点到输出层第k个节点(只有一个)的权系数为wjk″(j=1,2,…5,k=1),输入层第 一个节点的输出为Sf,第二个节点的输出为Sd,隐层第j个节点的输出为Oj′,输出层节点 的输出为y′。
具体步骤如下:
1、设置权系数初始值,即用±0.3区间的随机数赋值给wij′、wjk″。
2、对于所有训练样本,重复以下步骤:
1)、当输入某个样本时,首先计算输入层到隐层节点的加权和:
netj=w1j′Sf+w2j′Sd;
进而得出隐层节点的输出:
上面两式中j=1,2,…,5;
然后计算隐层到输出层的加权和:
其中k=1;
进而得出输出层节点的输出:
2)、对输出层计算输出误差δ=(y-y′)y′(1-y′),其中y是理想输出值,对于正样本, 理想输出值定义为1;对于负样本,理想输出值定义为0;
3)、计算其余各层节点的输出误差:
计算隐层各节点的δj′,j=1,2,…,5:
δj′=Oj′(1-Oj′)wjk″δ;
计算输入节点的δi,i=1,2;
4)、计算并保存各权值修正量:
对隐层到输出的权值:
Δwjk″(t)=αΔwjk″(t-1)+ηδOj′;
对输入层到隐层的权值:
Δw1j′(t)=αΔw1j′(t-1)+ηδjSf;
Δw2j′(t)=αΔw2j′(t-1)+ηδjSd;
其中α为惯性项系数,选为0.9~1.0之间的数值,建议设为0.95;η为步长,选为0.1~3 之间的数值,建议设为1;t为输入样本的序号,初始权值修正量Δwjk″(0)=0,Δwij′(0)=0。
5)、修正权值:
wij′(t)=wij′(t-1)+Δwij′(t);
wjk″(t)=wjk″(t-1)+Δwjk″(t);
实验表明只需要进行一轮这样的训练即可,因此训练过程实际上就是对所有的样本进 行1)-5)的操作,将最终得到15个权系数存储到文件,在分类的过程中从文件读取即可。
分类过程如下:
对给定样本输入Sf′和Sd′,按2-1)中公式依次计算各层输出,最终得到输出层的输出 y′。如果y′>Thn则判定为匹配成功,否则判定为匹配失败。其中Thn是判断阈值,选为0.5。
实验表明,上面提到的加权平均的算法和利用人工神经网络的方法在性能上差别很小, 均可用于实际系统。考虑到方便性,建议采用加权平均算法。
本文发布于:2023-04-15 00:45:31,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/4/86819.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |