屏下指纹介绍

一、光学指纹问题现状

光学指纹当前随着成本的下降,各大厂商都在低中高端旗舰用上了光学指纹。有别于传统的电容指纹,光学指纹在解锁性能上目前都进行了优化,性能接近电容指纹。

 

二、光学指纹电容指纹原理

两者原理都是对指纹的纹路脊谷进行信号采集,通过记录不同信号,实现指纹的录入比对。

图 1电容指纹示意图

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

图 2光学指纹原理

 

光学指纹识别则是通过光线反射,利用一个短焦镜头,在可透光的OLED屏幕下方获取到指纹的图像,从而记录和识别指纹信息。从原理上来看,光学指纹无论是指纹模组的设计,屏结构、指纹的软件交互设计、整机功耗控制、整机结构上相较于电容指纹,条件都变的相对苛刻,对项目开发的挑战也是大大增加。

 

三、屏下指纹指纹录入识别流程

  • 录入

用户手指按压->LCD高亮->指纹采图->指纹录入->存储模板->上报录入成功

图 3 指纹录入流程简化图

  • 解锁

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

图 4指纹识别流程简图

当前这种方式是各大厂商一套通用的逻辑,细节部分各大厂商均有不同程度的差异,但是大都是围绕着这几个点进行的性能优化。

 

四、指纹问题常见情况

由于光学指纹的屏下的特性,导致了指纹方面对一些场景下的指纹识别体验非常不好,具体常见的有以下几类(以下指纹样张来源于互联网,不涉及任何用户安全及三方保密协议,均为原图加噪声图拟合而成)

 

  • 按压不全:

图 5按压不全

 

  • LCD高亮失败:

完全不高亮

图 6完全不高亮

高亮不完全

图 7高亮不完全

 

  • 脱靶:

录入

图 8录入图

解锁

图 9解锁脱靶图

 

  • 贴软膜指纹:

图 10软膜图

 

  • 贴硬膜指纹:

图 11硬膜图

 

  • 脱皮指纹:

图 12脱皮指纹

 

  • 衣物误触:

图 13衣物误触

 

  • 异物指纹:

图 14异物指纹

 

  • 沾水指纹:

图 15沾水指纹

 

  • 掌纹误触:

图 16掌纹误触

 

  • 干手指脏污

图 17手指脏污

 

  • 强光漏光

图 18强光

 

  如果根据用户群体来分,新用户像从电容转到屏下指纹的绝大多数会出现按压面积不全的情况,因为电容指纹轻触一下就解锁开了,但是光学指纹需要等待LCD的高亮和器件曝光,如果轻触,指纹采图就是图5的这种图像,所以这类型用户就会出现这种解锁慢或者解锁不灵敏的反馈。针对这种情况,当前解决的方案基本都是通过用户界面引导来让用户适应。

  一些光学指纹的老用户绝大多数的不灵敏场景主要有以下几种,洗手、起床、强光,手指脱皮,干手指(主要是年龄稍微大些的用户,出现的一些指纹糙化的纹理)、贴膜,对应于我们上面的贴图大家可以看到,这类型的指纹纹路都出现了不同程度的纹理破坏或者糊化,导致有些指纹的特征和录入相差过大,最终识别失败,特别是贴的硬膜,对指纹纹路破坏极其强大,所以建议大家都用出产手机自带的膜,这样指纹一定程度能保证比较好的解锁体验。

  另外还有一类用户,应该大多数都碰到过,某个指纹解锁很灵敏,但是某个指纹解锁不灵敏,主要原因除了第二点里面叙述到的之外,最大的一个原因是脱靶,脱靶的意思,就是识别的指纹和录入的指纹相差过大。主要有两种情况,第一种,录入的时候手指状态很好(很差),但是因为季节的变化手指和之前的状态差别很大,比方说脱皮,裂纹。第二种,录入的时候录入的面积很局限,只有指纹的一小部分,但是解锁的时候,解锁的指纹区域和录入的区域不匹配,导致最后解锁不开,对应上面的贴图,主要就是脱靶部分,从这个脱靶的图看,录入的图和解锁的图纹路方向都不一致。通常解决这种问题,有两种方式,第一种是删除重录,这种对用户不太友好。另外一种是,要多使用录入的指纹,因为我们有模板学习的功能,在识别成功后,如果模板达到一定的条件,我们会把当前的指纹模板学习进去,以此来扩大录入的模板。

 

