指纹识别经典图书、开源算法库、开源数据库
目录
1. 指纹识别书籍
1.1《精通Visual C++指纹模式识别系统算法及实现》
1.2《Handbook of Fingerprint Recognition》
2. 指纹识别开源算法库
2.1 Hands on Fingerprint Recognition with OpenCV and Python
2.2 NIST Biometric Image Software (NBIS)
3. 指纹识别开源数据库
3.1 CASIA-FingerprintV5
3.2 NIST Special Database
3.3 FVC Database
1. 指纹识别书籍
1.1《精通Visual C++指纹模式识别系统算法及实现》
本书免费公开了Visual C++指纹模式识别系统源代码,带领读者一步一步亲手制作一个指纹识别系统,深度剖析真实的行业应用案例。 本书适合指纹识别技术的初学者、指纹识别电子产品工程师以及打算投身指纹识别领域的创业者阅读。
本书分为5篇,主要内容如下:
第一篇主要讲解指纹模式识别系统入门知识,包括第1~3章。学完本篇,可结合本书附带光盘代码,学习指纹模式识别开发环境的系统演示层,并自己制作Visual C++指纹模式识别演示系统。
第二篇主要讲解指纹模式识别系统算法,包括第4~6章,是本书的基础。学完本篇,可结合本书附带光盘代码,学习指纹模式识别开发环境的系统算法层,并练习构建自己的Visual C++指纹模式识别算法系统。
第三篇主要讲解如何亲手打造指纹模式识别系统,包括第7章和第8章。学完本篇,可结合本书附带光盘代码,学习指纹模式识别开发环境的系统构建层,并练习构建自己的Visual C++指纹模式识别系统。
第四篇主要讲解指纹模式识别应用技术基础,包括第9章和第10章。学完本篇,可结合本书附带光盘代码,学习指纹模式识别开发环境的系统开发层,并练习构建自己的Visual C++指纹模式识别系统应用开发平台。
第五篇主要讲解指纹电子产品技术与创业,包括第11~13章。学完本篇,可结合本书附带光盘代码,学习指纹模式识别开发环境的系统开发层,并练习构建自己的Visual C++指纹模式识别系统电子产品开发系统,掌握利用数字指纹技术的创业手段。
1.2《Handbook of Fingerprint Recognition》
《Handbook of Fingerprint Recognition》(2003年第一版,2009年第二版,2022年第三版)是指纹领域的必读书。它的谷歌学术引用超过6000次,在指纹识别领域是绝无仅有的。
本书共9章:
第1章介绍了生物特征和指纹系统,并对指纹及其在法医和民用识别应用中的应用进行了历史评述。在接下来的章节中详细介绍的所有主题都将在这里简要介绍。这将为读者提供对本书各个章节的概述,并让她选择个性化的阅读路径。还讨论了其他非技术性但重要的主题,如“应用程序”和“隐私问题”。一些图像处理、模式识别和机器学习技术的背景知识对于充分理解本书的大部分章节是必要的。为了方便没有这种背景的读者,在第1章的末尾提供了关于各种主题的基本阅读资料。
第2章综述了现有的指纹采集技术:从传统的“墨水技术”到基于光学、电容、热和超声技术的实时扫描传感。本章还讨论了决定指纹图像质量的因素,并介绍了在手机中实现指纹传感器显示集成的技术进步。
第3-5章分别对指纹特征提取、匹配和分类/索引进行了深入研究。现有的技术被分为不同的类别,以引导读者通过文献中提出的大量方法。详细解释了主要方法,以帮助该领域的初学者和从业者理解构建指纹系统所使用的方法。
第6-8章专门讨论了三个前沿主题:潜在指纹识别、合成指纹生成和指纹唯一性。深度学习方法使潜在指纹的自动处理成为现实,从而开发了新一代AFIS。在指纹识别算法的设计、训练和基准测试中,合成指纹已被公认为真实指纹的合理替代品;这种方法对于处理对使用个人身份信息(PII)的新限制(例如,欧盟通用数据保护条例(GDPR))特别有用,PII被定义为任何可能识别特定个人的数据。支持指纹唯一性的科学证据越来越多,特别是在法医应用中,这引起了人们对设计准确指纹唯一性模型的兴趣。
最后,第9章讨论了在构建安全指纹识别系统中有用的安全问题和对策技术。
2. 指纹识别开源算法库
2.1 Hands on Fingerprint Recognition with OpenCV and Python
2021生物特征识别冬令营(IAPR/IEEE Winter School on Biometrics 2021),意大利博洛尼亚大学的Raffaele Cappelli教授深入浅出地展示了如何运用Python+OpenCV进行指纹识别的每一个步骤的原理及对应代码实现。
文档及代码:《Hands on Fingerprint Recognition with OpenCV and Python》
Raffaele Cappelli教授,因在指纹分类、识别、合成生成和性能评估方面的贡献而闻名,是FVC-onGoing大赛的组织者之一,是经典指纹识别领域图书《Handbook of Fingerprint Recognition》的作者之一。
2.2 NIST Biometric Image Software (NBIS)
NIST生物识别图像软件(NBIS)由美国国家标准与技术研究所(NIST)为联邦调查局(FBI)和国土安全部(DHS)开发。最新NBIS发行版为NBIS : Release 5.0.0 ,包含用于指纹识别处理和分析的C源代码。
官网:NIST Biometric Image Software (NBIS) | NIST
NBIS提供了指纹识别处理和分析的8个方面C源代码:
1. 《 ANSI/NIST-ITL 1-2007 (AN2K) "Data Format for the Interchange of Fingerprint, Facial, Scar Mark & Tattoo (SMT) Information"》标准的代码实现。
2. 指纹图像质量NFIQ(NIST Fingerprint Image Quality)评价算法的代码实现,更高质量的指纹图像通过匹配算法能够产生更好的性能。
3. 一种基于神经网络的指纹分类算法PCASYS的代码实现,该算法自动将指纹图像分类为拱形、左环或右环、疤痕、帐篷拱或螺纹。
4. 一种指纹特征提取算法MINDTCT的代码实现,基于指纹端点和叉点的细节点特征提取算法。
5. 图像处理辅助工具集IMGTOOLS的代码实现,包括有损和无损的JPEG编解码、WSQ编解码的代码实现。
6. 一种指纹匹配算法BOZORTH3的代码实现,它是一种基于细节的指纹匹配算法,将执行一对一和一对多匹配操作,接受由MINDTCT算法生成的细节。
7. 一种指纹分割算法NFSEG的代码实现,它将实现四指指纹分割成单独的指纹图像,或者可以用来从滚动的指纹图像中去除空白。
8.一种指纹图像的光谱度量的代码实现,为指纹质量的粗略测量提供参考。
3. 指纹识别开源数据库
3.1 CASIA-FingerprintV5
CASIA指纹图像数据库5.0版(或CASIA-FingerprintV5)包含500名受试者的20000张指纹图像。CASIA-FingerprintV5的指纹图像是使用URU4000指纹传感器在一个场景中捕获的。CASIA-FingerprintV5的志愿者包括研究生、工人、服务员等。每个志愿者贡献了自己八根手指(左手和右手拇指/第二根/第三根/第四根手指)的40张指纹图像,即每根手指5张。志愿者被要求在不同程度的压力下转动手指,以产生显著的类内变化。所有指纹图像均为8位灰度级BMP文件,图像分辨率为328*356。
官网:BIT (idealtest.org)
impression type | Sensor Type | Image Size | Set | Resolution |
Plain optical | URU4000 | 328x356 | 4000x5 | 512 dpi |
3.2 NIST Special Database
官网:Biometric Special Databases and Software | NIST
NIST Special Database 4(sd04)
impression type | Sensor Type | Image Size | Set | Resolution |
roll | / | 512x512 | 2000x2 | 500dpi |
NIST Special Database 9(sd09)
impression type | Sensor Type | Image Size | Set | Resolution |
roll | / | 832x512 | 13500x2 | / |
NIST Special Database 300(sd300a)
impression type | Sensor Type | Image Size | Set | Resolution |
Rolled scanning | inked fingerprint arrest cards | / | 8871x1 | 500 dpi |
Plain scanning | inked fingerprint arrest cards | / | 8787x1 | 500 dpi |
NIST Special Database 301(SD301a)
impression type | Sensor Type | Image Size | Set | Resolution | |
A | 10 rolled optical | Crossmatch Guardian 300 | 800x750 | 240x1 | 500 dpi |
B | 10 rolled optical | Crossmatch Guardian 300 | 800x750 | 240x1 | 500 dpi |
C | 4411 plain optical | Crossmatch Guardian 300 | / | 240x1 | 500 dpi |
D | 10 plain solid-state | Crossmatch EikonTouch 710 | 257x354 | 230x1 | 500 dpi |
E | 10 plain optical | Futronic FS88 | 320x480 | 240x1 | 500 dpi |
F | 4411plain solid-state | Jenetric LIVETOUCH QUATTRO | / | 93x1 | 500 dpi |
G | 442 plain solid-state | Jenetric LIVETOUCH QUATTRO | / | 215x1 | 500 dpi |
H | 442 plain optical | Crossmatch LSCAN 1000P | / | 216x1 | 500 dpi |
J | 10 plain optical | HID Lumidigm V302 | 352x544 | 240x1 | 500 dpi |
K | 442 plain touch-free | IDEMIA MorphoWave Desktop | / | 240x1 | 500 dpi |
L | Right slap touch-free | Advanced Optical Systems ANDI OTG3.0 | 308x425 | 88x1 | 500 dpi |
M | 10 plain optical | Crossmatch Guardian 200 | 800x748 | 240x1 | 500 dpi |
N | 10 plain optical | HID Lumidigm V302 | 272x400 | 240x1 | 500 dpi |
P | 44 plain touch-free | Samsung Galaxy S6 | / | 360x1 | unknown |
NIST Special Database 302(sd302a)
impression type | Sensor Type | Image Size | Set | Resolution | |
R | 442 slap optical | Crossmatch L SCAN 1000PX | / | 2000x1 | 500dpi |
S | 442 slap optical | Crossmatch Guardian USB | / | 500dpi | |
U | Roll optical | Crossmatch L SCAN 1000PX | 800x750 | 2000x1 | 500dpi |
V | Roll optical | Crossmatch L SCAN 1000PX | 800x750 | 2000x1 | 500dpi |
NIST Special Database 302(sd302d)
impression type | Sensor Type | Image Size | Set | Resolution | |
K | plain optical | Michigan State University RaspiReader | 248x319 | 930x1 | 500dpi |
L | plain touch-free | Advanced Optical Systems (AOS) | / | 1953x1 | 500dpi |
M | plain solid-state | Crossmatch EikonTouch 710 | 256x360 | 1979x1 | 500dpi |
P | plain optical | Futronic FS88 | 320x480 | 279x1 | 500dpi |
3.3 FVC Database
官网:Biometric Special Databases and Software | NIST (unibo.it)
FVC2000
Sensor Type | Image Size | Set A | Set B | Resolution | |
DB1 | Low-cost Optical Sensor | 300x300 | 100x8 | 10x8 | 500 dpi |
DB2 | Low-cost Capacitive Sensor | 256x364 | 100x8 | 10x8 | 500 dpi |
DB3 | Optical Sensor | 448x478 | 100x8 | 10x8 | 500 dpi |
DB4 | Synthetic Generator | 240x320 | 100x8 | 10x8 | about 500 dpi |
FVC2002
Sensor Type | Image Size | Set A | Set B | Resolution | |
DB1 | Optical Sensor | 388x374 | 100x8 | 10x8 | 500 dpi |
DB2 | Optical Sensor | 296x560 | 100x8 | 10x8 | 569 dpi |
DB3 | Capacitive Sensor | 300x300 | 100x8 | 10x8 | 500 dpi |
DB4 | SFinGe v2.51 | 288x384 | 100x8 | 10x8 | about 500 dpi |
FVC2004
Sensor Type | Image Size | Set A | Set B | Resolution | |
DB1 | Optical Sensor | 640x480 | 100x8 | 10x8 | 500 dpi |
DB2 | Optical Sensor | 328x364 | 100x8 | 10x8 | 500 dpi |
DB3 | Thermal sweeping Sensor | 300x480 | 100x8 | 10x8 | 512 dpi |
DB4 | SFinGe v3.0 | 288x384 | 100x8 | 10x8 | about 500 dpi |
FVC2006
Sensor Type | Image Size | Set A | Set B | Resolution | |
DB1 | Electric Field sensor | 96x96 | 140x12 | 10x12 | 250 dpi |
DB2 | Optical Sensor | 400x560 | 140x12 | 10x12 | 569 dpi |
DB3 | Thermal sweeping Sensor | 400x500 | 140x12 | 10x12 | 500 dpi |
DB4 | SFinGe v3.0 | 288x384 | 140x12 | 10x12 | about 500 dpi |
相关文章:

