APP下载

基于方向直方图的家居环境手势遥控方法研究

2015-12-02史存英王金海

电视技术 2015年12期
关键词:遥控器手势遥控

史存英 ,王金海,2,崔 军

(1.天津工业大学 电子与信息工程学院,天津 300387;2.天津市医学电子诊疗技术工程中心,天津 300387)

近年来随着网络通信、计算机应用、人机交互等技术的飞速发展,人们逐渐开始探讨如何使人居住得更加舒适便捷,“物联网”、“智慧家庭”开始成为各科研机构和各大公司的研究热点,也取得了一些显著成果[1]。另一方面,随着人们生活质量的提高,家用电器在城乡居民的日常生活中仍占据着不可替代的重要地位,但随着数字化和智能化的推广,使用传统遥控器的不足日益凸显,遥控器按键增多,操作越来越复杂,尤其一些身体残障人士和上了年纪的老人觉得操作起来非常麻烦[2],而手势作为一种自然而直接的交流方式,更为简捷方便。因此用手势操作代替传统遥控方法的想法应运而生,这样用户就可以很方便地随时操控电视机等常用电器。

现有的手势遥控大多还是需要触摸板或数据手套等载体,且都应用于新型智能电视,没考虑到传统的非智能电视机,也没有关注其他常用电器,也没有解决临时找不到遥控器或者戴手套感知体验差等问题,尚未实现真正的“以人为本”的人性化交互。而且,现有的手势遥控器都是各个生产厂家采用不同的设备和工作原理,设备价格昂贵且通用性不好,没有一个全开放式的平台,不符合大众用户的需求。

结合手势识别和红外遥控技术,本文研究了一种新的家居环境遥控方法,用户只需对着摄像头比划相应的手势就能实现对受控对象的遥控,并得到操作结果的反馈信息。使用该遥控方法操作时完全不需要任何手持设备,仅用手势就可以完成,为身体残障人士和老年人提供了极大便利;该遥控方法可内置多种厂家的红外编码,具有很好的通用性。

1 系统整体方案

该方法将遥控系统分为4部分:采集单元、处理单元、控制单元和通信单元,图1为该遥控系统的总体框图。

图1 手势遥控系统总体框图

采集单元负责采集用户的手势,并把采集到的图像传输给中央处理器处理,此过程通过图像传感器实现。处理单元是本系统的关键部分,主要负责对采集到的图像进行手势检测与识别,判断用户发出的是何种手势(频道加/减、音量加/减、返回上一步、返回主选单、确定、电视开关)。控制单元是核心部分,负责手势编码的转换与控制命令的发送,首先将识别结果转换为对应的红外遥控码,然后发出相应控制指令,此过程由ARM最小系统完成。通信单元有红外发射和指示灯显示两部分,它的作用是将红外遥控码发送到受控对象的红外接收端,并发送遥控操作成功与否的指示信号,最终实现用手势遥控家电并能看到相应的反馈信息,此过程由红外发射电路和指示灯电路实现。

2 系统设计

以下将从硬件和软件两个方面阐述手势遥控系统的设计与实现过程。

2.1 系统硬件设计

本系统硬件主要包括用于采集手势的图像采集装置、负责处理和控制的中央处理器以及受控对象,其整体硬件框图如图2所示。

图2 系统硬件框图

2.1.1 图像采集装置

图像采集装置选用CMOS图像传感器OV7620。CMOS传感器集成度高、功耗低、成本低,虽然噪音较大、灵敏度较低,但可以采用白平衡控制、色饱和度、对比度、边缘增强以及伽马校正等影像控制技术补偿,达到与CCD传感器相媲美的效果,而且对于家庭来说,成本是非常值得考量的一点。

