基于Android 平台的视觉手势识别及其相册管理实现

    王文丹 傅自钢

    

    

    

    摘要:该文介绍的是基于Android平台的视觉手势识别及其相册管理实现软件的有关设计,该软件各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。接口传递的信息是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。图像采集模块利用摄像头驱动模块来启动摄像头,按照一定的帧率采集用户手势图像,并发送到手势识别模块处理。手势识别模块利用手势特征模型对深度图像数据进行算法处理,识别出其中的人手运动事件并发送到Android应用模块,从而实现视觉手势识别和相册管理。

    关键词:参数传递;返回值;帧率;手势特征模型;算法

    中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)13-0193-02

    Abstract: This paper introduces the visual gesture recognition based on the Android platform and the design of the software in the photo album management implementation, the software module between the function call, parameters and return values in a way that information. Interface message is encapsulates the data structure of data, in the form of parameters or return values in transmission between each module. Image acquisition module using the camera driver module to start the camera, according to certain image frame rate to collect user gestures, and sent to handle gesture recognition module. Gesture recognition module using the signal characteristic model of depth image data algorithm processing, identify the staff sports events and sent to the Android application modules, so as to realize the visual gesture recognition and photo album management.

    Key words: parameters; The return value. Frame rate. Gesture characteristic model; the algorithm

    1 概述

    手势是人类交流沟通中不可分割的一部分,视觉手势识别技术在最近几年也得到了一些应用,这一技术开辟了人机交互系统的新方向,因此对视觉手势的研究具有很大的现实意义。该软件可运行在Android智能手机,用户可以通过拳掌的变换以及手势的不同来浏览相册,在视觉手势浏览相册时,主要是手势图像的采集,手势识别,人机交互。软件使用者可在Android智能手机上安装运行,在上面进行相册的浏览。

    2 设计概念和过程描述

    2.1基本设计概念和处理流程

    在该软件的设计过程中,我们分析了软件的系统结构以及各个模块的处理流程,基本的系统结构流程如下:首先,手机用户安装软件,打开软件之后进入主界面;然后会是缩略图界面,握拳向左向右移动来浏览大量图片;我们可以通过手势张开打开图片;然后进入大图模式界面,手掌靠近摄像头图片放大,手掌远离摄像头,图片缩小;在操作时手掌与摄像头距离保持不变时,手掌前后左右移动,图片也将前后左右移;最后手势握拳关闭图片,回到缩略图界面。这就是整个的系统流程,在这里需要说明的就是,手机用户必须将软件进行安装;用户手机需具有前置摄像头;用户在进行手势识别过程中手势的变化要比较明显,否则识别不出。

    2.2功能和模块的划分

    手势识别系统包括图像采集模块,手势识别模块,Android应用模块。在之前的介绍中我们有提到,图像采集模块利用摄像头驱动模块来启动摄像头,按照一定的帧率采集用户手势图像,并发送到手势识别模块处理。手势识别模块利用手势特征模型对深度图像数据进行算法处理,识别出其中的人手运动事件并发送到Android应用模块。Android应用模块根据接收到的手势消息类型产生特定的应用行为。下面图1显示的是功能和模块的划分:

    2.2.1手势跟踪与识别

    手势识别的基本流程,主要是手势图像的采集,手势识别,人机交互。下面图2展示手势跟踪与识别流程图:

    在手势识别的过程中,通过哈尔分类器识别出视觉手势,在这之前要首先进行图像的采集和预处理过程,同时还要进行手势跟踪。在哈尔分类器进行手势识别过程之后进行人机交互过程,在此过程中,主要依靠的是哈尔分类器。

    2.2.2运动轮廓检测

    运动轮廓检测作为识别流程的第一个环节,其重要性不言而喻,如果此环节无法检测出人手,下面的手势识别流程将无法进行,同时检测效果的好坏也将直接影响到后续的过程,并最终影响到识别结果。这一步的主要工作就是将有意义的区域——人手区域从序列图中分列出来。下面图3展示运动轮廓检测过程:

    在运动轮廓检测过程中,通过手势跟踪与识别得到的图像序列会在这一环节中得到利用。首先,该环节利用差分法来检测图像序列从而检测出运动轮廓;然后,进行轮廓去噪声以及形态学处理;最后,进行运动轮廓的提取。提取出的运动轮廓对于手势动作的识别具有决定性的意义。

    2.2.3手势动作识别

    手势识别阶段利用跟踪阶段得到了人手轮廓轨迹信息进行手势动作的识别,并输出人手识别的结果。下面图4展示手势动作识别过程:

    包含手势的深度图像经过运动轮廓的检测过程之后,系统进行人手锁定功能,这个时候会有两种判定结果:一是进过判定之后结果为“否”,继续传入图像序列进行运动轮廓检测;二是判定结果为“是”,进行人手轮廓锁定、人手跟踪以及跟踪的判定。系统在经过跟踪判定之后,若手势识别成功,则就会将识别出的手势运动消息传送下去;否则,判为失败继续检测运动轮廓。

    3 软件测试分析

    对软件的测试,我们采用的是正向测试和反向测试的策略。当用户在安卓智能手机点击进入本款软件应用时,首先呈现的是缩略图模式,我们对该模式下的手势都进行了相关的测试。软件对手势识别的灵敏度以及用户对图片的管理都得到了很好的测试效果。

    4 结论

    本文中就基于Android平台的视觉手势识别及其相册管理实现这一应用功能进行了详细的分析,通过各模块之间采用函数调用、参数传递、返回值的方式进行信息传递,并且接口设计方面也实现了各种信息的传递。在进行了大量的软件测试后,该软件安装以后,检测到有手势时将手势捕捉,通过各个模块之间的调用,读入信息,并进行手势的跟踪,识别相应的手势,根据不同的手势响应不同的事件并调用相关的模块。当检测到手势握拳时,关闭相册,软件的运行就会结束。最终实现了手势识别以及相册管理的功能。

    参考文献:

    [1] 邓凡平.深入理解android[M].北京:机械工业出版社,2011.

    [2] 吴亚峰,索依娜.Android核心技术与实例详解[M].北京:电子工业出版社,2010.

    [3] 王向辉,张国印,沈洁.Android应用程序开发[M].北京:清华大学出版社,2010.

    [4] 吴彩芳,谢钧,周开店.基于手势识别的人机交互技术研究[J].计算机时代,2016(2).

    [5] 孙红,廖蕾.基于OpenCV的多特征实时手势识别[J].电子科技,2015(8).

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建