# Gesture_cognition(手势识别)
# 一、项目信息
该项目基于**Tensorflow2.3**开发,自建六种手势数据集,内置图像预处理,图像增广,网络模型,识别等程序。可帮助新手掌握如何使用自制数据集进行模型训练,分类,调用训练好的模型进行目标检测。
因为计算机GPU资源有限,仅仅训练了2400张图片,采用的灰度二值化图像处理方式。在保存数据集的时候,我先将增广之后的图片进行保存,再读取图片保存为NumPy,这样导致了本来是两个维度的二值化图依旧有三个维度,可对代码进行修改,减少图像维度,减少计算量。我的图像预处理并没有做好,可以尝试只使用RGB进行训练,或者用HSV的方法。
所有的数据集均为自制数据集,仅供学习使用,禁止用于商业用途。
### 训练效果:
![](README.assets/demo.png)
# 二、软件环境
| 软件库及环境 | 版本信息 |
| -------------- | --------- |
| Anaconda3 | Python3.7 |
| Cuda | 10.2 |
| Cudnn | 7.6.5 |
| 显卡 | GTX1650 |
| OpenCV-python | 4.5.3.56 |
| Tensorflow-gpu | 2.3.0 |
| Numpy | 1.18.5 |
| Matplotlib | 3.4.2 |
开发所用的IDE是Anaconda自带的Spyder,在开发项目的时候,可使用anaconda创建虚拟环境,创建Python3.7的环境,安装Tensorflow2.x以上的版本,Tensorflow2.x只支持Python3.7以上的版本.安装cuda和cudnn需要根据自己的电脑配置来进行安装,安装过程过于繁琐,读者加油!
# 三、项目结构
### (1)文件目录
```python
+---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)网络模型结构
```Python
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)训练精度与预测精度
### ![](README.assets/acc_.png)
# 四、程序说明
在项目开始之前,请先建立好
img_gray、img_binary、img_hsv、img_augment文件夹,按照img_main的格式将目录结构建好,包含0,1,2,3,4,5五个子文件夹。
如果需要重新生成新的图片,记得把文件夹中的图片都删除,不要删除原始数据集即可。
先将原始数据集增广,然后进行灰度二值化或者hsv处理,最后生成特征数组和标签数组,运行神经网络进行模型训练,调用模型进行结果预测。
下载模型文件,放入weight文件夹中。
链接:https://pan.baidu.com/s/15mgnubGLkv3imaJe1s38Og
提取码:gest
### (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二值化之后的图像进行模型对比,读者自己尝试,或更改网络结构,增大数据集的数量,提高模型在复杂环境下的精确度。不过对于新手来说学习足矣。
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于tensorflow2.x的手势识别项目.zip (615个子文件)
checkpoint 81B
gesture.ckpt.index 4KB
5_97.jpg 19KB
5_65.jpg 19KB
4_8.jpg 19KB
4_90.jpg 19KB
5_29.jpg 18KB
5_44.jpg 18KB
4_54.jpg 18KB
5_53.jpg 18KB
3_42.jpg 18KB
3_59.jpg 18KB
3_48.jpg 18KB
5_94.jpg 18KB
4_35.jpg 18KB
5_23.jpg 18KB
5_5.jpg 18KB
5_85.jpg 18KB
5_17.jpg 18KB
5_91.jpg 18KB
4_26.jpg 18KB
5_60.jpg 18KB
4_32.jpg 18KB
4_14.jpg 18KB
3_4.jpg 18KB
5_41.jpg 18KB
3_26.jpg 18KB
3_64.jpg 18KB
3_15.jpg 18KB
3_31.jpg 18KB
5_11.jpg 18KB
2_48.jpg 18KB
5_48.jpg 18KB
4_16.jpg 18KB
4_38.jpg 18KB
5_68.jpg 18KB
4_74.jpg 18KB
3_53.jpg 18KB
3_1.jpg 18KB
4_62.jpg 18KB
5_72.jpg 18KB
4_1.jpg 18KB
3_20.jpg 17KB
2_59.jpg 17KB
4_50.jpg 17KB
4_20.jpg 17KB
4_69.jpg 17KB
5_1.jpg 17KB
3_37.jpg 17KB
0_36.jpg 17KB
4_81.jpg 17KB
3_57.jpg 17KB
0_25.jpg 17KB
4_98.jpg 17KB
3_86.jpg 17KB
5_77.jpg 17KB
5_31.jpg 17KB
2_9.jpg 17KB
0_48.jpg 17KB
3_92.jpg 17KB
4_86.jpg 17KB
5_38.jpg 17KB
0_14.jpg 17KB
0_68.jpg 17KB
4_28.jpg 17KB
5_26.jpg 17KB
0_81.jpg 17KB
0_28.jpg 17KB
0_86.jpg 17KB
2_42.jpg 17KB
0_7.jpg 17KB
4_64.jpg 17KB
0_21.jpg 17KB
2_31.jpg 17KB
5_59.jpg 17KB
2_1.jpg 17KB
5_36.jpg 17KB
2_81.jpg 17KB
4_22.jpg 17KB
4_59.jpg 17KB
3_70.jpg 17KB
3_97.jpg 17KB
2_86.jpg 17KB
0_78.jpg 17KB
1_97.jpg 17KB
3_75.jpg 17KB
0_72.jpg 17KB
2_37.jpg 17KB
2_70.jpg 17KB
3_9.jpg 17KB
2_26.jpg 17KB
0_100.jpg 17KB
2_57.jpg 17KB
0_50.jpg 17KB
0_92.jpg 17KB
1_92.jpg 17KB
4_47.jpg 17KB
2_92.jpg 17KB
3_81.jpg 17KB
4_40.jpg 17KB
共 615 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
- zhangxianhui012024-05-04总算找到了想要的资源,搞定遇到的大问题,赞赞赞!
极致人生-010
- 粉丝: 3162
- 资源: 3078
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功