综合考虑,本系统选用OV7620,该图像传感器通过SC⁃CB总线控制,有效分辨率可达640×480,帧速率为30 f/s(帧/秒),数据格式有YUV,YCbCr,RGB三种可以选择(考虑到本文选择的手势检测算法采用YCbCr数据格式最佳),工作时功耗<120 mW,待机时功耗<10 mW,电源供电为5 V,可隔行扫描也可逐行扫描。其与中央处理器的管脚连接如图3所示。

图3 图像采集器与中央处理器管脚连接图

2.1.2 中央处理器

本系统的核心部分是中央处理器,所有信息的处理和命令的发出都是通过它完成。中央处理器由ARM最小系统和一些外围电路组成,主控芯片选用飞思卡尔公司K60系列芯片MK60DN512Z,该款芯片功能强大,适用于高集成度和低功耗的嵌入式应用中,采用Cortex-M4内核,提供1.25 DMIPS/MHz的DSP指令(单精度浮点处理),CPU工频高达100 MHz,芯片本身具备512 kbyte FLASH、128kbyte SRAM、16路通道的通用DMA控制器,多功能外部总线接口可以连接外部存储器、门阵列逻辑和液晶等。最大限度地降低成本和减少外围器件。中央处理器接收到图像传感器OV7620的数据之后,进行预处理和识别等操作,并将识别结果转换为对应的遥控指令,控制红外发射模块和指示灯模块。

电源问题也是嵌入式产品需要解决的一个重要方面,由于本系统面向的是家庭,且5 V电源非常方便获取,所以使用5 V电源输入,再采用低压降电压稳压器ASM1117-3.3,固定输出电压为3.3 V,精度1%,输出电流0~1 A,这样就解决了系统的供电问题。电源模块的电路连接如图4所示。

图4 电源模块的电路连接图

2.1.3 红外发射电路

红外发射电路由红外发光二极管和限流电阻组成,与K60的PTA10管脚相连,如图5所示,由中央控制器控制其发送载波为37.9 kHz的16位红外遥控编码,能够在3 m范围内灵活控制电视机。选取的红外发光二极管波长为830~950 nm,红外二极管infrared的阳极接正向电压3.3 V,阴极接K60的PTA10引脚,R12为限流电阻,可以起到保护二极管和I/O端口的作用。

图5 红外发射电路

2.2 系统软件设计

为便于调试和管理,本文采用模块化的程序设计方法,每个模块实现一个独立的功能,主程序通过调用各子程序模块完成系统的整体功能,子程序包括系统和端口初始化程序、图像处理程序、红外遥控码发射程序及指示灯显示程序。图6为中断处理函数的流程图。系统完成初始化工作后,摄像头定时每隔10 s采集一次图像,接着通过椭圆肤色模型判断是否有人手区域,即是否进入中断处理函数进行后续处理。

进入中断处理函数,说明有类肤色的运动目标进入摄像头区域,可能有手势操作发生,下一步就要判断用户发出了何种遥控手势。调用二值化、轮廓提取、手势识别这三个处理函数逐层判断用户是否发出了操作手势,若有操作手势发生则发送对应红外编码给其红外接收端并使绿灯闪烁5 s(指示操作成功),若无则使红灯闪烁5 s(指示操作失败),至此一次操作完成,退出中断处理函数。

图6 中断处理流程图

系统上电完成初始化工作后开始运行,无限循环于产生和处理中断信号之间,直至关闭系统或者断电。

3 关键技术

3.1 手势识别技术

手势具有自然直观的特点,人机间通信不再需要中间媒体,用户可以简单地定义一些适当的手势来控制周围的机器,这是一种自然并符合人们行为习惯的交互方式。近年来随着计算机视觉技术的发展,利用普通摄像头就可以实现对手势信息的非接触性捕获。

3.1.1 手形检测

