一种多接口融合的指纹图像前处理方法

文档序号:116040 发布日期:2021-10-19 浏览:28次 >En<

阅读说明:本技术 一种多接口融合的指纹图像前处理方法 (Multi-interface fused fingerprint image preprocessing method ) 是由 李振 张翔 李阳 王升 李白雪 全思博 李凯 高健 杨海东 于 2021-05-06 设计创作,主要内容包括:本发明公开了一种多接口融合的指纹图像前处理方法,包括:1)多接口融合开发环境的搭建;2)指纹图像前处理算法库框架的搭建;3)算法库框架中各算法的实现;4)结果的性能评价。本发明为指纹图像前处理提供了新的开发思路,且对外提供了与MFC的界面接口、机器视觉库OpenCV的接口,实现函数间数据传递的Mat类接口,算法封装接口和DLL库接口,提高了方法使用、开发的便利性和可移植性。此外,在算法实现部分采用了四方向多邻域边缘检测算法、最大类间方差算法和纹线自适应Gabor滤波算法等,使其在处理正常、断裂和脱皮指纹图像时同时适用。(The invention discloses a multi-interface fused fingerprint image preprocessing method, which comprises the following steps: 1) building a multi-interface fusion development environment; 2) constructing a fingerprint image preprocessing algorithm library framework; 3) realizing each algorithm in an algorithm library frame; 4) and (5) evaluating the performance of the result. The invention provides a new development idea for fingerprint image preprocessing, provides an interface with an MFC and an OpenCV interface with a machine vision library externally, realizes a Mat interface, an algorithm packaging interface and a DLL library interface for data transfer between functions, and improves the convenience and portability of use and development of the method. In addition, a four-direction multi-neighborhood edge detection algorithm, a maximum between-class variance algorithm, a streak line self-adaptive Gabor filtering algorithm and the like are adopted in an algorithm implementation part, so that the method is applicable to processing normal, fractured and peeled fingerprint images at the same time.)

一种多接口融合的指纹图像前处理方法

技术领域

本发明涉及但不限于数字图像处理

技术领域

和生物识别技术领域,尤其是指一种多接口融合的指纹图像前处理方法。

背景技术

生物特征识别是一种利用人类可测量的生理、行为特征进行识别和认证的自动化方法,其主要包含了生理学和行为学两个范畴。前者是指手和手掌的几何结构、DNA、面部、虹膜、气味特征和指纹等,后者是指声音、步态和打字节奏等。生物特征识别可用于检测、边境安全、欺诈预防、犯罪追踪、安全、支付系统、出勤记录、物理和逻辑访问控制,以及一般当事人或个人的身份识别。

指纹识别技术作为生物识别技术中的一种,是迄今为止在身份识别应用中的首选技术,其主要原因有:1)普遍性,即绝大多数人都有指纹;2)唯一性,即两组来自不同人或同一人不同手指间的指纹是不同的;3)稳定性,即在人的生命周期中指纹的形态是稳定的;4)易获取性,即可以通过光学、半导体传感器采集指纹;5)安全性,其表现在两个方面,即指纹特征的获取不会对人体造成伤害和指纹特征自身的防伪性。目前,已经存在一些商用化的指纹自动识别系统,然而这些系统存在一些不足:1)强封装性,即商用化系统仅能为用户提供封装后可实现功能的函数接口,而实现的算法无法进行查看;2)接口单一,例如多数实现函数对外的接口均为指针类型,稍有不慎则会造成指针溢出的严重问题,此外,与强封装性结合在一起时会增加二次开发的难度;3)共享性差,即指纹自动识别系统通常包含许多实现算法的庞大程序,如果仅抽取其中部分算法供他人使用而不安装整个自动识别系统则会造成无法运行;4)指纹识别率低,即指纹图像前处理算法的性能有限直接影响了指纹图像的识别率。

针对上述问题,本发明提供一种多接口融合的指纹图像前处理方法,该方法主要包括以下核心过程:1)多接口融合开发环境的搭建;2)指纹图像前处理算法库的搭建;3)指纹图像前处理算法库中各个算法的编辑、Debug和优化;4)输出结果的性能评价。此外,本发明中高性能的指纹图像前处理方法可以对正常指纹、断裂指纹和脱皮指纹进行图像增强,将该方法集成至自动指纹识别系统中作为指纹图像前处理方法使用,可在一定程度上提高指纹识别率。

