基于Android平台的非接触指纹识别研究

2017-12-12 09:09:40王科俊丁欣楠
黑龙江大学工程学报 2017年3期
关键词:指纹图角点指纹识别

王科俊,丁欣楠

(哈尔滨工程大学 自动化学院,哈尔滨 150001)

基于Android平台的非接触指纹识别研究

王科俊,丁欣楠

(哈尔滨工程大学 自动化学院,哈尔滨 150001)

提出一种利用手机摄像头获取指纹在Android平台中进行实时指纹识别的方法。采用多尺度Harris角点检测和ORB图像匹配算法进行特征提取与匹配,并运用Android开发工具和OpenCV对其技术实现,最后分别在不同的Android移动设备上进行实验和测试。实验结果表明此方法能够在Android平台上进行实时的指纹图像的采集、注册与识别,具有较高的识别率和稳定性,基本满足移动平台非接触式指纹识别的需求。

指纹识别; Harris角点检测; ORB匹配; Android平台

随着智能手机市场的发展和性能的提升,移动互联网技术的大规模普及,移动支付、手机付款方式的流行,迫切需要一种更加方便而且有效的身份认证技术来保证手机用户的移动支付安全和信息安全。接触式指纹识别已在部分高档智能手机(华为、苹果、三星等)中被广泛使用,有效提高了手机信息的安全性,但是接触式指纹识别需要在手上安装专用指纹传感器,这不仅增加了手机成本,同时还存在接触面积小,指纹图像畸变,不卫生等问题。非接触(通过摄像机或者其他非接触式采集元件)指纹识别技术是近几年兴起的生物特征识别技术之一,克服了传统的指纹识别技术在指纹获取方式上存在的缺陷,具备宜采集和宜接受等优点,具有很大的应用前景和研究价值。同时现今移动平台中所占比例最大的智能手机几乎全带有摄像头,这使在移动平台上开发的非接触指纹识别技术具有先天的优势,具有更广阔的应用前景。据了解,2015年三星公司非接触指纹识别技术已得到美国专利局的认可,用户只需要将手指放至移动设备的摄像头前,该设备会自动从内存中搜寻匹配的指纹图像,完成身份识别与认证。

目前针对非接触指纹识别的研究多是利用多个摄像头采集手指指纹的3D指纹图像,再展开为等效的2D手指指纹图像进行识别,以解决旋转变形等问题。李永等[1]使用基于聚类的Dynamic-score-selection算法将2D指纹图像进行融合,提升系统的性能。Labati等[2]通过利用两视图结构光学的方法对指尖进行重构并获得3D图像,然后将其展开成平面图像完成指纹图象识别。但是这类方法通常需要多个摄像头,且算法复杂,成本较高,故应用范围有限。针对这个缺陷,梁小龙等[3]提出利用2D指纹图像模型重构出3D指纹图像模型的方法,以指纹脊线为信息,利用包括脊线和细节点特征的指纹模型进行重构。在此基础上,Zhang等[4]和 Kono等[5]重构出3D指纹图像的结构信息,并用其进行识别。另外,非接触指纹采集方式的研究也取得了很大的进展。自2004年起,韩国Yonsei University进行非接触指纹采集设备的研究[6],现已制作出多款采集设备,但距离实际应用仍有较大差距。

本文研究使用手机自带的摄像头实现非接触指纹识别技术,为普通智能手机的信息安全提供有效手段,提出了一种多尺度的Harris角点检测算法用于非接触指纹识别的特征提取过程中,弥补Harris角点算法无尺度信息的不足,以适应手机拍摄指纹图像时分辨率的变化,提高识别率与可靠性。同时在Android移动平台上实现非接触指纹识别过程。利用手机摄像头进行指纹图像采集,运用OTSU[7]算法完成手指指尖的前背景分割,多尺度Harris角点检测算法用于特征提取,最后通过ORB进行指纹匹配识别。实验结果表明此方法具有较高的识别率和实时性,能够基本满足移动平台非接触式指纹识别的需求。

1 多尺度Harris角点检测算法

1.1 Harris角点提取算法

Harris角点是指某一块图像沿每一个方向移动时,变化快速的点。通过局部自相关函数,计算出某一块图像在每一个方向移动时的变化,自相关性较大的点即为Harris角点。其原理是取以目标像素点为原点的一个小的矩形区域的窗口向任意方向以较小的位移来移动,用解析表达式表征它的灰度变化量。Harris算子用式(1)的高斯函数代替二值窗口函数,将离中心位置点较近的像素赋予更大的权重,进而减小噪声的影响。

(1)

