云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于TMS320F2812的指纹识别系统设计

基于TMS320F2812的指纹识别系统设计

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 5:12:50

dd=fscanf(fid,'%x'); fclose(fid); ked=0;

enhancees finger(1:30400)=dd(6:30405); for i=0:199

enhance(i+1,97:152)=enhance finger(152*i+1:152*i+56); enhance(i+1,1:96)=enhance finger(152*i+57:152*i+152); end

figure;imshow(uint8(enhance))

3.3. 指纹识别算法设计 3.3.1. 特征点的属性结构

指纹图像中包含两种重要的特征,即反映纹线走向的全局特征和表征指纹唯一性的细节特征。全局结构特征:全局结构特征是指指纹的中心点和三角点,指纹中心点是中心部位脊线上曲率最大的点;三角点定义为三个方向脊线汇合处的点,全局结构特征主要用来进行指纹分类。在一个大的指纹识别系统中,这种分类并不是用来进行精确匹配,而是在一对多模式匹配的大型数据库中减少搜索量,减少查询匹配时间,因此指纹分类是一个很重要的数据库索引方法。按全局特征来对指纹分类,一般是分为五大类:弓型、左旋型、右旋型、螺旋型和斗蓬型。本文只是使用指纹的细节特征,这是因为嵌入式指纹识别模块一般只存储合法用户的指纹信息,模块存储空间有限,运算的实时性要求高,不可能提取所有的奇异点和细节特征点,所以本系统我们只提取末梢点和分叉点两种细节特征点,其属性结构就是x} y坐标,方向场dir和特征点类型kind。完整的数据结构如下: typedef struct{ short x, y, dir BYTE kind; MINUTIA;

3.3.2. 特征点提取

指纹特征点提取的核心函数如下:

BOOL ExtractFeature(BYTE *pImage,int cxDIB,int cyDIB,BYTE *pFeature) {

BYTE BoundBlock[MAXes BLOCK NUM]; char B1ockDir[MAX BLOCK NUM]; MPCANDVECT RealVect[1];

FEATUREVECT *pFP=(FEATUREVECT*)pFeature; if(cxDIB != IMG一 X日cyDIB!=IMGes Y)return FALSE;

if(CheckImage(pImage,cxDIB,cyDIB,BoundBlock)==FALSE)return FALSE;

11

ImageEnhance(pImage,cxDIB,cyDIB,BoundBlock,BIockDir); GetMinutia(pImage,cxDIB,cyDIB,BoundBlock,RealVect); Minutiaee PreFilter(RealVect,BoundBlock,BlockDir); Minutia Filter(RealVect,&pFP->Mp);

if ( pFP->Mp.nNumber

ExtractFeature函数中先调用CheckImage对指纹图像进行十字形中值滤波和求图像的边界,调用ImageEnhance对指纹图像进行预处理,采用Gabor滤波,然后调用GetMinutia采用脊线跟踪的方法找到特征点,调用Minutia PreFilter和Minutia Filter去除伪特征点,如果特征点的数目小于门限值MIN MINUTIA NUMBER(值为5)则返回FALSE,特征点提取失败,否则返回 TRUE,特征点提取成功。

十字形中值滤波、求图像的边界、Gabor滤波增强等都是预处理操作,下面分别介绍。 十字形中值滤波:顾名思义就是将与像素点相邻的上下左右四个像素点值相加除以四,取平均,得到的值即为该点的新的像素值。这样就能对指纹图像进行初步的平滑处理。

求图像的边界:一般来说,指纹前景区由黑白相间的纹理构成,纹理区域以外的区域为背景区域,因为指纹前景区域的灰度变化很大,而背景区域的灰度变化很小,几乎为0,根据指纹图像的这种特性,本文基于块图像的分割万法米用灰度万差的阂值化分割的原理,将指纹图像按照固定大小的尺寸分块,对每一小块图像,计算该区域的块灰度均值和灰度方差,如果某块的灰度方差大于设定的阂值,则将该块标识为前景,否则标识为背景。

3.4. 指纹登记

我们将指纹特征数据库存放在片外FLASH中,开始时外部FLASH并未格式化,所以在将指纹特征录入到指纹特征数据库时,应该先判断是不是第一次对FLASH进行写操作。首先定义如下结构:

//用于判断是否擦除flash芯片,规定当不等于OXAAAA时擦除 #define SIG ((volatile Uintl6 *)Ox80000) //指纹特征库,存放在外扩的sst39vfg00a-70中 #define FINGERBASE (volatile FEATUREVECT *)Ox80001

SIG地址定义在0x80000位置,此位置为外部FLASH的首地址,我们用SIG来判断是否是第一次对FLASH进行操作。因为FLASH未格式化时,地址内容为OXFFFF}肯定不为OXAAAA所以我们判断SIG值等不等于OXAAAA,如果相等则说明不是第一次对FLASH进行操作,如果不相等则说明是第一次对FLASH进行操作,需要调用flash erase函数擦除整个外扩FLASH芯片,然后对FLASH中SIG地址进行烧写,调用flash writes函数,将SIG烧写为OXAAAA。具体代码如下所示:

if((*SIG)!=OXAAAA) //第一次录入指纹则(*SIG) !=OXAAAA

12

if(flash erase(Ox80000,Ox10)) //擦除整个外扩flash芯片,擦除成功返回1 {//擦除成功则设置*SIG为OXAAAA flash writes((unsigned long)SIG,OXAAAA);

GpioDataRegs.GPADAT.bit.GPI0A0=0;//擦除成功则LEDO灯亮 delay loop();//延时

GpioDataRegs.GPADAT.bit.GPI0A0=1;//LEDO灯灭 } else {

GpioDataRegs.GPADAT.bit.GPI0A1=0;//擦除失败则LED 1灯亮 delay loop();//延时

GpioDataRegs.GPADAT.bit.GPIOA 1=1;//LED 1灯灭 } }

FLASH烧写数据具体实现函数如下所示:

/*FLASH写,addr:需要写FLASH的地址,data:写入FLASH的数据*/ void flashes writes(unsigned long addr,unsigned int data) {

*FLASH 5555= *FLASH 2AAA FLASHes ULl; =FLASHes UL2;

*FLASH 5555=FLASHes PROGRAM; *(unsigned int *)addr=data; while(*(unsigned int *)addr!=data); }

/*FLASH连续写,addr:需要写FLASH的地址,ptr:写入FLASH的数据指针,length: 写入FLASH的数据长度*/

void flash writem(unsigned long addr,unsigned int *ptr,unsigned long length) unsigned long i; for(i=0; i

flashes writes(addr+i,*(ptr+i)); } }

13

总结

本论文通过对指纹图像的特征提取和指纹匹配等影响识别率和识别速度的两个重要部分的算法进行研究和优化,采用先进的TMS320F2812芯片以及高性能FPC1011F指纹传感器芯片,开发出识别速度快、性价比高的嵌入式指纹自动识别系统,为进一步开发各种基于指纹识别技术的应用系统提供了重要技术支撑。 本论文主要做了以下几方面工作:

首先,基于TMS320F2812DSP芯片开发嵌入式指纹自动识别硬件模块:其次,通过指纹传感器FPC1011F实现指纹图像的采集,并用MATLAB进行数据处理,显示采集到的指纹图像;再次,对指纹特征点提取和指纹特征点比对算法进行研究和优化,验证算法是否正确,最后,因为代码在芯片内部SRAM中执行速度要快很多,所以在指纹识别模块上电运行时将部分核心指纹识别代码从芯片内部Flash中动态加载到芯片内部SRAM中,从而大幅度提高指纹特征点提取与匹配谏度。

随着科技的发展,更新型的处理器,性能更强的指纹传感器都会应运而生,在今后的开发设计中,我们要在硬件选型方面做进一步的研究,我们还要继续优化指纹识别算法,进一步降低指纹自动识别系统的错误拒绝率(FRR)和错误接受率(FAR),提高系统辨别速度。

针对具体的产品设计要求,部分功能模块需要做出调整,我们可以在该系统的基础上继续完善其他功能,如添加网络模块,液晶显示模块,继电器驱动模块等。系统设计的最终目的是应用,今后我们要加快产品化与产业化进程,使该指纹识别系统广泛应用于指纹门禁系统、指纹考勤系统、银行指纹储蓄系统及指纹保管箱、指纹医疗保险系统、证券交易指纹系统、驾驶员指纹管理系统等。

14

参考文献

[1].尹义龙,宁新宝,张晓梅.自动指纹识别技术的发展与应用[[J],南京大学学报,2002,3 8(1):29-3 5

[2].尹义龙.自动指纹识别系统研究[M],长春:吉林工业大学出版社,200,256-261

[3].赵娟,王典洪.基于DSP的指纹识别系统原理及应用[[J],安徽电气工程职业技术学院学报,2004,38(3):29-38

[4].张堂辉,田捷,刘旭.基于DSP指纹识别核心算法的设计与实现[[J],计算机工程与应用,2003,16(5):25-27

[5].詹小四,宁新宝,尹义龙等.多级分块尺寸下的指纹方向信息提取算法[[J),南京大学学报(自然科学),2003,39(4):476-482

[6].谭台哲,宁新宝,尹义龙等一种基于指纹中心点的匹配算法[[J],南京大学学报(自然科学),2003,39(4):483-490

[7].吴建明,施鹏飞一种基于方向场和细节特征匹配的指纹识别方法[[J],计算机工程与应用,2003,39(2):91-93

[8].杨小冬,宁新宝,谭台哲.自动指纹识别系统图像分割算法的研究[[J],南京大学学报,2004,40(4):91-93

[9].李建华,马小妹,郭成安.基于方向图的动态阂值指纹图像二值化方法[[}],大连理工大学学报,2002,42(5):626-628

[10].张洪光,刘雪梅.指纹识别中的一种局部向量匹配算法[[J],计算机工程,2002,28(4):106-108

[11].简兵,庄镇泉,李军一种新颖的指纹细节提取算法[[J],第六届国际青年计算机工作者会议暨第二届生物特征识别研讨会,2001,28(4):7-13

[12].苏彦华.Visual C++数字图像识别技术典型案例[M].北京:人民邮电出版社,2004,177-195 [13].夏德深,傅德胜.现代图像处理技术与应用[M].北京:东南大学出版社,1997,12-13 [14].韩伟红,黄子中,王志英,沈清.微机上的指纹自动识别系统[[J],微计算机应用,1996,17 (5):11-15

[15].漆远,田捷,邓翔.基于遗传算法的指纹图匹配算法及应用[J],软件学报,2000,11(4):

15

搜索更多关于: 基于TMS320F2812的指纹识别系统设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

dd=fscanf(fid,'%x'); fclose(fid); ked=0; enhancees finger(1:30400)=dd(6:30405); for i=0:199 enhance(i+1,97:152)=enhance finger(152*i+1:152*i+56); enhance(i+1,1:96)=enhance finger(152*i+57:152*i+152); end figure;imshow(uint8(enhance)) 3.3. 指纹识别算法设计 3.3.1. 特征点的属性结构 指纹图像中包含两种重要的特征,即反映纹线走向的全局特征和表征指纹唯一性的细节特征。全局结构特征:全局结构特征是指指纹的中心点和三角点,指纹中心点是中心部位脊线上曲率最大的点;三角点定义为三

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com