Green 1.0Detekcja obszarów zalesionych
| |
| |
Ogólny opis projektuCelem projektu było stworzenie aplikacji potrafiącej rozpoznawać obszary zalesione w zdjęciach lotniczych. Program miał otrzymywać na wejście monochromatyczne zdjęcie lotnicze wraz z maską prawdy, tj. bitmapą określającą, które obszary na zdjęciu mają być klasyfikowane jako zalesione. Na podstawie tych dwóch obrazów program miał zbudować klasyfikator, który pozwoliłby rozpoznawać podobne obszary zalesione w innych obrazach. Dlaczego Java?Poza stworzeniem samej aplikacji naszym celem było również rozpoznanie możliwosci Javy w zakresie przetwarzania obrazów. Interesowała nas efektywność takich aplikacji, wygoda ich realizacji oraz przenośność pomiędzy różnymi platformami. Macierz współwystąpieńMetoda macierzy współwystąpień polega na zbudowaniu modelu statystycznego tekstury. Program ucząc się na fragmentach obrazu określonych przez maskę prawdy jako zalesione, zbiera informacje o częstości współwystępowania par punktów o poszczególnych stopniach jasności. Współwystępowanie jest tu jedną z wielu relacji pomiędzy dwoma punktami obrazu, biorąc pod uwagę ich wzajemne usytuowanie. W ten sposób budowana jest tablica trójwymiarowa, gdzie na jednej osi znajduje się jasność pierwszego punktu, na drugiej - jasność drugiego punktu, a na trzeciej - numer relacji wzajemnego przemieszczenia punktów. W zastosowanej implementacji budowanych jest kilka takich macierzy trójwymiarowych jednocześnie (w efekcie stworzona macierz współwystąpień jest czterowymiarowa). Po zbudowaniu takiego modelu statystycznego możliwe jest wykorzystanie wiedzy na tym samym, bądź innym obrazie. W celu określenia stopnia pewności, iż dany fragment obrazu jest obszarem zalesionym, budowana jest macierz współwystąpień dla otoczenia tego fragmentu. Uzyskana macierz porównywana jest z macierzami powstałymi w procesie uczenia. Stopień podobieństwa określa prawdopodobieństwo, iż dany obszar jest lasem. Sieć neuronowaWykorzystana została klasyczna trójwarstwowa architektura sieci neuronowej. Do nauczania sieci został zastosowany algorytm wstecznej propagacji błędu. Na wejście sieci wpływały wartości jasności poszczególnych punktów z okna o rozmiarze NxN, gdzie N standardowo przyjmowało wartość 20. Na początku procesu uczenia wagi na wejściach do neuronów były inicjalizowane losowo. Z tego względu wynik sieci nie był deterministyczny, ale statystycznie uzyskiwane rezultaty były zadowalające. Dla danego położenia okna, odpowiedzią sieci było prawdopodobieństwo wystąpienia obszaru zalesionego. Podczas procesu uczenia sieci wartość ta była porównywana z wartością wynikającą z maski prawdy. Różnica tych dwóch wartośći była minimalizowana poprzez algorytm wstecznej propagacji błędu. Wzorzec teksturyMetoda wzorca tekstury polega na budowaniu prostokątnego wzorca tekstury obszaru zalesionego. Wzorzec taki jest tablicą dwuwymiarową kwadratową NxN. Proces uczenia rozpoczyna się wyborem reprezentatywnego obszaru NxN (tj. będącego w całości obszarem zalesionym), za pomocą którego wzorzec jest inicjalizowany. Następnie wzorzec jest modyfikowany, tj. uczony. Następuje przemieszczanie się oknem NxN po obszarach zalesionych i dla każdego ustawienia okna na obrazie poszukiwane jest takie jego przemieszczenie względem aktualnego wzorca, aby minimalizować błąd średniokwadratowy w ramach części wspólnej obu kwadratów (okna i wzorca). Wiadomo, że błąd minimalny występowałby najczęściej dla przypadku, gdy część wspólna okno-wzorzec jest rozmiaru jednego punktu. Dlatego też stosowany tu jest przetarg pomiędzy minimalnym błędem, a maksymalnym rozmiarem części wspólnej okno-wzorzec. Dla znalezionego ustawienia okna względem aktualnego wzorca następuje uczenie w ramach części wspólnej, tj. dla każdego punktu wzorca wartości jasności przybliżane są z pewną prędkością to wartości w oknie. Eksploatacja wzorca tekstury polega na obliczeniu różnicy (błędu średniokwadratowego) pomiędzy wzorcem, a danym fragmentem obrazu o rozmiarze NxN. Opcje specjalne
Filtry agregujące - dają możliwość złożenia wielu obrazów poprzez uśrednienie,
maximum, minimum oraz różnicę. Uzyskiwane wynikiWyniki uzyskiwane za pomocą poszczególnych metod były odmienne, jak również każda metoda charakteryzowała się inną szybkością uczenia i eksploatacji wiedzy. Ciekawe efekty uzyskiwaliśmy poprzez agregację wyników za pomocą filtrów (w szczególności maximum i minimum). Możliwości rozbudowy
Zastosowane metody implementują wyspecyfikowany interfejs, dzięki czemu poszerzenie
aplikacji o kolejne algorytmy rozpoznawania obszarów zalesionych nie stanowi problemu.
Po stworzeniu klasy implementującej nową metodę, wystarczy umieścić ją w katalogu
plugins, po czym po uruchomieniu metoda stanie się dostępna. | |
Projekt tworzony w ramach zajęć z Rozpoznawania Obrazów. Politechnika Poznańska 2000/2001. |