指纹识别-流程

一、为什么要关注指纹识别

生物识别技术源远流长,比如人脸识别,我们进化了精细的双眼系统进行识别,但是如果让计算机来做精确的人脸识别,却是一件比较困难的事。而相比指纹识别,可以认为在人类文明史上才开始有所作用,比如我们看到的古代的按手印、掌印画押,不过跟人脸识别不同的是,计算机做指纹识别相对容易一些。如果说得笼统一点,可以认为指纹的数据量小易处理。
所以,在IPhone 5s之后,指纹识别用在手机等终端设备上后,指纹识别的发展更是搭上了行进的顺风车。

指纹识别-流程_第1张图片
图1

指纹识别-流程_第2张图片
图2

如上两图是商用的生物识别领域的占比图,清晰的可以看出,指纹识别在这个行业中的快速发展。

二、指纹识别的流程

清楚了我们为什么要研究指纹识别,那么下一步就要提出问题,怎么研究指纹识别,以及研究指纹识别的什么?本章泛泛的将一些一颗指纹识别模块怎么完成指纹识别功能的。

1、图像采集

第一步当然要数图像采集了。目前图像采集的方式有很多,比如我们比较常见的有打卡机式的光学指纹采集模块和用在手机或其他终端设备上的电容式指纹采集模块。至于这些模块的分类和如何工作的,我都会在这个系列的稍后提到。通常指纹传感器采集后的图像会是什么样子的呢?
指纹识别-流程_第3张图片
图3
这种图一般不是很清晰,模组内部会有增益、去噪功能,获得到了图片的初步影像。在这个图像中,我们要引入一个概念,脊线和谷线
指纹识别-流程_第4张图片
图4
较暗的线称为脊线(ridges),它从窄到宽为100 -300 。图中较亮的线称为谷线(valleys),一个一个完整的脊谷线约为500 。

2、图像归一化

如上图3所示的指纹图中,因为按压力度的不一致,导致传感器采集图像会有偏向。中间部分的脊线颜色比较重,二边缘侧的脊线则又细又不清楚,那么可以用过图片间的归一化使图片均值、方差一样一致,这样在图片中的直观表现就是指纹像是一张对焦成功的二维图像,至少应该如下图。
指纹识别-流程_第5张图片
图5
如果比较模糊的都至少可以辨别出黑色的脊线和白色的谷线,那么经过图像归一化后,指纹的纹理清晰可见。我们可以把构成指纹图像的纹线可以细分为七种类型:直形线,波浪线,弓形线,箕形线,环形线,螺形线和曲形线(就不一一罗列)。

3、图像增强

虽然经过归一化后的图像的轮廓清晰可见,但是对于精细的计算机来说仍然是有很多偏差。这时候,我们可以使用算法做图像增强,目的是让指纹脊线更清晰,断裂的脊线可以连起来,并保持原来的结构。经常使用的方法是滤波去噪。比如常用的频域滤波就是把图像转换到频域,通过滤波找到能量最大、符合指纹频率范围的,恢复到空间域,就可以得到清晰的指纹的空域图像。
指纹识别-流程_第6张图片
图6

我们可以对比图3和图6,可以感觉到图片质量有了很大提升。

4、二值化

这个二值化并不是说吧图像变成数字存储,因为只要涉及计算机的处理,早就把这一切变成二进制了。这个二值化是指非黑即白,没有所谓的中间灰的过度,没有8bit甚至更高的修饰。这样做的处理可以让图像更清晰。
指纹识别-流程_第7张图片
图7

5、提取特征点 细节点

我们当然可以把整张图像都存储起来,因为它的pixel本身就不大(通常在100*100这个数量级),但是如果深入了解指纹后,我们完全可以存储更少的信息,这些信息就可以代表了整个指纹图像,这些更少的信息在指纹上市存在的,那就是指纹的特征点和细节点。
脊线细节一般用三级特征来描述:

一级特征是指纹的全局脊线流形;

指纹识别-流程_第8张图片
图8

二级特征是细节点;

指纹识别-流程_第9张图片
图9

三级特征是包含气孔、纹线边缘、疤痕、细点线、汗孔等的更加细节的特征信息

指纹识别-流程_第10张图片
图10

当然,在实际过程中,不同的算法可能会关注更多的特征点和细节,这里就不一一赘述。

6、构造特征算子

我们获取到了特征点之后,就要把这些特征点记录下来,组成一个图,一个表或者通过某一个公式关联起来,这样便于我们存储,以及以后的匹配算法的使用。
比如下图将特征点在二维空间X/Y轴上标记处各个点。
指纹识别-流程_第11张图片
图11

当然这些点也可以用原点坐标的方式画出向量图,加以存储。到此,指纹图像的处理和存储就实现完毕了。

7、匹配特征算子,计算匹配分数

我们把指纹经过了一系列的处理,又精心挑选了特征算子,目的是为了什么呢?当然是最后一步的匹配!当我们重新采集了另外一个指纹,经过上述的所有处理步骤后,就要去我们的指纹库中匹配有没有一致的指纹影像,通过特定的算法给这种匹配程度打分,如果分数及格(我们可定义及格分数),那我们就认为新采集的指纹是可以跟我们的数据库中的某一个指纹匹配成功的。
如下图可以直观一些。
指纹识别-流程_第12张图片
图12

本文只讲解大概流程,至于图像如何采集,处理过程用了什么算法,特征算子什么规则构造,存储如何加密,匹配如何打分都是一个个具体的问题。

不过本文就可以概括为以下两张图。

指纹识别-流程_第13张图片

指纹识别-流程_第14张图片

—-By 一个不务正业的程序员
图片来源于互联网,侵删,谢谢。

adb wait-for-device

你可能感兴趣的:(指纹识别)