projekt_widzenie/README.md

89 lines
2.1 KiB
Markdown

# projekt_widzenie
## Run apllication
1. `pip install -r requirements.txt`
2. `streamlit run main.py`
3. On http://localhost:8501/ you should see the app
## Dataset
Mamy łącznie 197784 zdjęć
+ swój własno zrobiony zbiór testowy 148 zdjęć
Linki do datasetów:
1. https://www.kaggle.com/datasets/mrgeislinger/asl-rgb-depth-fingerspelling-spelling-it-out
2. https://www.kaggle.com/datasets/grassknoted/asl-alphabet
3. https://www.kaggle.com/datasets/lexset/synthetic-asl-alphabet
4. https://www.kaggle.com/datasets/kuzivakwashe/significant-asl-sign-language-alphabet-dataset
## Trening modelu
Do trenowania używano biblioteki Keras
### Pierwsze podejście model trenowany od zera (from scratch)
```
img_height=256
img_width=256
batch_size=128
epochs=30
```
```
layers.Rescaling(1./255, input_shape=(img_height, img_width, 3)),
layers.Conv2D(16, 3, padding='same', activation='relu'),
layers.MaxPooling2D(),
layers.Conv2D(32, 3, padding='same', activation='relu'),
layers.MaxPooling2D(),
layers.Conv2D(64, 3, padding='same', activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(128, activation='relu'),
layers.Dense(29,activation='softmax')
```
Zbiór testowy własny: 22% Accuracy
Zbiór testowy mieszany z Kaggle: 80% Accuracy
---
## Drugie podejście model VGG16
Zastosowano early stopping z val_loss
```
img_height=224
img_width=224
batch_size=128
epochs=50
```
Usunięto 3 wierzchne wartswy i dodano warstwy:
```
x = layers.Flatten()(vgg_model.output)
x = layers.Dense(len(class_names), activation='softmax')(x)
```
Zbiór testowy własny: 52% Accuracy
Zbiór testowy mieszany z Kaggle: 79% Accuracy
## Trzecie podejście model VGG16 z detekcją dłoni
Model jak powyżej tylko datasety zostały przereobione modelem do detekcji dłoni i wycięciem odpowiedniego fragmentu ze zdjęcia
Zbiór testowy własny: 61% Accuracy
## Czwarte podejście model VGG16 z detekcją dłoni i zaznaczeniem szkieletu
Model jak powyżej tylko datasety zostały przereobione modelem do detekcji dłoni, wycięciem odpowiedniego fragmentu ze zdjęcia, a także zaznaczenie "szkieletu" dłoni
Zbiór testowy własny: 70% Accuracy