【计算机视觉40例】案例14:指纹识别

导读】本文是专栏《计算机视觉40例简介》的第14个案例《指纹识别》。该专栏简要介绍李立宗主编《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书的40个案例。

目前,该书已经在电子工业出版社出版,大家可以在京东、淘宝、当当等平台购买。

大家可以在公众号“计算机视觉之光”回复关键字【案例14】获取本文案例的源代码及使用的测试图片等资料。

针对本书40个案例的每一个案例,分别录制了介绍视频。如果嫌看文字版麻烦,可以关注公众号“计算机视觉之光”直接观看视频介绍版。

指纹识别过程中,非常关键的一个步骤是对指纹特征的处理。

通常情况下,要先提取已知指纹的特征,并将其存储在模板库中,以用于后续指纹识别时进行比对,指纹特征提取过程如图1所示。

图1 录入指纹特征

识别指纹时,可能存在两种不同的情况:

  1. 一对一验证。此时,主要验证当前指纹是否和已知指纹一致。例如,通常情况下使用的用指纹给手机解锁。此时,其过程如图2左侧所示。
  2. 一对多识别。此时,主要识别当前指纹和指纹库中众多个指纹的哪个指纹基本一致。例如,单位的打卡系统。此时,其过程如图2右侧所示。

图2  指纹识别

指纹识别的知识点较多,本案例从算法概述、SIFT、识别案例三个方面进行了系统深入的介绍,如图3所示。

图3 指纹识别提纲

为了方便理解,书中尽可能用通俗易懂的例题描述晦涩难懂的原理,现将其中《14.3.3 通过方向描述关键点》部分内容摘抄如下:

如图4所示是一幅由许多人构成的一幅图像,画中是许多人站在一个广场上。如果想根据方向来描述某一个人(作为一个人的特征),可以采用如下步骤:

  1. 步骤1:确定坐标系。
  2. 步骤2:通过某人面向的角度,描述该人。

图4 许多人的图像

不过,上面的方法有两个问题:

  1. 问题1:图像旋转后,坐标就变了。例如,设定了直角坐标系,在图像旋转前后,面向45度角度的人,是不同的人。很显然,我们希望在旋转前后,能够通过同样的角度描述同一个人。
  2. 问题2:以角度为依据,我们会找到许多结果。例如,面向45度方向的人,我们会找到一批人,他们都是面向45度的。这也就是说,单纯通过角度作为描述值,无法做到唯一性。例如,单纯的体重值,无法作为一个人的识别特征,这是因为很多人有同样的体重。

为了解决上述问题,我们做两个优化设计:

  1. 优化设计1:根据图像自身特征确定一个方向,将该方向作为图像的方向。图像内所有人的方向,都以该方向为参考确定一个相对方向。此时,无论图像如何旋转,任何人的相对方向都是保持不变的。如何确定图像的方向呢?图像内,哪个朝向的人最多,就将该方向确定为图像的方向。
  2. 优化设计2:单个人的朝向肯定是容易重复的,例如图像中,可能同时有许多人朝向了同一个方向。但是,一个人及其周围若干个人的方向往往具有独特性。将一个人及其旁边若干个人的方向,作为一个人的方向特征,该特征在图中往往是唯一的,通过该特征能够很好地描述一个人。也就是说,如果使用自身的方向描述一个人,则其描述符为“45”(表示45度朝向);而优化后,要使用一个人自身及其周围多个人的方向来描述一个人,则其描述符为“45/90/135/180/90/45/90/45/90”(不同的值表示其自身及周围人的方向)。很明显,经过优化设计后,该描述符能够很好地、唯一地代表一个人。

受上述思路启发,我们可以通过方向来描述图像中的关键点,具体步骤如下:

  1. 步骤1:确定当前图像的方向;
  2. 步骤2:根据图像方向确定关键点及其周边若干个点的方向;将该方向集合作为当前关键点的特征值;

具体实现时,主要包含三个步骤,具体如下:

  1. 步骤1:确定图像的角度:该方向是图像内所有像素点的参考角度。
  2. 步骤2:确定像素点相对角度:根据图像的角度及像素点自身角度,计算每个像素点的相对角度。
  3. 步骤3:生成描述符:根据关键点邻域内所有像素点的相对角度,生成当前关键点的描述符。

在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从算法原理、实现流程等角度系统深入地介绍了该案例的理论基础和实现过程,并对具体的代码实现进行了细致的介绍与解释。欢迎大家阅读第14章《指纹识别》获取详细内容。

《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superdont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值