APP下载

应用于M eego智能手机的手势识别系统设计

2014-11-20房汉雄沙丽鹃李静辉

电视技术 2014年7期
关键词:U盘手势蓝牙

房汉雄,何 鹏,沙丽鹃,袁 琪,李静辉

(齐齐哈尔大学通信与电子工程学院,黑龙江齐齐哈尔161006)

随着社会的进步人们对弱势群体的关爱越来越多,残疾人生活中的辅助器具是其生存保障和提高生存质量的最直接有效的重要途径之一。秉着这种重要的通用设计理念和残疾人辅助设备的需求情况,本系统将手势识别技术引入到每个人生活必备的智能手机中,进而有利于残疾人向外界寻求帮助或者操控那些具有接收指令模块的设备。

本系统地工作目标是通过手机摄像头采集手势信息,利用编制的手势识别系统[1-2]识别出手势信息的含义,进一步将其转换为相应的控制命令,通过智能手机的蓝牙发射器传给相应的设备,从而实现对相应仪器的控制功能。

1 开发工具和应用开发环境

2010年推出的开放源码的Linux项目——Meego操作系统能够在智能手机、笔记本计算机和电视等多种电子设备上运行,有助于这些设备的无缝集成[3]。结合通用设计的理念,故本系统以Meego为运行平台。Meego中含有Qt架构[4],Qt是源码开放的程序开发环境[5-6],故本系统以Qt为平台进行开发。由于进行手势识别需要大量的图像处理函数,如果这些函数均自主开发将浪费大量的时间,而OpenCV[7]提供了大量的开源的计算机视觉库函数,Qt和OpenCV 都是以 C++为基础的[8],所以在本系统中使用Qt和OpenCV进行开发。

1.1 Meego 环境搭建

Meego是开放源码的Linux项目,它包含了性能优化,可供面向计算和图形的应用及连接服务的开发的组件,对互联网标准的支持,基于Qt的易于使用的开发环境,是面向小型平台及移动设备的规模和性能而优化的Linux架构。Meego适用的平台包括上网本、简易台式机、手持计算和通信设备、车载信息娱乐设备、上网电视、多媒体电话。在Windows下安装 Meego的方法如下[9]:

第一步,整理磁盘腾出一个大于20 Gbyte的新空间来安装Meego系统;第二步,准备一个大于2 Gbyte的U盘下载Meego镜像.img文件,使用Win32DiskImager把Meego镜像写到U盘中;第三步,设置BIOS从U盘启动,选择install Meego,然后选择“Use free space and create default layout”选项自动寻找空闲空间来进行安装;第四步,安装完毕,拔出U盘,重启,系统会自动进入Meego,如图1所示。

图1 Meego界面(截图)

1.2 应用开发环境配置

Qt是开源的,能够实现一次编程。开源是指用相同的源程序可以在不同的编译器中编译生成不同体系的可执行文件,这些可执行文件可以分别运行在不同的平台上。Meego是以Qt为基础的,在Meego操作系统下支持Qt4.7。Qt的安装和配置过程如下:

第一步,下载Qt4.7并安装,特别注意安装添加bluez模块;第二步,启动Qt;第三步,创建Qt Quick GUI,具体方法为:File>New File or Project>Qt Quick Project>Qt Quick Application;第四步,设定项目名称和路径;第五步,选择Qt模拟器选项建立应用;第六步,编写调试程序。至此,Qt安装完成。在以后编写Qt程序的过程中,目标板选择为“Meego”即可,如图2所示。

图2 Qt测试程序配置(截图)

由于Qt缺少计算机视觉库,因此还需要下载安装OpenCV,然后在Qt中使用OpenCV库,具体配置过程如下:由于Qt在解析路径时不能识别空格,因此必须确保OpenCV的安装路径中不包含空格,例如D:OpenCV;然后启动Qt并创建工程文件.pro,在创建工程文件的时候向工程中添加以下语句:

INCLUDEPATH+=D:OpenCVcvinclude

INCLUDEPATH+=D:OpenCVcvauxinclude

INCLUDEPATH+=D:OpenCVcxcoreinclude

INCLUDEPATH+=D:OpenCVotherlibshighgui

LIBS+=D:OpenCVlibcv.lib

LIBS+=D:OpenCVlibcvaux.lib

LIBS+=D:OpenCVlibcxcore.lib

LIBS+=D:OpenCVlibhighgui.lib

LIBS+=D:OpenCVlibcvcam.lib

2 系统框架设计与实现

2.1 系统框架

