APP下载

Adaboost算法的脸谱识别系统应用设计*

2017-09-03韩进张览

单片机与嵌入式系统应用 2017年8期
关键词:视频流脸谱人脸

韩进,张览

(山东科技大学 计算机科学与工程学院,青岛 266590)

Adaboost算法的脸谱识别系统应用设计*

韩进,张览

(山东科技大学 计算机科学与工程学院,青岛 266590)

研究了灰度值、中值滤波的图像预处理方法和Haar特征提取思想计算多尺度下相同特征。本文基于Adaboost算法针对同一个训练集训练不同的分类器,并将弱分类器进行集合,构成一个更强的最终分类器,实现了脸谱识别系统。通过验证脸谱识别系统,实现了对视频流中脸谱的准确定位,达到了无拖影、噪声少及识别准确的预期。

分类器;脸谱识别;Haar-like;Adaboost

引 言

随着生物检测技术的快速发展,脸谱识别技术在国家重要机关及社会安防领域具有广泛而特殊的用途,己经被广泛应用于相关领域。同时,脸谱识别作为机器视觉和模式检测领域最富有挑战性的课题之一,涉及到模式检测、计算机视觉、人工智能以及图像处理等多门学科,经常应用于人机交互领域,本课题研究了图像预处理技术、Haar-like特征以及Adaboost算法,实现了对视频中脸谱的准确识别,对推动以上各学科的发展具有重要的理论意义。

1 脸谱识别方案

1.1 图像预处理

1.1.1 中值滤波

中值滤波可以对图像进行平滑处理,在图像采集过程中,由于受各种因素的影响,图像往往会出现一些不规则的噪声,从而影响图像的质量。处理噪声的过程称为滤波。滤波可以降低图像的视觉噪声,常用于保护边缘信息,是经典的平滑噪声方法。

滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,基本原理是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为3×3或5×5区域,也可以是不同的形状,如线状、圆形、十字形、圆环形等。

1.1.2 灰度化

图像灰度化的过程就是将彩色图像转换为灰度图像的过程,彩色图像包含较多人脸特征信息,但是直接作为处理对象会使过程复杂化。相比之下,灰度图像在保留了人脸主要特征信息的基础上,减少了总信息量。

在RGB模型中,如果R=G=B,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值,灰度范围为0~255。图像灰度化处理的算法思想是加权平均值法。根据重要性或其他指标给R、G、B赋予不同的权值,并使R、G、B的加权值平均,即f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j),其中R(i,j)、G(i,j)、B(i,j)分别为R、G、B的权值。只有当Cgray<<0.30R 0.59G 0.11B 且 R<

1.2 特征选取与计算

1.2.1 特征选取

Adaboost脸谱识别训练算法很重要的一方面是特征选取。选取的特征为Haar-like特征,其分为三类:边缘特征、线性特征及中心特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。在确定了特征形式后,Harr-like特征的数量就取决于训练样本图像矩阵的大小,特征模板在子窗口内任意放置,一种形态称为一种特征,找出所有子窗口的特征是进行弱分类训练的基础。Haar-like特征如图1所示。

图1 Harr-like特征

1.2.2 特征计算

积分图计算方法是Adaboost识别训练算法的重要组成部分,利用样本的Harr-like特征进行分类器训练,得到一个级联的boosted分类器。训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本,反例样本指其他任意图片,所有的样本图片都被归一化为同样大小。每个特定分类器所使用的特征用形状、兴趣区域中的位置以及比例系数来定义。每个矩形框内的象素和都可以通过积分图象很快计算出来。

1.3 Adaboost脸谱识别

Adaboost算法框架可以分为三大部分:第一部分,使用Harr-like特征表示人脸,使用“积分图”实现特征数值的快速计算;第二部分,使用Adaboost算法挑选出一些最能代表人脸的矩形特征的弱分类器,按照加权投票的方式将弱分类器构造为一个强分类器;第三部分,将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,级联结构能有效地提高分类器的检测速度。Adaboost算法是一种用来分类的方法,把一些比较弱的分类方法合在一起,组合出新的很强的分类方法。Adaboost算法分类效果如图2所示。

使用Adaboost算法进行类别划分时需要规划一条错误率最小的基线,但深蓝色球被错误划分到红色区域,因此加重错误球的权重,所以在下一次划分时,将优先考虑那些权重大的球,最终得到了一个准确的划分,如图3所示。

