Git Product home page Git Product logo

shuwa's Introduction

Shuwa Gesture Toolkit

Shuwa (ๆ‰‹่ฉฑ) is Japanese for "Sign Language"

Shuwa Gesture Toolkit is a framework that detects and classifies arbitrary gestures in short videos. It is particularly useful for recognizing basic words in sign language. We collected thousands of example videos of people signing Japanese Sign Language (JSL) and Hong Kong Sign Language (HKSL) to train the baseline model for recognizing gestures and facial expressions.

The Shuwa Gesture Toolkit also allows you to train new gestures, so it can be trained to recognize any sign from any sign language in the world.

[Web Demo]

How it works


by combining the results of a Holistic model over multiple frames. We can create a reasonable set of requirements for interpreting sign language, which include body language, facial expression, and hand gestures.

The next step is to predict the sign features vector using a classifier model. Lastly, output the class prediction using K-Nearest Neighbor classification.

Installation

  • Install python 3.9
  • Install dependencies
    pip3 install -r requirements.txt 
    

Run demo

python3 webcam_demo.py
  • Use record mode to add more sign.
    record_mode

  • Play mode.
    play_mode

Try Hong Kong Sign Language or Japanese Sign Language

  1. Download hksl_jsl_samples.zip
  2. Extract to root directory
  3. run
    python3 webcam_demo.py
    

Train classifier

You can add a custom sign by using Record mode in the full demo program.
But if you want to train the classifier from scratch you can check out the process here

shuwa's People

Contributors

bit-dome avatar bit-patter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

shuwa's Issues

Training script issue

Hi, thank you for sharing this code!

We would like to ask for help about the error that we encounter while running the training script on our data with 10 words only.
In the jupyter notebook, the model.fit_generator() produces the following error:

InvalidArgumentError: Input to reshape is a tensor with 10 values, but the requested shape has 1
[[node Reshape
(defined at /Users/abc/opt/anaconda3/envs/githubshuwa/lib/python3.7/site-packages/tensorflow_addons/losses/triplet.py:257)
]] [Op:__inference_train_function_13545]

We used the following tool versions:

  1. Python 3.7
  2. Tensorflow 2.6

And we also updated the batch from 32 to 1 because the demo webapp expects the model to have an input shape with 1 batch only.

We would like to ask:

  1. What versions of python and Tensorflow should we use?
  2. Are there other possible cause for the error that we encountered?
  3. How can we train using more than 1 batch without affecting the expected shape of the input of the model?

Thank you very much in advance!

Web Demo Issue

Hi! We noticed that the output layer of the model was updated. The new architecture is now incompatible with the web demo application.

signClassify.js expects to get an array of 2 elements from classifyModel.predict(..), but the new model only returns 1 element.
Please refer to Line 103 or 454 of ./web_demo/public/js/ML/signClassify.js

Does it mean the web demo will also be updated?

Thank you!!!

Readme

Thank you for this interesting software. What version of python should I use. 3.8 fails. 3.6 works, but is it best? Also, python3 hand_landmark\webcam_demo_hand.py fails on linux. This needs a forward slash not a backslash. Also crop_utils module can't be found. Does something need to be added to pythonpath? Andy other hints would be appreciated. BTW, I can't type input to record on extract_knn_features.py. Thanks again. I'm on Pop!_OS 20.04.

I get a `ValueError: operands could not be broadcast together with shapes (0,) (336,) ` when launching the Play demo

Whenever I launch the demo, I get the

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
    return self.func(*args)
  File "/home/Reborn/Documents/Projects/sign_language/lsf/webcam_demo.py", line 57, in record_btn_cb
    res_txt = self.translator_manager.run_knn(feats)
  File "/home/Reborn/Documents/Projects/sign_language/lsf/modules/translator/translator_manager.py", line 100, in run_knn
    dists = np.square(self.knn_database - feats)
ValueError: operands could not be broadcast together with shapes (0,) (336,)

Error.
I'm on Python3.9 and on Debian 10

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.