本系统工作的目的是想让残疾人对着手机作出代表一定命令意义的手势,在智能手机中通过本文开发的这些源代码进行手势识别,将手势转换成相应的指令信息,再通过Qt的驱动蓝牙技术使得蓝牙传输模块将这种命令传输给相应的设备,进而帮助残疾人生活。建立的系统模型如图3所示,开发过程如下:首先,分析现实世界中的手势行为特点和认知特点,研究通用手势交互任务的特点,建立面向任务的手势模型;其次,研究基于视觉及序列图像的的手势识别技术,利用OpenCV库进行手势识别,分析Meego手机操作系统框架,将手势识别系统移植到智能手机中;再次,将手势信息转换为相应的控制命令,利用蓝牙传输模块将控制命令通过蓝牙发射器传给相应的智能设备,实现相应的控制功能;最后,开发试验平台,支持上述各项的试验研究。

图3 系统模型

2.2 系统实现

本系统首先使用Qt驱动摄像头采集实时图像并建立图形用户界面,然后将采集到的手势图像转换成OpenCV支持的数据格式,再进行肤色提取、高斯平滑、形态学膨胀、边缘检测、轮廓提取、特征提取;然后将提取到的特征与样本空间进行对比从而得到手势识别结果。根据识别结果,从相应的数据库中找到该手势所代表的含义并转换成相应的控制信息,通过Qt驱动蓝牙模块向外发送指令。具体工作过程如下:

第一步,调用Qt Mobile APIs的Camera模块使摄像头获取实时的手势频图像,将采集到的一帧图像转换为OpenCV使用的数据结构IplImage,使用QMainWindow创建图形窗口界面。

第二步,采集手势图像(如图4所示)建立样本库,对每个样本计算Hu矩作为其特征向量并训练SVM模型。

图4 手势样本采集(截图)

第三步,将图像转换到 YCrbr颜色空间,利用&preframe.operator IplImage进行肤色提取,再转换成灰度图像进行平滑滤波GaussianBlur,接下来依次做边缘检测Canny、形态学膨胀erode和轮廓提取drawContours,得到感兴趣的手势目标图像,如图5所示。

图5 手势4的轮廓(截图)

第四步,对目标手势进行Hu计算(如图6所示)Hu-Moments以提取特征,再进行SVM训练CvSVM svm。

图6 Hu计算(截图)

第五步,进行模板匹配,得到手势识别结果,如图7所示,表示待识别的手势与样本匹配的概率为98%。

图7 识别结果(截图)

第六步,通过地址指针找到手势信息代表的含义信息。

第七步,通过Qt的-bluetooth将指令信息从蓝牙设备发射出去。

3 结论

本文提出在Meego上进行手势识别,该系统是在同时安装Meego和Windows7两个系统的笔记本计算机上实现的,对常见的手势0~9的识别准确率达到98%,识别耗时在5 s以内。如果受控设备得到较好的研发,使其具有无线接收模块及相应的程序控制,实现一定的操控功能,那么实现与目标物的通信将使本系统具有较好的应用前景。

[1]王守磊,朱民耀,陆小峰,等.一种基于方向直方图的嵌入式手势识别系统[J].电视技术,2012,36(15):133-137.

[2]张金刚,林喜荣,戴晓晴,等.指纹识别系统的一种低功耗实现方法与应用[J].电视技术,2011,35(11):117-121.

[3]许柏森.基于Meego平台的同步构架的设计与实现[D].哈尔滨:哈尔滨工业大学,2012.

[4]陈都习.基于Meego的多点触控研究与设计实现[D].成都:西南交通大学,2012.

[5]陈曦,刘增强.基于Qt/Embedded嵌入式控制界面的设计[J].化工自动化及仪表,2011,38(9):1131-1139.

[6]陈勇,王宏伟.基于Qt/E的智能仓储管理便携式终端设计[J].重庆邮电大学学报:自然科学版,2012,24(3):369-374.

[7]易子豐,孙坚,钟绍俊,等.基于OpenCV的高精度零件焦点距离测量研究[J].电视技术,2011,35(17):126-128.

[8]张羽,徐端全.OpenCV分水岭算法的改进及其在细胞分割中的应用[J].计算机应用,2012,32(S1):134-136.

[9] 红薯.安装 Meego和 Windows7双系统的方法[EB/OL].[2013-07-23].http://www.oschina.net/question/12_20561.

猜你喜欢

U盘手势蓝牙
蓝牙音箱的直线之美
挑战!神秘手势
采用U盘文件冗余方案实现TSP系统的可靠装载
V字手势的由来
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
胜利的手势
紧急:蓝牙指尖陀螺自燃!安全隐患频出
U盘“闹肚子”
一招鉴定扩容u盘