论文部分内容阅读
摘 要:当前,嵌入式人脸识别门禁系统以其非接触性、稳定性好、采集设备简单及安全性高等优点被广泛应用到公共安全防护,信息保护与管理等领域中,具有良好的市场前景。因此,嵌入式人脸识别门禁系统在安防领域得到大多数研发机构的青睐。本文介绍了嵌入式人脸识别门禁系统的工作原理,并对嵌入式人脸识别门禁系统的设计进行了详细的介绍,以望能为有关需要提供参考借鉴。
关键词:人脸识别;嵌入式门禁系统;设计
0 引言
随着社会经济的快速发展,人们的生活水平也日益提高,对安全的需求也越来越强烈。门禁系统作为人们安全防护的一个重要组成部分,受到了人们的普遍重视。传统的机械锁、单片机控制类的刷卡式等门禁系统由于需要近距离接触,容易丢失、损坏和复制等缺点,已经不能满足人们日益增长的安全需要。而嵌入式人脸识别门禁系统作为人脸识别技术和嵌入式技术结合,生产出的门禁系统,具有采集设备简单,难仿冒,抗攻击能力强,符合人们的生活使用习惯,安全性高等优点,越来越受人们的青睐,并得到广泛的应用。基于此,笔者对嵌入式人脸識别门禁系统进行了相关的介绍。
1 系统工作原理
门禁系统属于公共安全管理系统范畴,本系统基于人脸的脸部特征作为唯一的特征,人脸识别技术主要通过分析人脸的全局特征和局部特征。从摄像头中检测人脸,然后通过分析人脸的特征值和相对位置关系就可以可靠的识别出一个人的身份信息。系统工作原理如下:
(1)门禁权限授予
本门禁系统目的是为了实现人员出入权限的控制及出入信息的记录。通过门禁权限的授予,可以对门禁进行管理,限制未经制受权的人员进出特定的区域,并且使已获受权人员在进出上更加便捷。本系统设计中,用户可以通过摄像头采集同一个人的脸部的不同角度,姿态图片,并登记相关的部门,姓名,工号等信息作为门禁授权,建立人脸门禁权限数据库。本系统授权的图片最多只需5张,最少一张。
(2)门禁控制
用户在需要进行控制的区域安装门禁系统以后,当有人员需要进出时,只需看着摄像头来核对身份。系统对该人员的脸部进行检测,识别,然后对数据库进行匹配,以此来进行权限分析,如果已经获得授权,那么计算机上会显示该人员的部门,姓名,工号,识别时间等信息,驱动门锁装置开锁,人员可以自行通过。若该人员未获得门禁权限,那么门锁不会打开,并且记录同一个人违规的次数,超过3次识别失败,就会报警。
(3)门禁系统设置
可以在该系统中对人员的权限和信息进行注册,更改,取消等设置。
(4)事件记录
当系统正常运行时,对各种出入事件、异常事件及其人员图片进行记录,保存在数据库中,以备日后查询。
2 系统设计思路
2.1 系统方案
目前常用的嵌入式系统设计方案主要有视频采集芯片+DSP、视频采集芯片+ARM,ARM+人脸识别算法软件等方案。对于人脸识别门禁系统而言,由于DSP不支持操作系统,因此不适合做嵌入式Linux的系统方案。而ARM作为系统控制比较好,DSP专门用来处理图片,考虑到开发成本及实际应用需求,笔者采用了ARM+Linux+人脸识别算法软件的方案设计。首先搭建好ARM+Linux的系统软硬件平台,并将相关驱动程序也移植成功;然后,移植人脸识别运行OpenCV计算机视觉库,为下一步移植和运行人脸识别程序提供环境,接着重点是优化人脸识别技术,或者采用更先进的人脸识别算法,从而提高识别率。
2.2系统硬件设计
该嵌入式人脸识别门禁系统的设计如图1:
(1)控制CPU
本设计中的ARM9处理器采用S3C2440芯片,其主要功能是:采集摄像头中的数据,将数据以视屏的方式显示在LCD上,通过触摸屏来进行数据查询和人员登记,门锁驱动电路是通过CPU检测到的识别输出来控制门锁,蜂鸣报警器用于违规人员严重违规时报警,并且CPU负责实时显示或查询人员出入记录。
(2)摄像头采集模块
摄像头采集模块是通过SCCB总线来进行数据传输,可以使用ARM9的IO口模拟SCCB总线来传输,其实SCCB总线就是IIC总线的子系统,将采集到的数据传输给ARM9,然后ARM9会通过Camera解码器、控制器来处理和控制数据,通过V4L2驱动接口来访问和操作视频数据。
(3)LCD液晶屏模块
LCD液晶屏模块采用Linux自带的Framebuffer机制来模仿显卡的功能,将显卡的硬件结构抽象为数据结构,然后通过Framebuffer的接口直接对LCD进行读写操作。图2为LCD的接口电路。其中,VD[23:0]接口为LCD像素数据输出端口,VSYNC和HSYNC为垂直和水平同步信号,ENABLE为数据使能信号,DOTCLK为像素时钟信号,TSXM,TSYM,TSXP,TSYP等引脚用于触摸屏的,LCD_PWREN为LCD电源使能端口。
(4)网络接口
本系统采用了DM9000网卡芯片,自适应10/100M的网络,可以使用普通的网线即可连接到路由器或者交换机。可以实时的通过网线将出入管理的记录以及摄像头获取的图片保存在计算机中,便于以后查询记录。图3为网络接口电路。
(5)门锁驱动电路
一般的门控锁都是高/低电平来控制开/关。本系统采用PIC817光耦芯片来对门锁控制模块进行隔离控制,这样可以增强了驱动能力,减少两个模块的干扰。在控制门锁的时候,采用高阻态和低电压来对门锁开/关进行控制。
2.3 系统软件设计
本系统的软件设计主要分为三部分:Socket网络通信;基于ARM9的人脸识别软件设计;PCA人脸识别算法。
2.3.1 Socket网络通信 该部分主要是在VS2010的平台上利用MFC来完成软件的设计,然后将数据保存到当月的文件中。图4为socket网络通信建立的连接流程图。
2.3.2基于ARM9的人脸识别软件设计
在ARM9中,主要是在QT平台上完成软件设计。其中,主要功能是人脸识别的功能。首先打开摄像头,从摄像头中获取一张图片,加载人脸训练库文件,推荐使用Opencv中的haarcascade_frontalface_atl.xml训练库,当然,如果需要自己制作训练库,可以使用MIT人脸库来进行训练。通过harr分类器来检测图片中是否有人脸,如果有,则将该区域作为一序列的矩形框返回。并从获取到的该区域和人脸个数信息,根据人脸位置来进行人脸截图,然后对截取下来的人脸图片进行灰度变换,直方图均衡化等处理后,进行特征提取,最后,将特征数据与之前所有录入的人的特征值进行搜索匹配。当相似度超过设定的阈值,则将匹配结果输出,并在数据库中读取该人员的信息并显示。图5为人脸识别流程图。
2.3.3 PCA人脸识别算法
PCA算法主要作用是通过对人脸图片数据进行降维来映射到底维的子空间,从而获取主成分。具体步骤如下:
(1)初始化数据
//每一行表示一个样本
CvMat*pData=cvCreateMat(总的样本数,每个样本的维数,CV_32FC1);
CvMat*pMean=cvCreateMat(1,样本的维数,CV_32FC1);
//pEigVals中的每个数表示一个特征值
CvMat*pEigVals=cvCreateMat(1,min(总的样本数,样本的维数),CV_32FC1);
//每一行表示一个特征向量
CvMat*pEigVecs=cvCreateMat(min(总的样本数,样本的维数),样本的维数,CV_32FC1);
(2)PCA处理,计算出平均向量pMean、特征值pEigVals和特征向量pEigVecs
cvCalcPCA(pData,pMean,pEigVals,pEigVecs,CV_PCA_DATA_AS_ROW);
(3)选出前P个特征向量(主成份)并投影,结果保存在pResult中,pResult中包含了P個系数。
CvMat*pResult=cvCreateMat(总的样本数,PCA变换后的样本维数(即主成份的数目),CV_32FC1);
cvProjectPCA(pData,pMean,pEigVecs,pResult);
(4)重构,结果保存在pRecon中
CvMat*pRecon=cvCreateMat(总的样本数,每个样本的维数,CV_32FC1);
cvBackProjectPCA(pResult,pMean,pEigVecs,pRecon);
(5)重构误差的计算
计算pRecon和pData的"差"即可。
3 系统测试
为了验证本文所述的人脸识别系统的优越性,进行了一系列的综合测试。实验人脸数据库可提前准备好,并且每个人只保存5张人脸图像,图像可以是多姿态多角度的。此外,实验要求光线较好、完整人脸的条件下进行,并对6名成员分别进行了100次的测试,测试分析结果如表1所示,从表1可以看出,该人脸识别系统的总平均识别率高达99%。
4 结束语
综上所述,嵌入式人脸识别门禁系统作为一种新兴的门禁系统,具有使用方便,可接受性强,简单直观,识别精度高,速度快,不易仿冒等优点,被广泛应用于出入口控制等领域,具有广阔的市场应用前景。本文设计了一个嵌入式人脸识别门禁系统,该系统操作简单,灵活方便,造价低廉,性能稳定。经测验,该系统的识别精度高,可有效保障小区、公司等地方门禁进入的安全,值得大力推广应用。
参考文献
[1] 刘机福.嵌入式人脸识别门禁系统设计与实现[D].湖南大学.2014
[2] 刘新朋,郎利影.基于ARM的人脸识别门禁系统设计[J].工矿自动化.2013(09)
关键词:人脸识别;嵌入式门禁系统;设计
0 引言
随着社会经济的快速发展,人们的生活水平也日益提高,对安全的需求也越来越强烈。门禁系统作为人们安全防护的一个重要组成部分,受到了人们的普遍重视。传统的机械锁、单片机控制类的刷卡式等门禁系统由于需要近距离接触,容易丢失、损坏和复制等缺点,已经不能满足人们日益增长的安全需要。而嵌入式人脸识别门禁系统作为人脸识别技术和嵌入式技术结合,生产出的门禁系统,具有采集设备简单,难仿冒,抗攻击能力强,符合人们的生活使用习惯,安全性高等优点,越来越受人们的青睐,并得到广泛的应用。基于此,笔者对嵌入式人脸識别门禁系统进行了相关的介绍。
1 系统工作原理
门禁系统属于公共安全管理系统范畴,本系统基于人脸的脸部特征作为唯一的特征,人脸识别技术主要通过分析人脸的全局特征和局部特征。从摄像头中检测人脸,然后通过分析人脸的特征值和相对位置关系就可以可靠的识别出一个人的身份信息。系统工作原理如下:
(1)门禁权限授予
本门禁系统目的是为了实现人员出入权限的控制及出入信息的记录。通过门禁权限的授予,可以对门禁进行管理,限制未经制受权的人员进出特定的区域,并且使已获受权人员在进出上更加便捷。本系统设计中,用户可以通过摄像头采集同一个人的脸部的不同角度,姿态图片,并登记相关的部门,姓名,工号等信息作为门禁授权,建立人脸门禁权限数据库。本系统授权的图片最多只需5张,最少一张。
(2)门禁控制
用户在需要进行控制的区域安装门禁系统以后,当有人员需要进出时,只需看着摄像头来核对身份。系统对该人员的脸部进行检测,识别,然后对数据库进行匹配,以此来进行权限分析,如果已经获得授权,那么计算机上会显示该人员的部门,姓名,工号,识别时间等信息,驱动门锁装置开锁,人员可以自行通过。若该人员未获得门禁权限,那么门锁不会打开,并且记录同一个人违规的次数,超过3次识别失败,就会报警。
(3)门禁系统设置
可以在该系统中对人员的权限和信息进行注册,更改,取消等设置。
(4)事件记录
当系统正常运行时,对各种出入事件、异常事件及其人员图片进行记录,保存在数据库中,以备日后查询。
2 系统设计思路
2.1 系统方案
目前常用的嵌入式系统设计方案主要有视频采集芯片+DSP、视频采集芯片+ARM,ARM+人脸识别算法软件等方案。对于人脸识别门禁系统而言,由于DSP不支持操作系统,因此不适合做嵌入式Linux的系统方案。而ARM作为系统控制比较好,DSP专门用来处理图片,考虑到开发成本及实际应用需求,笔者采用了ARM+Linux+人脸识别算法软件的方案设计。首先搭建好ARM+Linux的系统软硬件平台,并将相关驱动程序也移植成功;然后,移植人脸识别运行OpenCV计算机视觉库,为下一步移植和运行人脸识别程序提供环境,接着重点是优化人脸识别技术,或者采用更先进的人脸识别算法,从而提高识别率。
2.2系统硬件设计
该嵌入式人脸识别门禁系统的设计如图1:
(1)控制CPU
本设计中的ARM9处理器采用S3C2440芯片,其主要功能是:采集摄像头中的数据,将数据以视屏的方式显示在LCD上,通过触摸屏来进行数据查询和人员登记,门锁驱动电路是通过CPU检测到的识别输出来控制门锁,蜂鸣报警器用于违规人员严重违规时报警,并且CPU负责实时显示或查询人员出入记录。
(2)摄像头采集模块
摄像头采集模块是通过SCCB总线来进行数据传输,可以使用ARM9的IO口模拟SCCB总线来传输,其实SCCB总线就是IIC总线的子系统,将采集到的数据传输给ARM9,然后ARM9会通过Camera解码器、控制器来处理和控制数据,通过V4L2驱动接口来访问和操作视频数据。
(3)LCD液晶屏模块
LCD液晶屏模块采用Linux自带的Framebuffer机制来模仿显卡的功能,将显卡的硬件结构抽象为数据结构,然后通过Framebuffer的接口直接对LCD进行读写操作。图2为LCD的接口电路。其中,VD[23:0]接口为LCD像素数据输出端口,VSYNC和HSYNC为垂直和水平同步信号,ENABLE为数据使能信号,DOTCLK为像素时钟信号,TSXM,TSYM,TSXP,TSYP等引脚用于触摸屏的,LCD_PWREN为LCD电源使能端口。
(4)网络接口
本系统采用了DM9000网卡芯片,自适应10/100M的网络,可以使用普通的网线即可连接到路由器或者交换机。可以实时的通过网线将出入管理的记录以及摄像头获取的图片保存在计算机中,便于以后查询记录。图3为网络接口电路。
(5)门锁驱动电路
一般的门控锁都是高/低电平来控制开/关。本系统采用PIC817光耦芯片来对门锁控制模块进行隔离控制,这样可以增强了驱动能力,减少两个模块的干扰。在控制门锁的时候,采用高阻态和低电压来对门锁开/关进行控制。
2.3 系统软件设计
本系统的软件设计主要分为三部分:Socket网络通信;基于ARM9的人脸识别软件设计;PCA人脸识别算法。
2.3.1 Socket网络通信 该部分主要是在VS2010的平台上利用MFC来完成软件的设计,然后将数据保存到当月的文件中。图4为socket网络通信建立的连接流程图。
2.3.2基于ARM9的人脸识别软件设计
在ARM9中,主要是在QT平台上完成软件设计。其中,主要功能是人脸识别的功能。首先打开摄像头,从摄像头中获取一张图片,加载人脸训练库文件,推荐使用Opencv中的haarcascade_frontalface_atl.xml训练库,当然,如果需要自己制作训练库,可以使用MIT人脸库来进行训练。通过harr分类器来检测图片中是否有人脸,如果有,则将该区域作为一序列的矩形框返回。并从获取到的该区域和人脸个数信息,根据人脸位置来进行人脸截图,然后对截取下来的人脸图片进行灰度变换,直方图均衡化等处理后,进行特征提取,最后,将特征数据与之前所有录入的人的特征值进行搜索匹配。当相似度超过设定的阈值,则将匹配结果输出,并在数据库中读取该人员的信息并显示。图5为人脸识别流程图。
2.3.3 PCA人脸识别算法
PCA算法主要作用是通过对人脸图片数据进行降维来映射到底维的子空间,从而获取主成分。具体步骤如下:
(1)初始化数据
//每一行表示一个样本
CvMat*pData=cvCreateMat(总的样本数,每个样本的维数,CV_32FC1);
CvMat*pMean=cvCreateMat(1,样本的维数,CV_32FC1);
//pEigVals中的每个数表示一个特征值
CvMat*pEigVals=cvCreateMat(1,min(总的样本数,样本的维数),CV_32FC1);
//每一行表示一个特征向量
CvMat*pEigVecs=cvCreateMat(min(总的样本数,样本的维数),样本的维数,CV_32FC1);
(2)PCA处理,计算出平均向量pMean、特征值pEigVals和特征向量pEigVecs
cvCalcPCA(pData,pMean,pEigVals,pEigVecs,CV_PCA_DATA_AS_ROW);
(3)选出前P个特征向量(主成份)并投影,结果保存在pResult中,pResult中包含了P個系数。
CvMat*pResult=cvCreateMat(总的样本数,PCA变换后的样本维数(即主成份的数目),CV_32FC1);
cvProjectPCA(pData,pMean,pEigVecs,pResult);
(4)重构,结果保存在pRecon中
CvMat*pRecon=cvCreateMat(总的样本数,每个样本的维数,CV_32FC1);
cvBackProjectPCA(pResult,pMean,pEigVecs,pRecon);
(5)重构误差的计算
计算pRecon和pData的"差"即可。
3 系统测试
为了验证本文所述的人脸识别系统的优越性,进行了一系列的综合测试。实验人脸数据库可提前准备好,并且每个人只保存5张人脸图像,图像可以是多姿态多角度的。此外,实验要求光线较好、完整人脸的条件下进行,并对6名成员分别进行了100次的测试,测试分析结果如表1所示,从表1可以看出,该人脸识别系统的总平均识别率高达99%。
4 结束语
综上所述,嵌入式人脸识别门禁系统作为一种新兴的门禁系统,具有使用方便,可接受性强,简单直观,识别精度高,速度快,不易仿冒等优点,被广泛应用于出入口控制等领域,具有广阔的市场应用前景。本文设计了一个嵌入式人脸识别门禁系统,该系统操作简单,灵活方便,造价低廉,性能稳定。经测验,该系统的识别精度高,可有效保障小区、公司等地方门禁进入的安全,值得大力推广应用。
参考文献
[1] 刘机福.嵌入式人脸识别门禁系统设计与实现[D].湖南大学.2014
[2] 刘新朋,郎利影.基于ARM的人脸识别门禁系统设计[J].工矿自动化.2013(09)