Systemy inteligentnego przetwarzania

Screen programuProjekt z SIP przewidywał napisanie programu potrafiącego rozpoznawać gatunki drzew na podstawie obrazów liści. Program ten wykorzystywał odpowiednio zaprojektowaną perceptronową sieć neuronową, operującą na zwektoryzowanych kształtach liści, przekształconych do postaci niewrażliwej na rozmiar i przesunięcia. Takie podejście pozwoliło na uzyskanie wysokiej wydajności i skuteczności, rozwiązało również częściowo problem wariancji pomiędzy liśćmi drzew tego samego gatunku.

Prezentacja na YouTube

Projekt realizowałem razem z Jackiem Symonowiczem.

Sprawozdanie

sip.pdf

"Testowane były różne konfiguracje związane z budową sieci neuronowej. Zmieniana była liczba warstw ukrytych (od 0 do 3), liczba neuronów w każdej warstwie oraz liczba neuronów wejściowych. Ta ostatnia określa jednocześnie ilość odcinków, na które dzielony jest rozpoznawany liść, odwzorowuje więc dokładność wektoryzacji wczytywanego obrazu. Im więcej wejść ma sieć neuronowa, tym dokładniej będzie próbkowany obraz.

W zwiększaniu dokładności preprocessingu kryje się jednak pułapka. Kiedy liść jest odwzorowany bardzo dokładnie, sieć otrzymuje dużo więcej danych, pośród których istotne cechy odróżniające go od innych liści mogą stracić na wadze. W ten sposób sieć traci zdolność do generalizacji.

Do testów służyło nam 7 gatunków drzew liściastych: chmiel zwyczajny, dąb burgundzki, brzoza brodawkowata, kasztanowiec zwyczajny, klon pospolity, jarząb pospolity oraz wierzba krucha. Do nauki sieci używaliśmy po 4 grafiki na każdy gatunek, pozostałe obrazy były wykorzystywane do rozpoznawania przez nauczoną już sieć. Łącznie używaliśmy 46 bitmap. Niektóre gatunki były wewnętrznie dość zróżnicowane, np. jarząb, którego wszystkie 5 grafik było zupełnie różne, jeśli wziąć pod uwagę sam obrys liści. Inne zaś były bardzo podobne do siebie, jak np. dąb burgundzki. Dodatkowo chmiel zwyczajny był dość zbliżony pod względem kształtu liścia do brzozy brodawkowatej. Reszta gatunków różniła się między sobą trochę bardziej.

Uczenie odbywało się do momentu osiągnięcia docelowej wielkości błędu na wyjściu, ustalonego na 0,0001. Parametry WU i WM były równe odpowiednio 0.5 i 0.1. Przy tych parametrach praktycznie pewne było, że każdy z obrazów, którego nauczyła się sieć, będzie rozpoznawany z prawdopodobieństwem przynajmniej 95%."