首页 百科知识 基于的人脸识别身份认证系统

基于的人脸识别身份认证系统

时间:2022-10-05 百科知识 版权反馈
【摘要】:本系统提供的不仅是一个具体的应用, 而且是一类通过人脸识别技术进行身份认证的解决方案。基于密码、 个人识别码、 磁卡和钥匙等传统的安全措施已不能完全满足社会要求。其中人脸识别技术是目前被广泛研究的热门课题。人脸识别技术在前人的不断努力探索研究之下, 已经取得了许多成果。为此我们探索研发并完成了基于FPGA的人脸识别系统身份认证系统。

天津大学 谢 雪 赵亚洲 李静南

指导教师: 陈为刚

摘 要

本系统硬件采用Atlys和Nexys两块FPGA板结构, 软件选择Linux操作系统, 人脸识别功能由优化的PCA算法完成。 系统通过利用两块板的优势资源, 有效提升系统的运算处理能力和存储能力, 实现人脸识别身份认证功能和脱离PC机独立完成人脸定位、 人脸识别、 语音播报识别结果信息等功能。 通过搭建平台、 算法设计, 上述功能均已完成。

本系统提供的不仅是一个具体的应用, 而且是一类通过人脸识别技术进行身份认证的解决方案。 这类解决方案提高了认证系统的安全性、 精确性、 便捷性, 可应用到不同领域, 市场前景广阔。

FPGA-based Face Recognition Authentication System

Abstract

This system adopts two pieces of FPGA boards: Atlys and Nexys, it bases on Linux operating system, and the function of face recognition is achieved by optimized PCA arithmetic. This system improves the ability of processing and storage capacity by using the superior resources of these two pieces of FPGA boards. Besides, it possesses the function of face recognition and identity authentication, achieving the function of face detection, face recognition and voice broadcast independently. So this system is able to fulfill the function of face recognition and identity authentication.

The system provides more than just a specific application, but also a kind of solution scheme which can achieve the function of identity authentication by face recognition. This kind of solution scheme improves the security, accuracy, convenience of the authentication system, it can be applied into different fields, and the prospect of market is vast.

1 项目概述

在当今社会信息安全问题备受人们的关注。 自身安全和个人隐私保护成为这个时代的热门话题。 基于密码、 个人识别码、 磁卡和钥匙等传统的安全措施已不能完全满足社会要求。 在这样一个背景下, 人们把目光投向了生物特征识别技术——利用人体固有的生理特征或行为特征来进行身份的鉴别或确认。其中人脸识别技术是目前被广泛研究的热门课题。 人脸识别技术就是利用计算机技术分析人脸图像, 通过对比检测人脸数据库中的所有已知原型人脸图像来达到“辨认”身份的目的。

人脸识别作为一种新兴的生物特征识别技术(Biometrics), 与虹膜识别、 指纹扫描、 掌形扫描等技术相比, 人脸识别技术在应用方面具有独到的优势, 具体对比如表1所示。

表1 各种生物特征识别技术比较

续表

人脸识别技术是一种高精度、 易于使用、 稳定性高、 难仿冒、 性价比高的生物特征识别技术, 具有广阔的市场应用前景。

人脸识别技术在前人的不断努力探索研究之下, 已经取得了许多成果。 但还主要是基于PC架构的识别技术, 对于一些特殊场合, 灵活性和便捷性不够; 即使单机系统, 也依然精度、 速度不够理想。 为此我们探索研发并完成了基于FPGA的人脸识别系统身份认证系统。

因为FPGA提供软硬件一体的协同设计, 并且支持多种体系结构的嵌入式开发。 因此我们便使用XILINX公司的Spartan-6 FPGA开发板, 移植Linux系统到MicroBlaze架构上, 并移植人脸识别程序在此配置下运行。 最终项目在Spartan-6 FPGA开发板上实现了对视频信号进行动态实时的人脸采集和识别过程。

2 系统方案

2.1 系统模型总述

本系统总体框架设计如图1所示。

图1 系统总体框架图

2.2 功能与指标

本系统采用Atlys和Nexys两块FPGA开发板结构, 实现了人脸识别身份认证功能, 使用两块开发板的优势在于各尽其用, 有效地利用FPGA资源, 提升系统的运算处理能力和存储能力, 同时可以实现独立完成人脸定位、 人脸识别、 语音播报识别结果信息等功能。

