智能手势控制系统的算法实现
2023-04-19
来源:星星旅游
中国科技信息201 4年第O1期CHINA SCIENCE AND TECHNOLOGY INFORMATION Jan.2o14 信息科技 基金项目: “北京市大学生科学研究与创业行动计划”项目 智能手势控制系统的算法实现 贲永明管孟凌李丹阳杨丹 北方工业大学信息工程学院,北京1 00144 贲永明 摘要 随着现代社会对“智能化”的不断追求,发明一种新的高效的人机交互方式 日益成为人们研究的重点方向。本文采用了摄像头捕捉人体动作,由上位机 进行图像处理,然后发送指令给下位机的方式来进行体感遥控的新尝试。该 系统借助0pencv函数库,对摄像头采集的图像进行三层处理:前端处理实现 对运动特征的提取,中端处理实现对手势的准确辨认;末端处理实现对手势 意图的准确翻译。实验结果表明,该系统可以实时有效的识别手势并准确发 出指令遥控小车运动,实现了人体手势对智能系统如智能小车的体感遥控。 该手势控制系统具有可观的应用前景,可以为人们的生活带来更加智能化的 体验。 关键词 背景差分;重心绘制;轮廓检测;手势识别;信息提取 DOI:103969/j.issn.1001—8972.2014.14.027 .引言 随着科学技术的发展,人机交互在多领域得到了广泛 的应用,人们不再需要调整自己的行为被动适应机器的要 求,而是用更为智能的方式让机器听懂人类的语言。人机 交互的发展使我们的生活更加便捷也更加智能化。当前人 流法计算复杂,很难实现实时处理;背景差分法一般能够 较完整地提取目标点,且较容易实现。 本文对手势控制系统进行研究,目的是通过对手势的 识别及处理实现对小车的控制。设计的系统借助基于(开 源)发行的跨平台计算机视觉库一一opencv,采用直接 机交互的主要信息输入方式有键盘输入、鼠标输入、触摸 屏输入、语音输入、视觉输入。基于视觉的输入是通过摄 像头捕捉手部运动特征,将手语转换成与之相对应的命 令,从而摆脱人机交互时必须物理接触的限制。 手势识别是一种对包含运动特征的图像序列的分析处 理的方法,主要由目标检测、目标跟踪、目标识别和目标 行为理解组成。对运动手势的检测方法有:帧差法、光流 法和背景差分法。帧差法具有较好的实时性,其背景不积 累,且更新速度快、算法简单、计算量小,但对环境噪声 调用摄像头的方法采集视频流,对运动目标进行检测、 识别,滤除干扰后将运动特征点提取出来并发送相应的指 令。 1系统方案 本系统采用VC++6.0结合OpenCV的软件平台实现对 手势信息的提取,先通过高斯滤波、背景差分、二值化、 形态学滤波等做前端处理,实现对运动特征的提取;然后 较为敏感;光流法不需要预先知道场景的任何信息,就能 够检测到运动对象,可处理背景运动的情况,但噪声、遮 挡等因素会对光流场分布的计算结果造成严重影响,且光 通过轮廓提取、轮廓识别等中端处理实现对手势的准确辨 认;最后通过重心定标、运动特征点筛选、信息翻译等末 端处理准确的译出人体手势所要表达的意图,从而实现对 智能系统(如小车)的指挥。 一95一 信息科技 中国科技信息 1 4耸第0 期CHINA SCIENCE AND TECHNOLOGY INFORMATION Jan.2o14 制,系统更加具有实用性。 智能手势控制系统框图如图1所示。其中系统初始化 包括静态背景的抓取,重心的确定;视频流处理模块通过 高斯滤波、背景差分、二值化前景图、形态学滤波实现对 运动特征的提取;手势识别模块先是获取包含运动特征区 域的轮廓集,然后绘制取轮廓最sl,91"接矩形、求取矩形 面积,借助可调的面积阈值来滤除干扰,最终筛选出精度 较高的手势;信息提取模块在之前绘制好的坐标基础上 2.2视频流处理 2.2.1背景差分法 背景差分法通过输入图像与背景图像进行比较从而分 割出运动目标。背景差分法:首先需要有一张相对比较干 净的背景图像,然后用视频中某一帧图像和此背景图像 进行差分运算,并将差分结果的绝对值存人一个新的图 像中。在得到的新图像中,若像素的值大于一个特定的阈 值,则认为视频图像中在相同位置的像素属于运动目标区 域,若像素的值小于或者等于・个特定的阂值,则认为视 频图像中在相同的位置属干背景区域,通过这种方案将图 像中的运动特征提取出来。 2.2.2二值化前景冈 背景差分得到运动图像后,还需要用图像■值化函 实现对运动特征点的准确抓取,并根据运动特征点准确 翻译手势所对应的指令;指令发送模块由串KI实现,通过 VC++6.0自带的Mscomm控件搭建串口通信的平台,并且 为了达到更远的传输距离,采用了无线传输的指令发送模 式。 系 统 化 视 频 理 手 势 别 信 息 提 __-_■ 取 I指 I 令 l初 -・・_◆ 处 始 £ ・_l_◆ 识 }发 ——— …达 数cvThreshold处理,其中的阂值我们使用最大类间方差 法,基本思想是:发阈值将图像分割成两组,一组灰度对 应目标,另一组灰度对应背景,则达两组灰度值的类内方 差最小,两组的类『[JJ方差最大。对图像Image,记t为目标与 背景的分割闽值,日标像素数占图像比例为 ,平均灰 度为 0;背景像素占图像比例为∞&,平均灰度为 。图 像的总平均灰度为: = ÷甜 。。从最小灰度值到最 大灰度值遍历t,当t使得值g= 。珏。~ + 一 最大时,t 即为分割的最佳闽值。 2.2.3形态学滤波 形态学滤波主要包括腐蚀与膨胀两种操作,任Opencv 函数库里分别为cvgrode()函数为图像腐蚀、cvDilate()函 数为图像膨胀,按处理顺序不同分为如下两种操作:先腐 蚀后膨胀,称为开操作,用以过滤离散点或噪声点;先膨 胀后腐蚀,称为闭操作,用以缝合断裂处。本系统中为滤 图1 智能手势控制系统框图 2系统构成与算法实现 2.1系统初始化 2.1.1静态背景的抓取 由于摄像头拍摄场景时,容易受到外部各种环境因素 的影响,要从各种不同甚至复杂变化的背景中提取出物体 形态改变,需考虑如背景颜色、物体与摄像头距离等因素 的影响,使得相关研究的普遍问题是适用性不强,因此我 们使用一种比较简单但实用的办法来尽可能减少噪声干 扰。 捕获摄像头并进行静态背景的提取: pCapture:cvCaptureFromCAM(一1); pFrame=cvQueryFrame(pCapture); 除离散点等千扰,采用开操作,即先腐蚀后嘭胀。 2.3手势识别 利用cvQueryFrame函数对摄像头摄取的视频流抓 帧,滤除前五帧的干扰后,提取相对抖动较小的一帧图像 作为初始化的静态背景图像,为后面的物体形态识别提供 一2.3.1绘制轮廓集 为了较为清晰的描述一个运动物体的形状或者说是为 了获取目标的一个坐标参数,需要将运动物体的轮廓描绘 出来。具体实现方法为:首先我们需要将图片中所有存在 的轮廓寻找出来,并将其存入一个单独开辟的可以存放轮 廓矩阵的“轮廓树”,然后再在内存中开辟一块新的内存 区域,用以存放某一个轮廓中所包含的边界点的序列,接 着调用cvDrawContours函数将序列中包含的曲线上的点 绘制出来,便形成一个包含多个轮廓的轮廓集。 2.3.2利用轮廓的最小外接矩形滤除干扰 在图像的获取过程中,由于外界环境的变化等因素影 响,图像中不可避免的包含有噪声点,而这些噪声点将有 可能使图像二值化的结果与理想状态的结果出现偏差,而 这些偏差也将使得提取的轮廓中出现额外的= 扰轮廓,因 个相对比较干净的背景。 2.1.2重心的确定 为了准确的定位重心坐标,需要调用函数 cvMoments。函数cvMoments用以计算最高达三阶的空间 和中心矩,并且将结果存在结构moments中,使用此矩可 计算物体形状的重心,面积,主轴和其他的形状特征等。 由公式(1): 涮 = “ ) ) 厂( y)axdy(p,q=0,1 …。 ∞) (1) 其中x,Y。i,j是待处理区域的坐标(单帧图像中的像素 点坐标)。 令Xc,Yc表示区域重心的坐标,则如公式(2)所示: p(c= 拍/%日; (Yc=Mo:, f0。: ,1、 \ , 在二值图像的情况下,M∞表示区域的面积。 为了保证坐标划分的合理性,为重心纵坐标设定一・个 可调的上移量,得到最终的定标原点,之后的区域划分将 以定好的原点为基准进行,从而使得指挥者的位置不受限 此,引入一种新的方式降低这个干扰。我们使用图像轮廓 的最小外界矩形的面积去限制输出轮廓面积,即给需要最 终显示的轮廓加一个面积阈值。从而在很大程度上降低了 干扰,提高了系统的适用性。 2.4特征点提取 根据之前确定的重心坐标,提取有效特征点,具体算 一96—