{ "cells": [ { "cell_type": "markdown", "source": [ "# Task : Indian Sign Language Recognition(gesture recognition) and Conversion to speech" ], "metadata": { "id": "bXCEiw_6Q5Y-" }, "id": "bXCEiw_6Q5Y-" }, { "cell_type": "markdown", "source": [ "## Objective:\n", "Develop instructional materials for students to learn machine learning using\n", "Jupyter Notebook and other ML tools. The aim is to accurately recognize\n", "ISL(Indian Sign Language Recognition) gestures, convert them into\n", "corresponding text, and then convert the text into speech." ], "metadata": { "id": "agQMLqQ8RfXX" }, "id": "agQMLqQ8RfXX" }, { "cell_type": "markdown", "source": [ "## Tools and Technologies:\n", " * **Jupyter Notebook:** For data preprocessing, model development, and\n", "training.\n", "\n", " * **Programming Language:** Python - Widely used for its simplicity,\n", "extensive libraries, and ecosystem support." ], "metadata": { "id": "o_cBLhWfRqXs" }, "id": "o_cBLhWfRqXs" }, { "cell_type": "markdown", "source": [ "## Starting the Exciting Journey for this project by following these" ], "metadata": { "id": "syrhOm6nMUPo" }, "id": "syrhOm6nMUPo" }, { "cell_type": "markdown", "source": [ "To make this interesting project we will be following some steps and sub-steps so that our project can be made without any errors. This is the most useful project which we are going to make, which deals with the real life problem of deaf and dumb people.\n", "\n", "So let us start this exciting journey with the following steps:\n", "* **Step1:** Making our system ready for this project, for that you need to download some libraries of python using `pip` command.\n", " * OpenCV ----> `pip install opencv-python` ----> open-source library for computer vision, machine learning, and image processing.\n", " * PIL ----> `pip install pillow` ----> Pillow provides the ImageDraw module that provides simple 2D graphics for Image objects.\n", " * tensorflow ----> `pip install tensorflow` ----> used to build and train deep learning models as it facilitates the creation of computational graphs and efficient execution on various hardware platforms\n", " * sklearn ----> `pip install scikit-learn` used here for spliting data into test and train.\n", " * pyttsx3 ----> `pip install pyttsx3` used to convert text to speech.\n", "\n", " Do not worry you are not supposed to copy these commends and install one by one in your terminal because you will see these commands installed at the time of there use in this notebook file only, so chill....\n", "* **Step2:** Making Hardware ready for this project,for that we will be following some sub steps which are as followed:\n", " * Getting the Arduino code\n", " * Interfacing the Hardware\n", " * Installing the code to the Hardware\n", " * Getting the esp32_url for this project\n", "* **Step3:** Now after sucessfully installing these libraries of python, you need to import these libraries for this project.\n", "* **Step4:** Data collection and processing, this very steps have some sub steps which is needed to be followed:\n", " * **Data Collection:** Capture image form esp32-cam and save them with there class name(in our project it is A to Z gestures).\n", " * **Data storing:** Now after creating your data with there class name you need to store these data into csv file, in our case we are taking the image data of any pixel, resizing it to 40x40, spliting the data into test and train and after this we will be storing these data in to csv files named as `train.csv` and `test.csv`.\n", " * **Data Loading:** We will be loading these csv files in our code.\n", " * **Data Processing:** Now its time to process the data for this project which will be helpful for us to develop the model and test it for the accuracy.\n", " * **Debugging:** Debugging the data is most essential before model development as it debugs our process and alearts us when there is any error.\n", " * **Previewing Data:** After some more data processing now we will be previewing the data in grayscale as this gives us the correct image data for developing our model.\n", "* **Step5:** Developing our ML model.\n", "* **step6:** Deploying this ML model using esp32-cam, for this we will be following some sub steps which are as follows:\n", " * some necessary system commands\n", " * Import some libraries\n", " * Load ML model\n", " * Connect to esp32-cam\n", " * Prediction\n", " * Converting the predicted value to text\n", " * Converting the text to speech\n", "\n", "and yes if you follow these steps, you will be getting your project ready." ], "metadata": { "id": "kVrsKk_fSBF1" }, "id": "kVrsKk_fSBF1" }, { "cell_type": "markdown", "source": [ "## **Step 1:** Getting system ready" ], "metadata": { "id": "hmTvNRyA2s2L" }, "id": "hmTvNRyA2s2L" }, { "cell_type": "code", "source": [ "!pip install opencv-python" ], "metadata": { "id": "6F6xHoAs23yD", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "d3d42533-e033-4d60-bda6-fd1dba7a1c44" }, "id": "6F6xHoAs23yD", "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: opencv-python in /usr/local/lib/python3.10/dist-packages (4.8.0.76)\n", "Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from opencv-python) (1.25.2)\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install pillow" ], "metadata": { "id": "KrVZnHOS2-w5", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "5e70512e-4c60-4276-cff5-60688216b155" }, "id": "KrVZnHOS2-w5", "execution_count": 2, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: pillow in /usr/local/lib/python3.10/dist-packages (9.4.0)\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install tensorflow" ], "metadata": { "id": "KKA6DNlI2-tW", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "ca87e82b-3a93-4fa0-f65e-86fc1171471f" }, "id": "KKA6DNlI2-tW", "execution_count": 3, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: tensorflow in /usr/local/lib/python3.10/dist-packages (2.15.0)\n", "Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.4.0)\n", "Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.6.3)\n", "Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.3.25)\n", "Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.6.0)\n", "Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.9.0)\n", "Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (18.1.1)\n", "Requirement already satisfied: ml-dtypes~=0.2.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: numpy<2.0.0,>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.25.2)\n", "Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.3.0)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.1)\n", "Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.20.3)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from tensorflow) (67.7.2)\n", "Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.16.0)\n", "Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.4.0)\n", "Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (4.12.2)\n", "Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.14.1)\n", "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.37.1)\n", "Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.64.1)\n", "Requirement already satisfied: tensorboard<2.16,>=2.15 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.2)\n", "Requirement already satisfied: tensorflow-estimator<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)\n", "Requirement already satisfied: keras<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)\n", "Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse>=1.6.0->tensorflow) (0.43.0)\n", "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.27.0)\n", "Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (1.2.1)\n", "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.6)\n", "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.31.0)\n", "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (0.7.2)\n", "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.0.3)\n", "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (5.4.0)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.4.0)\n", "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (4.9)\n", "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (1.3.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.7)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2.0.7)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2024.7.4)\n", "Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from werkzeug>=1.0.1->tensorboard<2.16,>=2.15->tensorflow) (2.1.5)\n", "Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.6.0)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (3.2.2)\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install scikit-learn" ], "metadata": { "id": "cm0oqRn_2-n9", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "c866a67b-ad81-49f4-9b16-75dbc2a47faa" }, "id": "cm0oqRn_2-n9", "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (1.2.2)\n", "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.25.2)\n", "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.11.4)\n", "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.4.2)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (3.5.0)\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install pyttsx3" ], "metadata": { "id": "KKM_5JMm2-lo", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "93dc064d-da7e-4874-9fe0-fe061953108d" }, "id": "KKM_5JMm2-lo", "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting pyttsx3\n", " Downloading pyttsx3-2.90-py3-none-any.whl (39 kB)\n", "Installing collected packages: pyttsx3\n", "Successfully installed pyttsx3-2.90\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install matplotlib" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "_VDtKp6FTMQL", "outputId": "1c873f6b-bcd6-477a-e432-85a1a1524a13" }, "id": "_VDtKp6FTMQL", "execution_count": 6, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (3.7.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.2.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (4.53.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.4.5)\n", "Requirement already satisfied: numpy>=1.20 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.25.2)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (24.1)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (9.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (3.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (2.8.2)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install seaborn" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3VeR5EahTMGz", "outputId": "86899791-fdb6-4d43-9ec7-d8748311eaef" }, "id": "3VeR5EahTMGz", "execution_count": 7, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: seaborn in /usr/local/lib/python3.10/dist-packages (0.13.1)\n", "Requirement already satisfied: numpy!=1.24.0,>=1.20 in /usr/local/lib/python3.10/dist-packages (from seaborn) (1.25.2)\n", "Requirement already satisfied: pandas>=1.2 in /usr/local/lib/python3.10/dist-packages (from seaborn) (2.0.3)\n", "Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in /usr/local/lib/python3.10/dist-packages (from seaborn) (3.7.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.2.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (4.53.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (1.4.5)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (24.1)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (9.4.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (3.1.2)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.2->seaborn) (2023.4)\n", "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.2->seaborn) (2024.1)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib!=3.6.1,>=3.4->seaborn) (1.16.0)\n" ] } ] }, { "cell_type": "markdown", "source": [ "## **Step 2:** Making Hardware ready\n" ], "metadata": { "id": "-y2FfoR13QpS" }, "id": "-y2FfoR13QpS" }, { "cell_type": "markdown", "source": [ "### Getting the code" ], "metadata": { "id": "Nh_opNZ97fh-" }, "id": "Nh_opNZ97fh-" }, { "cell_type": "markdown", "source": [ "Open Arduino IDE and follow these sub steps:\n", "\n", "Go to `File---> Examples---> Esp32---> Camera---> CameraWebServer`\n", "\n", "if you can not see the Esp32 in Examples then do not worry and follow this\n", "\n", "Go to `Tools---> Board:---> Boards Manager...`\n", " \n", "now find Esp32 in board manager and install it in your IDE by clicking the install button." ], "metadata": { "id": "tLsG7FOh4JKj" }, "id": "tLsG7FOh4JKj" }, { "cell_type": "markdown", "source": [ "### Interfacing the Hardware" ], "metadata": { "id": "NK03Z2SN7l8l" }, "id": "NK03Z2SN7l8l" }, { "cell_type": "markdown", "source": [ "See the beloy diagram and interface the esp32-cam as ot is (Do not forget to connect GPIO0 pin to GND).\n", "\n", "Now connect the FTDI to the computer through the usb cable\n", "* 5V ---> VCC\n", "* GND ---> GND\n", "* U0T ---> Rx\n", "* U0R ---> Tx\n", "* IO0 ---> GND\n", "\n", "pin diagram for your ease." ], "metadata": { "id": "6tC39tjo65-E" }, "id": "6tC39tjo65-E" }, { "cell_type": "markdown", "source": [ "![ftdi-esp32-cam-Sketch_bb.jpg](data:image/jpeg;base64,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kj4hhrw0XROYkRpkhmTGcJt0lK3uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443uON7jje443tgb2wN7jje443uON7jiU+242SUDDKHWKCAhenFXhpI+IYa8NF0TqirslIXLapKZpomknV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQOrqDIHV1BkDq6gyB1dQZA6uoMgdXUGQcqqg/Rlps0HnhaFCkLnk8dVT5A6uoMgdXUGQOrqDIHV1BkCw3QofN4ujFXh5Q+IYa8NFGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMhmQzIZkMyGZDMgZlkYY/Axg/3LH7eKntnVGjQ20hacxsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwQNggbBA2CBsEDYIGwRowc/lKlM/bmRGZsZ2O9yfP2o5PWOT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46m46m46m46m46m46m46m46m46m46m46m46m46m46m46m46m46m46m46m46m46+li/G5Q2sYNjWig9Reer1nDiFg7U1NTU1NTU1NTU1NTU1NQ7bNxbymlm9fh6P4WML3X+l+LjOhwYwrq48Zs75FxldzOJn/ACN56vWCrXCh/IqZcGbiFFjKLG8QosbxCixvEKLG8QosbxCixvEKLG8QosbxCixvEKLG8QosZElrAKE7dYBRIa8GpG3UCVFjKLGUySzdRCjWgAfkLN6/D0fwsYXuv9L8XGdDgxhXVx4zZ3yLjK7mcTP+RvPV77BdbhCuuwnS3r8PR/Cxhe6/0vxcZ0ODGFdXHjNnfIuMruZxM/5HjRU2OVv8KbHK3+FNDlb/AApocrf4U0OVv8KaHK3+FNDlb/Cmhyt/hTQ5W/wpocrf4U0OVv8ACmhyt/hTQ5W/wpocrf4U2OVv8J9YhpU0Tu0t5gQNLevw9H8LGF7r/S/FxnQ4MYV1ceM2d8i4yu5nEz/kaF0Mn0d4cpSJ+4ZuJSo5mqUHM3+VKjmb/KlRzN/lSo5m/wAqVHM3+VKjmb/KlRzN/lSo5m/ypUczf5UqOZv8qVHM3+VKjmb/ACpUczf5UoOZqlT+0hyhPhw4b6ku1ElulvX4ej+FjC91/pfi4zocGMK6uPGbO+RcZXcziZ/8TvX4ej+FjC91/pfi4zocGMK6uPGbBtm4uMpkUsfALAGKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKWnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKXnORil5zkYpec5GKWm+Ril5zkYpec5GKXnORil5zkYoE5yMQcocY/SllMwBS85yMUvOcjFLznIxS85yMUKZESJmUL2hB1cyi/FxnQ4MYV1ceM2EmM2IQ8mvpHfr3p1BTWn+RT/Ip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)" ], "metadata": { "id": "62QVBe0E6jdu" }, "id": "62QVBe0E6jdu" }, { "cell_type": "markdown", "source": [ "### Installing code to Hardware" ], "metadata": { "id": "mmHNA9It_w08" }, "id": "mmHNA9It_w08" }, { "cell_type": "markdown", "source": [ "Follow these steps to install code to your Hardware:\n", "* **Step 1:** Open the example code and do some necessary changes so that it can be used in our project, which are as follows:\n", " * Comment the line no 17 which is `#define CAMERA_MODEL_ESP_EYE // Has PSRAM`\n", " * uncomment the line no 25 which is `#define CAMERA_MODEL_AI_THINKER // Has PSRAM`\n", " * change the ssid and password\n", " ```\n", " const char *ssid = \"**********\";\n", " const char *password = \"**********\";\n", " ```\n", "\n", "Now Install the code on esp32cam by selecting the correct board and port to which the esp32-cam is connected. To do so\n", "\n", "Go to `Tools---> Board---> esp32---> AI Thinker ESP32-CAM`\n", "\n", "Go to `Tools---> Port---> your port`\n", "\n", "and hit the upload button (it will take some time to verify and upload the code to the esp32-cam).\n", "\n", "if it shows any error the for debugging follow these steps:\n", "* Press the reset button present on the esp32-cam module.\n", "* Check the connection for any loose fitting.\n" ], "metadata": { "id": "a7yrk0sg4SJN" }, "id": "a7yrk0sg4SJN" }, { "cell_type": "markdown", "source": [ "### Getting esp32_url for this project" ], "metadata": { "id": "2wWWs7Y1EyZX" }, "id": "2wWWs7Y1EyZX" }, { "cell_type": "markdown", "source": [ "Your Hardware is ready with the code now, only you need to get your esp32_url to get the camera access for this project. To do so you need to follow some steps which are as follows:\n", "* Open the serial monitor\n", "* Set the baud rate to `115200 baud`\n", "* Remove the jumper wire which is connected to IO0 to GND of esp32-cam module\n", "* Press the reset button present on the esp32-cam module, you will notice some url is printed on the serial monitor.\n", "* Copy this url and paste on the browser of your PC (ensure that your pc is also connected to the same hotspot to which the esp32-cam module is connected).\n", "* Now serach for the start stream button red in colour.\n", "* Click that button for starting the video stream, now video will start streaming on the web page\n", "* Now right click on the video displayed and go to open in new tab and cose the previous tab\n", "* Copy the url of the current page and thats it you got your esp32 url." ], "metadata": { "id": "MHxl9NmWjxzC" }, "id": "MHxl9NmWjxzC" }, { "cell_type": "markdown", "source": [ "## **Step 3:** Necessary Imports\n" ], "metadata": { "id": "FSNpz3TzcS0H" }, "id": "FSNpz3TzcS0H" }, { "cell_type": "code", "execution_count": 72, "id": "a305e00a-1919-4ff3-ae75-fb86a50075b7", "metadata": { "id": "a305e00a-1919-4ff3-ae75-fb86a50075b7" }, "outputs": [], "source": [ "import cv2 # openCV library for image processing\n", "import os # for some system functions\n", "import numpy as np # for data processing\n", "import pandas as pd # for data manupulation\n", "from PIL import Image # for accessing the image to our code as data\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import tensorflow as tf # for making deeplearning model\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, BatchNormalization\n", "from tensorflow.keras.optimizers import Adam\n", "from tensorflow.keras.callbacks import ReduceLROnPlateau\n", "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", "from tensorflow.keras.models import load_model\n", "from sklearn.preprocessing import OneHotEncoder\n", "from sklearn.model_selection import train_test_split # for spliting the data into test and train\n", "from sklearn.metrics import classification_report,confusion_matrix\n", "import time" ] }, { "cell_type": "markdown", "source": [ "### Connecting the drive to to notebook by running this code." ], "metadata": { "id": "vVJPcHat9Bm8" }, "id": "vVJPcHat9Bm8" }, { "cell_type": "code", "source": [ "from google.colab import drive\n", "drive.mount('/content/drive')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "WP4EFgfqvpkG", "outputId": "abc04ade-8785-45bc-afd7-9f395eb4f919" }, "id": "WP4EFgfqvpkG", "execution_count": 73, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n" ] } ] }, { "cell_type": "markdown", "source": [ "## **Step 4:** Data Collection and Processing\n" ], "metadata": { "id": "YjTEsSBJbZL6" }, "id": "YjTEsSBJbZL6" }, { "cell_type": "markdown", "source": [ "### Data Collection\n" ], "metadata": { "id": "hz9T9Is30LLK" }, "id": "hz9T9Is30LLK" }, { "cell_type": "code", "source": [ "def capture_images_from_esp32(class_name, esp32_url, capture_duration=20, save_dir='data'):\n", " # Create the directory for the class if it doesn't exist\n", " class_dir = os.path.join(save_dir, class_name)\n", " os.makedirs(class_dir, exist_ok=True)\n", "\n", " # Start capturing images from ESP32-CAM\n", " cap = cv2.VideoCapture(esp32_url)\n", " if not cap.isOpened():\n", " print(f\"Failed to open video stream at {esp32_url}\")\n", " return\n", "\n", " start_time = time.time()\n", " img_count = 0\n", "\n", " while int(time.time() - start_time) < capture_duration:\n", " ret, frame = cap.read()\n", " if not ret:\n", " print(\"Failed to capture image from ESP32-CAM\")\n", " break\n", "\n", " # Save the frame as an image file\n", " img_path = os.path.join(class_dir, f\"{img_count}.jpg\")\n", " cv2.imwrite(img_path, frame)\n", " img_count += 1\n", "\n", " # Display the frame (optional)\n", " cv2.imshow('Capturing', frame)\n", "\n", " # Press 'q' to quit early\n", " if cv2.waitKey(1) & 0xFF == ord('q'):\n", " break\n", "\n", " # Release the capture and close any OpenCV windows\n", " cap.release()\n", " cv2.destroyAllWindows()\n", " print(f\"Captured {img_count} images for class '{class_name}'.\")" ], "metadata": { "id": "ga0jFBVqlHtE" }, "id": "ga0jFBVqlHtE", "execution_count": 74, "outputs": [] }, { "cell_type": "code", "source": [ "esp32_url = 'http://192.168.144.123:81/stream' # Replace with your ESP32-CAM stream URL" ], "metadata": { "id": "JArxNAVNl2WH" }, "id": "JArxNAVNl2WH", "execution_count": 75, "outputs": [] }, { "cell_type": "code", "source": [ "if __name__ == \"__main__\":\n", " print(f\"Trying to open video stream at {esp32_url}\")\n", "\n", " while True:\n", " class_name = input(\"Which class are you going to capture? (leave empty to exit) \")\n", " if not class_name:\n", " print(\"Exiting...\")\n", " break\n", "\n", " print(f\"Starting capture for class: {class_name}\")\n", " capture_images_from_esp32(class_name, esp32_url)\n", " print(f\"Finished capturing images for class: {class_name}\")" ], "metadata": { "id": "X0ns-iyNlr9n", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "11cda77d-23f4-4d97-88a4-eaa0eeed0cba" }, "id": "X0ns-iyNlr9n", "execution_count": 76, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Trying to open video stream at http://192.168.144.123:81/stream\n", "Which class are you going to capture? (leave empty to exit) \n", "Exiting...\n" ] } ] }, { "cell_type": "markdown", "source": [ "### Storing collected data into a csv file" ], "metadata": { "id": "_ydKy7e_8cfu" }, "id": "_ydKy7e_8cfu" }, { "cell_type": "code", "source": [ "# this code for store the collected data into a csv file\n", "def image_to_csv(image_folder_path, train_csv_file_path, test_csv_file_path, test_size=0.2, random_state=42):\n", " rows = []\n", " labels = [folder for folder in os.listdir(image_folder_path) if os.path.isdir(os.path.join(image_folder_path, folder))]\n", "\n", " for label in labels:\n", " label_folder_path = os.path.join(image_folder_path, label)\n", "\n", " for image_name in os.listdir(label_folder_path):\n", " if image_name.endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):\n", " image_path = os.path.join(label_folder_path, image_name)\n", " image = Image.open(image_path)\n", " image = image.convert('L')\n", " image = image.resize((40, 40)) # Resize images to 40x40\n", " image_array = np.array(image)\n", " image_flattened = image_array.flatten().tolist()\n", " row = [label] + image_flattened\n", " rows.append(row)\n", "\n", " df = pd.DataFrame(rows)\n", " column_names = ['label'] + ['pixel_' + str(i) for i in range(len(rows[0]) - 1)]\n", " df.columns = column_names\n", " train_df, test_df = train_test_split(df, test_size=test_size, random_state=random_state, stratify=df['label'])\n", " train_df.to_csv(train_csv_file_path, index=False)\n", " test_df.to_csv(test_csv_file_path, index=False)" ], "metadata": { "id": "t8zcaj0FF1FL" }, "id": "t8zcaj0FF1FL", "execution_count": 77, "outputs": [] }, { "cell_type": "code", "source": [ "image_folder_path = '/content/drive/MyDrive/Last_Task/dataset' # change according to your file address" ], "metadata": { "id": "Hg-adVHemNGT" }, "id": "Hg-adVHemNGT", "execution_count": 78, "outputs": [] }, { "cell_type": "code", "source": [ "train_csv_file_path = 'train.csv'\n", "test_csv_file_path = 'test.csv'\n", "image_to_csv(image_folder_path, train_csv_file_path, test_csv_file_path)" ], "metadata": { "id": "S2ONwxNS8wiq" }, "id": "S2ONwxNS8wiq", "execution_count": 79, "outputs": [] }, { "cell_type": "markdown", "source": [ "### Data Loading\n" ], "metadata": { "id": "uOhwyEKbUL5U" }, "id": "uOhwyEKbUL5U" }, { "cell_type": "markdown", "source": [ "Now reading our created csv file from the drive, replace this with your address of csv file." ], "metadata": { "id": "wTnB8tco9T49" }, "id": "wTnB8tco9T49" }, { "cell_type": "code", "execution_count": 141, "id": "d91ebdeb-d482-49ae-a86d-e96dfff6ad73", "metadata": { "id": "d91ebdeb-d482-49ae-a86d-e96dfff6ad73" }, "outputs": [], "source": [ "train_df = pd.read_csv(\"train.csv\")\n", "test_df = pd.read_csv(\"test.csv\")\n", "# you should change these file path according to your file path" ] }, { "cell_type": "code", "execution_count": 142, "id": "413d5d1c-0103-4152-bcbc-11de33f1ddef", "metadata": { "id": "413d5d1c-0103-4152-bcbc-11de33f1ddef" }, "outputs": [], "source": [ "# you should change these file path according to your file path\n", "test = pd.read_csv(\"test.csv\")\n", "y = test['label']" ] }, { "cell_type": "code", "source": [ "train_df.head()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 255 }, "id": "qzpDfFLvUdoq", "outputId": "469891f7-8625-4b26-b909-a5101d176cd2" }, "id": "qzpDfFLvUdoq", "execution_count": 143, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " label pixel_0 pixel_1 pixel_2 pixel_3 pixel_4 pixel_5 pixel_6 \\\n", "0 d 120 128 136 143 151 162 171 \n", "1 c 97 103 106 108 109 131 159 \n", "2 d 121 129 136 145 151 154 154 \n", "3 d 113 122 130 139 148 161 173 \n", "4 d 109 119 126 135 146 162 174 \n", "\n", " pixel_7 pixel_8 ... pixel_1590 pixel_1591 pixel_1592 pixel_1593 \\\n", "0 164 162 ... 142 73 23 24 \n", "1 165 160 ... 26 22 20 20 \n", "2 166 172 ... 48 21 24 24 \n", "3 172 162 ... 142 138 136 133 \n", "4 173 164 ... 144 140 136 132 \n", "\n", " pixel_1594 pixel_1595 pixel_1596 pixel_1597 pixel_1598 pixel_1599 \n", "0 23 23 20 18 19 29 \n", "1 43 103 82 37 35 34 \n", "2 23 20 20 29 39 40 \n", "3 102 30 19 19 18 17 \n", "4 108 39 19 18 18 17 \n", "\n", "[5 rows x 1601 columns]" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
labelpixel_0pixel_1pixel_2pixel_3pixel_4pixel_5pixel_6pixel_7pixel_8...pixel_1590pixel_1591pixel_1592pixel_1593pixel_1594pixel_1595pixel_1596pixel_1597pixel_1598pixel_1599
0d120128136143151162171164162...142732324232320181929
1c97103106108109131159165160...262220204310382373534
2d121129136145151154154166172...48212424232020293940
3d113122130139148161173172162...1421381361331023019191817
4d109119126135146162174173164...1441401361321083919181817
\n", "

5 rows × 1601 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "train_df" } }, "metadata": {}, "execution_count": 143 } ] }, { "cell_type": "code", "source": [ "# Create the count plot\n", "plt.figure(figsize=(10, 10))\n", "sns.set_style(\"darkgrid\")\n", "sns.countplot(data=train_df, x='label') # Use data= to specify the DataFrame\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 655 }, "id": "1yBL-5pCUros", "outputId": "3e617e69-fbdb-42be-c4a1-be2f50524e3c" }, "id": "1yBL-5pCUros", "execution_count": 144, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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SQAAAAWRBAAAUBBJAAAABZEEAABQEEkAAAAFkQQAAFAQSQAAAAWRBAAAUBBJAAAABZEEAABQEEkAAAAFkQQAAFAQSQAAAAWRBAAAUBBJAAAABZEEAABQEEkAAAAFkQQAAFAQSQAAAAWRBAAAUBBJAAAABZEEAABQEEkAAACFqkfSX/7yl5xyyinZaaedMmLEiOy333557LHHWs+3tLTk4osvztixYzNixIgcfvjhWbhwYfUGBgAAurSqRtKrr76aT3/606mrq8vs2bPzox/9KKeeemr69u3bepvZs2dnzpw5OfPMMzN37txssMEGOfLII7Ny5coqTg4AAHRV61Xz4rNnz86mm26amTNnth7bcsstW3/f0tKS66+/Pscee2z22GOPJMm5556bMWPG5O67784+++xT8ZkBAICurarPJP385z/P8OHDM3ny5IwePToHHHBA5s6d23r+hRdeSGNjY8aMGdN6rE+fPtlhhx3y0EMPrdW1amrW/hfdV3v25b38ovuya1SKXaNS7BqVsi53pqrPJD3//PO54YYbcsQRR+SYY47JY489lunTp6euri7jx49PY2NjkqS+vr7N/err67NkyZK1ulZ9fZ8Om5uurV+/jao9At2EXaNS7BqVYteolHW9a1WNpJaWlgwfPjxf/vKXkyQf/vCH88wzz+TGG2/M+PHjO/RaTU3L0tKydvepre3hL3s39Mory7NmTXNFr2nXuie7RqXYNSrFrlEp7d21mpp39+RJVSNp4MCBGTJkSJtj2267be66667W80nS1NSUQYMGtd6mqakpw4YNW6trtbRkrSOJ7suuUCl2jUqxa1SKXaNS1uWuVfU9SaNGjcof//jHNscWLlyYzTffPEmyxRZbZODAgZk/f37r+ddeey2PPPJIGhoaKjorAADQPVQ1kj772c/mkUceyTe/+c386U9/yh133JG5c+fmsMMOS5LU1NRk0qRJufLKK/Ozn/0sTz/9dL761a9m0KBBrZ92BwAA0JGq+nK7ESNG5LLLLst//Md/5PLLL88WW2yRKVOmZP/992+9zVFHHZXXX389Z5xxRpYuXZodd9wxV199dXr16lXFyQEAgK6qqpGUJLvttlt22223//V8TU1NTjzxxJx44okVnAoAAOiuqvpyOwAAgM5GJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIA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Lbd8z0MBAABUS4e9J6lHjx45/PDD853vfKejHhIAAKDiOvSDG55//vm8+eabHfmQAAAAFdWul9v9vx/M0NLSksbGxvzyl7/M+PHjO2QwAACAamhXJP3+979v83WPHj3Sv3//nHbaaZkwYUKHDAYAAFAN7YqkOXPmdPQcAAAAnUK7IunvXn755SxYsCBJsu2226Z///4dMhQAAEC1tCuSVqxYkbPPPjv/+Z//mebm5iRJbW1t/u3f/i3f+MY3ssEGG3TokAAAAJXSrk+3mzVrVh544IFceeWV+e1vf5vf/va3ueKKK/LAAw9k1qxZHT0jAABAxbQrku66666cc845GTduXHr37p3evXtn3LhxOfvss3PXXXd19IwAAAAV065IeuONNzJgwIC3HK+vr88bb7zxnocCAAColnZF0siRI3PJJZdk5cqVrcfeeOONXHbZZRk5cmRHzQYAAFBx7frghilTpuTzn/98dt111wwbNixJ8tRTT6Vnz5759re/3aEDAgAAVFK7Imno0KH5r//6r9xxxx2tHwG+7777Zr/99sv666/foQMCAABUUrsi6aqrrkp9fX0OPvjgNsdvueWWvPzyyzn66KPX+jG/9a1v5YILLsikSZNy+umnJ0lWrlyZWbNm5c4778yqVasyduzYTJ069W3fDwUAANAR2vWepJtuuinbbrvtW45/8IMfzI033rjWj/foo4/mxhtvzNChQ9scnzFjRn7xi1/koosuypw5c7J48eKccMIJ7RkZAADgXWlXJDU2NmbgwIFvOd6/f/80Njau1WMtX748X/nKVzJ9+vT07du39fiyZcsyb968nHbaaRk9enSGDx+eGTNm5KGHHsrDDz/cnrEBAADeUbsiabPNNsvvfve7txx/8MEHM2jQoLV6rLPOOivjxo3LmDFj2hx//PHHs3r16jbHhwwZksGDB7crkmpq1v4X3Vd79uW9/KL7smtUil2jUuwalbIud6Zd70k66KCDMmPGjLz55pvZeeedkyTz58/Peeedl8997nPv+nF+9KMf5fe//31uueWWt5xbsmRJ6urqsvHGG7c5Xl9fv9bPVv3tfn3W+j50T/36bVTtEegm7BqVYteoFLtGpazrXWtXJH3+85/PX//610ybNi2rV69OkvTq1Suf//zn84UvfOFdPcZLL72Uc845J9/+9rfTq1ev9oyxVpqalqWlZe3uU1vbw1/2buiVV5ZnzZrmil7TrnVPdo1KsWtUil2jUtq7azU17+7Jk3ZFUk1NTb7yla/kuOOOy//8z/9k/fXXz9Zbb52ePXu+68d44okn0tTUlAMPPLD12Jo1a/LAAw/ke9/7Xq655pqsXr06S5cubfNsUlNT09u+H+qdtLRkrSOJ7suuUCl2jUqxa1SKXaNS1uWutSuS/m6jjTbKiBEj2nXfnXfeOXfccUebY1/72tey7bbb5qijjspmm22Wurq6zJ8/P5/85CeTJAsWLMiiRYsycuTI9zI2AADA/+o9RdJ70bt372y//fZtjm244YbZZJNNWo9PmDAhs2bNSt++fdO7d+9Mnz49DQ0NIgkAAFhnqhZJ78aUKVPSo0ePTJ48uc0PkwUAAFhXOlUkzZkzp83XvXr1ytSpU4URAABQMe36OUkAAABdlUgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAICCSAIAACiIJAAAgIJIAgAAKIgkAACAgkgCAAAoiCQAAIBCVSPp+9//fvbbb7+MGjUqo0aNyiGHHJJ77rmn9fzKlSszbdq07LTTTmloaMgXv/jFLFmypIoTAwAAXV1VI2nTTTfNKaeckltvvTXz5s3LzjvvnOOPPz7PPPNMkmTGjBn5xS9+kYsuuihz5szJ4sWLc8IJJ1RzZAAAoItbr5oX33333dt8/aUvfSk33HBDHn744Wy66aaZN29ezj///IwePTrJ36Jp7733zsMPP5yRI0dWYWIAAKCrq2okldasWZOf/OQnWbFiRRoaGvL4449n9erVGTNmTOtthgwZksGDB7crkmpqOnhgujT7QqXYNSrFrlEpdo1Kac+uvdv7VD2Snn766Rx66KFZuXJlNtxww1x++eXZbrvt8uSTT6auri4bb7xxm9vX19ensbFxra9TX9+no0ami+vXb6Nqj0A3YdeoFLtGpdg1KmVd71rVI2mbbbbJbbfdlmXLluWuu+7Kqaeemu9+97sdfp2mpmVpaVm7+9TW9vCXvRt65ZXlWbOmuaLXtGvdk12jUuwalWLXqJT27lpNzbt78qTqkdSzZ89stdVWSZLhw4fnsccey/XXX5+99torq1evztKlS9s8m9TU1JSBAweu9XVaWrLWkUT3ZVeoFLtGpdg1KsWuUSnrctc63c9Jam5uzqpVqzJ8+PDU1dVl/vz5recWLFiQRYsW+dAGAABgnanqM0kXXHBBdt1112y22WZZvnx5fvjDH+b+++/PNddckz59+mTChAmZNWtW+vbtm969e2f69OlpaGgQSQAAwDpT1UhqamrKqaeemsWLF6dPnz4ZOnRorrnmmuyyyy5JkilTpqRHjx6ZPHlyVq1albFjx2bq1KnVHBkAAOjiqhpJM2bM+Ifne/XqlalTpwojAACgYjrde5IAAACqSSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAA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1a9+lU9/+tP56Ec/mp122ilf+MIX8txzz1V7LDqR5ubmXHXVVdl9990zYsSI7L///vnJT36SJLnvvvsydOjQ/PrXv84BBxyQESNGZNKkSWlqaso999yTvfbaK6NGjcrJJ5+c119/vfUxJ06cmLPOOitnnXVWdtxxx+y000656KKL8vefvDJx4sS8+OKLmTlzZoYOHZqhQ4dmxYoVGTVqVOu1/+7uu+/OyJEj89prr1XuD4VObc2aNf/rbtExRBJtnHvuuXnggQdyxRVX5Jprrsn999+fJ554otpj0QVdcMEFmT17do477rjceeedOf/88/2QaNaJ119/PUcccUTmzZuX6667LjU1NTn++OPT3Nxc7dHoJK666qrcdtttmTZtWn70ox/l8MMPz1e+8pXcf//9rbe57LLL8o1vfCM33nhj/vznP+ekk07K9ddfnwsuuCDf+ta3cu+992bOnDltHvcHP/hBamtrc/PNN+f000/Pddddl5tvvjlJcumll2bTTTfN5MmTc++99+bee+/NhhtumH322Se33nprm8eZN29ePvnJT6Z3797r/g+D94V/tFt0jPWqPQCdx/Lly3PLLbfkvPPOy+jRo5Mks2bNyrhx46o8GV3Na6+9luuvvz5nnHFGxo8fnyT5p3/6p3z0ox+t8mR0RZ/85CfbfD1jxoyMHj06zz77bLbffvsqTUVnsWrVqlx11VW59tpr09DQkCTZcsst8+CDD+amm27KwQcfnCQ56aSTsuOOOyZJPvWpT+WCCy7I3XffnS233DLJ3/bsvvvuy9FHH9362JtttlmmTJmSmpqabLvttvnDH/6Q6667LgcffHA22WST1NbWZqONNsrAgQNb73PQQQfl0EMPzeLFizNo0KA0NTXlV7/6Va699tpK/ZHwPvCPdouOIZJo9fzzz2f16tXZYYcdWo9tsskm2Wabbao4FV3RggULsmrVquy8887VHoVuYOHChbnkkkvyyCOP5JVXXml9ScpLL70kksif/vSnvP766/nc5z7X5vjq1avzoQ99qPXroUOHtv6+vr4+G2ywQWsgJcmAAQPy2GOPtXmMHXbYITU1Na1fjxw5Mtdee23WrFmT2trat51nxIgR2W677XLbbbfl6KOPzu23357BgwfnYx/72Hv6Pula2rNbrB2RBFRcr169qj0C3cgxxxyTzTffPNOnT8+gQYPS3NycfffdN6tXr672aHQCK1asSPK3l9x94AMfaHOuZ8+ere9fW2+9//tPppqamjZf//1YR72E86CDDsr3vve9HH300bn11ltz4IEHtvkHMbDueU8SrbbccsvU1dXlkUceaT326quvZuHChdUbii5p6623zvrrr5///u//rvYodHGvvPJK/vjHP+bYY4/N6NGjM2TIkLz66qvVHotOZMiQIenZs2cWLVqUrbbaqs2vzTbb7D099qOPPtrm60ceeSRbbbVV6//pr6ure9uw2n///bNo0aJcf/31efbZZ1tflgx/9067xXvnmSRabbTRRpkwYULOO++8bLLJJqmvr8+FF17o/17R4Xr16pWjjjoq5513Xurq6jJq1Ki8/PLLeeaZZ3LQQQdVezy6kL59+2aTTTbJTTfdlIEDB2bRokW54IILqj0WnUjv3r3zuc99LjNnzkxLS0t23HHHLFu2LL/73e/Su3fvDB48uN2PvWjRosycOTOHHHJIfv/73+e73/1uTj311Nbzm2++eR544IHss88+qaurS//+/ZP8bW8/8YlP5Nxzz80uu+ySTTfd9D1/n3Qt77RbvHciiTa++tWvZsWKFTn22GOz0UYb5YgjjvCRo6wTxx13XGpra3PJJZdk8eLFGThwYA499NBqj0UX06NHj1x44YWZPn169t1332yzzTb5+te/nokTJ1Z7NDqRk046Kf37989VV12VF154IX369MmHP/zhHHPMMe/pJXQHHHBA3njjjRx00EGpra3NpEmTcsghh7Senzx5cs4444zsscceWbVqVZ5++unWc5/61Kfywx/+MBMmTHhP3xtd0zvtFu9dTYsPVQcA6FATJ07MsGHDcvrpp7fr/rfddltmzpyZX//61+nZs2cHTwe8E88kAQB0Eq+//noaGxsze/bsHHrooQIJqsQHNwAAdBJXX3119tprrwwYMKDNz1wCKsvL7QAAAAqeSQIAACiIJAAAgIJIAgAAKIgkAACAgkgC4H1j4sSJOeecc97Vbe+7774MHTo0S5cufU/X3H333XPddde9p8cA4P1FJAEAABREEgAAQEEkAfC+dNttt+XAAw9MQ0NDdtlll5x88slpamp6y+1+97vfZb/99stHPvKRHHzwwfnDH/7Q5vxvf/vbHHbYYRkxYkTGjRuX6dOnZ8WKFZX6NgDohEQSAO9Lb775Zk488cTcfvvtufzyy/Piiy/mtNNOe8vtzj333Jx22mm55ZZb0r9//xxzzDFZvXp1kuS5557LUUcdlX/913/N7bffngsvvDAPPvhgzj777Ep/OwB0IiIJgPelT33qUxk3bly23HLLjBw5Mqeffnp+9atfZfny5W1ud8IJJ2SXXXbJ0KFDM2vWrDQ1NeWnP/1pkuSqq67Kfvvtl8MPPzxbb711Ro0aldNPPz233XZbVq5cWY1vC4BOYL1qDwAA7fH444/nsssuy1NPPZVXX301LS0tSZKXXnop2223XevtRo4c2fr7TTbZJNtss00WLFiQJHnqqafy9NNP54477mi9TUtLS5qbm/PCCy9kyJAhlflmAOhURBIA7zsrVqzIkUcembFjx+b8889Pv3798tJLL+XII49sfSndu32cQw89NBMnTnzLuc0226wjRwbgfUQkAfC+s2DBgvz1r3/NKaec0hozjz/++Nve9uGHH87gwYOTJK+++moWLlyYbbfdNkny4Q9/OM8++2y22mqrygwOwPuC9yQB8L4zePDg1NXVZc6cOXn++efzs5/9LFdcccXb3vaKK67I/Pnz84c//CGnnXZa+vXrlz322CNJctRRR+Whhx7KWWedlSeffDILFy7M3XffnbPOOquS3w4AnYxIAuB9p3///pk1a1Z+8pOfZO+9987s2bNz6qmnvu1tTz755Jxzzjk58MADs2TJklx55ZXp2bNnkmTYsGGZM2dOFi5cmMMOOyzjx4/PJZdckkGDBlXy2wGgk6lp+fs7XQEAAPBMEgAAQEkkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABREEgAAQEEkAQAAFEQSAABAQSQBAAAURBIAAEBBJAEAABT+f8UDgcIOTEY0AAAAAElFTkSuQmCC\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "### Data Processing" ], "metadata": { "id": "OtIsb0KJY83I" }, "id": "OtIsb0KJY83I" }, { "cell_type": "markdown", "source": [ "Function which converts the labels into a integer like:\n", "\n", "\n", "* a ---> 1\n", "* b ---> 2\n", "* c ---> 3\n", "\n", "and so on...\n", "\n" ], "metadata": { "id": "rxXoc0ew9kZY" }, "id": "rxXoc0ew9kZY" }, { "cell_type": "code", "source": [ "def change_label(row):\n", " label_mapping = {\n", " 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8,\n", " 'i': 9, 'j': 10, 'k': 11, 'l': 12, 'm': 13, 'n': 14, 'o': 15, 'p': 16,\n", " 'q': 17, 'r': 18, 's': 19, 't': 20, 'u': 21, 'v': 22, 'w': 23, 'x': 24,\n", " 'y': 25, 'z': 26, 'empty': 0\n", " }\n", " return label_mapping.get(row['label'], 0)" ], "metadata": { "id": "EuiHSkHoL5wX" }, "id": "EuiHSkHoL5wX", "execution_count": 145, "outputs": [] }, { "cell_type": "markdown", "source": [ "Now we have to apply the functions previously made to convert the labels from string to an integer value which will be helpful for our model development." ], "metadata": { "id": "b7Y30M0L-Bf2" }, "id": "b7Y30M0L-Bf2" }, { "cell_type": "code", "source": [ "# Apply the function to each row of the DataFrame\n", "train_df['label'] = train_df.apply(change_label, axis=1)\n", "test_df['label'] = test_df.apply(change_label, axis=1)" ], "metadata": { "id": "l7pGJ9z7L_Nc" }, "id": "l7pGJ9z7L_Nc", "execution_count": 146, "outputs": [] }, { "cell_type": "markdown", "source": [ "Now defining y_train and y_test for developing our model as labels" ], "metadata": { "id": "jbJe1iatH1Ul" }, "id": "jbJe1iatH1Ul" }, { "cell_type": "code", "execution_count": 147, "id": "3f5a1427-be96-407a-97ac-a3f3e83323c9", "metadata": { "id": "3f5a1427-be96-407a-97ac-a3f3e83323c9" }, "outputs": [], "source": [ "y_train = train_df['label']\n", "y_test = test_df['label']\n", "y_debug = y_train[0:10]\n", "del train_df['label']\n", "del test_df['label']" ] }, { "cell_type": "code", "source": [ "print(y_train) # Prints the y_train all labels" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "LkjBrZQFMQeF", "outputId": "264a6956-7f81-4396-8bec-80b83864f277" }, "id": "LkjBrZQFMQeF", "execution_count": 148, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0 4\n", "1 3\n", "2 4\n", "3 4\n", "4 4\n", " ..\n", "395 4\n", "396 0\n", "397 4\n", "398 2\n", "399 1\n", "Name: label, Length: 400, dtype: int64\n" ] } ] }, { "cell_type": "code", "source": [ "train_df.shape # prints the shape of the train_df" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "PS-K7T_7MQYB", "outputId": "179599b9-0dc2-484a-cee5-36e3617be34b" }, "id": "PS-K7T_7MQYB", "execution_count": 89, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(400, 1600)" ] }, "metadata": {}, "execution_count": 89 } ] }, { "cell_type": "markdown", "source": [ "The code snippet provided utilizes the LabelBinarizer class from the sklearn.preprocessing module in the scikit-learn library. This class is used to convert categorical labels into a binary (one-hot encoded) format" ], "metadata": { "id": "JnG-ozrJGoJi" }, "id": "JnG-ozrJGoJi" }, { "cell_type": "code", "execution_count": 90, "id": "7c407bdf-8348-4526-ae09-fa5434787d54", "metadata": { "id": "7c407bdf-8348-4526-ae09-fa5434787d54" }, "outputs": [], "source": [ "from sklearn.preprocessing import LabelBinarizer # Import the LabelBinarizer" ] }, { "cell_type": "code", "source": [ "label_binarizer = LabelBinarizer() # Create an instance of LabelBinarizer" ], "metadata": { "id": "kr2T69NDHL11" }, "id": "kr2T69NDHL11", "execution_count": 91, "outputs": [] }, { "cell_type": "code", "source": [ "# Fit on the training data and transform both train and test data\n", "y_train = label_binarizer.fit_transform(y_train) # Fit the LabelBinarizer on the y_train data and transform it\n", "y_test = label_binarizer.fit_transform(y_test) # Fit the LabelBinarizer on the y_test data and transform it" ], "metadata": { "id": "5s3P09Z0HGz_" }, "id": "5s3P09Z0HGz_", "execution_count": 92, "outputs": [] }, { "cell_type": "markdown", "source": [ "Now defining the x_train and x_test for development of our model." ], "metadata": { "id": "hn5Jd20oHhnC" }, "id": "hn5Jd20oHhnC" }, { "cell_type": "code", "execution_count": 93, "id": "a0389c80-86b7-4ccc-977f-c4368a397f34", "metadata": { "id": "a0389c80-86b7-4ccc-977f-c4368a397f34" }, "outputs": [], "source": [ "x_train = train_df.values\n", "x_test = test_df.values" ] }, { "cell_type": "code", "execution_count": 94, "id": "d5952c76-018c-4413-b21e-72ccf3f01509", "metadata": { "id": "d5952c76-018c-4413-b21e-72ccf3f01509" }, "outputs": [], "source": [ "# Convert y_train and y_test to numpy arrays if they are pandas Series\n", "if isinstance(y_train, pd.Series):\n", " y_train = y_train.to_numpy()\n", "if isinstance(y_test, pd.Series):\n", " y_test = y_test.to_numpy()" ] }, { "cell_type": "code", "execution_count": 95, "id": "691db660-ddb2-4efd-89ab-7a7a11cb17fe", "metadata": { "id": "691db660-ddb2-4efd-89ab-7a7a11cb17fe" }, "outputs": [], "source": [ "# One-hot encode the labels\n", "encoder = OneHotEncoder(sparse=False)" ] }, { "cell_type": "code", "execution_count": 96, "id": "c7b30940-6df6-415b-854f-399bca0db072", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c7b30940-6df6-415b-854f-399bca0db072", "outputId": "98eb28ad-d81c-42d3-bd71-303a3cbac51d" }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.10/dist-packages/sklearn/preprocessing/_encoders.py:868: FutureWarning: `sparse` was renamed to `sparse_output` in version 1.2 and will be removed in 1.4. `sparse_output` is ignored unless you leave `sparse` to its default value.\n", " warnings.warn(\n" ] } ], "source": [ "# Reshape y_train and y_test for encoding\n", "y_train_flat = y_train.reshape(-1, 1)\n", "y_test_flat = y_test.reshape(-1, 1)\n", "\n", "y_train_encoded = encoder.fit_transform(y_train_flat)\n", "y_test_encoded = encoder.transform(y_test_flat)" ] }, { "cell_type": "code", "source": [ "# Reshape x_train and x_test to 4D tensors if they are not already\n", "if len(x_train.shape) == 2: # If the shape is (num_samples, height*width)\n", " x_train = x_train.reshape(x_train.shape[0], 40, 40, 1)\n", "if len(x_test.shape) == 2: # If the shape is (num_samples, height*width)\n", " x_test = x_test.reshape(x_test.shape[0], 40, 40, 1)" ], "metadata": { "id": "MoRNQ_xlrZIU" }, "id": "MoRNQ_xlrZIU", "execution_count": 97, "outputs": [] }, { "cell_type": "code", "execution_count": 98, "id": "781a9580-702c-429d-9094-05ba2dcc1da4", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "781a9580-702c-429d-9094-05ba2dcc1da4", "outputId": "d307061b-1385-42b9-ca5d-ae044e3a4af6" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Shape of y_train_encoded: (2000, 2)\n", "Shape of y_test_encoded: (500, 2)\n", "Shape of x_train: (400, 40, 40, 1)\n", "Shape of x_test: (100, 40, 40, 1)\n" ] } ], "source": [ "# This code will print the shape of all the data for developing the model\n", "print(\"Shape of y_train_encoded:\", y_train_encoded.shape)\n", "print(\"Shape of y_test_encoded:\", y_test_encoded.shape)\n", "print(\"Shape of x_train:\", x_train.shape)\n", "print(\"Shape of x_test:\", x_test.shape)" ] }, { "cell_type": "code", "source": [ "# Reshaping the array if not in desired shape\n", "print(\"Shape of x_train:\", x_train.shape)\n", "try:\n", " reshaped_array = x_train.reshape(-1, 40, 40, 1)\n", " print(\"Shape of the reshaped array:\", reshaped_array.shape)\n", "except ValueError as e:\n", " print(\"Error:\", e)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "vdD25o91rd9c", "outputId": "1ea94563-430c-4434-a9cf-5c13b48d1e85" }, "id": "vdD25o91rd9c", "execution_count": 99, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Shape of x_train: (400, 40, 40, 1)\n", "Shape of the reshaped array: (400, 40, 40, 1)\n" ] } ] }, { "cell_type": "markdown", "source": [ "### Debugging the data before model development." ], "metadata": { "id": "3rFpGMalIbFx" }, "id": "3rFpGMalIbFx" }, { "cell_type": "code", "execution_count": 100, "id": "fe8b9384-fa80-431f-8f15-7c51b3e6df2a", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "fe8b9384-fa80-431f-8f15-7c51b3e6df2a", "outputId": "1c5ee9a5-216d-4eaa-822e-7d2833e4b945" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(1, 40, 40, 1)" ] }, "metadata": {}, "execution_count": 100 } ], "source": [ "x_tmp = x_train[0]\n", "x_tmp=x_tmp.reshape(1,40,40,1)\n", "x_tmp = np.array(x_tmp)\n", "x_tmp.shape" ] }, { "cell_type": "code", "execution_count": 101, "id": "f1ca994e-ae00-4797-83c2-b40592b7ab19", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "f1ca994e-ae00-4797-83c2-b40592b7ab19", "outputId": "63a85818-d709-4be6-e748-c58fe225da4b" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(10,)" ] }, "metadata": {}, "execution_count": 101 } ], "source": [ "np.transpose(y_debug).shape" ] }, { "cell_type": "code", "execution_count": 102, "id": "97165030-6dbb-4295-8374-afbc3d82c4cd", "metadata": { "id": "97165030-6dbb-4295-8374-afbc3d82c4cd" }, "outputs": [], "source": [ "# I will use this for debuggin on the ESP32\n", "x_debug = (train_df.values)[0:10]\n", "csv_x_debug = 'csv_x.csv'\n", "csv_y_debug = 'csv_y.csv'\n", "y_db2 = np.array(y_debug).reshape(1,-1)\n", "# Write data to the CSV file\n", "np.savetxt(csv_x_debug, x_debug, delimiter=',', fmt='%s')\n", "np.savetxt(csv_y_debug, y_db2, delimiter=',', fmt='%s')" ] }, { "cell_type": "markdown", "source": [ "### Some more data processing before model development" ], "metadata": { "id": "fSkPjjfwIu6k" }, "id": "fSkPjjfwIu6k" }, { "cell_type": "code", "execution_count": 103, "id": "b65ab5df-04ef-44f6-ba11-92b1d9cc45dc", "metadata": { "id": "b65ab5df-04ef-44f6-ba11-92b1d9cc45dc" }, "outputs": [], "source": [ "# Normalize the data while preserving the data type\n", "x_train = (x_train.astype(np.float32) / 127.5) - 1.0\n", "x_test = (x_test.astype(np.float32) / 127.5) - 1.0" ] }, { "cell_type": "code", "execution_count": 104, "id": "4655aa58-6368-49af-ad14-7b657b121bd9", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4655aa58-6368-49af-ad14-7b657b121bd9", "outputId": "81f5c42b-c28b-4607-ed1c-f42eb2999d25" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(400, 40, 40, 1)\n", "640000\n" ] } ], "source": [ "print(x_train.shape)\n", "print(x_train.size)" ] }, { "cell_type": "code", "execution_count": 105, "id": "3e2acdee-05b7-430d-9385-b7909513a1e6", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3e2acdee-05b7-430d-9385-b7909513a1e6", "outputId": "bcdc2eb5-d958-4126-8185-5fcaebdb6c8d" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(100, 40, 40, 1)\n", "160000\n" ] } ], "source": [ "print(x_test.shape)\n", "print(x_test.size)" ] }, { "cell_type": "code", "source": [ "x_train = x_train.reshape(-1, 40, 40, 1)\n", "x_test = x_test.reshape(-1, 40, 40, 1)" ], "metadata": { "id": "PUR0vqYorlae" }, "id": "PUR0vqYorlae", "execution_count": 106, "outputs": [] }, { "cell_type": "code", "source": [ "x_train.shape" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "N3U-LoDCrnuK", "outputId": "a6f75171-7b33-45e3-996d-0d99d3eed9cb" }, "id": "N3U-LoDCrnuK", "execution_count": 107, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(400, 40, 40, 1)" ] }, "metadata": {}, "execution_count": 107 } ] }, { "cell_type": "markdown", "source": [ "### Preview of our data" ], "metadata": { "id": "2GeQm5sNI5Y_" }, "id": "2GeQm5sNI5Y_" }, { "cell_type": "code", "execution_count": 108, "id": "a7cd525e-454d-4c94-930d-7a2426d94f6d", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 359 }, "id": "a7cd525e-454d-4c94-930d-7a2426d94f6d", "outputId": "a80a2988-18d0-42ee-b7dd-7ea41c9293a4" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAINCAYAAAAjhxwdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADHRUlEQVR4nO39aYBdRbX3j68kZCBJJ4QkEMJMGCUMHYGQEMGLoIKgSEC9iijmES8Cer0O3Ov1JwYxRJzA54F7QRDDJCKD84QCohgIYAIEAgTCmABJmiEhhIz9f8F/H6q+53StrvTZ3X26P583vVfvqXbtWjWcXd9afVpbW1sNAAAAAAAAAOpO365OAAAAAAAAAEBPhUE3AAAAAAAAQEkw6AYAAAAAAAAoCQbdAAAAAAAAACXBoBsAAAAAAACgJBh0AwAAAAAAAJQEg24AAAAAAACAkmDQDQAAAAAAAFASDLoBAAAAAAAASoJBNwAAAAAAAEBJlDbovuaaa+zwww+3ffbZx0488UR74IEHyroVQEOATwDE4BMAMfgEQAw+AT2FUgbdv/vd7+y8886z008/3W6++Wbbc889bdq0adbS0lLG7QC6PfgEQAw+ARCDTwDE4BPQk+jT2traWu+LnnjiibbPPvvY17/+dTMz27hxox122GH28Y9/3E499dR63w6g24NPAMTgEwAx+ARADD4BPYnN6n3BtWvX2kMPPWSf+cxnKv/r27evTZ482ebOndvu61x66aV26qmn2kUXXWT9+vWL9g0aNKhNW/cNGTIkab/xxhuRvWHDhuTxa9asiezNN9+8sr3FFltE+wYMGBDZffvGEwv69OmTtNevX59M69q1a6uO7du3r02YMMHuvfde27hxY2V/uF3LHjhwYGTrc+v+8Lk32ywuRvqcei/NY88On9PMbNWqVZXt5cuXR/see+yxyH7++ecj++WXX65sDxo0yM4//3wrm3r5xHe+8x378pe/bN/61reqyor6SGjrsdtss01k77TTTpGt71rz37PDe6s/qk9o2dF76379jXD16tWRrWXH7M283n///W3u3LlRWVT/0nM1LYMHD07uD219bsXzR02LplXt1157rbKtPvHoo49G9jPPPBPZr776amV70KBB9v3vfz+V9LpQL5/40Y9+ZJ/+9Kft4osvrvKB1PvTcqjnKkOHDo1sr1yH78Msri9H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EyZMSF47NR6oZef0rbx2wrtWe6hrnO7tttvORo8ebbNnz67877XXXrP777/fmpub63krgIYAnwCIwScAYvAJgBh8Anoi2V+6V61aZc8880zFfu6552zBggU2fPhwGzt2rJ188sn2P//zP7bjjjvadtttZxdeeKFttdVWldUHAXoa+ARADD4BEINPAMTgE9DbyB50z58/304++eSKfd5555mZ2Qc/+EGbOXOmffrTn7bVq1fb17/+dVuxYoW9/e1vt8suuyx7tcNwiX9vpdlwKkPONFuzvClQtQinj2g6PY2op6tevHhxZGuoiocffriy/eSTT5rZWytpfuc734mmRnz+85+Pzi30rm3dO8fOmWJYy84NpZYTMqwz6AqfyMGTLSi505JS4au8e+u5ngTjvvvui+x58+ZFdqhrKhrzwid+8YtfRJqchQsXRufuv//+SXuHHXaI7NRUMW8abirPah3vXS9MS27YtU0Je+HRWT5RpHfjxo3uNOuQnLU6zPxy603t64jcw/NHXUn28ccfj+xQf1csrtW3b9+qNsDMD7WkeNMlw+vlrInQnuNzrue93/asbt1ROssnij5J37593ecOy62++9z1cPR9aF3uSdZyrq1TTHPWODGLn+2KK64wszenqH/pS1+yRYsWRfIdnT7uTenW9/XnP/85skOd6HHHHRft00XDvBBgnk+k0urV9ak6sF6Si87yiRTeNO7Uvty629NVp0K9etrlWiuzh3jhy0IfueWWW8zszbI8adIkW7hwYdR38sY6mqeqN9dnufDCCyvbYXkwMzv00EMj22snFH1HKZlT7rXCd9Te0LzZg+6JEydWLSwR0qdPH/v85z9fNcgD6KngEwAx+ARADD4BEINPQG+jrppuAAAAAAAAAHgLBt0AAAAAAAAAJdFt43SHePqRHL2cR44Gyiyt6c4N9aJ6ghtuuCGy586d21ayK3qNIg0PPfRQpMGYOXNmdLzGjhw3blxW2kIdhKdP7aid0nDk6uR7Cp6uJSx7nn61vVqUAu99hXod1ZvmpLvWfg3hoITvu9A4FT6x2WabRbqnhx56KDo3jPFtZvbCCy9E9gknnBDZhVa8Vlpz1zXI1bem9nvvpycRrnOQ0lt5eKFfvHomFW/VwysLqTBPZmZLly6NbF334LbbbqtsP/3002b2pl/++Mc/tieeeCK6/2677Za8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W758eRelGOoBPtE2+ETvBJ9oG3yid4JPtA0+0TvBJ9oGn+hcuuWg+3e/+52dd955dvrpp9vNN99se+65p02bNs1aWlq6Omndgjlz5tjHPvYxu/766+2KK66w9evX27Rp0+z111+vHDNjxgy77bbb7IILLrCrrrrKli5dameccUYXpho6Aj6RBp/ofeATafCJ3gc+kQaf6H3gE2nwiU6mtRtywgkntE6fPr1ib9iwoXXKlCmtl1xySRemqvvS0tLSuvvuu7fOmTOntbW1tXXFihWte++9d+vvf//7yjGPP/546+677946d+7cLkoldAR8Ig98oueDT+SBT/R88Ik88ImeDz6RBz5RLt3uS/fatWvtoYcessmTJ1f+17dvX5s8ebLNnTu3C1PWfVm5cqWZmQ0fPtzMzObPn2/r1q2L8nDcuHE2duxYmzdvXlckEToAPpEPPtGzwSfywSd6NvhEPvhEzwafyAefKJduN+h++eWXbcOGDTZy5Mjo/yNHjkRDUIONGzfajBkzbMKECbb77rubmdny5cutf//+NmzYsOjYkSNH2rJly7oimdAB8Ik88ImeDz6RBz7R88En8sAnej74RB74RPls1tUJgI4xffp0W7hwoV177bVdnRSAbgE+ARCDTwDE4BMAMfhE+XS7L90jRoywfv36VS1y0NLSYqNGjeqiVHVPzjnnHLv99ttt1qxZNmbMmMr/R40aZevWrbMVK1ZEx7e0tNjo0aM7O5nQQfCJ9oNP9A7wifaDT/QO8In2g0/0DvCJ9oNPdA7dbtA9YMAA23vvvW327NmV/23cuNFmz55tzc3NXZiy7kNra6udc845dsstt9isWbNs++23j/aPHz/e+vfvH+XhokWLbMmSJbb//vt3cmqho+ATPvhE7wKf8MEnehf4hA8+0bvAJ3zwic6lW04vP+WUU+yss86y8ePH27777muzZs2y1atX2/HHH9/VSesWTJ8+3X7zm9/YxRdfbEOGDKnoKpqammzQoEHW1NRkU6dOtZkzZ9rw4cNt6NChdu6551pzczNO0qDgE2nwid4HPpEGn+h94BNp8IneBz6RBp/oXPq0tra2dnUianH11Vfb5ZdfbsuWLbO99trLvva1r9l+++3X1cnqFuyxxx41/3/eeedVKpI1a9bYzJkz7be//a2tXbvWpkyZYmeffTbTQRoYfKJt8Ine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IDTdAAAAAAAAAN0IBt0AAAAAAAAAJcGgGwAAAAAAAKAkGkLTraT0rJ62QLV7qqnQefmeriLUKd1www3RvgULFrR5rFm1bkI13U1NTZH97//+723uL56zSP/69es7pLvJ0e7pPk+P2tF4rDnxkBtNe5QiJ3Z9mGdezGH1AT1efSKlZdbrdzSep1cO2+OvoU+kjvWey9Nph/tzYwp7+lRPtxQer8d6+qqUL3d3ivLVr1+/qrKW0nV679rTWXvrIKR0n168VW8dA09bG2rX27p34RMbNmzI0mqqv3k+FeJp8byYw7navjBtXj2SWrei0db+SJHSH3t1q65boOVQ43C/8sor7b634q3VklpHxKx6/ZsPf/jDkT127NjK9p/+9Ccze8un169fnyw7uesGpfSrWo8oy5cvj+zbb789st/1rne1ee1adugz6l89ue9UPNvGjRtdPXKt89oiVdea5dcdYbnWc/Xaues0eWkLjy/KSXvbCe85vXYitfaH1054cbtzNN+e9tzTeLcHvnQDAAAAAAAAlET2oPuee+6xf/u3f7MpU6bYHnvsYX/+85+j/a2trXbhhRfalClTbN9997VPfvKT9tRTT9UrvQDdDnwCIAafAIjBJwBi8AnobWQPul9//XXbY4897Oyzz665/0c/+pFdddVV9o1vfMOuv/5623zzzW3atGlVn/gBegr4BEAMPgEQg08AxOAT0NvI1nQfdthhdthhh9Xc19raaldeeaWddtppdsQRR5iZ2fnnn2+TJ0+2P//5z/a+972v3fcJNRge4bz7XG2eaoM83abqAR599NHK9j333BPty9VzPPvss5E9bty4yF62bFlkDxkypM1raSznVMxFs7y4pWZpHYSnzfPy1Nsf2t65ShmxJjvLJ4p3pPoaD+9Yz8e883M0Uh5e/HEvRmotCj9Un/A0256uMKWV9nREHdUppeIOe/riztBtd5ZPFGWtb9++VfWtai1T6wvk+oi2G57GNCeOutaXqTi/7UlrqMUt8qittim3LsiJP5+rtfPyJUe/6qWzM+iOfadUjFpF/WflypWRrZpufV85eHWvpuXwww+P7I985CORvdtuu7V5/V/84hfRPTZs2BDtV93uN7/5zcjWtXfuuOOOyP7Vr37V5r09na76yKJFiyL7kEMOiewcH/H6hJ1BZ/mEXjfE6wek0Pfl6bC9e6XG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\n" }, "metadata": {} } ], "source": [ "f, ax = plt.subplots(2,5)\n", "f.set_size_inches(10, 10)\n", "k = 0\n", "for i in range(2):\n", " for j in range(5):\n", " # Ensure the image data is reshaped and of the correct data type\n", " ax[i,j].imshow(x_train[k].reshape(40, 40).astype(np.float32) , cmap = \"gray\")\n", " k += 1\n", " plt.tight_layout()" ] }, { "cell_type": "code", "source": [ "x_train.shape" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "70X7B0Qdr1k-", "outputId": "873a9100-1dff-473b-ea47-168fe619f86c" }, "id": "70X7B0Qdr1k-", "execution_count": 109, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(400, 40, 40, 1)" ] }, "metadata": {}, "execution_count": 109 } ] }, { "cell_type": "code", "source": [ "y_train.shape" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "QxcxjEcir3bI", "outputId": "7b852b79-22f9-45ae-88cf-80e66f6c8304" }, "id": "QxcxjEcir3bI", "execution_count": 110, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(400, 5)" ] }, "metadata": {}, "execution_count": 110 } ] }, { "cell_type": "markdown", "source": [ "## **Step 5:** Model Development" ], "metadata": { "id": "Hm8XnZEtaPoh" }, "id": "Hm8XnZEtaPoh" }, { "cell_type": "markdown", "source": [ "### Model Development" ], "metadata": { "id": "giKC5uiwI_ds" }, "id": "giKC5uiwI_ds" }, { "cell_type": "code", "source": [ "# Define your model\n", "model = Sequential([\n", " Conv2D(65, kernel_size=(3, 3), activation='relu', input_shape=(40, 40, 1)),\n", " MaxPooling2D(pool_size=(2, 2)),\n", " Conv2D(40, kernel_size=(3, 3), activation='relu'),\n", " Dropout(0.25),\n", " MaxPooling2D(pool_size=(2, 2)),\n", " Conv2D(25, kernel_size=(3, 3), activation='relu'),\n", " MaxPooling2D(pool_size=(2, 2)),\n", " Flatten(),\n", " Dense(256, activation='relu'),\n", " Dropout(0.5),\n", " Dense(5, activation='softmax') # for 5 classes\n", "])" ], "metadata": { "id": "X3LheybVr-8D" }, "id": "X3LheybVr-8D", "execution_count": 111, "outputs": [] }, { "cell_type": "code", "source": [ "# Compile the model\n", "model.compile(optimizer=Adam(), loss='categorical_crossentropy', metrics=['accuracy'])" ], "metadata": { "id": "3um4cTytsCRl" }, "id": "3um4cTytsCRl", "execution_count": 112, "outputs": [] }, { "cell_type": "code", "source": [ "# Print model summary\n", "print(model.summary())" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "yJldrV7UsF3Z", "outputId": "dc7f874b-7f60-4cb1-d736-a569f7a832da" }, "id": "yJldrV7UsF3Z", "execution_count": 113, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Model: \"sequential_2\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " conv2d_6 (Conv2D) (None, 38, 38, 65) 650 \n", " \n", " max_pooling2d_6 (MaxPoolin (None, 19, 19, 65) 0 \n", " g2D) \n", " \n", " conv2d_7 (Conv2D) (None, 17, 17, 40) 23440 \n", " \n", " dropout_4 (Dropout) (None, 17, 17, 40) 0 \n", " \n", " max_pooling2d_7 (MaxPoolin (None, 8, 8, 40) 0 \n", " g2D) \n", " \n", " conv2d_8 (Conv2D) (None, 6, 6, 25) 9025 \n", " \n", " max_pooling2d_8 (MaxPoolin (None, 3, 3, 25) 0 \n", " g2D) \n", " \n", " flatten_2 (Flatten) (None, 225) 0 \n", " \n", " dense_4 (Dense) (None, 256) 57856 \n", " \n", " dropout_5 (Dropout) (None, 256) 0 \n", " \n", " dense_5 (Dense) (None, 5) 1285 \n", " \n", "=================================================================\n", "Total params: 92256 (360.38 KB)\n", "Trainable params: 92256 (360.38 KB)\n", "Non-trainable params: 0 (0.00 Byte)\n", "_________________________________________________________________\n", "None\n" ] } ] }, { "cell_type": "code", "source": [ "y_train.shape" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "EtxOFB9ysIhU", "outputId": "0469257c-1525-4391-d5c5-fa6d56f1dfbc" }, "id": "EtxOFB9ysIhU", "execution_count": 114, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(400, 5)" ] }, "metadata": {}, "execution_count": 114 } ] }, { "cell_type": "code", "execution_count": 115, "id": "f7f1751d-e867-4514-904d-3f03001fae76", "metadata": { "id": "f7f1751d-e867-4514-904d-3f03001fae76" }, "outputs": [], "source": [ "# Initialize ImageDataGenerator\n", "datagen = ImageDataGenerator(\n", " featurewise_center=False,\n", " samplewise_center=False,\n", " featurewise_std_normalization=False,\n", " samplewise_std_normalization=False,\n", " zca_whitening=False,\n", " rotation_range=10,\n", " zoom_range=0.1,\n", " width_shift_range=0.1,\n", " height_shift_range=0.1,\n", " horizontal_flip=False,\n", " vertical_flip=False\n", ")" ] }, { "cell_type": "markdown", "source": [ "### Training The Model" ], "metadata": { "id": "YIe2PNNQR6KK" }, "id": "YIe2PNNQR6KK" }, { "cell_type": "markdown", "source": [ "This will slightly reduce the learning_rate_while developing the ML model for increasing the accuracy." ], "metadata": { "id": "ENp0VVX9JfJr" }, "id": "ENp0VVX9JfJr" }, { "cell_type": "code", "execution_count": 116, "id": "e709486b-1e6a-4c86-a0ac-5cf9c1c019ee", "metadata": { "id": "e709486b-1e6a-4c86-a0ac-5cf9c1c019ee" }, "outputs": [], "source": [ "learning_rate_reduction = ReduceLROnPlateau(monitor='val_accuracy',\n", " patience=2,\n", " verbose=1,\n", " factor=0.5,\n", " min_lr=0.00001)" ] }, { "cell_type": "code", "source": [ "# Now fitting the model\n", "history = model.fit(datagen.flow(x_train, y_train, batch_size=128),\n", " steps_per_epoch=len(x_train) / 128,\n", " epochs=20,\n", " validation_data=(x_test, y_test),\n", " callbacks=[learning_rate_reduction])" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0DO5Y9-fpvhi", "outputId": "cec64821-df1b-43ab-b08a-157885850e0a" }, "id": "0DO5Y9-fpvhi", "execution_count": 117, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Epoch 1/20\n", "3/3 [==============================] - 3s 188ms/step - loss: 1.5625 - accuracy: 0.3000 - val_loss: 1.4657 - val_accuracy: 0.3800 - lr: 0.0010\n", "Epoch 2/20\n", "3/3 [==============================] - 0s 102ms/step - loss: 1.3949 - accuracy: 0.3925 - val_loss: 1.2365 - val_accuracy: 0.3800 - lr: 0.0010\n", "Epoch 3/20\n", "3/3 [==============================] - 0s 93ms/step - loss: 1.1226 - accuracy: 0.5600 - val_loss: 0.9401 - val_accuracy: 0.7800 - lr: 0.0010\n", "Epoch 4/20\n", "3/3 [==============================] - 0s 82ms/step - loss: 0.9229 - accuracy: 0.6600 - val_loss: 0.6642 - val_accuracy: 0.9300 - lr: 0.0010\n", "Epoch 5/20\n", "3/3 [==============================] - 0s 105ms/step - loss: 0.6948 - accuracy: 0.7600 - val_loss: 0.4280 - val_accuracy: 0.9600 - lr: 0.0010\n", "Epoch 6/20\n", "3/3 [==============================] - 0s 78ms/step - loss: 0.4649 - accuracy: 0.8725 - val_loss: 0.2543 - val_accuracy: 0.9800 - lr: 0.0010\n", "Epoch 7/20\n", "3/3 [==============================] - 0s 126ms/step - loss: 0.3647 - accuracy: 0.8850 - val_loss: 0.1498 - val_accuracy: 0.9800 - lr: 0.0010\n", "Epoch 8/20\n", "4/3 [======================================] - ETA: 0s - loss: 0.3646 - accuracy: 0.8875\n", "Epoch 8: ReduceLROnPlateau reducing learning rate to 0.0005000000237487257.\n", "3/3 [==============================] - 0s 79ms/step - loss: 0.3646 - accuracy: 0.8875 - val_loss: 0.0987 - val_accuracy: 0.9800 - lr: 0.0010\n", "Epoch 9/20\n", "3/3 [==============================] - 0s 88ms/step - loss: 0.3004 - accuracy: 0.8900 - val_loss: 0.1017 - val_accuracy: 0.9800 - lr: 5.0000e-04\n", "Epoch 10/20\n", "4/3 [======================================] - ETA: 0s - loss: 0.2695 - accuracy: 0.9125\n", "Epoch 10: ReduceLROnPlateau reducing learning rate to 0.0002500000118743628.\n", "3/3 [==============================] - 0s 86ms/step - loss: 0.2695 - accuracy: 0.9125 - val_loss: 0.0915 - val_accuracy: 0.9800 - lr: 5.0000e-04\n", "Epoch 11/20\n", "3/3 [==============================] - 0s 122ms/step - loss: 0.2214 - accuracy: 0.9325 - val_loss: 0.0829 - val_accuracy: 0.9800 - lr: 2.5000e-04\n", "Epoch 12/20\n", "3/3 [===========================>..] - ETA: 0s - loss: 0.2594 - accuracy: 0.9193\n", "Epoch 12: ReduceLROnPlateau reducing learning rate to 0.0001250000059371814.\n", "3/3 [==============================] - 0s 78ms/step - loss: 0.2652 - accuracy: 0.9175 - val_loss: 0.0735 - val_accuracy: 0.9800 - lr: 2.5000e-04\n", "Epoch 13/20\n", "3/3 [==============================] - 0s 80ms/step - loss: 0.1859 - accuracy: 0.9475 - val_loss: 0.0700 - val_accuracy: 0.9800 - lr: 1.2500e-04\n", "Epoch 14/20\n", "4/3 [======================================] - ETA: 0s - loss: 0.2332 - accuracy: 0.9225\n", "Epoch 14: ReduceLROnPlateau reducing learning rate to 6.25000029685907e-05.\n", "3/3 [==============================] - 0s 121ms/step - loss: 0.2332 - accuracy: 0.9225 - val_loss: 0.0683 - val_accuracy: 0.9800 - lr: 1.2500e-04\n", "Epoch 15/20\n", "3/3 [==============================] - 0s 76ms/step - loss: 0.1874 - accuracy: 0.9375 - val_loss: 0.0667 - val_accuracy: 0.9800 - lr: 6.2500e-05\n", "Epoch 16/20\n", "4/3 [======================================] - ETA: 0s - loss: 0.1674 - accuracy: 0.9425\n", "Epoch 16: ReduceLROnPlateau reducing learning rate to 3.125000148429535e-05.\n", "3/3 [==============================] - 0s 82ms/step - loss: 0.1674 - accuracy: 0.9425 - val_loss: 0.0647 - val_accuracy: 0.9800 - lr: 6.2500e-05\n", "Epoch 17/20\n", "3/3 [==============================] - 0s 86ms/step - loss: 0.2040 - accuracy: 0.9275 - val_loss: 0.0636 - val_accuracy: 0.9800 - lr: 3.1250e-05\n", "Epoch 18/20\n", "4/3 [======================================] - ETA: 0s - loss: 0.2490 - accuracy: 0.9225\n", "Epoch 18: ReduceLROnPlateau reducing learning rate to 1.5625000742147677e-05.\n", "3/3 [==============================] - 0s 99ms/step - loss: 0.2490 - accuracy: 0.9225 - val_loss: 0.0625 - val_accuracy: 0.9800 - lr: 3.1250e-05\n", "Epoch 19/20\n", "3/3 [==============================] - 0s 75ms/step - loss: 0.1802 - accuracy: 0.9325 - val_loss: 0.0621 - val_accuracy: 0.9800 - lr: 1.5625e-05\n", "Epoch 20/20\n", "4/3 [======================================] - ETA: 0s - loss: 0.1850 - accuracy: 0.9400\n", "Epoch 20: ReduceLROnPlateau reducing learning rate to 1e-05.\n", "3/3 [==============================] - 0s 88ms/step - loss: 0.1850 - accuracy: 0.9400 - val_loss: 0.0619 - val_accuracy: 0.9800 - lr: 1.5625e-05\n" ] } ] }, { "cell_type": "markdown", "source": [ "### Model evaluation" ], "metadata": { "id": "wARxlWKqJwrj" }, "id": "wARxlWKqJwrj" }, { "cell_type": "code", "execution_count": 118, "id": "5150012d-8862-447f-b7ea-407334e5f9e7", "metadata": { "id": "5150012d-8862-447f-b7ea-407334e5f9e7", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "3b265742-b749-4b1c-ae9e-686c76e97936" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "4/4 [==============================] - 0s 5ms/step - loss: 0.0619 - accuracy: 0.9800\n", "Accuracy of the model is - 98.00%\n" ] } ], "source": [ "# Evaluate the model\n", "accuracy = model.evaluate(x_test, y_test)[1]\n", "print(\"Accuracy of the model is - {:.2f}%\".format(accuracy * 100))" ] }, { "cell_type": "markdown", "source": [ "This will generate a Training & Validation Accuracy and a Testing Accuracy & Loss graph for visualising the accuracy as per epochs to check for over fitting." ], "metadata": { "id": "Wp0z2HB-J3Bz" }, "id": "Wp0z2HB-J3Bz" }, { "cell_type": "code", "execution_count": 119, "id": "9ac625aa-f072-4a76-a632-3e3b0d54910a", "metadata": { "id": "9ac625aa-f072-4a76-a632-3e3b0d54910a", "colab": { "base_uri": "https://localhost:8080/", "height": 400 }, "outputId": "0e576f89-a0d4-4de1-b14e-721a57acdf30" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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REbC59uKuXTpEgYNGlRiHm4iMh+c85GIKi0/P1/r81u3buHgwYPo1KmTiSIiMpw9e/YgPT2dD89EREQ1GJ9v9WfDhg2wtbXFs88+a+pQiMhEOOyaiCqtd+/eGDJkCOrVq4f4+HisX78eFhYWFRrKTFRVnT17FpcvX8a3336LFi1a8I8PIiKiGozPt5W3b98+XLt2DRs2bMDYsWNLnUaIiMwDi49EVGndu3fHtm3bkJKSAktLS7Rp0wbvvvsuGjZsaOrQiPRm3bp12Lp1K5o1a4a5c+eaOhwiIiIyID7fVt7s2bORmpqKHj164K233jJ1OERkQpzzkYiIiIiIiIiIiAyCcz4SERERERERERGRQbD4SERERERERERERAbB4iMREREREREREREZBIuPREREREREREREZBBmu9p1WloWDLnUjiAArq4OBm+nOmAutDEfxZgLbcxHMeaiGHOhjfkoos4DVX+GvJf5/aKN+SjGXGhjPooxF8WYC23MRzHmokh5nkfNtvgoijDKTWKsdqoD5kIb81GMudDGfBRjLooxF9qYD6opjHEv8/tFG/NRjLnQxnwUYy6KMRfamI9izIXuOOyaiIiIiIiIiIiIDILFRyIiIiIiIiIiIjIIFh+JiIiIiIiIiIjIIMx2zkciIiIiIiIiInOlUqmgVCp02lcQgPz8fMjlhWY/z6E55UIqlUEiqXy/RRYfiYiIiIiIiIjMSEFBHjIyUgDoXj1LT5dApVIZLqhqxHxyIaBWrdqwsrKp1FlYfCQiIiIiIiIiMhMqlQoZGSmwtLSGvb0TBEHQ6TipVIBSWcO7+unIHHIhiiKysx8gIyMFderUrVQPSJMWH48fP45Vq1bh/PnzSElJwfLly9G7d++nHnP06FHMnTsXV69ehaenJ15//XUMHTrUSBETEREREREREVVfRUOtRdjbO8HS0krn42QyCRQKc+jtVzZzyYW9vRPS0/OgVCogkVhW+DwmXXAmNzcXfn5+mDVrlk773717F5MmTUJgYCC2bNmCF198ETNnzsShQ4cMHCkRERERERERUc2ha49HMl/6ukdM2vMxODgYwcHBOu+/fv161K1bFzNmzAAA+Pj44OTJk/jll1/QvXt3Q4VJREREREREREREFVCt5nw8c+YMunTporUtKCgIX375ZbnPZegCv/r8fCOBuXgc81GMudDGfBRj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RKQXLD4SERERERERERGRXrD4SERERERERERERHrB4iMRERERERERERHpBYuPREREREREREREpBcsPhIREREREREREZFesPhIREREREREREREesHiIxEREREREREREekFi49ERERERERERESkFyw+EhERERERERERkV6w+PgCtm/fjh49eqB58+YYOnQorly5Uuj+hw8fRr9+/dC8eXMEBATg1KlTBopUf9atW4fBgwejdevW6NixI9577z3cvn270GP27t0LT09Pna/mzZsbKGL9+vrrr/O8tn79+hV6TGW8LwCgR48eeXLh6emJBQsW5Lt/Zbsvfv/9d4wbNw7e3t7w9PTE8ePHdZ4XRRFfffUVvL290aJFC4waNQrR0dFFnreknzvlQWG5yMnJwWeffYaAgAC0atUK3t7emDlzJh4+fFjoOUvzXisviro3Zs+enee1BQYGFnneynZvAMj3M8TT0xMbNmwo8JwV+d4gKg22R9XYJtVie1SXKbdJ2R7VxTapFtujWmyPGoaZsQOoqEJDQ7FkyRIsWLAALVu2xJYtWxAYGIiwsDA4Ojrm2f/SpUuYPn06pk2bhu7du+PgwYOYMGEC9u7di0aNGhnhFZSN8+fPY9iwYWjevDmUSiVWrFiBwMBAHDp0CNbW1gUeZ2tri7CwMM1jQRAMEa5BNGzYEJs2bdI8lkqlBe5bWe8LANi9ezeUSqXm8c2bNzF69OhCP3Qr032RkZEBT09PDB48GBMnTszz/Pr167Ft2zYsXboUrq6u+OqrrxAYGIjQ0FBYWFjke86Sfu6UF4XlIisrC3///TfGjx+Pxo0bIyUlBYsWLcL48eOxd+/eQs9bkvdaeVLUvQEAnTt3xpIlSzSPZTJZoeesjPcGAJw5c0bn8W+//YaPP/4Yffv2LfS8FfXeICoptke12CbVxfaolim3Sdke1cU2qRbbo1psjxqISKUyZMgQccGCBZrHSqVS9Pb2FtetW5fv/pMnTxbHjBmjs23o0KHi3Llz9RqnoSUkJIiNGjUSz58/X+A+e/bsEdu2bWvAqAxn1apVYv/+/Yu9v6ncF6IoikFBQWKvXr1ElUqV7/OV+b5o1KiReOzYMc1jlUoldurUSdywYYNmW0pKitisWTMxJCSkwPOU9HOnPHo+F/m5fPmy2KhRI/HBgwcF7lPS91p5lV8+Zs2aJY4fP75E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qGEIoiiKxg6CiIiIiIiIiIiIKh/O+UhERERERERERER6weIjERERERERERER6QWLj0RERERERERERKQXLD4SERERERERERGRXrD4SERERERERERERHrB4iMRERERERERERHpBYuPREREREREREREpBcsPhIREREREREREZFesPhIRGREnp6eOH78uLHDICIiIiITxfYoEembmbEDICIyltmzZ2Pfvn15tnt7eyM4ONgIERERERGRKWF7lIhMAYuPRGTSOnfujCVLluhsk8lkRoqGiIiIiEwN26NEVNlx2DURmTSZTIbq1avrfNnb2wNQD0HZsWMH3nnnHbRo0QI9e/ZEWFiYzvHXr1/HyJEj0aJFC7Rv3x5z585Fenq6zj67d++Gn58fmjVrBm9vbyxcuFDn+aSkJEyYMAEtW7ZEnz598Msvv2iee/LkCaZPn44OHTqgRYsW6NOnD/bs2aOnbBARERGRobE9SkSVHYuPRESF+Oqrr9C3b1/s378fAQEBmDZtGm7dugUAyMjIQGBgIOzt7bF7926sXLkS4eHh+PTTTzXH79ixAwsXLsRrr72GgwcPYu3atahbt67ONVavXg0fHx8cOHAAXbp0wYwZM5CcnKy5/q1bt7B+/XqEhoZi/vz5cHBwMNjrJyIiIiLjYnuUiCo6DrsmIpN28uRJtG7dWmfb2LFjMW7cOABAv379MHToUADAlClTEB4ejm3btmH+/PkICQmBXC7HsmXLYG1tDQD45JNPMG7cOMyYMQNOTk745ptvMHr0aLz99tua87do0ULnegMHDoS/vz8AYNq0adi2bRuuXLmCLl26ICYmBk2aNEHz5s0BAK6urvpJBBEREREZBdujRFTZsfhIRCatffv2mD9/vs623GEuAPI0BFu1aoV//vkHAHDr1i14enpqGnoA0KZNG6hUKkRFRUEQBDx69AgdO3YsNAZPT0/N99bW1rC1tUViYiIA4M0338SkSZPw999/o1OnTujVqxfatGlTqtdKREREROUP26NEVNmx+EhEJs3Kygr16tXTy7ktLCyKtZ+5ubnOY0EQoFKpAABdu3bFiRMncOrUKZw9exajRo3CsGHDMGvWrDKPl4iIiIgMj+1RIqrsOOcjEVEh/vzzT53Hly9fhoeHBwDAw8MD169fR0ZGhub5S5cuQSKRwM3NDba2tqhduzYiIiJeKIZq1aph4MCB+Pzzz/HRRx/hxx9/fKHzEREREVHFwfYoEVV0LD4SkUmTy+V4/PixzlfuEBMACAsLw+7duxEVFYVVq1bhypUrGD58OAAgICAAMpkMs2fPxo0bNxAZGYlPP/0Ur776KpycnAAA77//PjZt2oStW7ciOjoa165dw7Zt24od31dffYXjx4/jzp07uHnzJk6ePKlpbBIRERFRxcf2KBFVdhx2TUQm7fTp0/D29tbZ5ubmhrCwMADqxlpoaCgWLFiA6tWr44svvkCDBg0AqIfIBAcHY9GiRRgyZAisrKzQp08fzJ49W3OugQMHIjs7G5s3b8by5ctRtWpV9OvXr9jxmZubY8WKFXjw4AEsLS3Rtm1brFixogxeORERERGVB2yPElFlJ4iiKBo7CCKi8sjT0xNr1qxBr169jB0KEREREZkgtkeJqDLgsGsiIiIiIiIiIiLSCxYfiYiIiIiIiIiISC847JqIiIiIiIiIiIj0gj0fiYiIiIiIiIiISC9YfCQiIiIiIiIiIiK9YPGRiIiIiIiIiIiI9ILFRyIiIiIiIiIiItILFh+JiIiIiIiIiIhIL1h8JCIiIiIiIiIiIr1g8ZGIiIiIiIiIiIj0gsVHIiIiIiIiIiIi0ov/AxRwctQvRpWDAAAAAElFTkSuQmCC\n" }, "metadata": {} } ], "source": [ "epochs = [i for i in range(20)]\n", "fig , ax = plt.subplots(1,2)\n", "train_acc = history.history['accuracy']\n", "train_loss = history.history['loss']\n", "val_acc = history.history['val_accuracy']\n", "val_loss = history.history['val_loss']\n", "fig.set_size_inches(16,9)\n", "\n", "ax[0].plot(epochs , train_acc , 'go-' , label = 'Training Accuracy')\n", "ax[0].plot(epochs , val_acc , 'ro-' , label = 'Testing Accuracy')\n", "ax[0].set_title('Training & Validation Accuracy')\n", "ax[0].legend()\n", "ax[0].set_xlabel(\"Epochs\")\n", "ax[0].set_ylabel(\"Accuracy\")\n", "\n", "ax[1].plot(epochs , train_loss , 'g-o' , label = 'Training Loss')\n", "ax[1].plot(epochs , val_loss , 'r-o' , label = 'Testing Loss')\n", "ax[1].set_title('Testing Accuracy & Loss')\n", "ax[1].legend()\n", "ax[1].set_xlabel(\"Epochs\")\n", "ax[1].set_ylabel(\"Loss\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 120, "id": "a3b9ab36-0dfa-43f2-8fa9-d5612c789e80", "metadata": { "id": "a3b9ab36-0dfa-43f2-8fa9-d5612c789e80", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "0fe03ac4-056d-423b-8adf-c42c018ba03d" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "4/4 [==============================] - 0s 3ms/step\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "array([3, 4, 3, 1, 1])" ] }, "metadata": {}, "execution_count": 120 } ], "source": [ "# Predicting the first five test data\n", "preds = model.predict(x_test)\n", "predictions = np.argmax(preds, axis=1)\n", "for i in range(len(predictions)):\n", " if(predictions[i] >= 9):\n", " predictions[i] += 1\n", "predictions[:5]" ] }, { "cell_type": "markdown", "source": [ "Now model is saved for our further use" ], "metadata": { "id": "jOpgNUW8KnMg" }, "id": "jOpgNUW8KnMg" }, { "cell_type": "code", "execution_count": 121, "id": "804ae0d9-9783-432b-8548-87952cfecbec", "metadata": { "id": "804ae0d9-9783-432b-8548-87952cfecbec", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "66d06cef-5bf0-458f-99a7-368b844ba5d1" }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/usr/local/lib/python3.10/dist-packages/keras/src/engine/training.py:3103: UserWarning: You are saving your model as an HDF5 file via `model.save()`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')`.\n", " saving_api.save_model(\n" ] } ], "source": [ "# Save the model\n", "model.save('sign_language_model.h5')" ] }, { "cell_type": "markdown", "source": [ "## **Step 6:** Deployment\n" ], "metadata": { "id": "CyQWzM7nO4Fa" }, "id": "CyQWzM7nO4Fa" }, { "cell_type": "markdown", "source": [ "### System commands" ], "metadata": { "id": "pfATzd5_UaZn" }, "id": "pfATzd5_UaZn" }, { "cell_type": "code", "source": [ "!sudo apt-get install espeak" ], "metadata": { "id": "cHhBY0f4T1eY", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "7852746b-0092-45dc-ad39-63146bf88f7c" }, "id": "cHhBY0f4T1eY", "execution_count": 122, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Reading package lists... Done\n", "Building dependency tree... Done\n", "Reading state information... Done\n", "The following additional packages will be installed:\n", " espeak-data libespeak1 libportaudio2 libsonic0\n", "The following NEW packages will be installed:\n", " espeak espeak-data libespeak1 libportaudio2 libsonic0\n", "0 upgraded, 5 newly installed, 0 to remove and 45 not upgraded.\n", "Need to get 1,382 kB of archives.\n", "After this operation, 3,178 kB of additional disk space will be used.\n", "Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libportaudio2 amd64 19.6.0-1.1 [65.3 kB]\n", "Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsonic0 amd64 0.2.0-11build1 [10.3 kB]\n", "Get:3 http://archive.ubuntu.com/ubuntu jammy/universe amd64 espeak-data amd64 1.48.15+dfsg-3 [1,085 kB]\n", "Get:4 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libespeak1 amd64 1.48.15+dfsg-3 [156 kB]\n", "Get:5 http://archive.ubuntu.com/ubuntu jammy/universe amd64 espeak amd64 1.48.15+dfsg-3 [64.2 kB]\n", "Fetched 1,382 kB in 0s (3,998 kB/s)\n", "debconf: unable to initialize frontend: Dialog\n", "debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78, <> line 5.)\n", "debconf: falling back to frontend: Readline\n", "debconf: unable to initialize frontend: Readline\n", "debconf: (This frontend requires a controlling tty.)\n", "debconf: falling back to frontend: Teletype\n", "dpkg-preconfigure: unable to re-open stdin: \n", "Selecting previously unselected package libportaudio2:amd64.\n", "(Reading database ... 123589 files and directories currently installed.)\n", "Preparing to unpack .../libportaudio2_19.6.0-1.1_amd64.deb ...\n", "Unpacking libportaudio2:amd64 (19.6.0-1.1) ...\n", "Selecting previously unselected package libsonic0:amd64.\n", "Preparing to unpack .../libsonic0_0.2.0-11build1_amd64.deb ...\n", "Unpacking libsonic0:amd64 (0.2.0-11build1) ...\n", "Selecting previously unselected package espeak-data:amd64.\n", "Preparing to unpack .../espeak-data_1.48.15+dfsg-3_amd64.deb ...\n", "Unpacking espeak-data:amd64 (1.48.15+dfsg-3) ...\n", "Selecting previously unselected package libespeak1:amd64.\n", "Preparing to unpack .../libespeak1_1.48.15+dfsg-3_amd64.deb ...\n", "Unpacking libespeak1:amd64 (1.48.15+dfsg-3) ...\n", "Selecting previously unselected package espeak.\n", "Preparing to unpack .../espeak_1.48.15+dfsg-3_amd64.deb ...\n", "Unpacking espeak (1.48.15+dfsg-3) ...\n", "Setting up libportaudio2:amd64 (19.6.0-1.1) ...\n", "Setting up libsonic0:amd64 (0.2.0-11build1) ...\n", "Setting up espeak-data:amd64 (1.48.15+dfsg-3) ...\n", "Setting up libespeak1:amd64 (1.48.15+dfsg-3) ...\n", "Setting up espeak (1.48.15+dfsg-3) ...\n", "Processing triggers for man-db (2.10.2-1) ...\n", "Processing triggers for libc-bin (2.35-0ubuntu3.4) ...\n", "/sbin/ldconfig.real: /usr/local/lib/libtbb.so.12 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_0.so.3 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc.so.2 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbbind.so.3 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc_proxy.so.2 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_5.so.3 is not a symbolic link\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "!ls /usr/lib | grep libespeak" ], "metadata": { "id": "NRl3AGcTT9Mi" }, "id": "NRl3AGcTT9Mi", "execution_count": 123, "outputs": [] }, { "cell_type": "code", "source": [ "!sudo apt-get install alsa-utils" ], "metadata": { "id": "T4FQ11RDT9HG", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "ec460e5a-34db-47d0-c514-c1981ecafc3b" }, "id": "T4FQ11RDT9HG", "execution_count": 124, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Reading package lists... Done\n", "Building dependency tree... Done\n", "Reading state information... Done\n", "The following additional packages will be installed:\n", " libatopology2 libfftw3-single3\n", "Suggested packages:\n", " dialog libfftw3-bin libfftw3-dev\n", "The following NEW packages will be installed:\n", " alsa-utils libatopology2 libfftw3-single3\n", "0 upgraded, 3 newly installed, 0 to remove and 45 not upgraded.\n", "Need to get 2,028 kB of archives.\n", "After this operation, 5,142 kB of additional disk space will be used.\n", "Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libatopology2 amd64 1.2.6.1-1ubuntu1 [51.3 kB]\n", "Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libfftw3-single3 amd64 3.3.8-2ubuntu8 [800 kB]\n", "Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-utils amd64 1.2.6-1ubuntu1 [1,177 kB]\n", "Fetched 2,028 kB in 0s (7,936 kB/s)\n", "debconf: unable to initialize frontend: Dialog\n", "debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78, <> line 3.)\n", "debconf: falling back to frontend: Readline\n", "debconf: unable to initialize frontend: Readline\n", "debconf: (This frontend requires a controlling tty.)\n", "debconf: falling back to frontend: Teletype\n", "dpkg-preconfigure: unable to re-open stdin: \n", "Selecting previously unselected package libatopology2:amd64.\n", "(Reading database ... 123919 files and directories currently installed.)\n", "Preparing to unpack .../libatopology2_1.2.6.1-1ubuntu1_amd64.deb ...\n", "Unpacking libatopology2:amd64 (1.2.6.1-1ubuntu1) ...\n", "Selecting previously unselected package libfftw3-single3:amd64.\n", "Preparing to unpack .../libfftw3-single3_3.3.8-2ubuntu8_amd64.deb ...\n", "Unpacking libfftw3-single3:amd64 (3.3.8-2ubuntu8) ...\n", "Selecting previously unselected package alsa-utils.\n", "Preparing to unpack .../alsa-utils_1.2.6-1ubuntu1_amd64.deb ...\n", "Unpacking alsa-utils (1.2.6-1ubuntu1) ...\n", "Setting up libfftw3-single3:amd64 (3.3.8-2ubuntu8) ...\n", "Setting up libatopology2:amd64 (1.2.6.1-1ubuntu1) ...\n", "Setting up alsa-utils (1.2.6-1ubuntu1) ...\n", "Processing triggers for man-db (2.10.2-1) ...\n", "Processing triggers for libc-bin (2.35-0ubuntu3.4) ...\n", "/sbin/ldconfig.real: /usr/local/lib/libtbb.so.12 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_0.so.3 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc.so.2 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbbind.so.3 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc_proxy.so.2 is not a symbolic link\n", "\n", "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_5.so.3 is not a symbolic link\n", "\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install opencv-python tensorflow pyttsx" ], "metadata": { "id": "6-tWQ3z_T9Du", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "e4c954a6-de43-4a6e-8c53-b2e151acbe77" }, "id": "6-tWQ3z_T9Du", "execution_count": 125, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: opencv-python in /usr/local/lib/python3.10/dist-packages (4.8.0.76)\n", "Requirement already satisfied: tensorflow in /usr/local/lib/python3.10/dist-packages (2.15.0)\n", "Collecting pyttsx\n", " Downloading pyttsx-1.1.tar.gz (23 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from opencv-python) (1.25.2)\n", "Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.4.0)\n", "Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.6.3)\n", "Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.3.25)\n", "Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.6.0)\n", "Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.9.0)\n", "Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (18.1.1)\n", "Requirement already satisfied: ml-dtypes~=0.2.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)\n", "Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.3.0)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from tensorflow) (24.1)\n", "Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.20.3)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from tensorflow) (67.7.2)\n", "Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.16.0)\n", "Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.4.0)\n", "Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (4.12.2)\n", "Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.14.1)\n", "Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.37.1)\n", "Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.64.1)\n", "Requirement already satisfied: tensorboard<2.16,>=2.15 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.2)\n", "Requirement already satisfied: tensorflow-estimator<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)\n", "Requirement already satisfied: keras<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)\n", "Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse>=1.6.0->tensorflow) (0.43.0)\n", "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.27.0)\n", "Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (1.2.1)\n", "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.6)\n", "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.31.0)\n", "Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (0.7.2)\n", "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.0.3)\n", "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (5.4.0)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.4.0)\n", "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (4.9)\n", "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (1.3.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.7)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2.0.7)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2024.7.4)\n", "Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from werkzeug>=1.0.1->tensorboard<2.16,>=2.15->tensorflow) (2.1.5)\n", "Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.6.0)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (3.2.2)\n", "Building wheels for collected packages: pyttsx\n", " Building wheel for pyttsx (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for pyttsx: filename=pyttsx-1.1-py3-none-any.whl size=22441 sha256=6d0a253c69749e12ca78683f9958f17a4697361e445b65bec2537d8efe346f49\n", " Stored in directory: /root/.cache/pip/wheels/5f/1b/16/30b2d882bd9e7c4d452c657e2127b3d7bad3a6093dae9118c7\n", "Successfully built pyttsx\n", "Installing collected packages: pyttsx\n", "Successfully installed pyttsx-1.1\n" ] } ] }, { "cell_type": "code", "source": [ "!pip install opencv-python-headless" ], "metadata": { "id": "oDfMKTFRlh_W", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "e495ab0f-f387-484b-c530-7389d4a9517a" }, "id": "oDfMKTFRlh_W", "execution_count": 126, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: opencv-python-headless in /usr/local/lib/python3.10/dist-packages (4.10.0.84)\n", "Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from opencv-python-headless) (1.25.2)\n" ] } ] }, { "cell_type": "markdown", "source": [ "### Deployment of the ml model using esp32 cam\n" ], "metadata": { "id": "DcMjgfGHUi9c" }, "id": "DcMjgfGHUi9c" }, { "cell_type": "code", "source": [ "import cv2\n", "import numpy as np\n", "import tensorflow as tf\n", "import pyttsx3 as ps\n", "import threading" ], "metadata": { "id": "oEISe6Egm1RC" }, "id": "oEISe6Egm1RC", "execution_count": 127, "outputs": [] }, { "cell_type": "code", "source": [ "# Initialize the pyttsx3 engine once to avoid multiple instances\n", "engine = ps.init()" ], "metadata": { "id": "lieUST35Sb9l" }, "id": "lieUST35Sb9l", "execution_count": 128, "outputs": [] }, { "cell_type": "code", "source": [ "def speak(text):\n", " def speak_thread(text):\n", " # Ensure the global engine is used\n", " engine.say(text)\n", " engine.runAndWait()\n", " thread = threading.Thread(target=speak_thread, args=(text,))\n", " thread.start()" ], "metadata": { "id": "qNnMlA3uTGkZ" }, "id": "qNnMlA3uTGkZ", "execution_count": 129, "outputs": [] }, { "cell_type": "code", "source": [ "# Load the TensorFlow model\n", "model = tf.keras.models.load_model(\"sign_language_model.h5\") # you should change these file path according to your file path" ], "metadata": { "id": "KodOAaLmnBEy" }, "id": "KodOAaLmnBEy", "execution_count": 130, "outputs": [] }, { "cell_type": "markdown", "source": [ "Run this if you want to use pc web cam for this project." ], "metadata": { "id": "H-igxkbvQ9A-" }, "id": "H-igxkbvQ9A-" }, { "cell_type": "code", "source": [ "# Define the video capture object\n", "vc = cv2.VideoCapture(0)" ], "metadata": { "id": "Cw8ZZn_lnBCY" }, "id": "Cw8ZZn_lnBCY", "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "Run this if you want to use esp32 cam as a camera for this project." ], "metadata": { "id": "TKJc8OAeRHne" }, "id": "TKJc8OAeRHne" }, { "cell_type": "code", "source": [ "# Replace with your ESP32-CAM stream URL\n", "stream_url = 'http://192.168.92.123:81/stream'" ], "metadata": { "id": "GlCcAqUbnA_Q" }, "id": "GlCcAqUbnA_Q", "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# Open a connection to the IP camera using OpenCV VideoCapture\n", "vc = cv2.VideoCapture(stream_url)" ], "metadata": { "id": "L8Q9ee2SQ6RI" }, "id": "L8Q9ee2SQ6RI", "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# Check if the webcam opened successfully\n", "if not vc.isOpened():\n", " print(\"Error: Could not open webcam.\")\n", " exit()" ], "metadata": { "id": "GyYxpsURTTC4" }, "id": "GyYxpsURTTC4", "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# Map the predicted class to the corresponding gesture\n", "gestures = {\n", " 0: 'empty', 1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E',\n", " 6: 'F', 7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K',\n", " 12: 'L', 13: 'M', 14: 'N', 15: 'O', 16: 'P', 17: 'Q',\n", " 18: 'R', 19: 'S', 20: 'T', 21: 'U', 22: 'V', 23: 'W',\n", " 24: 'X', 25: 'Y', 26: 'Z'\n", "}" ], "metadata": { "id": "gKwiEJgtnOYO" }, "id": "gKwiEJgtnOYO", "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "# Loop until the user presses the 'q' key\n", "while True:\n", " # Capture a frame from the webcam\n", " ret, frame = vc.read()\n", " if not ret:\n", " print(\"Failed to capture image\")\n", " break\n", "\n", " # Convert the frame to grayscale\n", " gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n", "\n", " # Resize the frame to 40x40\n", " resized_frame = cv2.resize(gray_frame, (40, 40))\n", "\n", " # Normalize the pixel values\n", " normalized_frame = resized_frame / 127.5 - 1.0\n", "\n", " # Add a batch dimension and ensure it has the right shape\n", " input_data = np.expand_dims(normalized_frame, axis=(0, -1)).astype(np.float32)\n", "\n", " # Perform inference using the model\n", " output_data = model.predict(input_data)\n", "\n", " # Get the predicted class\n", " predicted_class = np.argmax(output_data)\n", "\n", " predicted_gesture = gestures.get(predicted_class, 'unknown')\n", "\n", " # Print the predicted class\n", " print(\"Predicted gesture:\", predicted_gesture)\n", " if predicted_gesture != 'empty':\n", " speak(predicted_gesture)\n", "\n", " # Display the frame\n", " cv2.imshow('Webcam_Gesture_Recognition', gray_frame)\n", "\n", " # Press 'q' to exit\n", " if cv2.waitKey(1) & 0xFF == ord('q'):\n", " break\n", "\n", "# Release the video capture object\n", "vc.release()\n", "\n", "# Close all windows\n", "cv2.destroyAllWindows()\n" ], "metadata": { "id": "ye9kubkQnXWg" }, "id": "ye9kubkQnXWg", "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Author" ], "metadata": { "id": "8EtNvZONBAIS" }, "id": "8EtNvZONBAIS" }, { "cell_type": "markdown", "source": [ "### Developed by Harsh Raj\n", "Contacts :\n", "- [Email](mailto:developerharshraj@gmail.com)\n", "- [LinkedIn](https://in.linkedin.com/in/harsh-raj-416a0b27b)\n", "- [GitHub](https://github.com/HarshRajTiwary)\n", "\n", "### Happy Learning" ], "metadata": { "id": "zbZgH_AYA78l" }, "id": "zbZgH_AYA78l" } ], "metadata": { "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.9" }, "colab": { "provenance": [], "gpuType": "T4" }, "accelerator": "GPU" }, "nbformat": 4, "nbformat_minor": 5 }