针对掌纹识别的研究_掌纹识别算法_夏荷影的博客-程序员秘密

技术标签: 算法  生物识别  机器学习  深度学习  

针对掌纹识别的研究

摘要

目前,随着生物识别技术的广泛应用,以及处于对公共卫生的考虑,基于非接触式和不受拘束的掌纹识别系统受到广泛研究。同时处于对识别精度和抗干扰性要求,多模态融合识别算法广泛的应用于生物识别。本文介绍了一种基于手表面图像的多模态融合识别算法。该算法通过提取手掌纹以及内指纹理(IFT)进行特征级融合识别,无需再获取其他的生物特征。同时,提高了识别精度。
在这里插入图片描述

一、引入
目前,生物识别系统被广泛应用于各种生活场景,如行政办公[1],金融支付[2],社会保障[3]以及物联网设备的身份认证等。传统的身份鉴定方法包括身份标识物品(如钥匙、证件、ATM卡等)和身份标识知识(如用户名和密码),但由于主要借助体外物,一旦证明身份的标识被盗或遗忘,其身份就容易被他人冒充或取代。生物识别技术比传统的身份鉴定方法更具安全、保密和方便性。生物特征识别技术具不易遗忘、防伪性能好、不易伪造或被盗、随身“携带”和随时随地可用等优点。目前,最为广泛应用的生物识别系统包括指纹识别,人脸识别,掌纹识别,虹膜识别等。
其中,掌纹识别是一门在19世纪提出的新兴的识别技术。目前对于掌纹识别的研究大多基于非接触的采集过程,该方法无需手掌与任何物体接触,故而拥有较低的侵入性,较高的可靠性和积极的社会接受度。此外,由于可以在一只手的图像上同时收集到掌纹与内指纹理,允许使用多模态生物识别算法提高对单一生物特征采集的识别精度。实际上,使用内指表面和掌纹的识别算法已经被证明增加识别性能。
在这里插入图片描述
图一展示了在基于手的生物识别背景下各部分的位置。

最近深度学习技术(DL)在生物识别等领域得到广泛关注,尤其是神经网络技术被广泛应用。其优势在于可以自动识别数据特点, 适应在异构条件下捕获的生物特征样本,并具有较少的捕获程序。 在本文介绍的算法中中,使用深度学习方法通过融合掌纹和从单手采集中提取的内指纹理来执行生物识别。该方法有以下优势:(1) 它使用深度学习模型,该模型由使用无监督过程训练的CNN组成,不需要类标签;(2) 它对所有生物特征使用相同的CNN模型,分别适应于掌纹和从不同手指提取的IFT;(3) 它采用掌纹和IFT的特征级融合来提高识别精度,而不需要额外的生物特征获取。

本文接下来的结构如下:(1)第二段介绍掌纹识别及其相关信息(2)第三段给出本文介绍的方法(3)第四段给出本文实验评价(4)第五段安全威胁以及发展方向。

二、相关工作

