手势电视机遥控器.摘要本报告详细介绍了一款基于手势识别算法及DSP2812平台实现的手势电视机红外遥控系统。该系统可以将用户手势的运动信息转换成相应的红外信号从而达到手势遥控电视机更换频道和调节音量的目的。该系统主要由基于双端口RAM通信的双DSP并行处理平台、CMOS数字摄像头、万能红外遥控模块、上位机调试软件和以太网通信模块组成。实验测试表明,该系统能成功实现用户手势图像的采集,手势动作的识别、红外遥控功能及以太网通信功能。关键词:手势识别、DSP2812、红外遥控、UDP协议AbstractThispaperintroducedasystemcalledhandgesture-basedIRRemoteController,whichbasedonthegesturerecognitionalgorithmandwasrealizedonDSPplatform.TheControllercanconvertthemotioninformationoftheuser’shandgestureintocorrespondinginfraredsignalsoastoachievethepurposeofchangingchannelsandadjustingvolumesofTVwithhandgesture.TheControllerconsistsofadual-DSPparallelprocessingplatformwhichbasedondual-portRAMcommunicatingtechnology,CMOSdigitalcamera,universalinfraredremotecontrolmodule,PCdebuggingsoftwareandEthernetcommunicationmodule.Theexperimentaltestsshowthatthesystemcansuccessfullyrealizecollectingtheimagesofuser’shandgestures,recognizinggesturesandEthernetcommunicationfunction.Keywords:gesturerecognition,DSP2812,infraredremotecontroller,UDP1引言把新技术应用到日常生活当中,不仅能够发挥新技术的优势,达到推广新技术的目的,而且能够提高大众的生活水平,方便人们的日常生活。基于这样的目的,本设计针对家庭电视机红外遥控器进行了重新的思考和探索。传统的电视机遥控器需要用户按键进行更换频道,调节音量等操作。虽然大部分人已经习惯了这样的一种的遥控方式,但是,当中的弊端相信不少人也能够体会。对比最符合人的控制交互方式,按键操作始终不是最优和最容易接受的选择。那么能否找到一种更加直观,更加人性化的遥控方式,让我们在不依赖于传统遥控器的情况下也能随心所欲遥控电术的一个创新应用,它一改传统电视机遥控器的按键操控模式,采用直接判断使用者的手部动作的新方法来遥控电视机。该设备只需要使用者的手部在摄像头的拍摄范围按照规定的摆放方式动作,就能够遥控电视机进行音量增减或频道变换等操作。考虑成本和灵活性因素,我们把手势电视机遥控器设计为自带红外万能遥控的模式,使得该装置具有更为强大的拓展功能。除了遥控电视机之外,该遥控器还可通过学习其他红外控制指令对相应红外遥控家用设备进行控制。因此,手势电视机遥控器不仅把新技术应用到人们的日常生活中,使得人们对电视机的遥控操作更加便捷和人性化,而且还能给红外遥控带来一种新的乐趣,丰富大众的日常生活。2系统方案手势电视机遥控器是摄像头采集图像能力和DSP处理视频流能力的测试,最终确定的系统结构如图1所示。图1手势电视机遥控器的系统结构由图1可知,本系统采用了双DSP共同工作的双核处理平台,该平台主要由六个模块组成:(1)摄像头模块:由摄像头OV7620及驱动电路组成,负责手势图像采集;(2)DSP1:TMS320F2812,负责采图像、对图像预处理及与上位机的网络通信;(3)上位机软件:显示实时采集的图像,图像处理结果和调试参数等。上位机与DSP1之间通过以太网进行协议通信;(4)双端口RAM模块:为了实现两个DSP之间的高效数据通信,本系统采用了双端口RAM作为双方的外拓数据存储,根据双端口RAM的读写原则,达到双核有效通信;(5)DSP2:负责手势图像最终的识别和信息提取工作。它从双端口RAM获取图像数据,从图像中提取有用的特征,并进行判断,将判断结果转换成相应的红外模块控制信号;(6)红外遥控模块:负责学习电视机配套遥控器的红外遥控指令,将其放入指定的存储空间中。在DSP2给出发射指令时,查询存储空间,获取对应的红外指令,并发射。本系统中运用的算法主要包括:噪声消除算法,手势定位算法和方向判断算法。其中,噪声消除算法是后续算法的前提和保证。手势定位算法实现人手在摄像头拍摄区域的准确定位,为获取准确的手势特征提供可能。方向判断算法通过手势特征来判断手部运动的方向,为红外发射指令提供参数。系统实现的原理如图2所示。图2手势遥控系统实现原理框图3系统硬件设计3.1双DSP处理平台及其内存空间的设计图3硬件结构图本设计使用DSP2812进行图像采集、图像处理并且实现红外遥控和网络通信等功能。考虑到对处理器的多任务能力和速度有较高要求,为了让图像采集模块、网络通信模块、图像处理模块和红外遥控模块协同工作,实现DSP的快速响应,本系统为此定制了一个拥有双DSP2812的最小系统。通过双核分工处理,共同完成手势遥控的各种功能。该双DSP的系统硬件模块总结构图如图3所示。DSP1主要负责图像采集,与上位机的网络通信和用户按键的输入。按钮用于红外万能遥控功能设定。DSP2主要负责手势识别的相关图像处理,红外遥控和用户界面。为了实现双DSP之间的通信,该系统使用了Cypress公司的一款64k*16位的双端口RAM芯片CY7C028搭建了一个双DSP之间的数据通道,DSP1把采集到的图像通过时间控制有规律写入到数据通道中,DSP2从数据通道中取出图像数据存放到自己的RAM中,然后进行相关的图像处理,并把处理结果通过红外模块发射出去。在连接上位机的情况下,DSP1同时也把采集到的图像根据上位机的要求,使用UDP网络协议发送到上位机,从而可以在上位机观察图像采集与处理的情况。为了保证足够的空间给DSP进行相关的图像处理工作,除了通信用的双端口RAM之外,本系统特别地分别为两个DSP同时扩展了512k*16位的RAM空间,以满足图像处理的空间要求。该系统双DSP的储存器设计总框架如图4所示。图4双DSP的储存器设计框架图3.2CY7C028工作原理及数据通道的设计图5CY7C028内部功能框图CY7C028是Cypress公司研制的64k*16位低功耗CMOS型静态双端口RAM,最大访问时间为12ns,可以与大多数高速处理器配合使用,而无需插入等待状态。它具有真正的双端口,两端口可以同时进行数据存储,另外通过主/从选择可以方便地扩大存储容量和数据宽度。其内部功能结构如图5所示。CY7C028是一种性能优越的快速通信器件,对于大多数CPU的高速数字系统设计都非常适用。其主要特点有:提供两套完全独立的数据总线、地址总线、读写控制总线,允许两个处理器对双端口存储器同时进行操作;具有两套中断逻辑,用于实现两个处理器之间的握手信号;具备完全独立的忙逻辑,可保护两个处理器对同一地址单元进行正确的读写操作。当两个处理器对CY7C028存取时,存在以下4种情况:(1)两个处理器不同时对同一地址单元存取数据;(2)两都把双端口RAM作为自己存储器的一部分,当两个CPU需要数据传送时,假设左端CPUL向右端CPUR传送,首先CPUL将需要传送的数据存放到双端口RAM某段约定的地址单元中,然后向双端口RAM的最高奇地址单元0xFFFF即右端口的邮箱进行写操作,用以向CPUR发出一个中断,这样CPUR就进入相应的中断服务子程序,将约定地址单元的数据读出,然后对双端口RAM的右端口的邮箱进行写操作,用以清除该中断。在本系统中,双端口RAM是用来建立双DSP通信之间的数据通道,传递数据。在设计工作状态中,两个DSP不会同时读写该双口RAM,而数据的传递都是采用握手的通信模式,所以该系统使用的是双端口的中断判优方式。当DSP1往双端口RAM中写完数据之后,通过中断握手的形式,通知DSP2读取数据。DSP2要求数据时,同样的通知DSP1。如此,就可以高速有规律地实现双DSP的交流。双端口RAM与两个DSP之间的硬件连接如图6所示。图6双端口RAM与双DSP的硬件连接图双口RAM在两个DSP中都是使用CS6作为片选信号线。对于两个DSP,双端口RAM的起止地址都为0x100000。3.3基于OV7620图像传感器芯片的图像采集方案OV7620是OmniVision公司生产的一款高集成度的高分辨率逐行,隔行扫描CMOS数字彩色/黑白视频摄像芯片。其功能组成模块包括一个664*492的高分辨率图像数组,一个模拟信号处理器,双10bitA/D转换器,模拟视频合成;数字数据格式化器和视频输出端口。其数字视频端口支持60HzYCrCb4:2:2,16/8位等输出格式。内建的S用DSP1,通过外部中断nmi和int2,分别同步摄像头的vsn和href信号,同时通过绑定DSP的8根IO线同步读取图像到DSP内存中,从而实现了系统的图像采集工作。另外,由于,OV7620接27MHz的时钟,pclk的输出时钟为12M左右,对于这个速度,纵然150MHz的DSP,其中断的速度也是根不上的。为了让DSP能够顺利地读取到图像,我们必须要把摄像头的输出时钟降频,OV7620可以通过使用sccb,对摄像头内部的寄存器进行设置,从而达到减速的目的。OV7620模块与DSP1的硬件连接和OV7620的同步读取时序分别如图7和图8所示。图7OV7620与DSP1的硬件连接图图8OV7620的同步读取时序图从时序图中可以看出,DSP先捕获摄像头的场中断信号,标志一帧的开始,准备好存储一帧图像的数组。然后,DSP等待href行中断信号。最后,在行中断中,判断pclk信号,当pclk处于高的时候,此时,DSP读取该像素的值。至于,采集图像大小,可以通过读取程序修改。在该系统的,只需要采集手势动作的图像信息。最大有效数据的情况,采集尽量小的图像。于是,该系统的软件设置,DSP每一帧图像采集视野中间隔行的100*100大小的图像,每次存放在100*100的数组中。如此就可以实现系统图像采集功能。3.4RTL8019AS芯片及DSP网络通信的实现RTL8019AS以太网控制器是由Realtek公司出的一款高集成度的以太网控制芯片,具有8/16位总A接口是把RTL8019AS与网线的连接通道,完成控制器与网线的数据交换。MAC(介质访问控制)逻辑完成以下功能:当DSP向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令;当RTL8019AS完成了上帧的发送后,再开始此帧的发送。RTL819接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知主处理器。FIFO逻辑对收发数据作16字节的缓冲,以减少对本地DMA请求的频率。RTL8019AS内部有两块RAM区。一块16K字节,地址为0x4000~0x7fff;一块32字节,地址为0x0000~0x001f。RAM按页存储,每256字节为一页。一般将RAM的前12页(即0x4000~0x4bff)存储区作为发送缓冲区;后52页(即0x4c00~0x7fff)存储区作为接收缓冲区。第0页叫Prom页,只有32字节,地址为0x0000~0x001f,用于存储以太网物理地址。要接收和发送数据包就必须通过DMA读写RTL8019AS内部的16KBRAM。它实际上