图2 Adaboost分类效果

图3 多条线效果

基于Adaboost算法的脸谱识别即从图片中找出所有包含人脸的子窗口,将人脸的子窗口与非人脸的子窗口分开。识别基本步骤如下:

① 将规格为20×20点阵的图片提取出简单的特征,称为Harr特征,如图4所示。

图4 Harr特征

计算方法是用白色区域内的像素和减去黑色区域像素和,因此在人脸与非人脸图片的相同位置上,值的大小并不等价,这些特征可以用来区分人脸和非人脸。区分结果如图5所示。

图5 脸谱区分结果

② 使用约数千张切割好的人脸图片以及Haar特征数在一万以上的背景图片作为训练样本。首先训练图片一般归一化到规格为20×20像素大小的图片中。该图片中可供使用的Haar特征数在一万个左右,然后通过Adaboost算法挑选数千个有效的Haar特征来组成脸谱识别器。

图7 Linux内核配置界面

③ 使用学习算法训练出一个脸谱识别器后,便可以在各个场合使用。同时,将图像按比例依次缩放,然后在缩放后的图片中依次判别是否为人脸。

2 系统实现及测试

2.1 系统实现

脸谱识别系统需要完成视频流的采集、网络传输以及脸谱识别三个基本过程。视频流的采集要实现Linux内核中驱动的配置,使其符合UVC技术规格。网络传输主要基于TCP/IP协议栈中的TCP协议实现,完成视频流数据的上传工作。脸谱识别采用OpenCV技术实现视频中动态脸谱识别并进行目标定位。系统工作流程图如图6所示。

图6 系统工作流程图

2.1.1 摄像头驱动实现

系统使用的摄像头是Linux内核公开支持的摄像头芯片,符合UVC标准。首先使用Ubuntu12.03配置交叉编译环境的支持,然后安装gcc编译器来实现对c++文件的编译连接。最后在主目录下安装gz压缩包,这里使用符合开发板的config_mini2440_w35作为默认配置文件,然后执行“make menuconfig”,出现Linux内核界面后即能够实现所需要的配置工作。内核配置界面如图7所示。

图8 V4L2视频采集流程图

Video For Linux 2是Linux内核中关于视频设备的内核驱动,必须在Ubuntu系统中对V4L2配置才能生效。它为针对视频设备的应用程序编程提供一系列接口函数。对于USB摄像头,其驱动程序中需要提供基本I/O操作接口函数open、read、write、close的实现,对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioct1的实现等,并把它们定义在struct file_operations中。当应用程序对设备文件进行诸如open、close、read、write等系统调用操作时,Linux 2.6.32内核将通过file_operations结构访问驱动程序提供的函数,通过这种途径实现上述的功能。其主要流程如图8所示。

2.1.2 网络传输实现

图9 TCP连接过程

视频流采集后需要把图像的每一帧数据通过网络传输到上位机,因此需要在完成视频采集的基础上建立网络服务器端,实现客户端和服务器之间的高质量数据通信。视频流的传输需要可靠性极强的TCP协议来传输,以实现脸谱识别系统对大数据流通的强烈要求。图9所示为TCP连接过程。

图10 系统界面与识别结果

Linux系统是通过提供套接字socket来进行网络编程的。通过服务端程序进行网络传输时涉及到的套接口操作函数主要有:socket函数,主要功能是创建指定类型的套接口并返回套接口描述符;bind()函数,主要功能是使套接口与IP 地址和端口号绑定;connect()函数,主要功能是用来与远端服务器建立连接;listen()函数,主要功能是当socket 与某一端口捆绑以后监听该端口,以便对到达的服务请求加以处理;accept()函数,主要功能是接受连接队列里的服务请求,并返回一个新的socket 描述符来供这个新连接使用。

将采集格式符合UVC的原始视频图像帧数据压缩成JPEG 格式,并当客户端端口发出连接请求时,服务端进行连接验证,连通后就可以通过子进程向客户端发送JPEG 图像数据:

if((size=(yuv420p_to_JPEG(&imagebmp,imageptr,640,480,20)))<0){

//调用分叉函数,返回值: 若成功调用一次则返

//回两个值,子进程返回0,父进程返回子进程标

//记;否则,出错返回-1

if(!fork()){

if(revbuf[5]==' ')//调用发送函数

send(nsockfd, imagebmp, size, 0);

}

}

