舌控鼠标系统的算法研究

2014-09-25 10:20刘勇奎胡杨成琳
电子设计工程 2014年16期
关键词:嘴部鼠标人脸

黎 璞,刘勇奎,王 巍,胡杨成琳

(大连民族学院 计算机学院,辽宁 大连 116600)

舌控鼠标系统的算法研究

黎 璞,刘勇奎,王 巍,胡杨成琳

(大连民族学院 计算机学院,辽宁 大连 116600)

介绍通过视频实时采集图像和行为识别来实现舌控鼠标系统。首先利用Adaboost和Lucas-Kanade算法实现实时人脸的识别与跟踪,然后提出了脸部器官定位的算法。通过舌头的行为识别来控制鼠标系统。实验表明该系统能较好完成鼠标操作基本功能,具备实时性和稳定性。

Adaboost算法;Lucas-Kanade算法;行为识别;器官定位

随着计算机技术的发展,计算机的应用范围也日益广泛,越来越多人的工作、学习和生活中将与计算机发生直接或间接地联系。但对于失去双手的残疾人使用电脑非常困难,从而计算机这种我们日常生活中非常方便的工具与他们绝缘。

对于残疾人应用鼠标研究,国内外都有相关的报道。国内近几年对该问题已有较多研究,主要包括“头控”、“脚控”及“眼控”等三方面,这些研究基本代表这一领域的发展方向。如2013年4月重庆市科学技术研究院申请的专利[1],是利用视线与屏幕的映射关系控制鼠标的运动。2009年韩国HANKYONG产学研合作机构申请的“头控”鼠标[2],这一专利也是利用头部的运动与屏幕的映射关系来控制鼠标的动作。

文中介绍了一种“舌控”鼠标系统的设计和开发,实现“无接触式”鼠标从“穿戴式”迈向“非穿戴式”,通过移动嘴部位置和向左向右伸舌头的动作,来实现鼠标移动及左右键单击操作。本系统设计主要在MFC图形界面下,运用C++编程语言,并调用 OpenCV库函数,使用了 Adaboost、Lucas-Kanade等算法,实现人脸检测、定位以及跟踪等技术。

1 主要算法介绍

本设计系统主要从视觉内容分析角度,结合具体应用进行开发和设计,综合运用多种技术和算法,具体算法鼠标行为识别流程图如图1所示。

图1 鼠标行为识别流程图Fig.1 The flow chart of mouse behavior recognition

1.1 人脸检测技术

1.1.1 视频图像采集

在舌控鼠标系统设计中,进行人脸检测和行为识别的图像来自于使用者头部的实时动作视频,这要求运行设备自带或外接摄像设备。在图像采集时,使用了DirectShow流媒体处理开发包,该开发包主要针对各种格式媒体文件的应用,其包含在DirectX中,DirectX采用了COM标准,DirectShow是一套完全基于COM的应用系统,任何第三方开发的符合COM组件的组件对象都可以提供对视频操作的支持。DirectShow系统位于应用层中,它使用一种叫Filter Graph的模型来管理整个数据流的处理过程,可很方便地从支持WDM驱动模型的采集卡上捕获数据,并储存到相应的文件中。

本设计中,通过创建Camerads代码类,实现对摄像头进行初始化和定义,并根据需要选取适当的Filter,从而获取视频。并使用OpenCV库函数对视频图像进行采集。

1.1.2 人脸检测

人脸检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸。当前人脸检测的算法可以简单的分为两类:基于特征的和基于图像的。基于特征的方法指以某种特征为最小处理单元的方法;基于图像的方法指以图像中的像素为处理单元的方法。Rowley等人在1996年提出采用局部连接的神经网络[3]的人脸检测方法,将每个区域划分成多个方形或矩形的子区域以便更好地描述人脸的局部特征,每个区域对应一个神经网络隐含单元。对神经网络在多个分级上的输出进行判决以降低误检率。用神经网络进行人脸检测的优势是很容易训练一个用于检测人脸模式的系统。但是,缺点是网络结构需要大范围的调整(层数、结点数、学习速率等)才能获得期望的性能。

1.1.3 AdaBoost算法

基于Adaboost[4]的人脸检测算法是现有的同类算法中性能相对较好的一种。AdaBoost算法全称为Adaptive Boosting。AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用AdaBoost分类器可以排除一些不必要的训练数据特征,并将关键放在训练数据上面。AdaBoost算法提出后在机器学习领域受到了极大的关注,实验结果显示无论是应用于人造数据还是真实数据,AdaBoost都能显著提高学习精度。

在舌控鼠标系统的设计和开发中,检测人脸时使用了AdaBoost算法。该方法是通过提取样本图像的Haar特征训练出一组强分类器,并挑选出一些分类能力较强的分类器,将这些强分类器串联成一个层叠分类器。本设计中使用了OpenCV自带的分类器,首先使用cvLoad()加载正面人脸识别效果最好的模型文件haarcascade_frontalface_alt2.xml,再通过cvHaarDetectObjects()找到与训练目标相似的物体,便得到了检测结果。

