{"id":18581423,"url":"https://github.com/janbinkowski/signlanguagerecognition","last_synced_at":"2025-04-10T11:35:18.436Z","repository":{"id":57467123,"uuid":"425629232","full_name":"JanBinkowski/SignLanguageRecognition","owner":"JanBinkowski","description":"Bachelor Thesis at the Wroclaw University of Science and Technology.","archived":false,"fork":false,"pushed_at":"2022-01-02T19:55:40.000Z","size":29115,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T20:22:00.441Z","etag":null,"topics":["ai","mediapipe","ml","opencv","signlanguagerecognition","tensorflow"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/SignLanguageRecognition/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JanBinkowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-07T22:17:44.000Z","updated_at":"2023-11-29T18:45:53.000Z","dependencies_parsed_at":"2022-09-10T03:43:34.123Z","dependency_job_id":null,"html_url":"https://github.com/JanBinkowski/SignLanguageRecognition","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanBinkowski%2FSignLanguageRecognition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanBinkowski%2FSignLanguageRecognition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanBinkowski%2FSignLanguageRecognition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanBinkowski%2FSignLanguageRecognition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JanBinkowski","download_url":"https://codeload.github.com/JanBinkowski/SignLanguageRecognition/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248208689,"owners_count":21065205,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","mediapipe","ml","opencv","signlanguagerecognition","tensorflow"],"created_at":"2024-11-07T00:05:14.828Z","updated_at":"2025-04-10T11:35:13.412Z","avatar_url":"https://github.com/JanBinkowski.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sign Language Recognition tool\n[![GitHub License](https://img.shields.io/github/license/JanBinkowski/SignLanguageRecognition?style=plastic)](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/LICENSE)  [![GitHub Stars](https://img.shields.io/github/stars/JanBinkowski/SignLanguageRecognition?style=plastic)](https://github.com/JanBinkowski/SignLanguageRecognition/stargazers) [![GitHub Issues](https://img.shields.io/github/issues/JanBinkowski/SignLanguageRecognition?style=plastic)](https://github.com/JanBinkowski/SignLanguageRecognition/issues)\n## Table of contents\n* [General info](#general-info)\n* [Technologies](#technologies)\n* [How it was made](#how-it-was-made) \n* [Setup](#setup)\n* [Getting started](#getting-started)\n* [License](#license)\n\n---\n\n## General info\nSignLanguageRecognition package is a opensource tool to estimate sign language from camera vision. This project is a part of   my Bachelor Thesis and contains the implementation of sign language recognition tool using a LSTM Neural Network, TensorFlow Keras and other opensorce libraries like: OpenCV or MediaPipe.\nHere is a link leading to PyPi package repository: [pypi.org/SignLanguageRecognition](https://pypi.org/project/SignLanguageRecognition/).\n\t\n---\t\n\t\n## Technologies\nProject is created with:\n* **Python**: 3.8.8\n* **OpenCV-Python**: 4.5.3.56\n* **TensorFlow**: 2.4.1\n* **MediaPipe**: 0.8.7.3\n* **NumPy**: 1.19.5\n\n---\t\n\n## How it was made\n### Creating a dataset and model training\nThe entire dataset used to model training was created by me from scratch. Gathering the data \nwas made by using opensource libraries: OpenCV and Mediapipe. Dataset is collection of 100 thirty-frame sequences for each class\nand every frame is saved as Numpy array which came as the output of the mediapipe library.\n\nProccess of collecting data is demonstrated right below:\n\n\n| class: a            |  class: b |  class: c |\n:-------------------------:|:-------------------------:|:-------------------------:\n![a_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/a_gif.gif?raw=true) |  ![b_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/b_gif.gif?raw=true) | ![c_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/c_gif.gif?raw=true)\n\n| class: d            |  class: e |  class: f |\n:-------------------------:|:-------------------------:|:-------------------------:\n![d_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/d_gif.gif?raw=true) |  ![e_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/e_gif.gif?raw=true) | ![f_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/f_gif.gif?raw=true)\n\n| class: g            |  class: h |  class: i |\n:-------------------------:|:-------------------------:|:-------------------------:\n![g_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/g_gif.gif?raw=true) |  ![h_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/h_gif.gif?raw=true) | ![i_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/i_gif.gif?raw=true)\n\n| class: j            |  class: k |  class: l |\n:-------------------------:|:-------------------------:|:-------------------------:\n![j_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/j_gif.gif?raw=true) |  ![k_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/k_gif.gif?raw=true) | ![l_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/l_gif.gif?raw=true)\n\n| class: m            |  class: n |  class: o |\n:-------------------------:|:-------------------------:|:-------------------------:\n![m_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/m_gif.gif?raw=true) |  ![n_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/n_gif.gif?raw=true) | ![o_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/o_gif.gif?raw=true)\n\n| class: p            |  class: r |  class: s |\n:-------------------------:|:-------------------------:|:-------------------------:\n![o_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/p_gif.gif?raw=true) |  ![r_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/r_gif.gif?raw=true) | ![s_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/s_gif.gif?raw=true)\n\n| class: t            |  class: u |  class: w |\n:-------------------------:|:-------------------------:|:-------------------------:\n![t_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/t_gif.gif?raw=true) |  ![u_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/u_gif.gif?raw=true) | ![w_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/w_gif.gif?raw=true)\n\n| class: y            |  class: z | |\n:-------------------------:|:-------------------------:|:-------------------------:\n![y_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/y_gif.gif?raw=true) |  ![z_gif.gif](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/FILES_FOR_README/z_gif.gif?raw=true) | |\n\nTo train the model, the TensorFlow library was used with LSTM layers. The whole training\nprocess is available [here](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/SignLanguageRecognitionLearning/SignLanguageRecognition.ipynb).\n\nYou can find the dataset used to trainig and also videos documenting all process of clooecting data,\nunder links: [Dataset](https://drive.google.com/file/d/1ipnue2P9MREYFcN-F5y8EEaW36cJl9MF/view?usp=sharing), [Videos](https://drive.google.com/file/d/1SeL21DYmnRUorSeyijdz6ZX5SyhNTqID/view?usp=sharing).\n\n---\n\n## Setup \nAll package details you can find here: [pypi.org/SignLanguageRecognition](https://pypi.org/project/SignLanguageRecognition/).\nThe Python Package Index (PyPI) is a repository of software for the Python programming language.\nMake sure that you have installed ```python``` (\u003e=3.6) and you can run ```python``` from the command line. Check it by running:\n```\npython --version\n```\nNow you need to use a ```pip``` to conduct installation process. ```pip``` is a package management system used to install and manage software packages/libraries written in Python. These files are stored in a large “on-line repository” termed as Python Package Index (PyPI).  \nTo check if ```pip``` is already installed on your system, just go to the command line and execute the following command:\n```\npip -V\n```\nAfter you make sure you can run ```pip``` from the command line you should ensure that ```pip``` version is up-to-date. To check this use command below:\n```\npip install --upgrade pip\n```\nTo run SignLanguageRecognition package, install you have to install it locally using ```pip```:\n```\npip install SignLanguageRecognition\n```\n or to install specific version, for example 0.0.17:\n ```\n pip install SignLanguageRecognition==0.0.17\n ```\n\n**Note.** When you are installing this library, the following are also installed as required: ```opencv-python```,```mediapipe```,```numpy``` and ```tensorflow```.\n \nMore details about installing and running python packages here: [Installing Packages (python.org)](https://packaging.python.org/tutorials/installing-packages/).\n\n---\n\n## Getting started\nThis section shows example how to use SignLanguageRecognition library.\nFirst of all you have to open Python interpreter on your device. An example way to do this is by typing a command:\n```\npython\n```\nAfter that, the Python intrpreter will be opened. Then import a method from previously installed package:\n```python\n\u003e\u003e from SignLanguageRecognition import signLanguageRecognizer\n\u003e\u003e signLanguageRecognizer.signLanguageRecognizerMethod()\n```\nThis code will cause opening a new OpenCV window with ready-to-work tool.\nEnjoy testing!\n\n---\n\n## License\n\u003eYou can check out the full license [here](https://github.com/JanBinkowski/SignLanguageRecognition/blob/master/LICENSE)\n\nThis project is licensed under the terms of the **MIT** license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanbinkowski%2Fsignlanguagerecognition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanbinkowski%2Fsignlanguagerecognition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanbinkowski%2Fsignlanguagerecognition/lists"}