一、光学指纹问题现状
光学指纹当前随着成本的下降,各大厂商都在低中高端旗舰用上了光学指纹。有别于传统的电容指纹,光学指纹在解锁性能上目前都进行了优化,性能接近电容指纹。
二、光学指纹电容指纹原理
两者原理都是对指纹的纹路脊谷进行信 采集,通过记录不同信 ,实现指纹的录入比对。
图 2光学指纹原理
光学指纹识别则是通过光线反射,利用一个短焦镜头,在可透光的OLED屏幕下方获取到指纹的图像,从而记录和识别指纹信息。从原理上来看,光学指纹无论是指纹模组的设计,屏结构、指纹的软件交互设计、整机功耗控制、整机结构上相较于电容指纹,条件都变的相对苛刻,对项目开发的挑战也是大大增加。
三、屏下指纹指纹录入识别流程
-
录入
用户手指按压->LCD高亮->指纹采图->指纹录入->存储模板->上 录入成功
图 4指纹识别流程简图
当前这种方式是各大厂商一套通用的逻辑,细节部分各大厂商均有不同程度的差异,但是大都是围绕着这几个点进行的性能优化。
四、指纹问题常见情况
-
按压不全:
图 6完全不高亮
高亮不完全
图 8录入图
解锁
图 10软膜图
-
贴硬膜指纹:
图 12脱皮指纹
-
衣物误触:
图 14异物指纹
-
沾水指纹:
图 16掌纹误触
-
干手指脏污
图 18强光
如果根据用户群体来分,新用户像从电容转到屏下指纹的绝大多数会出现按压面积不全的情况,因为电容指纹轻触一下就解锁开了,但是光学指纹需要等待LCD的高亮和器件曝光,如果轻触,指纹采图就是图5的这种图像,所以这类型用户就会出现这种解锁慢或者解锁不灵敏的反馈。针对这种情况,当前解决的方案基本都是通过用户界面引导来让用户适应。
一些光学指纹的老用户绝大多数的不灵敏场景主要有以下几种,洗手、起床、强光,手指脱皮,干手指(主要是年龄稍微大些的用户,出现的一些指纹糙化的纹理)、贴膜,对应于我们上面的贴图大家可以看到,这类型的指纹纹路都出现了不同程度的纹理破坏或者糊化,导致有些指纹的特征和录入相差过大,最终识别失败,特别是贴的硬膜,对指纹纹路破坏极其强大,所以建议大家都用出产手机自带的膜,这样指纹一定程度能保证比较好的解锁体验。
另外还有一类用户,应该大多数都碰到过,某个指纹解锁很灵敏,但是某个指纹解锁不灵敏,主要原因除了第二点里面叙述到的之外,最大的一个原因是脱靶,脱靶的意思,就是识别的指纹和录入的指纹相差过大。主要有两种情况,第一种,录入的时候手指状态很好(很差),但是因为季节的变化手指和之前的状态差别很大,比方说脱皮,裂纹。第二种,录入的时候录入的面积很局限,只有指纹的一小部分,但是解锁的时候,解锁的指纹区域和录入的区域不匹配,导致最后解锁不开,对应上面的贴图,主要就是脱靶部分,从这个脱靶的图看,录入的图和解锁的图纹路方向都不一致。通常解决这种问题,有两种方式,第一种是删除重录,这种对用户不太友好。另外一种是,要多使用录入的指纹,因为我们有模板学习的功能,在识别成功后,如果模板达到一定的条件,我们会把当前的指纹模板学习进去,以此来扩大录入的模板。
五、一种可用于指纹预处理的滤波算法
对于上述的差手指,目前Gabor滤波,能够一定程度上进行图像的特征增强对指纹图像进行优化。
-
Gabor介绍
Gabor是一个用于边缘提取的线性滤波器,其频率和方向表达与人类视觉系统类似,能够提供良好的方向选择和尺度选择特性,比较适合纹理分析。
-
Gabor滤波公式:
-
Gabor参数介绍
λ:正弦函数波长
θ:Gabor核函数的方向
ψ:相位偏移
σ:高斯函数的标准差
γ:空间的宽高比
这几个参数后面我们在代码中会先固定写好,看下实际的效果。
-
Gabor滤波流程
开发语言:Python
开源库 :Opencv, Matplotlib, Numpy
-
实验结果
长按关注
内核工匠微信
Linux 内核黑科技 | 技术文章 | 精选教程
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈
欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树首页概览11526 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!