Gesture_cognition(手势识别)【附github地址】

Gesture_cognition(手势识别)有问题邮箱联系,免费开源,私信不常看,邮箱:xingchenziyi@163.com

一、项目信息

​ 该项目基于Tensorflow2.1开发,自建六种手势数据集,内置图像预处理,图像增广,网络模型,识别等程序。可帮助新手掌握如何使用自制数据集进行模型训练,分类,调用训练好的模型进行目标检测。

​ 因为计算机GPU资源有限,仅仅训练了2400张图片,采用的灰度二值化图像处理方式。在保存数据集的时候,我先将增广之后的图片进行保存,再读取图片保存为NumPy,这样导致了本来是两个维度的二值化图依旧有三个维度,可对代码进行修改,减少图像维度,减少计算量。

​ 所有的数据集均为自制数据集,仅供学习使用,禁止用于商业用途。

二、软件环境

软件库及环境版本信息
Anaconda3Python3.7
Cuda10.2
Cudnn7.6.5
显卡GTX1650
OpenCV-python4.5.3.56
Tensorflow-gpu2.3.0
Numpy1.18.5
Matplotlib3.4.2

​ 开发所用的IDE是Anaconda自带的Spyder,在开发项目的时候,可使用anaconda创建虚拟环境,创建Python3.7的环境,安装Tensorflow2.x以上的版本,Tensorflow2.x只支持Python3.7以上的版本.安装cuda和cudnn需要根据自己的电脑配置来进行安装,安装过程过于繁琐,读者加油!

三、项目结构

(1)文件目录

+---img_augment # 增广数据集
+---img_binary  # 灰度二值化数据集
+---img_gray    # 灰度数据集
+---img_hsv     # HSV数据集
+---img_main    # 原始数据集
+---weight	    # 保存的模型文件
+---alexNet.py  # 训练模型
+---demo_cv.py  # 调用模型进行识别检测
+---img_aug.py  # 数据增广
+---img_augment_rename.py  # 增广数据集命名重写
+---img_gray.py # 转换为灰度图并保存在img_gray
+---img_hsv.py  # 转换为HSV并保存在img_hsv
+---img_main_rename.py  #原始数据集命名重写
+---train_test.py  # 数据集转换为numpy格式并保存
\---acc.png  # 模型训练acc图

(2)网络模型结构

Model: "functional_9" # alexnet网络结构
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_5 (InputLayer)         [(None, 224, 224, 3)]     0         
_________________________________________________________________
zero_padding2d_4 (ZeroPaddin (None, 227, 227, 3)       0         
_________________________________________________________________
conv2d_20 (Conv2D)           (None, 55, 55, 48)        17472     
_________________________________________________________________
max_pooling2d_12 (MaxPooling (None, 27, 27, 48)        0         
_________________________________________________________________
conv2d_21 (Conv2D)           (None, 27, 27, 128)       153728    
_________________________________________________________________
max_pooling2d_13 (MaxPooling (None, 13, 13, 128)       0         
_________________________________________________________________
conv2d_22 (Conv2D)           (None, 13, 13, 192)       221376    
_________________________________________________________________
conv2d_23 (Conv2D)           (None, 13, 13, 192)       331968    
_________________________________________________________________
conv2d_24 (Conv2D)           (None, 13, 13, 128)       221312    
_________________________________________________________________
max_pooling2d_14 (MaxPooling (None, 6, 6, 128)         0         
_________________________________________________________________
flatten_4 (Flatten)          (None, 4608)              0         
_________________________________________________________________
dropout_8 (Dropout)          (None, 4608)              0         
_________________________________________________________________
dense_12 (Dense)             (None, 2048)              9439232   
_________________________________________________________________
dropout_9 (Dropout)          (None, 2048)              0         
_________________________________________________________________
dense_13 (Dense)             (None, 1024)              2098176   
_________________________________________________________________
dense_14 (Dense)             (None, 6)                 6150      
_________________________________________________________________
softmax_4 (Softmax)          (None, 6)                 0         
=================================================================
Total params: 12,489,414
Trainable params: 12,489,414
Non-trainable params: 0
_________________________________________________________________

(3)训练精度与预测精度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DN4rUVi8-1635360547679)(README.assets/acc_.png)]

四、程序说明

​ 在项目开始之前,请先建立好

​ img_gray、img_binary、img_hsv、img_augment、weight文件夹。

​ 如果需要重新生成新的图片,记得把文件夹中的图片都删除,不要删除原始数据集即可。

​ 先将原始数据集增广,然后进行灰度二值化或者hsv处理,最后生成特征数组和标签数组,运行神经网络进行模型训练,调用模型进行结果预测。

(1)img_main_rename.py

​ 该程序仅仅只是修改了原始数据集的文件名,方便查看,阅读方便。读者可自己拍摄数据集,记得要进行归一化处理,可参考demo_cv文件中对图像的归一化处理,本项目未给出归一化处理程序。

(2)img_aug.py

​ 增广数据集,将增广的数据集保存在img_augment文件夹中。

(3)img_augment_rename.py

​ 该程序仅仅只是修改了增广数据集的文件名。

(4)img_gray.py

​ 原始数据集准备好之后,可运行该函,转换为灰度图并保存在img_gray文件夹中(或者修改文件路径,保存二值图),我在程序里面是直接将增广数据集转为灰度图之后,二值化之后直接保存在img_binary文件夹里面,请注意。

(5)img_hsv.py

​ 转换为灰度图并保存在img_hsv文件夹中。

(6)train_test.py

​ 将img_binary数据集转换为NumPy格式并保存。

(7)alexNet.py

​ 使用Alex net神经网络训练模型,并保存模型在weight中。

(8)demo_cv.py

​ 调用模型,调用摄像头将图像信息传入模型中,得到预测结果。

五、模型评估

​ 该模型因为训练数据量少,过拟合严重,在复杂环境下的识别精度低.可采用HSV的方式对图像进行二值化处理,本项目只保存了hsv图,因为GPU资源的原因,并没有训练hsv二值化之后的图像进行模型对比,读者自己尝试,或更改网络结构,增大数据集的数量,提高模型在复杂环境下的精确度。不过对于新手来说学习足矣。

gitee地址:.
https://gitee.com/mysterious-knight/pythonProject2/tree/master/gesture_recognition/gesture

github地址:https://github.com/AeneonLXC/pythonProject2/tree/master/gesture_recognition/gesture

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值