指纹识别预处理
发布网友
发布时间:2022-04-22 05:51
我来回答
共1个回答
热心网友
时间:2023-11-04 04:38
介绍了采用TI公司的高速DSP芯片TMS320VC5402的指纹识别系统的预处理算法和编程实现。算法实现采用的DSP集成开发环境(IDE)为CCS 2.2。通过采用极值滤波、平滑滤波、拉普拉斯锐化、二值化等对指纹图像进行预处理,取得了良好的试验结果。
利用生物认证技术取代传统的使用钥匙、身份证、密码等方法进行个人身份鉴定,可广泛应用于银行、机场、*等领域的出入管理。将信息技术与生物技术相结合的生物认证技术是本世纪最有发展潜力的技术之一,而指纹识别技术则是其中非常有前景的一种。
数字信号处理器(DSP)是指以数值计算的方法对数字信号进行处理的芯片。它具有处理速度快、灵活、精确、抗干扰能力强、体积小、使用方便等优点。DSP应用于指纹识别已经成为一个新的科技领域和独立的学科体系,当前已形成了有潜力的产业和市场。
本文选定100MHz DSP TMS320VC5402作为指纹信号的处理器,利用其流水线编码的操作特点,并结合指纹识别技术,实现基于DSP CCS2.2的指纹识别预处理系统。CCS 2.2(Code Composer Studio)是一种针对标准TMS320调试接口的集成开发环境(IDE),由TI公司于1999年推出。指纹识别的处理流程如图1所示。
指纹处理过程可分为三个阶段:
(1) 获取原始指纹图像,进行预处理;
(2) 提取指纹特征点;
(3) 指纹识别分析判断。
在上述三个阶段中,指纹图像的预处理阶段尤为重要,该阶段对图像处理的好坏直接关系到后面两个阶段工作的开展。本文结合TMS320VC5402的特点,重点研究指纹识别的预处理算法及其DSP实现问题,其中包括指纹的极值滤波、平滑滤波、拉普拉斯锐化、迭代二值化和该算法在DSP开发平台CCS2.2的C5000上的仿真实现。这一问题的解决,可为未来指纹识别系统的脱机应用提供很有价值的参考。
1 指纹识别预处理算法
指纹识别预处理的目的是使指纹图像更清晰,边缘更明显,以便提取指纹的特征点进行识别。本文采取极值滤波和改进的平滑滤波进行噪声消除,使图像不失真;采取拉普拉斯锐化对指纹进行纹线增强,突出边缘信息,为自适应阀值的迭代二值化提供方便。
1.1 极值滤波
解梅、马争[1]认为极值滤波器的设计是基于这样一种理念:在指纹图像的采集过程中,指纹图像所受到的冲击性噪声表现为一些斑点或亮点。在一般情况下,可以认为绝大数冲击性噪声是被真实的灰度值所包围。同时噪声污染的像素要远远小于真实灰度值的像素。因此在噪声的消除过程中,无需对大多数没有被噪声污染的像素进行改变处理,只需对那些被污染的像素进行“真实值”代替处理,而这些值的确定可通过图像像素邻域的相关性来确定。
指纹处理过程可分为三个阶段:
(1) 获取原始指纹图像,进行预处理;
(2) 提取指纹特征点;
(3) 指纹识别分析判断。
在上述三个阶段中,指纹图像的预处理阶段尤为重要,该阶段对图像处理的好坏直接关系到后面两个阶段工作的开展。本文结合TMS320VC5402的特点,重点研究指纹识别的预处理算法及其DSP实现问题,其中包括指纹的极值滤波、平滑滤波、拉普拉斯锐化、迭代二值化和该算法在DSP开发平台CCS2.2的C5000上的仿真实现。这一问题的解决,可为未来指纹识别系统的脱机应用提供很有价值的参考。
1 指纹识别预处理算法
指纹识别预处理的目的是使指纹图像更清晰,边缘更明显,以便提取指纹的特征点进行识别。本文采取极值滤波和改进的平滑滤波进行噪声消除,使图像不失真;采取拉普拉斯锐化对指纹进行纹线增强,突出边缘信息,为自适应阀值的迭代二值化提供方便。
1.1 极值滤波
解梅、马争[1]认为极值滤波器的设计是基于这样一种理念:在指纹图像的采集过程中,指纹图像所受到的冲击性噪声表现为一些斑点或亮点。在一般情况下,可以认为绝大数冲击性噪声是被真实的灰度值所包围。同时噪声污染的像素要远远小于真实灰度值的像素。因此在噪声的消除过程中,无需对大多数没有被噪声污染的像素进行改变处理,只需对那些被污染的像素进行“真实值”代替处理,而这些值的确定可通过图像像素邻域的相关性来确定。
设有一待处理器像素为s0,其周围8邻域像素排列为
取邻域相关像素的均值为Ai,i∈{1,2,...8},并以四个像素为一组处理单元,则改进的极值滤波[1]算法可表述如下:
如果A0>max(Ai),i∈{1,2,...8},则
如果A0 < min(Ai), i∈{1,2,...8}, 则
s1=s2=s4=s0=min(A1,A2,A4)
s2=s3=s5=s0=min(A2,A3,A5)
s4=s6=s7=s0=min(A4,A6,A7) (3)
s5=s7=s8=s0=min(A5,A7,A8)
如果min(Ai)≤Ai≤max(Ai),i∈{1,2,...8},则将像素原值输出,不作处理。
实验结果表明,该方法能得到与中值滤波类似的效果,达到了初步去除噪声的目的。
1.2 平滑滤波
经过上面的极值滤波处理之后,图像传输过程中所形成的大多数冲击性噪声均被除去,但指纹图像中还存在着随机噪声,需进一步对图像进行平滑处理。本文采取两次平滑滤波,一次是在极值滤波之后,一次是在锐化滤波之后。改进的平滑卷积核为
系数取1/15而非原来的1/17的原因在于提高图像的对比度;而卷积核中心像素加权系数取为5是为了突出该点像素。实验结果表明,该改进是可行的,有利于突出中心像素并有效去除随机噪声。
1.3 锐化滤波
对于由于积分运算所造成的模糊图像,有必要对其模糊进行校正,进而增强指纹图像的边界。具体做法为增强指纹脊线与谷的对比度。这种增强指纹图像的高频成分,使其边缘清晰的方法称为锐化。因此,锐化的目的在于使经过平均或积分运算后变得模糊的图像的边缘和轮廓变得清晰,并使细节清晰[2]。在本文中,锐化卷积核采用拉普拉斯算子[3]:
通过该卷积核对图像进行卷积预算,能实现高通滤波,进而得到锐化后的指纹脊线。
1.4 迭代阀值二值化
指纹图像经过极值滤波、平滑滤波、拉普拉斯锐化滤波、平滑滤波后,大多数噪声都已被消除,这就为特征点提取提供了基础。为了提取特征点,需对指纹图像进行分割。本文采取迭代阀值的方法对指纹图像进行阀值分割。在图像处理中,反复地用一种运算直至条件满足而得到输出图像的方法称为迭代。迭代阀值方法如下:
①设定初始灰度阀值T(如令T=127),把指纹图像的灰度值分为两组R1和R2。
②计算两组的平均灰度值u1和u2。
③重新设定新的灰度阀值T。新的T定义为:T=(u1+u2)/2。
④依据新的T对指纹图像进行阀值分割。
这种方法是以自适应的阀值对指纹图像进行二值化处理。实验结果表明,该方法比设定固定阀值进行处理更有普遍意义,且行之有效。
2 指纹图像在CCS 2.2上的输入与输出
在设计中,采用DSP集成开发环境CCS2.2对指纹识别算法进行模拟验证。用指纹成像系统采集一幅*bmp格式指纹图像,如finger.bmp指纹图像。在该指纹图像的数据上面添加一个COFF文件的文件头。以文件名finger.out保存。*.out文件为TI的公共目标文件。利用CCS中的File-Load Data 可以将finger.out的指纹图像放到DSP的相应内存中去,本次设计中将finger.out存放于DSP的数据存储空间。利用CCS中的Image菜单,通过设置相关选项可以观察处理前的图像与处理后的图像。
3 实际指纹图像预处理效果
依据上述指纹识别预处理算法,通过CCS2.2的模拟功能,实现了指纹识别预处理的DSP处理,达到了DSP处理指纹图像的应用目的。结果如图2所示。
图2 实际指纹预处理结果
本文针对TMS320VC5402 DSP的快速、高效的特点,采取了DSP集成开发环境CCS2.2对指纹图像进行预处理。在指纹的预处理中,由于DSP具有10ns指令周期,使采用改进的极值滤波和改进的卷积核平滑滤波对指纹图像进行一次、二次平滑实时处理成为可能。实验结果表明,该方法能有效地处理指纹图像的冲击性噪声和随机噪声。而迭代二值化的运算充分利用了DSP 五级流水线操作,达到了利用DSP对指纹图像进行预处理的应用目的。