微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的手势语音转换器

基于FPGA的手势语音转换器

时间:06-04 来源:互联网 点击:

亮度的线形相关度较好,且两个差值都与G有关),肤色的亮度范围大致在10-170,抑制项选用|90-G|时效果最好,经过多次实验,最终将这一系数确定在了2,这样的补偿可以使阈值在一个范围内调整,对过亮和过暗的颜色进行抑制作用,最终得到的肤色经验公式为:

图2-5动态阈值示意图

2.4 表征肤色的二值化图像

由于公式中涉及到了二次项,而修正项为一次项,这使得灰度值与G-B,G-B在三维空间中表现为一个类似抛物面的曲面,这样,肤色转变到非肤色时,C的值变化将会很迅速(阈值为1000时,R-G或G-B变化1,阈值将变化45-65),如果要将灰度图像转化为二值化图像,阈值的范围将比较自由,经过分析发现,不考虑修正项时,阈值取在200-900间的值时,图像的改变并不大。从抑制干扰的角度出发,以及对后面的面积处理算法的综合考虑,我们将阈值定在1000。

我们在后期的处理中主要用二值化后的图像进行形态学的处理,而灰度图像则由于其数据信息量较大,用于后期的特征提取的修正。

二值化图像的取得方法是阈值的处理,其中阈值有表征肤色的RGB值求出,当算得量在阈值内时,取为1(颜色值为255),当算得量超过阈值时,取为0(颜色值为0)。

4.3 区域分割处理

肤色提取的确将图像处理成了一块块的分立区域,但系统并不知道这些区域的位置、大小等信息,在进行后续的处理前必须将这些区域分割出来。

4.3.1 垂直投影与分割

图像经过肤色提取之后形成一个个分立的肤色区域,当然也存在一些干扰,接下来的工作就是将这些区域进行分割,保证最终进行识别时每个单元都只有一块简单肤色区域,而且要求算法具有优良的抗干扰性。

图像中,能够通过肤色提取筛选的主要是人的面部,手以及手臂。从人体结构与一些平时的动作考虑,如果在水平方向上投影,则会经常出现手与手的重叠或手与脸的重叠(这里不分割手与手臂的区域),而在垂直方向则相对不太容易形成重叠。基于对此的思考,我们只进行了垂直方向的投影,用来分割垂直的区间。

垂直投影只需在肤色处理时同步将所有值向下累加即可:

上式中:T表示投影值;C表示肤色标量;i,j分别表示横向和纵向坐标。

分析这些投影曲线,将其中投影值较大且连续分布的区域分割出来,在图像上,就将图像分割成了垂直的长条状的区间,而这些长条区间还是有可能是由多个重叠的投影叠加而成,所以必须进行进一步处理。

4.3.2 水平积分与分割

垂直投影并没有将各个区域分割开,但却为水平投影提供了可行性。如果对每个区间都再进行一次投影,工作量比较大,其实有很多简单的修改方式:在作垂直投影时,顺带做一次水平从左到右积分,那么垂直的长条图像右侧积分值减去左侧的积分值就可以得到投影值,减少循环次数。在获取水平投影后,在重复刚才的分割就可以粗略的找到肤色区域存在的区间。

4.3.3 分割后的整理

在实现后上述分割后发现,即使区间划分的阈值取得再适当也会出现将一个大的连续的区域被分割成多个小区域的情况,如果直接将相距比较近的区域进行合成,则由会出现有些较近的区域无法分割开的情况,而且小面积的干扰也有可能被和并成一个大区间,引入不必要的麻烦,针对这种情况,我们将与大区间相邻的小区间合并,而一定范围内无区间或只有小区间则将其舍弃,这样,大区间分离的一些小区间可以被合并,而聚在一起的干扰则由于没有一个大区间作为核心而被舍弃,在解决了区域分裂的情况的同时又实现了一些抗干扰的功能。

4.3.4 面积筛选算法的采用

在二值化图像经过水平和垂直方向上的积分筛选之后,总会有些肤色接近的区域遗留,但是,这些区域大小不是很大,于是,我们这里采用了面积筛选的算法。

在图像对水平和垂直方向进行投影的同时,计算水平和投影方向阈值连续部分的长度,得到矩形区域的面积。

在这些面积中,将矩形面积过小的区域予以删除,得到如下的效果。

图3-1应用面积删选算法处理图片

分析结果可以看到,因为手部矩形区域面积比较大,所以,手部矩形区域之外的接近肤色干扰小区块被去除掉了。当然,矩形面积算法也有瑕疵的地方,手指上端的图像被切掉了一小部分,而且手部矩形区域依然有干扰点的存在。

但是,综合整体效果,可以看出,手部的形态特征得到了保存,因此矩形区域面积筛选算法可行。在后面的图像矩特征的提取已经够用。

4.4 图像矩特征提取及分配

即使知道了手势存在的区域,面积状况,可如此巨量的数据对于识别来说还是过于庞大了,面对这一问题,最常见的方法就是只提取轮廓,因为图像本身是一块封闭的区域,那么轮廓和区域图像可以相互转换,也就是说:在这

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top