一种基于Cortex-M3内核的嵌入式指纹识别系统的制作方法

文档序号:10512669阅读:198来源:国知局
一种基于Cortex-M3内核的嵌入式指纹识别系统的制作方法
【专利摘要】本发明提供了一种基于Cortex?M3内核的嵌入式指纹识别系统,其特征在于,在基于Cortex?M3内核的微处理器及指纹传感器的基础上构建集指纹采集及指纹处理于一身的单机系统,该单机系统采用指纹识别算法。本发明提供的一种嵌入式指纹识别系统不仅实现了小型化,而且指纹匹配的速度快、准确率高。
【专利说明】
一种基于CorteX-M3内核的嵌入式指纹识别系统
技术领域
[0001 ]本发明涉及一种嵌入式指纹识别系统。
【背景技术】
[0002] 随着信息化时代的到来,指纹自动识别系统在身份认证方面有着较为广阔的应用 前景。目前来看,自动指纹识别系统一般是采用联机方式,用指纹传感器来采集用户信息, 以计算机(PC)作为主机来处理数据并进行实时匹配。上述自动指纹识别系统的缺陷在于需 要占用较大空间,不利于在例如防盗门、汽车门、公司考勤等类似场合实现嵌入。

【发明内容】

[0003] 本发明的目的是提供一种嵌入式指纹识别系统。
[0004] 为了达到上述目的,本发明的技术方案是提供了一种基于C〇rteX-M3内核的嵌入 式指纹识别系统,其特征在于,在基于Cortex-M3内核的微处理器及指纹传感器的基础上构 建集指纹采集及指纹处理于一身的单机系统,该单机系统所采用的指纹识别算法包括如下 步骤:
[0005] 步骤1、图像分隔:对原始指纹图像进行背景分离,消除原始指纹图像中的背景区 域,得到指纹图像F(x,y);
[0006] 步骤2、平滑处理:采用线性灰度变换法对指纹图像F(x,y)进行处理,提高指纹图 像的脊线与谷线的对比度,随后规格化处理后的指纹图像,得到规格化图像N(x,y);
[0007] 步骤3、二值化:采用动态自适应阈值法对规格化图像N(x,y)进行二值化,得到二 值化图像R(x,y);
[0008] 步骤4、特征点提取:
[0009] 计算二值化图像R(x,y)中每个点的交叉数及8邻域纹线点数,根据交叉数及8邻域 纹线点数的值判断当前点是否为端点或分叉点,若是,则当前点为特征点,记录该特征点的 坐标、类型及角度作为该特征点的值,对于二值化图像R(x,y)中的点P而言,点P的交叉数及 8邻域纹线点数分别为C(p)及S(p),则有:
[0011]
,式中,分别为点P的第i个及第i+Ι个邻域纹线点的灰度值;
[0012] 若C(p) = l,且S(p) = l,则点p为端点;若C(p)=2,且S(p) = 2、3、4,则点p为连续 点;若C( p) = 3,且S (p) = 3,则点p为分叉点;
[0013] 若点P为端点或分叉点,贝IJ点P为第j个特征点Hj,Hj = (Xj,yj,t j,aj),Xj,yj为点p的 坐标,t j表示点p的类型,若点p为端点,则t j = 1,若点p为分叉点,则t j = 2,
,X,Y表示搜索到的最后的特征点的坐标,从而得到与步骤1中原始指纹图 像相对应的特征点集H= (?,H2,…,Hj,…);
[0014] 步骤5、指纹匹配:利用特征点集!1=(出,!12,-_,出,-_)与指纹库中的指纹数据进行 对比,从而完成指纹识别。
[0015] 优选地,所述步骤1包括:
[0016] 步骤1.1、对原始指纹图像进行归一化处理,原始指纹图像中点(i,j)的灰度值为I (i,j),归一化后的灰度值为G( i,j),则有:
[0017]
式中,Mo和Vo分别为期望的均值和方 差,Μ为指纹图像的理论均值,MdPVi分别为原始指纹图像的实际均值和实际方差;
[0018] 步骤1.2、对归一化后的原始指纹图像进行分块,将其分为8X8的小块,如果是背 景区域,其灰度的方差较小,而前景区的指纹图像区域的方差较大,所以对每个小块求其方 差,再设定一个阈值,小于阈值的方块区域设置为背景区域,将其灰度值设定为255,而大于 阈值的区域的灰度值保持不变,从而可以将指纹图像区域从背景区域很好地分离,得到指 纹图像F(x,y)。
[0019] 优选地,所述步骤2包括:
[0020] 步骤2.1、利用线性灰度变化法将指纹图像F( X,y)亮度分量的线性范围从[m,M]变 化到[n,N]后得到图像g(x,y),则有:
[0022] 步骤2.2、图像g(x,y)经过规格化后得到规格化图像N(x,y),则有:
[0023]
,式中,Mo和V〇分别为期望的均值和 方差,Μ和Var分别为指纹图像的理论均值和方差。
[0024]优选地,所述步骤3包括:
[0025] 步骤3.1、计算规格化图像N(x,y)中每个点的灰度值的阈值;
[0026] 设规格化图像N (X,y)中点(i,j)处的灰度值n (i,j)的阈值v i (i,j)是以点(i,j)为 中心的指纹图像窗口( 21+1) X (21+1)中所有点的灰度值来确定,1为正整数,有:
[0027]
1为规格化图像N( X,y)中点(X,y)处的灰度值;
[0028]再利用预先设定的参数δ及参考阈值vd#vi(i,j)进行修正,得到修正后的规格化 图像N(x,y)中点(i,j)处的灰度值n( i,j)的阈值V( i,j),则有:
[0030]步骤3.2、求得二值化图像R (x,y),二值化图像R(x,y)中点(x,y)的值为r (x,y),贝lj
>式中,V(x,y)为通过步骤3.1求得的点(x,y)处的灰度值n(x, y)的阈值。
[0031] 本发明提供的一种嵌入式指纹识别系统不仅实现了小型化,而且指纹匹配的速度 快、准确率高。
【附图说明】
[0032] 图1为指纹识别系统框图;
[0033] 图2为指纹采集设计流程框图;
[0034] 图3为指纹识别的具体流程框图;
[0035]图4为指纹采集处理实验结果。
【具体实施方式】
[0036] 为使本发明更明显易懂,兹以优选实施例,并配合附图作详细说明如下。
[0037] 本发明提供了一种基于C〇rteX-M3内核的嵌入式的指纹识别系统,其是把采集和 处理集于一身的单机系统。该系统体积小、可移植,很适合用于防盗门、高档的汽车门以及 公司考勤系统等嵌入式场合。
[0038] 如图1所示的本发明的硬件部分基于ARM公司旗下的C〇rteX-M3内核处理器,该处 理器是一款高性能、低功耗的32位RISC芯片。本发明选用意法半导体ST公司的基于Cortex-M3核的STM32F103ZET6作为嵌入式指纹系统的主处理芯片。
[0039] 1、STM32F103ZET6 介绍
[0040] 意法半导体公司(ST)生产的基于Cortex-M3核的STM32F103ZET6是一款低价格、高 性能的32位微处理器。它的高集成度使得用户可以节省系统成本和提高系统性能。CPU最高 72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz,同时支持单周期乘法和 硬件除法。存储器采用256K至512K字节的闪存程序存储器,同时具有高达64K字节的SRAM、4 个片选的静态存储器控制器、支持CF卡、SRAM、PSRAM、N0R和NAND存储器,采用并行LCD接口, 兼容8080/6800模式。低功耗,具有睡眠、停机和待机模式,含有VBAT为RTC和后备寄存器供 电。此外其具有3个12位模数转换器,lys转换时间(多达21个输入通道),转换范围从0至 3.6V,且三倍采样和保持功能,还自带温度传感器以及2通道12位D/A转换器和12通道DMA控 制器。
[0041] 2、指纹传感器
[0042] FPS200是Veridicom公司推出的第三代半导体指纹传感器。它是在吸收了已广泛 应用的FPS110系列传感器优点的基础上,全新推出的新一代指纹传感器。FPS200在性能、尺 寸、集成方便度等指标上建立了 一套新的标准,是Veridicom半导体指纹传感器家族中重要 的新成员。其特性如下:采用电容式固态设备,大小为1.28cm X 1.50cm,像素为256 X 300,电 源采用3.3-5V,内部集成了8位模数转换器,支持三种总线接口,集成了USB全速接口以及外 围SPI串行接口,采用了标准的CMOS工艺,低功耗,5V供电下仅仅为70mW,具有自动指纹检测 功能。
[0043] 3、RS_232 串口
[0044] 虽然本发明是可独立运行的自动指纹识别系统,但为了能灵活运用该系统,扩展 了与PC机的通信功能,因此在芯片外围拓展了RS-232串口。STM32F103ZET6的UART (Universal Asynchronous Receiver and Trans-mitter)模块提供了两路独立的通道,可 以工作在中断模式或DMA模式下。其共包含了3路有效的可复用的串口,同时每个通道包含 二个32位的收、发FIFO,可大大提高通信效率。
[0045] 本发明的软件部分包括了指纹采集程序设计及指纹算法设计。
[0046] 1、指纹采集程序设计
[0047] 程序设计关键是通过编程来实现串口通信模式下STM32与指纹传感器FPS200的通 信过程,其中指纹采集程序流程图如图2所示。
[0048] FPS200共有19个寄存器,用来控制指纹数据采集过程中的状态和行为,以下介绍 几个重要的寄存器的相关初始化:初始化CTRLB寄存器,使能芯片的ENABLE位使其处于工作 状态,XTALSE位选择内部12M晶振,同时使能指纹自动检测,通过判断RDY位的状态决定指纹 图像数据的读取。初始CTRLA寄存器,此处可以选择GETR0W、GEHMG和GETSUB这3种存取模式 的1种作为存取模式,通过给CTRLA写入0x02,便可以选择GEHMG模式来获取整幅图像。初始 化DTR、DCR和PGC等寄存器,它们影响采集图片的质量,DTR是放电时间寄存器,影响着图像 背景亮暗程度;DCR是电容放电寄存器,对图像的前景区和背景区的亮暗程度有一定影响; PGC是可编程增益寄存器,对图片的前景和背景的影响较大。
[0049] 2、指纹算法设计
[0050] 指纹识别算法是指纹识别过程中重要的部分,算法的好坏直接决定指纹识别的精 确性和可靠性。该算法的3个重要部分是指纹图像预处理、特征点提取和特征匹配。指纹预 处理主要包括图像分割、平滑、二值化等部分。下面结合图3对各部分作简要介绍。
[0051 ]第一步、图像分割
[0052]由于获得的原始指纹图像中,指纹图像区域跟其背景区域相混合,所以需要对原 始指纹图像进行背景分离。对原始指纹图像进行分割处理,消除剩下的背景区域,包括以下 步骤:
[0053]步骤1.1、先对初步处理后的原始指纹图像进行归一化处理,在此利用公式(1)。原 始指纹图像中点(i,j)的灰度值为K i,j),归一化后的灰度值为G( i,j),则有:
[0055] 式(1)中,Mo和Vo分别为期望的均值和方差,Μ为指纹图像的理论均值,MjPVi分别 为原始指纹图像的实际均值和实际方差。
[0056] 步骤1.2、对归一化后的原始指纹图像进行分块,将其分为8X8的小块,如果是背 景区域,其灰度的方差较小,而前景区的指纹图像区域的方差较大,所以对每个小块求其方 差,再设定一个阈值,小于阈值的方块区域设置为背景区域,将其灰度值设定为255,而大于 阈值的区域的灰度值保持不变,从而可以将指纹图像区域从背景区域很好地分离,得到指 纹图像F(x,y)。
[0057] 第二步、平滑处理
[0058] 图像增强的方法分空域法和频域法,本发明采用空域法,空域法是增强图像的像 素,空域处理可用式(2)定义:
[0059] g(x,y)=T(F(x,y)) (2)
[0060] 式(2)中,T〇是灰度变换函数,g(x,y)为处理后的图像。
[0061 ]公式(2)中采用线性灰度变换法,则指纹图像F( X,y)亮度分量的线性范围从[m,M] 变化到[n,N],图像g(x,y)可以用公式(3)表示:
[0063] 采用线性灰度变换法可以提高指纹图像脊线与谷线的对比度。
[0064] 图像g(x,y)经过规格化后,才能将该图的均值和方差控制在给定范围内,则有公 式(4),则有:
[0066]式(4)中,N(x,y)为规格化图像,Var为指纹图像的理论方差。
[0067] 第三步、二值化
[0068] 对于指纹识别系统,有用的信息包含在脊线和谷线的二值描述中.因而必须根据 原始的灰度图像来确定图像上的每一个点应属于客体区域还是背景区域,从而产生对应的 二值图像,它不仅可大大减少存储量,还可以根据指纹的形状将指纹分类,这样可以大大提 高指纹识别的速度。在基于模糊集理论的增强算法基础上提出广义度阈点的方法。阈值的 正确选择在二值化中是很重要的,直接影响着分割的精度及图像描述分析的正确性。本发 明采用动态自适应阈值进行二值化,包括以下步骤
[0069] 步骤3.1、计算规格化图像N(x,y)中每个点的灰度值的阈值;
[0070] 设规格化图像N(X,y)中点(i,j)处的灰度值n (i,j)的阈值V1 (i,j)是以点(i,j)为 中心的指纹图像窗口(21+1) X (21+1)中所有点的灰度值来确定,1为正整数,有公式(5):
[0072]公式(5)中,n(x,y)为规格化图像N(x,y)中点(x,y)处的灰度值;
[0073]再利用预先设定的参数δ及参考阈值vd#V1(i,j)进行修正,得到修正后的规格化 图像N(x,y)中点(i,j)处的灰度值n( i,j)的阈值V( i,j),则有公式(6):
[0075]步骤3.2、求得二值化图像R (x,y),二值化图像R(x,y)中点(x,y)的值为r (x,y),贝lj 有公式(7):
[0077]式(7)中,V(x,y)为通过步骤3.1求得的点(x,y)处的灰度值n(x,y)的阈值。
[0078] 第四步、特征点的提取
[0079] 指纹图像特征提取的方法有两种:(1)从指纹的原灰度图像上识别细节特征;(2) 从指纹的细化图像上识别细节特征。本发明采用这两种主要特征构造指纹特征向量。它的 提取方法为:
[0080] 计算二值化图像R(X,y)中每个点的交叉数及8邻域纹线点数,根据交叉数及8邻域 纹线点数的值判断当前点是否为端点或分叉点,若是,则当前点为特征点,记录该特征点的 坐标、类型及角度作为该特征点的值,对于二值化图像R(x,y)中的点P而言,点P的交叉数及 8邻域纹线点数分别为C(p)及S(p),则公式(8)及公式(9):
[0083]式(8)及式(9)中,Pi及Pi+汾别为点p的第i个及第i+Ι个邻域纹线点的灰度值。 [0084]若C(p) = l,且S(p) = l,则点p为端点;若C(p)=2,且S(p) = 2、3、4,则点p为连续 点;若C( p) = 3,且S (p) = 3,则点p为分叉点;
[0085]若点p为端点或分叉点,则点p为第j个特征点Hj,Hj = (Xj,yj,t j,aj),Xj,yj为点p的 坐标,t j表示点p的类型,若点p为端点,则t j = 1,若点p为分叉点,则t j = 2,
〇(,Y表示搜索到的最后的特征点的坐标,从而得到与步骤1中原始指纹图 像相对应的特征点集H= (?,Η2,…,Hj,…)。
[0086] 第五步、指纹匹配
[0087]利用特征点集!1=(出,!12,'",出,'")与指纹库中的指纹数据进行对比,从而完成指 纹识别。目前来看,指纹匹配最常使用的方法是利用细节点坐标模型来做细节匹配。首先, 由于输入的指纹存在旋转、平移等变形,要找到待判定的指纹与模板库中指纹的参考点;其 次,把这两个参考点分别作为两幅图像的极坐标原点,对当前需要判定的指纹的一个特征 点求得其极坐标,在球的模板库中的档期指纹在该极坐标位置是否有相同类型的特征点, 如有,则认为两特征点匹配;最后,看总的匹配数目是否大于一定的阈值,如果是,则两幅指 纹图像匹配,否则,指纹图像不匹配。
[0088] 将通过本发明采集到的数据经过VC环境下进行预处理,如图4所示,从左到右依次 是:未经处理灰度化的原始图像、经过二值化后的图像、经过修复后的细化图像。由此可以 看出,最终得到的细化图像保持了原始图像的基本特征,满足提取的要求。
【主权项】
1. 一种基于Cortex-M3内核的嵌入式指纹识别系统,其特征在于,在基于Cortex-M3内 核的微处理器及指纹传感器的基础上构建集指纹采集及指纹处理于一身的单机系统,该单 机系统所采用的指纹识别算法包括如下步骤: 步骤1、图像分隔:对原始指纹图像进行背景分离,消除原始指纹图像中的背景区域,得 到指纹图像F(x,y); 步骤2、平滑处理:采用线性灰度变换法对指纹图像F(x,y)进行处理,提高指纹图像的 脊线与谷线的对比度,随后规格化处理后的指纹图像,得到规格化图像N(x,y); 步骤3、二值化:采用动态自适应阈值法对规格化图像N(x,y)进行二值化,得到二值化 图像 R(x,y); 步骤4、特征点提取: 计算二值化图像R(x,y)中每个点的交叉数及8邻域纹线点数,根据交叉数及8邻域纹线 点数的值判断当前点是否为端点或分叉点,若是,则当前点为特征点,记录该特征点的坐 标、类型及角度作为该特征点的值,对于二值化图像R(x,y)中的点P而言,点P的交叉数及8 邻域纹线点数分别为C(p)及S(p),则有:C 5式中,pIPi+1分别为点P的第i个及第i+1个邻域纹线点的灰度值; ?'-? 若C(p) = l,且S(p) = l,则点ρ为端点;若C(p) = 2,且5(?) = 2、3、4,则点?为连续点;若0 (口)=3,且5(口)=3,则点口为分叉点; 若点P为端点或分叉点,则点P为第j个特征点Hj,Hj = (Xj,yj,t j,aj),Xj,yj为点p的坐标, t j表示点p的类型,若点p为端点,则t j = 1,若点p为分叉点,则t j = 2【,Y 表示搜索到的最后的特征点的坐标,从而得到与步骤1中原始指纹图像相对应的特征点集Η = (Hi,H2,···,Hi,···); 步骤5、指纹匹配:利用特征点集HimhHs,···,^,…)与指纹库中的指纹数据进行对 比,从而完成指纹识别。2. 如权利要求1所述的一种基于C〇rteX-M3内核的嵌入式指纹识别系统,其特征在于, 所述步骤1包括: 步骤1.1、对原始指纹图像进行归一化处理,原始指纹图像中点(i,j)的灰度值为I(i, j),归一化后的灰度值为G(i,j),则有:i 试中,Mo和Vo分别为期望的均值和方差, i Μ为指纹图像的理论均值,MdPW分别为原始指纹图像的实际均值和实际方差; 步骤1.2、对归一化后的原始指纹图像进行分块,将其分为8X8的小块,如果是背景区 域,其灰度的方差较小,而前景区的指纹图像区域的方差较大,所以对每个小块求其方差, 再设定一个阈值,小于阈值的方块区域设置为背景区域,将其灰度值设定为255,而大于阈 值的区域的灰度值保持不变,从而可以将指纹图像区域从背景区域很好地分离,得到指纹 图像 F(x,y)。3. 如权利要求1所述的一种基于Cortex-M3内核的嵌入式指纹识别系统,其特征在于, 所述步骤2包括: 步骤2.1、利用线性灰度变化法将指纹图像F (X,y)亮度分量的线性范围从[m,M]变化到 [n,N]后得到图像g(x,y),则有:步骤2.2、图像g(x,y)经过规格化后得到规格化图像N(x,y),则有:式中,Mo和V〇分别为期望的均值和方 差,Μ和Var分别为指纹图像的理论均值和方差。4. 如权利要求1所述的一种基于Cortex-M3内核的嵌入式指纹识别系统,其特征在于, 所述步骤3包括: 步骤3.1、计算规格化图像N(x,y)中每个点的灰度值的阈值; 设规格化图像N(x,y)中点(i,j)处的灰度值n(i,j)的阈值V1(i,j)是以点(i,j)为中心 的指纹图像窗口( 21+1) X (21+1)中所有点的灰度值来确定,1为正整数,有::!<n(x,y)为规格化图像N(x,y)中点(x,y)处的灰度值; 再利用预先设定的参数S及参考阈值vdiV1(i,j)进行修正,得到修正后的规格化图像N (X,y)中点(i,j)处的灰度值n(i,j)的阈值V(i,j),则有:步骤3.2、求得二值化图像R(x,y),二值化图像R(x,y)中点(x,y)的值为r (x,y),贝lj有:中,V(x,y)为通过步骤3.1求得的点(x,y)处的灰度值n(x,y) 的阈值。
【文档编号】G06K9/00GK105868698SQ201610177141
【公开日】2016年8月17日
【申请日】2016年3月25日
【发明人】周琳, 周武能
【申请人】东华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1