一、光学指纹问题现状
光学指纹当前随着成本的下降,各大厂商都在低中高端旗舰用上了光学指纹。有别于传统的电容指纹,光学指纹在解锁性能上目前都进行了优化,性能接近电容指纹。
二、光学指纹电容指纹原理
两者原理都是对指纹的纹路脊谷进行信号采集,通过记录不同信号,实现指纹的录入比对。

电容式指纹模块是利用指纹与导电的皮下电解液形成电场,手指纹路的高低起伏会导致二者之间的压差出现不同的变化,因此可实现准确的指纹数据扫描。这种指纹识别方式比较通用,对环境要求比较弱,只要有指纹就能录入识别,更重要的是这种指纹识别的元器件对空间占用比较小。

三、屏下指纹指纹录入识别流程
-
录入
用户手指按压->LCD高亮->指纹采图->指纹录入->存储模板->上报录入成功

-
解锁
用户指纹按压->LCD高亮->指纹采图->指纹识别->更新模板->上报解锁成功

当前这种方式是各大厂商一套通用的逻辑,细节部分各大厂商均有不同程度的差异,但是大都是围绕着这几个点进行的性能优化。
四、指纹问题常见情况
由于光学指纹的屏下的特性,导致了指纹方面对一些场景下的指纹识别体验非常不好,具体常见的有以下几类(以下指纹样张来源于互联网,不涉及任何用户安全及三方保密协议,均为原图加噪声图拟合而成)
-
按压不全:

-
LCD高亮失败:

高亮不完全

-
脱靶:

解锁

-
贴软膜指纹:

-
贴硬膜指纹:

-
脱皮指纹:

-
衣物误触:

-
异物指纹:

-
沾水指纹:

-
掌纹误触:

-
干手指脏污

-
强光漏光

一些光学指纹的老用户绝大多数的不灵敏场景主要有以下几种,洗手、起床、强光,手指脱皮,干手指(主要是年龄稍微大些的用户,出现的一些指纹糙化的纹理)、贴膜,对应于我们上面的贴图大家可以看到,这类型的指纹纹路都出现了不同程度的纹理破坏或者糊化,导致有些指纹的特征和录入相差过大,最终识别失败,特别是贴的硬膜,对指纹纹路破坏极其强大,所以建议大家都用出产手机自带的膜,这样指纹一定程度能保证比较好的解锁体验。
另外还有一类用户,应该大多数都碰到过,某个指纹解锁很灵敏,但是某个指纹解锁不灵敏,主要原因除了第二点里面叙述到的之外,最大的一个原因是脱靶,脱靶的意思,就是识别的指纹和录入的指纹相差过大。主要有两种情况,第一种,录入的时候手指状态很好(很差),但是因为季节的变化手指和之前的状态差别很大,比方说脱皮,裂纹。第二种,录入的时候录入的面积很局限,只有指纹的一小部分,但是解锁的时候,解锁的指纹区域和录入的区域不匹配,导致最后解锁不开,对应上面的贴图,主要就是脱靶部分,从这个脱靶的图看,录入的图和解锁的图纹路方向都不一致。通常解决这种问题,有两种方式,第一种是删除重录,这种对用户不太友好。另外一种是,要多使用录入的指纹,因为我们有模板学习的功能,在识别成功后,如果模板达到一定的条件,我们会把当前的指纹模板学习进去,以此来扩大录入的模板。
五、一种可用于指纹预处理的滤波算法
对于上述的差手指,目前Gabor滤波,能够一定程度上进行图像的特征增强对指纹图像进行优化。
-
Gabor介绍
Gabor是一个用于边缘提取的线性滤波器,其频率和方向表达与人类视觉系统类似,能够提供良好的方向选择和尺度选择特性,比较适合纹理分析。
-
Gabor滤波公式:

其中:

-
Gabor参数介绍
λ:正弦函数波长
θ:Gabor核函数的方向
ψ:相位偏移
σ:高斯函数的标准差
γ:空间的宽高比
-
Gabor滤波流程
开发语言:Python 开源库 :Opencv, Matplotlib, Numpy

-
示例代码:

-
实验结果

六、后续指纹发展方向
目前来看,几种指纹识别各有优势,经典的电容式指纹解锁速度快、识别率高、成本低、安全性较高,但比较影响全面屏手机的外观。屏幕光学指纹的解锁速度、精度都还有所欠缺,不过更具有科技感,也有发展性。指纹组这边,会秉承用户至上的理念,吸纳各种不同方案的指纹种类来增加指纹的整体可选性,满足市场上来自不同人群的需求。在指纹的算法上,也会持续扎根,加大本模块的核心竞争力。
参考: [1] https://blog.csdn.net/Ibelievesunshine/article/details/105101268 [2] http://biolab.csr.unibo.it/ResearchPages/SFinGe_Samples.asp
本文源自微信公众号:内核工匠,不代表用户或本站观点,如有侵权,请联系nick.zong@aspencore.com 删除!