设以某一个像素点(x,y)为中心位置的小区域在x方向上移动u,在y方向上移动v,则Harris给出的灰度变化量的解析表达式为:

(2)

写成矩阵形式为:

(3)

其中,Ix表示x方向的梯度,Iy表示y方向的梯度,矩阵M的特征值是自相关函数的一阶曲率。Harris利用I1和I2来表示变化最快和最慢的两个方向。如果两者都非常大就是角点,一大一小就是边缘,两者都非常小即为图像区域。矩阵两个特征值的和与矩阵M的迹相等,两个特征值的积与矩阵M的行列式相等,为了避免计算矩阵M的特征值,常通过下式来计算特征点的响应函数,亦称兴趣值:

R=detM-k(traceM)2

(4)

其中,det(M) 为矩阵M的行列式,trace(M)为矩阵M的迹,即M特征值之和。k为经验值常数,一般为0.04~0.06。

Harris算子是一种非常有效的特征提取算子,可以有效应对图像的灰度变化、旋转性和噪声等,相对其他特征提取算子较稳定。但对尺度敏感,受尺度的影响较大。

1.2 基于尺度的Harris角点检测算法

Harris角点检测算法相对于其他特征提取算法,在相同条件下具有更好的稳定性和较高的识别率。但手机拍照采集的指纹图像尺度会与检测图像发生变化,传统的Harris算法无法应对尺度变化,因此提出一种带尺度信息的Harris算法,适用于手机拍照。

1.2.1 尺度空间理论

如果人的视觉在观察某一物体时,随着人与这个物体的距离变化时,会出现大小和清晰度的变化,这种视觉变化即为一种尺度[8]。利用手机摄像头进行指纹图片采集时,景深的不同直接影响采集清晰度,且图片的实际分辨率不一定能够很好地表示其特点,直接影响指纹识别率。考虑在Harris角点检测算法中引入多尺度空间,使指纹关键点在不同尺度范围内都能够被检测,具有尺度不变性,以提高识别率。

Lindeberg从理论上验证了高斯核是唯一可以产生多尺度空间的核[9]。二维的高斯函数的定义为:

(5)

则图像的尺度空间的概念定义为:

L(x,y,σ)=G(x,y,σ)*I(x,y)

(6)

根据上式,不同的尺度空间即为利用不同的高斯卷积核对图像进行卷积的结构。二维空间的高斯函数的结构见图1。

尺度空间在实现时用高斯金字塔表示,见图2。金字塔构造的主要步骤:①对图像进行低通的平滑处理;②对处理后的图像进行采样(主要是进行水平和竖直方向的1/2采样),从而得到一系列尺寸范围的图像。

图1 二维高斯卷积核函数的三维空间分布图Fig. 1 Three-dimensienal spatial distribution map of two-dimensional Gauss convolution kernel

图2 二维图像的金字塔图Fig.2 Two-dimensional image of the Pyramid diagram

1.2.2 改进的多尺度Harris特征提取算法

图3 多尺度Harris角点检测示意图Fig.3 Sketch map of multiscale Harris corner detection

为了满足尺度不变性的要求,对原有的Harris角点提取算法进行改进,提出了基于尺度的Harris特征提取算法,以适应手机拍照后分辨率的变化。多尺度Harris角点检测的示意图见图3。

改进的算法将多尺度空间的理论引入到传统的Harris算法中。参考原始的Harris角点检测中的公式,使用M=μ(x,σI,σD)作为多尺度的二阶矩:

(7)

其中,g(σI)是σI尺度下的高斯卷积的核,x为图像的位置,L(x)为高斯平滑后的图像,符号⊗表示的卷积,Lx(x,σD)与Ly(x,σD)分别表示的是对图像进行高斯函数平滑后,在x或y方向求微分的结果,也就是Lx=∂xL,Ly=∂yL,σt称为Harris角点的积分尺度,σD称为微分尺度。

则改进的多尺度的Harris角点检测主要分成两个步骤:①在多尺度下进行Harris角点检测;②自动搜索角点的最佳的特征尺度值。

多尺度下的Harris角点检测:先构造一组积分的尺度,这一组尺度的定义是:σ1…σn=σ0…knσD。

经验表明k取值为1.4。这时为了较小复杂度,对于微分尺度σD的选择即在积分尺度的基础上,乘上一个比例系数,即σD=sσ1,比例系数s选取0.7。这样生成μ(x,σ1,σD),然后运用Harris角点检测,具体的步骤是:

首先,对于给定尺度空间值σn,进行下面的角点响应值的运算:

