论文部分内容阅读
近年来,移动互联网行业正在快速发展。与此同时,搭载着移动操作系统的移动设备使用数量也在与日俱增。在当今流行的各种移动操作系统,Android系统凭借着其开源、应用程序丰富等优势发展迅速。然而,Android平台的人机交互方式仍旧以触摸屏幕操作为主,并没有太多创新的交互方式出现。本文主要研究将手势识别技术应用于Android平台的相关内容,为Android平台的人机交互提供一种崭新的、更加人性化的交互方式。通过对手势检测、手势识别等算法的研究,本文在Android平台上开发了一款对常见的六种手势进行识别的APP应用,该应用具有较好的扩展性。本文的主要研究工作如下:1)在手势检测阶段,使用了Viola-Jones目标物体检测算法来进行手势检测,并选取能够表现局部纹理特性的LBP特征来进行相关分类器的训练。Viola-Jones检测框架在人脸识别领域中有着广泛的应用,但在手势检测方面的应用并不多见。而在特征的选取方面,使用LBP特征与基于Voila-Jones检测框架中使用的Haar-like特征相比,识别率基本持平,但前者的运算量极小,实时性好,适合用于Android平台上。2)在手势识别阶段,本文在检测出手势的大致区域的基础上,通过对手势区域的分割,手势边缘检测以及轮廓提取等步骤,得到手势的轮廓信息。进而通过使用具有不受位移、尺度、旋转等因素干扰的Hu矩信息,使用模板匹配算法来进行手势的分类信息,从而实现手势识别功能。3)通过调用OpenCV相关函数编程实现了前面介绍的算法,该程序可以识别六种特定的静态手势。然后使用NDK工具将其封装为Android平台可以调用的JNI接口。本文通过调用手势识别的接口实现了一款以悬浮框显示的APP应用。该应用可将识别到的手势信息以广播的形式发送给其他应用程序。最后展示了使用该应用对一个图片浏览器控制的例子。在处理器为单核1GHz、Android系统为4.0.4版本的中兴U950手机上,该应用处理一幅大小为200*160的视频序列帧(从输入到识别出手势)的平均消耗时间为93ms。