由于传统电视机遥控器的按键操作比较机械且缺乏娱乐性,设计了一种以DSP2812为核心的手势识别算法。通过将用户手势运动的信息转换成相应的红外信号,从而实现手势遥控电视机更换频道和调节音量的目的。该系统主要由双端口RAM通信的双DSP 并行处理器、CMOS 数字摄像头、红外遥控模块、上位机调试软件和以太网通信模块组成。实验测试表明,该系统能够实现用户手势图像的采集、手势动作的识别、红外遥控及以太网通信功能。
传统电视机遥控器是一种按键操控方式,其操作比较机械且缺乏娱乐性。本文提出一种采用直接判断使用者手部动作的方法遥控电视机,使用者在摄像头拍摄范围内按照规定的摆放方式移动手部,就能够遥控电视机进行音量增减或频道变换等操作。设计使人们对电视机的遥控操作更加便捷、人性化,丰富大众的日常生活。
1. 系统设计方案
手势识别电视机遥控器是集合图像采集、手势识别和红外遥控三大主要功能的控制装置。依据要实现的采集图像能力和DSP 处理视频流能力的功能要求,确定系统结构如图1 所示。
图1 手势识别电视遥控器系统结构
本系统采用了双DSP 共同工作的方式,主要由六个模块组成。
1) 摄像头模块: 由摄像头OV7620 及驱动电路组成,负责手势图像采集。
2) DSP1: 核心是TMS320F2812,负责对图像采集及预处理,与上位机网络通信和用户按键信息的输入。
3) 上位机: 显示实时采集的图像,图像处理结果和调试参数等。
4) 双端口RAM 模块: 实现两个DSP 之间的高效数据通信。
5) DSP2: 负责提取手势图像特征和向红外遥控模块发送指令。它从双端口RAM 获取图像数据,从图像中提取有用的特征,并将判断结果转换成相应的遥控指令。
6) 红外遥控模块: 负责学习电视机配套遥控器的红外遥控指令,将其放入指定的存储空间中。在DSP2 给出发射指令时,查询存储空间,获取对应的红外指令并发射。
2. 系统硬件设计
2. 1 双DSP 处理器及内存空间设计
本设计使用双TMS320F2812 的DSP 进行图像采集、图像处理并且实现红外遥控和网络通信等功能。这样可以满足并行图像处理能力和快速响应的速度要求,同时两个DSP 扩展了512 K × 16 位的RAM 空间,以满足图像处理的空间要求。
为了实现双DSP 之间的通信,系统采用Cypress公司的一款64 K × 16 位的双端口RAM 芯片CY7C028 搭建一个数据通道。DSP1 把采集到的图像通过时间控制有规律写入数据通道中,DSP2 从数据通道中提取图像数据存放到自己的RAM 中,然后进行相关的图像处理。在设计工作状态时,使用双端口中断判优方式,数据传递采用握手的通信模式。当DSP1 向双端口RAM 中写完数据之后,通过中断握手的方式,通知DSP2 读取数据。DSP2 要求数据时,也会以同样的方式通知DSP1,从而实现双DSP 高速有规律地数据传递。双端口RAM 与两个DSP 之间的硬件连接如图2 所示。
图2 双端口RAM 与双DSP 的硬件连接图
2. 2 图像采集电路设计
本系统直接使用DSP1 通过外部中断NMI 和INT2,分别同步摄像头OV7620 的VSN 和HREF 信号,同时通过绑定DSP 的8 根I /O 线同步读取图像到DSP 内存中,从而实现了系统的图像采集工作。为了让DSP 的时钟频率与OV7620 的时钟频率匹配,必须要降低摄像头的输出时钟频率。对摄像头OV7620 内部的寄存器进行设置,达到减慢数据传输速度的目的。OV7620 模块与DSP1 的硬件连接和OV7620 的同步读取时序分别如图3 和图4 所示。
图3 蓝牙发送模块接口电路
图4 OV7620 同步读取时序图
通过时序图可知,DSP 先捕获摄像头的场中断信号,准备好存储一帧图像的数组。然后,DSP 等待HREF 行中断信号。最后,在行中断中判断PCLK信号,当PCLK 处于高电平时,DSP 读取该像素值。为了在不丢失手势特征信息的前提下采集尽量小的图像,DSP 采集视野中间隔行的100 × 100 大小的图像,存放在100 × 100 的数组中。通过修改读取程序可以改变采集图像的大小。
2. 3 内存及DSP 网络通信设计
本系统采用RTL8019AS 与DSP1 通过连接对应的地址数据总线,设置片选信号,实现DSP 的以太网通信。RTL8019AS 与DSP1 的硬件连接如图5 所示。
RTL8019AS 内部有两块RAM 区,一块16 K 字节,地址为0 × 4000 ~ 0 × 7FFF; 一块32 个字节,地址为0 × 0000 ~ 0 × 001F。RAM 按每256 字节为一页存储。一般将RAM 前12 页( 即0 × 4000 ~ 0 ×4BFF) 存储区作为发送缓冲区; 后52 页( 即0 ×4C00 ~ 0 × 7FFF) 存储区作为接收缓冲区。第0 页只有32 字节( 地址为0 × 0000 ~ 0 × 001F),用于存储以太网物理地址。要接收和发送数据包就必须通过DMA 读写RTL8019AS 内部的16KB RAM。
图5 RTL8019AS 与DSP1 硬件连接图
2. 4 红外遥控模块电路设计
红外遥控模块包括三个部分: 接收部分、发送部分和数据处理部分。接收部分包括光电转换、解调、高速采样以及数据分析等模块,发送部分包括遥控发送和电光转换模块,数据处理部分包括中央处理以及存储模块。
3 系统软件设计
3. 1 手势图像预处理算法
手势图像提取算法选择帧间差分的方法实现手部图像分割。利用间隔短暂时间的两帧图像比较,获取两张图像运动方向的手部围成的一小段白色区域,然后采用阈值分割的方法对获取的图像二值化,消除噪声,最后根据此图像序列含有的白色像素点的多少来确定图像序列中有无物体存在。对手势图像预处理的算法描述如下:
1) 从视频图像序列中选取相邻n 帧的两帧图像,其中前一帧图像为Pk-1( x,y ),如图6( a) 所示,后一帧图像为Pk( x,y),如图6( b) 所示;
图6 从视频图像序列中选取的图像
2) 为了减少计算量,将480 × 640 的图像隔4 行6 列提取像素点,左右各忽略20 列,上下各忽略40行,获得两帧100 × 100 的图像
和
,如图7( a) 和7( b) 所示;
图7 缩小后的图像
3) 计算后一帧与前一帧的差为Gk( x,y) ,得到目标的变化量,如图8 所示;