cornerness=det(μ(x,σn))-atrace2(μ(x,σn))thresholdH

(8)

然后,对上一步提取出来的特征点,进行非最大值抑制过滤,找出这8个邻域的角点的响应为最大值的角点。同理在每一个尺度上进行同样的操作,即找到了空间中的极值点。接着进行尺度空间判断,对位置空间搜索每一个候选点,通过拉普拉斯计算,求出响应值,并且要满足给定的阈值大小:

F(x,σn)=σ2|Lxx(x,σn)+Lyy(x,σn)|≥thresholdL

(9)

最后与周围的两个尺度空间的拉普拉斯的响应值进行比较,使其能够满足:

F(x,σn)F(x,σl),l∈{n-1,n+1}

(10)

搜索角点的最佳尺度值:为了精确定位角点,对离散的拉普拉斯响应函数迭代拟合。经过多尺度Harris角点搜索,得到提取的特征点集(x,σ1),对于当中的每一个特征点,精化的迭代算法如下:

(11)

2 基于ORB的图像匹配算法

图像的匹配算法有SIFT、SURF、ORB等几种。其中SIFT、SURF算法准确率较高,但执行效率较低,不适用于实时运行的手机环境。在计算速度方面,ORB是SIFT的100倍左右,是SURF的10倍左右,计算快速,且占用较低的内存,非常适合手机端,满足实时的特征匹配的要求。因此选用ORB来进行指纹图像的匹配。

ORB作为一种局部不变特征匹配算法,是建立在FAST特征点和BRIEF特征点描述基础之上的。实现步骤:①用Oriented FAST算法找出图像关键点的位置;②利用上节所述改进的多尺度Harris角点检测,通过Rotated BRIEF描述符生产特征点的二进制描述向量;③将两幅图像的特征点利用汉明距离比值准则得到最终的匹配结果。计算第二帧图像上的每一个特征点与第一帧图像上的全部特征点描述向量的汉明距离,若距离越小说明两个特征点越相似,距离最小的即为匹配对。

oFAST是在FAST特征检测基础上对特征点来增加方向信息θ。计算公式为:

θ=atan 2(m01,m10)

(12)

(13)

其中,m01,m10是图像的一阶矩,mpq是矩的计算公式。

rBRIEF是对BRIEF描述子添加特征点的方向,然后用贪婪算法从所有的像素对中找到256个相关性最低的像素对,最后得到rBRIEF。

3 系统实现

3.1 系统开发平台介绍

3.1.1 硬件平台

1)PC用户端:Acer 4741G型笔记本,配置:CPU为Intel Core i3、双核,2GB内存,Microsoft Windows7操作系统。

2)Android手机:三星S4型号手机和LG-D802型号手机,都为Android4.2.2操作系统,屏幕分辨率都为1 920×1 080,内存2G。

3.1.2 软件平台

1)Eclipse Juno(4.2版本)开发环境,同时选择JDK作为Java的语言环境。Eclipse是一个大型的开发平台,而JDK是Java语言的运行环境。

2)Android NDK R8和Cygwin。运用Android NDK R8来完成C++库文件的调用的互相编译,且自动将so和java应用组成apk文件。NDK编译代码要用到make和gcc,而Cygwin用来模拟linux的操作环境。

3)Android SDK的开发工具包,包括开发应用程序时所用的的软件工具包、调试工具和最后的Android模拟器。在开发过程中运用DDMS和ADB工具进行调试,应用程序在Android模拟器上调试。

4)OpenCV 2.4.6版库函数,提供了Android端的接口,运用OpenCV版库文件来实现Android平台下的图像处理操作。

3.2 系统实现过程

确定了关于指纹图像预处理算法、特征提取和匹配算法之后,开始对智能手机上的指纹识别的软件进行开发设计和实现,具体流程见图4。安卓平台上的指纹识别系统共有4大模块,分别为摄像头模块、指纹图像处理模块、指纹图像匹配模块和匹配结果模块。

图4 非接触指纹识别安卓应用流程图Fig.4 Flowchart of Android application for contactless fingerprint identification

摄像头模块:功能主要由CameraActivity活动来完成,同时调用处理模块,即ProcessActivity。其中包括摄像头对手指指纹的采集,通过takepicture实现对指纹图像的拍摄,并设置了拍摄所需要的参数,拍摄完成的瞬间对拍摄到的整个图像开始灰度化。

