Go to file
Andrzej Preibisz 42ac7cd1fb README fix
2023-02-02 18:16:34 +01:00
frames added scripts 2023-01-31 17:51:02 +01:00
model_pred added good film 2023-01-31 16:58:27 +01:00
test_data added images to test_Data 2023-01-22 17:55:28 +01:00
test_data_andrzej Cropped images 2023-01-26 23:58:40 +01:00
test_data_cropped Better hand cropping 2023-01-28 19:11:59 +01:00
test_data_ola new test data 2023-01-31 07:05:12 +01:00
test_data_own new model 2023-01-24 18:49:32 +01:00
test_data_own_cropped Better hand cropping 2023-01-28 19:11:59 +01:00
training_model wip 2023-01-21 16:22:16 +01:00
.gitignore wip 2023-01-21 16:22:16 +01:00
crop_hand_skeleton.py Hand cropping with skeleton 2023-01-29 19:14:37 +01:00
crop_hand.py Better hand cropping 2023-01-28 19:11:59 +01:00
kamil_asl.mp4 Video processing WIP 2023-01-29 17:44:33 +01:00
main.py Video fix 2023-02-01 01:46:13 +01:00
mp.mp4 added good film 2023-01-31 16:58:27 +01:00
pred_test.py Streamlit WIP 2023-01-29 17:08:06 +01:00
pred.py.save new model 2023-01-24 18:49:32 +01:00
process_video.py Merge branch 'master' of https://git.wmi.amu.edu.pl/s444463/projekt_widzenie 2023-01-31 17:10:24 +01:00
README.md README fix 2023-02-02 18:16:34 +01:00
requirements.txt Hand detection adn cropping 2023-01-28 16:22:36 +01:00

projekt_widzenie

Run apllication

  1. pip install -r requirements.txt
  2. sudo apt-get install ffmpeg
  3. streamlit run main.py
  4. 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

Piąte podejście model VGG19 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: 67% Accuracy