五、一种可用于指纹预处理的滤波算法

  对于上述的差手指,目前Gabor滤波,能够一定程度上进行图像的特征增强对指纹图像进行优化。

  • Gabor介绍

 Gabor是一个用于边缘提取的线性滤波器,其频率和方向表达与人类视觉系统类似,能够提供良好的方向选择和尺度选择特性,比较适合纹理分析。

 

  • Gabor滤波公式:

其中:

  • Gabor参数介绍

  λ:正弦函数波长

  θ:Gabor核函数的方向

  ψ:相位偏移

  σ:高斯函数的标准差

  γ:空间的宽高比

  这几个参数后面我们在代码中会先固定写好,看下实际的效果。

 

  • Gabor滤波流程

  开发语言:Python

  开源库  :Opencv, Matplotlib, Numpy

  • 示例代码:

  • 实验结果

从图像看,针对局部沾水和脏污导致的纹理不清晰,经过Gabor预处理后,可以一定程度上进行纹理增强。

 

六、后续指纹发展方向

目前来看,几种指纹识别各有优势,经典的电容式指纹解锁速度快、识别率高、成本低、安全性较高,但比较影响全面屏手机的外观。屏幕光学指纹的解锁速度、精度都还有所欠缺,不过更具有科技感,也有发展性。指纹组这边,会秉承用户至上的理念,吸纳各种不同方案的指纹种类来增加指纹的整体可选性,满足市场上来自不同人群的需求。在指纹的算法上,也会持续扎根,加大本模块的核心竞争力。

 

参考:

[1] https://blog.csdn.net/Ibelievesunshine/article/details/105101268

[2] http://biolab.csr.unibo.it/ResearchPages/SFinGe_Samples.asp

长按关注

内核工匠微信

Linux 内核黑科技 | 技术文章 | 精选教程


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABAP Netweaver和Hybris里获得内存使用统计数据

ABAP Netweaver 事物码ST06 Hybris 每隔5秒钟,Hybris Administration console会发起一个到Java后台的AJAX查询请求: 这个5秒的时间间隔定义在project.properties配置文件里, 然后使用JavaScript的setInterval建立定期轮询: Java后…

STM32做平衡小车,代码,PCB都现成的,妈妈再也不用担心我的毕业设计了

▌一、硬件介绍主控芯片用的是100脚的STM32F103VET6,陀螺仪用的是MPU6050,电机驱动用的是TB6612,蓝牙是汇承的HC05邮票孔封装的,WIFI用的是济南有人科技的USR-WIFI232-S,小车底盘用的是平衡小车之家的某一款带编码器的…

Apache 配置:是否显示文件列表

Apache 配置:是否显示文件列表 进入虚拟主机配置文件 显示文件列表的话 options Indexes FollowSymLinks 不显示文件列表的话 options FollowSymLinks 文章来源:刘俊涛的博客 地址:http://www.cnblogs.com/lovebing 欢迎关注,有问…

微信越滑越卡

这篇文章是我的朋友小二哥写的,他解决了一个问题并提交了一个补丁给google合入,当然了,这也是他第一次提交补丁被google采纳。我觉得这才是做技术的样子,二哥也很喜欢篮球,,为二哥吹一波。哈哈。关于这次补…

扁平化可伸展导航

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>扁平化可伸展导航[原创]</title><link rel"stylesheet" type"text/css" href"nav.css"><link rel"stylesheet" t…

大佬为何可以把单片机描述得如此形象生动?

某年某日某产房&#xff0c;你诞生了&#xff08;power up , 上电运行&#xff09;&#xff0c;结果你不哭&#xff0c;医生把你提起来&#xff0c;屁股上狠狠一巴掌&#xff0c;你哇哇大哭&#xff08;reset, 复位成功&#xff09;&#xff0c;护士给你检查&#xff0c;看有没…

51单片机温度控制系统报警器,不会做课程设计的就拿走

▌功能说明&#xff08;1&#xff09;单片机读取温度传感器当前的温度值并在LCD液晶显示屏上的第一行显示当前的温度值&#xff0c;如Temp&#xff1a;27.5℃。&#xff08;2&#xff09;单片机读取按键状态并通过人为手动按键部分来设置最低温度到最高温度的温度范围后&#x…

不要怕辛苦

先说点事情一直以来我都非常喜欢跟大家交流各种问题&#xff0c;自我觉得回答比较用心&#xff0c;可能最近因为很多人毕业&#xff0c;遇到抉择的问题比较多&#xff0c;所以这类的提问也偏多一些。从开始做公众号到现在&#xff0c;支持我的人很多。有些读者从开始关注到现在…

Win7系统中用anaconda配置tensorflow运行环境

