APP下载

基于OpenCV的嵌入式智能门禁系统设计

2015-08-07秦宏超杨颖超刘文武

大众科技 2015年3期
关键词:门禁系统人脸人脸识别

韩 进 秦宏超 杨颖超 刘文武

(山东科技大学信息科学与工程学院,山东 青岛 266590)

基于OpenCV的嵌入式智能门禁系统设计

韩 进 秦宏超 杨颖超 刘文武

(山东科技大学信息科学与工程学院,山东 青岛 266590)

基于智能家居安防系统中安全性的需求,以三星S3C6410嵌入式核心芯片为平台,以OpenCV技术为核心,设计实现了具有人脸识别功能的智能安防门禁系统。本智能门禁系统首先将授权人的人脸信息进行灰度化、降维及计算特征值等处理,再进行准备训练,得到授权人的相关信息。然后对摄像头采集到的人脸信息进行处理。将授权人的人脸信息与采集到的人脸信息进行比对,判定门禁系统是否开放。经过测试,该智能门禁系统较好的完成了人脸识别功能,实现了门禁系统的设计要求。本设计已成功应用于智能家居安防系统中。

OpenCV;人脸识别;门禁系统;嵌入式

由于现代家居理念越来越追求高效化、便捷化、智能化,使得人们对于将住宅有了更高的要求,如:高度安全、舒适、方便及可以完成住户基本要求等。智能家居成为强烈的消费需求,家居智能化大势所趋。而在智能家居系统中,最重要的一点就是高度的安全性。要保证智能家居系统的高度安全性,首先需要的就是一个安全可靠的门禁系统。本文以三星S3C6410嵌入式核心芯片为基础,以OpenCV技术为核心,设计实现了一套具有高度安全性的带有智能人脸识别功能的智能门禁系统。

1 系统设计

门禁安防系统作为智能家居系统的重要组成部分,以保证智能家居的高度安全性为目的。以OpenCV为核心技术的带有人脸识别功能的智能门禁系统,在保证授权的家庭成员通过门禁系统的同时,保证未授权的人员不能通过门禁系统,有效的减少了家居生活中非法闯入的发生。

1.1 硬件设计

本设计采用三星S3C6410嵌入式核心芯片为平台,采用S3C6410X高性能嵌入式处理器,主频可以达到667MHz。S3C6410芯片搭载的内存为256M Mobile DDR。闪存为128M Nandflash以及8M Norflash。而且S3C6410处理器内置OpenGL 2D/3D图形硬件加速器、编解码器等。

系统的硬件组成如图1所示:

图1 硬件组成框图

1.2 OpenCV算法

此次基于OpenCV为核心所设计的智能门禁系统,完成以智能人脸检测为目标的功能,使得门禁系统对授权用户开放,而对未授权用户,门禁系统则不予开放。

为实现人脸检测功能,笔者采用OpenCV的Viola-Jones算法进行人脸检测的操作。Viola-Jones算法是在AdaBoost算法[1]的基础上发展起来的。

AdaBoost算法是一种将同一训练集训练不同弱分类器集合起来构成一个更强的强分类器的迭代算法。该算法是通过改变数据分布实现的,其根据每次训练集中样本的准确率来确定样本的权值,而后将权值新数据传送给下层分类器,将训练后的分类器结合起来,成为一个强分类器。

AdaBoost算法本质上是一个弱分类器提升的过程,整个过程具体如下:

通过对多个训练样本学习得到第一个弱分类器;

将分错的样本与新数据构成新训练样本,通过学习得到第二个弱分类器;

重复步骤二的过程,得到多个弱分类器;

最终经过提升得到一个强分类器。

Viola-Jones算法[2]是在AdaBoost算法基础上利用Haar-like小波特征[3]和积分图进行人脸检测的算法。Viola-Jones算法方法框架可以分为以下3部分。

(1)使用Haar-like特征表示人脸,使用“积分图”实现特征数值的快速计算;

(2)使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器);

(3)按照加权投票的方式将弱分类器构造为一个强分类器;将训练得到的若干强分类器串联组成一个级联结构的层叠分类器。

该算法设计了针对人脸检测更有效的特征,并且对AdaBoost训练出来的强分类器进行了级联,提高了人脸检测的效率,可谓人脸检测史上的一个里程碑。

Viola-Jones算法的主要特点是在训练分类器的同时进行特征选择。它使得每个特征对应于一个弱分类器,弱分类器的数目是与矩形特征数目相等。训练过程中从大量的弱分类器作为本轮训练结果,这样经过T次迭代,选择出了T个特征(弱分类器),最终按照加权投票的方式组合成一个强分类器。

