Deep learning: Image Classification using a Convolutional Neural Network
American Sign Language (ASL) serves as a primary means of communication for many deaf individuals. This project delves into the development of a convolutional neural network (CNN) designed to classify images of ASL letters. The primary goal is to construct a model capable of recognizing individual letters, laying the groundwork for the creation of a sign language translation system.
- Brief overview of American Sign Language and its significance.
- Discussion on the relevance of computer vision systems in translating sign language to spoken language.
- Utilization of a pre-shuffled dataset containing images of ASL letters.
- Loading, examining, and preprocessing the data for model training.
- Displaying a selection of training images along with their corresponding labels (letters).
- Analyzing the distribution of letters in the training and test datasets to ensure balance.
- Transforming categorical labels into one-hot encoded vectors for model training.
- Building a CNN to classify ASL images with convolutional and pooling layers.
- Model summary to provide an overview of the network architecture.
- Compiling the model with an appropriate loss function, optimizer, and evaluation metric.
- Fitting the model to the training data and evaluating its performance on the validation set.
- Evaluating the trained model on the test dataset to assess its accuracy.
- Identifying and displaying images that were misclassified by the model for further analysis.
- Ensure you have the necessary dependencies installed (e.g., TensorFlow, NumPy, Matplotlib).
- Execute the provided code cells in a Jupyter notebook or an equivalent environment.
- Follow the step-by-step instructions for data loading, preprocessing, model training, and evaluation.
- Examine the model's performance on the test set and visualize misclassifications.
The CNN model for ASL image classification gives an accuracy of 93% on the test set. Further enhancements and refinements can be explored to improve the model's accuracy and robustness using Dropuouts or Batch Normalization including considering more epochs during the training process.