基于卷积神经网络实时识别手势动作

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

使用方法 先用Train.py训练好模型参数,然后运行CallFrame.py调用出界面窗口, 点击窗口的相应按钮就可以在线检测手势动作,其中的执行手势按钮是和下位机通信(如STM32单片机), 通过串口函数将识别结果传给下位机,实现根据手势动作控制的功能。
利用卷积神经网络实时识别手势动作
一共识别 5 种手势动作
剪刀动作
2.石头动作
3.布动作
4.OK 动作
5.good 动作
主要思路:
1.构建数据集 2.建立神经网络 3.训练并调参 4.保存并调用
另外我还加了界面设计和机械臂控制(通过串口通信把判断结果发给单片机,所以代码中有 serial 模块)
训练集: 1~4 号动作各有 1300 张照片,5 号动作有 1450 张照片 测试集: 1~5 号动作各有 200 张照片
文件解释:
data 文件里面存放 test 数据集,train 数据集,实时保存的图像(用于在线检测)。
ges_ico 文件里面存放界面窗口显示的各种图标。
log 文件里面存放训练好的 CNN 网络的模型参数。
CallFrame.py 是界面窗口的逻辑文件,用来调用界面文件并编写信号与槽函数。
Frame.py 是界面窗口的界面文件,通过 PyQt5 的 designer 工具生成。
GetTestImage.py 是利用 OpenCV 获取图片并标记,用来制作测试集。
GetTrainImage.py 是利用 OpenCV 获取图片并标记,用来制作训练集。
SaveGesture.py 是利用 OpenCV 实时获取图片,并进行预处理,用于在线检测手势。
TestGesture.py 是将实时获取的图片送入已训练好的 CNN 中判断其手势动作。
TestInTest.py 是将测试集送入已训练好的 CNN 中判断该网络模型的准确率。
Train.py 是训练 CNN 模型函数,并将训练好的模型参数保存在本地。
Train_inputdata.py 是用来读取数据集的图像和标签,并打包成 batch 形式。
Train_model.py 是模型结构,这里用的是 AlexNet 结构。
使用方法:
先用 Train.py 训练好模型参数,然后运行 CallFrame.py 调用出界面窗口, 点击窗口的相应按钮就可以在线检测手势动作,其中的执行手势按钮是和下位机通信(如 STM32),通过串口函数将识别结果传给下位机,实现根据手势动作控制的功能。
测试结果:
使用该模型训练到 900 步的时候在测试集上正确率可以稳定在 95% 左右。
(训练集:1,2,3,4 号动作各有 1300 张照片,5 号动作有 1450 张照片;测试集:每种动作各有 200 张照片)在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
基于卷积神经网络CNN)的手势识别代码主要包括以下步骤: 1. 数据集准备:收集手势图片并进行标注。可以使用公开的手势识别数据集,如MNIST手势数据集。 2. 数据预处理:将收集到的手势图片进行预处理,包括图像缩放、灰度化、去噪等操作,以提高模型的训练效果。 3. 构建CNN模型:使用深度学习框架,如TensorFlow或Keras,搭建卷积神经网络模型。模型的结构可以包括多个卷积层、池化层、全连接层等。 4. 数据集划分:将手势图片划分为训练集、验证集和测试集。通常使用80%的数据作为训练集,10%作为验证集,10%作为测试集。 5. 模型训练:使用训练集对CNN模型进行训练,通过反向传播算法以及优化器进行参数更新。训练过程中可以设置合适的学习率和迭代次数。 6. 模型评估:使用验证集对训练好的模型进行评估,计算准确率、精确率、召回率等指标,以衡量模型的性能。 7. 模型调优:根据评估结果,对模型进行调优,如增加/减少网络层数、调整卷积核大小、改变优化器等,以提高模型的性能。 8. 模型测试:使用测试集对最终调优的模型进行测试,评估模型在未知数据上的表现。 9. 部署应用:将训练好的模型应用到实际应用中,例如使用摄像头实时捕捉手势图像,并使用模型进行实时手势识别。 总之,基于CNN手势识别代码通过搭建卷积神经网络模型,对手势图像进行训练和分类,以实现对各种手势的准确识别

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值