定义X表示样本空间,Y={0,1}表示样本类别标识集合,1和0分别对应样本的正(人脸)和负(非人脸);假定共有K个矩形特征;εt表示第t轮循环第i个样本的权重;训练强分类器具体算法描述如下:

(1)给定一系列训练样本(x1,y1),…,(xn,yn),其中x∈X,yi∈y,假设样本集中共有l个正样本,m个负样本,l+m=n;

(3)Fort=1,…,T(T为循环次数)

Viola-Jones算法直接导致了OpenCV中Haar分类器算法的形成。

Haar分类器算法由Haar-like特征、积分图方法、Adaboost算法与级联组成。Haar-like特征其实就是不同区域内所有像素和的差值。Haar-like特征分为:边缘特征、线性特征与中心特征和对角线特征。边缘特征主要用来检测图像的水平、垂直、45°和135°边缘;线性特征主要用来检测水平、垂直、45°和135°方向不同粗细的直线特征;中心特征和对角线特征主要用来检测图像孤立点及对角特性。

在此基于OpenCV的智能门禁系统中,笔者检测的人脸图像为灰度图像,所以,笔者把人脸特征值定义为矩形人脸区域中,白色区域像素和与黑色区域像素和的差值。人脸特征值是用于区分人脸与非人脸的标准。

利用OpenCV进行人脸识别检测的算法思路框图如图2所示:

图2 OpenCV算法思路框图

2 移植及调试

2.1 OpenCV项目配置及文件说明

2.1.1 项目配置

利用Qt软件来制作基于OpenCV的智能门禁系统的UI界面。在使用Qt进行项目配置时,Build configuration选择Release模式,Qt version选择ARM 4.6.1。在使用Qt的过程中采用相关的Net功能,并且指定该基于OpenCV的智能门禁系统用于完成人脸检测功能所需要的OpenCV头文件目录、OpenCV库文件目录及JPEG库文件目录。

2.1.2 项目文件说明

Forms目录下的mainwidget.ui为UI界面主文件。Headers/server目录下的zigbeetopo.h为Zigbee服务器文件。Sources/server目录下的facedetect.cpp为人脸检测主文件,facerecognize.cpp为人脸识别主文件,facewidget.cpp为人脸显示主文件,lwwthread.cpp为控制人脸识别线程的主文件。文件项目目录如图3所示:

图3 文件项目目录

2.1.3 UI界面的相关设置

在UI人机交互界面上添加人脸显示区域、显示系统中存入人脸图像的区域及对系统中的存储的人脸信息进行相关操作的按键,如:加入、删除、上移、下移等。

2.1.4 相关代码的编写

本论文设计的智能识别人脸门禁系统中的人脸识别功能是以采集到的授权人的人脸信息为基石来完成的[4]。编码过程中最核心的部分为添加及删除授权人的人脸信息的相关代码的编写。

添加人脸按键及删除人脸按键事件的代码如下:

void MainWidget::on_pushButton_Up_clicked()

{

QListWidgetItem*item=listWidget->currentItem();

if(item)

{

int id=item->text().toInt();

if(id==1) return;

QFile::rename(QString("data/%1.pgm").arg(id),QSt ring("data/tmp.pgm"));

QFile::rename(QString("data/%1.pgm").arg(id-1),QStri ng("data/%1.pgm").arg(id));

QFile::rename(QString("data/tmp.pgm"),QString("data/ %1.pgm").arg(id-1));

fresh();

}

}

void MainWidget::on_pushButton_Down_clicked() {

QListWidgetItem *item= listWidget->currentItem();

if(item)

{

int id=item->text().toInt();

if(id==faceNum) return;

QFile::rename(QString("data/%1.pgm").arg(id),QString ("data/tmp.pgm"));

QFile::rename(QString("data/%1.pgm").arg(id+1),QStri ng("data/%1.pgm").arg(id));

QFile::rename(QString("data/tmp.pgm"),QString("data/ %1.pgm").arg(id+1));

fresh();

}

}

2.2 OpenCV在ARM的移植步骤

在ARM上移植OpenCV需要执行以下步骤[5]。OpenCV的移植环境为:PC机系统Ubuntu10.10。交叉编译工具为:arm-linux-gcc 4.5.1。

(1)解压OpenCV 2.0.0。tar xvf OpenCV-2.0.0.tar.bz2

(2)转到OpenCV目录。cd OpenCV-2.0.0