1.2 人脸跟踪技术

1.2.1 人脸跟踪

跟踪问题主要解决连续的图像帧间的基于位置、速度、形状等有关特征的对应匹配问题,是要对分割出的目标的运动轨迹和轮廓的变化进行持续的检测。文献[5]中提出利用粒子滤波方法实现足球机器人的跟踪。人脸跟踪的可利用信息很多,目前常见的人脸跟踪算法[6]有4种思路:利用运动信息跟踪,利用彩色信息跟踪,利用参数模型或模板对整个人脸进行相似跟踪和利用人脸的局部特征进行跟踪。蔡灿辉[7]等人利用均值移动和贪婪算法实现了多人脸跟踪。李培华提出一种改进的Mean Shift跟踪算法[8]。

1.2.2 Lucas-Kanade算法

Lucas-Kanade光流算法(LK)[9]是当前最流行的一种稀疏跟踪方法,起初是用于求稠密光流的,由于算法易于应用在输入图像中的一组点上,后来成为求稀疏光流的一种重要方法。使用小窗口的LK算法存在不足之处,较大的运动会将点移出这个小窗口,从而造成算法无法再找到这些点。金字塔的LK算法[10]可以解决这个问题,即从金字塔的最高层开始向金字塔低层进行跟踪。跟踪图像金字塔允许小窗口捕获较大的运动。

在舌控鼠标系统设计和开发中,为了实现对人脸的实时跟踪,我们采用了光流法,首先通过cvGoodFeaturesToTrack()函数在图像中捕获“特征点(角点)”,经过处理,去除脸部意外的角点,并在捕捉到50个以上角点的时候才可以锁定人脸。然后使用LK算法跟踪上一帧图像记录的这些点,并返回们每个点被跟踪的情况,以此来实现人脸的跟踪技术。

1.3 脸部器官定位技术

目前对脸部器官定位的研究比较少,文献[11]利用数学形态学和分水岭算法对肤色模板进行亮度融合,从而定位眼睛,但算法鲁棒性不高。

根据“三庭五眼”的说法可知,嘴在人脸器官的布局中位于下1/3。嘴的宽度占人脸的1/2,根据实验结果和数据分析,在我们的算法中,采用如下算法对嘴部进行定位。

首先根据1.1中的算法检测出人脸,并用矩形标识。由于嘴部左右基本对称,则定位该感兴趣区域时,在上下布局上取下1/3区域,在左右布局上,取中间1/2,左右各剩1/4的区域。由此确定嘴的大概位置,然后画出目标区域,并判断该区域是否合理,然后对其合理区域进行其他处理。

1.4 行为识别

行为识别是行为理解的基础,在智能监控、人机交互、虚拟现实和基于内容的视频检索等方面有着广泛的应用前景,更是成为了未来研究的前瞻性方向之一。目前,行为识别方法一般可以分成静态识别和动态识别。静态识别方法是把行为看作由一组按时间顺序串连起来的静态图像序列,其常用的方法有模板匹配方法;动态识别方法是定义每个静态姿势作为图模型上的一个节点或状态,这些节点或状态之间通过某种关系如概率联系起来。任何运动序列可以看作这些静态姿势的不同状态之间的一次遍历过程。

本系统在对嘴的行为动作进行识别时,首先需要检测嘴,如1.3中所提到的,在已经画出的人脸矩形上,用白色矩形将嘴部标记出来,然后将该目标区域平分为左右两个区域分别进行处理,具体处理方法如下:

1)设置标记区域的感兴趣区域(标记区域的左右2部分)。2)将感兴趣区域灰度化,并对图像进行阈值操作,得到二值图像。

3)创建并动态显示直方图,计算直方图的高度。

4)以直方图的高度值作为判断量,当左直方图高度值大于40时,激发鼠标左键单击操作,当右直方图高度值大于40时,激发鼠标右键单击操作。

当人脸在平移时,嘴部的相对位置不变,且嘴部形状及大小基本不变,而伸出舌头时,嘴部深色区域增大,二值化图像发生明显变化,于是直方图的高度增加,便可以此判断是否激发鼠标操作。在该设计中,嘴部动作的识别以及算法精准度对该系统的操作稳定性起关键性的作用。

2 设计界面及实验结果

系统界面主要由3部分组成:参数设置、视频显示及启停操作。

参数设置:用户可以对选择使用运行环境中检测到的任一摄像头,并可以根据运行环境,在Win7和WinXP之间进行选择调用摄像头适用的操作系统。该系统设计了声音控制和舌头控制两种方式,可根据使用人群的不同,选择不同的控制方式。此外,还可以对鼠标的响应速度进行调节,可以设置是否开机启动等。

