# Sign-Language
This project entails the implementation of a Convolutional Neural Network (CNN), a sophisticated deep learning architecture specifically designed for image recognition and classification tasks.
## Note
OpenCV-Calculator and this project are merged to one.
## What I did here
1. The first thing I did was, I created 44 gesture samples using OpenCV. For each gesture I captured 1200 images which were 50x50 pixels. All theses images were in grayscale which is stored in the gestures/ folder. The pictures were flipped using flip_images.py. This script flips every image along the vertical axis. Hence each gesture has 2400 images.
2. Learned what a CNN is and how it works. Best resources were Tensorflow's official website and machinelearningmastery.com .
3. Created a CNN which look a lot similar to this MNIST classifying model using both Tensorflow and Keras. If you want to add more gestures you might need to add your own layers and also tweak some parameters, that you have to do on your own.
4. Then used the model which was trained using Keras on a video stream.
5. As of today, I have stored the 44 gestures for which are 26 alphabets and 10 numbers of American Sign language and some other gestures. And trained the model on these images.
## Requirements
0. Python 3.x
1. Tensorflow 1.5
2. Keras
3. OpenCV 3.4
4. h5py
5. pyttsx3
6. A good CPU (preferably with a GPU).
## Installing the requirements
1. Start your terminal of cmd depending on your os.
2. If you have a NVidia GPU then make sure you have the prerequisites for Tensorflow GPU installation (Refer to official site). Then use this commmand
pip install -r requirements_gpu.txt
3. In case you do not have a GPU then use this command
pip install -r requirements_cpu.txt
## How to use this repo
### Creating a gesture
1. First set your hand histogram. You do not need to do it again if you have already done it. But you do need to do it if the lighting conditions change. To do so type the command giv …