发明内容

本发明的旨在弥补现有技术的不足,提供了一种多接口融合的指纹图像前处理方法。该方法能有效地解决现有指纹图像前处理方法封装性强、接口单一、共享性差、对断裂或脱皮指纹的处理效果不理想而导致指纹识别率低等问题。本方法的实现结合了VisualStudio集成开发平台、OpenCV机器视觉库、CMake跨平台安装(编译)工具、MFC界面和C++开发语言。同时,该方法中各级函数的接口均为OpenCV机器视觉库中的Mat类,增加了使用和二次开发的便利性。采用了生成动态链接库的方式以共享所有的实现函数,提高了程序的可移植性。此外,在指纹图像前处理各实现步骤中使用了改进的多种高性能图像处理算法,并将其用于自动指纹识别系统中,可提高指纹识别率。

为实现上述目的,本发明提供一种多接口融合的指纹图像前处理方法,包括以下步骤:

1)多接口融合开发环境的搭建;

2)以步骤1)中的开发环境为基础,进行指纹图像前处理算法库框架的搭建;

3)以步骤2)为基础,对指纹图像前处理各步骤中算法进行实现;

4)利用步骤3)的结果,进一步采用测试Demo对本方法的结果进行性能评价。

进一步的,在步骤1)中,利用Visual Studio软件分别完成MFC工程的新建和OpenCV机器视觉库的配置,包括以下步骤:

1.1)MFC工程的新建

在WIN10系统中,采用Visual Studio软件新建一个MFC应用程序的项目,并通过消息框输出自定义的字符串对其进行测试,项目运行后,弹出消息框,则项目新建成功;

1.2)OpenCV机器视觉库的配置

采用CMake跨平台安装(编译)工具对OpenCV进行重新编译,使其生成静态Lib库,并将该库以属性表的方式配置到步骤1.1)的结果中,从而完成Release版本的配置。

进一步的,在步骤2)中,进行指纹图像前处理算法库框架的搭建,具体步骤如下:

2.1)在WIN10系统中,采用Visual Studio软件新建一个DLL工程,并使用与步骤1)中相同的方式配置OpenCV,从而完成DLL工程开发环境的搭建,完成上述步骤后,得到一个多接口融合的指纹图像前处理方法的开发环境。

进一步的,在步骤3)中,利用步骤2)中开发环境完成指纹图像前处理方法中各阶段算法的实现,具体步骤如下:

3.1)指纹图像两大基础场的计算

3.1.1)梯度场

首先,对于给定尺寸大小为M×N的指纹图像,将其对应的强度大小表示为I=F(x,y),接着对(x,y)求偏导数并用梯度向量进行表示为分开表示为

式中,(x,y)表示指纹图像中像素点的横纵坐标,Gx(x,y)为沿x轴方向的梯度,Gy(x,y)为沿y轴方向的梯度,采用下式获得总梯度场

|G(x,y)|=|Gx(x,y)|+|Gy(x,y)|

式中G(x,y)表示在指纹图像中像素点坐标(x,y)处的总梯度场;

3.1.2)方向场

定义一块尺寸大小为r×r的模板,并将该模板在指纹图像中进行逐像素点滑动,从而充分利用每个像素点的邻域信息,则方向场可以表示为

式中θ(x,y)表示在指纹图像中像素点坐标(x,y)处方向场的大小,Ox(x,y)和Oy(x,y)分别为

式中Gx(x,y)和Gy(x,y)的计算采用一种四方向多邻域边缘检测算法来完成;

3.2)指纹图像的分割

指纹图像的分割过程包括指纹图像的前景与背景的分离和前景的清理,对于前者,采用最大类间方差法来实现,该方法首先对输入的指纹图像进行直方图的计算并归一化,接着设置分类阈值t,求解类间方差,具体表示为

g=ω0ω1(u0-u1)2

式中,g表示类间方差的大小,ω0为在指纹图像直方图中灰度级为0~t的像素与整幅图像的比值,ω1为在指纹图像直方图中灰度级为t~255的像素与整幅图像的比值,u0为前景像素的平均灰度,u1为背景像素的平均灰度;

进一步地,对于分离出的指纹图像利用步骤3.1)中获得的指纹图像梯度场进行清理,完成后即可成功得到指纹图像中的前景部分;