在本段中,我们首先介绍了何为掌纹识别以及其常用特征,再回顾现有的掌纹识别方法。
2.1 掌纹识别介绍
掌纹识别:掌纹识别技术是一种较新的生物识别技术,最早于19世纪90年代提出。掌纹是指手腕与手指之间的手掌表面上的各种纹线。掌纹的形态由遗传基因控制,即使由于某种原因表皮剥落,新生的掌纹纹线仍保持着原来的结构。每个人的掌纹纹线都不一样,即使是孪生同胞,他们的掌纹也只是比较相似,而不会完全一样。掌纹识别也是一种非侵犯性的识别方法,用户比较容易接受,对采集设备要求不高。
掌纹特征:其中最重要的特征是文线特征,这些文线特征中最主要的几根线伴随人一生不变,且在低分辨率和低质量的图片上也可以清晰的识别出。其次是点特征,主要是指手掌上所具有的和指纹类似的皮肤表面特征,如掌纹乳突纹在局部形成的奇异点及纹形。点特征需要在高分辨率和高质量的图像中获取,因此对图像的质量要求较高。然后是纹理特征,主要是指比纹线更短、更细的一些纹线,但其在手掌上分布是毫无规律的。手掌的宽度、长度和几何形状,以及手掌不同区域的分布。一般仅作为辅助用途。
2.2 现有掌纹和手指表面生物识别算法
现有的掌纹识别算法主要基于两大类。第一类是结构方法,比如基于主线[5],和皱纹[6]等被认为是对于识别掌纹有用的部分。第二种类方法是包含全局的掌纹识别方法,如Gabor fifilters[7],Morphology operation[5]。
对于内指纹理的识别与掌纹识别相识,同样基于两大类:结构方式和全局方式。在结构方式中,我们尝试检测,定位,和分析内指纹理中的表面关键部分,如关节屈曲,皱纹和脊等,来完成生物识别。 在全局方法中,我们将分析指纹表面作为一个整体,即将指纹表面的整个区域作为识别算法的输入。
多模态生物识别是一种较新的算法,在实际应用中,由于实际光照,个体差异,安全性低,单模态生物特征识别实际应用较低,而多模态融合特征在安全性和普遍性上有明显优势。多模态生物识别通过与单个个体相接触来生成至少两个生物测量信号。从至少两个生物测量信号的各信号中提取至少一个特征,并且将所提取的特征合成以生成合成生物信号。响应于合成生物信号与同已知个体相关联的定义生物信号相匹配,将合成生物信号与定义生物信号进行比较,并且发送表示单个个体是已知个体的信号。

三、解决方法
本文介绍的方法通过对使用机器学习算出的掌纹和内指纹理特征进行混淆,来进行生物识别。该方法考虑使用PCANet[附录1],一种基于主成分分析(PCA)的无监督CNN训练过程,来提取一个图像上的掌纹和内指纹理。基于PCA的滤波器已经成功的使用于其他生物识别,如人脸识别和指纹识别。
在该方法中,提取了五种生物特征,分别是掌纹,食指IFT,中指IFT,无名指IFT,小指IFT。由于PCANet要求图像对齐,我们分别对五个特征进行计算。由于对于整个图像,四个IFT在不同位置存在相对差异的,故文中使用一个基于手指之间谷点的参考系统来分割并对其四个IFT和掌纹。对于每种生物特征,PCANet输出一个表示生物特征模板的一维特征向量。接着,对得到的生物特征进行特征级融合,得到一个对每个手的单一特征模板。最后,该方法使用基于欧式距离的K-NN分类器(其中k=1)对获得的模板进行分类。
解决方法可以分为以下四个过程:分割,CNN训练,特征提取,分类和匹配,融合。如图2。
在这里插入图片描述
3.1 分割
该过程通过从一只手的图像中提取掌纹的ROI和内指纹理IFT作为样本。可以将过程分为提取掌纹,使用内指纹理和调整像素三个部分。如图三。

图三
在这里插入图片描述

提取掌纹:
该过程通过使用Kirsch边缘检测器[附录2]和Otsu阈值[附录3]的组合将图像转化为灰度,并计算手的二进制掩码。接着提取手指之间的谷地,对应于食指,中指,无名指和小指之间的交叉点。最后建立谷点坐标系提取ROI。
提取内侧指纹:
在参考系统的基础上旋转手,以获得手指向左的图像。接着在掌纹ROI的左边选取主要连接分量,对于每个分量,通过分析图像发轴与拟合椭圆的主轴间差异来计算相应手指方向。最后,补偿每个手指对应分量并提取由边界矩形包围的图像区域。
调整图像:
调整掌纹ROI图像至uv像素,内侧纹理为ab像素。

3.2 CNN训练
该过程对每个提取的感兴趣区域ROI计算PCANet。该过程可以分为三步:(1)收集ROI的地方区域;(2)PCA的计算和CNN滤波器的提取;(3)构建多层CNN。

