1设计摘要
目前,研究自然化的人机交互是当今计算机科学技术领域的主要研究热点之一,手势输入作为一种自然、丰富、直接的交互手段在人机交互技术中占有重要的地位。 本项目提出以Xilinx公司Spartan 6系列FPGA为核心器件的手势识别系统设计的方案,采用FPGA芯片的内置DSP硬核作为手势识别模块的核心,负责图像识别算法的实现,采用FPGA作 为图像采集模块的控制中心,负责图像的采集,完成预处理和摄像头聚焦和云台的控制工作,以FPGA高速强大的处理能力保证了系统的实时性。手势识别部分融 合人手颜色信息和手势运动信息,利用种子算法对复杂背景下的手势进行分割。根据分割出的手势区域大大加速了运动特征参数的提取,并结合手势区域的形状特 征,建立手势的时空表观模型。识别时,采用独立分布的多状态高斯概率模型,进行时间规整,通过DSP和FPGA在处理不同结构算法的优势, 大大提高了手势识别的处理速度和准确性。高速性将是该手势识别系统突出的优点,可实现更高层次产品的开发并扩大应用前景。
2项目背景
研究自然化的人机交互是当今计算机科学技术领域的主要研究热点之一,手势是一种自然、直观、易于学习的人机交互手段,手势输入是实现自然、直接人机交互不 可缺少的关键技术。目前的手势识别技术主要分为基于数据手套和基于视觉两种。基于视觉的动态手势识别系统更是当前科学研究领域的热点之一。手势输入作为一 种自然、丰富、直接的交互手段在人机交互技术中占有重要的地位。
尽管手势识别技术的起步比较早,但绝大多数只是简单的停留在软件层次上,这些技术有的只是进行简单的比对,速度比较慢,实时性比较差,另外一些这是识别效率较低。因此需要一个从硬件上着手,专门用来识别手势的设备,以弥补上述两个方面的不足。
以现场可编程门阵列FPGA作为核心器件来完成图像的采集和预处理系统,该系统具有小型化、集成化且实时性好、灵活性高的特点。该系统将一些单调、不复 杂、工作量大且耗费时间的处理交给FPGA来完成,不仅能充分利用FPGA速度高的优越性,也能为DSP提供更多的时间进行更复杂的手势图像分析,使得手 势识别的结果更为可靠,提高了整个系统的性能。近几年具有乘法器及内存块资源的大容量FPGA以及基于IP核嵌入的FPGA开发技术的出现,可以将嵌入式 微处理器、专用字器件和高速DSP以IP核的形式方便地嵌FPGA,以硬件编程的方法实现高速信号处理算法。本文的目的在于如何利用DSP和FPGA各自 的优势,设计出满足实时手势识别处理要求的硬件平台。
综述,本文提出的高速基于DSP+FPGA架构的手势识别系统的设计,它综合了FPGA和DSP的优点,通过DSP和FPGA在处理不同结构算法的优势,大大提高了手势识别的速度和准确率。
3应用前景
手势识别技术的应用范围很广泛,主要有以下几个方面:
1、用于虚拟环境的交互。如虚拟制造和虚拟装配、产品设计等。虚拟装配通过手的运动直接进行零件的装配,同时通过手势与语音的合成来灵活的定义零件之间的 装配关系。还可以将手势识别用于复杂设计信息的输入;2、智能家居、多媒体设备的控制。通过手势识别可以是使用者通过简单的显而易见的手势对多媒体、家具 设备实现控制,如开关空调、多媒体展示等;
3、用于多通道、多媒体用户界面。正如鼠标没有取代键盘,手势输入也不能取代键盘、鼠标等传统交互设备,手势非常适合于指点、表达形状、几何变换和装配等 任务。语音对于表达抽象概念及离散属性(或命令)是具有绝对优势的,而且可以涉及视觉不及的对象。视线应用于人机交互在目标选择等方面具有直接性、自然性 和双向性等特点。将手势输入和这些交互通道结合,将增强现有的人机交互模式,从而实现更为直接、自然、和谐的人机接口。这种多模式的人机交互技术已经成为 当前研究的热点,多通道人机界面将在可预见的将来占主导地位,并进一步促进虚拟现实技术的发展;
4、聋哑患者与正常人的交流。手语是聋哑人使用,的语言,是由手型动作辅之以表情姿势由符号构成的比较稳定的表达系统,是一种靠动作/视觉交际的语言。手 势识别可以让机器“看懂”聋人的手语。识别手语和手语合成相结合,构成一个“人-机手语翻译系统”便于聋人与周围环境的交流;
4系统设计方案
通过摄像头采集手势图像,将图像数据存储到SDRAM中, FPGA处理系统通过对SDRAM的控制,实现云台控制和摄像头聚焦,且将图像数据按照所需时序从SDRAM中将数据读出,并进行锐化、与背景分离、消除 噪声以及等预处理,再将预处理后的数据送到MicroBlaze处理器中,在MicroBlaze处理器中对手势图像进行复杂的手势识别处理,完成手势分 割、手势识别,并将识别出的手势信息实时传给FPGA,由FPGA实时显示在显示设备上。
4.1设计框图
图1 系统设计框图
4.2系统设计
FPGA是整个系统的时序控制中心和数据交换桥梁,而且能够实现对底层的信号快速预处理。在很多信号处理系统中,底层的信号预处理算法要处理的数据量很 大,对处理速度要求很高,但算法结构相对比较简单,适于用FPGA进行硬件编程实现。而高层处理算法的特点是数据量较低,但算法控制结构复杂,适于用运算 速度快、寻址灵活、通信机制强大的DSP芯片来实现。
4.2.1图像采集模块
普通固定式摄像头不能调整方向,难以对移动中的目标进行实时的抓取、捕获,不能满足本项目对手势图像采集的要求。我们拟采用通过控制云台来实现对手势的实 时精确抓取。先通过几何人脸识别的方法识别出目标者,然后通过调节云台上的水平与垂直两个电机来调节摄像头的方向,限度的采集目标者的图像,然后再通 过光学变焦,使目标者清晰成像,这样可以在更大范围内获得包含手势的目标者的图像,从而能够更加精确的提取手势图像,进行手势分割,增加手势识别的精度。
一体化摄像机内置光学镜头,具有变倍、自动聚焦功能的摄像机,其结构小巧、使用方便、监控范围广。变焦控制可实现图像的变倍、自动聚焦,是一体化摄像机中 的关键技术之一。步进电机可将电脉冲信号转换成角位移,每接收一个脉冲信号就可驱动步进电机转动一个固定角度,实现物体的准确定位,通过控制脉冲的频率可 控制电机转动的速度,步进电机已广泛应用于高精度控制系统中。一体化摄像机光学镜头中包含变倍步进电机与聚焦步进电机,变倍电机转动时,为使图像聚焦清 晰,聚焦电机也应随之转动,具体转动步数与物距有关,具体参数可由镜头生产厂家提供的变焦跟踪曲线获得。为了适应不同物距的清晰成像,变倍跟踪结束后,配 合自动聚焦,以显示清晰的图像。
可通过人脸几何特征识别算法识别出目标者,几何特征的人脸识别方法:几何特征可以是眼、鼻、嘴等的形状和它们之间的几何关系(如相互之间的距离)。这些算法识别速度快,需要的内存小,识别率较低,但是可以满足方向调节的需求。
4.2.2 FPGA预处理模块
图像计算模块读取参数表数据,FPGA对采集模块输入并存储在外部原始图像SRAM中的原始图像数据进行计算处理,并将处理好的图像数据存储到结果图像SDRAM中,后,FPGA内部的图像输出模块从结果图像SDRAM中将处理后的图像数据读出。
4.2.3手势识别模块
手势研究分为手势合成和手势识别。手势识别技术分为基于数据手套和基于计算机视觉两大类。本文针对基于视觉的手势识别技术,手势是人手或者手和臂结合所产 生的各种姿势和动作,它包括静态手势(指姿态,单个手形)和动态手势(指动作,由一系列姿态组成)。静态手势对应空间里的一个点,而动态手势对应着模型参 数空间里的一条轨迹,需要使用随时间变化的空间特征来表述。
本文提出了单目视觉技术中一种复杂背景下的手势分割和识别方法。首先把运动着的手从复杂的背景中分割出来,然后提取运动和形状特征参数,建立手势的时空表观模型,采用独立分布的多状态高斯概率模型进行时间规整,后得到识别结果,如图2。
图2 手势识别框图
- 手势分割
手势分割(Gesture Segmentation)是基于计算机视觉的,是指如何把手势从手图像中分离出来。在复杂背景情况下,手势分割困难重重,还没有成熟的理论作为指导,现 有的算法计算度高,效果也不理想。主要有以下几种:(a)增加限制的方法,如使用黑色和白色的墙壁,深色的服装等简化背景,或者要求人手戴特殊的手套等强 调前景,来简化手势区域与背景区域的划分。(b)大容量手势形状数据库方法,如密西根州立大学计算机系的CuiYuntao建立了一个数据库,其中有各种 手势类在各个时刻不同位置不同比例的手型图像,作为基于模板匹配识别方法的模板。(c)立体视觉的方法,如纽约哥伦比亚大学计算机系的Gluckman利 用两个不在同一平面镜子的反射图像,计算物体与摄像机之间的距离,根据距离信息分割出人手。
手部区域中,肤色概率高于一定阈值的像素用一种符号标记,其他像素用另一种符号标记。这样,就可以得到一张关于手部区域的二值图。在二值图中,手连通区域 里经常会包含一些由于图像噪音引起的空洞。需要对二值图逐步求精。在此系统中,采用了形学分析中的小结构闭运算算子对分割图进行处理。通过区域合并与标号 的算法,可以计算出手部区域二值图中的连通区域,选取面积的区域作为人手区域,就得到了平滑后的手部区域二值图,进而提取手势轮廓。如图3。
图3 手势区域二值图
②手势模型
手势模型对于手势识别系统至关重要,特别是对确定识别范围起关键性作用。模型的选取根本上取决于具体应用,如果要实现自然的人机交互,那么必须建立一个精 细有效的手势模型,使得识别系统能够对用户所做的绝大多数手势做出正确的反应。目前,几乎所有的手势建模方法都可以归结为两大类:基于表观的手势建模和基 于3D模型的手势建模。基于3D模型的手势建模方法考虑了手势产生的中间媒体(手和臂),遵循的建模过程:首先给手(和臂)的运动以及姿态建模,然后从运 动和姿态模型参数估计手势模型参数。
③手势分析
手势分析阶段的任务就是估计选定的手势模型的参数。一般由特征检测和参数估计组成。在特征检测过程中,首先必须定位做手势的主体(人手)。定位技术有: ⅰ、基于颜色定位:利用限制性背景或者颜色手套。ⅱ、基于运动的定位:这种定位技术通常跟某些假设一起使用。例如假设通常情况下只有一个人在做手势,并且 手势者相对于背景的运动量很小。ⅲ、基于多模式定位:例如利用运动和颜色信息的融合定位人手,优点是能克服单个线索定位的局限。
④手势识别
现有的动态手势识别技术可以分归三类:基于隐马尔可夫模型(Hidden Markov Models, HMM)的识别,基于动态时间规整(Dynamic Time Warping, DTW)的识别,基于压缩时间轴的识别。我们采取隐马尔可夫模型来识别手势,通过几率的形式来对手势特征建立相应的模型,从而达到手势识别的目的。
5可行性分析
5.1手势识别算法
就目前情况来说,目前手势识别算法已经相当成熟。通常手势识别算法分为两大模块,即预处理模块和识别模块。
在预处理阶段,主要是对图像进行锐化处理、与背景分离以及消除噪声等操作。其中,锐化处理的目的是突出手势图像的边缘轮廓,为此,我们采用拉普拉斯锐化算法:
这里的fxy和f*xy分别为处理前后对应的像素分布。
此外,我们分别采用二值化处理和阈值面积消影法来图像进行分离和消除噪声。
在识别阶段,主要包括边界特征值的提取和手势的终识别。对手部进行特征提取时,我们选用六个自由度,即(x1,x2,x3,x4,x5,x6)。其中,x1:手指个数;x2:指定手指;x3:指间距离集合
x4:指定手指关节;x5:指定手指指根;x6:特定手势的检测。
对于终的手势识别,我们采用结构分类的算法,对不同的手势特征建立相应的数据库,其流程如下图:
|
图4 识别流程图
Spartan-6提供了大量的逻辑资源,有高达14.7万个逻辑单元,可通过对FPGA的编程实现更多的功能, 多重高效率集成模块,可以在FPGA中通过编程实现微处理器、存储管理、RAM管理、总线管理等模块的构建。
优化 I/O 标准选择,具有多电压、多标准 SelectIO™ 接口 bank,每对差分 I/O 的数据传输速率均高达 1,080Mb/s,可选输出驱动器,每个引脚的电流达 24mA,兼容 3.3V ~ 1.2V I/O 标准和协议, 符合热插拔规范可调 I/O 转换速率,提高信号完整性;内置高速 GTP 串行收发器,速度达 3.2Gb/s,支持高速接口,包括:串行 ATA、Aurora、1G 以太网、PCI,能够充分满足我们所要求的高速数据交换的要求。
Spartan-6 FPGA拥有定制低功耗专用的 DSP48A1 Slice,可进行高性能算术与信号处理,每个 DSP48A1 Slice 都由专用的 18 x 18 位二进制补码乘法器和 48 位累加器组成,二者均可在 390MHz 的速率下运行。DSP48A1 Slice 可提供广泛而丰富的流水线和扩展功能,能够为众多应用提升速度与效率,甚至超越数字信号处理的范畴,比如宽动态总线移位器、存储器地址生成器、宽总线多路 复用器以及存储器映射的 I/O 寄存器文件等。此外,累加器还可用作同步向上/向下计数器。乘法器能够执行桶形移位。这样的优点可以加以利用,能完成大量数据的处理,实现图像处理与分 析,目标抓取,进而对手势进行识别。
基于算法和硬件两方面的考虑,我们任务的核心内容就是使这些算法在 FPGA平台上得以实现。从上述分析可以看出,现在手势识别算法已日趋完善,加之有Spartan-6这种高性能的FPGA芯片,我们不仅有理由相信,而 且有能力达到预期的设计目标。除此之外,我们在日后的设计中会力求更优算法,同时使设计电路更加合理化,以便使我们设计的手势识别系统不断提高精度和速 度。