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

一、项目信息

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

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

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

二、软件环境

软件库及环境 版本信息
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)文件目录

+---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

Gesture_cognition(手势识别)【附github地址】相关推荐

  1. 【我的安卓进阶之旅】Opengl Es(5)三维图形绘制圆锥、圆柱和球体(附Github地址)

    之前的博客中,我们绘制了三角形.正方形.圆形.立方体,今天我们将绘制圆锥.圆柱和球体.能够绘制这些基本的常规几何形体后,其他的常见几何形体的绘制对于我们来说就基本没问题了. 绘制圆锥 由之前的博客,我 ...

  2. dubbo-环境搭建,实现一个简单地dubbo实例(附github地址)

    一.建立maven模块和provider.consumer.service子模块,其中service是开发接口的模块          建立一个maven模块,不选择样板,直接next知道完成,建立三 ...

  3. 高精度人脸表情识别(附GitHub地址)

    编者按:本文原作者吴捷,目前于中山大学就读研究生.研究领域为计算机视觉与自然语言处理.本文原载于知乎,经作者授权发布.欢迎去GitHub给大佬加星. 先放出GitHub地址: https://gith ...

  4. Top10机器学习开源项目发布,历时一个月评出 | 附GitHub地址

    原作:Mybridge 问耕 补充整理 量子位 出品 | 公众号 QbitAI 从将近250个机器学习开源项目中,综合各种条件进行打分排序,最终Mybridge团队评选出十大最新.最棒的机器学习开源项 ...

  5. 高并发 WEB 服务器 nginx 源码通读中文分析注释,带详细函数注释及函数调用注释,附 github 地址,后期持续维护更新...

    github地址:https://github.com/y123456yz/reading-code-of-nginx-1.9.2 对源码通读注释,函数进行了详细注释.同时对相关功能进行了优化,日志功 ...

  6. react无缝滚动_react 实现一个无限循环的轮播器 附github地址

    一个简单的轮播 为了更具有通用和参考性,轮播组件中,轮播只使用了react,没有添加其他的状态管理,或者参数类型限制的库. 所以这个轮播的方法,同样可以用于vue 等其他框架 github地址 最终效 ...

  7. SSM框架学习文档以及SSM整合(附Github地址=含SSM学习时的实例代码)

    SSM框架学习 软件架构: 基于流行SSM框架:Spring+SpringMVC+Mybatis 项目配置: 使用Maven进行项目jar导入 ​ 使用Git进行版本控制,并将每次编写的代码上传到Gi ...

  8. ECCV18 | 如何正确使用样本扩充改进目标检测性能(附Github地址)

    (欢迎关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 众所周知,在计算机视觉识别任务中,对训练样本进行增广是非常重要的,可以减少过拟合.改进模型泛化性能. 在大多数视觉 ...

  9. ECCV18|这篇论文开源的车牌识别系统打败了目前最先进的商业软件(附Github地址)...

    (欢迎关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 来自巴西阿雷格里港大学的学者发表于ECCV2018的论文<License Plate Detection a ...

最新文章

  1. Nginx+Tomcat 负载均衡集群方案
  2. HashMap和Hashtable及HashSet的区别
  3. 微软Visual Studio 2019版本16.3 正式发布,支持 .NET Core 3.0
  4. 究极探秘!你知道程序员最喜欢做的四件事是什么吗?
  5. 如何做一个“千里马”
  6. 81. $GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别
  7. idea删除不用或者失效的jdk
  8. 文字转语音(Python pyttsx3)
  9. 基于K—近邻的车牌号识别小实验
  10. 微信服务号、订阅号和企业号的差别
  11. 服务器装win10性能怎样,Win10 藏着不给人看的卓越性能模式到底对电脑有什么影响?...
  12. 如何缩小png图片大小kb?如何让png图片变小?
  13. 软件测试-mocha入门
  14. 物联卡中心:物联网卡代理商这么多,我怎么选?
  15. python抓取视频中的人物动作,并生成3D的bvh
  16. SSM全注解开发的网上商城系统
  17. A4纸尺寸大小是多少
  18. 做为一个玩家如何架设传奇
  19. 【击穿、穿透、雪崩】
  20. 如何使用Gulp完成项目的自动化构建

热门文章

  1. 移动网关设置不了虚拟服务器,手动配置网关,解决VMWare虚拟机内可以访问主机但无法访问互联网的问题...
  2. 洗衣机洗涤部分c语言程序,51单片机洗衣机控制板及C语言程序
  3. Markdown 随笔:改变 typora 扩展Markdown语法【文字高亮颜色】
  4. BGP路由器协议排错教程:BGP 基本配置
  5. 服务器TIME_WAIT过多
  6. 十年之间的CVPR与我们
  7. JAVA中stuf什么意思_Stuf是什么意思
  8. **在Ubuntu系统下Copley CAN-PCI驱动的安转和开机自启动配置**
  9. python编程计算器_python编写计算器功能
  10. UC浏览器极速版-艳云脚本云控系统