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