利用生物识别技术进行个人身份鉴定,取代传统的使用钥匙、身份证、密码等方法,可广泛应用于银行、机场、公安等领域的出入管理。因此生物识别技术将信息技术与生物技术相结合是本世纪拥有发展潜力技术之一,而指纹识别是其中非常有前景的一种。国外在这方面起步较早,而国内对指纹自动识别系统研究较晚。最近随着识别算法 的提高和DSP(数字信号处理器)芯片性能的改进,使得以指纹为生物特征的身份鉴定系统得到快速发展,但是真正应用于嵌入式的指纹系统国内还是空白。为此,需要研究开发拥有自主知识产权的嵌入式指纹识别系统。
DSP是指利用专用或通用的数字信号处理芯片,以数字计算的方法对信号进行处理。它具有处理速度快,灵活, ,抗干扰能力强,体积小等优点。DSP已经成为一个新的技术领域和独立的学科体系,并使当前的指纹技术研究向更广泛的应用领域发展。结合研究应用的实际情况,本文选定了100MHzDSP并利用其流水线编码的操作特点结合指纹识别技术,提出了基于TMS320VC5410CCS2.2实现指纹成像系统的预处理研究。CCS2.2(CodeComposerStudio)代码调试器是一种针对标准TMS320调试接口的开发环境IDE(IntegratedDevelopmentEnvironment),由TI公司在1999年推出。指纹识别的流程如图1所示。对于TMS320VC5410指纹识别处理系统来说,可以将指纹处理过程分为3个阶段:
1)获取原始指纹图像后,进行预处理阶段;
2)指纹特征点提取阶段;
3)指纹识别分析判断阶段。
在上述3个阶段中,指纹图像的预处理阶段尤为重要,该阶段对图像处理的好坏直接关系到后面2个阶段工作的开展。由于整个指纹识别系统的复杂性,本文结合TMS320VC5410的特点,重点研究了指纹识别的预处理算法及其DSP实现问题。其中了包括指纹的极值滤波、平滑滤波、拉普拉斯锐化、迭代二值化。该部分算法的在DSP开发平台CCS2.2的C5000上仿真实现并用C5000EVM进行了评估,为未来指纹系统的脱机应用提供很有价值的参考。
图1指纹处理的系统流程
指纹识别算法的软件仿真与DSP编程实现
指纹识别预处理算法的构成
指纹预处理的目的是使得指纹图像更清晰,边缘明显,以便提取指纹的特征点进行识别,其中包括了指纹的平滑、锐化、二值化等等。本文中采取了极值滤波,改进的平滑滤波进行噪声消除,而不使图像失真;采取拉普拉氏锐化对指纹进行纹线增强,突出边缘信息,为自适应阀值的迭代二值化提供方便。
极值滤波
极值滤波器的设计是基于这样一种理念:由于在指纹图像的采集过程中,指纹图像所受到的冲击性噪声表现为一些斑点或者亮点。在一般情况下,可以认为绝大数冲击性噪声是被真实的灰度值所包围。同时噪声污染的像素要远远小于真实灰度值的像素。因此在消除噪声的过程中,无需对大多数没有被噪声污染的像素进行改变处理。只需对那些被污染的像素进行“真实值”代替处理。而这些值的确定可通过图像像素邻域的相关性来确定。本设计中,极值滤波的改进算法表述如下。
设有一待处理像素区域为0s,其周围8邻域像素排列如下:
(1)
先取邻域相关像素的均值
以四个像素为一组处理单元。对文献[1]的极值滤波算法
可改进表述如下:
实验结果表明,该方法能得到与中值滤波类似的效果,达到了初步去除噪声的目的。
平滑滤波
经过上面的极值滤波之后,图像中的大多数在传输过程中所形成的噪声都被出去,但指纹图像中还存在着随机噪声,需对图像进一步进行平滑处理。在本文中,采取了两次平滑滤波,第一次是在极值滤波后,第二次是在锐化滤波之后。经过对相关文献的研究分析,运用下面的算子对图像进行平滑处理:
将指纹中的每个像素与M进行卷积,改进的平滑卷积核为:
(4)
其中系数取1/15而非原来1/17的原因在于为了提高图像的对比度。而卷积核中心像素加权系数为5,是为了突出该点像素。实验结果表明,该改进是可行的,有利于突出中心像素并有效去除噪声。
锐化滤波
对于由于积分运算所造成的模糊图像,有必要对其模糊进行校正,进而增强指纹图像的边界。具体表现在增强指纹的脊线与谷的对比度。这种增强指纹图像的高频成分,使边缘清晰的方法称为锐化。
因此锐化的目的在于使经过平均或积分运算的后变得模糊的图像的边缘和轮廓变得清晰,并使细节清晰突出。在本文中,锐化卷积核采用拉普拉氏算子,如下所示。
通过该卷积核对图像像素进行卷积预算,能实现高通滤波。从而使得拉普拉斯算子运用在指纹图像上,并得到锐化后的指纹脊线。
迭代阀值二值化
指纹图像经过极值滤波、平滑滤波、拉氏锐化滤波、平滑滤波后,图像的噪声大多数已经被消除;为特征点提取提供了基础。为了提取特征点,需对指纹图像进行分割。本文采取阀值分割。在本次设计中,采取了迭代阀值的方法。在迭代阀值运算中:
1)设定初始阀值T,如令T=127(灰度级)。把指纹图像的平均灰度值分为两组R1、R2;
2)计算着两组的平均灰度值u1,u2;
3)进而重新设定新的灰度阀值T。新的T定义为:T=(u1+u2)/2;
4)依据该T对指纹图像进行阀值分割。
实验结果表明该方法自适应的阀值对指纹图像进行二值化处理比设定固定阀值更有普遍意义,取得不错的效果,证明该方法是有效和可行的。
指纹图像在CCS2.2上的输入与输出
在设计中采用DSPTMS320VC5410集成开发环境CCS2.2对指纹识别算法进行了模拟验证。用指纹成像FPS200采集一幅指纹图像,为*bmp格式,如finger.bmp指纹图像。该指纹图像的数据上面添加一个DSPCOFF文件的文件头。因为对于一幅152×152的指纹图像,共占用23104=0x5A40个字节。而DSP上的存储单元是以字(16位)的存储结果。所以该指纹图像的长度应该为0x2D20个字。
1)添加COFF文件的文件头完毕后,以文件名finger.out保存,*.out文件为TI的公共目标文件。利用CCS中的File-LoadData可以将finger.out的指纹图像放到DSP的相应内存中去,本次设计中将finger.out存放于DSP的数据存储空间。
2)指纹图像的显示可利用CCS2.2中的Image菜单,通过设置相关选项可以观察处理前的图像与处理后的图像。
指纹预处理算法用C语言实现,同时 的卷积迭代运算采用DSP汇编进行,整个软件系统处理采用混合编程实现。由于在CCS2.2上模拟调试时间较长,为了达到脱机的目的,调试通过后,在VC5410PEVM上进行了实时测试。整个系统的结构如图2所示。
实际指纹图像预处理的评估结果
依据上述指纹识别预处理算法,通过CCS2.2的模拟仿真和EVM实时评估,得到实际指纹图像预处理的时间为0.18“0.3s,需要DSPCPU资源为约30000MIPS。与Oxford公司指纹芯片A336FP比较,节约了约20000MIPS的CPU指令周期资源,实现了指纹识别预处理的DSP嵌入式研究,达到了DSP处理指纹图像的应用目的。结果如图3所示。
图2嵌入式指纹识别系统的DSP结构
(a)原始指纹(b)极值滤波后指纹(c) 次平滑后指纹
(d)拉氏锐化后指纹(e)第二次平滑后指纹(f)迭代阀值二值化后指纹
图3实际指纹预处理的DSP结果
结论
本文针对DSP的TMS320VC5410快速,高效的特点,采取了DSP集成开发环境CCS2.2对指纹图像进行预处理。在指纹的预处理中,由于DSP10ns的指令周期使改进的极值滤波、平滑滤波卷积核对指纹图像进行 、二次平滑实时处理成为可能,而迭代二值化的运算充分利用了DSP五级流水线操作。同时,在DSPC5000EVM上的实验测试结果与Oxford的A336FP指纹芯片结果比较,表明该方法能有效的处理指纹图像的加性噪声,随机噪声,达到了利用DSP对指纹图像进行预处理的研究目的。