3.3)指纹图像的智能增强

对步骤3.2)中的结果图像进行智能增强,主要包括:对比度均衡、高斯校正、二次滤波和智能收敛的过程,其中,在对比度均衡部分使用直方图均衡算法,通过累积分布函数完成像素值均匀分布的映射,进一步地,使用二维高斯函数和模板大小为T×T的图像进行高斯校正,将所得结果图像作为二次滤波的输入,使用均值滤波算法完成增强,上述三步完成后,将结果图像作为智能收敛的输入,使用纹线自适应Gabor滤波算法来实现指纹图像的智能增强,其定义式表达如下

式中,x和y分别表示指纹图像的像素坐标,θ为指纹纹线的方向,xθ和yθ分别为经坐标轴旋转θ后的新坐标位置,τ为归一化后的曲率,f为指纹的频率,σ'x和σ'y分别为变换后的高斯空间常数;

进一步地,通过下式完成智能增强的过程

式中,H(i,j)表示智能增强后指纹图像的输出,w为滤波窗口尺寸,(u,v)为指纹图像中像素点坐标,(i,j)为滤波窗口尺寸中像素点坐标;

3.4)指纹图像的二值化

对步骤3.3)中的结果图像进行二值化处理,同时由于噪声的引入,需对二值化处理后的图像利用步骤3.1)中获得的指纹图像梯度场进行二次清理;

3.5)指纹图像的骨架提取

对步骤3.4)中的结果图像进行骨架提取处理,采用基于索引表的细化算法,该算法核心思想为遍历二值化图像的边缘,根据边缘点的八连通域情况并结合经验索引表以确定该边缘点是否能够被删除,直至骨架化完成;

3.6)指纹图像的特征提取

对步骤3.5)中的结果图像进行特征提取处理,包括指纹图像区域特征的提取、细节特征的提取和伪特征清理的过程,对于区域特征,采用Poincare Index算法提取指纹图像中的中心点和三角点特征;对于细节特征则根据Crossing Number理论对细化指纹图像中的所有像素点进行CN值计算,从而完成分叉点、端点的特征提取,最后根据经验函数进行伪特征的清理,至此完成多接口融合的指纹图像前处理方法的实现。

进一步的,在步骤4)中,进行输出结果的性能评价,具体步骤如下:

首先将待测指纹库中的图像分为两类:正样本指纹图像库和负样本指纹图像库,其中,正样本指纹图像库全部来自同一手指的指纹图像,而负样本指纹图像库来自不同手指的指纹图像,进一步地编写测试指纹识别率的Demo,并在其中引用步骤3)中的指纹图像前处理算法DLL库和一个开源的指纹识别函数,从而进行识别率输出结果的统计,完成性能评价。

本发明与现有技术相比,具有如下优点与有益效果:

1、本发明采用了多接口融合的开发思路,即所有实现算法对外提供了与MFC的界面接口、机器视觉库OpenCV的接口,实现函数间数据传递的Mat类接口,算法整体的封装接口和共享DLL库的接口。增加了使用和二次开发的便利性,提高了程序的可移植性。

2、本发明可集成至自动指纹识别系统中作为指纹图像前处理方法使用,调用简单且源码可进行追溯与修改,在一定程度上提高了指纹识别率,推广性高。

3、本发明在指纹图像前处理算法实现部分采用了四方向多邻域边缘检测算法、最大类间方差算法和纹线自适应Gabor滤波算法等,使得本方法在处理断裂和脱皮指纹图像时可以较好地消除粘连和连接断线,有效地避免了一些伪特征的引入,进而提高最终的识别率。

4、本发明中所有算法的实现均为自主编写,未使用任何第三方算法库,打破了商业化指纹图像前处理方法的封装性。

附图说明

图1为本发明方法的系统结构实现流程示意图。

图2为本发明中指纹图像前处理算法实现流程的示意图。

图3为本发明计算指纹图像两大基础场中使用的四方向多邻域边缘检测算子的示意图。

图4为本发明指纹图像前处理算法中两大基础场计算结果的示意图。

图5为本发明指纹图像前处理算法中指纹智能增强效果的示意图。

图6为本发明指纹图像前处理算法中指纹二值化效果的示意图。

图7为本发明指纹图像前处理算法中指纹骨架提取结果的示意图。

