一种基于人脸识别的智能门禁系统的制作方法

文档序号:16634363发布日期:2019-01-16 06:52阅读:276来源:国知局
一种基于人脸识别的智能门禁系统的制作方法

本发明属于图像识别领域,特别涉及一种基于人脸识别的智能门禁系统。



背景技术:

人脸识别技术的研究起源于上世纪60年代末期,当时的研究较为简单和直接,主要是对人脸特征的提取。在这半个多世纪里,识别领域出现了大量的,新思想,新方法,新技术。我们可以将人脸识别大致分为四个阶段:第一个阶段以j.s.bruner和bledsoe为代表,主要是研究人脸识别所需要的面部特征,这个阶段研究人员手工选择若干个面部特征,计算机通过分析这些特征值之间的距离来进行人脸识别。这种研究方法仅适用于实验人员正面图像。第二个阶段开始于二十世纪七十年代,以allen和parke为代表,在前阶段的基础上增加了神经网络,线性分类器等方法,使得人脸识相对于手工来说干扰减少了很多。第三个阶段以harmon和lesk为代表,用几何特征参数来表示人脸正面图像,大量的新方法大大简化了研究人员的手工工作,例如基于gabor的识别技术,基于局部二值模式的人脸识别等。第四个阶段研究人员加强了分类器的训练和设计研究,在此期间向量机,bagging分类算法等被应用到人脸识别。现阶段研究人员逐渐开始关注特征提取,特征选择,模式分类等算法相互结合的研究方法。

随着国外人脸识别算法的不断发展,国内也有大量研究人员从事相关学习和研究,并取得了较为显著的科研成果。在模式识别,人工智能,机器视觉等方面积累了丰富的经验,特别是近年来第二代居民身份证的普及,嵌入式技术的持续发展,4g网络的到来,使我国人脸识别技术应用到更多的领域。

基于人脸识别的门禁系统虽然给我们带来了很大的方便,但是在技术层面上依然还存在很多问题,例如高昂的成本,嵌入式设备处理速度较慢等问题。如何提高人脸识别的精度,降低环境对识别的影响,降低成本等问题依然是研究的主流方向,目前国内生产研发智能门禁系统的公司不过十余家,主流依然是磁卡,指纹识别等。

因此,目前急需一种简单、高效、人性化的智能门禁系统,但是现有技术中尚无相关描述。



技术实现要素:

本发明所解决的技术问题在于提供一种简单、高效、人性化的智能门禁系统解决方案。

实现本发明目的的技术解决方案为:一种基于人脸识别的智能门禁系统,包括摄像头、存储器、电磁门锁、控制芯片、无线网卡、服务器和远程客户端,所述摄像头、存储器、电磁门锁均与控制芯片相连,控制芯片同时与无线网卡相连,无线网卡同时通过服务器和远程客户端相连;所述摄像头采集到图像后将图像发送至控制芯片上,控制芯片将采集的图像与存储器中的图像数据进行对比,比对成功则控制电磁门锁开启,否则把图像经无线网卡发送到服务器,由远程客户端来判别开门与否。

本发明与现有技术相比,其显著优点:1)本发明的系统采用高效的系统结构,安全性高;2)本发明的移动终端与服务器选择无线连接的方式,安装方便,无需布线;3)本发明采用c/s架构,高效快捷;4)本发明的系统可移植性好。

下面结合附图对本发明作进一步详细描述。

附图说明

图1本发明智能门禁系统结构图。

图2电磁门锁驱动流程图。

图3系统主流程图。

图4人脸库训练流程图。

图5门禁端请求流程图。

图中:1为摄像头,2为存储器,3为电磁门锁,4为控制芯片,5为无线网卡,6为服务器,7为远程客户端。

具体实施方式

结合图1,本发明的一种基于人脸识别的智能门禁系统,包括摄像头1、存储器2、电磁门锁3、控制芯片4、无线网卡5、服务器6和远程客户端7,所述摄像头1、存储器2、电磁门锁3均与控制芯片4相连,控制芯片4同时与无线网卡5相连,无线网卡5同时通过服务器6和远程客户端7相连;所述摄像头1采集到图像后将图像发送至控制芯片4上,控制芯片4将采集的图像与存储器2中的图像数据进行对比,比对成功则控制电磁门锁3开启,否则把图像经无线网卡5发送到服务器6,由远程客户端7来判别开门与否。

所述摄像头1采用ccd摄像头,接口为通用usb;所述存储器2采用256m的nandflash。

所述电磁门锁3类型为磁力锁。

所述控制芯片4采用s3c2440作为微处理器,并预装适用于arm的linux系统。

所述无线网卡5采用dm9000网卡芯片;所述服务器6为pc机;所述远程客户端7为网络用户。

所述控制芯片4与服务器6、远程客户端7共同构成整体的c/s架构系统。