对基于视频流的手势识别来说,手势的跟踪是不可忽略的一个问题,常用的跟踪算法包括卡尔曼滤波法、粒子滤波法、Camshift算法等运动估计算法以及光流法、图像差分法等目标检测算法,本文需要解决的首要问题是判断用户是否有手势命令发出。运动估计算法虽然精确但计算量太大,不适合应用在嵌入式设备中;经过综合对比分析,本文采用定时处理摄像头捕获的图像的方法来检测手形,因为遥控操作时间间隔不是ms级的,所以每隔10 s处理图像的设计完全可以满足用户的需求,又可以减少嵌入式设备的计算量。先利用椭圆肤色模型对图像中每个像素点进行遍历,将得到的类手势像素点进行二值化处理,通过八邻域搜索法得到当前帧的肤色点集轮廓和类肤色连通区域[3],结合人手的比例结构特征过滤掉非人手区域,消除人脸、手臂及其他类肤色区域的干扰,最终确定出候选人手区域,完成手形检测。

所用椭圆肤色模型的数学表达式为

标记完连通区域之后要筛选类人手区域,筛选规则为满足以下条件的将被去掉:

1)填充率SMi/Ni≤ 0.4,其中SMi为连通区域的总像素数,Ni为连通区域中的肤色点数;

2)连通区域wi<10或hi<10,其中wi为连通区域的宽度,hi为连通区域的长度;

3)长宽比wi/hi<0.5;

4)长宽比wi/hi>0.85。

3.1.2 手势识别

接着判断用户发出的是何种操作命令,即候选人手区域为何种手势动作。手势识别算法非常多,各自有其优缺点,有些识别结果精确但计算量很大,有些对手势的旋转、平移和比例改变以及摄像头视角改变不太敏感,所以选取合适的识别算法非常关键。由于嵌入式本身的特点,要求尽可能选择计算量较小的手势识别算法以提高其时效性,经过对比研究,本文最终选用计算量相对较小且对平移和尺度变化不敏感的方向直方图算法[4-5]。预先定义好不同的操作命令对应的手势,并训练样本以确定不同手势边缘的方向直方图,存为模板,当新的手势图像到来后先分析其方向直方图然后与模板进行对比,进而识别出手势所代表的具体遥控命令。

图像中像素点的灰度梯度指的是其灰度变化的最大方向,所有像素点灰度梯度的集合就构成了整幅图像的方向直方图。本系统要在嵌入式设备上实现,要求算法计算量尽可能要小,所以只对图像的边缘求方向直方图,同时,为减少计算量,本文仅对图像中筛选出的人手区域做计算。首先利用Sobel算子得到该区域的边缘,并计算出其边缘所有像素点的灰度梯度,计算公式为

式中:Sy和Sx分别代表当前像素灰度的竖直和水平方向变化值,其值由Sobel水平和垂直算子与当前像素值做卷积运算得到。

通过式(2)计算出边缘每个像素点的梯度方向θ(x,y),然后将[0,2π]均匀地分成36份,这样每个角度区间的长度都是10°,统计出落在每个角度区间内的边缘像素点个数,记为φ(k),k=1,2,…,36,将这36个φ(k)集合,就构成了当前图像中目标区域的边缘方向直方图。为提高此方法对于不同大小的手的通用性并提高运算速度,将φ(k)作如下归一化处理

在识别之前,首先要对需要识别的九种手势的方向直方图进行训练,对于每种要识别的手势做10次实验,取10次实验数据的均值作为该手势的标准直方图模板。捕获到一帧手势图像后要进行模板匹配以确定其含义,假设当前手势的方向直方图和模板z的方向直方图分别为φ(k)和φz(k),这里用Bhattacharyya系数来衡量两者的相似性,公式为

式中:ρz越大,说明二者的相似性越大,ρz最大的模板z就是当前要识别的手势的含义。

3.2 红外遥控技术

红外线的光谱在红色光之外,因此得名,其波长在0.76~1.5 μm,红外遥控就是利用红外线传递信息的一种遥控方式,由于其电路简单、编码和解码相对容易、能抗干扰且功耗小成本低,广泛应用于家用电器遥控领域。其工作原理是红外发射端将代表不同功能的编码脉冲调制后发送出去,受控对象通过红外接收端接收到调制信号,解调后执行相应的遥控功能,以此实现控制家电的目的。

