loicmarie / sign-language-alphabet-recognizer

Simple sign language alphabet recognizer using Python, openCV and tensorflow for training Inception model (CNN classifier).
MIT License
288 stars 146 forks source link
classification computer-vision deep-learning inceptionv3 sign-language-recognition-system tensorflow

SLR Alphabet Recognizer

This project is a sign language alphabet recognizer using Python, openCV and tensorflow for training InceptionV3 model, a convolutional neural network model for classification.

The framework used for the CNN implementation can be found here:

Simple transfer learning with an Inception V3 architecture model by xuetsing

The project contains the dataset (1Go). If you are only interested in code, you better copy/paste the few files than cloning the entire project.

You can find the demo here

Demo

Requirements

This project uses python 3.5 and the PIP following packages:

See requirements.txt and Dockerfile for versions and required APT packages

Using Docker

docker build -t hands-classifier .
docker run -it hands-classifier bash

Install using PIP

pip3 install -r requirements.txt

Training

To train the model, use the following command (see framework github link for more command options):

python3 train.py \
  --bottleneck_dir=logs/bottlenecks \
  --how_many_training_steps=2000 \
  --model_dir=inception \
  --summaries_dir=logs/training_summaries/basic \
  --output_graph=logs/trained_graph.pb \
  --output_labels=logs/trained_labels.txt \
  --image_dir=./dataset

If you're using the provided dataset, it may take up to three hours.

Classifying

To test classification, use the following command:

python3 classify.py path/to/image.jpg

Using webcam (demo)

To use webcam, use the following command:

python3 classify_webcam.py

Your hand must be inside the rectangle. Keep position to write word, see demo for deletions.