Atlys开发板外接摄像头和显示屏实现人脸定位、 采集视频流的实时显示以及信息存储功能, 并将采集得到的人脸信息通过Pmod方式传递给Nexys开发板; Nexys开发板对采集的人脸信息进行预处理以及人脸识别运算(PCA算法)等功能, 同时将人脸识别的比对结果转化成语音信号实现语音自动播报的功能。

系统运行包括两个阶段,即训练阶段(数据库存储部分)和识别阶段(测试的人脸与数据库中的人脸进行匹配比对)。在训练阶段,采集人脸信息进行运算处理, 存入数据库; 进入识别阶段时, 采集人脸测试信息,并将测试的人脸信息进行运算处理,与数据库中的人脸信息进行匹配比对,输出比对结果。

错误接受率: 本系统的错误接受率接近于0。

错误拒绝率: 本系统的错误拒绝率为2%, 具体分析详见系统测试部分。

安全性: 人脸识别技术所独具的活性判别能力保证了他人无法以非活性的照片、 木偶、 蜡像来欺骗识别系统, 这是指纹等生物特征识别技术很难做到的。

鲁棒性: 不同的采集场合下经过测试均已达到人脸识别身份认证系统要求。

2.3 应用举例

本系统提供了良好的扩展应用平台, 可以根据不同的用户需求稍加改进应用到不同领域中。 例如火车票检票系统、 考勤系统。 下面以火车票检票系统为例进行讨论。

火车票检票系统

火车票检票系统包括出票部分和检票部分, 如图2所示为火车票检票系统结构图, 虚线框内部分为本项目(基于FPGA的人脸识别身份认证系统)已经实现的部分, 框外部分为需要根据用户需求外接的部分。

图2 火车票检票系统结构图

出票阶段: Atlys开发板通过摄像头采集人脸图像特征信息, 并将特征信息加密、 编码打印到火车票票面上。

检票阶段: Atlys开发板通过摄像头采集人脸图像特征信息和扫描器扫描车票票面上的人脸特征信息, 传递给Nexys开发板, 在Nexys开发板上实现人脸特征信息匹配对比功能, 将结果输出到语音自动播报模块中, 播报输出结果。

火车票实名制售票正处于探索和尝试阶段, 个人身份信息的保护越来越受到重视, 因此如何处理好两者的关系成了当务之急。 人脸识别技术属于高端技术, 科技含量高; 同时建立健全的检票系统是日后的科技发展所需。

3 系统原理与实现

3.1 实现原理

人脸识别身份认证技术是基于人的脸部特征信息进行身份识别的一种生物识别技术。 用摄像头采集含有人脸的图像或视频流, 对检测到的人脸进行脸部的一系列相关技术处理, 包括人脸图像采集、 人脸定位、人脸识别预处理、记忆存储和比对辨识等,达到识别不同人身份的目的。 本系统基本原理如图3和图4所示:

图3 训练阶段

图4 识别阶段

3.2 硬件设计

略。

3.3 软件设计

人脸识别相关算法是一项运算量大、 很耗时的工程, 因此本系统采用软硬件协同设计完成人脸识别的相关功能。 软件设计包括Verilog硬件描述语言及Linux系统上的软件算法; Verilog硬件描述语言主要应用于Atlys板上的图像采集及实时显示、 人脸定位、 图像预处理、 数据储存、 板间信息传递; Linux软件算法主要应用于Nexys板上的接收传递信息、 数据存储、 PCA算法、 语音自动播报等功能。

算法模块图如图5所示。 (本框图根据算法模块进行编排, 便于理解。)

图5 算法模块图

3.3.1 Linux系统移植

就系统的移植而言, 是将Linux操作系统进行修改, 使之能在嵌入式计算机系统上运行的一种操作系统。 系统移植总体流程如图6所示。

ARM体系下Linux系统的移植已经相对完善, 有着丰富的成功经验与相关系统资料可供参考, 移植过程相对难度较小。 而用XiLinx开发板进行Linux移植的资料较少, 难度较高。 本系统基于Microb-laze软核进行Linux系统的移植, 完成嵌入式平台的搭建工作。

建立硬件工程文件: 在XPS中建立可用于嵌入式Linux系统运行的硬件平台。 配置Microblaze参数。

编译软件工程: 软件交叉编译环境(microblaze-unknown-linux-gnu-gcc), 其目的是编译要在FPGA板子上运行的核心算法程序。 在Linux目录下使用MMU预配置及相关设置, 配置和编译内核, 用设置好的交叉编译器生成内核镜像文件并下载, 完成移植。

