人脸识别会议签到的嵌入式系统
扫描二维码
随时随地手机看文章
内容摘要:为了解决传统会议签到问题,利用S5PV210与CC2530、摄像头、按键、液晶显示屏等硬件设备设计了一种人脸识别会议签到硬件终端。在定义的通信协议的基础上,采用C语言开发出了下位机与上位机间进行数据传输的程序。利用QT编制了人脸识别会议签到终端控制系统软件,重点研究了基于PCA算法的人脸识别实现、QT与CC2530的串口通信、ZigBee组网的数据传输。实验结果表明:基于PCA算法的人脸识别稳定可靠、上位机软件操作方便,ZigBee无线通信稳定,软硬件设计达到了预期的功能和要求。
引言
人脸识别,特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。
很多由政府部门组织召开的大型会议的签到工作仍然采用传统的手工签到的方式:会务组工作人员手里拿着参会代表的名单,参会代表报到时,工作人员根据代表提供的信息查找名册。这种报到方式存在很多不方便的地方,首先代表报到的时间长,容易造成拥挤,要解决这个问题就得增加工作人员,把代表按地区或行业分类,这样就会增加会议的人力和财力投入。
本文所设计的基于PCA算法的人脸识别会议签到系统正是为了解决这些问题而设计的,与会人员只需要站在摄像头前,系统识别出后会在窗口显示出与会人员姓名,并且将会议签到信息自动保存到SQLite数据库文件中,同时将会议签到信息通过ZigBee以单播的方式发送到上位机,以方便会议管理人员查看。
1 系统方案论述
本文提出了基于PCA算法的会议签到系统,会议签到系统包含人脸识别会议签到终端和上位机软件,其具体要求与功能为:人脸识别会议签到终端要求具有人脸检测和人脸识别的能力,人脸检测利用OpenCV库中Adaboost算法进行人脸检测,人脸识别采用PCA算法。人脸识别会议签到终端系统同时具有通过CC2530无线模块往上位机发送会议签到数据的能力。在ZigBee网络中,协调器的网络地址是固定的,所以CC25 30采用单播方式将人脸识别成功后的会议签到数据发送到上位机。通过这种方法,就可以有效减少会议组织人员的工作量,并且使用成本低、能够重复利用。
2 系统设计
人脸识别会议签到终端运行Linux系统,运行于PC的上位机和人脸识别会议签到终端的应用程序都是利用QT开发。完整的基于PCA算法的人脸识别会议签到终端包括:USB摄像头、通信总线、液晶屏、按键组、S5PV210主控芯片、CC2530无线芯片等。人脸识别会议签到系统是集软硬件为一体的专用与会人员身份识别系统。它通过USB接口接入人脸识别系统,为终端提供与会人员身份认证服务。基于QT开发的应用程序通过摄像头模块完成对人脸数据采集的操作,将获取的数据与数据库中存储的人脸数据进行对比。人脸识别会议签到硬件终端系统组成如图1所示。
2.1 硬件设计
人脸识别会议签到硬件终端采用核心板加底板的模式进行开发,核心板采用天嵌科技的TQ210核心板,自主设计底板,底板设计主要包括LCD接口电路、USB摄像头接口电路、串口电路、核心板接口电路、复位电路、电源电路等。
核心板以SSPV210为核心芯片,应用于整个硬件终端的控制。S5PV210采用了ARMCortex-A8内核,ARM V7指令集,主频可达1 GHz,具有64/32位内部总线结构,可以实现2 000 DMIPS(每秒运算2亿条指令集)的高性能运算能力。基于C0rtex-A8内核的处理器在进行人机交互设备管理、支持OS等方面拥有比较明显的优势。
2.1.1 USB摄像头电路设计
本系统所采用的摄像头是UVC(USB Video Class),只需要标准的USB接口就可以使用,USB摄像头驱动采用V4L2(Video 4 Linux 2)驱动。USB电路如图2所示。
2.1.2 ZigBee无线传输模块
ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本,主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通信技术。
一个完整的ZigBee系统需要至少一个协调器,一个或多个路由器以及许多个终端节点组成,这样才能完成网络的搭建,路径的分配和数据的采集及分配任务。ZigBee网络根据实际组网的需要可以组成星型网、网状网和簇状网这三种拓扑结构,基于PCA算法的人脸识别会议签到系统采用的是星型网络,因为协调器在网络中的网络地址是固定的,人脸识别会议签到终端往上位机发送数据采用单播的方式,上位机往下位机发送数据采用广播的方式。
本文采用的ZigBee芯片是CC2530,ZigBee无线模块和会议签到终端通过串口连接。连接于PC端的ZigBee模块作为协调器,连接于会议签到终端的ZigBee模块作为终端设备节点,ZigBee模块原理图如图3所示。
2.2 签到终端软件设计
2.2.1 系统工作流程
在本系统进行人脸数据采集时,首先自动从USB摄像头获取YUV格式的图片,转换成QImage格式并实时显示在LCD屏上,再将其转换成Ipl Image格式,利用OpenCV的Haar Cascade Face Detector(也称为Viola Jones方法)进行人脸检测,得到一个矩形区域。截取该矩形区域图像进行直方图均衡化处理,进行训练或识别。当利用PCA算法进行人脸识别时,识别成功后首先会在LCD上显示出姓名,同时也会把姓名信息通过ZigBee发送到上位机。
2.2.2 Adaboost算法介绍
Adaboost算法主要思想:在给定有限的数据情况下,基于特征的检测能够编码特定区域的状态,而且基于特征的系统比基于像素的系统要快得多。矩形特征对一些简单的图形结构(比如边缘、线段)比较敏感。但是其只能描述特定走向(水平、垂直、对角)的结构,因此比较粗略。脸部一些特征能够由矩形特征简单地描绘,例如:眼睛要比脸颊颜色更深;鼻梁两侧要比鼻梁颜色要深;嘴巴要比周围颜色更深。
人脸检测是人脸分析的第一步,对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果含有则返回人脸的位置、大小和姿态。本系统采用的是OpenCV库中提供的Adaboost算法来实现人脸检测,人脸检测效果如图4所示。
2.2.3 PCA算法介绍
PCA(主成分分析)算法是人脸识别中比较新的一种算法,该算法的优点是识别率高、识别速度快。OpenCV库中cvEigenDecomposite()函数的作用是将人脸图像通过Eigenface变换矩阵,投射到子空间中。子空间中的人脸向量是一个1×nEigens(nEigens由自己取得)的行向量,极大地降低了数据维度,便于下一步的聚类、识别。人脸识别成功后的效果如图5所示。
2.2.4 系统测试
本软件具有人脸检测、人脸识别会议签到等功能。首先需要通过人脸检测存储一定数量的与会者照片,经过训练生成人脸特征数据保存在数据库中。在实现会议签到时,只要保持脸在摄像头的正前方,软件识别好后会在屏幕上显示与会人员的姓名,并且把与会者的会议签到信息通过ZigBee无线模块,以单播的方式发送到上位机。系统首先采集5个人的人脸特征照片,经过训练得到人脸特征数据并且存储于数据库中。然后开始对这5个人再进行人脸识别测试,经过测试得到的实验结果如表1所列。
通过实验结果可以得出:本系统的人脸识别率在82%以上,可以区分数据库内外的人脸。
2.3 上位机软件设计
QT是1991年奇趣科技公司开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的功能。本设计的上位机软件正是用QT开发,选用的集成开发环境是QT Creator。上位机界面如图6所示。
表2是上位机和人脸识别会议签到终端之间数据传输所遵循的协议。下面分别对上位机和人脸识别会议签到终端之间发送数据、接收数据、系统重启、系统关机等操作的协议进行简要的说明。
①上位机发送数据到部分下位机:上位机需要往部分下位机发送数据时,需要在待发送的数据前加上msd1~n,1~n代表某一台下位机,如msd1代表数据发送到编号为1的下位机。
②上位机发送数据到所有下位机:上位机需要将数据发送到所有的下位机时,在待发送的数据前加上all标志。
③系统重启:如果希望下位机重新启动,发送数据rb即可以使下位机重新启动。
④系统关机:如果希望下位机执行关机操作,发送数据ht即可以使下位机执行关机操作。
结语
本设计利用人脸