Code Monkey home page Code Monkey logo

gesture_cnn's Introduction

基于肤色检测和卷积神经网络的手语动作识别

项目文件:

项目文件列表如下:

  1. data:存放采集的数据。

  2. dataset:存放Train_model_tensorflow.py训练的数据。

  3. model:存放在网络训练中表现好的模型。

  4. Collect.py:采集界面。

  5. Data_to_NPZ.py:图片转.npz文件。用来制作数据集。

  6. Frame.py:UI界面。使用Python的PyQt5进行设计。

  7. Gesture_CNN.py:实时手语动作识别。将摄像头实时获取的帧图片送入已训练好的CNN模型中判断其手语动作。

  8. Main.py:主界面。

  9. SaveGesture.py:采集数据。利用OpenCV获取帧图像并转为.npz文件(.npz文件是数据训练的格式)

  10. Train_model_tensorflow.py:模型训练,采用AlexNet结构。TensorFlow=1.4.0

  11. Translate.py:手语识别界面。

  12. Data_rename:图片批量重命名。 项目文件已经上传至我个人的GitHub,有需要的可自行下载。

项目内容:

内容简介

项目设定可以识别5种手语动作,大家可根据自己的需求增减动作的种类,但是程序可能需要改动一些地方。采用的数据集是自己采集的。

  1. A动作 2.B动作 3.C动作 4.D动作 5.F动作

同时,项目准备对图像不进行肤色检测,即不对数据进行预处理,直接进行训练。采用的数据集是ASL Alphabet。ASL数据集包含 87,000 张图像,即 200x200 像素,总共有29个类。

ASL

在这里插入图片描述

整体的界面设计是利用PyQt5进行设计的,主要是因为PyQt5开发迅速,学习成本低,界面预览如下。

主界面

采集界面

肤色检测

别的大佬解释肤色检测的基本原理更为详细,这里不做赘述。(下图为项目实现的肤色检测) 肤色检测

肤色检测前

肤色检测后

卷积神经网络

这个项目采用的是CNN经典模型的AlexNet,大家可以参考AlexNet设计者对AlexNet的分析。(论文链接如下)

ImageNet Classification with Deep Convolutional Neural Networks

测试结果

具体测试还得回学校用高端机训练,笔记本过于乐色,训练太慢!!!

未来期望

  • 用YOLO代替肤色检测,解决了当人物离摄像头较远时肤色检测失效的问题,能够增强整体的鲁棒性。
  • 这个项目只适用于静态手语动作的识别,而现实生活中更多的是动态的手语动作,希望大家在这个项目的基础之上能够加入时间序列,实现动态手语动作的识别。

总结:

这篇文章是我在寒假做大创的过程中突然想写的,这也是我第一次写这么正式的博客,可能中间有许多的漏洞,希望大家能多多指正。

gesture_cnn's People

Contributors

coding-farmer-tao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.