锁见锁闻君导读
指纹识别作为生物识别技术之一,在智能锁具产品中应用广泛,目前已成为产品中配置最多、最重要的开锁方式。本文将简单描述指纹生物特征的构成以及几种指纹采集设备的原理,接着重点介绍指纹识别技术的原理以及为了降低模组的成本从而更好的普及指纹识别技术,研发人员在识别技术上所做的改进。文章的最后则描述了在防伪攻击方面,利用图像进行活体检测的一些尝试。本期嘉宾
几米物联是专注于物联网应用的一家集研发、制造、销售于一体的大型集团公司。公司自主研发了可部署于轻量级处理器上的小面积指纹识别算法,已经成功实现了在NBIOT芯片、蓝牙5.0芯片以及低成本单片机芯片上的移植,一体化的解决方案具有低价格高质量的特点。指纹识别技术简介指纹识别是一种很古老的身份鉴定技术,在古代就广泛的应用于各种契约和身份识别中,其基本原理就是利用人类个体生物特征的差异性来确定不同个体的身份,而这种生物特征并不随着环境和时间的改变而发生显著改变。
到了信息时代,指纹则被应用于那些需要保密的个人物品中,特别是手机。早在年,西门子就推出了带指纹识别功能的原型机,接着在年法国的SAGEM正式推出了量产型的指纹解锁手机,富士通则从年开始成为指纹解锁手机的最大出货商。真正把指纹识别技术带入春天的则是大名鼎鼎的年的IPone5s。
每个人都有十个手指,可很多人并没有仔细研究过自己手指的纹路,图1显示了一个清晰且完整的手指,研究人员对人类的指纹进行了深入的研究,把指纹的生物特征划分为几个等级。
其中level1为全局特征,根据纹路的布局可以分为圆拱形,尖拱形,左旋,右旋,双螺旋形,单螺旋形等。这些全局特征并不足以有效的区分不同的个体,我们必须引入更有效的一些细节特征,这类特征则称为level2特征。这些特征由构成全局特征的细纹中的端点或者两个细纹之间的交叉点构成。对于每一个不同的个体,这些特征点的位置是不一样的,我们通过记录不同特征与其周边邻近特征之间的相互关系来描述这个特征。众多的特征组合起来构成一张网络,这个网络所包含的信息则足以区分所有的人类个体。
图2中显示了几个实际手指中的第二类特征,特征与特征之间相对的距离以及该特征的主方向则作为特征的描述子来描述该特征的信息。图3是由特征点群构成的特征网络,要能够分辨每一个不同的人类个体,特征节点的数量必须大于一个门限值,在不同的国家对这个门限的定义有所不同。
英国要求特征点在16个以上,澳大利亚和美国则要求在12个以上,中国和印度只要求8个。这些特征网络节点的数量越多,则其分辨能力越高,因为实际使用中受到各种环境的影响,设备采集到的图像会有各种干扰,这些干扰会模糊一些本身存在的特征点,冗余的特征点可以弥补由噪声造成的信息损失。目前关于指纹识别有两个比较重要的标准,分别为ISO-,ANSI-,标准里详细描述了这些信息。
接下来的问题是怎么获得这些指纹特征点?根据不同的原理,工程技术人员设计了多种不同的方式来对手指上的沟壑进行成像,得到图像后再从图像中解算出其特征点。由于原理不同,每一种方案都具有不同的优缺点。目前流行的有光学采集法,电容感应法和超声波检测法,比较传统的方式是光学指纹采集系统,如图4左半部分所示。
光学指纹头的原理显而易见,就是由模组中的光源对玻璃棱镜进行照明,其反射光受手指上的沟壑影响,处于凹槽的位置是低密度的空气,这里容易形成全反射。而在手指纹路凸起部分则与棱镜紧密接触,这一部分的密度大于空气,所以光源投射出来的光一部分反射了,另外一部分折射出棱镜后又由手指的反射作用重新回到摄像头中。于是我们就可以采集到清晰的手指纹路。
图4的右半部分则显示了电容指纹传感器的工作原理。传感器由微电容点阵构成,手指上的沟壑会影响电容点与手指之间的介电系数,从而影响微电容的容值。当我们对每个电容进行充电的时候,由公式我们可以测量充电结束后各个微电容两端的电压,然后把纹路沟壑的深度与电压值对应起来,整个阵列就构成了一幅手指的纹路图。早期的电容指纹技术不够成熟,需要通过一个金属圈来发射电信号实现电容值的测量,最新的电容指纹传感器都采取无Ring设计,这样让工程人员简化了设计,提高了可靠性。
图5展示了超声波电容指纹传感器的基本结构,它是由一大堆的超声波换能器组成的,图5的右边是超声波传感器换能器阵列的结构。换能器把电信号转换成超声波信号发射出去,超声波在不同种类介质的分界面会形成波的反射和折射,其中一部分反射回来的能量被换能器接收并转换成电信号。根据采集到电信号的时间间隔,利用声波的飞行时间可以得到手指上沟壑的深浅程度,得到的这张深度图也就代表着手指的纹理图。
下面我们总结一下三种采集方式的优缺点:
光学图像采集法:
首先该方法是最传统的指纹采集方式,其工作原理和识别算法都得到过广泛的研究,较为成熟可靠,在早期的门禁产品中有广泛应用。它的缺点也是显而易见的:
第一由于它需要辅助照明,这大大的提高整机的功耗。
第二它需要一个玻璃棱镜作为光学界面,这增加了产品的体积和重量。
第三是它采用摄像头来采集图像,只能对光信号有反应,容易被非法用户通过菲林等造假手段破解。在环境发生变化时,特别是干燥的冬天,手指的毛细血管收缩会让手指发白,纹路变得不明显,这大大降低了设备的识别率,影响用户的体验感。
电容感应法:
这种指纹采集方式是目前最主流的指纹采集方式,在手机等产品中大量使用。它的优势正好弥补了图像指纹采集传感器的劣势,轻薄、功耗低,无需额外的辅助照明,让产品具有更好的隐蔽性和更优雅的外观。同时电容指纹传感器依靠的是手指纹路与电容阵列之间的电容值来成像的,所以他对光学图像没有反应,用菲林打印的指纹无法破解用户的信息。介电系数特性相对来说比较稳定,手指不容易受环境的影响,在冬天也可以正常使用。电容指纹传感器的缺点是仍然不容易实现活体检测,只能在一些有限的条件下实现活体鉴别,虽然防伪性能大大优于图像采集法,但仍然面临着非法入侵的风险。其次电容指纹传感器的防水性能跟光学传感器一样的不好,因为手指皮肤内的电解液与水的介电系数区别很微弱,当手指上的沟槽被水填充,其产生的电容变化不能被传感器准确分辨,这时传感器采集到的图像是模糊不清的,不能用于身份识别。
超声波测量法:
该类型的设备是最近才出现的指纹采集方式,它最大的优势就是容易实现活体检测。通过控制超声波的功率,让超声波穿透手指皮肤表面后,其回声可以显示出一部分手指内部的微结构,这让造假者无从下手,从而可以最大程度的防止非法用户的入侵行为。超声波指纹的防水性能也优于光学和电容指纹,因为水膜是单一材质,其影响可以通过算法来进行修正,所以即使手指沾了水也可以准确识别。超声波指纹采集的缺点也很明显,不同于电容指纹传感器只受介电系数影响,超声波在不同材质的界面都会发生反射和折射,人体的结构非常复杂,各种界面众多,最终得到的图像背景噪声也非常复杂,需要经过繁琐的预处理才能得到准确的指纹图像。其次它的安装难度也很大,材质之间的形变也会影响声波能量的耦合,怕摔怕碰,环境适应能力不好。正因为图像的复杂性造成了其识别率比较低,要解决这些问题需要进一步提升CPU的运算能力并采用更先进的算法来对图像进行增强,这些都意味着更加高昂的成本。这些因素决定了超声波指纹传感器只能部署在成本极高的高端产品中,不适用于普通产品。
聊完了图像的采集,我们该说一说怎么利用指纹图像来把用户的身份关联起来。
文中第一部分已经介绍了手指上纹路的生物特征,现在我们就该把这些特征利用起来。跟古代的识别方式一致,我们比较已经存档的指纹与现场采集的用户指纹是否一致就可以了。这种比较方法在图像算法上叫做图像距离,我们根据各个特征值的一致性来进行打分,如果各个特征点的区别很小则得分就高,这时候我们则判定为相似。
图6展示了指纹识别的一个完整流程。
光学图像采集法获得的指纹比对方式与电容指纹传感器获得的指纹比对方式在本质上并没有区别,首先现场获取的图像受到手指按压力度或者其他因素的干扰,其纹路的图像并非均匀一致的。另外电容指纹传感器的单个像素单元不仅受到其正对位置的影响,同时也会受到其周边位置的影响,这会让图像变得模糊。为了让图像变得清晰均匀,我们对图像采取贝叶斯方法滤波和去卷积处理,为了让脊线更突出,我们对图像进行gabor滤波。
如图6所示,经过预处理后,指纹变得清晰明显。把得到的图像二值化后再提取其骨架,得到的就是能用于指纹识别的图了。根据细化后指纹纹路中的端点或者交叉点等生物特征节点,我们得到了能够用于身份鉴别的生物特征。比对现场采集的生物特征与存储于我们设备中的生物特征的差异,根据其相似程度就可以鉴别出用户的身份了。
接下来我们讨论的重点是如何使用更小的图像来对用户的指纹进行准确识别。首先我们为什么要用更小的图像来进行身份识别呢?大家都很清楚芯片是由硅片加工而成的,芯片的面积越小意味着同样面积的晶圆切割出来的芯片更多,而单片晶圆的制造成本是一致的,更小的面积就意味着更低的成本。例如相同的DPI下x规格可以切割成4个80x80的传感器,那么80x80的传感器的成本相对于x的传感器则近似降低了75%,这可是一笔划算的买卖。接着问题来了,使用小面积的电容指纹传感器的难点在哪里?
文章第一部分我们已经描述过指纹生物特征的构成,如果图像足够大则很容易获得大于12个以上的生物特征点,这样采用上述的算法很轻松就可以实现用户身份的鉴别。但是当图像缩小到原来的1/4后,能得到的生物特征点变得很少,有些位置甚至没有生物特征点。
图7显示各种不同分辨率电容指纹传感器对应的图像尺寸,你可以发现面积越小,能取得的纹路端点,交叉,眼等特征越少。特征点不够,用户的身份就法进行识别。
既然得不到足够的传统生物特征,那我们就手工设计一种能够稳定复现的图像特征来代替生物特征。
传统的图像特征点有SIFT,SURF,ORB等,其性能与其计算量成正比,描述子越复杂,可靠性和稳定性越高,可以做到抗尺度变化,抗照度变化,抗旋转变化等。经过验证,生物特征是图像特征的一个子集,稳定的图像特征的可靠性甚至超过生物特征。幼儿的手指因为发育不完全,其指纹的生物特征不明显,老人的手指因为存在过多的疤和裂,这会破坏生物特征点的完整性,产生很多伪点,而采用图像特征反而可以准确描述这两类人的指纹特征。在一张x64的图像里,我们通常能得到0-5个生物特征点或者几十个可靠稳定的图像特征点。
因为图像面积过小,我们只能把一个个的局部图像组合成一个完整的手指来作为参照模板。终端上的应用方案大多采取多模板的方式,像常用的iPhone5s以后的手机,以及华米OV指纹识别功能的手机,多是采用5-20次的按压作为手指的模板。通常图像特征的描述子都比较复杂,它需要根据其周边像素的梯度和方向等一系列信息来表示一个独特的特征点。为了让每次按压都能可靠识别,我们需要记录的特征数量就必须足够多以至于能完整的覆盖到手指的每个位置。生物特征点只需要记录其与周边特征的距离、夹角以及特征的主方向即可,而且因为采用的图像足够大,所以特征点的分布间距也无需太紧密,这样他的总模板大小只有不到1KB,而采用图像特征点算法由于模板众多,特征点密集,这造成了它需要的模板几十倍于生物特征点。
图8展示了x64的传感器实现模板拼接及现场识别的过程,红色框为现场采集的指纹,黑色框为模板存储的指纹。
现在我们了解了怎么使用小面积的图像来进行指纹识别,但是在落地的时候往往遇到诸多困难。
首先图像特征点的计算复杂度非常高,卷积、迭代、矩阵叉乘这些运算需要占用大量的CPU资源,如何对特征提取算法进行优化以满足识别的速度需求是首先需要解决的。图像受到工作环境的影响往往伴随着各种噪声,你可以看到指纹的细节被诸多噪点夹杂着,这些噪点会影响特征的描述子,不稳定的特征会造成误配。为了提高特征点的稳定性就需要引入一些策略来对得到的诸多图像特征点进行筛选和分类,让能够可靠稳定的反应指纹信息的特征得以保留,而那些容易受噪声影响的特征需要被剔除出去。现实中,人的手指也不是稳定不变的,随着时间和气候的变化,手指也会发生一些改变。为了让指纹识别算法适应这些改变,我们会在正确的识别后把最新的信息更新到指纹库中,让系统得以了解手指正在发生的变化,这个策略叫做学习。
几米物联是专注于物联网应用的一家集研发、制造、销售于一体的大型集团公司。公司拥有经验丰富的技术专家,拥有卓越的专业能力和优良的服务素质,深谙行业运作经验。我司自主研发了可部署于轻量级处理器上的小面积指纹识别算法,已经成功实现了在NBIOT芯片,蓝牙5.0芯片以及低成本单片机芯片上的移植,一体化的解决方案具有低价格高质量的特点,其性能和品质均得到众多客户的认可和好评,我们的产品广泛应用于物联网行业。
目前我们正在积极探索如何提高电容指纹传感器的防伪攻击能力,目前软件活体检测方法是基于传统方法,通过手工制作特征,构造分类器来对指纹进行卡控。假指纹的材质成分单一噪声偏少,灰度比较单一。而真手指通常会有汗液,所成图像会有少量的灰度变化,脊线上有一些暗斑的变化。通过以上特性,我们可以采用剩余噪声来提取纹理变化模式,对相位和对比度等特征进行识别。我们尝试了深度学习的方法,基于深度学习网络,通过制作各种假指纹和真实指纹样本,用深度模型进行训练来对真假手指进行分类。几种手工设计的特征在我们的实验中取得了很不错的效果,对易于用来造假的材质能进行有效的区分,但是受限于深度网络的计算量,目前还不具备部署在低端处理器上的可能,毕竟用户不能接受长达几十秒的等待。我们正在尝试使用更加轻量级的网络来进行分类,最终目标是在用户可接受的计算时间内实现假手指的识别。
欢迎投稿锁见锁闻君