收集ROI的地方区域:以图像的每个像素为中心,提取地方区域pi,j,其中,每个地方区域的尺寸为m1m2。将每个区域转化为一个向量pi,j,并减去每个向量的平均值。该方法通过连接从所有N各ROI图像中获得的向量pi,j计算矩阵P。
PCA的计算和CNN滤波器的提取:进行PCA计算和主成分分析。进行主成分分析,从矩阵P
PT中提取V1个主特征向量,对于i=1,2,…,V1获取ei。接着通过转化在矩阵E1,j中的特征向量计算CNN第一层的V1个滤波器,其中E1,j属于Rm1*m2。
构建多层CNN:通过对E1,i中每个滤波器对ROI进行滤波,获得V2个图像Fi。该方法在每个图像Fi上重复过程(1)(2),并通过提取PCA的V2个特征向量构造第二层滤波器E2,j,其中j=1,2,…,V2。

训练后的PCANet是滤波器的总和,利用PCANet对每个ROI分别进行计算,获取五个不同的PCANet,分别为PCANet-IFT-1, PCANet-IFT-2, PCANet-IFT-3, PCANet-IFT-4, PCANet-IFT-Palmprint。

3.3 特征提取
将每个经过训练的PCANet应用于相应生物特征,为每个生物特征获得一个一维特征向量。可以将特征提取分为三部分:(1)使用PCANet进行图像滤波(2)图像编码(3)模板计算。

使用PCANet进行图像滤波:首先使用PCANet第一层的E1,i滤波器进行滤波,获得V1个图像Fi。接着对每个图像Fi进行第二层E2,j滤波,得到V1V2个图像Gk,其中k=1,2,…,V1V2。在PCA的处理过程中,图像大小保持不变。该过程的拓扑图如图四。

在这里插入图片描述

图像编码:将下述阈值函数应用于图像的每个像素来对Gk进行二值化,得到二进制图像Bk。
在这里插入图片描述

接着分别考虑每组V2个图像。对于每个位置P(X,Y),通过连接二进制比特位计算一个二进制向量,得到b=[B1(x,y),B2(x,y),…,BV2(X,Y)]。接着使用等式d=20b(1)+21b(2)+…+2V2-1b(V2)将二进制向量编码为一个十进制数。 我们对所有位置(X,Y)的编码来计算十进制矩阵D(x,y),该矩阵为编码V1个图像组的结果。然后,我们对所有V1个组重复这个过程,得到矩阵Di(x,y),其中i=1,2,…,V1。
模板计算:我们通过串联分块直方图来构造一维模板H,其中分块直方图为图像Di中大小为b1*b2的为每个不重叠块Nb计算得来。

本文中,对每个特征向量进行计算,得到以下矩阵:H-ITF-1, H-ITF-2, H-ITF-3, H-ITF-4, H-Palmprint。

3.4 混淆
在该部分,首先对不同ROI得到的特征矩阵都进行min-max归一化,接着,我们把所有标准化的特征向量连接起来作为手部的特征矩阵H-Hand={H-Palmprint, H-ITF-1, H-ITF-2, H-ITF-3, H-ITF-4}。

3.5 分类和匹配
在认证和核查方式方面都可以采用拟议的办法。在识别模式中,我们使用基于欧氏距离的k-NN分类器执行分类步骤,其中k=1。 在核查方式上,我们使用匹配函数s1,2=match(H-Hand1,H-Hand2)计算两个手模板间距离s
四、实验结果
本节介绍使用的数据库,以及识别精度。
4.1 数据集
该方法使用the REgim Sfax Tunisia (REST) hand database 2016。 其中包含从358个个体中捕获的1945掌纹样本,其年龄从6岁到70岁不等。数据收集是在室内环境照明下使用低成本数码相机进行的,其中手的位置和方向不定。分割算法成功的提取了目标ROI,只丢弃了约0.5%的样本。

4.2 识别精度
该节展示了提出方法的分类和匹配精度,以及混淆的有效性。
首先,在未混淆的情况下对掌纹和IFT分别进行分类,结果如下:对掌纹精度为93.03%,IFT-1为72.07%,IFT-2为87.63%,IFT-3为77.69%,IFT-4为58.09%。接着对混淆后计算精度为94.46%。

