File size: 1,923 Bytes
7ff600a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# ASL Recognition Model

This project provides an open-source implementation of an American Sign Language (ASL) Recognition Model. The model leverages machine learning and computer vision techniques to recognize ASL hand signs from images.

## Features

- **Hand Landmark Detection**: Utilizes MediaPipe to accurately detect 21 hand landmarks in images.
- **Feature Extraction**: Calculates angles between all pairs of landmarks to form a 420-dimensional feature vector.
  - **Vector Calculation**: Computes vectors between each pair of landmarks.
  - **Angle Computation**: Uses the arccosine of normalized vector components to derive angles.
- **Model Input**: The extracted angles serve as input features for the Random Forest model, which classifies the ASL sign.

## Technical Stack

- **Python**: Core programming language.
- **OpenCV**: For image processing and manipulation.
- **MediaPipe**: For detecting hand landmarks.
- **Scikit-learn**: Provides the Random Forest model for classification.
- **Streamlit**: Facilitates an interactive user interface for real-time recognition.

## Supported Alphabets

The model currently works for the following ASL alphabets:
- A, B, C, E, F, G, H, I, J, K, L, O, Q, R, S, W, Y

The model does not support or may not work correctly for:
- D, M, N, P, T, U, V, X, Z

## Usage

1. Upload an image of an ASL sign through the Streamlit interface.
2. The model processes the image and provides the top 5 predictions along with visualizations of detected hand landmarks.

## Contribution

We welcome contributions to improve the model's accuracy and expand its alphabet coverage. Feel free to fork the repository, submit issues, or create pull requests.

## License

This project is open-source and available under the [MIT License](LICENSE).

## Acknowledgments

Thanks to the contributors of MediaPipe and Scikit-learn for their powerful libraries that made this project possible.