指纹识别经典图书、开源算法库、开源数据库
目录 1. 指纹识别书籍 1.1《精通Visual C指纹模式识别系统算法及实现》 1.2《Handbook of Fingerprint Recognition》 2. 指纹识别开源算法库 2.1 Hands on Fingerprint Recognition with OpenCV and Python 2.2 NIST Biometric Image Software (NBIS) 3. 指纹识别开源数…...

嵌入式之译码器
系列文章目录 译码器嵌入式之译码器 嵌入式之译码器 系列文章目录一、译码器定义二、常见类型的译码器三、工作原理 一、译码器定义 译码器(Decoder)是一种数字电路,其主要功能是从输入的编码信号中解码出特定的信息或控制信号。 译码器通常…...
分成sum接近的2个集合,返回相对小的sum
题目描述:给定一个正数数组arr,请把arr中所有的数分成两个集合,尽量让两个集合的累加和接近,返回最接近的情况下,较小集合的累加和sum。 way:选还是不选 //arr[index...]可以自由选择,返回累加和尽量接近…...
SpringBoot前置知识01-SPI接口
SpringBoot前置知识-SPI接口 介绍 Java中SPI是一种服务发现机制,或者说是一种思想,亦是一种约定。其实JDK中的JDBC就是使用了这种用思想,JDBC在JDK中只定义了接口,并没有实现类,连接什么数据库就要引入什么数据库的驱…...

数学建模--LaTeX的基本使用
目录 1.回顾 2.设置这个页眉和页脚 3.对于字体的相关设置 4.对于这个分级标题的设置 5.列表的使用 6.插入图片 1.回顾 (1)昨天我们了解到了这个latex的使用基本常识,以及这个宏包的概念,区域的划分,不同的代码代…...

授权调用: 介绍 Transformers 智能体 2.0
简要概述 我们推出了 Transformers 智能体 2.0! ⇒ 🎁 在现有智能体类型的基础上,我们新增了两种能够 根据历史观察解决复杂任务的智能体。 ⇒ 💡 我们致力于让代码 清晰、模块化,并确保最终提示和工具等通用属性透明化…...

流媒体内网穿透/组网/视频协议转换EasyNTS上云网关如何更改密码?
EasyNTS上云网关的主要作用是解决异地视频共享/组网/上云的需求,网页对域名进行添加映射时,添加成功后会生成一个外网访问地址,在浏览器中输入外网访问地址,即可查看内网应用。无需开放端口,EasyNTS上云网关平台会向Ea…...

HTML5的标签(文本链接、图片路径详解)
目录 前言 一、文本链接 超链接表述 二、图片路径详解 绝对路径 相对路径 网络路径 前言 一、文本链接 超链接表述 HTML 使用标签<a>来设置超文本链接 超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,…...
React Native 之 Linking(链接)(十五)
URL Scheme是什么 URL Scheme是一种机制,主要用于在移动应用程序中打开另一个应用程序或执行特定操作。 定义与原理: URL Scheme允许应用程序通过特定的URL格式与其他应用程序进行交互。 它通过在应用程序中注册一个自定义的URL Scheme,并在…...

