一 项目规划摘要
人体特征和动作辨认是十分抢手的范畴,相关的算法和完成计划也层出不穷。依赖于FPGA丰厚的内部资源,能够完成高速的规划和数据处理。为了给人们的日子和文娱带来更多的趣味,咱们的规划创意来源于一款PC游戏,将人体动作辨认和个人电脑游戏结合起来,经过对人体动作的判别,操控游戏中相应物体的动作,这类似于无线操控,可是也不尽相同,这将是一个十分风趣而且吸引人的项目。本项目运用Virtex-5 OpenSPARC评价渠道,首要经过VGA解码芯片,将PC机中的视频流数据解码出R、G、B信号值和场、行信号。然后运用OV7670数字摄像头,吸取人体的手部动作,运用必定的算法,对摄像头数据进行处理,断定此刻的人体动作,然后将其与RGB重量信号进行叠加,经过装备DVI接口芯片,将叠加后的图画送至显现器显现。在正确检测出人体动作的前提下,FPGA将向PC机宣布相应的操控信号,用来操控PC机中游戏的动作。
二 体系的原理
本规划项目为人体动作辨认,规划的要点在于摄像头数据的获取、人体动作的正确辨认、图画的叠加、图画的显现以及操控信号的传输。本项目运用Digilent公司供给的Virtex-5 OpenSPARC评价板,板上含有Virtex-5 XC5VLX110T FPGA,2个Xilinx XCF32P Platform Flash PROMs(每个32 Mbyte),用于存储大型规划的装备信息;64位宽256Mbyte DDR2小型DIMM(SODIMM),兼容EDK 顺便的IP及驱动程序;板载32位ZBT同步SRAM 和Intel P30 StrataFlash;可编程体系时钟产生器,RS-232接口和许多其他I/O设备与接口等。评价板上的很多资源为本项意图规划和开发带来了极大的便当。整个体系的框图如下图1所示。
图1 体系的全体框图
下面简略介绍一下各部分的原理
- 数字视频流的解码
在Virtex-5 OpenSPARC评价板上,带有视频解码芯片AD9980,该芯片是一个8bit,95MSPS,带有模仿接口,专门用于捕捉YPBPR视频和RGB图画信号的视频解码芯片,它的图画分辨率最高可抵达1024×768,此刻的改写频率为85Hz。本次规划视频流的输入格局为640×480,改写频率为60Hz。AD9980芯片选用IIC总线,经过装备部分寄存器,设置输入视频的格局,能够从输入的视频流中别离出RGB 8bit重量和场行信号。
- 摄像头数据的获取
为了能精确的获取图画信号,本规划选用数字摄像头OV7670,其带有规范的SCCB接口,一起兼容IIC总线接口,因而能够在程序规划上,能够选用通用的IIC装备程序,简化规划,削减规划量。OV7670支撑VGA、CIF和从CIF到40×30的图画尺度。OV7670输出为8bit的图画数据,经过挑选输出图画的格局,8bit的数据代表了不同的RGB重量。一起OV7670还能直接输进场行信号,但与规范的VGA场行信号不尽相同。关于OV7670的运用,要点在于寄存器的设置和时钟信号的挑选。
- 数据的缓存
OV7670输出的数字图画信号,在进行处理之前,还必须进行必要的缓冲,这是由于挑选不同的数据格局,8bit的数据代表了不同的RGB重量,不能直接同AD9980解码后的RGB重量进行叠加,别的OV7670输出的场行信号也与规范的场行信号存在差异。在Virtex-5 XC5VLX110T FPGA中含有丰厚的块RAM,将其装备成FIFO,十分适合于很多高速数据的缓冲处理。
- 动作的辨认
人体动作的辨认是本次规划的重中之重,也是最为困难的当地。为了能够精确的判别出人体的动作,需求十分精细的算法。本项目类似于运动物体检测,有关的算法还正在研讨之中。
- 图画的叠加
图画的叠加原理,类似于字母的叠加,这部分的规划不是很难,只需求将AD9980和OV7670解码出来的RGB色彩重量叠加在一起即可,可是要做到视频图画画面的安稳,不呈现画面的跳动、串帧,需求细心研讨VGA时序。
- 图画的显现
在Virtex-5 OpenSPARC评价板上,带有DVI传输芯片CH7301,它的输入为RGB重量、场行信号和时钟信号。输入图画的格局可选,CH7301带有I%&&&&&%总线接口,最重要的也是相关寄存器的合理装备。假如要得到VGA信号,能够运用DVI转VGA接头,将DVI信号转换成VGA信号输出。
- 操控信号的传输
当现已精确的判别出了人体的动作时,FPGA将依据此刻的动作宣布相应的操控信号,传递个PC机。关于操控信号的传输能够选用RS-232接口,模仿键盘,此刻需求编写串口模仿键盘程序。不同的操控信号对应于不同的动作,PC机接纳操控信号,操控游戏产生相应的动作。
三 体系的软件规划
体系在开始时,首要获取PC机的视频流数据,然后经过摄像头得到人体动作的图画数据,在数据经过缓冲处理、辨认之后,将于解码后的RGB重量彼此叠加,最终经过DVI接口将视频数据输出至显现器,一起FPGA将操控信号传送给PC机,到达操控PC机中游戏的意图。体系的软件流程如下图2所示。
图2 体系软件流程图