编译linux内核: 根据实际环境修改dts文件。 设置内核交叉编译环境(mb_gnu), 其目的是在X86体系结构的平台下编译连接和调试Microblaze架构的程序。 用gcc编译交叉编译工具链, 设置环境变量,使得交叉编译工具可以被系统识别。

在Microblaze上移植Linux架构, 由于硬件的兼容性及差异性, 移植过程相对比较负责, 根据实际情况进行相关配置, 修改相应底层文件, 实现移植系统的实用性和稳定性。

3.3.2 PCA算法

一幅图像可以看作一个由像素值组成的矩阵, 进而看成一个矢量, 如一幅N*N像素的图像可以视为长度为N2的矢量,这样就认为这幅图像是位于N2维空间中的一个点,这种图像的矢量表示就是原始的图像空间。 首先选择一个合适的子空间, 图像将被投影到这个子空间上, 然后利用对图像的这种投影间的某种度量来确定图像间的相似度, 从而完成人脸识别功能。 识别过程如图7所示。

图6 系统移植总体框图

图7 识别流程图

(1) 读入人脸库

将库中的每人选择一定数量的图像构成训练集, 其余构成测试集。 设归一化后的图像是n*m, 按列相连就构成N=n*m维矢量, 可视为N维空间中的一个点, 可以通过K-L变换, 用一个低维子空间描述这个图像。

(2) 计算K-L变换的生成矩阵

根据上述K-L变换原理,我们所求的新坐标系即由矩阵A·AT的非零特征值所对应的特征向量组成。 直接求N×N大小矩阵CA的特征值和正交归一特征向量是很困难的, 根据奇异值分解原理, 可以通过求解AT·A的特征值和特征向量来获得A·AT的特征值和特征向量。

在计算得到CA的所有非零特征值后, 可以得到特征空间, 从而可以计算一张图片X在特征空间上的投影系数。

计算结果即为所求图像在特征空间上的系数表示, 这一过程完成了图片的降维表示, 用主要成分完成了图像的预处理。

(3) 识别

利用公式, 首先把所有训练图片进行投影, 然后对于测试图片也进行同样的投影, 采用判别函数对投影系数进行识别。 判别的标准一般为投影向量之间的距离(如平方距离、 汉明距离等)。

1) PCA作用

使用PCA算法对原始数据进行处理, 通常有三个方面的作用: 降维, 相关性去除, 概率估计。

从统计特性来说, 方差代表着变量所包含的信息, 方差越大, 包含信息越多。 PCA算法的目的就是寻找一组向量, 使得原始数据在这组向量上的投影方差尽可能大, 方差最大的就是第一主成分, 最大地降低了数据之间的相关性。

从降维的角度来看, PCA算法也完成了从n×m维图像到r×1维图像的降维。 此外, 各个特征值的方差不尽相同, 将其重要性进行排序之后, 可以按照需求选择一定数目的重要特征值, 进一步降维。

2) 算法仿真

特征脸: 特征空间中的每一个单位向量都构成一个特征脸。 较大特征值的特征向量也称主分量, 用于表示人脸的大体形状, 而对应于较小特征值的特征向量则用于描述人脸的具体细节, 或者从频域来看, 主分量表示了人脸的低频部分, 而此分量则描述了人脸的高频部分。

图片重建: 重建的目的是检验特征空间对于表示训练库人脸的有效性。 将X投影到特征空间上,得到系数, 然后选用一部分系数与特征向量进行原始图片的重建。 结果表明, 对于训练库中的脸可以较好地恢复, 从另一个角度证明了算法的可行性。

4 系统测试方案及测试结果

4.1 匹配认证结果测试

测试方法: 多种输入方式测试, 分别进行无输入、 错误输入和正确输入3种测试, 计算拒识率、 误识率, 建立样本库为50的数据库, 反复测试并记录结果。

拒识率(错误拒绝率FRR)=(错误拒绝合法者次数/合法者尝试次数)*100%;

误识率(错误接受率FAR)=(错误接受非法者次数/非法者尝试次数)*100%。

拒识率和误识率反映了识别系统两个不同方面的特性, FRR越低, 合法用户被拒绝的可能性就越小, 从而使得系统的易用性越好; FAR越低, 非法者被当作合法者接受的可能性越小, 从而系统的安全性越高。

无输入: 没有任何物体进入人脸特征信息采集装置, 在此时进行匹配认证结果如表2所示。