五、安全威胁与发展方向
目前针对掌纹识别最主要的攻击模式为表现攻击[8],该攻击将真实生物特征复制后提交给传感器进行识别。这类攻击往往不需要使用太过复杂的专业知识或者昂贵的设备就可以骗过检测算法。
目前,可以实现的攻击方法包括(1)使用手部照片;(2)对手部进行3D建模;(3)带有受害者掌纹的橡胶手套。
针对这些威胁,学术界的防御方法如下:
首先,是使用多模态生物特征融合的方法,将手表面特征与掌脉特征相结合[9][10][11],该方法可以有效对图片欺诈进行防御。其次是基于对手掌进行2D和3D特征融合识别。

PS:
选修地质大学杨帆老师课程的同学当个参考就行,学长已经用过了
参考文献
[1]刘丽丽,宋进,《人脸识别技术在行政办公中的应用》,办公自动化,2020年19期,第56~57页
[2]中国工商银行软件开发中心数字化银行实验室,《深化金融科技应用 构建数字化银行》,杭州金融研修学院学报,2020年09期,第10~12页
[3]秦靖沂,人社部信息中心,《生物识别在社会保障领域应用》,中国社会保障,2020年06期,第30~33页
[4]Angelo Genovese, Vincenzo Piuri, Fabio Scotti, Sarvesh Vishwakarma,Touchless Palmprint and Finger Texture Recognition: A Deep Learning Fusion Approach,2019
[5]X. Wu, D. Zhang, K. Wang, B. Huang,Palmprint classification using principle lines, Pattern recognition, vol. 37, pp. 1987-1998, 2004.
[6] J. Chen, C. Zhang, G. Rong, Palmprint recognition using crease. In Proceeding of international conference on image processing, vol. 3, pp. 234-237, 2001.
[7]D. Zhang, W. Kong, J. You, M. Wong, Online palmprint identification, IEEE Transaction Pattern Analysis Machine Intelligent, vol. 25, pp. 1041-1050, 2003
[8]Shruti Bhilare, Vivek Kanhangad, Narendra Chaudhari. A study on vulnerability and presentation attack detection in palmprint verification system. 2018, 21(3):769-782.
[9]李新春,马红艳,林森.基于局部邻域四值模式的掌纹掌脉融合识别[J].重庆邮电大学学报(自然科学版),2020,32(04):630-638.
[10]严娇娇. 基于掌纹与掌静脉双模态融合特征识别研究[D].西北大学,2018.
[11]王颖,惠晓威,林森.基于局部线性二值模式的掌纹掌脉融合识别[J].传感器与微系统,2018,37(04):112-115+120.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44465615/article/details/109631202

智能推荐

java 实现SMS api 短信发送_唐 城的博客-程序员秘密

SMS短信通API下行接口参数 短信上行回复API 重要提示:用接口发送验证码的程序员注意,近期短信验证码轰炸软件泛滥,请在发送验证码的时候,加上一个图形校验码验证,防止机器人读取狂发验证码!!!不明事宜请联系客服咨询。发送手机验证码请做好以下几点防范: 发送验证码1分钟只能点击发送1次; 相同IP手机号码1天最多提交20次; 验证码短信单个手机号码30分钟...

c语言中指针转为int,C语言指针转换为intptr_t类型_勤劳课代表的博客-程序员秘密

1、前言今天在看代码时,发现将之一个指针赋值给一个intptr_t类型的变量。由于之前没有见过intptr_t这样数据类型,凭感觉认为intptr_t是int类型的指针。感觉很奇怪,为何要将一个指针这样做呢?如是果断上网查查,发现我的感觉是错误的,所以,任何事情不能凭感觉,要弄清楚来龙去脉。先总结一下intptr_t类型,然后介绍指针与intptr_t类型的转换,最后给出测试程序。2、intptr...

php json登录注册,json与ajax实现用户登录验证_whatis真实的博客-程序员秘密

