11基于魔法师S3C2410的指纹识别系统.docx
- 文档编号:3813221
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:47
- 大小:5.41MB
11基于魔法师S3C2410的指纹识别系统.docx
《11基于魔法师S3C2410的指纹识别系统.docx》由会员分享,可在线阅读,更多相关《11基于魔法师S3C2410的指纹识别系统.docx(47页珍藏版)》请在冰点文库上搜索。
11基于魔法师S3C2410的指纹识别系统
2011第七届“博创杯”全国大学生嵌入式设计大赛
作品设计报告
基于魔法师S3C2410的指纹识别系统
TheFingerprintRecognitionSystemBasedOnUP-MagicS3C2410
设
计
报
告
队伍编号:
HN-16-1
参赛学校:
湘潭大学
作者:
黄炫方王贵林张红
指导教师:
胡洪波
组别:
√本科组□高职组□恩智浦单项
参选奖项:
□Qt□IAR□WINDRIVER√NXP(使用博创平台)
摘要:
本系统采用博创公司UP-MagicS3c2410开发平台,充分利用该平台强大的嵌入式微控制能力。
本系统采用的指纹图像算法主要分为三个部分:
预处理、特征提取和匹配。
其中预处理部分由归一化、分割、二值化、去噪、细化等算法组成,且在特征匹配算法中使用了对图像旋转和平移无关的数学模型。
本课题设计的系统工作方式采用了登记方式,在登记方式下,指纹传感器采集指纹图像数据并保存至内存,在UP-MagicS3c2410上移植的指纹识别算法完成对指纹图像的数字化处理,将形成的特征样本保存。
通过对此平台的实验测试,表明该系统采用的指纹识别算法具有较好的实用性、移植性和识别效率。
系统通过参数调整可以达到一定的拒真率和误假率,能够满足民用指纹识别领域的基本要求。
关键词:
指纹传感器,指纹图像算法,嵌入式,UP-MagicS3c2410
Abstract:
OursystemadoptthedevelopmentplatformcalledUP-Magic2410ofUP-TECHCorporation,whichfullyusesthestrongembededmicrocontrolabilityoftheplatform.Thealgorithmofthesystemismainlycomposedofthreeparts:
pretreatment、featureextractionandmatching.Amidthethreeparts,pretreatmentismadedupoftheAlgori--thmsuchasnormalization,division,binarization,denoising,thinningandlike.Themathmodelwhichisbeyondoutofpictureorientationandtranslationisusedintheprocessoffeatureextraction.Theworkingwayofthedesignedsystemofthesubjectemployedthewayofregister.Underthewayofit,FingerprintSensorcollectthedataofFingerprintImageandstoreditinRAM.ThefingerprintidentificationAlgorithmwhichistransplantedintheplatformofUP-MagicS3C2410accomplishedthedigitizationdisposeandstoredthefeaturedsampleformedintheprocess.Bytestingtheplatform,itindicatesthefingerprintidentificationalgorithmofthesystermhavepreferablepra--cticability,portabilityandidentifiedefficency.ThesystermcanachivethegoalofcertainFRRbyajustingtheparameters,thussatisfyingthefundamentalrequirem-entofthefingerprintidetificationfield.
Keywords:
FingerprintRecognition,embeddedchips,UP-MagicS3c2410,linux
目录
摘要:
2
第一章绪论3
1.1背景3
1.2前景与应用4
第二章系统方案5
第三章功能与指标7
第四章实现原理8
4.1指纹识别算法的实现8
4.1.1指纹图像预处理8
4.1.2指纹特征点提取11
4.2通信部分12
4.3控制部分12
第五章系统设计13
5.1系统硬件设计13
5.2系统软件设计15
5.2.1移植Linux15
5.2.2系统流程分析18
第六章系统测试19
6.1测试设备条件19
6.2功能测试及结果19
6.3整体测试及结果分析19
第七章特色及创新23
7.1创新点及特色描述23
7.2系统关键部分和难点简要分析23
结束语(总结、致谢)24
附录:
25
参考书目38
第一章绪论
1.1背景
随着经济和社会的发展以及科学技术的迅速推广,新兴技术和产品不断出现,在不断提高人类的日常生活质量的同时也带来了各种各样的问题。
在这些问题中,涉及到个人信息安全性方面的问题,这个问题已经渗透到政府部门、金融贸易,电子产品等与人们生活息息相关的领域,因而这个问题受到了人们的普遍关注。
据相关数据显示,每年由于证件或密码遗失而造成的损失巨大,比如美国,由于证件的丢失或管理失误,每年就有上亿美元的福利款被冒领;全球知名的信用卡巨头Master一Card公司估计每年约有4.5亿美元的信用卡诈骗案;而因为密码被破解,则使移动通信每年至少损失10亿美元,单自动取款机即ATM业务,其相关的诈骗案每年损失就不下3亿美元。
传统认证技术的不完善,使得人们渴望更加安全、方便的认证技术。
生物识别技术为此提供了一个安全可靠的解决方案。
其中指纹识别技术作为一种重要的生物身份识别技术,也是目前生物识别技术发展的最为成熟的一个分支。
指纹识别技术是通过特殊的指纹读取设备和计算机图像处理技术,对指纹进行采集、分析和比对,可以自动、迅速、准确地鉴别出个人身份。
系统一般主要包括对指纹图像采集、指纹图像处理、特征提取、特征值的比对与匹配等过程。
现代电子集成制造技术使得指纹图像读取和处理设备小型化,同时飞速发展的个人计算机运算速度提供了在微机甚至单片机上可以进行指纹比对运算的可能性,而优秀的指纹处理和比对算法保证了识别结果的准确性。
经过很长时间的发展和完善,这项技术将会成为未来识别技术的主流。
在我国,推出指纹识别产品的公司很多,但绝大多数公司是引进了国外的技术,真正掌握核心技术、拥有自主知识产权的公司只有北大高科、中自汉王、粤安集团等几家,而学术方面则是中国科学院自动化研究所、北京大学计算机系、清华大学自动化系等单位居于国内领先地位。
由此可见,国内对指纹识别技术与国外还有一定的差距。
1.2前景与应用
指纹识别技术是优于其他生物识别技术的身份认证方法,是目前应用前景较好的生物识别技术。
这是因为:
指纹的稳定性、唯一性和难于伪造的特点已经得到公认;指纹识别技术是最早的通过计算机实现的身份识别手段,经过几十年的应用历史,指纹识别算法已比较成熟,且相对其他生物识别算法较简单;经过指纹识别算法处理得到的特征样本一般只有几百个字节;指纹识别系统具有较好的可行性,即在对资源、环境、操作等条件要求不苛刻的条件下可以达到合理的准确率、速度和鲁棒性。
由于指纹的这些特点使得指纹识别成为将来提高信息安全性的发展主流,具有很大的可发展空间。
基于嵌入式系统的嵌入性和专用性,使得嵌入式系统变成一个独立的应用产品,提高了系统利用率,降低了能耗和价格,减小了系统的尺寸,即是将指纹的采集和处理集于一身的单机系统,便携性强,因此可以作为客户端应用于多种场合,。
而传统的采用计算机设计指纹识别系统,由于其硬件设备比较齐全使得设备利用率低,价格较高使得经济性不强,且追求高的吞吐量,不具备实时性。
因此采用嵌入式系统设计的指纹识别系统是适应当代身份认证要求的一种识别系统,适应了市场发展的需求。
基于ARM的32位体系结构,使得ARM的芯片具有强大的处理能力。
因此采用ARM设计的指纹识别系统使得指纹识别更加精确和迅速,这一特点使得采用ARM的优势明显高于采用单片机设计的系统,提高了运行效率,适应高速的社会发展需求。
第二章系统方案
基于博创UP-MagicS3c2410开发平台的指纹识别系统,是通过简易的人机交互来实现指纹的录入、识别和录入识别结果的输出的。
采用指纹传感器对指纹进行采集,S3c2410平台进行后台的处理。
主要包括如下几个过程:
(1)键盘模块
主要实现指纹识别系统的模式转换和指纹库清空,提供简易的人机交互界面。
(2)采集模块
采集模块使用的是Veridicom公司的FM-180指纹传感器,通过串口与单片机模块相连,传输控制信息和数据。
主要是进行指纹的采集和数据指令的传送,从而在开发板上完成指纹的获取、预处理、提取特征值、特征值比对等功能。
在初始化时需要调整传感器的相应参数。
(3)ARM模块
使用博创的UP-MagicS3c2410嵌入式开发平台,并在其上移植嵌入式操作系统Linux。
在操作系统的控制下主要完成:
指纹传感器的驱动、指纹图像传输的控制、图像数据暂存、控制系统工作模式、运行指纹识别算法,产生控制信号,用于控制显示模块。
(4)显示模块、
包括数码管、点阵LCD屏、led灯以及蜂鸣器,根据开发板产生的控制信号进行识别或录入结果的显示。
第三章功能与指标
在整个指纹识别系统实现过程中,主要分为以下几个部分:
(1)键盘控制:
通过键盘控制系统流程,模式选择等,从而实现简单的人机操作界面,方便用户使用。
(2)指纹采集:
通过指纹采集模块FM-180采集指纹。
经采集的指纹形成指纹图像,以根据图像产生控制信息等供后续过程使用。
(3)指纹处理:
将采集后的指纹图像进行图像处理,存储指纹图像特征,通过采集的指纹图像特征进行识别。
(4)结果输出部分:
将识别或录入的结果通过点阵LCD屏,led灯,蜂鸣器等显示给用户。
这一部分主要用于给用户提示信息,或进行相关操作,或得到操作结果等。
第四章实现原理
4.1指纹识别算法的实现
指纹识别算法在整个指纹识别系统中处于核心地位,它直接影响着指纹识别的精确度。
指纹识别算法主要包括指纹图像预处理、特征值提取以及特征匹配几个环节,其中预处理操作主要包括图像归一化、增强、二值化、细化等几个部分。
以下对各部分进行简要介绍。
4.1.1指纹图像预处理
指纹图像的预处理是整个指纹识别过程的基础,是指纹特征点提取和指纹匹配的重要依据。
预处理的算法流程如图4-1所示。
图4-1指纹图像预处理算法流程图
(1)指纹图像分割和归一化
图像归一化的目的是将指纹图像的灰度变化调整到一个统一的范围,使其具有给定的均值和方差,从而使指纹图像的后续处理具有相同的基准。
令P表示原始指纹图像。
P(i,j)表示原始图像中像素点(i,j)的灰度值,G(i,j)表示归一化后图像中像素点(i,j)的灰度值。
(公式)
G(i,j)=
Mean0和Var0是原始图像的灰度均值和方差(可以计算直方图得出)Mean和Var是给定的期望图像的灰度均值和方差。
根据实验发现Mean=180,Var=3600时,归一化后的指纹图像效果较好。
结果如图4(b)所示。
(2)指纹图像增强
指纹图像增强的目的是为了消除噪声,使整个图像纹路清晰、连贯,便于特征点的提取。
经过分析比较,基于Gabor滤波的指纹图像增强算法效果更好。
本系统的增强算法采用了如下几个步骤:
计算方向图——计算频率——计算区域掩码——滤波。
Gabor滤波具有良好的方向性和频率选择特性,其空间表达式为:
表达式中phi是Gabor滤波器的方向,f是滤波器的频率,Dx和Dy分别是沿x轴和y轴的高斯包络常数,基于Gabor滤波器对指纹图像增强实际上就是对这4个参数的确定,直接关系到增强后指纹图像的效果。
Phi即指纹图像的方向通过计算方向图得出,f即指纹图像中纹线的频率的提取采用方向投影的优化算法,可对指纹图像的各个局部分别求纹频率。
通过实验比较,Dx=Dy=410时增强后的图像效果较好,如图4(c)所示。
(3)指纹图像二值化
指纹图像二值化是指将一个具有纹理灰度变化的指纹图像转换成仅有黑白两色的图像,从而使得图像灰度由原始的256级减少为2级。
指纹图像经过二值化处理后,线条分明、纹理清晰,为后续指纹特征点的提取带来了极大的方便。
指纹图像二值化最简单的方法是采用“阈值”技术。
阈值的选取直接关系到二值化的好坏,良好的二值化图像应该纹路突出,并且保留原始指纹图像的细节特征。
本系统采用动态阈值法来选取合适的阈值:
①分别求出图像最大和最小灰度值Zmax和Zmin,并令初始阈值为T0=(Zmax+Zmin)/2。
②根据阈值Tk将图像分割成两部分(目标和背景),并分别求出两部分的平均灰度值Zo和Zb。
③求出新的阈值Tk+1=(Zo+Zb)/2。
④如果Tk+1=Tk,运算结束,否则令k=k+1,跳
转到步骤2继续运算。
应用上述算法得到的二值化图像如图4(d)所示。
(a)原始指纹图像(b)归一化图像(c)指纹增强图像
(d)二值化图像(e)指纹细化图像(f)指纹特征点
图4指纹图像处理过程
P9
P2
P3
P8
P1
P4
P7
P6
P5
(4)指纹图像的细化
指纹图像的细化处理是为了减少所需处理的信息量,需
要把二值化图像转化成线宽仅为一个像素的线形图,以
便指纹特征点的提取。
本系统采用形态学细化算法比较
简单,并且可以较好的达到指纹细化的目的。
形态学细图53×3邻域图
化算法描述如下:
图像的每个3×3区域(3×3邻域图),
对各点标记为P1P2——P9,其中P1位于中心
(如图5所示)。
首先定义边界点的两个特征量——NZ和Z0:
其中,NZ表示待考察点相邻像素之和,Z0表示待考察点周围像素从0跳变到1的次数。
如果P1=1(即黑点),并且同时满足下面四个条件,则删除待考察点P1。
2≤NZ(P1)≤6
Z0(P1)=1
P2×P4×P8=0或Z0(P1)≠1
P2×P4×P6=0或Z0(P1)≠1
对图像中的每个点重复以上步骤,直到所有点都不可删除为止。
应用形态学细化后的图像如图4(e)所示。
4.1.2指纹特征点提取
指纹特征点信息应包括以下几个部分:
①特征点类型;②特征点坐标;③特征点的方向。
typedefstructFingerMinutia
{
fingerMinutiaTypetype;//特征点类型(端点、分歧点、核心点、三角点)
doublex;//特征点x轴坐标
doubley;//特征点y轴坐标
doubleangle;//特征点方向
}
FingerMinutia;
本系统采用一种基于交叉数的8邻域判定法来实现指纹特征点的提取,在图像中画出提取的特征点如图4(f)所示。
4.1.3特征点匹配
本系统采用FBI提出的指纹细节点坐标模型来实现细节匹配,它利用指纹脊线的端点和分歧点来鉴别指纹,将细节点表示为点模式,从而使指纹识别问题可以转化为点模式匹配问题。
匹配过程如图6所示。
输入点集
匹配结果
模板点集
图6特征点匹配过程
4.2通信部分
指纹系统通过标准的串口与外界通信,指纹模块与STC89C52RC单片机通过串口通信,单片机模块的控制信息由UP-MagicS3c2410处理器的GPIO口提供,UP-MagicS3c2410核心板对指纹采集系统进行相应的控制,处理,显示。
4.3控制部分
这一部分所需的控制信号主要是根据核心板的处理结果和用户的按键选择来产生的。
按键模块用于控制指纹系统工作方式,其中一个用于模式转换,另一个用于用户清空指纹库。
不同模式通过不同的led灯来指示,以提示用户系统的当前模式。
指纹录入结果用数码管显示出来,即每录入成功一个指纹,数码管将显示其录入ID号,且相应的灯会闪烁提示用户录入成功。
指纹识别结果以录入某一指纹时所对应的ID号为准,当再次录入某一指纹时,其前一次录入的指纹对应的ID号相应的显示出来,若没有相应的ID号显示,报警器报警,错误指示灯会闪烁。
对led灯、点阵LCD屏、蜂鸣器、数码管等的控制是通过把ARM核心板的相应引脚设置相应GPIO口,控制各个外围器件的信号的输入和控制信号的输出及显示。
第五章系统设计
5.1系统硬件设计
UP-MagicS3c2410是基于ARM体系结构,由北京博创兴业科技有限公司的UP-MagicS3c2410开发板,该认证板是采用SamsungS3c2410嵌入式微处理器,可运行Linux2.4.x和Linux2.6.x内核,支持QT/E、miniGUI等嵌入式图形界面。
开发平台兼容三星S3c2410核心CPU的全部功能,兼顾了ARM平台的发展趋势,完美地涵盖了博创科技ARM9系列平台的全部功能,力求精细化、实用化,是博创科技多年来嵌入式教学产品开发经验的结晶,故称:
博创“经典”平台。
开发平台说明图(图7)如下。
图7UP-CUPS2410开发平台说明图
作为UP-NetARM2410系列中经典的UP-Magic2410嵌入式开发平台,其CPU为ARM920T内核的三星S3c2410芯片,有良好的控制能力,系统稳定工作在202MHZ主频,实现了MMU、AMBA总线,拥有32MB的SDRAM和64MB的NandFlash(硬件可选更大容量),1个IO控制的LED,2MBNorFlash(可选)。
S3c2410芯片内部结构图(图8)见下。
图8S3c2410内部结构图
下面给出了我们在UP-MagicS3c2410嵌入式开发平台上选用的各个模块的硬件系统框图,见图9。
图9硬件系统架构图
5.2系统软件设计
5.2.1移植Linux
以ARM920T内核的三星S3c2410芯片,由于有MMU可以运行标准的ARM-LINUX内核。
采用Linux作为测试的目标,是因为它是遵循GPL协议的开发源代码的操作系统,使用时无需交纳许可费用。
内核可任意裁剪,几乎支持所有的32位、64位CPU;内核中支持的硬件种类繁多,几乎可以从网络上找到所有硬件驱动程序;支持几乎所有网络协议;有大量的应用程序可用,从编译工具、调试工具到GUI程序,几乎都有遵循GPL协议的相关版本;有庞大的开发人员群体,有数量众多的技术论坛,大多数问题都可以得到快速而免费的解答。
经过内核配置、内核编译、下载内核到开发板将ARMLINUX移植到UP-CUPS2410平台。
整个ARMLINUX内核的启动可分为三个阶段:
第一阶段主要是进行cpu和体系结构的检查、cpu本身的初始化以及页表的建立等;第二阶段主要是对系统中的一些基础设施进行初始化;最后则是更高层次的初始化,如根设备和外部设备的初始化。
ARMLINUX中包含的系统文件:
/linux-2.6.18.8/arch/arm/mach-s3c2410
[root@localhost mach-s3c2410]# tree -L 1.
|-- Kconfig
|-- Makefile
|-- Makefile.boot
|-- bast-irq.c
|-- bast.h
|-- clock.c
|-- clock.h
|-- common-smdk.c
|-- common-smdk.h
|-- cpu.c
|-- cpu.h
|-- devs.c
|-- devs.h
|-- dma.c
|-- gpio.c
|-- irq.c
|-- irq.h
|-- mach-anubis.c
|-- mach-smdk2410.c
|-- pm-simtec.c
|-- pm.c
|-- pm.h
|-- s3c2400-gpio.c
|-- s3c2400.h
|-- s3c2410-clock.c
|-- s3c2410-gpio.c
|-- s3c2410.c
|-- s3c2410.h
|-- sleep.S
|-- time.c
|-- usb-simtec.c
`-- usb-simtec.h
其中比较重要是如下几个:
linux/arch/arm/mach-s3c2410/cpu.c
linux/arch/arm/mach-s3c2410/common-smdk.c
linux/arch/arm/mach-s3c2410/devs.c
linux/arch/arm/mach-s3c2410/mach-smdk2410.c
linux/arch/arm/mach-s3c2410/Makefile.boot
linux/arch/arm/mach-s3c2410/s3c2410.c
程序内容不列。
5.2.2系统流程分析
操作系统作为各个硬件模块协同工作的桥梁,启动后以模块加载的方式加载指纹传感器的驱动程序,然后开始运行指纹识别软件。
对FM-180进行初始化,然后等待中断信号。
FM-180检测到有用户接触后,开始指纹图像的采集,由魔法师S3C2410处理器控制单片机模块实现指纹图像的预处理,提取特征值以及特征值的入库保存,指纹识别软件经由驱动程序得到指纹数字图像,然后进行图像处理并调用匹配算法进行识别处理。
软件流程图如图10所示。
否是
图10.指纹识别系统软件流程图
第六章系统测试
6.1测试设备条件
该系统对外界环境没有特殊要求,只需保持指纹采集模块处的干净即可顺利采集指纹。
该系统已经提供了所有的设备,无需外界设备的参与。
6.2功能测试及结果
功能描述
是否实现
键盘控制
是
指纹采集
是
指纹识别
是
结果显示
是
6.3整体测试及结果分析
图11指纹传感器
图12整体系统
进入识别模式:
进行指纹识别,识别成功后,点阵LCD显示结果如图13,图14所示:
图13识别成功的屏幕显示情况
图14识别成功的led灯显示情况
识别指纹非指纹库的指纹时的点阵LCD显示如图15所示。
图15指纹不符后的点阵LCD显示情
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 基于 魔法师 S3C2410 指纹识别 系统