不同厂家不同设备遥控器编码大多不同,例如康佳遥控器KK-Y345A,其编码格式为引导码+16位用户码+16位数据码+同步码,用示波器分析得到其引导码、“0”码、“1”码和同步码的对应波形,就可以解析出该遥控器所有按键的对应编码,又如长虹遥控器K5D*28编码为引导码、用户码、用户反码、数据码和数据反码,创维遥控器P6编码格式为引导码、用户码、数据码和数据反码。本文解析了康佳遥控器中与定义的手势含义对应的8个常用按键的编码,具体编码见表1。图7为用示波器观察到的康佳遥控器发出的1帧信号的波形。

实验所用遥控器是KK-Y345A,载波为37.9 kHz,占空比为2/3,使用K60的低功耗定时器模块Lptmr延迟I/O端口输入电平搭配50 MHz外部时钟源来实现载波信号的输出;然后通过控制延迟时间来实现不同的遥控器编码输出。

4 测试与分析

1)实验平台的构建

为测试该遥控方法的性能,本文选用家用电器中最为常见的电视机作为受控对象,测试输出载波和各红外编码是否达到要求,以及输入手势信号是否与原有按键功能保持一致。实验平台包括摄像头OV7620、中央处理器、一台电视机(康佳牌)、一台示波器,测试过程为:(1)用示波器观察输出的8种红外信号波形,测量其载波频率并与表1中编码值对照,查看其输出波形是否正确;(2)选取不同光照条件、背景复杂程度不一的6种情况作为测试环境,对应的手势识别实验数据如表2所示;(3)测试识别到的各个手势能否引起电视机的正确响应。

表1 遥控器常用按键编码表

图7 遥控器一帧信号的波形图

表2 手势识别实验数据

2)结果分析

测试发现中央处理器输出的红外码波形是满足实际操作需要的,而且手势识别的结果能与遥控命令一一对应。

采用该方法平均手势识别率为86.667%,基本满足需要。通过对识别数据的分析,发现以上6种实验环境下错误检测的一个共同点是背景中包含颜色与肤色相近的椭圆形或正方形物体,从而被误当成人手。而漏检的原因各不相同,侧光照射下高光的部分趋近于白色而造成漏检,非高光部分虽被检测出来,但由于区域过小且标定的长宽比不符合筛选规则而被去掉;室内无灯光或背光时成像会趋于黑色而造成漏检。所以还要对算法进行进一步研究改进,同时考虑适当进行光照补偿以改善极端光照条件对系统的影响。

5 小结

本文所研究的手势遥控方法的主要特点是良好的交互性和可视化操作,仅用符合人们习惯的手势就可完成对家用电器的遥控,无需其他手持式设备,实用性强且成本较低,操作方便简单,为特殊人群提供了便捷的家电遥控方式。随着技术的发展和人们需求的不断增加,作为一种无障碍的交互手段,手势遥控在家电等消费电子领域的应用将更加广泛,前景广阔。

[1] 肖志勇,秦华标.基于视觉跟踪和手势识别的人机交互[J].计算机工程,2009,35(15):198-200.

[2] 任海兵,祝远新,徐光佑,等.基于视觉手势识别的研究—综述[J].电子学报,2000,28(2):118-120.

[3] 李全彬,王小明.复杂光照下的人脸肤色检测方法[J].计算机应用,2010(6):1594-1596.

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

[5] 倪恺,肖志涛,张芳.基于梯度方向直方图的行人检测方法研究[J].电视技术,2011,35(5):23-25.

猜你喜欢

遥控器手势遥控
“遥控”老师
我是“糊涂虫”
时间遥控器
爸妈有个“遥控器”
挑战!神秘手势
他是如何遥控引爆的
行走的飞行遥控器
V字手势的由来
胜利的手势
遥控赛车