摘要:1. 登录页面(login.html) ajax与json进行无刷新表单验证1. 登录页面(login.html)ajax与json进行无刷新表单验证用户登录登录function login() {let btn = document.getElementsByTagName('button')[0];let username = document.getElementsByN...

2021-06-24 TV直播 Mediaplayer播放m3u8的demo_tiwolf_li的博客-程序员秘密

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

让dreamweaver支持ftl等扩展名_不懂事的猫儿的博客-程序员秘密

1、使Dreamweaver能识别*.ftl文件,并当做html页面来处理,需要修改两个文件,    (1)Extensions.txt------位于你的用户目录下,位于dreamveaver安装目录下的configuration文件夹下。    (2)MMDocumentTypes.xml----位于dreamveaver安装目录下的configuration/DocumentTypes文件夹

Android源码剖析之Framwork层消息传递,工作感悟_m0_53537576的博客-程序员秘密

导语事情是这样的,一个关注我公众号很久了的朋友,最近跟我说要去面试阿里P6,其实他的水平P7是够了的,他开发了6年,一直在学习新的技术,Flutter,NDK,这些都有涉及,年纪也不是很大26岁,之前我们聊过我觉得他有能力完全是可以胜任P7工作的。大家也不要把所谓的大厂看的过于难进,等下我会稍微说一下阿里面试需要的一下技能,和方法!正文这份资料,反正兜兜转转耗时3个月,在我和我一群朋友的努力以及那个傻子的催促下,终于做出来了。这份高级的闪亮的,耗费我无数心血的面试杀手锏,终于面世了,太不容易了一把辛酸

随便推点

给初学者的深度学习参考资料_Let'sCode的博客-程序员秘密

以下资料为笔者学习深度学习的参考资料,个人觉得对初学者有一定的帮助,于是记录下来,一来是方便自己查找,二来是希望能给学习深度学习的读者们一个参考。后续根据学习情况更新。莫烦PYTHON斯坦福大学的CS课程零基础入门深度学习pytorch官方教程...

Android手机开机动画的更改_android开机动画默认设置为mp4_天长地久007的博客-程序员秘密

本测试基于中兴N760  Android版本为2.3.5条件:  1、手机获得Root权限2、安装有R.E.管理器一、更改开机动画1.下载你自己中意的开机动画包点击下载任选一个;2.解压,得到三个文件(注:也可能是两个或一个)3、将这三个文件压缩为(注:文件名一定为:bootanimation.zip 并且压缩方式为存储)4、将此文件拷到手机内存卡中:5、通过RE管理器

Android ContentProvider使用样例_後雪寒的博客-程序员秘密

在ContentProvider维护着一个SqliteOpenHelper类,随应用启动时调用onCreate()方法一次来进行初始化,之后不再调用该方法。onCreate()方法中实例化Sqlite数据库时传入数据库版本号,当新的版本号大于旧的版本号时,数据库将会调用onUpgrade()方法进行升级,里面实现自己的升级逻辑,通常是drop表再重建表。

实现Android 版网页快照功能_夏洛克的博客-程序员秘密

现在一般的购物网站,在你完成交易后都会将页面拍照以免日后发生商务纠纷,而对于我们移动开发者这个传统互联网上的优秀经验也同样给了我们一些设计上的启迪,接下来我将几种实现思路写出来供大家参考。方案一:使用WebViewClient的onPageFinished事件我们使用WebView当做程序里的内嵌式浏览器的显示网页的时候,如果不进行特殊设置,当用户点击WebView里面的链接就会另外启动A

JAVA day03代码(循环语句部分)_(2)在遍历的过程中,通过条件判断当前的数是否为奇数,如果是就累加,否则不加。_淳淳在努力的博客-程序员秘密

题目1:while循环应用需求:打印50张电影票实现思路:是否属于反复执行的问题确定循环变量、循环条件和循环体画出流程图使用while语法写出代码int num=0;while(num<50){ num++; System.out.println("第"+num+"张电影票");}题目2:while循环应用老王每天早晨沿着操场慢跑10圈在第5圈的时候,会停下来休息5分钟再接着跑for(int i = 1;i<=10;i++){ System.out

Docker Swarm_程涯的博客-程序员秘密

1、什么是docker swarm ?Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm简单理解就是多台服务器搭建一个docker集群,每个服务器就是集群中的一个节点。参考:Docker三剑客之Docker Swarm - 一本正经的搞事情 - 博客园2、docker swarm的几个关键概念swarm :集群管理工具node :节点,一个节点就是docker

推荐文章

热门文章

相关标签