Zadanie 2: Rozpoznawanie tekstur
Transkrypt
Zadanie 2: Rozpoznawanie tekstur
Informatyka, studia dzienne, II st. semestr II Rozpoznawanie obrazów 2012/2013 Prowadzący: dr inż. Bartłomiej Stasiak czwartek, 8:30 Data oddania: Ocena: Andrzej Stasiak 178736 Grzegorz Graczyk 178717 Zadanie 2: Rozpoznawanie tekstur 1. Cel Celem zadania jest zastosowanie metody knn do rozpoznawania testur złożonych w jeden obraz. 2. Wprowadzenie 2.1. Wykorzystanie oraz modyfikacja algorytmu k najbliższych sąsiadów Algorytm knn wykorzystano do klasyfikowania określonego piksela obrazu jako określoną teksturę. Nie są klasyfikowane jednak wszytkie piksele, a jedynie wybierane co pewien krok. Wartości pomiędzy są wybierane na podstawie najbliższego sklasyfikowanego sąsiada. Rozwiązuje to również problem klasyfikowania granicy obrazu. Pozwoliło to zastosować dodatkową modyfikację - algorytm knn może zwrócić dla pewnych pikseli wartość ”nie wiem”. Oczekiwano, że wartość ta będzie zwracana dla tych okienek na których znajduje się więcej niż jedna tekstura. W takim wypadku łączenia tekstur powinny być obarczone mniejszym błędem, niż przy próbie ich normalnego klasyfikowania. 2.2. Ekstrakcja cech Przygotowano dwie metody ekstrakcji cech. Pierwsza metoda wykorzystuje tablicę kowystępowań. Tablica ta jest generowana dla określonego wektora i opisuje częstotliwość występowania określonych par pikseli przesuniętych o 1 dany wektor. Jako cechy wykorzystywane są wskaźniki statystyczne opisujące określoną macierz (po 4 na macierz) dla różnych wektorów. Druga metoda wykorzystuje widmo amplitudowe Fouriera. Klasyfikowany punkt z otoczeniem traktowany jest jako obraz dla którego obliczana jest transformata Fouriera. W celu uniknięcia artefaktów związanych z granicami tego obszaru próbki sygnału pobrane są przy użyciu okna Hanna. Do dalszej analizy wybierane jest zlogarytmowane widmo aplitudowe. Jako cechy wybierane są sumy składowych o częstotliwościach z kolejnych przedziałów. 3. Opis implementacji Implementacja została stworzona w języku C++. Aplikacja wykorzystuje plik zewnętrzny zawierający opis zbioru treningowego jako pary ścieżka do pliku oraz etykieta. Aplikacja generuje także własny plik wyjściowy pozwalający porównać wizualnie jakość rozpoznania, jak i określa ją za pomocą wartości liczbowych. 4. Wyniki W wynikach uwzględniono zarówno szybkość działania obu metod, jak i poprawność rozpoznania każdego testu. Ponieważ testy są tej samej wielkości wydajność dla wszystkich testów została uśredniona i zaprezentowana w jednej tabeli. Metoda Ilość Ekstrakcja zbioru Ekstrakcja zbioru ekstrakcji cech testowego treningowego Klasyfikacja Tablica kowystępowań 100 23 sekundy 18 sekund 16 sekund FFT 10 10 sekund 38 sekund 1 sekunda Test Metoda ekstrakcji Poprawność test1 Tablica kowystępowań 76.07% test1 FFT 81.00% test2 Tablica kowystępowań 73.26% test2 FFT 76.09% test3 Tablica kowystępowań 72.40% test3 FFT 83.07% Poniższe obrazki reprezentują działanie programu - wiersze odpowiadają kolejnym testom, zaś kolumny odpowiednio: odpowiedzi wzorcowej, rozpoznaniu z użyciem tablicy kowystępowania oraz rozpoznaniu z użyciem fft. 2 5. Wnioski Wyniki pokazują, że widmo fouriera ma znacznie większy potencjał rozpoznanie było skuteczniejsze przy mniejszej ilości cech. Wyniki otrzymane przy użyciu FFT są znacznie bardziej poszarpane - powoduje to, że optycznie dopasowania metody kowystępowania wyglądają lepiej, jednak takie nie są. Widoczne jest również, że metoda widmowa kiepsko radzi sobie z określaniem tekstur w okolicach granic - często piksele z tego obszaru rozpoznawane są jako należące do zupełnie innej tekstury. 3