静态手势识别总体方案
0.说明
静态手势识别是2019年四五月份做的一次设计,实验平台是Matlab,做法较为传统,只是出去兴趣的入门级尝试。主要针对静态手势,采用肤色模型分离手部区域,提取手势的轮廓信息,采用不同的描述方式进行量化,最后采用BP神经网络和贝叶斯分类器进行分类。点击查看总结文档。后面条件允许的话会逐步更新每一部分的设计思路和代码。
1.实现目标
设计的总体目标是能够在自建的200幅5类手势数据库和上千幅24类标准数据库上实现静态手势的高速和高精度识别。
2.实现步骤
1)总体思路
从获取图像到最终识别大体分为四个步骤,图像获取–手势分割–手势特征提取–分类器分类。其中最重要的手势分割的处理,这也是我在做设计时花费时间较多可最后效果最差的部分。整体结构如下:

2)每部分效果
基于高斯肤色模型和动态阈值的手势分割
首先由得到的RGB图像转化颜色空间,使得在另一个域中肤色具有较好的聚类性和一定的抗干扰能力。经过高斯肤色模型和动态阈值分割得到肤色似然图,之后通过开运算去除噪声得到手势二值图像。


基于Canny算法的轮廓提取

基于Hu矩的量化

基于傅里叶描述子的量化
依据低频傅里叶描述子的能量占比选择描述子数量

傅里叶描述子重建效果

分类
分类采用模板匹配法、BP神经网络、贝叶斯分类器,这其中关于模板的选择、选用那种距离描述、BP神经网络调参、朴素贝叶斯原理是需要我们注意的地方。





融合特征分类
联合Hu矩和傅里叶描述子,在特征维数相同的条件下进行实验。


其他尝试
上面说到曾花费很多时间在分割上面,当时尝试了高斯模型、椭圆模型、线性YCbCr和非线性YCbCr;通过自适应提升算法检测到人脸计算模型参数作为手部的肤色参数;采用运动信息与肤色结合,分步检测肤色区域等方式。当然不论是最终的设计中还是这些尝试,分割方案均属于最传统的方法,当前基于学习方式的分割方案是大家研究的方案,在设计中也被指责分割方案差,不过作为图像或者模式识别或者兴趣爱好,这个第一次尝试算是马马虎虎及格了。
本文介绍了一个基于Matlab的静态手势识别设计方案,通过肤色模型分割手部区域,利用Canny算法提取轮廓,结合Hu矩和傅里叶描述子进行特征量化,并采用BP神经网络和贝叶斯分类器进行分类。实验在自建的5类手势库和24类标准库上取得良好效果。
7277

被折叠的 条评论
为什么被折叠?



