Recognize American Sign Language (ASL) using Machine Learning.
Currently, the following algorithms are supported:
The training images were retrieved from a video, filmed at 640x480
resolution using a mobile camera.
Dependencies:
- OpenCV 2.4.11, for image-processing.
- Scikit-learn 0.18.1, for machine-learning algorithms.
Usage:
For training a dataset of your own, do the following steps:
- Put all the training and testing images in a directory and update their paths in the config file
code/common/config.py
. Optionally, you can generate the images in real-time from webcam -capture_from_camera.py
. - Generate image-vs-label mapping fsor all the training images -
generate_images_labels.py train
. - Apply the image-transformation algorithms to the training images -
transform_images.py
. - Train the model -
train_model.py <model-name>
. - Generate image-vs-label mapping for all the test images -
generate_images_labels.py test
. - Test the model -
predict_from_file.py <model-name>
. Optionally, you can test the model on a live video stream from a webcam -predict_from_camera.py
.
A sample workflow can be seen in run.sh
.
However, if you wish not to use your own dataset, you can skip some of these steps and use the pre-trained models trained using this dataset:
- Download and replace the contents of the directory
data/generated
from here. It contains the serialized model files, the transformed images as well as the image-vs-label mapping files. - Test the model -
predict_from_file.py <model-name>
.
A sample workflow can be seen in run_quick.sh
.
To-Do:
- Improve the command-line-arguments input mechanism.
- Add progress bar while transforming images.
- Add logger.