全国服务热线:15333805669

技术支持 PRODUCT DISPLAY

基于ARM的光学指纹识别系统的设计方案

来源: 发布时间:2021-04-27 11137 次浏览

本方案采用ARM处理器作为控制核心,构建指纹识别算法的嵌入式系统的设计方法及过程。该系统采用光学指纹传感器(内建格科微电子有限公司的光学GC0307 CMOS图像采集芯片)与ARM Cortex M3内核的意法半导体公司32位高性能单片机STM32F205RE组成功能主体,采用Sobel边缘检测算子、Gabor滤波、图像二值化等图像采集与处理算法对指纹图像进行识别。经过反复实践证明,该方案适合嵌入式组件开发中需要进行生物指纹特征提取、识别,指纹身份认证、比对等场合。系统具有高性价比且交互简易、识别率高、扩展性强,便于嵌入式应用。

  0 引言

  随着电子信息技术应用面日益拓展,不少场合需要对特定用户群体进行身份识别或身份记录,如门禁系统、考勤系统、安全认证系统等,在各种系统中运用的技术形式多样,如视网膜识别、面相识别、指纹识别、RFID 射频识别应用等。其中,生物特征识别方式以其方便性强、安全性高等特点得到了越来越多人的认可和接受,特别是指纹识别技术方式,现已发展成为应用最广泛的生物识别技术之一。因此,研究基于嵌入式架构的指纹识别系统具有现实意义和广阔的应用前景。

  1 系统整体结构

  系统采用光学指纹传感器(内建格科微电子有限公司的光学GC0307 CMOS 图像采集芯片)与ARM Cortex M3 内核意法半导体公司的32 位高性能单片机STM32F205RE 组成功能主体,采用Sobel 边缘检测算子、Gabor 滤波、图像二值化等图像采集与处理算法对指纹图像进行识别,构建了小体积的嵌入式指纹识别模块,具有积木式嵌入、微功耗、程序接口简单易用、便于二次开发、识别准确度高、高性价比等特点。

  2 系统硬件电路设计

  整个系统设计构成了一体化光学指纹识别模块。模块设计采用光学暗背景成像原理,加入特有活体检测芯片,在解决干手指效应的同时解决残留指纹误识别、橡胶假指纹等问题。

  图1 所示为格科微电子有限公司的光学GC0307 CMOS图像采集芯片应用电路原理图。该款CMOS 图像采集芯片是高精度、低功耗、微体积的高性能相机的内置式组件,它把实现优质VGA 影像的CMOS 影像传感器与高度集成的影像处理器、嵌入式电源和高质量的透镜组结合在一起,输出JPEG 图像或图像视频流,支持8/10 位数字传输JPEG 图像和YCbCr 接口,提供了完整的影像解决方案。

图1 GC0307 CMOS图像采集芯片电路原理图

  CMOS图像采集芯功能输出串行数据引脚、时钟信号引脚、复位引脚、串行总线引脚等都接入到STM32F205RE的GPIO 口, 通过GPIO 口模拟时序读取CMOS 芯片采集到的图像信息。由于STM32F205RE 的GPIO 口工作频率可达120 MHz,因而可以非常准确高效地模拟时序,实测640×480 的原始图像能以10 帧/s 的速度采集到主处理器STM32F205RE 中进行图像处理。

  3 系统软件功能设计

  本系统的指纹图像采集过程如图2 所示。系统软件设计部分则针对畸变纠正采用了四点转正算法。

  通过公式(1)和公式(2)可以得到从(x,y) 到(u,v) 的变换,其中,A ~ H 由光路决定,可以由具体测定数据最终确定,通过实测可以获得原始数据。图3 所示展示了原始图像和畸变纠正前后图像的效果差异。通过变换可见,畸变纠正后的图像通过变换可达500 DPI分辨率,为后续获得高质量图像处理数据奠定了基础条件。

图3 畸变纠正前后的图像

  然后送入算法处理。由于嵌入式系统的图像处理算法必须运算量小、占用RAM 存储器空间小,才能在运算性能有限的单片机系统中运行,故而本系统通过小块方向替代点方向,减小RAM占用。

  在图像增强方面,可以将图像以L 为长宽划分为小块,再按如下公式求取每一块的均方差 :

  根据实验数据测定和分析,当Aver>36 时,可认为该区域内有图像,否则认为是背景。利用均方差区分出了前后景,还可以据此判断图像的对比度。根据对比度的差异分别来增强图像,可以使得不同曝光亮度的图像得到一致增强。对原始图像进行了算法处理,提取处理前后效果进行比对,具体效果如图4 所示。

图4 图像增强前后的变化

  软件算法中对于指纹处理中的求取图像方向场问题,采用了基于原Sobel 算子改进后的Sobel 算子。

  原Sobel 算子如下:

  改进后的Sobel 算子为:

  改进的Sobel 算子能增加方向场的准确性,实测通过率从采用标准Sobel 算子的93.3% 提高到95.8%.图5 所示为其变化情况。

图5 Sobel算子改进前后的效果变化

  如图5 可见,改进的Sobel 算子在原Sobel 算子的基础上,能显着地分割出正确图像的面积,几乎能在整个画面区域提取出正确的方向来。系统对图像进行了Gabor 滤波和图像数据二值化。指纹图像属于纹理图像,纹理图像采用Gabor 滤波器,利用每一点的点方向沿方向指向增强,沿方向的法线方向减弱。Gabor 滤波器能很好地拼接断纹,滤除环境噪声,最后将Gabor 滤波后的图像做双窗口均值门限二值化:

  门限1 :均值化算子矩阵: 7×7 的单位矩阵。

  门限2 :均值化算子矩阵: 3×3 的单位矩阵。

  具体运算表达式如下:

  当每一点的值g(x,y)>p(x,y) 时,则赋值g(x,y)=1,否则赋值为0,以此得到二值化最终的结果,提取图像进行实测效果的比对如图6 所示。

图6 二值化处理前后的实测效果比对

  图7 是最后根据图像纹理的粗细二值化图像,并根据端点和交叉点提取特征点。

图7 根据图像纹理的粗细提取的二值化图像端点和交叉点特征

  经过上面的步骤,即可从原始图像里面提取出有效的特征信息。特征信息描述了特征点的位置、方向等信息,最终形成一个大小不超过512 字节的特征模板。指纹的比对就是在特征模板的基础上,构建两个点形成的杆对集,而杆对所包含的杆长度、端点方向与杆的夹角等信息已经是相对量,与位置无关。理想状况下,同一枚指纹,采集的两幅图像能找到的杆对的每一个量(长度、夹角)在数学上是完全相等的。以此为基本数学模型,构建整个比对算法。

  4 结语

  本文的基于ARM的光学指纹识别系统的设计方案,经过实物测试, 模块录入用户指纹图像时间为500 ~ 800 ms,拒真率小于等于1%,平均4.2 ms 即可比对一枚指纹,支持1∶1 指纹验证和1∶N 指纹搜索。在硬件设计中引出了通信端子,系统支持3.3V TTL 串口通信,可以通过串口对模块进行用户注册、删除特定用户、删除所有用户、复位模块、获取用户总数、获取用户权限、1∶1 比对、1∶N 比对、设置串口波特率、读取图像并提取特征值、获取图像等30 个常规或扩展功能命令,能满足大多数的指纹应用场合,可以很好地运用于嵌入式领域,从而证实了本方案的可行性。