关于程序员:基于卷积神经网络实时识别手势动作

10次阅读

共计 1064 个字符,预计需要花费 3 分钟才能阅读完成。

拜访【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 张照片)

正文完
 0