2.1.3 OpenCV实现

OpenCV作为一个跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。本模块首先通过socket从服务器端取一帧图片,然后通过OpenCV内置的图像解码API将其转换成OpenCV特有的IPlImage结构体。图像文件的操作功能是通过标准C函数库中的文件函数完成的,直接用“open”函数打开一个文件,并用“write”函数将接收缓冲区中的图片数据写入文件中,用“close”函数关闭文件,即可形成照片文件。函数 cvHaar DetectObjects 使用针对某目标物体训练的级联分类器在图像中找到包含目标物体的矩形区域。函数以不同比例大小的扫描窗口对图像进行几次搜索(查看cvSetImages ForHaar ClassifierCascade),对图像中的重叠区域利用cvRunHaar ClassifierCascade进行检测。利用某些继承(heuristics)技术以减少分析的候选区域,例如利用 Canny 裁减 (prunning)方法。

2.2 系统测试

为了验证脸谱识别系统的可靠性与有效性,本课题对视频中的人脸进行了识别实验,获得了良好的识别效果。系统不断采集视频流信息并传输到上位机,视频帧率大约为50 fps,格式规格为468×500像素点阵,通过调整灯光、区位、距离以及面部表情等对系统进行测试,经验证可得系统对脸谱目标的识别与定位,准确无误且无间断,满足有效性与可靠性的要求。图10所示为脸谱识别测试结果与系统界面。

结 语

[1] 曹正贵,马文,王志锋.基于肤色与新型Haar-Like特征的人脸检测算法研究[J].广东通信技术,2015(11):27-32,40.

[2] 刘晓克,孙燮华,周永霞.基于新Haar-like特征的多角度人脸检测[J].计算机工程,2009(19):195-197.

[3] 颜学龙,任文帅,马峻.基于扩展Haar特征的AdaBoost人脸检测算法[J].计算机系统应用,2015(9):152-155.

[4] 糜元根,陈丹驰,季鹏.基于几何特征与新Haar特征的人脸检测算法[J].传感器与微系统,2017(2):154-157.

[5] 谭兵,李珊珊,邓秋福,等.基于肤色及改进的AdaBoost算法的人脸检测技术研究[J].科技展望,2017(6):111-112.

[6] 姚文韬.基于高清智能摄像机的人脸检测与识别系统[J].信息技术与标准化,2017(3):66-68,76.

[7] 王庆伟,应自炉.一种基于Haar-Like T特征的人脸检测算法[J].模式识别与人工智能,2015(1):35-41.

[8] 夏雪婷,胡正飞,潘玲云.基于OpenCV人脸检测的室内照明自动控制系统[J].计算机技术与发展,2017(4):1-6.

[9] 李扬,曹著明.基于肤色和AdaBoost算法的人脸检测[J].现代计算机:专业版,2017(5):77-80.

韩进(教授),主要研究方向为嵌入式计算机控制、计算机系统结构、电子电路;张览(硕士研究生),主要研究方向为嵌入式系统技术。

Design of Face Recognition System Based on Adaboost Algorithm

Han Jin,Zhang Lan

(School of Computer Science and Engineering,Shandong University of Science and Technology,Qingdao 266590,China)

In the paper,the image preprocessing method of gray value and median filter are studied,then the same feature of Haar feature extraction are researched.The different classifier based on Adaboost algorithm for the same training set is designed.The weak classifiers are set to form a stronger final classifier,and finally the face recognition is achieved.By verifying the facebook recognition system,the accurate positioning of the face in the video stream has achieved no smear,less noise,and accurate prediction.

classifier;face recognition;Haar-lik;Adaboost

山东省自然科学基金资助(ZR2015DM013);国家自然科学基金(41572244)。

TP399

A

�士然

2017-04-07)

猜你喜欢

视频流脸谱人脸
边缘实时视频流分析系统配置动态调整算法研究
有特点的人脸
一起学画人脸
帖脸谱
基于视频流传输中的拥塞控制研究
做个脸谱迎『六一』
三国漫——人脸解锁
灶王爷的“脸谱”
铁路货场智能大门集装箱全景图像采集方法研究
美国视频流市场首现饱和征兆