预处理模块:在ProcessActivity活动中实现,利用关键函数Imgproc.cvtColor(matCameraFrame,matGrayScale,Imgproc.COLOR_RGB2GRAY) 使指纹图像的灰度化,接着运用Imgproc.equalizeHist()对图像完成直方图均衡化,然后计算脊线方向场,设置gradientSigma=1,blockSigma=13,orientSmoothSigma=15。并对脊线频率进行计算:fBlockSize=36,fWindowSize=5,fMinWaveLenth=5,fMaxWaveLenth=25。且对脊线方向进行滤波,滤波器大小filterSize=1.9。最后通过enhancement方法进行增强。

图像匹配模块:由于进行图像匹配的算法几乎全是用C++进行编写的,且要调用OpenCV库,而Java是应用层语言[10]。所以需用到JNI技术[11],使Java应用层使用特定算法的功能。JNI是Java平台的接口,使其与其他语言实现交互,完成两种语言的调用,同时提高程序的运行效率。 Android平台也有相应的JNI接口,使应用程序方便地调取C语言。其具体的结构见图5。

图5 JNI接口的结构图Fig.5 Structure diagram of JNI interface

匹配结果模块:FLAAN表示快速近似最近邻库,对于基于FLANN的匹配器,传递IndexParams和SearchParams两个字典,指定所用的算法及相关的参数集合。并用DescriptorMatcher.creat(DescriptorMatcher.FLANNBASED)进行初始化。接着调用match()和knnMatch函数,运算完全部的描述子后利用DescriptorMatcher.match(descriptors1,descriptor2, matches)进行关键点匹配。调用drawMatches()来帮助进行绘制结果,显示所得到的的匹配。

至此,非接触指纹识别的安卓实现基本完成,注册与识别界面见图6。其中,图6(a)为应用程序首页,即注册识别界面;图6(b)~图6(d)为直接拍摄指纹的身份注册过程;图6(e)~图6(g)为对采集的指纹图像进行识别的过程。

图6 应用程序的操作界面Fig.6 Application’s operation interface

4 实验结果及分析

4.1 应用程序识别性能的测试

非接触指纹识别系统识别率的高低直接决定系统性能。测试中,发现光照强度和背景因素对识别率的影响较大,测试结果见表1。

表1 指纹库的检测识别结果Table 1 Recognition results of fingerprint Library

指纹的识别率受光照和背景的影响,在70%左右。而识别速度可以控制在2 s以内,基本满足实时性的要求。同时对已采集的好指纹图像进行测试,选取在不同的光照条件下测试结果见表2。

表2 指纹图片的检测识别结果Table 2 Recognition results of fingerprint image

以上的测试都是Android手机上完成的,这些实验结果基本达到预期的要求,有较好的识别率和检测速度。由于直接拍摄指纹受到光照和背景等的影响,包括手机配置等诸多因素在内,识别效率一般,而直接采集预处理过的指纹图片,达到了较好的实验效果。如何进一步完善指纹数据库的质量,降低外界光照和背景因素的影响,对识别算法进行进一步的优化,降低计算的复杂度都是未来研究的重点。

4.2 应用程序工作效率测试

运用两种不同手机进行应用程序的效率测试,其中三星S4和LG-D802获取的指纹照片的像素都是1 920×1 080,分别对80枚指纹图像进行了测试,实验结果见表3。结果表明应用程序基本达到实时性的要求。同时三星S4和LG-D802手机在相同条件下的识别率也有一定的差异。

表3 不同型号手机的识别结果对比Table 3 Comparison of recognition results of different cell phones

图7 对比测试的结果图Fig.7 Comparison of test results

4.3 应用程序与PC机上识别率的对比测试

在PC机上进行识别结果的测试针对的是标准的数据库,图像受外界影响较小,识别率较高。而在手机设备上进行指纹识别时受到外界光照和背景等因素的影响,会使识别精度下降。两种情况下的对比测试结果见图7。同时同一画面在不同尺度下在手机上进行图像采集,结果表明,在各种尺度下的指纹图像匹配率差异不大,基本满足要求,验证了多尺度的Harris特征提取算法在手机拍照采集指纹下能获得较好效果。

5 结 论

手机等移动设备逐渐改变人们的生活,同时移动平台的身份认证技术也受到了广泛关注。非接触指纹识别有较好的识别率、稳定性和可靠性,克服了传统指纹图像采集中的图像畸变等问题,有很好的发展前景。本文利用手机摄像头进行指纹图像采集,运用OTSU算法完成手指指尖的前背景分割和基本图像预处理后,采用多尺度Harris角点检测和ORB匹配算法进行指纹识别。并在Android平台上得以实现和应用,有较好的识别率和实时性,能够基本满足移动平台非接触式指纹识别的需求。