图8为本发明指纹图像前处理算法中指纹特征提取结果的示意图。

具体实施方式

下面结合附图和具体实施例对本发明的内容作进一步说明,但本发明的实际应用形式并不仅限于下述的实施例。

实施例1:

参见图1所示为实现上述目的,本实施例所提供的一种多接口融合的指纹图像前处理方法,包括以下步骤:

1)多接口融合开发环境的搭建;

2)以步骤1)中的开发环境为基础,进行指纹算法库框架的搭建;

3)以步骤2)为基础,对指纹图像前处理各步骤中实现算法的源代码进行编辑、Debug和优化;

4)利用步骤3)的结果,进一步地在测试Demo中实现本方法输出结果的性能评价。

实施例2:

本实施例与实施例1的区别在于:在步骤1)中,在Visual Studio2015软件分别完成MFC工程的新建和OpenCV2.4.13机器视觉库的配置,包括以下步骤:

1.1)MFC工程的新建

在WIN10–64位操作系统中,采用Visual Studio2015软件新建一个MFC应用程序的项目,并通过MessageBox输出自定义的字符串对其进行测试,项目运行后,弹出消息框,则项目新建成功。

1.2)OpenCV2.4.13机器视觉库的配置

采用CMake3.14.6跨平台安装(编译)工具对OpenCV2.4.13进行重新编译,使其生成静态Lib库,并将该库以属性表的方式配置到步骤1.1)的结果中,从而完成Release版本的配置。

实施例3:

本实施例与实施例1的区别在于:在步骤2)中,进行指纹图像前处理算法库框架的搭建,具体步骤如下:

2.1)在WIN10–64位操作系统中,采用Visual Studio2015中新建一个DLL工程,并使用与步骤1)中相同的方式配置OpenCV2.4.13,从而完成DLL工程开发环境的搭建。

完成上述步骤后,可以得到一个多接口融合指纹图像前处理方法的开发环境。

实施例4:

本实施例与实施例1的区别在于:如图2所示,在步骤3)中,利用步骤2)中开发环境完成指纹图像前处理方法中各阶段算法的实现,主要包括:两大基础场的计算、指纹图像的分割、指纹图像的智能增强、指纹图像的二值化、指纹图像的骨架提取、指纹图像的特征提取以及输出特征统计的过程。具体步骤描述如下:

3.1)指纹图像两大基础场的计算

3.1.1)梯度场

首先,对于给定尺寸大小为256×360的指纹图像,将其对应的强度大小表示为I=F(x,y)。接着,对(x,y)求偏导数并用梯度向量进行表示为分开表示为

式中,(x,y)表示指纹图像中像素点的横纵坐标,Gx(x,y)为沿x轴方向的梯度,Gy(x,y)为沿y轴方向的梯度。采用下式获得总梯度场

|G(x,y)|=|Gx(x,y)|+|Gy(x,y)|

式中G(x,y)表示在指纹图像中像素点坐标(x,y)处的总梯度场。

3.1.2)方向场

定义一块尺寸大小为3×3的模板,并将该模板在指纹图像中进行逐像素点滑动,从而充分利用了每个像素点的邻域信息,则方向场可以表示为

式中θ(x,y)表示在指纹图像中像素点坐标(x,y)处方向场的大小,Ox(x,y)和Oy(x,y)分别为

式中Gx(x,y)和Gy(x,y)的计算采用一种四方向多邻域边缘检测算法来完成,其两大基础场中所使用的四方向多邻域边缘检测算子如图3所示,该算子的尺寸大小为5×5,方向为垂直、水平、45°和135°。

随机选取待测指纹图像库中的一副图像,分别采用上述算法获得梯度场和方向场,结果如图4所示。在梯度场中高亮部分表示了指纹纹线的存在区域梯度值较大,而非纹线部分梯度值较小。

3.2)指纹图像的分割

指纹图像的分割过程包括了指纹图像的前景与背景的分离和前景的清理。对于前者,采用最大类间方差法来实现。该方法首先对输入的指纹图像进行直方图的计算并归一化,接着设置分类阈值t=30,求解类间方差,具体表示为

g=ω0ω1(u0-u1)2

