发明名称 基于混合神经网络的手势识别方法
摘要 本发明公开了一种基于混合神经网络的手势识别方法,对于待识别手势图像和手势图像训练样本,首先采用脉冲耦合神经网络检测得到噪声点,再利用复合去噪算法对噪声点进行处理,然后采用细胞神经网络提取手势图像中的边缘点,根据提取到的边缘点得到连通区域,利用曲率对每个连通区域进行指尖检测得到待定指尖点,排除人脸部分干扰得到手势区域,然后根据手势形状特点进行分割,根据分割后手势区域的轮廓点得到保留相位信息的傅里叶描述子,选择前若干个傅里叶描述子作为手势特征;根据手势图像训练样本的手势特征训练BP神经网络,将待识别手势图像的手势特征输入BP神经网络进行识别。本发明通过多种神经网络的运用,提高了对手势识别的准确率。
申请公布号 CN104834922A 申请公布日期 2015.08.12
申请号 CN201510280013.3 申请日期 2015.05.27
申请人 电子科技大学 发明人 纪禄平;尹力;周龙;王强;卢鑫;黄青君;杨洁
分类号 G06K9/00(2006.01)I;G06N3/08(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 成都行之专利代理事务所(普通合伙) 51220 代理人 温利平
主权项 一种基于混合神经网络的手势识别方法,其特征在于,包括以下步骤:S1:提取待识别手势图像和手势图像训练样本的特征,具体步骤包括:S1.1:建议手势灰度图像的脉冲耦合神经网络模型,将当前手势灰度图像各像素点的灰度值作为脉冲耦合神经网络中对应神经元的输入,利用脉冲耦合神经网络的发放特性对手势图像的像素点进行检测,如果像素点的输出状态为点火状态,则将检测结果矩阵中该像素点对应的元素置为1,否则置为0;遍历检测结果矩阵的每个元素,如果元素值为1,则以该元素为降噪处理窗口的中心,降噪处理窗口的大小根据实际情况设置,统计降噪处理窗口中除中心点元素以外的其他元素的值,如果值为0的元素数量大于预设阈值,说明该中心点是噪声点,其他情况则不是噪声点;分别按以下公式计算噪声点的两种噪声估计值H(i,j)和V(i,j):H(i,j)=|a(i,j)‑b(i,j)|其中,a(i,j)是图像中像素点(i,j)处的灰度值,b(i,j)为该像素点进行中值滤波后的中值输出灰度值;<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>V</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>|</mo><msub><mi>m</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>a</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>|</mo><mo>+</mo><mo>|</mo><msub><mi>m</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>a</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></mfrac></mrow>]]></math><img file="FDA0000725607080000011.GIF" wi="955" he="156" /></maths>其中,m<sub>1</sub>(i,j)和m<sub>2</sub>(i,j)分别代表像素点(i,j)所在邻域中与x(i,j)灰度值最接近的两个点的灰度值;如果H(i,j)≥T<sub>1</sub>,并且V(i,j)≥T<sub>2</sub>,则采用中值滤波对该噪声点进行处理,否则采用均值滤波对该噪声点进行处理;S1.2:对经步骤S1.1去噪后的手势灰度图像进行直方图均衡化;S1.3:建立手势灰度图像的细胞神经网络模型,将均衡化后的手势灰度图像各像素点(i,j)的灰度值作为细胞神经网络模型中对应细胞的输入u<sub>ij</sub>,按照状态转移过程的公式进行迭代,直到整个细胞神经网络收敛,得到每个细胞的输出y<sub>ij</sub>(t);遍历细胞神经网络中每个像素点对应的细胞元的输出值,当某个像素点的输出值在[0,1]范围内,如果其对应邻域内其他像素点的像素值和大于预设阈值,则本像素不是边缘像素,否则是边缘像素点;当输出值在[‑1,0)范围内,不是边缘像素点;S1.4:根据步骤S1.3得到的边缘像素点得到连通区域,提取得到连通区域的轮廓,对每个连通区域分别进行指尖检测,指尖检测方法为:遍历连通区域中的每个轮廓像素点,将该像素点作为基准点,坐标记为p(p<sub>x</sub>,p<sub>y</sub>,0),预设一个距离常数L,沿轮廓方向取p点前面的第L个点p<sub>1</sub>(p<sub>1x</sub>,p<sub>1y</sub>,0),取点p后面的第L个点p<sub>2</sub>(p<sub>2x</sub>,p<sub>2y</sub>,0),计算向量<img file="FDA0000725607080000021.GIF" wi="86" he="93" />与向量<img file="FDA0000725607080000022.GIF" wi="87" he="89" />之间夹角的余弦值cosα,如果cosα大于预设曲率阈值T,则判定该点为待定指尖点,否则不作为待定指尖点;根据遍历方向确定指尖位置向量积<img file="FDA0000725607080000023.GIF" wi="204" he="91" />的符号,如果按照手势区域整体轮廓的顺时针遍历时,向量积符号应为负,否则为正,计算待定指尖点向量<img file="FDA0000725607080000029.GIF" wi="86" he="75" />与向量<img file="FDA0000725607080000024.GIF" wi="87" he="85" />之间的向量积<img file="FDA0000725607080000025.GIF" wi="235" he="85" />如果该向量积的符号与指尖位置对应的符号相同,则保留为待定指尖点,否则不保留;判断该连通区域中检测到的所有待定指尖点中,y坐标最大的待定指尖点与y坐标最小的待定指尖点的y坐标差值是否超过人脸高度的一半,如果是,该连通区域不是手势区域,否则作为待定手势区域;再进一步判断的每个待定手势区域中待定指尖点数量是否超过预设的数量阈值,如果是,则该连通区域为手势区域,否则不是;求取手势区域的主方向,根据主方向按照手势长度与宽度比值为2对手势区域进行分割,得到分割后的手势区域;S1.5:将经步骤S1.4分割后得到的手势区域,将手势区域的轮廓点坐标以复数形式表示,将所有轮廓点坐标构成离散序列,记轮廓点数量为n,对该离散序列进行傅里叶变换,得到n个傅里叶系数z(k),k=0,1,…,n‑1,计算傅里叶描述子<img file="FDA0000725607080000026.GIF" wi="148" he="94" /><img file="FDA0000725607080000027.GIF" wi="389" he="172" />其中k′=1,2,…,n‑1,<img file="FDA0000725607080000028.GIF" wi="46" he="62" />表示手势区域主方向与x轴的夹角。在傅里叶描述子中选择前Q个构成特征向量;S2:将训练样本手势图像的特征向量作为训练样本输入BP神经网络,其对应的手势图像类别作为BP神经网络的输出,对BP神经网络进行训练;S3:将待识别手势图像的特征向量输入步骤S2训练好的BP神经网络中,输出识别得到的手势图像类别。
地址 611731 四川省成都市高新区(西区)西源大道2006号