前言&#xff1a;anaconda是一个python Data Science Platform。安装它的契机是因为要用tensorflow。安装完后感觉用它来管理python运行环境还是挺方便的&#xff0c;常用的conda命令&#xff1a;升级conda: conda update conda安装conda环境&#xff1a; conda create -n env_…

拆解前苏联产荧光数码管计算器,内部电路结构彪悍!

荧光数码管是用来显示数字和符号的器件。它的数码字形由若千段分立的笔划构成。荧光数码管是一种电真空器件&#xff0c;其工作原理与普通的电子管相似&#xff0c;它的灯丝就是阴极&#xff08;为直热式阴极&#xff09;&#xff0c;当灯丝通电后灯丝就会发热&#xff08;即阴…

silverlight之datagrid的一个问题

this.myDataGrid.itemSourcesitems; 使用泛型数组给datagrid添加itemsource,我想添加一个textblock对象,上面text"sdfd",可运行显示是System.Windows.Controls.TextBlock,如图,请大侠们指点 转载于:https://www.cnblogs.com/wuli00/archive/2009/04/20/1439677.html

什么是套接字(Socket)

什么是套接字(Socket) 应用层通过传输层进行数据通信时&#xff0c;TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要 通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接&#xff0c;许多计算机操作系统为应用…

三极管构成的电流负反馈放大器

▌1.题目设计一个有三极管构成的电流负反馈放大器&#xff0c;放大倍数不小于100倍&#xff0c;集电极最大电流不超过20mA&#xff0c;当负载由1000欧姆变10欧姆时&#xff0c;要求输出电流的波动幅度小于5%。▌2.项目总体功能图▌3.测试条件频率为500HZ、幅度为5mv的正弦波。▌…

lzg_ad:FBWF配置详解

在安装好Windows XP Embedded FP2007及以后版本的开发工具后&#xff0c;我们就可以在我们的XPE操作系统镜像中添加FBWF功能了。我们可以在目标设计器中配置FBWF&#xff0c;也就是在构建XPE镜像文件前配置好FBWF&#xff0c;也可以在运行时镜像中配置FBWF。本文将详细介绍这两…

耦合,到底是什么!?

在电路中,将前级电路(信号源)的能量递至后级电路(负载)称为耦合&#xff0c;常见的耦合介质有导线、电容器&#xff0c;变压器、光电耦合器&#xff0c;电子电路&#xff0c;根据不同耦合介质常见有以下耦合方式&#xff0c;这几种耦合方式&#xff0c;各有特点,在不同哪种比较…

三极管的“非教科书式”解析,什么正偏、反偏都统统滚蛋!

什么正偏&#xff0c;反偏都统统滚蛋&#xff01;&#xff01;&#xff01;❤三极管有三个工作状态&#xff1b;截止、放大、饱和&#xff1b;放大状态很有学问也很复杂&#xff0c;多用于集成芯片&#xff0c;比如运放&#xff0c;现在不讨论&#xff1b;其实对信号的放大我们…

一行代码还能这么秀

老早就想写这篇文章了&#xff0c;因为我经常用用这个方法来装逼&#xff0c;今天终于要把这个装逼方法分享给大家了。我从来不会告诉别人我自己的微信公众号关注早就已经超过40万了。看下面的截图这张截图建议大家保存下&#xff0c;如果遇到不公的事情&#xff0c;你就跟他说…

Linux Select

Linux Select 在Linux中&#xff0c;我们可以使用select函数实现I/O端口的复用&#xff0c;传递给 select函数的参数会告诉内核&#xff1a; •我们所关心的文件描述符 •对每个描述符&#xff0c;我们所关心的状态。(我们是要想从一个文件描述符中读或者写&#xff0c;还…

搞懂图像二值化算法

传统的机器视觉通常包括两个步骤&#xff1a;预处理和物体检测。而沟通二者的桥梁则是图像分割&#xff08;Image Segmentation&#xff09;[1]。图像分割通过简化或改变图像的表示形式&#xff0c;使得图像更易于分析。举个例子&#xff0c;食品加工厂新进了一批肉鸡&#xff…

JavaWeb无限级分销结构分析

在现实生活中我们经常遇到由推荐人注册&#xff0c;比如一个购物平台,用户A推荐用户B注册&#xff0c;那当B购买商品成功时&#xff0c;用户A就会拿到相应的提成。只要是用户A推荐的用户购买商品成功后&#xff0c;A用户都会拿到提成。 当用户B推荐了用户C&#xff0c;那当用户…