Skip to content

Web application for detecting American Sign Language alphabet

Notifications You must be signed in to change notification settings

kristoph4822/sign-language-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rozpoznawanie języka migowego

obraz

Opis projektu

Projekt zakłada stworzenie prostej aplikacji webowej, która przy pomocy obrazku z kamerki naszego komputera na bieżąco rozpoznaje znaki alfabetu amerykańskiego języka migowego (ASL). Na ekranie wyświetlany jest bounding box wraz z wynikiem predykcji. Dodatkowo, dana litera czytana jest na głos.

Aplikacja znajduje zastosowanie przede wszystkim w samodzielnej nauce języka migowego. Może również posłużyć za bazę do budowy innych aplikacji, jak na przykład tłumaczenie języka migowego na żywo podczas telekonferencji.

Projekt realizowany w ramach przedmiotu: Wprowadzenie do aplikacji i rozwiązań opartych o Sztuczną Inteligencję i Microsoft Azure.

Funkcjonalności

  • Rozpoznawanie wszystkich znaków alfabetu amerykańskiego języka migowego poza J i Z, które nie są statyczne;
  • Pobieranie klatki z obrazku kamerki komputera co dwie sekundy i zwracanie predykcji na jej podstawie;
  • Wyświetlanie bounding boxu wraz z wynikiem predykcji i prawdopodobieństwem;
  • W przypadku braku rozpoznania znaku (prawdopodobieństwo poniżej 0.5) wyświetlana jest czerwona ramka;
  • Rozpoznana litera czytana jest na głos;

Nasz zespół

Architektura rozwiązania

obraz

Technologie

Model:

  • Azure Custom Vision
  • Tensorflow

Aplikacja webowa:

  • Azure Web App
  • Flask
  • OpenCV

Opis rozwiązania

1. Stworzenie modelu

Model do rozpoznawania alfabetu języka migowego został wytrenowany przy użyciu Custom Vision. Do trenowania użytko trzech źródeł danych:

Pierwszy dataset zawierał ok. 1700 zdjęć wraz z annotacjami w formacie Psacal VOC. Aby wgrać zdjęcia wraz z bounding boxami od razu do Custom Vision wykorzystano: https://github.com/ProjektCustomVisionKL/pascal-voc-to-custom-vision-uploader. Drugi dataset zawierał 87000 zdjęć bez annotacji. Do treningu wybrano po 20 losowych zdjęć z tego zbioru dla każdej litery i ręcznie otagowano je w Custom Vision. Łącznie do treningu użyto około 2500 zdjęć (średnio 104 zdjęcia na każdą literę).

Przy tworzeniu modelu użyto opcji szybkiego trenowania (Quick Training) oraz domeny typu Compact, aby móc wyeksportować model. Wyeksportowany model używany jest bezpośrednio w aplikacji webowej.

2. Stworzenie aplikacji webowej

Do stworzenia aplikacji webowej wykorzystany został framework Flask. Aplikacja dostępna jest pod adresem: https://sign-language-detector.azurewebsites.net/

  1. Strona internetowa wyświetla obraz z kamery użytkownika i co 2 sekundy wysyła pomniejszony obraz do backendu.
  2. Na backendzie, wykorzystując stworzony wcześniej model, wykrywane są na obrazie znaki języka migowego.
  3. Backend w odpowiedzi zwraca znak, lokalizację i pewność predykcji (jezeli nie został przekroczony minimalny próg pewności, zwracana jest pusta odpowiedź).
  4. W przeglądarce na obrazie z kamery dookoła wykrytego znaku rysowana jest ramka z podpisem.
  5. W przeglądarce odtwarzany jest dźwięk odpowiadający wykrytemu znakowi.

Demo działania

https://youtu.be/LQbSOJz7BPg

Cheatsheet

Zaleca się stosować znaki w podobny sposób jak na poniższej ilustracji:

obraz

Źródło: https://www.dummies.com/languages/american-sign-language/signing-for-dummies-cheat-sheet/

About

Web application for detecting American Sign Language alphabet

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published