人脸识别会议签到的嵌入式系统设计
的方式。
本文采用的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即可以使下位机执行关机操作。
结语
本设计利用人脸识别的独特性,设计了一种基于人脸识别的会议签到系统。本系统在TQ210核心板的基础上,利用OpenCV计算机视觉库和QT图形库,通过普通的USB摄像头实现了自动人脸识别,准确率较高,方便易用。
人脸识别 PCA ZigBee Linux 嵌入式系统 相关文章:
- 人脸和指纹身份识别认证系统合二为一的解决方案(05-10)
- 指纹/人脸/虹膜/心率/声音识别各有啥特点?(06-03)
- 机器人在智能时代怎样存活,比的是想象力?(12-13)
- 生物特征识别技术的发展趋势及对数字信号处理器的(09-12)
- 苹果新专利或使人脸实现鼠标部分功能(05-17)
- 采用DSP和CAN的电机同步控制系统与通信(12-13)