Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Opis projektu

EFC - Ear Fuzzy Classifier to klasyfikator rozmyty małżowin usznych będący projektem na zaliczenie modułu zbiory i systemy rozmyte. Za pośrednictwem prostego interfejsu, pozwala użytkownikowi na wgranie obrazu małżowiny usznej, a następnie przeprowadzenie klasyfikacji z użyciem rozmytego klasyfikatora k-NN, wskazując tym samym z pewną dozą niepewności właściciela ucha przedstawionego na fotografii.

Użycie programu

Przed użyciem samego programu należy wykonać poniższe trzy kroki przygotowawcze.

Pierwszy etap to podział zbioru 700 obrazów na zbiory treningowy (500 obrazów) i testowy (200 obrazów) oraz normalizacja do rozmiaru 128x128 i skali szarości. Podział jest zapisywany jawnie w katalogach photos/train i photos/test.

Drugi etap obejmuje ekstrakcję cech z obrazów po preprocessingu. Wykorzystano deskryptory HOG, opisujące lokalny układ krawędzi i kierunków gradientu, oraz przestrzenne LBP, opisujące lokalną teksturę obrazu w siatce fragmentów obrazu. Zbiór treningowy jest dodatkowo augmentowany niewielkimi obrotami -8 i +8 stopni, aby klasyfikator był mniej wrażliwy na drobne różnice ustawienia ucha. Wynikiem tego etapu są numeryczne wektory cech zapisane w plikach features_train.npy, features_train_augmented.npy oraz features_test.npy.

Trzeci etap obejmuje implementację klasyfikatora rozmytego Fuzzy k-NN. Przed klasyfikacją cechy są standaryzowane oraz przekształcane przez PCA i LDA, aby ograniczyć wymiarowość i wzmocnić separację osób. Sam Fuzzy k-NN nie zwraca wyłącznie twardej decyzji klasowej: każda próbka treningowa ma wektor rozmytych przynależności do klas, a przynależność badanego obrazu jest ważoną odległością średnią przynależności jego sąsiadów. Wynikiem klasyfikacji jest identyfikator osoby o najwyższym stopniu przynależności oraz lista najbardziej prawdopodobnych klas.

Wykorzystana baza danych

Do trenowania i testowania modelu użyto bazy danych AMI Ear Database dostępnej publicznie pod tym linkiem.

Uruchomienie lokalnie

Aby uruchomić projekt lokalnie, należy wykonać poniższe kroki.

  1. Stworzenie środowiska wirtualnego

    python -m venv .venv
  2. Uruchomienie środowiska wirtualnego

    source .venv/bin/activate
  3. Zainstalowanie wymaganych bibliotek, których lista znajduje się w pliku requirements.txt

    pip install -r requirements.txt
  4. Uruchomienie wybranego skryptu

    python <nazwa_pliku>.py
  5. Uruchomienie GUI - części front-endowej.

    streamlit run app/frontend.py

About

EFC - Ear Fuzzy Classifier to klasyfikator rozmyty małżowin usznych będący projektem na zaliczenie modułu zbiory i systemy rozmyte.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages