欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

厉害吧!Python都能做指纹识别播报了

来源:本站整理 作者:佚名 时间:2018-07-13 TAG: 我要投稿

指纹识别技术是目前最成熟且价格便宜的生物特征识别技术。目前来说指纹识别的技术应用最为广泛,我们不仅在门禁、考勤系统中可以看到指纹识别技术的身影,市场上有了更多指纹识别的应用:如笔记本电脑、手机、汽车、银行支付都可应用指纹识别的技术。
指纹识别技术把一个人同他的指纹对应起来,通过比较他的指纹和预先保存的指纹进行比较,就可以验证他的真实身份。每个人(包括指纹在内)皮肤纹路在图案、断点和交叉点上各不相同,是唯一的,依靠这种唯一性和稳定性,我们才能创造指纹识别技术。每个人包括指纹在内的皮肤纹路在图案、断点和交叉点上各不相同,呈现唯一性且终生不变。
下面带大家做一个自己的指纹识别系统——包括指纹图像获取、处理、特征提取和比对,把现场采集到的指纹与一个己经登记的指纹进行一对一的比对,从而来确认身份。
一、实验器材
1.TPYBoard v 102开发板   1块
2.指纹识别模块  1块
3.语音播报模块  1块

二、AS608光学指纹识别模块

指纹模块为集成了光路和指纹处理部分的一体化指纹处理模块,具有体积小、功耗低、接口简单的特点,可靠性高、识别速度快、干湿手指适应性好,指纹搜索速度快。通讯接口为USB和UART两种通信接口。
1、指纹特征
指纹算法从获取的指纹图像中提取的特征,代表了指纹的信息。指纹的存储、比对和搜索等都是通过操作指纹特征来完成的。
2、指纹处理包含两个过程:指纹登录过程和指纹匹配过程[其中指纹匹配分为指纹比对(1:1)和指纹搜索(1:N)两种方式] 。
指纹登录时,对每一枚指纹录入 2 次,将 2 次录入的图像进行处理,合成模板存储于模块中。
指纹匹配时,通过指纹传感器,录入要验证指纹图像并进行处理,然后与模块中的指纹模板进行匹配比较(若与模块中指定的一个模板进行匹配,称为指纹比对方式,即 1:1 方式;若与多个模板进行匹配,称为指纹搜索方式,即1:N方式) ,模块给出匹配结果(通过或失败) 。
3、技术参数
供电电压: DC  3.3V
供电电流: 工作电流:
峰值电流:
指纹图像录入时间:<1.0秒
窗口面积: 15.3╳ 18.2 mm
分辨率:500dpi
三、SYN6288语音播报模块

SYN6288语音模块是通过异步串口接收待合成文本,实现文本到声音(TTS)的转换。它有以下功能特点:
支持任意中文文本的合成,可以采用GB2312、GBK、BIG5 和Unicode 四种编码方式;
具有文本智能分析处理功能,对常见的数值、电话号码、时间日期、度量衡符号等格式的文本;
可以自动对文本进行分析,判别文本中多音字的读法并合成正确的读音;
可实现10级数字音量控制,音量更大,更广;
内集成了77首声音提示音和14首和弦音乐;
支持多种文本控制标记,提升文本处理的正确率;
支持多种控制命令,包括:合成、停止、暂停合成、继续合成、改变波特率等;
支持多种方式查询芯片的工作状态;
两种通讯模式:芯片支持UART、SPI两种通讯方式;
支持Power Down 模式。使用控制命令可以使芯片进入Power Down 模式;
支持的通讯波特率:4800bps,9600bps,57600bps、115200bps。
四、硬件接线图
下面带大家先把指纹模块和语音播报模块接起来,接线方法很简单,大家可以按照下面的接线方式将硬件连接起来。
TPYBoard v102
AS608光学指纹识别模块
SYN6288语音播报模块
3V3
U+
 
GND
GND
 
X1
RX
 
X2
TX
 
VIN
 
VDD
Y1
 
RXD
Y2
 
TXD
GND
 
G
五、动手写代码
我们接线成功后,就要编写代码了,因为我们用到了指纹识别模块和语音播报模块,所以我们要动手编写AS608.py、syn6288.py和main.py。
1. 编写AS608.py脚本
from pyb import UART
from pyb import delay
import syn6288
import  pyb
class FIG:
 def __init__(self,uart):
 self.uart = UART(uart, 57600)
 self.sendcmd(link)
 self.sendcmd(readflash)
 self.sendcmd(readmould)
 self.sendcmd(readindex)
 self.sendcmd(readindex1)
 delay(500)
 
 def sendcmd(self,cmd):
 self.uart.write(head)
 self.uart.write(cmd)
 def searchfig(self):
 hc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
 self.uart.read()
 self.sendcmd(cmd_search)
 hc=self.uart.read()
 while hc[11]!=0xa:
 self.sendcmd(cmd_search)
 hc=self.uart.read()
 self.sendcmd(cmd_upload)
 def savefig(self,addr):
 print('请按手指')
 syn6288.sendspeak(6,9600,'请按手指'.encode('utf-8'))
 self.searchfig()
 self.sendcmd(cmd_gen1)
 pyb.delay(2000)
 print('请再按手指')
 syn6288.sendspeak(6,9600,'请再按手指'.encode('utf-8'))
 pyb.delay(1000)
 self.searchfig()
 self.sendcmd(cmd_gen2)
 self.sendcmd(cmd_reg)
 add=cmd_save+bytearray([addr,0,addr+0xe])
 self.sendcmd(add)

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载