表2 无输入时, 匹配认证结果

错误输入1: 使用其他物体(如模型脸)进入人脸特征信息采集装置, 在此时进行匹配认证结果如表3所示。

表3 错误输入1时, 匹配认证结果

错误输入2: 使用没有注册过的人脸, 用正确的方式(正确的应该是人脸图像出现在屏幕的指定位置), 在此时进行匹配认证结果如表4所示。

表4 错误输入2时, 匹配认证结果

错误输入3: 使用已经注册过的人脸, 用错误的方式(正确的应该是人脸图像出现在屏幕的指定位置), 在此时进行匹配认证结果如表5所示。

表5 错误输入3时, 匹配认证结果

正确输入: 使用已经注册过的人脸, 用正确的方式(正确的应该是人脸图像出现在屏幕的指定位置), 在此时进行匹配认证结果如表6所示。

表6 正确输入时, 匹配认证结果

结果分析:

出现拒识现象, 主要是来源于输入人脸的姿势错误和环境光线的影响, 因此当人脸姿势正确和环境光线变化不是特别大的情况下, 系统有极高的匹配率。

但同时我们的错误接受率为0%, 很好地预防了非法用户假冒他人的行为, 说明系统的安全性非常好。

4.2 系统优化性能测试及使用资源

程序中可优化的算法模块包括图像预处理、 人脸定位、 板间信息传递与接收、 特征匹配(PCA算法)、 采集信息实时显示VHDL的实现5部分。 本次测试分别运行了这些算法, 计算运行时间和测试结果理想。 表7为节选的资源占用情况。

表7 资源占有情况

5 总结

5.1 特色与创新

(1) 本系统实现了FPGA平台下的人脸识别身份认证功能, 具有很好的安全性和可扩展性。

(2) 设计过程中优化了PCA算法, 可有效地降低系统的拒识率和误判率, 并且提升系统的运算效率。

(3) 采用Atlys和Nexys两块FPGA开发板结构, 实现了人脸识别身份认证功能, 有效地利用FPGA资源, 提升系统的运算处理能力和存储能力。

(4) 使用过程中可以脱离PC机使用, 摒除了PC机的限制, 可独立完成人脸识别的身份认证功能(目前可单机完成的产品为数不多, 且拥有知识产权, 是核心保护对象, 科技含量较高)。

(5) 通过把可硬件化、 并行化处理部分用硬件完成; 循环、 控制部分由软件控制硬件模块得以完成; 合理分配, 优化设计提升系统效率。 系统操作简便, 可获得性强, 性价比高, 可接受性好。

5.2 技术难点

人脸识别是一个跨学科富挑战性的前沿课题, 其难点在于人脸都是有各种变化的相似三维刚体, 环境因素的变化对人脸识别算法的鲁棒性都有着负面的影响, 实用化领域难度更大。

(1) FPGA开发板上的Linux系统的移植。

不同FPGA开发板移植的过程和搭建的平台差异很大, 需要对Linux系统和FPGA深入了解才能根据需求实现系统的移植。

(2) 算法优化。

目前人脸识别的算法都存在一定的拒识率和误判率, 优化PCA算法提升识别的准确性和速度。

(3) 提升图像处理和显示效果。

图像的效果很大程度影响着识别率, 嵌入式中对图像的前期处理和对处理效果的要求较高, 以及视频采集实时显示以及存储的硬件描述语言的实现。 因此, 需要提升处理效果和显示效果。

5.3 应用前景

本系统提供的不仅仅是一个具体的应用, 而且是一类通过人脸识别技术的身份认证的解决方案。 这类解决方案提高了认证的安全性、 精确性、 便捷性, 在各种场合都可以得到应用, 如机关单位的安全和考勤、 火车票检票、 门禁、 物业管理、 奥运安检、 海关边检、 ATM取款机、 网络安全, 等等。 提供了快捷、 准确和经济的解决方案, 市场前景广阔。

专家点评

参赛作品以FPGA开发板为核心, 配以摄像头、 显示屏等少量外设, 制作了基于人脸识别技术的身份认证系统。 作品整体工作量大, 难度较高。

作品选用优化的PCA算法, 并采用软、 硬件结合的方法实现了人脸识别, 识别速度快、 准确率高。

作品采用两块FPGA板结构, 充分利用了板上的各种资源, 方案设计合理, 实现的功能较为完善。特别是作品制作规范并实现了脱机工作, 完整性好, 实用性强, 应用举例恰当, 具有特色。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