Java实现图书系统
首先实现一个图书管理系统,我们要知道有哪些元素? 1.用户分成为管理员和普通用户 2.书:书架 书 3.操作的是: 书架 目录 第一步:建包 第二步:搭建框架 首先:完成book中的方法 其次:完成BookList 然后:完成管理员界面和普通用户界面 最后:Main 第三步:细分方法 1.退…...

Git提交和配置命令
一、提交代码到仓库 在软件开发中,版本控制是一个至关重要的环节。而Git作为目前最流行的版本控制系统之一,为我们提供了便捷高效的代码管理和协作工具。在日常开发中,我们经常需要将本地代码提交到远程仓库,以便于团队协作和版本…...
已解决java.lang.ExceptionInInitializerError: 初始化程序中的异常错误的正确解决方法,亲测有效!!!
已解决java.lang.ExceptionInInitializerError: 初始化程序中的异常错误的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 分析错误栈信息 检查静态初始化块和静态变量 验证资源和配置 使用日志记录…...
报表显示中,是否具备条件格式功能设计?
**报表显示中确实具备条件格式功能设计**。条件格式是一种根据特定条件对单元格或单元格区域进行格式设置的功能,它可以帮助用户更直观地理解和分析数据。 通过条件格式,用户可以设置多种条件,如单元格值的大小、是否包含特定文本等…...
完全二叉树查找
描述 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。 输入描述 输入有多组数据,遇到0时终止输入。 每组输入一个n(1<n<1000),然后将树中的这n个节点依次输入ÿ…...

