手指静脉纹理识别
实验题目:手指静脉纹理识别
课程简要信息
课程名称:信息获取与检测技术
课程学时:64学时
项目学时:16学时
适用专业:电子信息科学与技术、信息工程
学生年级:三年级 5学期
实验内容与任务(限500字,可与“实验过程及要求”合并)
项目需要完成的任务(如需要观察的现象,分析某种现象的成因、需要解决的问题等);是否设计有不同层次的任务。
在实验教学中,融会贯通前序多门专业基础课和实验实训课程知识,最终通过手指静脉纹理识别装置的系统设计,递进实现以下四个方面的实验任务。
制作一个手指静脉纹理采集识别系统,包含以下主要功能:图像采集、图像预处理、特征提取和匹配识别。通过近红外LED照射手指,摄像头捕捉手指照片即可采集到手指静脉图像。然后需要对原始图像进行预处理,包括感兴趣区域(Region of Interest, ROI)提取、图像增强和灰度尺寸归一化以得到大小一致的图像,再进行特征提取。然后进行指静脉纹理对比,如果当前属于注册阶段,则将特征存储进入数据库中;如果当前属于识别阶段,则从数据库中读回已经存储的特征进行匹配,以得出接受或者拒绝的结果。将结果用于工程实际项目如,控制快递柜开箱。
①硬件环境搭建
使用主芯片为Xilinx的ZYNQ 7020 FPGA,并设计外围的电源电路、近红外LED电路、显示模块、摄像头模块、按键、蜂鸣器、电磁锁等电路,组成整个手指静脉设备系统。
②静脉纹理图像采集
指静脉图像的采集为摄像头实时捕捉图像并显示,因为摄像头是直接连接到FPGA的IO口上,为了节约图像采集时间,摄像头控制模块采用硬件实现,当摄像头模块检测到有手指伸入采集装置的卡槽后,则将采集到的图像保存到FPGA的双端口RAM中。
③静脉纹理图像处理
对图像进行增强并提取感兴趣区域(ROI),ROI提取需要经过手指边界定位、旋转校正、远端关节检测等步骤,运算量大,因此采用硬件的方式实现ROI的提取。当图像采集模块采集到手指图像后,将自动启动ROI硬件加速器工作,ROI提取完成后,将提取的ROI数据存储进入双端口RAM中。
④静脉纹理密钥使用
采用软件的方式实现ROI之后的归一化、特征提取、膨胀腐蚀、连通域去噪和特征匹配等算法。当完成指静脉纹路特征提取并进行膨胀腐蚀和连通域去噪之后,将特征数据存储进入掉电不丢失数据的FLASH中进行保存比对。实现静脉纹理密钥的使用。
实验过程及要求(限300字)
如对学生在实验过程中在需求分析、资料查询、自学预习、思考讨论、方法设计、进程规划、软件仿真、平台构建、器件选择、表格设计、现象观察、数据测试、问题分析、总结报告、验收答辩、演讲交流等各方面的要求。
①调研并了解信息获取与检测技术的历史沿革、发展脉络、领域前沿和工程应用。
②运用数学和自然科学基础知识、电子信息的基本科学理论和先进技术进行解决实际工程问题,为今后继续深造或进行电子产品的开发设计打下基础。
③能够基于静脉纹理识别的功能技术指标,对电子元器件进行正确选型;基于成本和系统规模,优化元器件选型配置。
④根据最优选型,正确搭建基于嵌入式手指静脉纹理识别硬件环境。
⑤使用基于嵌入式操作系统的移植和底层驱动相关技术,完成硬件配置,正确实现手指静脉纹理图像采集。
⑥能够运用不同静脉纹理提取图像识别算法,对采集的图像进行关键特征提取。综合比对各种不同算法的优劣。
⑦能够通过调研,使用简单的改进算法,加速静脉纹理提取过程,提升设备性能指标。
⑧能够将提取到的静脉纹理密钥,运用到简单的快递存储装置。
⑨撰写设计总结报告,并通过分组演讲展示,学习交流不同解决方案的特点。
相关知识及背景(限150字)
项目涉及所需的知识方法、实践技能、应用背景、工程案例。
手指静脉纹理识别实验设置多个任务点,关注学生的个体差异和学习需求。涉及到微处理器或嵌入式系统、机械采集装置搭建、硬件环境搭建技术的图像识别算法开发。手指静脉纹理识别将在提高手机、电脑和其他智能设备的安全性;提高金融机构和重要设施的安全性;甚至用于公共服务领域,如机场安检、大型活动安保等发挥更大的作用。
实验环境条件
项目实施需要实验资源,包括实验装置功能、实验仪器设备、设计软件工具、主要电子元器件等。
5.1硬件资源
本实验硬件资源包括成像模块、LED发光模块、摄像头模块、显示与电源模块组成,并且定制黑色不透明外壳作为装置外部包装以提供黑暗环境,减少光照带来的影响。
①主控模块
本设计在主控模块的选取,需要其具有摄像头驱动或接口、屏幕驱动显示、传输存储图像能力以及良好的图像处理能力,同时尽可能体积小,成本低。学生可以根据前期方案和预期目标实现要求自行选择包括但不限于以下主控模块:
a ZYNQ 7020 FPGA。主芯片为Xilinx的ZYNQ 7020 FPGA是一款异构SoC芯片,结合了Xilinx的全可编程FPGA技术以及ARM的处理器核,可以进行高性能的数字信号处理和控制任务。该芯片采用TSMC 28nm工艺,拥有2个Cortex-A9处理器核,集成了各种数字信号处理模块和外设控制器。Zynq7020芯片的FPGA资源丰富,可编程逻辑单元数量高达85K,同时也提供了大量的高速IO接口,使其在嵌入式系统、视觉处理、无线通信等领域广泛应用。
b Openmv开发板。Openmv是一个源程序开放,价格低,可以驱动MT9V034图像传感器的开发板。以STM32F767CPU为中心,集成OV707摄像头芯片。该开发板可利用C语言,高速并且准确的实现核心图像采集算法,提供脚本语言编程接口。
c.树莓派4B。选取树莓派4B作为采集装置的核心,并且配备一张32GB内存的TF卡。树莓派4B的主要功能包括高性能64位四核处理器,通过一对micro-HDMI端口支持分辨率高达4K的双显示屏,高达4Kp60的硬件视频解码,高达4GB的RAM,双频2.4/5.0 GHz无线局域网,蓝牙5.0,千兆以太网,USB 3.0和PoE功能。4B在处理器速度,多媒体性能,内存和连接方面提供了突破性的增长,同时保留了向后兼容性和类似的功耗。
②LED发光模块
近红外光LED工艺较为成熟,已经作为主流的手指静脉采集装置光源,本设计即选用850nm波长近红外LED灯珠(10W)。手指静脉中的血红蛋白在760nm和850nm波长的近红外光达到吸收峰值。为消除可见光对图像质量的影响设计,学生可以自选是否使用滤光片。如采用红外滤光片,k呃滤除780nm以下的光源,保留780nm以上的光源,本设计学生可自行选用HWB780型的红外滤光片。
③摄像头模块
手指静脉采集装置的成像部分一般由摄像头和滤光片组成,有些摄像头自带滤光片,可无需单独选配。本设计可选的摄像头模块包括但不限于以下几种。
a. MT9V034STM灰度摄像头。MT9V034STM摄像头是CMOS 成像的灰度摄像头,黑白色的指静脉采集图像更加适合后期的处理。CMOS传感器的光谱敏锐范围相较于CCD传感器的光谱敏锐范围,在860nm近红外线波长段,可见光的敏感度高出6~7倍。该摄像头参数为:可采集象素大小:6µm x 6µm,有源象素阵列:752H x 480V,每秒帧数:60,电源电压:3.3V。
b.微雪电子RPi IR-CUT Camera摄像头,内置OV5647图像传感器,自带IR-CUT(双滤光片切换器)模式,通过CSI(Camera Serial Interface)摄像头接口与树莓派进行连接,能够切换白天夜间模式阻挡或通过红外光,省去了滤光片部分,精简了装置的实现。
④显示与电源模块
为了让整个采集过程可视化,学生可以根据所选主控模块选配合适的显示模块和多路电源。如7寸IPS高清显示屏作为显示模块+MicroUSB电源,或3.5寸LCD/TFT显示屏+多路电源,或直接使用开发板上的显示屏+供电。3.2
5.2开发环境及软件工具
①Vivado 2019.2+Vitis2019.2
Vitis统一软件平台可实现在Xilinx异构平台(包括FPGA、SoC和Versal ACAP)上开发嵌入式软件和加速应用。它可为边缘、云和混合计算应用加速提供统一编程模型。
②其他
根据小组主控模块自主选择,树莓派安装一个LINUX操作系统(如Ubuntu),直接在LINUX操作系统中安装python或者C/C++编辑器,或者Qt就开发。
Openmv的开发环境是OpenMV IDE,这是一个用于在OpenMV开发板上编程和调试的集成开发环境。可以从OpenMV的官方网站上下载并安装软件部分使用Qt Creator绘制界面,功能实现部分使用Python + Open CV库 + Numpy库编写等。
教学目标与目的(限150字)
如学习、运用知识、技术、方法等;培养、提升技能、能力、素质等。
①价值塑造
通过对手指静脉纹理识别系统的设计与搭建过程,学生能够梳理工程伦理及探究科学知识的崇高使命感。培养辩证思维、创新思维和解决问题的能力。
②知识内化
学生能够全面、系统地掌握《信息获取与检测技术》的基本原理、结合本机构、参数相关的知识和理论。
③技能培养
学生能够熟练掌握电子元器件选型,综合比较多个设计方案优劣,所学知识解决信息检测获取领域实际问题。
④素质拓展
通过个性化的学习路径和学习任务的设置,学生可以根据自己的学习需求和兴趣选择学习内容,并通过在线学习平台提供的学习资源和支持进行自主步调学习。同时,教师要引导学生建立良好的学习习惯和自我管理能力,培养学生的自主学习能力。学生能够培养自主学习和终身学习的能力。
⑤能力提升
学生能够在学习过程中培养综合素质,包括语言表达能力、团队合作能力、信息获取与处理能力等。通过课堂教学和在线学习资源的结合,学生可以在多个方面得到综合培养和发展,提高自身的综合素质。。
教学设计与实施进程
课堂知识讲解、方法引导、背景解释;实验中的方法指导,问题设置、思路引导等。教学模式、实验渠道、研讨主题、观察节点、验收重点、质询问题等方面设计等。实验实施进程的各个环节(如任务安排、预习自学、现场教学、分组研讨、现场操作、结果验收、总结演讲、报告批改等)中教学设计的思路、目的,教师、学生各自需要完成的工作任务,需要关注的重点与细节。
7.1教学设计
手指静脉纹理识别系统实验设计采用基于驱动任务的BOPPPS实验课堂模式。BOPPPS模型是一种用于设计和实施教学的结构化框架,是一种被广泛应用于教育领域的目标导向型教学设计方法。任务驱动的实验课堂是以学生为中心的教学模式,强调学生通过完成具体的任务来掌握知识和技能。在这种模式下,教师的角色从传统的知识传授者转变为学生学习的引导者和协助者。本实验教学模式有五个部分组成:引入(Bridge-in)、目标(Objectives)、方案(Plans)、过程(Processes)、评估与表现(Performance)、总结反馈(Summary)。具体实施如图6-1所示。
7.2实验任务
根据实验总体要求,将实验分为以下四个任务。
任务一 搭建手指静脉纹路识别硬件环境
按照本设计拟定的目标,选择主控模块、成像模块、LED发光模块、电源模块、显示模块组成,并且定制黑色不透明外壳作为装置外部包装以提供黑暗环境,减少光照带来的影响。设计完成手指静脉识别利用了静脉中的红细胞对特定范围内的近红外线的吸收特性来读取静脉图像的识别。
①设计合适的指槽,使手指可以方便的在采集装置上进行采集。
②设计近红外光源,挑选合适的近红外光源并调节亮度,使得采集效果最优。
③嵌入式开发板主控核心,搭建能够满足采集手指静脉纹理的装置。
任务二 采集手指静脉纹理图像
指静脉识别系统的性能极其依赖于视觉系统采集到的图像的清晰程度,所以对于指静脉识别技术而言,采集到图像质量较高的手指静脉图像是一个极其重要的前提,借此才能完成对图像的特征提取和识别。利用上述手指静脉进行采集的装置,使手指静脉清晰的显示在单色摄像头下,并利用滤光片,滤去可见光,最后将单色摄像头采集到的黑白的指静脉图片清晰的采集,并通过显示屏,清晰的显示出来。
①利用主控器件控制近红外LED光源照射手指,摄像头模块对静脉纹路拍合照,采集图像。
②采集过程可视化,调试LCD TFT显示屏,使得图像清晰的显示到显示屏上。
任务三 处理比对手指静脉纹理图像
每个人的手指粗细不一样,并且在指静脉图像采集时手指放置位置不能完全一样,导致采集的指静脉图像会出现水平和竖直平移以及旋转角度不一致,如图9所示,因此对指静脉图像的ROI提取成为指静脉识别过程中非常关键的一步。ROI提取是否精确,将直接影响到识别系统的准确率。
①图像预处理,对指静脉图像进行ROI提取。
②调研改进ROI算法,提高指静脉的识别速度和准确度。
任务四 指静脉密钥工程化使用(提高部分)
使用上述手指静脉识别系统的制作的智能储物柜模型。对核心模型和智能储物柜都进行调试与测试。
①设计基于指静脉特征的用户身份判断的模块。
②设计指静脉识别软件前端界面和硬件柜们控制系统。
③测试指静脉的识别速度和识别准确性。
7.3实验过程
7.3.1 准备工作
①掌握实验室提供的元器件、仪器设备的功能参数、使用方法。
②通过前期调研理解指静脉纹理采集的原理及方法。
③熟悉基于ARM+FPGA/SOC)的嵌入式开发,了解嵌入式Linux系统的使用。
④了解实验平台的硬件资源与软件操作。
7.3.2实验启动
①理解设计任务书、对任务书进行细化分解,并根据任务书建立实验团队。
- 队讨论实验方案、初拟实验技术路线。
7.3.3实验实践
①小组集中论证比较设计方案,确定总体设计方案,讨论元器件选型。
②根据实验任务一,搭建能够实现指静脉采集功能的硬件装置。包括传感器书记 采集、驱动程序开发、主控芯片调试。
③根据实验任务二,采集指静脉原始图像,并对图像进行预处理。
④根据实验任务三,改进ROI特征算法,提高图像采集速度和质量。
⑤根据实验任务四,搭建外围电路和机械结构,制成可以通过指静脉密钥工作的储物柜,测试指静脉识别速度和准确度。
7.3.4实验总结
①如实记录原始数据和实验中出现的问题,整理原始数据并对问题进行分类归纳总结。
②分析测试方案、实验数据,撰写实验报告。
- 成实验设计答辩和组员互评
7.3.5.操作要求
①正确把表述信息获取与检测技术的基本概念和基本内容。
②掌握嵌入式开发技术在信息获取与检测技术领域的应用。
③能够运用相关软件和程序设计语言实现功能,完成调试。
④熟悉静脉特征的提取,图像数据的处理和相关加速算法。
⑤能够使用指静脉密钥在电子信息领域解决工程实践问题。
7.4实施步骤
①引入(Bridge-in)
背景知识是指静脉实验设计的起点。在这个阶段,教师需要向学生介绍生物密钥的信息或概念,帮助他们建立对静脉的基本理解。本阶段通过展示往届学生的实际案例来实现。本阶段需1学时完成。
②目标(Objectives)
将指静脉系统分解为多个任务点,每个任务点下有具体的实验达成目标。这是教学活动的最终目的,是所有教学活动的核心。目标应该是明确的,可以衡量的,以便学生和教师都可以清楚地知道他们需要达到什么标准。本阶段需1学时完成。
③方案(Plans)
一旦确定了目标,学生可以根据任务目标,自行组队。组队后,鼓励引导学生制定一个详细的设计方案,通过仿真软件验证方案。这个计划应该包括所有的课程内容,教学方法,以及如何评估学生的学习成果。这一步骤可以帮助学生建立自己的思考框架,为后续方案的实施打下基础。本阶段需2学时完成。
④过程(Processes)
本阶段是整个实验设计的核心教学阶段实际的教学活动。在这个过程中,学生将按照预定的方案进行实验操作。他们将实现手指进行静脉图像的采集硬件环境的搭建与调试、图像采集、图像优化、指静脉生物密钥的使用。在这个过程中,教师将提供实时的指导和支持,以帮助学生解决遇到的问题和困难。教师通过线上线下实施参与学生小组实验等活动来帮助学生达到实验目标。本阶段共四个任务,每个任务需3学时,共计12学时。
⑤评估(Performance)
评估阶段是学生对实验成果的检查和评价。整个评估分为两个部分。首先,教师对学生的实验过程表现进行评价。主要包括实验操作、实验技能和问题解决能力。第二对学生的最终成果和实验报告进行评估,以了解他们对手指静脉纹理识别的理论和技术的理解程度。同时,在评估过程中,也需要考虑对学生自我的学习评价和团队成员互评的因素。
⑥总结(Summary)
在总结反馈阶段,学生制作PPT,携带最终制作实物进行现场答辩,教师将与学生一起回顾整个实验过程,总结他们的学习成果和经验教训。教师鼓励学生分享他们对实验的感受和见解,以及对整个过程中的感受的体悟。并通过总结,进一步贯彻本实验的思政元素——科学精神和工程伦理。
实验原理及方案
实验的基本原理、设计依据、完成任务的思路方法,可能采用的方法、技术、电路、器件。
8.1.实验原理
8.1.1系统架构
本设计的总体系统框图如图8-1所示。主芯片为Xilinx的ZYNQ 7020 FPGA,并设计外围的电源电路、近红外LED电路、显示模块、摄像头模块、按键、蜂鸣器、电磁锁等电路,组成整个手指静脉设备系统。
在采用ZYNQ
7Z020的ARM Cortex-A9和
Cortex-M3内核进行开发时,采用的SOC框架如图8-2所示。ZYNQ 7020 PS端的ARM
Cortex-A9通过两条AXI总线分别与PL端的LCD显示模块和SYSCTRL模块相连。SYSCTRL模块内含一个
ARM
Cortex-M3软核模块Cortex_M3_top,该软核的主要作用是对摄像头、LED、蜂鸣器、语音模块和电磁锁进行控制。SYSCTRL模块内还包含一个共享寄存器模块Share_REG,用于Cortex-A9和Cortex-M3两个内核之间的信息交互。SYSCTRL模块内还包含一个硬件加速器模块ROI和双端口存储器模块Dul_RAM。ROI硬件加速器模块用于将摄像头采集到的手指静脉图像提取感兴趣区域,双端口存储器模块Dul_RAM用于存储摄像头采集到的手指静脉图像以及ROI之后的感兴趣区域图像。
ARM Cortex-M3模块Cortex_M3_top基于DesignStart Eval的Cortex-M3内核进行开发,如图8-3。在ARM公司提供的CMSDK的总线和外设的基础上进行开发。为了保证时序满足要求,采用两级AHB总线。ITCM和DTCM分别通过AHB_to_SRAM挂接在第一级AHB总线上。指静脉图像采集模块Camera、电磁锁控制模块Locker、ROI提取的硬件加速器模块均通过M3_CTRL挂接在第二级AHB总线上,按键、LED指示灯和蜂鸣器等外设通过GPIO同样挂接在第二级AHB总线上。
SYSCTRL模块是整个SOC系统的控制中轴。他把ARM
A9和Cortex-M3发送过来的各种控制指令,转换成各种控制信号,在整个指静脉识别过程中控制各个模块的运行。具体来说,在图像采集阶段,由Cortex-M3软核产生摄像头启动信号,启动摄像头捕捉图像;当摄像头完成手指图像捕获后,他又控制ROI提取模块工作;ROI模块提取完成后,Cortex-M3通过写共享寄存器Share_REG模块,以产生中断信号或者标志信号通知PS端硬核Cortex-A9可以进行后续的图像处理;当Cortex-A9完成全部运算后,又通过写共享寄存器Share_REG模块以通知Cortex-M3进行储物柜电磁锁的控制。
Cortex-A9硬核要访问AXI总线上的各个模块,必须给各个模块分配地址空间,分配的地址空间如图8-4所示。
Cortex-M3软核访问AHB总线的各个模块,也必须给各个模块分配地址空间,分配的地址空间如表8-1所示。
表8-1 Cortex-M3系统中各模块地址映射
| 模块名称 | 地址空间 |
|---|---|
| ITCM | 0x0000 0000 – 0x0001 FFFF |
| DTCM | 0x2000 0000 – 0x2001 FFFF |
| M3_CTRL | 0x5000 0000 – 0x5000 FFFF |
| GPIO | 0x5001 0000 – 0x5001 FFFF |
8.2
技术路线
指静脉识别的算法流程如图8-5所示。分为注册阶段和识别阶段,其主要过程分为:指静脉图像的采集、指静脉图像预处理、指静脉图像特征提取、指静脉图像匹配。
设计的技术路线如图8-6所示。指静脉图像的采集为摄像头实时捕捉图像并显示,因为摄像头是直接连接到FPGA的IO口上了,为了节约图像采集时间,摄像头的控制采用硬件实现,当摄像头模块检测到有手指伸入采集装置的卡槽后,则将采集到的图像保存到FPGA的双端口RAM中。
指静脉图像的预处理主要目的是对图像进行增强并提取感兴趣区域(ROI),ROI提取需要经过手指边界定位、旋转校正、远端关节检测等步骤,运算量大,如果采用软件方式实现,将大大降低指静脉识别的时间。可以选择采用硬件的方式实现ROI的提取。当图像采集模块采集到手指图像后,将自动启动ROI硬件加速器工作,ROI提取完成后,将提取的ROI数据存储进入双端口RAM中,为下一阶段的图像处理做准备。
如果所有指静脉提取算法都采用硬件逻辑电路实现,将大大增加实现的难度,因此本设计采用软件的方式实现ROI之后的归一化、特征提取、连通域去噪和特征匹配等算法。当ROI提取完成后,将产生一个中断信号且标志位置“1”,软件检测到标志位或者中断后,才接着进行后续的图像处理。
当进行指静脉纹路特征提取之后,如果当前为注册阶段,则需将特征数据存储进入掉电不丢失数据的FLASH中进行保存;如果当前为识别阶段,则需要从FLASH中读出已经存储的特征数据进行匹配。由于FLASH采用的是开发板配套的MT25QL128,FLASH的读写控制模块采用硬件实现更方便,并且更节约时间。因此本设计的FLASH读写控制采用硬件逻辑电路实现。
为了直观的显示出指静脉识别过程各个阶段图像处理的结果,LCD需要实时将处理后的图像显示出来,因此在图像采集和ROI提取阶段,LCD显示由硬件进行控制。在图像归一化、特征提取、中值滤波和连通域去噪等由软件实现的步骤中,LCD显示由软件进行控制。
根据算法每个阶段的运算特点选择相应的软硬件实现方法,以发挥出软硬件各自的优势,使系统达到最佳性能。
8.3硬件设计
本系统的硬件逻辑电路设计采用Verilog语言编写,开发环境为Vivado
2019.2。源程序文件
构如图8-7所示,硬件原理图如图8-8所示。本设计中主要包括总线、系统控制模块、摄像头控制模块、LCD显示模块、ROI硬件加速器模块、GPIO模块和FLASH控制模块等。下面着重对部分硬件模块进行详细介绍。
①SYS_CTRL模块设计
SYS_CTRL模块是连接软件和硬件的重要的控制中轴,它将软件的控制指令转换为硬件控制信号,从而实现对摄像头模块、ROI加速器模块、LCD显示模块和FLASH读写模块的控制。SYS_CTRL模块有14个寄存器,软件可以通过配置这14个寄存器来控制相应硬件的工作。这14个寄存器如表8-2所示。
②摄像头控制器设计
软件通过配置摄像头控制寄存器(CAMERA_CTRL)打开摄像头模块后,SYS_CTRL模块产生camera_start信号启动摄像头实时采集图像,并将采集到的图像数据存储进入Block RAM中,LCD控制器模块实时从Block RAM中读取数据进行显示。
由于本设计采用的摄像头为MT9V034,该摄像头采集的图像的像素为752*480,为了能减小图像数据量并使图像大小与现在大多数科研机构采用的指静脉图像库中的图像大小一致,在摄像头采集的一帧图像中,仅截取中间320*240大小的图像存储进入Block RAM中。采集的原始指静脉图像大小为320*240。
表8-2 SYS_CTRL的寄存器列表
| 寄存器名称 | 寄存器说明 | 寄存器地址 | 复位值 |
|---|---|---|---|
| LCD_HW_CTRL_DISP | 硬件控制LCD显示寄存器 | 0x43C2 0000 | 0x0000 0000 |
| READ_BRAM | 读Block RAM寄存器 | 0x43C2 0004 | 0x0000 0000 |
| CAMERA_CTRL | 摄像头控制寄存器 | 0x43C2 0008 | 0x0000 0000 |
| ROI_CTRL | 感兴趣区域提取控制寄存器 | 0x43C2 000C | 0x0000 0000 |
| PIX_SUM_MIN | 像素累加和下限阈值寄存器 | 0x43C2 0010 | 0x0040 0000 |
| PIX_SUM_MAX | 像素累加和上限阈值寄存器 | 0x43C2 0014 | 0x00B0 0000 |
| FLASH_WRITE | 写FLASH寄存器 | 0x43C2 0018 | 0x0000 0000 |
| FLASH_READ | 读FLASH寄存器 | 0x43C2 001C | 0x0000 0000 |
LED_CTRL BEEP_CTRL KEY_CTRL SOUND_CTRL |
LED提示寄存器 蜂鸣器寄存器 模式和开始寄存器 语音播报寄存器 |
0x43C2 0020 0x43C2 0024 0x43C2 0028 0x43C2 002C |
0x0000 0000 0x0000 0000 0x0000 0000 0x0000 0000 |
摄像头控制器还有一个重要的功能为检测手指是否伸进采集装置的卡槽。检测的方法是通过计算图像中没有手指和有手指时图像像素累加和的变化,从而得出手指是否伸进采集装置的卡槽。
为了设计和使用灵活,图像像素的累加和可以通过寄存器CAMERA_CTRL的pix_color_sum位读出。检测手指的下限阈值和上限阈值可以通过寄存器PIX_SUM_MIN和PIX_SUM_MAX进行配置。
③ROI提取模块设计
当图像采集装置采集到手指图像后,将进入ROI提取阶段。ROI提取模块能够根据手指边界和手指远端关节的位置,截取出手指静脉的感兴趣区域,后续的特征提取和特征匹配将仅针对该区域。由于ROI提取需要进行手指边界检测、旋转校正、手指关节检测等步骤,运算量较大,如果采用软件实现,将花销较多时间,降低指静脉识别的速度。所以本设计将ROI提取模块采用FPGA实现,设计成硬件加速器以提高处理速度。本模块的详细设计见第5章:ROI硬件加速器设计。
④LCD控制器设计
为了能实时且直观地把指静脉识别整个过程的图像处理结果显示出来,需要用到LCD显示器,本设计采用的LCD显示器为2.8寸的TFT LCD电阻屏,可以显示 16 位色的真彩图像,该显示器采用的驱动芯片为ILI9341。
采用FPGA专门设计一个LCD控制器模块,用于产生驱动LCD显示的控制信号和数据信号,这些信号包括LCD_CS、LCD_RS、LCD_WR、LCD_RD、LCD_RST、LCD_DATA、LCD_BL_CTR。产生的信号需要满足LCD驱动的时序。
如图5-6所示,在硬件端和软件端都需要驱动LCD进行显示,所以在SYS_CTRL模块中设置一个硬件控制LCD显示寄存器(LCD_HW_CTRL_DISP),用于选择硬件对LCD进行驱动还是软件配置驱动LCD。当LCD_HW_CTRL_DISP寄存器的ctrl位为“1”时,将由FPGA的硬件逻辑电路控制LCD_CS、LCD_RS、LCD_WR、LCD_RD等信号并驱动LCD显示;当LCD_HW_CTRL_DISP寄存器的ctrl位为“0”时,将由CPU通过软件的方式控制LCD_CS、LCD_RS、LCD_WR、LCD_RD等信号并驱动LCD显示。
⑤ROI硬件加速器设计
每个人的手指粗细不一样,并且在指静脉图像采集时手指放置位置不能完全一样,导致采集的指静脉图像会出现水平和竖直平移以及旋转角度不一致,如图8-9所示,因此对指静脉图像的ROI提取成为指静脉识别过程中非常关键的一步。ROI提取是否精确,将直接影响到识别系统的准确率。而如果ROI提取时间过长,也将降低整个识别系统的速度。因此其提取时间与提取精度同样重要。
虽然目前针对指静脉的ROI提取提出了许多不同的方法,但大多数方法的总体思路是一致的。首先需要计算出手指的边缘,对边缘进行形态学处理,根据边缘确定出手指的偏转角度并进行旋转校正,根据校正后的图像的边缘以及关节位置,确定ROI的宽度以及高度。许多研究往往是基于MATLAB等软件进行仿真分析,在追求感兴趣区域提取的精确性的同时,往往忽略了计算量大的问题。众所周知,在移动互联网高速发展的今天,生物识别技术将越来越多地应用到便携式设备之中,在尽量少地占用软硬件资源的情况下,如何快速准确地实现身份验证,显得尤为重要。
本设计为了提高指静脉识别的速度,一方面对传统的ROI提取算法进行了改进,采用手指上下边界定位以及基于相似三角形定理的图像校正方法,从算法层面减少了感兴趣区域提取的时间(该算法已在《电子测量与仪器学报》2020年第4期发表)。另一方面将本ROI提取模块设计成硬件加速器,采用FPGA实现ROI提取的整个过程,从硬件层面提高了ROI提取的速度。
本设计采用的ROI提取的算法流程如图8-10所示。图8-11以某一手指的静脉图像为例,展示了如何运用本算法从一张原始的图片提取出ROI。该图片来自山东大学机器学习与数据挖掘实验室的指静脉图像库。
采用FPGA对该ROI算法过程进行硬件加速,当摄像头采集到手指静脉图像时,ROI模块开始工作。本ROI算法采用硬件描述语言Verilog进行FPGA开发,主程序采用有限状态机(Finite-state machine, FSM)进行设计,ROI的提取过程由7个状态来完成,分别为IDLE、FIRST_CUT、EDGE_POINT、CORRECTION、WIDTH_DEFINE、HIGHT_DEFINE和SECOND_CUT,如图5-12所示。
在IDLE状态下,如果摄像头采集到手指静脉图像并且已经存储到了Block RAM中,则进入FIRST_CUT状态。
FIRST_CUT状态的目的是截掉背景区域,减小图像大小。图像截取完成后进入EDGE_POINT状态。图像截取通过读写Block
RAM完成
在EDGE_POINT状态下,依次从RAM中读取图像数据,并计算手指的4个边界点。
在CORRECTION状态下,首先根据上一状态求出的边界点,计算手指偏转角度以及每行需要平移的值,然后依次从RAM中读取图像数据经平移后存储回RAM中。图像的平移校正实际就是各像素点存储地址的变化。
在WIDTH_DEFINE状态下,根据平移校正后的边界点,找出手指图像左右两边需要截取的列号,以确定ROI区域的宽度。
在HIGHT_DEFINE状态下,采用滑动窗的方法求手指远端关节的区域,从而确定ROI区域的高度,即需要计算上下截取的行号。
在SECOND_CUT状态下,根据左右截取的列号和上下截取的行号对图像数据重新读出和写入RAM,最后RAM中以0为起始地址中存储的数据即为ROI图像的数据。
通过以上7个状态完成了ROI的提取,提取后的图像数据存储在Block RAM中,然后产生ROI_finish信号,以通知软件可以从RAM中读取数据并进行后续算法处理。
⑥外围电路设计
系统所用主要元器件如图8-13所示。FPGA平台采用ZYNQ系列的XC7Z010。LCD显示屏采用正点原子的2.8寸TFT LCD,直接与开发板的排座连接。摄像头采用MT9V034,也直接插到开发板的排座上。语音播放模块的型号为DY-SV17F,扬声器参数为3W 4Ω。用于照射手指的近红外发光装置采用的是850nm 3W的近红外LED灯。电源适配器将220V的交流市电转换成12V的直流电,采用两个LM2596电路,一个将12V直接转换为5V给板子供电,一个将12V转换为5~6V可调电压,给近红外LED发光装置供电。按键、LED指示灯和蜂鸣器电路与FPGA的IO口连接。外围电路的电路图如图8-14所示。
8.4软件设计
软件工程的源代码结构如图8-15所示。由图中可以看出,工程主要是由main函数、归一化、lcd驱动、特征匹配、方向分割、八连通域标记、连通域去噪、中值滤波等源代码组成。
在main函数中对整个手指静脉识别过程进行控制,具体的流程如图8-16所示。当系统上电后,首先进行初始化,初始化的主要目的是配置Systick的相应寄存器、初始化LCD和配置GPIO的高8位为输入、低8位为输入。然后判断是否点击“注册”按钮,如果已经点击,将启动指静脉识别系统,通过配置SYS_CTRL模块的寄存器启动摄像头,直到等待硬件完成ROI后,才接着通过软件进行归一化、方向分割、中值滤波和连通域去噪等步骤,如果当前是注册模式,则将提取的静脉纹路特征存储进入FLASH中,如果当前是识别模式,则从FLASH中依次读出静脉纹路特征进行特征匹配。整个过程的图像处理结果都采用LCD进行显示。
①Cortex-M3的软件设计
通过编写C语言代码,利用Cortex-M3产生控制指令,在图像采集阶段控制摄像头的开启;当手指静脉图像采集完成,控制ROI模块进行感兴趣区域提取;当ROI完成后,通过写共享寄存器提醒A9进行后续算法处理。当A9端完成后续算法后,根据电磁锁控制寄存器中的值产生电磁锁的控制信号。
②Cortex-A9的软件设计
Cortex-A9的软件设计采用Vitis 2019.2进行开发,代码结构如图8-17所示。主要完成的任务是当ROI完成后,从双端口存储器中读回图像数据进行后续的归一化、特征提取、中值滤波、膨胀腐蚀、连通域去噪等算法;如果当前处于注册模式,则将静脉特征存储到FLASH中;如果当前处于识别阶段,则从FLASH中读回特征数据进行匹配,并将整个过程的图像处理结果以及匹配结果通过LCD显示。并且还会根据识别结果将电磁锁的控制信息写入共享寄存器中并产生图像处理完成信号以提醒M3进行后续控制。
8.5仿真测试 {#仿真测试}
本系统在设计实施的过程中应进行仿真测试,以确保后期系统能够正常工作。
①Cortex–M3启动仿真
采用Keil MDK联合Modelsim进行Cortex–M3内核启动的功能仿真。为了对照Cortex–M3的运行过程,在MDK中通过“fromelf -cvf .\Objects\myprj.axf -o image.txt”命令将axf文件转换为可读的txt镜像文件。图8-18为Cortex–M3内核启动仿真,CPU正在读取中断向量表。
如得到图8-19的结果,表明CPU已经开始进入main函数中运行,说明Cortex–M3已经运行起来了。
② ROI硬件加速器仿真
采用Verilog硬件描述语言编写ROI硬件加速器,为了保证ROI能够被正确提取,必须进行大量仿真。仿真时采用的图像数据来自山东大学机器学习与数据挖掘实验室的指静脉图像库。利用MATLAB将图像数据取出,并存储进入Xilinx的Block
RAM中,然后运行ROI模块的仿真,测试能否正确提取出ROI。
图8-20为ROI提取整个过程的波形图,从图中可以看出,“ROI_state”从000-111进行变化,完成ROI提取的8个状态(这里比第5章介绍时多了一个状态,是因为最后一个状态是为了测试专门增加的,用于将Block
RAM中的ROI数据输出以便于与MATLAB中的数据进行对比)。从图中还可以看出,在相应的状态下计算得出的相应ROI参数,如手指边界点“edge_i1”-“edge_i4”,感兴趣区域的宽度边界“edge_x1”和“edge_x2”,感兴趣区域的高度边界“edge_y1”和“edge_y2”,旋转校正时用到的偏转量“pianzhuan”等。
图8-21为ROI提取启动时的波形,当“ROI_start”信号高电平来时,“ROI_state”从000状态跳转到001状态,开始进行初次截取,并产生Block RAM的读写地址。
图8-22为ROI提取完成时的波形,“ROI_state”从111状态跳转到000状态,产生一个周期的“ROI_finish”高电平信号,“ROI_run”信号由高电平变为低电平。
在“ROI_state”为111状态时,通过“$write”语句将ROI数据输出出来,并导入进MATLAB,查看与MATLAB提取出的ROI图像是否一致,若一致,则说明仿真正确。图8-23为Modelsim命令框中输出的ROI数据。

8.6制作与调试 {#制作与调试}
①实物制作
本设计实物作品制作采用的各个硬件模块实物图,其中主板为ZYNQ 7020开发板,LCD显示屏采用4.3寸TFT LCD,直接与开发板的排座连接。摄像头采用MT9V034,也直接插到开发板的排座上。用于照射手指的近红外发光装置采用的是850nm 3W的近红外LED灯。电源适配器将220V的交流市电转换成12V的直流电,采用两个LM2596电路,一个将12V直接转换为5V给板子供电,一个将12V转换为5~6V可调电压,给近红外LED发光装置供电。按键、LED指示灯、电磁锁和蜂鸣器电路与FPGA的IO口连接。
图8-24、图8-25分别为手指静脉识别系统的核心模型图以及基于核心模块制作的智能储物柜。目前采用的储物柜模型为四门储物柜,可以扩展为256门储物柜。也可将该手指静脉识别系统装配到门禁系统中。

②功能调试
上电之后,LCD显示屏上显示本系统的主界面,如图8-26所示。主界面有本设计名称“手指静脉识别系统”、“注册”与“识别”的功能按键以及指静脉识别的logo等信息
当按下“开始”键后,将进入手指静脉识别系统,摄像头开始采集图像,如果检测到手指伸进卡槽,蜂鸣器会“滴”一声,同时采集此时的图像,接下来系统对采集到的图像依次进行ROI提取、归一化、连通域去噪、特征提取等步骤并将图像显示在LCD显示屏上,如图8-27所示。
如果当前是注册模式,则LCD显示“正在注册”,并将特征存储进入FLASH中,存储完成后显
示绿色的“注册成功”,如图8-28(a)所示,并且将储物柜中未被占用的柜子的柜门打开。
如果当前是识别模式,则LCD显示“正在特征匹配”,并将FLASH中特征数据依次读取出来与当前的特征进行匹配,如图8-28(b)所示。如果匹配值大于等于设定的阈值,则显示绿色的“识别成功!”,如图8-28(c)所示,并且根据特征编号将储物柜对应柜子的柜门打开。如果匹配值小于设定的阈值,则显示红色的“识别失败!”,如图8-28(d)所示,储物柜柜门不打开。
③性能测试分析
为了验证本系统的识别正确率,对50个同学进行了250次测试,其中拒真测试和认假测试各125次。测试结果如表8-3所示。可以得出,拒真测试的正确率为97.6%,认假测试的正确率为98.4%,总的识别正确率为98%。
表8-3识别准确性测试
| 测试类别 | 测试次数 | 错误次数 | 正确率 | 总识别正确率 |
|---|---|---|---|---|
| 拒真测试 | 125 | 3 | 97.6% | 98% |
| 认假测试 | 125 | 2 | 98.4% |
{#section}
实验报告要求
需要学生在实验报告中反映的工作(如:实验需求分析、实现方案论证、理论推导计算、设计仿真分析、电路参数选择、实验过程设计、数据测量记录、数据处理分析、实验结果总结等等),如:
实验报告需要包含以下内容:
①封面 设计报告的封面应包括以下信息:课程名称、学生姓名、学号、专业班级、提交日期、指导教师、学院名称、学校名称。
②摘要 设计报告摘要部分应简要概括本课程设计的主要内容、目的和意义,逛街数据结果和结论。摘要字数应在200字以内。
③目录
④正文 本部分是重点撰写的部分,应反映以下工作:
a.引言部分,首先介绍本设计的背景和意义进行实验需求分析。
b.任务分析。本课程设计的任务进行详细描述,包括具体的设计目标、功能需求、性能要求等。同时,应对本课程设计的要求进行详细说明,如时间安排、工作量分配、团队合作等方面的要求。
c.方案论证。设计的方法和技术进行详细介绍,包括需求分析的方法、功能模块划分的原则、系统架构设计的策略、设计的关键问题、图像识别的质量参数、系统实现与测试的方法等。系统需求分析包括对系统的功能需求、性能需求、接口需求等进行分析,明确系统的具体需求。系统功能模块划分包括根据系统的需求,将系统划分为若干个功能模块,并对其进行详细描述。系统架构设计包括根据系统的功能模块划分,设计系统的架构,包括硬件架构和软件架构。并对所设计的架构进行合理的解释和说明。
d.对所采用的方法和技术进行软件仿真验证,通过验证数据进行方案合理性评价,以证明其可行性和有效性。
f.系统设计与实现。本部分应根据上述章节的内容,对本课程设计的系统进行详细的设计和实现。具体包括以下几个方面:系统实现与测试:根据系统的设计方案,进行系统的编程实现,并进行详细的测试。测试内容包括功能测试、性能测试、安全测试等。并对测试结果进行分析和评价。同时,应对可能出现的问题进行分析和解决。
⑤实验结果总结心得体会
总结系统设计的完善性、合理性,阐述创新点和改进方向。实验报告要求图文并茂。在本部分,学生应对本实验设计的整个过程进行总结,包括在课程设计过程中遇到的问题、解决问题的方法和技巧等。同时,对未来的研究方向和发展趋势进行展望,提出自己的见解和建议。
考核要求与方法(限300字)
考核的节点、时间、标准及考核方法。
针对本实验设计需要学生达成的五个目标,设计了总结性与过程性结合的评价考核方案,具体见表10-1、表10-2、表10-3所示。
表10-1实验考核评价表
| 考核类别 | 考核内容 | 考核形式 | 成绩 |
|---|---|---|---|
| 理论知识内化 | 理论理解程度、阅读文献、实验任务的认知 | 准备材料、现场问答 | 10 |
| 创新思维培养 | 具体方案的可行性、合理性、创新性 | 方案设计报告、PPT汇报 | 20 |
| 团队协作能力 | 能够在多学科背景下的团队中承担个体、团队成员或负责人的角色。 | 团队小组互评 | 5 |
| 专业素养构建 | 1.基本要求:任务完成程度、功能的完整性、准确率基本要求 2.系统稳定性:不同环境下的指脉采集的稳定性 3.实验操作技能与解决复杂工程问题的能力(操作详见表6-2,换算成本表内成绩) |
现场验收、实验报告分析 | 45 |
| 工程实践达成 | 报告的完整性、规范性(报告详见表6-3,换算成本表内成绩) | 报告文档 | 20 |
{#section-1}
表10-2实验操作评分标准
| 优(90~100分) | 良(80~89分) | 中(70~79分) | 合格(60~69分) | 不合格(<60分) |
| 1.能按课程要求积极参加实验过程,实验态度和习惯极好;熟练掌握信息获取与检测技术相关实验原理;能够将所学知识熟练应用于实际操作中,实验数据90%以上准确无误,并准确验证相关实验机理。 |
|
|
|
|
| 2.能遵守实训场所安全、环保、保密等纪律;能正确选择涉及的全部实验仪器与实验工具;实验操作合理,90%以上电路连接正确;完全具备相关安全问题的处理方法等综合因素的能力。 | 2.能较好地遵守实训场所安全、环保、保密等纪律;能正确选择涉及的全部实验仪器与实验工具;实验操作合理,80%电路连接正确;具备相关安全问题的处理方法等综合因素的能力。 | 2.基本能遵守实训场所安全、环保、保密等纪律;能正确选择涉及的全部实验仪器与实验工具;实验操作合理,70%电路连接基本正确;基本具备相关安全问题的处理方法等综合因素的能力。 | 2.遵守实训场所纪律欠缺;能正确选择涉及的全部实验仪器与实验工具;实验操作合理,60%电路连接基本正确;不具备相关安全问题的处理方法等综合因素的能力。 | 2.忽视实训场所纪律,甚至违反;能正确选择涉及的全部实验仪器与实验工具;实验操作合理,电路连接准确度不能达到60%;不具备相关安全问题的处理方法等综合因素的能力。 |
| 3.实验主动、认真;遵守操作规定;能够结合相关理论知识,分析各实验项目涉及的实验数据,给出合理解释,并通过现代数据分析处理工具进行科学分类、归纳整理,通过信息综合得到合理有效的结论。 | 3.实验较主动;能遵守操作规定;能认真学习自己所参加项目;能够结合相关理论知识,分析各实验项目涉及的实验数据,给出合理解释,并通过工具进行科学分类、归纳整理,得到合理有效的结论。 | 3.能遵守操作规定;能学习项目知识;基本能够结合相关理论知识,分析各实验项目涉及的实验数据,给出一定解释,并通过工具进行科学分类、归纳整理,通过信息综合得到合理的结论。 | 3.遵守操作规定欠佳;学习项目知识基本到位;能够结合相关理论知识,分析各实验项目涉及的实验数据,并通过数据分析处理工具进行分类、归纳整理,通过信息综合得出结论。 | 3.不遵守操作规定;学习项目知识效果差;对实验项目涉及的实验数据不能科学分析并给出合理解释,不能利用现代数据分析处理工具进行信息提取和归纳整理,无法获得合理的结论。 |
表10-3实验报告评分标准
| 90-100分 | 80-89 分 | 70-79 分 | 60-69分 | <60 分 | |
| 能够非常熟练的掌握专业所需的工程专业基础知识,问题的数学模型进行比较与综合,优选技术方案。能够在规定时间内完成作业,准确解答关于本实验讲基本概念和基础理论。90%以上的概念清晰,能够解决90%以上的主要问题,90%以上分析合理,结论有效。 | 能够熟练的掌握专业所需的工程专业基础知识,问题的数学模型进行比较与综合,优选技术方案。能够在规定时间内完成作业,准确解答关于本实验讲基本概念和基础理论。80%以上的概念清晰,能够解决80%以上的主要问题,80%以上分析合理,结论有效。 | 能够基本熟练的掌握专业所需的工程专业基础知识,问题的数学模型进行比较与综合,优选技术方案。能够在规定时间内完成作业,准确解答关于本实验讲基本概念和基础理论。70%以上的概念清晰,能够解决70%以上的主要问题,70%以上分析合理,结论有效。 | 能够部分掌握专业所需的工程专业基础知识,问题的数学模型进行比较与综合,优选技术方案。能够在规定时间内完成作业,准确解答关于本实验讲基本概念和基础理论。60%以上的概念清晰,能够解决60%以上的主要问题,60%以上分析合理,结论有效。 | 不能够掌握专业所需的工程专业基础知识,能够对电子设备、系统设计及实用信号处理领域复杂工程问题的数学模型进行比较与综合,优选技术方案。 | |
| 能够非常熟练针对电子设备、系统设计及实用信号处理领域相关复杂工程问题,选择并合理使用软硬件设计与仿真平台;分析计算复杂的系统,并准确解答相关作业,90%以上的分析计算准确,能够解决90%以上的主要问题,90%以上分析合理,结果有效。 | 能够熟练针对电子设备、系统设计及实用信号处理领域相关复杂工程问题,选择并合理使用软硬件设计与仿真平台;分析计算复杂的系统,并准确解答相关作业,80%以上的分析计算准确,能够解决80%以上的主要问题,80%以上分析合理,结果有效。 | 能够针对电子设备、系统设计及实用信号处理领域相关复杂工程问题,选择并合理使用软硬件设计与仿真平台;分析计算复杂的系统,并准确解答相关作业,70%以上的分析计算准确,能够解决70%以上的主要问题,70%以上分析合理,结果有效。 | 能够部分针对电子设备、系统设计及实用信号处理领域相关复杂工程问题,选择并合理使用软硬件设计与仿真平台;分析计算复杂的系统,并准确解答相关作业,60%以上的分析计算准确,能够解决60%以上的主要问题,60%以上分析合理,结果有效。 | 不能够针对电子设备、系统设计及实用信号处理领域相关复杂工程问题,选择并合理使用软硬件设计与仿真平台; | |
{#section-2}
项目特色或创新(可空缺,限150字)
项目的特色在于:项目背景的工程性,知识应用的综合性,实现方法的多样性。
每个学生都是独一无二的,他们的学习方式、速度和兴趣都有所不同。因此,教师应该根据这些差异来设计和实施教学策略,而不是试图将所有学生塞进同一种教学模式中。经过长期实践,本实验案例提出基于“适合教育”理念的“一组一案、分类指导”理念。整个实验设计解决方案多样化、可拓展部分空间大、实验硬件要求低、实验学习环境开放包容,满足各种层级学生的学习需求,可推广性强。
b
Openmv开发板。Openmv是一个源程序开放,价格低,可以驱动MT9V034图像传感器的开发板。以STM32F767CPU为中心,集成OV707摄像头芯片。该开发板可利用C语言,高速并且准确的实现核心图像采集算法,提供脚本语言编程接口。
c.树莓派4B。选取树莓派4B作为采集装置的核心,并且配备一张32GB内存的TF卡。树莓派4B的主要功能包括高性能64位四核处理器,通过一对micro-HDMI端口支持分辨率高达4K的双显示屏,高达4Kp60的硬件视频解码,高达4GB的RAM,双频2.4/5.0
GHz无线局域网,蓝牙5.0,千兆以太网,USB
3.0和PoE功能。4B在处理器速度,多媒体性能,内存和连接方面提供了突破性的增长,同时保留了向后兼容性和类似的功耗。
②LED发光模块
近红外光LED工艺较为成熟,已经作为主流的手指静脉采集装置光源,本设计即选用850nm波长近红外LED灯珠(10W)。手指静脉中的血红蛋白在760nm和850nm波长的近红外光达到吸收峰值。为消除可见光对图像质量的影响设计,学生可以自选是否使用滤光片。如采用红外滤光片,k呃滤除780nm以下的光源,保留780nm以上的光源,本设计学生可自行选用HWB780型的红外滤光片。
手指静脉采集装置的成像部分一般由摄像头和滤光片组成,有些摄像头自带滤光片,可无需单独选配。本设计可选的摄像头模块包括但不限于以下几种。
b.微雪电子RPi
IR-CUT
Camera摄像头,内置OV5647图像传感器,自带IR-CUT(双滤光片切换器)模式,通过CSI(Camera
Serial
Interface)摄像头接口与树莓派进行连接,能够切换白天夜间模式阻挡或通过红外光,省去了滤光片部分,精简了装置的实现。
5.2开发环境及软件工具
手指静脉纹理识别系统实验设计采用基于驱动任务的BOPPPS实验课堂模式。BOPPPS模型是一种用于设计和实施教学的结构化框架,是一种被广泛应用于教育领域的目标导向型教学设计方法。任务驱动的实验课堂是以学生为中心的教学模式,强调学生通过完成具体的任务来掌握知识和技能。在这种模式下,教师的角色从传统的知识传授者转变为学生学习的引导者和协助者。本实验教学模式有五个部分组成:引入(Bridge-in)、目标(Objectives)、方案(Plans)、过程(Processes)、评估与表现(Performance)、总结反馈(Summary)。具体实施如图6-1所示。
8.4软件设计
在main函数中对整个手指静脉识别过程进行控制,具体的流程如图8-16所示。当系统上电后,首先进行初始化,初始化的主要目的是配置Systick的相应寄存器、初始化LCD和配置GPIO的高8位为输入、低8位为输入。然后判断是否点击“注册”按钮,如果已经点击,将启动指静脉识别系统,通过配置SYS_CTRL模块的寄存器启动摄像头,直到等待硬件完成ROI后,才接着通过软件进行归一化、方向分割、中值滤波和连通域去噪等步骤,如果当前是注册模式,则将提取的静脉纹路特征存储进入FLASH中,如果当前是识别模式,则从FLASH中依次读出静脉纹路特征进行特征匹配。整个过程的图像处理结果都采用LCD进行显示。
②Cortex-A9的软件设计