但该系统仍存在很多需要改进的地方:实际指纹拍摄过程中会有光照过强等因素影响采集效果,文中的测试均在实验条件较好情况下进行,识别率虽达到预期,但在手机软件上注册的指纹图像较少,对系统的检验程度不足;手机摄像头是光学成像采集的指纹图像,只能采用基于图片的识别算法,假指纹同样能够完成身份认证,且存在指纹图像易被盗取的安全隐患。未来研究中应提高系统对光照的鲁棒性,同时应对指纹的真假进行判断,并对采集的指纹图像数据库设计相应的加密技术,提高精确度、稳定性和安全性。

[1] 李永,殷建平,祝恩,等.动态分数选择的多视角非接触指纹识别融合[J].哈尔滨工业大学学报,2012,44(7):108-113.

[2] Labati R D,Genovese A,Piuri V,et al.Quality measurement of unwrapped three-dimensional fingerprints:a neural networks approach[C]//Neural Networks(IJCNN), The 2012 International Joint Conference on.IEEE,2012:1-8.

[3] 梁小龙,殷建平,祝恩,等.基于纹路的三维指纹模型重建算法[J].计算机科学,2012, 39(10):282-285.

[4] Zhang D, Lu G.3D biometrics:systems and applications[J].Springer,2013,6(3):2432-2442.

[5] Kono M,Ueki H,Umemura S.A new method for the identification of individuals by using of vein pattern matching of a finger[C]//Proceedings of the 5th symposium on pattern measurement,Yamaguchi,Japan.2000: 9-12.

[6] Kim J.Touchless sensor capturing five fingerprint images by one rotating camera[J]. Optical Engineering, 2011, 50(11):828-832

[7] NishimuraS,Manabe I,Nagasaki M,et al.CD8+ effector T cells contribute to macrophage recruitment and adipose tissue inflammation in obesity[J].Nature Medicine,2009, 15(8):914.

[8] Luo J,Gwun O.A comparison of SIFT,PCA-SIFT and SURF[J].International Journal of Image Processing,2009,3(4):143-152

[9] Perona P,Malik J.Scale-space and edge detection using anisotropic diffusion[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2002,12(7):629-639.

[10] 曾健平,邵艳洁. Android系统架构及应用程序开发研究[J]. 微计算机信息,2011(9):1-3.

[11] 卫红春. JNI调用本地方法的原理及应用[J]. 计算机与信息技术, 2010, 12(6): 84-87.

Implementation of non-contact fingerprint identificationbased on Android platform

WANG Ke-Jun, DING Xin-Nan

(CollegeofAutomation,HarbinEngineeringUniversity,Harbin, 150001)

A method of real-time fingerprint identification using the camera on mobile-phone to acquire fingerprints in Android platform is proposed. Multi-scale Harris corner detection and ORB image matching algorithm are used for feature extraction and matching, furthermore Android development tools and OpenCV are used for technical implementation, respectively experiment and test in Android different mobile devices. The experimental results show that this algorithm can acquire, register and recognize the fingerprint images in real time on the Android platform, and it has higher recognition rate and stability to meet the requirements of contactless fingerprint identification on mobile platform.

fingerprint identification; Harris corner detection; ORB match; Android platform

10.13524/j.2095-008x.2017.03.045

TP273.4

A

2095-008X(2017)03-0082-08

2017-08-15

国家自然科学基金资助项目(61573114);黑龙江省自然科学基金资助项目(F2015033);中央高校基本科研基金资助项目(HEUCF160415)

王科俊(1962-),男,黑龙江哈尔滨人,教授,博士,博士研究生导师,学科带头人,研究方向:模糊混沌神经网络、自适应逆控制理论、模式识别和多模态生物特征识别等,E-mail:wangkejun@hrbeu.edu.cn。

猜你喜欢
指纹图角点指纹识别
基于单片机指纹识别电子寄存柜设计
电子制作(2018年11期)2018-08-04 03:25:46
基于FAST角点检测算法上对Y型与X型角点的检测
指纹图像传感器技术与后续发展研究
电子测试(2018年4期)2018-05-09 07:27:49
基于边缘的角点分类和描述算法
电子科技(2016年12期)2016-12-26 02:25:49
指纹识别技术综述
基于圆环模板的改进Harris角点检测算法
沉香GC-MS指纹图谱分析
中成药(2016年8期)2016-05-17 06:08:26
基于模板检测法的指纹图像的细节特征提取
基于大容量指纹识别的实时身份认证系统
基于线阵CCD的指纹识别实验
物理实验(2015年10期)2015-02-28 17:36:53