# Interpretace znakové řeči
Rozpoznávání znakového jazyka a automatická interpretace počítačovým modelem v cílovém znakovém jazyce.

Projekt byl vyvíjen na verzi Pythonu 3.8.10 na platformě Windows. Instalace použitých Python knihoven pomocí `pip` CLI nástroje:
```
$ pip install -r "requirements.txt"
```
Jednou z primárně používaných knihoven je `Tensorflow`, knihovna pro práci s neuronovými sítěmi, která podporuje HW akceleraci na grafických kartách. Pro povolení této funkcionality je potřeba nainstalovat `CUDA Toolkit` a knihovny `cuDNN SDK`. Postup je popsán na oficiálních stránkách `Tensorflow` dokumentace: [GPU support](https://www.tensorflow.org/install/gpu). V případě kdy je správně nastavená HW akcelerace, jsou algoritmy automaticky spouštěny na výpočetní jednotce. V případě, kdy je vyžadována inference na CPU, jsou na začátku skriptu (před importem `tensorflow` knihovny) přidány řádky, které skryjí HW jednotku:
```python
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
```
Tyto řádky se ve skriptech v projektech vyskytují, v případě kdy uživatel chce využít HW jednotku, může tyto řádky odstranit.

V rámci projektu je využit Open Source nástroj [Blender](https://www.blender.org/) na verzi 3.1.2.

Projekt je rozdělen do jednotlivých subprojektů rabývající se samostatně danou problematickou:
- [detekce rukou a obličeje interpreta](detection/README.md)
- [estimace pózy rukou a obličeje](pose_estimation/README.md)
- [sledování detekcí v čase a filtrace chyb detekce a estimace póz](tracking/README.md)
- [rozpoznávání znakového jazyka](translation/README.md)
- [počítačový model](avatar/README.md)

Vně tyto subprojekty jsou skripty pro spuštění inference na samostatných snímcích `images.py`, videích `videos.py` nebo webkameře `webcam.py`, které do využívají jednotlivé subprojekty.
```
$ python webcam.py
```
<p align="center">
  <img src="./data/readme/example.gif" width=800/>
</p>

## Předpokládaný adresářový strom:
```
├── avatar
│   └── ...
├── data
│   ├── images
│   │   └── ...
│   ├── videos
│   │   └── ...
│   └── readme
│       └── example.gif
├── detection
│   └── ...
├── pose_estimation
│   └── ...
├── tracking
│   └── ...
├── translation
│   └── ...
├── images.py
├── README.md
├── requirements.txt
├── videos.py
├── webcam.py
```