Web安全:SQL注入之时间盲注原理+步骤+实战操作
「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等…...

[JDK工具-10] jvisualvm 多合一故障处理工具
文章目录 1. 介绍2. 查看堆的变化3. 查看堆快照4. 导出堆快照文件5. 查看class对象加载信息6. CPU分析:发现cpu使用率最高的方法7. 查看线程快照:发现死锁问题 1. 介绍 VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具…...

【GateWay】自定义RoutePredicateFactory
需求:对于本次请求的cookie中,如果userType不是vip的身份,不予访问 思路:因为要按照cookie参数进行判断,所以根据官方自带的CookieRoutePredicateFactory进行改造 创建自己的断言类,命名必须符合 xxxRout…...
今日总结2024/5/27
今日学习了状态压缩DP,状态压缩DP分为棋盘型(基于连通性)和集合型 Acwing.1064 小国王 在 nn的棋盘上放 k个国王,国王可攻击相邻的 8个格子,求使它们无法互相攻击的方案总数。 输入格式 共一行,包含两个整数 n和 k。 输出格式 共一行&…...
使用 Snort 进行入侵检测
使用 Snort 进行入侵检测 Snort 是一种流行的开源入侵检测系统。您可以在http://www.snort.org/上获取它。Snort 分析流量并尝试检测和记录可疑活动。Snort 还能够根据其所做的分析发送警报。 Snort 安装 在本课中,我们将从源代码安装。此外,我们不会安…...

C++ | Leetcode C++题解之第116题填充每个节点的下一个右侧节点指针
题目: 题解: class Solution { public:Node* connect(Node* root) {if (root nullptr) {return root;}// 从根节点开始Node* leftmost root;while (leftmost->left ! nullptr) {// 遍历这一层节点组织成的链表,为下一层的节点更新 next…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...