图2 操作界面Fig.2 Interface

视频显示:如图2中所示,在窗口的右上角的空白处显示从摄像头获取到的视频,并显示检测到人脸的结果。

启停操作:主要是对操作界面的启动、停止、最小化到托盘及退出操作界面等进行操作。

结合图3可知该系统的具体操作步骤,按图中顺序依次选定合适的参数,如摄像头、使用系统、控制类型以及鼠标速度等,然后点击“开始”按钮,移动头部至合适位置,当舌头向右伸时实验效果如图3所示。

3 结 论

舌控鼠标系统的设计与开发涉及了人脸检测、跟踪技术、器官定位及行为识别等多方面的问题,实现了舌头对鼠标行为动作的模拟。使用了一些相对较成熟的算法,如AdaBoost算法、金字塔Lucas-Kanade算法等,这些算法在人脸识别和跟踪领域都很有说服力。未来的主要工作将会围绕特征提取算法选择展开,以期达到更加理想的效果。

[1]重庆市科学技术研究院.一种眼控鼠标实现方法及系统[P].中国:201310130392.9,2013/06/26.

[2]Hankyong Industry Academic Cooperationct,Hankyong Industry Academic Cooperation Center.Head Mouse[P].Korea:KR20090071335A,2009/08/03.

[3]Ebied H M,Revett K,Tolba M F.Evaluation of unsupervised feature extraction neural networks for face recognition[J].Neural Computing and Applications,2013,22(6):1211-1222.

[4]WANG Lin-ping,WANG Zu-feng.Application of agpso-based adaboost algorithm in human face detection[J].Energy Procedia,2012,13:1221-1230.

[5]ANDRE T,ANDREAS Z.Real-time object tracking for soccer-robots without color information[J].Robotics and Autonomous Systems,2004,48(1):41-48.

[6]Endang S D,Alexandre D W.Face recognition and tracking using unconstrained non-linear correlation filters[J].Procedia Engineering,2012,35(2012):192-201.

[7]蔡灿辉,刘强.基于均值移动与贪婪算法的多人脸跟踪[J].中国图象图形学报,2009,14(12):2611-2614.

CAI Can-hui,LIU Qing.Multiple face tracking using mean shift and greedy algorithm[J].Journal of Image and Graphics,2009,14(12):2611-2614.

[8]李培华.一种改进的Mean Shift跟踪算法[J].自动化学报,2007,33(4):347-354.

LI Pei-Hua.An improved mean shift algorithm for object tracking[J].Acta Automatica Sinica,2007,33(4):347-354.

[9]David Schreiber.Generalizing the Lucas-Kanade algorithm for histogram-based tracking[J].Pattern Recognition Letters,2008,29(7):852-861.

[10]Gary Bradski,Adrian Kaehler.Learning OpenCV[M].Sebastopol,USA:O'Reilly Media,2008.

[11]贾宏,彭嘉雄.视频序列中人脸眼嘴特征定位[J].华中科技大学学报:自然科学版,2004(2):17-19.

JIA Hong,PENG Jia-xiong.Location of the feature of human eyes and mouth in video sequences[J].Huazhong Univ.of Sci.&Tech.:Nature Science Edition,2004(2):17-19.

Research on the algorithm of tongue controlled mouse system

LI Pu, LIU Yong-kui, WANG Wei, HU Yang-cheng-lin
(Computer School, Dalian Nationalities University, Dalian 116600, China)

This paper introduces a tongue controlled mouse system implemented by real-time image acquisition and behavior identity.FirstlytheAdaboost algorithm and Lucas-Kanade algorithm are used for real-time face recognition and tracking,and then an algorithm for face organ location is presented.The mouse system is controlled by identifying behaviors of tongue.The experimentalresultsshow thatthesystem canaccomplishthebasicfunctionsofthemouseoperationwithtimelinessandstability.

Adaboost algorithm;Lucas-Kanade algorithm;behavior recognition;orgon location

10.14022/j.cnki.dzsjgc.2014.16.049

TP37

A

1674-6236(2014)16-0167-04

2013-10-22 稿件编号:201310146

中央高校基本科研业务费专项资金资助 (DC12010107);大连民族学院2013年硕士专业学位研究生创新基金项目(YCX2013006)

黎 璞(1987—),男,湖南慈利人,硕士研究生。研究方向:多媒体信息处理技术。

猜你喜欢
嘴部鼠标人脸
有特点的人脸
一起学画人脸
此人为何杠得如此嚣张?
圆号教学中嘴部教学的重要性及训练方法研究
Progress in Neural NLP: Modeling, Learning, and Reasoning
高中素描头像教学中提高嘴部刻画能力的策略探究
三国漫——人脸解锁
基于Horn-Schunck光流法的多目标反刍奶牛嘴部自动监测
长得象人脸的十种动物
45岁的鼠标