本发明采用高效的系统结构,安全性高;移动终端与服务器选择无线连接的方式,安装方便,无需布线;采用c/s架构,高效快捷;采用无线网络连接,人性化的设计;整个系统可移植性好。

下面结合附图1-5对本发明做进一步说明:

1.智能门禁系统的整体架构

考虑到c/s模式的智能移动终端拥有很快的响应速度,并且拥有能够非常方便接入无线网络的优势,因此,本系统的设计决定采用c/s架构来完成。

如图1所示,系统搭载了linux的图像采集前端。图像采集前端的任务主要是利用v4l2技术实现摄像头人脸图像的获取,利用存储的人脸训练库进行比对,再利用socket网络编程技术把请求的消息经过wifi传送出去,远程客户端再给出响应。具体包括以下设备:摄像头1、存储器2、电磁门锁3、控制芯片4、无线网卡5、服务器6和远程客户端7。

本发明设计了完整的门禁系统,其中采集模块配合arm系统完成用户信息录入,图像采集模块是整个系统的眼睛,可选择ccd摄像头。摄像头接口可以采用arm开发板自带的摄像头接口和外围可扩展usb摄像头两种。

控制模块是整个系统的核心部分,其中硬件部分包括arm处理器s3c2440芯片,存储芯片,网卡,显示器,串口,usb接口等组成。软件部分主要有bootloader,内核,文件系统和人脸识别算法,硬件驱动程序等推动系统运行。

远程网络请求部分包含了智能终端设计,本发明针对ios设备开发交互app,带有固定ip地址的pc主机,搭建apache,mysql,php等服务器交互环境,使得嵌入式设备和手机之间可以互相通信,并由手机控制门禁的开闭。

电磁门锁主要由180kg拉力的电磁锁和控制电路组成,是整个系统的执行机构,当人脸识别成功或者收到远程门禁授权后电磁锁将自动打开。

算法部分是整个门禁系统的核心,包括图像预处理,图像缩放,人脸区域探测,归一化,识别算法等,选择合适的算法在保证较高识别率的前提下尽量优化算法使处理时间变短。

2.操作系统的移植

嵌入式设备启动过程与普通pc机相似,在pc机启动时会优先执行一段固件程序(bios)和位于硬盘中一段称为osbootloader的程序一起组成。系统首先进行资源分配和硬件检测。然后读取mbr中的osbootloader到ram中,然后跳转到内核入口启动系统程序。嵌入式系统的加载和启动工作主要由bootloader来完成。

bootloader是开机启动系统时的一小段程序,通过这段程序来初始化硬件和内存空间映射,以便最终能够为内核的运行准备好环境。u-boot具有较好的适配性,可支持不同体系的处理器,如同时支持arm,mips和ppc系统。由于cpu型号的不一致,硬件结构差异化等多种原因导致无法具有一个通用的bootloader,开发人员需要根据具体的硬件接口来移植各自的bootloader程序。在系统上电或者复位后系统一般都按照某固定地址启动系统,嵌入式设备一般都是以0x00000000作为启动地址。为了使系统从开始执行bootloader程序,设计人员使用固态存储设备的起始地址作为嵌入式系统的零地址。一般的bootloader具有两种常用的启动方式,本地加载和远程加载模式,对于对于使用者来说这两种加载模式都是为了启动系统而服务,对于开发人员来说使用不同的启动方式减轻我们对硬件系统的依赖性。

3.设备驱动程序

本发明中电磁门锁需要12v电压和250ma左右电流,而arm板外围i/o驱动能力较弱,远不能达到要求。所以在arm板与电磁锁之间增加了转接电路板,电磁锁的控制转为对转接板固定引脚电平的控制。从而程序设计仅需要根据人脸识别的结果来控制arm外围i/o的电平高低。

在linux系统中不能直接对外围引脚电平进行控制,需要编写电磁锁驱动程序并通过驱动模块的方式安装到系统,由应用程序调用接口函数实现控制。arm开发板为用户预留了自定义控制gpio口,设计中选用i/o寄存器gpf3作为控制端口。

在编写设备驱动程序时,实现以下几个步骤:

1)驱动模块初始化,这部分主要完成硬件寄存器配置工作,linux系统通过宏定义moduleinit函数来完成初始化工作。

2)注册设备驱动,驱动设备开发跟系统的运行紧密相关,所以我们完成硬件初始化后需要向linux系统发起注册请求,申明主设备号及操作函数。在应用层开发人员通过设备号访问并控制设备驱动来完成硬件的驱动。

3)打开设备,通过open函数来打开驱动设备,该函数的作用是与设备建立连接,进行软件初始化配置,给设备配合内存空间。

