项目简介
本项目运用OpenCV提取手势数据,借助神经网络训练出手势模型,把训练好的模型加载到手势识别程序中,从而实现对手势命令的获取,能够有效识别不同手势。
项目的主要特性和功能
- 数据采集:利用OpenCV提取手势相关数据,可修改色彩空间范围和图片存储路径,在合适时机按指定按键获取手势Hu矩数据及其他数据。
- 数据处理:将获取的数据按等量原则处理并做好标签,为模型训练做准备。
- 模型训练:使用神经网络算法,可修改训练数据表路径、超参数和训练手势目标模型索引键,训练出手势识别模型。
- 手势识别:加载训练好的模型,通过摄像头捕获手势图像,识别出对应的手势,并以图像形式展示识别结果。
安装使用步骤
第一步:获取手势Hu矩数据和几个其他数据
- 打开
get_test.py
,将获取手势图片存储路径修改为自己的文件目录路径。 - 修改
get_yCrCb_mask2()
函数中的色彩空间范围,保证背景干净、与肤色区别明显且光线良好。 - 运行程序,在合适时机按下Tab键获取数据,获取足够数据量后按Esc两次退出程序。
- 将打印数据存入自己建立的各个手势文档(一个手势约500个数据)。
第二步:数据处理
把获取的数据按等量原则放入hands_elements_data_all.csv
表中并做好标签,再将每个要训练的手势模型作为正样本,其他模型为负样本,按正负等量原则将数据放入hands_elements_data.csv
表中并做好标签。
第三步:模型训练
- 打开
hands_learning.py
,修改导入训练数据表所在路径。 - 视情况修改训练超参数,如学习率、学习轮数、训练集和测试集数据个数。
- 修改训练手势目标模型索引键。
- 开始运行程序,记录最开始打印出的极限数据。
第四步:使用模型
- 打开
result.py
,修改参数。 - 拍摄手势对应照片(修改大小),包括各个手势、脸和一张空白图片,将图片放于指定路径,并将程序中全部图片存放路径都改为自己设置的路径。
- 修改模型内容,包括判断轮的帧数、模型数量及参数。
- 将
moudle_detect_result_eight()
函数的模型参数极限值修改为训练时记录的值。 - 修改
def get_yCrCb_mask2(image)
函数色彩空间,与手势数据获取时的色彩空间相同。 - 运行程序,最多会出现三个窗口,分别代表脸部、左手、右手,识别到对应手势或脸部或无时,各个窗口会对应弹出识别结果图片。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】