Skip to content

Signs Classification Live with Web Camera and MediaPipe library

Notifications You must be signed in to change notification settings

annasli378/HandSignClassification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Application with Polish Sign Language Recognition


The goal of the project is to create a system with a classifier that enables recognition of the sign shown to the device's camera in applications that can then be used for sign language learning, verification and classification of the signs shown.

Table of Contents

  1. About The Project
  2. Getting Started
  3. Bibliography

About The Project

In Poland, the number of deaf people is estimated between 500,000 and 900,000. Each year there are more than 100 people who lose their hearing due to accidents, illness or age. Members of a linguistic and cultural minority of deaf people call themselves Deaf. The primary language of the Deaf, which is, in a way, a marker of their cultural distinctiveness, is the sign language used in the country. The term sign language is a visual-spatial language, using the sense of sight, used by Deaf parents to communicate with their Deaf children. Polish Sign Language is a completely separate entity, having its own different grammar from Polish. Sign ideographic signs, which are equivalents of words and idioms, form the basis, and are complemented by dactylographic and supplementary signs.

MediaPipe for sign languages recognition

A solution for hand landmarks detection and tracking is the MediaPipe: https://developers.google.com/mediapipe

It was used in hand gestures recognition in a few project already, here are few of them:

Real-time Assamese Sign Language Recognition using MediaPipe and Deep Learning Bora, J. and Dehingia, S. and Boruah, A. and Chetia, A. A. and Gogoi, D.
https://doi.org/10.1016/j.procs.2023.01.117.

Sign Language Recognition - using MediaPipe & DTW https://www.sicara.fr/blog-technique/sign-language-recognition-using-mediapipe

Arabic Sign Language Recognition (ArSL) Approach Using Support Vector Machine, Ali, M. A. and Ewis, M. R. and Mohamed, G. E. and Ali, H. H. and Moftah, H. M. doi: 10.1109/ICCTA43079.2017.9497164.

Dataset

Dataset for learning classyfier consisted of 29 945 images, divided in 29 classes. Those classes were:

Sign from PSL Class label Sign from PSL Class label
number 0, letter O 0 letter M 15
number 1 1 letter N 16
number 2 2 letter P 17
number 3 3 letter R 18
number 4 4 letter S 19
number 5 5 letter U 20
letter A 6 letter W 21
letter B 7 letter Y 22
letter C 8 additional character Aw 23
letter D 9 additional character Bk 24
letter E 10 additional character Cm 25
letter F and T 11 additional character Ik 26
letter H 12 additional character Om 27
letter I and J 13 additional character Um 28
letter L 14

To learn more about Polish Sign Language visit those sites :)

https://kulturawrazliwa.pl/cykl/lekcje-online-pjm/

https://www.spreadthesign.com/pl.pl/search/

https://www.slownikpjm.uw.edu.pl

https://cwn.uph.edu.pl/dictlessons_thema1P

Data pre-processing

Preprocessing of raw data from MediaPipe library to classification is shown below:

schema

Model parameters

For classifing our normalized data we used Random Forest (more info here: https://github.com/annasli378/ChoosingModelForPSLRecognition)

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

To build this project, you require:

  • Python with installed the required libraries: flask (for web app), open-cv, mediapipe, pickle, sklearn, tkinter (for desktop app), PIL, numpy, os, pytest

Installation

  1. Clone the repo
    git clone https://github.com/annasli378/HandSignClassification.git
  2. Open project in python environment (i.e PyCharm)
  3. Run 'web_app.py' for web application or 'desktop_app.py' for destop application

Bibliography

https://developers.google.com/mediapipe

Releases

No releases published

Packages

No packages published