Giter Club home page Giter Club 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 pose, face, and hand detector results over multiple frames we can acquire a fairly requirement for sign language understanding includes body movement, facial movement, and hand gesture. After that we use DD-Net as a recognitor to predict sign features represented in the 832D vector. Finally using use K-Nearest Neighbor classification to output the class prediction.

All related models listed below.

  • PoseNet: Pose detector model.

  • FaceMesh : Face keypoints detector model.

  • HandLandmarks : Hand keypoints detector model.

  • DD-Net : Skeleton-based action recognition model.

Installation

  • For MacOS user
    Install python 3.7 from official python.org for tkinter support.

  • Install dependencies

    pip3 install -r requirements.txt 
    

Run Python Demo

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

  • Play mode.
    play_mode

Run Detector demo

You can try each detector individually by using these scripts.

  • FaceMesh
python3 face_landmark\webcam_demo_face.py
  • PoseNet
python3 posenet\webcam_demo_pose.py
  • HandLandmarks
python3 hand_landmark\webcam_demo_hand.py

Deploy on the Web using Tensorflow.js

Instructions here

Train classifier from scratch

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-spite avatar bit-patter avatar nattadetspite avatar thebitstudio avatar

Stargazers

Frank Wang avatar Eric Huang avatar  avatar Lucas Yannul avatar  avatar Ayyuce Demirbas avatar jellaby avatar SAHIL SHARMA avatar Zachary Karpinski avatar Andres Garcia avatar  avatar jnulzl avatar Arhum avatar Joy Tseng avatar Lydia avatar Zen Pardosi avatar Rafael Mendes avatar Gabriel de Jesus avatar Prafull Kotecha avatar Miguel S. da Silva avatar

Watchers

James Cloos avatar  avatar

shuwa's Issues

Questions about Training Models

Hi, I have been following your steps to train the model for two months. I replaced the Hong Kong dataset and the Japanese dataset with my own dataset, but found that it couldn't be trained, with the same issue: 'Input to reshape is a tensor with 256 values, but the requested shape has 16.'
Previously, I changed the loss function and managed to run it through, and was able to export an .h5 file, but the loss was always NaN (not a number), making it unusable.

Today, after looking into it for a long time, I realized there was an issue with the true values of y being passed into the loss calculation in the training code. Another possibility is that the environment version might be incorrect, but I couldn't find the configuration version from the project at that time to verify it.

I tried switching to tf.losses.binary_crossentropy, and the training was successful and I could export it, but when I deployed it to the JS side, there was an error saying it was undefined or null, 'x is not y'. I checked and found that the loss function I changed to is for a binary classification problem, while the original one was for triplet learning, which is a significant difference.

Could you provide some solutions? Thank you.

1

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.