(3)./configure --host=arm-linux --without-gtk --without-carbon

--without-quicktime--without-1394libs--without-ffmpeg

--without-python --without-swig --enable-static --enable-shared

--disable-apps CXX=arm-linux-g++ CPPFLAGS= -I/opt/FriendlyARM/too

lschain/4.5.1/arm-none-linux-gnueabi/include LDFLAGS=-L/opt/Frie

ndlyARM/toolschain/4.5.1/arm-none-linux-gnueab i/lib --with-v4l2

--prefix=/opt/arm-2.0.0/opencv

(4)make编译。make

(5)编译安装。make install

(6)移植库文件到ARM11开发板上。将/opt/arm/ opencv/lib中的libcvaux.so.4.0.0 libcv.so.4.0.0 libcxcore.so.4.0.0 libhighgui.so.4.0.0 libml.so.4.0.0全部重命名为*.so.4将这些文件拷贝到ARM11板子的/lib目录下

(7)测试是否移植成功。

OpenCV在开发板上移植成功后即可完成利用摄像头进行人脸检测识别的功能。

3 系统测试结果

经过在相关嵌入式芯片三星S3C6410平台上进行智能人脸识别门禁系统的移植及外围电路的搭建。对搭建完成的人脸智能识别门禁系统进行功能测试,人脸智能识别门禁系统测试结果如图4,5所示:

人脸识别通过时,智能家居相关功能激活,激活界面如图4所示。

图4 智能家居功能激活界面

人脸识别未通过时,智能家居的相关功能未激活,界面如图5所示。

图5 智能家居功能未激活界面

经过测试,该基于OpenCV的智能门禁系统能够较好的完成既定的智能人脸识别的功能,提高了家居生活的安全性,可以使人们的家居生活更加舒适安全。

4 结语

论文对基于OpenCV的人脸识别算法进行了分析,并基于S3C6410芯片完成了ARM的移植,成功应用于智能门禁系统中。经过测试证明,该具有人脸识别检测功能的门禁系统可以有效的减少非法闯入事件的发生,确保了智能家居的安全性。论文设计的基于OpenCV的智能门禁系统具有硬件配置简单,系统占用资源较少等优势,此系统在智能家居上的应用中具有良好的发展前景。

[1] 卢湖川.人脸识别中几个关键算法研究[D].大连:大连理工大学,2008.

[2] P.Viola and M.Jones.Rapid object detection using a boosted cascade of simple features[J].Computer Vision and pattern Recgnition,2001,(1):511-518.

[3] R.Lienhart and J.Maydt. An Extended Set of Haar-like Features for Rapid Object Detection[J].IEEE ICTP, 2002, (1):900-903.

[4] 王进德.嵌入式LINUX程序设计与应用案例[M].北京:中国电力出版社,2007.

[5] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.

OpenCV-based design of embedded intelligent access control system

Smart Home Security System based on security requirements to Samsung S3C6410 embedded core chip as a platform to OpenCV technology as the core, designed and implemented with face recognition features intelligent security access control system. The intelligent access control system will first donor's human face Gray, dimensionality reduction and eigenvalue calculations and other processing, and then prepare training to be authorized in the relevant information. Then the camera to capture the information processing of the human face. The donor's human face to face with the collected information for comparison to determine whether the open access system. After testing, the intelligent access control system completed a face recognition function better, to achieve the access control system design requirements. The design has been successfully applied to smart home security system.

OpenCV; face recognition; access control systems; embedd

TP33

A

1008-1151(2015)03-0001-04

2015-02-11

国家自然科学基金(No:41072212);青岛经济技术开发区重点科技发展计划项目(2013-1-62);山东科技大学研究生教育创新计划(KDYC13012)资助。

韩进,山东科技大学信息科学与工程学院教授,博士,硕士生导师,从事电子电路、计算机应用技术的教学和科研工作;秦宏超,山东科技大学信息科学与工程学院在读硕士, 研究方向为嵌入式应用,专用集成电路设计;杨颖超, 山东科技大学信息科学与工程学院在读硕士,研究方向为嵌入式应用;刘文武,山东科技大学信息科学与工程学院本科生,研究方向为专业电子信息科学与技术。

猜你喜欢

门禁系统人脸人脸识别
基于多种生物特征识别的RFID门禁系统设计
人脸识别 等
有特点的人脸
一起学画人脸
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
基于AI智慧人脸门禁系统的硬件系统设计
基于单片机的安全门禁系统研究设计
三国漫——人脸解锁
基于单片机的小区门禁系统设计