一种缩短虹膜识别耗时的方法及系统
技术领域
本公开涉及虹膜识别技术、图像处理技术领域,具体涉及一种缩短虹膜识别耗时的方法及系统。
背景技术
虹膜是位于人的眼睛结构中黑色瞳孔和白色巩膜之间的圆环状部分,其包含有很多相互交错的斑点、细丝、冠状、条纹、隐窝等的细节特征;因此,依赖于计算机视觉技术将虹膜识别应用于身份识别的领域作为除了指纹识别之外的身份标识方法,有着很高的鲁棒性和准确率,防伪能力很高。
虽然目前的虹膜识别技术中,取得了不错的识别效果,但是识别技术在响应速度方面仍然存在很多缺陷,尤其是最新的机器学习技术中支持向量机、BP神经网络应用于虹膜识别方面的技术,虽然提高了虹膜的正确率,但是虹膜识别的所耗时增长,需要在图像的空间中进行遍历搜索,所要耗费的时间复杂度很高,计算速度慢导致耗时的大幅增加,严重影响了用户体验。而在用户进行虹膜识别时需要将眼睛以一定的距离对准摄像头,导致设备无法清晰的拍摄到虹膜图像,或者拍摄的图像有镜面反射或者出现斑点时,识别效率更低。
发明内容
本公开提供一种缩短虹膜识别耗时的方法及系统,通过读取虹膜图像;通过Canny边缘检测算法进行边缘检测得到边缘图像;将边缘图像通过圆检测得到的圆心作为瞳孔圆区域;在瞳孔圆区域中进行插值得到插值图像;对插值图像进行修正得到修正图像;对修正图像进行虹膜识别,由于修正后的图像的模糊区域比较少,所以识别的效率很高。
本公开的目的是针对上述问题,提供一种缩短虹膜识别耗时的方法及系统,具体包括以下步骤:
S100:读取虹膜图像;
S200:通过Canny边缘检测算法进行边缘检测得到边缘图像;
S300:将边缘图像通过圆检测得到的圆心作为瞳孔圆区域;
S400:在瞳孔圆区域中进行插值得到插值图像;
S500:对插值图像进行修正得到修正图像;
S600:对修正图像进行虹膜识别。
进一步地,在S200中,通过Canny边缘检测算法进行边缘检测得到边缘图像的方法包括以下步骤:
S201:通过高斯滤波对图像进行降噪;
S202:计算梯度的幅值和方向;
S203:对梯度幅值进行非极大值抑制;
S204:通过像素大小、包含8个方向的邻域对梯度幅值阵列的所有像素沿梯度方向进行梯度幅值的插值;
S205:通过双阈值法检测和连接边缘得到边缘图像。
进一步地,在S300中,将边缘图像通过圆检测得到的圆心作为瞳孔圆区域的方法包括以下步骤:
S301:根据先验知识分别确定边缘图像中内外边界圆半径的范围,从而减小搜索半径;
S302:圆的参数方程可改写为:;/>是相对于/>轴的角度,/>,/>为半径;
S303:将图像空间中的边缘点逐一代入圆的参数方程求出参数值;
如果位于图像中间的/>像素区域范围内,则将相应的累加阵/>中的元素加1,否则加0;累加阵/>为以/>中心的/>像素区域的(上下左右)四个方向相邻的各个/>像素区域的矩阵的累加;
S304:找出累加阵中最大元素的值,即是对应半径为/>,圆心为/>,且圆周上边点最多的圆的圆心作为瞳孔圆区域。
进一步地,在S400中,在瞳孔圆区域中进行插值得到插值图像的方法包括以下步骤:
S401:令为两个变量的函数,且其在瞳孔圆区域的内切正方形的顶点的值己知,通过下列双线性插值方程得到瞳孔圆区域的内切正方形内任意点的函数值:;其中,/>四个参数由已知瞳孔圆区域的内切正方形的四个顶点的函数值确定;
S402:通过上端插值方程对瞳孔圆区域的内切正方形上端的两个顶点进行插值,上端插值方程为:;
S403:通过下端插值方程对瞳孔圆区域的内切正方形下端两个顶点进行插值,下端插值方程为:;
S404:通过垂直方向插值方程对瞳孔圆区域的内切正方形垂直方向进行插值,垂直方向插值方程为:;
S405:输出以上步骤处理得到的插值图像;
插值得到插值图像虽然具有低通滤波性,但是会使高频分量受损,图像轮廓会呈现出模糊、不清晰的问题,因此图像需要进行修正。
进一步地,在S500中,对插值图像进行修正得到修正图像的方法包括以下步骤:
S501:对插值图像进行模糊区域检测:
设是插值图像矩阵/>处灰度值,M、N分别是图像矩阵的行与列,则模糊区域检测方程式为:/>;
其中,;/>,/>为像素点灰度的平均值;/>为像素点灰度的标准差;
S502:将插值图像的直方图的模糊区域的构成集合/>,其中L是直方图的模糊区域总数量;
S503:进行集合的3邻域的中值滤波处理;
S504:计算滤波后的集合的一阶差分:/>;
S505:扫描集合获取同时满足下列条件的元素/>作为局部最大值:
;
其中,,/>,N为局部最大值总数量,min函数用于求最小元素;
S506:求出中的最大值/>;
S507:求集合的中值/>,将/>作为修正值填充到模糊区域所有像素点得到修正图像。
本发明还提供了一种缩短虹膜识别耗时的系统,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
虹膜读取单元,用于读取虹膜图像;
边缘检测单元,用于通过Canny边缘检测算法进行边缘检测得到边缘图像;
圆检测单元,用于将边缘图像通过圆检测得到的圆心作为瞳孔圆区域;
图像插值单元,用于在瞳孔圆区域中进行插值得到插值图像;
图像修正单元,用于对插值图像进行修正得到修正图像;
虹膜识别单元,用于对修正图像进行虹膜识别。
本公开的有益效果为:本发明公开了一种缩短虹膜识别耗时的方法,不仅提高了虹膜的正确率、而且缩短了虹膜识别的所耗时增长;降低了识别的时间复杂度,提高了用户体验,对于污损虹膜图像的容错性比之其他的算法更好,提高了虹膜识别效率。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1为本公开的一种缩短虹膜识别耗时的方法的流程图;
图2为本公开实施方式的一种缩短虹膜识别耗时的系统。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种缩短虹膜识别耗时的方法的流程图,下面结合图1来阐述根据本公开的实施方式的方法。
本公开提出一种缩短虹膜识别耗时的方法,具体包括以下步骤:
S100:读取虹膜图像;
S200:通过Canny边缘检测算法进行边缘检测得到边缘图像;
S300:将边缘图像通过圆检测得到的圆心作为瞳孔圆区域;
S400:在瞳孔圆区域中进行插值得到插值图像;
S500:对插值图像进行修正得到修正图像;
S600:对修正图像进行虹膜识别。
进一步地,在S200中,通过Canny边缘检测算法进行边缘检测得到边缘图像的方法包括以下步骤:
S201:通过高斯滤波对图像进行降噪;
S202:计算梯度的幅值和方向;
S203:对梯度幅值进行非极大值抑制;
S204:通过像素大小、包含8个方向的邻域对梯度幅值阵列的所有像素沿梯度方向进行梯度幅值的插值;
S205:通过双阈值法检测和连接边缘得到边缘图像。
进一步地,在S300中,将边缘图像通过圆检测得到的圆心作为瞳孔圆区域的方法包括以下步骤:
S301:根据先验知识分别确定边缘图像中内外边界圆半径的范围,从而减小搜索半径;
S302:圆的参数方程可改写为:;/>是相对于/>轴的角度,/>,/>为半径;
S303:将图像空间中的边缘点逐一代入圆的参数方程求出参数值;
如果位于图像中间的/>像素区域范围内,则将相应的累加阵/>中的元素加1,否则加0;累加阵/>为以/>中心的/>像素区域的(上下左右)四个方向相邻的各个/>像素区域的矩阵的累加;
S304:找出累加阵中最大元素的值,即是对应半径为/>,圆心为/>,且圆周上边点最多的圆的圆心作为瞳孔圆区域。
进一步地,在S400中,在瞳孔圆区域中进行插值得到插值图像的方法包括以下步骤:
S401:令为两个变量的函数,且其在瞳孔圆区域的内切正方形的顶点的值己知,通过下列双线性插值方程得到瞳孔圆区域的内切正方形内任意点的函数值:;其中,/>四个参数由已知瞳孔圆区域的内切正方形的四个顶点的函数值确定;
S402:通过上端插值方程对瞳孔圆区域的内切正方形上端的两个顶点进行插值,上端插值方程为:;
S403:通过下端插值方程对瞳孔圆区域的内切正方形下端两个顶点进行插值,下端插值方程为:;
S404:通过垂直方向插值方程对瞳孔圆区域的内切正方形垂直方向进行插值,垂直方向插值方程为:;
S405:输出以上步骤处理得到的插值图像;
插值得到插值图像虽然具有低通滤波性,但是会使高频分量受损,图像轮廓会呈现出模糊、不清晰的问题,因此图像需要进行修正。
进一步地,在S500中,对插值图像进行修正得到修正图像的方法包括以下步骤:
S501:对插值图像进行模糊区域检测:
设是插值图像矩阵/>处灰度值,M、N分别是图像矩阵的行与列,则模糊区域检测方程式为:/>;
其中,;/>,/>为像素点灰度的平均值;/>为像素点灰度的标准差;
S502:将插值图像的直方图的模糊区域的构成集合/>,其中L是直方图的模糊区域总数量;
S503:进行集合的3邻域的中值滤波处理;
S504:计算滤波后的集合的一阶差分:/>;
S505:扫描集合获取同时满足下列条件的元素/>作为局部最大值:
;
其中,,/>,N为局部最大值总数量,min函数用于求最小元素;
S506:求出中的最大值/>;
S507:求集合的中值/>,将/>作为修正值填充到模糊区域所有像素点得到修正图像。
本公开的实施例提供的一种缩短虹膜识别耗时的系统,如图2所示为本公开的一种缩短虹膜识别耗时的系统结构图,该实施例的一种缩短虹膜识别耗时的系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种缩短虹膜识别耗时的系统实施例中的步骤。
所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
虹膜读取单元,用于读取虹膜图像;
边缘检测单元,用于通过Canny边缘检测算法进行边缘检测得到边缘图像;
圆检测单元,用于将边缘图像通过圆检测得到的圆心作为瞳孔圆区域;
图像插值单元,用于在瞳孔圆区域中进行插值得到插值图像;
图像修正单元,用于对插值图像进行修正得到修正图像;
虹膜识别单元,用于对修正图像进行虹膜识别。
所述一种缩短虹膜识别耗时的系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种缩短虹膜识别耗时的系统可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种缩短虹膜识别耗时的系统的示例,并不构成对一种缩短虹膜识别耗时的系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种缩短虹膜识别耗时的系统还可以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (DigitalSignal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种缩短虹膜识别耗时的系统运行系统的控制中心,利用各种接口和线路连接整个一种缩短虹膜识别耗时的系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种缩短虹膜识别耗时的系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(SecureDigital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。