This ASL Detector is a cutting-edge AI-powered application that uses computer vision and deep learning to recognize and classify American Sign Language (ASL) characters in real-time. This application utilizes the device's camera to capture hand landmarks and coordinates, which are then processed by a deep learning model to identify the corresponding ASL character.
By default, when you launch app.py, the inference mode is active. It can also be manually activated in other modes by pressing “n”.
- Real-time ASL detection using the device's camera.
- Accurate classification of ASL characters using a deep learning model.
- Hand landmark tracking for precise gesture recognition.
- Support for a wide range of ASL characters and phrases.
- High accuracy and robustness in varying lighting conditions.
- OpenCV
- MediaPipe
- Pillow
- NumPy
- Pandas
- Seaborn
- Scikit-learn
- Matplotlib
- Tensorflow
Important
If you face an error during training from the line converting to the tflite model, use TensorFlow v2.16.1.
- Clone the Repository:
git clone https://github.com/AkramOM606/American-Sign-Language-Detection.git
cd American-Sign-Language-Detection
- Install Dependencies:
pip install -r requirements.txt
- Run the Application:
python main.py
If you wish to train the model on your dataset, follow these steps:
- Manual Key Points Data Capturing
Activate the manual key point saving mode by pressing "k", which will be indicated as “MODE: Logging Key Point”.
If you press any uppercase letter from “A” to “Z”, the key points will be recorded and added to the “model/keypoint_classifier/keypoint.csv” file as demonstrated below.
Note
Each time you press the uppercase letter a single entry point is appended to keypoint.csv.
- Automated Key Points Data Capturing
Activate the automatic key point saving mode by pressing "d", which will change the content of the camera window to an image of OM606.
Note
You need to specify the dataset directory in app.py
Launch the Jupyter Notebook "keypoint_classification.ipynb" and run the cells sequentially from the beginning to the end.
If you wish to alter the number of classes in the training data, adjust the value of "NUM_CLASSES = 26" and make sure to update the labels in the "keypoint_classifier_label.csv" file accordingly.
The following is the image of the model structure that was prepared in the "keypoint_classification.ipynb" notebook.
We welcome contributions to enhance this project! Feel free to:
- Fork the repository.
- Create a new branch for your improvements.
- Make your changes and commit them.
- Open a pull request to propose your contributions.
- We'll review your pull request and provide feedback promptly.
This project is licensed under the MIT License: https://opensource.org/licenses/MIT (see LICENSE.md for details).