4)读写设备,应用层对设备进行控制主要是通过对驱动读(read)和写(write)来完成。由于应用程序在用户层,而驱动程序在内核层,为了实现二者之间跨层通信,通常使用copy_touser函数实现数据拷贝功能。

5)i/o口控制,当需要对i/o口进行控制时通常使用iotcl函数来实现,它是设备驱动中对i/o进行通道管理的函数,在函数接口传入文件标识符,控制命令等。如在电磁门锁驱动设计时有大量的控制操作需要通过该函数来实现。

6)驱动模块关闭,当驱动使用完毕后可以关闭设备驱动程序以便释放系统资源,节省系统内存开支。

7)注销设备,通过deregister函数来实现设备注销,当需要重新调用驱动设备时再次注册设备。

8)驱动模块卸载,当硬件设备己经不再为系统所用时可以卸载驱动模块程序,降低模块在flash中的内存占用。

设计中电磁锁驱动如图2所示。

本发明中为了提高外围设备的可移植性,采用usb高清摄像头作为采集设备。其设备驱动程序为v4l2,框架是linux下一种常用的视频设备驱动,其为应用程序提供一套统一api接口。v4l2驱动包含一定的时序逻辑,同时对内存的操作有一定的复杂性和较高的实时性要求。所以read,write,ioctl较难足需求。v4l2驱动程序较好的解决了时序逻辑性和对内存复杂的操作问题,通过usb,i2c,pci等设备驱动的控制避免了直接和硬件打交道,本设计中设备驱动通过usb接口获取视频数据源。在驱动程序运行过程时,应用程序会首先申请传输空间,然后获取内核中视频队列地址并映射到用户空间,待v4l2驱动向该地址填充视频帧数据后,最后由应用程序选择性取出该地址的数据图像。内核空间和用户空间之间通过传递指针的方式完成数据传输大大提高了传输效率,同时节省了大量存储空间。

4.应用程序设计

系统硬件设施和linux操作系统都是设计的基础,最终服务于应用程序。应用程序包含了业务逻辑、ui展示与用户交互,它是软件系统的最上层应用,也是人脸识别门禁系统的中心控制枢纽。本发明中应用程序设计包括图像采集、人脸检测与人脸识别程序设计、扩展部分应用程序三部分。整体的系统流程图3所示。

1)人脸识别程序设计

人脸识别程序主要分成两个部分:人脸检测和人脸图像识别。在进行人脸检测之前需要训练分类器库文件。训练过程通常采用一定数量的正样本和更多的负样本进行训练,试验中从互联网上选取12*14张正样本图片和上千张负样本进行训练,并将训练好的文件保存为xml格式的人脸库。

人脸检测为了减少环境因素给识别结果带来的影响,预先对图形进行预处理。检测过程主要由以下几个步骤:a)加载需要检测的图像并放入向量容器中。b)将图片进行灰度化处理。c)使用双线性差值法对图像大小归一化处理。d)图像直方图均衡化处理。e)将图像与训练好的人脸模板库进行对比,如果检测结果在阀值范围内则认为存在人脸。f)如果存在人脸则仅截取人脸部分并再次进行归一化处理,大小统一为50*50像素。g)通知应用程序进行后续操作,例如人脸训练和人脸识别。检测部分运行整体流程图如图4所示。

2)扩展程序

门禁系统远程请求需要有保障的网络连接协议,所以采用tcp/ip协议,嵌入式端为客户端,远程pc机器为服务端。它们之间建立连接需要进行三次握手协议,若释放连接则需要进行四次握手协议。所以每次建立和释放都需要消耗系统资源。

tcp分为长连接和短链接。(1)短链接即常用的http协议,client向server发起连接请求,服务端收到连接请求后开始建立连接。client发送消息server返回后一次读写操作就完成了,双方都可以关闭链接,一般而言由客户端主动发起断开请求。短链接的优点是只会在client/server之间传递一次读写操作,对服务器产生的压力较小,管理起来较简单,不需额外控制手段,传输较为安全。(2)tcp长连接与短连接不同,client向server发起请求并成功建立连接后,client和server之间持续进行数据通信,它们之间任何一方不会主动关闭连接,其中任意一方都可以断开连接,短链接通常用于被动式网络请求,例如客户端向服务端获取数据,而长连接则是双方保持通信状态,客户端不但可以获取服务器返回的数据,服务器也可以通过主动推送的方式发消息给客户端。一般服务端会每隔一段时间发送一次心跳包给客户端确认当前连接可用。相对而言长连接会占用较多系统资源,随着客户端连接越来越多时,服务端承载压力较大,通常会关闭一些较长时间无通信数据的连接。本发明中嵌入式设备向服务器发送远程门禁请求,并且等待服务器回应,需要建立长连接,设计中使用qt自带socket库开发。其网络请求流程如图5所示。

由上可知,本发明的系统采用高效的系统结构,安全性高。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1