式中,g表示类间方差的大小,ω0为在指纹图像直方图中灰度级为0~30的像素与整幅图像的比值,ω1为在指纹图像直方图中灰度级为30~255的像素与整幅图像的比值,u0为前景像素的平均灰度,u1为背景像素的平均灰度。

进一步地,对于分离出的指纹图像利用步骤3.1)中获得的指纹图像梯度场进行清理,完成后即可成功得到指纹图像中的前景部分。

3.3)指纹图像的智能增强

对步骤3.2)中的结果图像进行智能增强,主要包括了:对比度均衡、高斯校正、二次滤波和智能收敛的过程。其中,在对比度均衡部分使用了直方图均衡算法,通过累积分布函数完成像素值均匀分布的映射。进一步地,使用二维高斯函数和模板大小为7×7的图像进行高斯校正,将所得到的结果图像作为二次滤波的输入,使用均值滤波算法完成增强。上述三步完成后,将结果图像作为智能收敛的输入,使用纹线自适应Gabor滤波算法来实现指纹图像的智能增强,其定义式表达如下

式中,x和y分别表示指纹图像的像素坐标,θ为指纹纹线的方向,xθ和yθ分别为经坐标轴旋转θ后的新坐标位置,τ为归一化后的曲率,f为指纹的频率,σ'x和σ'y分别为变换后的高斯空间常数。

进一步地,通过下式完成智能增强的过程

式中,H(i,j)表示智能增强后指纹图像的输出,w=5为滤波窗口尺寸,(u,v)为指纹图像中像素点坐标,(i,j)为滤波窗口尺寸中像素点坐标。

如图5所示,展示了指纹图像的智能增强的结果,从左至右依次为对比度均衡后的结果输出、高斯校正后的结果输出、二次滤波后的结果输出和智能收敛后的结果输出。

3.4)指纹图像的二值化

对步骤3.3)中的结果图像进行二值化处理,同时由于噪声的引入,需对二值化处理后的图像利用步骤3.1)中获得的指纹图像梯度场进行二次清理,结果如图6所示。

3.5)指纹图像的骨架提取

对步骤3.4)中的结果图像进行骨架提取处理,采用基于索引表的细化算法。该算法核心思想为遍历被二值化图像的边缘,根据边缘点的八连通域情况并结合经验索引表以确定该边缘点是否能够被删除,直至骨架化完成,结果如图7所示,其中右侧图像表示经骨架清理后的效果图,与左图相比排除了毛刺型和孤岛型骨架。

3.6)指纹图像的特征提取

对步骤3.5)中的结果图像进行特征提取处理,包括指纹图像区域特征的提取、细节特征的提取和伪特征清理的过程。对于区域特征,采用Poincare Index算法提取指纹图像中的中心点和三角点特征;对于细节特征则根据Crossing Number理论对细化指纹图像中的所有像素点进行CN值计算,从而完成分叉点、端点的特征提取。最后,根据一些经验函数进行伪特征的清理,至此完成多接口融合的指纹图像前处理方法的实现过程,结果如图8所示,从左至右依次为源指纹图像和特征提取后的指纹图像。其中,黑色圆圈标识的点极为区域特征点和细节特征点的位置。

实施例5:

本实施例与实施例1的区别在于:在步骤4)中,进行输出结果的性能评价,具体步骤如下:

首先将待测指纹库中的图像分为两类:正样本指纹图像库和负样本指纹图像库,进一步地编写测试指纹识别率的Demo,并其中引用本发明中指纹图像前处理算法DLL库和一个开源的指纹识别函数,从而进行识别率输出结果的统计,完成性能评价。

综上所述,通过采用以上方案,本发明为指纹图像处理提供了新的开发思路与高性能的算法。通过四方向多邻域边缘检测算法、最大类间方差算法和纹线自适应Gabor滤波算法等,能够有效且精确地获取待测指纹图像的特征值。此外,本发明中所有实现算法对外提供了与MFC的界面接口、机器视觉库OpenCV的接口,实现函数间数据传递的Mat类接口,算法整体的封装接口和共享DLL库的接口,增加了使用和二次开发的便利性,提高了程序的可移植性。该方法可集成至自动指纹识别系统中作为指纹图像前处理方法使用,不仅调用简单,而且源码可进行追溯与修改,还能对前处理结果进行评价,值得推广。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之框架、原理所作的变化,均应涵盖在本发明的保护范围内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种监控区域内目标对象的数量检测方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!