Praca dyplomowa magisterska

Wielkość: px
Rozpocząć pokaz od strony:

Download "Praca dyplomowa magisterska"

Transkrypt

1 WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI I ELEKTRONIKI KATEDRA TELEKOMUNIKACJI Praca dyplomowa magisterska Imię i nazwisko Kierunek studiów Temat pracy dyplomowej Opiekun pracy Adam Pyka Elektronika i Telekomunikacja Przenośny system detekcji i rozpoznawania znaków drogowych dr inż. Jakub Gałka Kraków, rok 2011

2 Oświadczam, świadomy odpowiedzialności karnej za poświadczenie nieprawdy, że niniejszą pracę dyplomową wykonałem osobiście i samodzielnie i że nie korzystałem ze źródeł innych niż wymienione w pracy.

3 Szczególne wyrazy podziękowania chciałbym skierować w stronę promotora dr inż. Jakuba Gałki za okazaną cierpliwość, nieocenioną pomoc i wsparcie jakiego udzielił mi w czasie pisania pracy.

4 Niniejszą pracę chciałbym dedykować mojej żonie, która wierzyła we mnie nawet gdy ja zwątpiłem.

5 Spis treści 1. Wstęp 1.1 Cel pracy Zakres pracy 1 2. Wprowadzenie do świata obrazów Przestrzenie barw Reprezentacja obrazów 5 3. Przekształcenia i analiza obrazów Przekształcenia geometryczne Przekształcenia punktów Histogram i wyrównanie histogramu Korekcja gamma Binaryzacja Przekształcenia kontekstowe Splot Filtry 2-D Filtry dolnoprzepustowe Filtry górnoprzepustowe Przekształcenia morfologiczne Erozja Dylatacja Otwarcie i zamknięcie Detekcja ekstremów: Top-Hat, Bottom-Hat Ścienianie i pogrubianie Szkieletyzacja i obcinanie gałęzi Trafi - nie trafi Analiza obrazów Segmentacja i numerowanie Współczynniki kształtu Momenty główne i centralne Praktyczne wykorzystanie przekształceń- znajdowanie znaków w obrazie ROI ( Region Of Interest ) charakter i właściwości znaków Stosowane metody detekcji znaków Analiza kształtów Analiza koloru Porównanie metod Zastosowana metoda detekcji znaków Rozpoznawanie obrazów i metody klasyfikacji wzorców Metody bezpośredniej analizy obrazu Metody oparte o generację wektora cech Powszechnie znane sposoby generowania wektora cech Zastosowana metoda ekstrakcji cech Klasyfikatory Maszyna wektorów wspierających SVM SVM liniowo separowalnego zbioru wzorców SVM nieliniowo separowalnego zbioru wzorców Skuteczność algorytmów Skuteczność detektora Skuteczność rozpoznawania.. 67

6 6.3 Podsumowanie wyników Opis programu Obsługa programu Ważniejsze części i funkcje programu.. 77 Dodatek- Porównanie współczynników kształtu oraz momentów geometrycznych 83 Literatura. 87

7 Wykaz ważniejszych oznaczeń i,j- indeksy O- obraz źródłowy O - obraz wynikowy O(i,j)- piksel obrazu źródłowego - wynik splotu sygnału ciągłego - wynik splotu sygnału dyskretnego - sygnał ciągły - histogram - dystrybuanta histogramu - współczynniki filtru, rozmiar VC γ - współczynnik korekcji gamma, parametr w SVM - współczynnik zawartości - współczynnik centryczności - współczynnik Fereta - współczynnik prostokątności - współczynnik cyrkularności - współczynnik Malinowskiej - współczynnik Blair-Bliss - współczynnik Danielssona - współczynnik Haralicka - moment główny - moment centralny - moment centralny znormalizowany - niezmienniki momentowe N- liczba klas, liczba elementów c i - klasy w SVM C I, C J klasy konkurencyjne w SVM - wektor - wektor wynikowy funkcji rozpoznawania znaków - zbiór punktów głosowania - odległość - macierz współczynników hiperpłaszczyzny - liczba wzorców, długość - odległość pomiędzy hiperpłaszczyznami - funkcja rozdzielająca - próg binaryzacji

8 Wykaz ważniejszych akronimów RGB- HSV YUV- CIEXYZ- ROI- SKIZ- SVM- FRST- LUT - NNk-NN- NM- MAC - FPGA- SIFT- SURF- PCA- VC- przestrzeń barw ang. Red Green Blue przestrzeń barw ang. Hue Saturation Value przestrzeń barw przestrzeń barw obszar zainteresowania ang. Region Of Interest szkieletyzacja bez stykania obszarów maszyna wektorow wspierajacych ang. Support Vector Machine szybka transformata radialna ang. Fast Radial Symetry Transform operacja odczytu z tablicy ang. Look Up Table metoda klasyfikacji ang. Nearest Neighbour metoda klasyfikacji ang. k-nearest Neighbours metoda klasyfikacji ang. Nearest Mode operacja pomnóż i sumuj uklady programowalne ang. Scale Invariant Feature Transform ang. Speeded Up Robust Features ang. Principal Components Analisis rozmiar Vapnika-Czervonenkisa

9 1.Wstęp Według najnowszych danych liczba samochodów w 2010 roku osiągnęła pułap 900 milionów. Jeżeli bieżący trend zostanie zachowany, to w ciągu następnych 30 lat liczba ta ulegnie podwojeniu. Tak duża liczba samochodów przyczynia się do coraz większej liczby wypadków drogowych oraz potencjalnych sytuacji zagrożenia zdrowia i życia podróżujących. Koncerny samochodowe coraz większą wagę przywiązują do bezpieczeństwa ich produktów. Samochód XXI wieku jest wyposażony w systemy awaryjnego hamowania, wyprowadzania z poślizgu, rozpoznawania przeszkód na drodze oraz wiele innych. Systemami, które są aktualnie wprowadzane do najnowocześniejszych pojazdów są systemy rozpoznawania sytuacji drogowych w tym także systemy rozpoznawania znaków. Tematem detekcji i rozpoznawania znaków drogowych nauka zajmuje się od dawna. Powstało wiele prac w tym temacie, niektóre zostały nawet zastosowane w produkcji seryjnej w samochodach grupy Volvo. Możliwość zainstalowania w samochodzie urządzeń rozpoznających znaki drogowe i ostrzegające o potencjalnych sytuacjach niebezpiecznych z pewnością przyczyni się do poprawy bezpieczeństwa na drogach. 1.1 Cel pracy Celem pracy jest zbudowanie algorytmu umożliwiającego znalezienie w nieruchomym obrazie znaku drogowego, a następnie jego rozpoznanie. System w wersji podstawowej powinien znajdować i rozpoznawać znaki drogowe grupy B -znaki zakazu. W wersji rozszerzonej powinien też reagować na wybrane znaki pozostałych grup. Algorytm powinien cechować się jak największą skutecznością detekcji znaków i prawidłowym ich rozpoznawaniem. 1.2 Budowa pracy Praca składa się z sześciu rozdziałów opisujących najważniejsze aspekty przetwarzania obrazów i ich wykorzystanie w rozpoznawaniu obrazów. Uzupełnieniem pracy jest rozdział siódmy oraz dodatek. Rozdział pierwszy stanowi wstęp do pracy, gdzie omówiony jest cel pracy. Rozdział drugi stanowi wprowadzenie do przetwarzania obrazów, omówione są w nim między innymi przestrzenie barw, oraz podstawowe informacje o obrazach. W rozdziale trzecim omówione są przekształcenia geometryczne, punktowe, kontekstowe i morfologiczne. Wszystkie zostały poparte przykładami i opisane pod względem ich wykorzystania w obróbce obrazów. Rozdział kończy się podstawami analizy obrazu, między innymi poruszone zostały operacje segmentacji, współczynniki kształtu i niezmienniki momentowe. Rozdział czwarty rozpoczyna omówienie głównego tematu pracy, poruszone są w nim zagadnienia obszarów zainteresowania i stosowane metody detekcji znaków. W pierwszej części rozdziału przytoczone zostały sposoby detekcji znaków stosowane w innych pracach naukowych w tej tematyce. Wprowadzony został także podział metod detekcji i szczegółowo zaprezentowano metodę detekcji znaków w oparciu o analizę kształtu. Druga część rozdziału to omówienie zastosowanego w pracy rozwiązania problemu detekcji. 1

10 Metody rozpoznawania znaków, a także towarzyszące im pojęcia i algorytmy zostały zaprezentowane w rozdziale piątym. Wymienione zostały sposoby generowania wektorów cech oraz realizacje klasyfikatorów. Rozdział kończy się propozycją budowy i zasady działania modułu rozpoznawania znaków. Szósty rozdział jest podsumowaniem pracy pod względem osiągniętych rezultatów i uzyskanej skuteczności działania. Wyniki zostały zestawione z tymi otrzymywanymi w innych pracach na ten temat. W rozdziale siódmym omówione zostały algorytmy i rozwiązania zastosowane w programie komputerowym. Pierwsza część tego rozdziału jest opisem interfejsu użytkownika, w drugiej przytoczone zostały główne części programu. Jako dodatek do pracy zostały przeanalizowane wybrane współczynniki kształtu oraz niezmienniki momentowe stosowane w określaniu kształtu figur geometrycznych. 2

11 2.Wprowadzenie do świata obrazów W tej pracy pod pojęciem obrazu będzie rozumiany zbiór liczb uszeregowanych do postaci dwu lub trzy wymiarowej macierzy. Zbiór ten będzie najczęściej cyfrową reprezentacją obrazu w sensie pewnej scenerii. Za pomocą odpowiednich narzędzi możliwe będzie odtworzenie tej scenerii i wyświetlenie na ekranie komputera. Obrazy- sceny należy oczywiście w pierwszej kolejności wprowadzić do świata cyfrowego i przekształcić do wymaganej postaci macierzowej. Służy do tego wiele rodzajów przetworników, najpopularniejszymi są matryce optoelektroniczne CCD stosowane w kamerach i aparatach fotograficznych. Z przekształceniem takim wiąże się wiele aspektów technicznych, spośród których należy wymienić: Rozdzielczość bitowa i sposób reprezentacji. Sposób reprezentacji mówi o zdolności matrycy do wytwarzania obrazów kolorowych (trójwymiarowa macierz) lub monochromatycznych (macierze dwuwymiarowe). Rozdzielczość bitowa natomiast mówi jak dokładnie urządzenie jest w stanie reprezentować rzeczywiste kolory sceny, którą obserwuje. Rozdzielczość przestrzenna. W aparacie fotograficznym lub kamerze pewna obserwowana przestrzeń przeskalowana przez zbiór soczewek pada na jeden element światłoczuły matrycy CCD. Ważne jest więc jak duży obszar przestrzeni jest reprezentowany przez jeden piksel obrazu. Parametr zdefiniowany w celu ilościowego opisu tego faktu, to stosunek całkowitej powierzchni matrycy, do ilości komórek jaką zawiera, a nazywany jest rozdzielczością przestrzenna. Najczęściej im większa rozdzielczość przestrzenną (większa liczba pikseli przetwornika), tym mniejszy obszar oddziałuje na jeden piksel i reprezentacja w świecie cyfrowym jest dokładniejsza. Rozdzielczość czasowa. Parametr ten mówi jak często odświeżany jest obraz, tzn. jak często następuje aktualizacja danych. Zbyt częste odświeżanie wiąże się z natłokiem informacji przekazywanych do dalszych urządzeń z którymi matryca współpracuje. Zbyt rzadkie odświeżanie powoduje utratę płynności obserwowanego obrazu i w skrajnych przypadkach wiąże się z niemożliwością prawidłowego odtworzenia sceny. O metodach pozyskiwania obrazów można dowiedzieć się więcej z [1] oraz [3]. 2.1 Przestrzenie barw Postrzegany przez człowieka kolor związany jest z długością fali padającego światła. Żeby rozpoznać i zapisać ten kolor w postaci danych cyfrowych konieczne jest jego rozbicie na kilka składowych i zmierzenie ich natężenia. Najczęściej stosowanymi składowymi są kolory czerwony, zielony i niebieski. Oznacza to, że pojedynczy obraz kolorowy to w istocie trzy obrazy monochromatyczne dla tych trzech składowych. Mogą one być przekazywane do dalszego przetwarzania bezpośrednio lub po przekształceniu. Ze sposobem reprezentacji koloru wiąże się tzw. przestrzeń barw czyli forma w jakiej informacja o kolorze jest przekazywana. Do najpowszechniejszych przestrzeni barw należą: RGB (ang. Red Green Blue ) Informacja o kolorze jest przekazywana bezpośrednio. Trzema składowymi są czerwony zielony i niebieski. Model ten jest stosowany najczęściej w monitorach komputerów oraz różnego rodzaju wyświetlaczach. Jest on zależny od urządzenia (ang. device dependent ), co oznacza, że ta sama barwa może 3

12 nieco inaczej wyglądać na różnych urządzeniach. Do zapisu najczęściej jest używany format 24 bitowy, co oznacza, że każdy kolor ma 256 poziomów intensywności. Rys. 2.1 Przestrzeń RGB [33] CMYK (ang. Cyan Magenta Yellow black ) Istotą uzyskiwania kolorów w przestrzeni CMYK jest filtrowanie światła białego i obserwowanie wyników tej filtracji.. Naniesienie trzech filtrów składowych CMY daje w efekcie filtr tłumiący wszystkie długości fali, a więc kolor czarny. Jednakże takie rozwiązanie byłoby marnotrawstwem i do przestrzeni została dołożona jeszcze jedna składowa- czarny. Kolor biały jest w istocie brakiem filtru. Przestrzeń ta wykorzystywana jest w poligrafii i drukarkach komputerowych. Rys. 2.2 Przestrzeń CMYK [33] HSV (ang. Hue Saturation Value ) Jest transformatą przestrzeni RGB do postaci biegunowej, która jest łatwiejsza w obróbce komputerowej. Rys. 2.3 Przestrzeń HSV [33] 4

13 Składowa Hue odpowiada za barwę światła z koła barw i jest wyrażana, jako kąt w zakresie składowa Value mówi o intensywności światła białego, natomiast Saturation o intensywności barwy. W modelu tym, żeby przykładowo rozjaśnić kolor wystarczy zmienić tylko składową V, podobnie żeby zmienić intensywność koloru wystarczy zmienić składową S. Modelem bardzo podobnym do HSV jest model HSL (ang. Hue Saturation Lightness ) i różni się on tym, że L=1 zapewnia światło białe niezależnie od wartości S. YUV model ten był używany podczas wymiany telewizorów czarno-białych na kolorowe. Składowa Y odpowiadająca za luminancje określa odcień szarości, składowe U i V to różnice pomiędzy odpowiednio kolorem niebieskim a luminancją oraz kolorem czerwonym a luminancja. Telewizory czarnobiałe odbierały tylko sygnał Y, kolorowe natomiast na podstawie wszystkich trzech składowych odtwarzały przestrzeń RBG. CIEXYZ model ten jest wyjściowym do modeli CIELUV oraz CIELab i został opracowany przez Międzynarodową Komisję Oświetleniową. Model ten zbudowany dla najlepszego modelowania ludzkiego oka uwzględnia tzw. sprawności wizualne. Przestrzeń ta jest najobszerniejsza tzn. umożliwia zapisanie największej ilości kolorów. Z punktu widzenia nimniejszej pracy najistotniejszymi przestrzeniami barw są RGB i HSV gdyż za ich pomocą można w prosty sposób wyznaczać obszary, w których najprawdopodobniej znajdują sie znaki drogowe. Będą to obszary o określonych wartościach składowych R, G i B czy H, S i V. 2.2 Reprezentacja obrazów Obrazy w pamięci komputera mogą być przechowywane w dwojaki sposób, w tzw. postaci wektorowej lub rastrowej. Sposób reprezentacji zależy od źródła pochodzenia obrazu i ewentualnych operacji, jakie zostały na nim przeprowadzone. Grafika wektorowa to w istocie zbiór pewnych równań które opisują pojedyncze elementy obrazu. Równanie takie zapisane jest w postaci współcznników i zebrane w jeden element wektor. Z każdym takim równaniem związany jest kolor obiektu jego wielkość i położenie. Programy przetwarzające takie obrazy w istocie wyznaczają rozwiązania tych równań i na ich podstawie tworzą prezentowaną grafikę- obliczają wartości kolorów poszczególnych pikseli. Edytowanie obrazu polega na zmianie współczynników w wektorze. Zaletą tego rodzaju obrazów jest niezależność dokładności od rozmiarów obrazu, dowolne przeskalowanie nie powoduje utraty wyrazistości i ilości przedstawionych szczegółów. Przykładami takich obrazów są Cliparty z pakietu programów Microsoft Office. Grafika rastrowa jest zapisaniem wartości każdego piksela obrazu w nośniku danych. Grafiką taką są wszelakiego rodzaju zdjęcia i filmy i jest ona nieodporna na skalowanie i wszelkie transormacje. Oznacza to, że zmiana rozmiarów obrazu wiąże się z utratą części danych, a co za tym idzie dokładności obrazu. W nimniejszej pracy stosowany będzie tylko ten sposób zapisu obrazów. 5

14 Ze sposobem zapisu grafiki rastrowej w nośnikach danych związany jest tzw. format zapisu. Obrazy mogą zostać zapisane w sposób bezpośredni tj. zapisana jest wartość każdego piksela obrazu bez jakiejkolwiek ich obróbki i wtedy format to mapa bitowa (ang. bitmap ). Obraz zapisany w ten sposób zajmuje najwięcej miejsca w pamięci komputera. Możliwe jest także zapisanie obrazów w postaci przetworzonej. Transformacje mają najczęściej na celu zmniejszenie ilości niezbędnego miejsca w pamięci potrzebnego na przechowanie takiego obrazu. Rozróżniane są przy tym dwa rodzaje kompresji, stratna i bezstratna. Kompresja stratna, to taka w której tracona jest pewna część informacji, a więc dokładność obrazu, najpopularniejszym formatem tego rodzaju przekształcenia jest JPEG. Kompresja bezstratna oznacza, że obraz nie traci szczegółów a mimo to zajmuje mniej miejsca niż mapa bitowa. Najpopularniejszymi formatami tej kompresji są TIFF oraz PNG. W tej pracy wykorzystywano obrazy zapisane w formacie JPEG. 6

15 3.Przekształcenia i analiza obrazazów Obraz można traktować jako macierz z zapisanymi w niej liczbami określającymi intensywność barwy każdego punktu. Macierze te można poddać przekształceniom matematycznym, spośród których w tym rozdziale zostanie przedstawionych kilka podstawowych. Szczegółowe informacje na temat przekształceń obrazów wraz ze stosownymi wzorami mogą być znalezione w [1]. Do podstawowych przekształceń na obrazach zalicza się przekształcenia: geometryczne punktowe kontekstowe morfologiczne widmowe czyli wszystkie przekształcenia w dziedzinie częstotliwości wykorzystujące zarówno transformatę Fouriera, jak i Falkową. Przekształcenia te jako jedyne nie będą omawiane w tej pracy. Bardzo przystępne informacje na temat obu transformat można znaleźć w [2]. W kolejnych podrozdziałach w sposób skrótowy są opisane podstawowe z czterech wymienionych powyżej przekształceń. 3.1 Przekształcenia geometryczne Przekształcenia geometryczne, to przekształcenia polegające na obrotach, zmianach rozmiarów, miejscowych zmianach skali itp. Są one wykorzystywane w systemach akwizycji obrazów (kamerach, skanerach itp.) do korekcji błędów powstałych przez nieidealne układy optyczne tych urządzeń. Ponadto są czasem niezbędne jako początkowe transformacje w wizyjnych systemach pomiarowych. Poniżej przedstawiono kilka takich przekształceń. Rys. 3.1 Obrót 7

16 Rys. 3.2 Zmiana rozmiarów Rys.3.3 Lokalna zmiana skali (od lewej: oryginał, zmiana skali osi Y, zmiana skali osi X i Y) Przekształcenia te są proste w realizacji i nie wymagają opisu, większość programów do obróbki graficznej oraz języków programowania posiada niezbędne biblioteki do wykonania takich zmian. Przekształcenia te wymagają przeliczenia wartości każdego punktu w obrazie. Realizuje się to najczęściej metodą aproksymacji liniowej na podstawie sąsiednich punktów. Teoretycznie możliwe jest przywrócenie pierwotnego obrazu, jednakże transformata taka wiąże się z utratą części danych, a więc jej cofnięcie poskutkuje utratą rozdzielczości. 3.2 Przekształcenia punktowe Są to operacje wykonywane na pojedynczych punktach obrazu. Nie zmieniają one rozmiarów czy skali obrazu, a jedynie stopień jasności, kontrast bądź w przypadku obrazów kolorowych nasycenie barw. Najczęściej wykorzystywaną korekcją obrazu należącą do tej grupy jest tzw. wyrównanie histogramu. Do tych przekształceń zaliczane są także łączenie (sumowanie) dwu i więcej obrazów w jeden Histogram i wyrównanie histogramu Pojęcie histogramu zostanie wyjaśnione w odniesieniu do obrazów monochromatycznych (w skali szarości) gdyż będzie to bardziej przystępne i przejrzyste. Stosowane poniżej sformułowania stopnia szarości i jasności należy rozumieć następująco. Stopień szarości to nasycenie obrazu (punktu) kolorem czarnym, natomiast stopień jasności 8

17 to nasycenie kolorem białym. Większy stopień jasności to mniejszy stopień szarości i odwrotnie. Histogram jest to najczęściej wykres słupkowy mówiący ile w obrazie jest punktów o danym stopniu szarości w stosunku do liczby wszystkich punktów obrazu. Zliczania punktów dokonuje się dla każdego poziomu jasności, czyli w przypadku obrazu wykorzystującego 8- bitową reprezentacje dokonywanych jest 256 zliczeń. Wyrównanie histogramu Polega na takiej zmianie jasności pikseli obrazu, aby w jednakowych zakresach histogramu liczba pikseli była zbliżona. Operację tę realizuje się na podstawie dystrybuanty histogramu opisanej wzorem (3.1a) gdzie obrazie (3.1a) jest wartością histogramu dla i tego stopnia szarości, a N jest liczbą pikseli w Dystrybuanta określa ilość pikseli o stopniu jasności mniejszym lub równym i w odniesieniu do liczby wszystkich pikseli obrazu N. Wyrównanie histogramu może być opisane wzorem (3.1b) (3.1b) gdzie to pierwsza niezerowa wartość dystrybuanty, k- liczba stopni szarości Na rysunku 3.4 przedstawiony został obraz oryginalny wraz z histogramem po prawej stronie. Na rysunku 3.5 przedstawiony jest ten sam obraz po wyrównaniu histogramu oraz jego histogram po prawej. Rys. 3.4 Obraz oryginalny i jego histogram 9

18 Rys.3.5 Obraz po wyrównaniu histogramu i jego histogram. Porównując powyższe rysunki widać jak zmienia się obraz po wyrównaniu histogramu i na czym ono polega. Widać znaczną poprawę dynamiki obrazu, chodź jest ona okupiona większą ziarnistością obrazu. Efekt operacji w postaci histogramu jest bardziej równomierny, a liczba pikseli w równych przedziałach jest do siebie zbliżona Korekcja gamma Operacja ta zmienia kontrast obrazu poprzez modyfikację wartości jasności danego piksela według poniższego wzoru: (3.2a) gdzie: piksel wynikowy, piksel źródłowy, γ- współczynnik korekcji Obraz po korekcji musi zostać unormowany, i w przypadku stosowania 24 bitowego zapisu obrazów kolorowych korekcja gamma z normalizacją może być opisana wzorem: (3.2b) Korekcja gamma jest operacją nieliniową, ale odwracalną, czyli istnieje możliwość przywrócenia oryginalnego wyglądu obrazu. W przypadku obrazów kolorowych teoretycznie można dokonać korekcji każdego koloru składowego w przestrzeni RGB osobno i z inną wartością współczynnika. W praktyce jednak stosuje się taki sam współczynnik do wszystkich kolorów. Wynik korekcji gamma dla γ=1.5 przedstawia rysunek

19 Rys. 3.6 Obraz oryginalny po lewej i po korekcji gamma po prawej. Jak widać korekcja gamma może w znaczny sposób poprawić postrzeganą jakość obrazu. Jest to druga po wyrównaniu histogramu podstawowa operacja wykorzystywana do poprawy jakości obrazów. Praktyczna poprawa odbywa się dwuetapowo, w pierwszym kroku dokonujemy wyrównania histogramu, w wyniku czego wykorzystany jest cały zakres jasności. W drugim kroku dokonujemy korekcji gamma zmieniającej kontrast obrazu Binaryzacja Operacja ta polega na utworzeniu na podstawie obrazu monochromatycznego lub kolorowego obrazu binarnego. Obraz binarny to taki w którym wyróżniamy tylko dwa skrajne poziomy szarości, czyli czarny lub biały, jest on więc zapisany z wykorzystaniem jednobitowej reprezentacji punktu. Binaryzacji dokonuje się porównując jasność piksela z pewną ustaloną dla całego obrazu wartością progową, lub lokalną wartością progową obliczaną dla otoczenia analizowanego piksela w obrazie źródłowym. Jeżeli piksel jest jaśniejszy to w obrazie binarnym w tym miejscu wstawiana jest 1 natomiast jeżeli jest ciemniejszy to 0. Globalną wartość progową można dobrać w sposób dowolny, w praktyce jednak dobiera się ją na podstawie histogramu. Binaryzacja służy do wytwarzania tzw. masek lub wydobywania pewnej informacji z obrazu. Poniżej został przytoczony przykład zastosowania binaryzacji. W przytoczonym przykładzie założono, że koniecznym jest wyznaczenie obszarów pokrytych śniegiem. Dla ułatwienia proces ten został przeprowadzony dla obrazu monochromatycznego. W pierwszej kolejności wyznaczony został histogram obrazu przedstawiony na rysunku 3.7. Na histogramie zaznaczone są kolorem czerwonym dwie wartości jasności, obie wyznaczają progi binaryzacji. Próg zaznaczony kreską pionową jest wyznaczony według powszechnie stosowanego algorytmu środka ciężkości. W podejściu tym próg binaryzacji jest obliczany jako lokalne minimum rozgraniczające dwie równoliczne grupy. Oznacza to, że liczba pikseli po lewej stronie progu jest równa liczbie pikseli po jego stronie prawej. Jest to metoda dobierania progu bez uwzględnienia zawartości rysunku (tego co przedstawia). Drugi próg oznaczony kropką wyznaczony jest w sposób analogiczny do pierwszego (jako wartość pomiędzy dwoma skupiskami jasności) ale w tym przypadku nie jest zachowany warunek równości liczby pikseli po obu jego stronach. Próg ten dobrany jest z uwzględnieniem zawartości rysunku. Pierwsza metoda jest łatwa do zaimplementowania w algorytmach samoczynnie tworzących obrazy binarne, druga wymaga interwencji człowieka. Na rysunku

20 przedstawione są obrazy binarne wyznaczone obiema metodami. W przypadku stosowania drugiej metody dokładność działania jest nieco lepsza- zaznaczony jest dach. Rys. 3.7 Obraz wyjściowy i jego histogram Rys.3.8 Obraz binarny wyznaczony pierwszą metodą po lewej i drugą metodą po prawej. Przekształcenia punktowe stanowią bardzo liczną grupę. Przedstawione w pracy przykłady są fundamentalnymi w tej grupie przekształceń. Pozostałymi często stosowanymi metodami są łączenie dwóch obrazów, dodawanie stałej do obrazu itp. 3.3 Przekształcenia kontekstowe Przekształcenia kontekstowe, to takie które zmieniają jasność piksela w zależności od jego dotychczasowej wartości ale także z uwzględnieniem jasności sąsiednich pikseli. Pod 12

21 pojęciem przekształceń kontekstowych głównie kryje się różnego rodzaju filtracja obrazów. W kolejnych podrozdziałach przytoczone są podstawy filtracji oraz dwa najpopularniejsze typy filtrów dolno i górnoprzepustowy Splot Splot dwu funkcji może być opisany następującym wzorem: (3.3) gdzie y(t) jest wynikiem splotu, x( jest funkcją splataną, a h(t-τ) funkcją splatającą, bądź inaczej h(t-τ) to odpowiedź impulsowa filtru, natomiast x(τ) to sygnał filtrowany. W jednowymiarowej dziedzinie dyskretnej splot można przedstawić równaniem 3.4. (3.4) Graficzna interpretacja wzoru 3.4 może być przedstawiona jak na rysunku 3.9, gdzie h(0), h(1) i h(2) to współczynniki filtru, x(i) to kolejne dane źródłowe, a y(i) to wynik działania funkcji splatającej. Rys. 3.9 Splot w dziedzinie dyskretnej Ważnym czynnikiem jest numeracja współczynników filtru i kolejnych próbek sygnału wejściowego. Pierwszy współczynnik filtru h(0) jest zawsze mnożony przez najnowszą próbkę sygnału, drugi współczynnik filtru przez poprzednia itd. Zsumowany wynik mnożeń stanowi najnowszą próbkę sygnału wyjściowego. W przypadku obrazów sygnał wejściowy i wyjściowy są dwuwymiarowe, a więc i filtr musi być dwuwymiarowy 1. Splot w dwuwymiarowej przestrzeni dyskretnej może być opisany wzorem 3.5 (3.5) 1 Istnieje możliwość filtrowania obrazów filtrami jednowymiarowymi. Zagadnienie opisane w [2] 13

22 W filtrach 2-D element dla którego realizowana jest w danej chwili filtracja znajduje się w środku filtru- czerwony kwadrat na rysunku Filtr natomiast zbudowany jest wokół tego elementu żółty kwadrat. Tym samym naturalnym wydaje się stosowanie filtrów o nieparzystej liczbie kolumn i wierszy. Przedstawione we wzorze 3.5 sumowanie przebiega w zakresie od minus do plus nieskończoności. W praktyce jednak filtracja realizowana jest w zakresie obrazu, żaden współczynnik filtru nie wystaje poza obszar obrazu. Obraz po filtracji jest więc w sposób naturalny mniejszy od obrazu źródłowego. Uzyskanie obrazu o takich samych rozmiarach realizowane jest na kilka sposobów. Możliwe jest poszerzenie obrazu źródłowego o wymaganą rozmiarem filtru ilość pikseli brzegowych, lub poszerzenie wyniku. Rys Filtracja 2-D Problem filtrowania próbek brzegowych oraz powód stosowania i realizacja stałoprzecinkowych współczynników filtru jest omówiony w [1], natomiast szczegółowe informacje o filtrowaniu 1-D i 2-D jak również projektowanie filtrów zawarte są w [2]. W przypadku prostego przetwarzania obrazów stosuje się filtry 9-cio elementowe (3 3) oraz 25- cio elementowe (5 5) gdyż dają one zadowalające wyniki i nie wymagają zbyt dużej liczby obliczeń do wyznaczenia pojedynczej próbki sygnału Filtry 2-D Podobnie jak w przypadku filtrów jednowymiarowych filtry dwuwymiarowe dzielimy ze względu ułożenie pasma przepustowego na: dolnoprzepustowe górnoprzepustowe- gradienty specjalne- medianowe, nieliniowe i inne Pojęcie częstotliwości w obrazach wiąże się ze zmianami poziomów szarości w obrazie. Obszar w którym występuje częsta zmiana poziomu jasności zawiera w dużej części składowe wysokoczęstotliwościowe. Natomiast obszar który przedstawia jednorodne duże powierzchnie zawiera głównie składowe niskoczęstotliwościowe. W przedstawionym na rysunku 3.11 obrazie składowe niskie częstotliwości będą związane z dachem chatki oraz łąką przed chatką. Wysokie częstotliwości będą natomiast skojarzone z obszarem lasu. 14

23 Filtry dolnoprzepustowe: Rys.3.11 Obraz po filtracji filtrem uśredniającym 3 3 Rys Obraz po filtracji filtrem uśredniającym

24 Rys Filtr uśredniający 5 5 oraz 3 3 Filtry uśredniające są najprostszą odmianą filtrów dolnoprzepustowych, zastosowanie takiego filtru powoduje, że analizowany piksel przyjmuje wartość średnią spośród jego sąsiadów. Innym bardzo popularnym filtrem dolnoprzepustowym jest filtr Gausa który zazwyczaj mniej degraduje obraz niż filtr uśredniający. Przykładowy filtr Gausa oraz efekt jego działania jest przedstawiony na rysunku 3.14 Rys 3.14 Obraz oryginalny po lewej oraz po filtracji filtrem Gaussa Filtry górnoprzepustowe Filtry górnoprzepustowe znalazły szczególne zastosowanie jako metoda wydobywania krawędzi z obrazu. Rozróżniane są dwa sposoby wydobywania krawędzi gradienty i laplasjany. Oba sprowadzają się do wyznaczenia odpowiednich współczynników filtrów. Wyprowadzenia stosownych wzorów i uzasadnienie podaje [1]. Ponadto filtry tego typu mogą wydobywać z obrazu kontury kierunkowe tzn. wzdłuż zadanej osi lub ogólne- bez wyróżnionego kierunku. Poniżej przedstawione są przykładowe filtry wraz z wynikami ich działania. 16

25 Rys Wynik działania filtru Prewitt-a w kierunku horyzontalnym i jego maski Rys Wynik działania filtru Sobela w kierunku horyzontalnym i jego maski 17

26 Rys Wynik działania gradientu Robertsa oraz jego maski Wszystkie przytoczone filtry były kierunkowymi tzn. wykrywały krawędzie w zadanym kierunku. Takie filtry są przydatne wszędzie tam, gdzie poszukiwane obiekty są zbudowane z odcinków liniowych. Przykładem takich obiektów mogą być linie rozdzielające pasy na jezdni, pasy dla pieszych itd. Jeżeli natomiast poszukiwane obiektów nie mają zadanego kierunku to ich krawędzie można wyznaczyć w oparciu o powyższe maski sumując wyniki dla kierunków poziomego i pionowego. Sumowanie to można zrealizować na kilka sposobów, dwa najważniejsze sposoby to sumowanie modułów lub wykorzystanie metryki Euklidesowej. Powstały w ten sposób filtr jest nieliniowy. Rysunek 3.15 przedstawia obraz konturowy będący wynikiem filtracji liniowej w kierunku horyzontalnym. Rysunki 3.16 i 3.17 przedstawiają obrazy konturowe będące wynikiem filtracji nieliniowej. Innym sposobem znajdowania krawędzi bez uwzględniania kierunku są laplasjany przykład działania takiego filtru przedstawiony jest na rysunku

27 Rys Wynik działania Laplasjanu oraz jego maska. Prócz zaprezentowanych podstawowych filtrów dolno i górno przepustowych, ważną grupą są tzw. filtry medianowe. (w uporządkowanym rosnąco ciągu liczb mediana jest wartością środkową). Działają one podobnie do filtrów uśredniających, z tą różnicą, że do obliczenia wartości piksela on sam nie jest brany pod uwagę. Obliczana jest mediana ze wszystkich pikseli z wyjątkiem środkowego, następnie jest ona porównywana z wartością środkowego piksela (dla którego jest obliczany wynik). Jeżeli wartość środkowego piksela odbiega znacząco od obliczonej mediany, to wartość tego piksela jest zamieniana na wartość mediany. Jeżeli wartości środkowa i mediana są zbliżone to piksel ten pozostaje niezmieniony. Filtry medianowe, mają tą przewagę na uśredniającymi, że nie rozmywają krawędzi obrazu, bardzo skutecznie natomiast usuwają z niego różnego rodzaju artefakty. Wynik działania filtru medianowego przedstawiony jest na rysunku 3.19 Rys.3.19 Obraz zakłócony po lewej i wynik filtracji medianowej tego obrazu po prawej 19

28 Do filtrów nieliniowych należą także filtry minimalne i maksymalne w których analizowany piksel przyjmuje wartość maksymalną lub minimalną ze swojego otoczenia. Istnieją także filtry specjalizowane do indywidualnych przypadków i potrzeb. Filtry te na ogół nie podpadają pod żadne kryteria, a ich charakterystyka częstotliwościowa jest na ogół dość skomplikowana. Nie sposób więc przytoczyć tu jakiekolwiek uogólnione przykłady. Z uwagi na ogólny charakter pracy interesującym filtrem jest filtr poprawiający ostrość obrazu rejestrowanego przez kamerę umieszczoną w samochodzie. Filtr taki można byłoby sklasyfikować jako szczególny przypadek filtru górnoprzepustowego. 3.4 Przekształcenia morfologiczne Przekształcenia morfologiczne są podstawowymi przekształceniami stosowanymi w przetwarzaniu i analizie obrazów. Pozwalają one na modyfikacje kształtu obiektów w obrazie celem ustalenia relacji pomiędzy nimi. Podstawą przekształceń morfologicznych jest tzw. element strukturalny, czyli ruchoma macierz przemieszczająca się po pikselach obrazu. Element ten może przyjmować w zasadzie dowolny kształt (w macierzy elementy nienależące do kształtu mają wartość zerową) oraz dowolną wielkość. Od jego kształtu i rozmiarów zależeć będą właściwości operacji morfologicznych oraz wynik ich przeprowadzenia. W praktyce najczęściej stosuje się z elementy strukturalne kwadratowe o wymiarach 3 3, 5 5, 7 7 itd. Przekształcenia morfologiczne polegają w ogólności na przesuwaniu po obrazie elementu strukturalnego i porównaniu go z pikselami w obrazie, a następnie wykonaniu prostych operacji zależnych od wyniku tego porównania. Tak jak w przypadku filtrów, wszelakie zmiany w obrazie dokonywane są tylko dla piksela odpowiadającego środkowemu składnikowi elementu strukturalnego. Przekształcenie morfologiczne różnią się zasadniczo od wszystkich dotychczas przedstawionych przekształceń, gdyż w zależności od wyniku porównania elementu strukturalnego z obrazem odpowiedni piksel może być zmieniony lub nie. W operacjach morfologicznych możliwa jest realizacja jednego z dwóch scenariuszy w zależności od wyniku porównania. Tak duże możliwości okupione są jednak złożonością obliczeniową i koniecznością stosowania jednostek o dużej mocy obliczeniowej. Operacje morfologiczne przeprowadza się najczęściej na obrazach binarnych na których przedstawione są pewne obiekty. Operacja najczęściej odnosi się do tych obiektów i ma je ukształtować w pożądany sposób Erozja Erozja jest operacją, która przeprowadzona na obiekcie spowoduje, że zostanie wygładzony jego brzeg. Wszystkie artefakty wystające poza obrys główny obiektu zostaną usunięte. Wielkości elementów usuwanych zależą od rozmiarów elementu strukturalnego. Poniżej przytoczona jest jedna z wielu definicji erozji. Przyjmijmy, że istnieje pewna figura X i element strukturalny E o środku w punkcie centralnym tego elementu. Erozją figury X elementem strukturalnym E jest zbiór wszystkich punktów centralnych elementów E, które w całości mieszczą się we wnętrzu figury X. 20

29 Wynikiem erozji jest zawsze figura o mniejszej powierzchni (w sensie ilości pikseli) niż figura wyjściowa. Najprostszym elementem strukturalnym erozji jest macierz samych jedynek. Przykładową erozję przedstawia poniższy rysunek. Rys Figura wyjściowa po lewej, w środku figura po jednej erozji elementem strukturalnym 3 3, z prawej figura po wykonaniu pięciu erozjach tym samym elementem Erozję można traktować jako filtr minimalny tj. taki, który każdemu elementowi przypisuje wartość minimalną z jego otoczenia. Otoczenie jest zdefiniowane przez wielkość elementu strukturalnego. Takie podejście pozwala na realizację tego przekształcenia dla obrazów monochromatycznych i kolorowych. W przypadku tych ostatni należy wykonać niezależnie erozje dla każdej składowej w przestrzeni RGB. Podstawowymi własnościami erozji są: generalizacja obszarów poprzez usuwanie drobnych wypustek usuwanie pojedynczych odizolowanych obszarów zmniejszanie powierzchni erozja podłużnym elementem strukturalnym wydobywa z obrazu fragmenty o zgodnym kierunku Dylatacja Dylatacja jest przekształceniem odwrotnym do erozji, które w ogólności można zdefiniować w następujący sposób: Przyjmijmy, że istnieje figura X i element strukturalny E o środku w punkcie centralnym tego elementu. Dylatacją figury X elementem E jest zbiór wszystkich środków elementów E, których chociaż jeden punkt należy do figury X. Wynikiem dylatacji jest zawsze figura większa w sensie ilości pikseli, niż figura początkowa. Elementem strukturalnym w tej operacji jest macierz składająca się z samych jedynek. Efekt dylatacji elementem o rozmiarach 3 3 jest przedstawiony na poniższym rysunku. 21

30 Rys Obraz oryginalny po lewej, po wykonaniu pojedynczej dylatacji w środku i po wykonaniu pięciu dylatacji po prawej. Dylatację przez analogię do erozji można traktować jako filtr maksymalny, tj. taki, który każdemu elementowi przypisuje wartość maksymalną z jego otoczenia. Wielkość otoczenia zależy od rozmiarów elementu strukturalnego. Dylatację tak samo jak erozję można w tym kontekście stosować do obrazów monochromatycznych i kolorowych. Podstawowymi własnościami dylatacji są: usuwanie z figury wąskich wcięć i zamykanie małych (w porównaniu z elementem strukturalnym) zatok uwypuklanie drobnych odizolowanych obszarów zwiększanie powierzchni łącznie bliskich obszarów w jeden Istnieje pewna odmiana dylatacji zwana dylatacją bez stykania krawędzi (ang. SKeleton by Influence Zone ) która zapewnia, że dwa sąsiadujące ze sobą obszary nie zostaną połączone w jeden. Dylatacja ta będzie podana w tzw. Alfabecie Golay a na końcu tego rozdziału Otwarcie i zamknięcie Operacje otwarcia i zamknięcia składają się z dwu powyższych przekształceń. Otwarcie to w pierwszej kolejności erozja, a następnie dylatacja. Zamknięcie odwrotnie, czyli w najpierw dylatacja, a następnie erozja obrazu. Obie operacje niezmienianą znacząco rozmiarów i kształtu figury (pod warunkiem, że są wykonane tym samym elementem strukturalnym), usuwają z niego natomiast pewne zniekształcenia powierzchni. Otwarcie niweluje drobne wypustki wystające poza główne ciało figury, zamknięcie natomiast eliminuje wcięcia w figurze. Właściwości te, wynikają z własności pierwszej operacji w obu przekształceniach. Drugie przekształcenie ma zazwyczaj na celu zniwelować zmianę powierzchni i kształtu figury jaka wiąże się z wykonaniem pierwszej operacji. Na poniższym rysunku przedstawione są wyniki obu przekształceń. 22

31 Rys Wynik operacji otwarcia po lewej i zamknięcia po prawej elementem strukturalnym o rozmiarze Detekcja ekstremów: Top-hat, Bottom-hat Wśród operacji morfologicznych istnieją dwa przekształcenia wykrywające ekstrema obiektów czyli jego ostre końce. Czubek kapelusza (Top-hat) jest operacją wykrywającą ekstrema wystające poza obszar główny figury. Przekształcenie to polega na wykonaniu otwarcia figury, a następnie odjęciu obrazu początkowego i przeprowadzeniu binaryzacji. Spód kapelusza (Bottom-hat) jest operacją znajdowania ekstremów wewnętrznych obszarów. Dokonuje się tego przeprowadzając binaryzację różnicy pomiędzy obrazem poddanym zamknięciu i oryginalnym. Rys Wyniki operacji Top-hat po lewej i Bottom-hat po prawej Operacja otwarcia kapelusza daje podobny rezultat to wykrywania krawędzi przy użyciu laplasjanu. W tym przypadku wynik jest jednak silnie zależny od wybranego elementu strukturalnego (jego kształtu i rozmiarów) a także od progu binaryzacji. Poniższy rysunek przedstawia wynik operacji Top-hat elementem strukturalnym (macierz składająca się z samych jedynek) o wymiarach 3 3 i laplasjanu. 23

32 Rys Wynik operacji Top-hat po lewej i laplasjanu po prawej Ścienianie i pogrubianie Ścienianie jest operacją wykrywającą kontury obszarów. Polega ono na porównaniu pikseli obrazu z elementem strukturalnym. Jeżeli układ pikseli jest zgodny, to pozostawiamy obraz bez zmian. Jeżeli natomiast piksele obrazu nie zgadają się ze wzorcem zapisanym w elemencie strukturalnym to piksel obrazu odpowiadający elementowi środkowemu zmieniamy na 0. W ścienianiu używane są elementy strukturalne przedstawione na rysunku 3.24, chociaż w praktyce stosuje się także wiele innych. Rys Elementy strukturalne używane w operacji ścieniania Operację ścieniania wykonuje się iteracyjnie, co oznacza, że rezultat poprzedniej operacji jest obrazem źródłowym dla następnej. Pętla jest przerywana gdy obraz wynikowy jest taki sam jak źródłowy. Rysunek 3.25 przedstawia wynik działania ścieniania. 24

33 Rys Wynik ścieniania Podobnie jak w przypadku erozji i dylatacji, także ścienianie ma operację odwrotną w postaci pogrubiania. Operacją pogrubiania polega na porównaniu pikseli obrazu ze wzorcem zapisanym w elemencie strukturalnym i na podstawie tego porównania wykonaniu jednej z dwu czynności. Jeżeli układ pikseli jest zgodny, to piksel obrazu odpowiadający środkowi elementu strukturalnego jest zmieniany na 1, jeżeli zgodności nie ma to pozostawiamy on jest bez zmian. Elementy strukturalne używane przy pogrubianiu to między innymi te przedstawione na rysunku Rys Elementy strukturalne pogrubiania. W celu otrzymania spodziewanych wyników operacje morfologiczne należy przeprowadzać jednakowo dla każdego brzegu figury. Żeby zrobić to prawidłowo należy czterokrotnie przeprowadzić jedną operacje, za każdym razem z elementem strukturalnym dopasowanym do odpowiedniego brzegu. Dlatego też elementami strukturalnymi w wielu przekształceniach morfologicznych jest jedna (bądź kilka zdecydowanie różnych) macierz, obracana o 90 0 przy realizowaniu operacji danego brzegu Szkieletyzacja i obcinanie gałęzi Szkieletem figury jest najmniejszy zbiór punktów, które w pełni opisują jej kształt i właściwości. Graficznie jest to zbiór punktów równoodległych od brzegów figury. Szkieletyzację wykonuje się jako ścienianie elementem strukturalnym o następującym wzorcu: 25

34 Rys.3.27 Element strukturalny szkieletyzacji. Obraz oryginalny i jego szkielet przedstawione są na rysunku 3.28: Rys Obraz oryginalny i jego szkielet. W większości przypadków obraz szkieletowy posiada gałęzie pochodzące z różnego rodzaju zakłóceń obrazu oryginalnego. Litery powyższego obrazu zostały celowo zakłócone, żeby pokazać jak wyglądają gałęzie i jakie zniekształcenia je generują. Najsłabiej zakłócona została litera G jednakże charakter tych zakłóceń jest najbardziej uciążliwy, dlatego też szkielet tej litery jest skomplikowany. Można by było uniknąć tego rodzaju zakłóceń stosując przed szkieletyzacją operację zamknięcia (w przypadku litery G ) oraz otwarcia (w przypadku litery A ). Litera H jest zakłócona w nieco inny sposób niż dwie poprzednie, i tutaj zamknięcie i otwarcie nie zniweluje powstałych gałęzi i trzeba je usunąć ze szkieletu. Służy do tego operacja usuwania gałęzi, która podobnie jak szkieletyzacja jest w zasadzie operacją ścieniania, ze specjalnie do tego przeznaczonym elementem strukturalnym. Obcinanie gałęzi jest realizowane w pętli której liczba iteracji zależna jest od użytkownika. Rys Szkielet bezpośrednio po operacji szkieletyzacji po lewej, oraz po obcinaniu gałęzi wykonanemu 30-to krotnie po prawej. W przypadku obrazu przedstawionego na rysunku 3.29 przed dkonaniem operacji szkieletyzacji zrealizowana została operacji zamknięcia i otwarcia elementem strukturalnym o wymiarach 3 3 piksele. Operacje te pomogły w sposób znaczący (szczególnie zamknięcie) i szkielety są dużo mniej skomplikowane. 26

35 3.4.7 Trafi- nie trafi Przekształcenie trafi nie trafi jest najprostszym ze wszystkich dotychczas przedstawionych przekształceń i jest też najbardziej uniwersalnym narzędziem. Polega ono, jak wszystkie operacje morfologiczne, na porównaniu obrazu z elementem strukturalnym. Jeżeli wynik tego porównania jest pozytywny (obszary są zgodne) to piksel wskazywany przez środek elementu strukturalnego jest zmieniany na 1, jeżeli wynik porównania jest negatywny, to odpowiedni piksel otrzymuje wartość 0. Odpowiednio dobrany element strukturalny może zmienić tą operację w erozję, dylatację itd. Przedstawione powyżej operacje morfologiczne są podstawowymi, a wyniki tych operacji w dużym stopniu zależą od elementu strukturalnego, jego wielkości i wzorca w nim zapisanego. Przy podawaniu definicji przekształceń morfologicznych, istotnym czynnikiem jest położenie środka elementu strukturalnego. W praktyce, jeżeli nie znajduje się on w punkcie centralnym, to obraz wynikowy jest przesunięty względem wyjściowego o odpowiedni wektor. Wynik operacji może się w tym przypadku różnić od oczekiwanego. W celu uszeregowania operacji morfologicznych i określeniu wyników jakie dzięki nim można uzyskać, zestawia się je w tabeli. Tabela ta w literaturze powszechnie znana jest pod nazwą Alfabet Golay a i jest przedstawiona poniżej. Tabela ta w całości pochodzi z [1] Tab. 3.1 Alfabet Golay a Symbol Element strukturalny Ścienianie Pogrubianie Trafi- nie trafi C D E F H I L M R Marker lub centroid Obcinanie gałęzi Detekcja brzegu Szkieletyzacja Szkieletyzacja Erozja liniowa Wypukłe otoczenie Przybliżenie wypukłego otoczenia SIKZ (L C a następnie E C ) SKIZ (L C a następnie E C ) Pogrubianie izolowanych punktów Dylatacja liniowa Detekcja punktów końcowych Detekcja punktów potrójnych Erozja Detekcja odizolowanych punktów 27

36 3.5 Analiza obrazu Analiza obrazu jest procesem polegającym w ogólności na wydobyciu z niego informacji istotnych ze względu na realizowane zadanie. Informacje te mogą być zarówno końcowym efektem całego procesu przetwarzania, jak również informacją pośrednią w jednym z etapów procesu obróbki. Zazwyczaj ilość danych jaka powstaje (na podstawie obrazu poddawanego analizie) jest dużo mniejsza od tej dotychczas przetwarzanej. Dzieje się tak ponieważ powstające informacje są opisem matematycznym obiektów w obrazie źródłowym, a nie tymi obiektami. Proces ten jest jednak złożony i może wymagać dużych nakładów obliczeniowych. Nie mniej istnieją przekształcenia klasyczne, które są przedstawione w kolejnych podrozdziałach Segmentacja i numerowanie Segmentacja jest procesem wyodrębniania z obrazu poszczególnych obszarów, na podstawie arbitralnie dobranego kryterium. Kryterium takim może być zarówno kolor jak i faktura czy stopień jasności obszarów. Wynikiem końcowym procesu segmentacji jest obraz binarny, w którym obszary o jasności 1 odpowiadają obiektom w obrazie. Istnieje możliwość ponumerowania znalezionych w procesie segmentacji obszarów. Operację taką nazywamy indeksowaniem ang. indexing. Jej wynikiem jest obraz monochromatyczny, w którym jednorodne odizolowane od siebie pola przyjmują kolejny numer w procesie wyliczania. Istnieje kilka sposobów realizowania procesu segmentacji, z których najważniejszymi są: Segmentacja przez rozrost obszaru. Segmentacja taka rozpoczyna się z dowolnego miejsca w obrazie, które spełnia zadane kryterium. Miejsce to jest oznaczane w obrazie wynikowym (początkowo składającym się z samych zer) poprzez ustawienie wartości piksela na 1.Do obszaru dołączane są wszystkie piksele sąsiadujące, które spełniają to samo kryterium. Proces jest kontynuowany dopóki wszystkie piksele sąsiadujące i jednocześnie spełniające kryterium nie zostaną dołączone. Proces segmentacji realizowany jest dla wszystkich pikseli obrazu źródłowego. Końcowym etapem tej części jest maska wycinająca całe obiekty. Segmentacja przez podział obszaru. Ten rodzaj procesu segmentacji polega na kolejnych podziałach obrazu źródłowego na części, a następnie sprawdzeniu czy obszary które zostały podzielone spełniają kryterium jednorodności. Jeżeli nie to obszar zostaje poddany dalszemu podziałowi. Jeżeli natomiast kryterium jest spełnione, to w obrazie wynikowym analogiczne piksele przyjmują wartość 1. W końcowym etapie wszystkie stykające się obszary są łączone w jeden i nadawana jest im kolejna wartość związana z procesem indeksacji. Podział obszaru może być stały tzn. zawsze jest on dzielony w ten sam sposób (przykładowo na 4 części) lub dynamiczny gdzie za każdym razem sposób podziału jest dobierany. Podział dynamiczny może być realizowany w oparciu o wynik działania gradientu, która to operacja rozgranicza różniące się od siebie obszary. Inne. Powszechnie stosowanymi sposobami segmentacji, są też algorytmy oparte na klasyfikatorach. W takim przypadku obraz w pierwszej kolejności jest przekonwertowywany do innej przestrzeni barw (przykładowo HSV lub CIExyz), aby następnie przy użyciu klasyfikatorów wydzielić obszary zainteresowania. Na koniec dokonuje się konwersji do wyjściowej przestrzeni barw (najczęściej RGB). 28

37 Segmentacja jest bardzo skutecznym sposobem interpretowania zawartości obrazu i wyodrębniania w nim obiektów o zadanych cechach. Często w przypadku analizowania złożonych obrazów, po pierwszej segmentacji, przeprowadza się ją jeszcze raz z nieco osłabionym kryterium. W tym przypadku nie rozpatruje się jednak całego obrazu, a tylko obszary przylegające do znalezionych w pierwszym etapie obiektów. Podejście takie ma swoje uzasadnienie w przypadku nierównomiernego oświetlenia obiektów, bądź innego rodzaju zakłóceń. Szczegółowa realizacja indeksowania jest przedstawiona w [1]. W obrazie przedstawionym na rysunku 3.31 w pierwszej kolejności zrealizowana została segmentacja, a następnie indeksacja obiektów. Rys Obraz oryginalny po lewej oraz po wykonaniu segmentacji i numerowaniu po prawej Przedstawione powyżej operacje nie opisują obiektów znajdujących się w obrazie, nie mniej są istotne przed przystąpieniem do tego opisu Współczynniki kształtu Do opisu matematycznego obiektów służą różnego rodzaju współczynniki. Wśród nich rozróżniamy współczynniki kształtu, momenty bezwładności i inne. Kilka podstawowych współczynników przedstawiono poniżej. pole powierzchni- jest w zasadzie ilością pikseli obiektu. długość konturu zawartość (3.7) gdzie L jest długością konturu obiektu, a S powierzchnią tego obiektu. centryczność (3.8) gdzie L H jest odległością od środka ciężkości obiektu do dalej położonego końca w osi poziomej, a L V jest odległością od środka ciężkości obiektu do dalej położonego końca w osi pionowej. 29

38 współczynnik Fereta (3.9) gdzie D H jest rozpiętością figury w poziomie, a D V jest rozpiętością figury w pionie. prostokątność (3.10) gdzie S jest polem obiektu, a P P jest polem najmniejszego prostokąta opisanego na figurze. współczynnik cyrkularności (3.11) współczynnik Malinowskiej. Mierzy stopień krągłości obiektu, i jest niezależny od wielkości. (3.12) Powyższe współczynniki są szybko wyznaczalne, okupione to jest jednak małą dokładnością opisu. W przypadku tych współczynników zmiana rozmiarów, czy ułożenia (szczególnie obrót) obiektu powodują zmianę wartości tych współczynników. Ponadto wartości współczynników nie wykazują dużej zmienności dla podobnych figur (przykładowo ośmiokąt i koło). Nieco bardziej skomplikowane i dłuższe w wyznaczaniu są współczynniki o wzorach 3.13 do 3.15 współczynnik Blair -Bliss Mierzy stopień wydrążenia obiektu, jest niezależny od wielkości i unormowany. (3.13) gdzie r i jest odległością piksela od środka ciężkości obiektu, sumowania dokonujemy po wszystkich pikselach obiektu wyliczanych przez i. współczynnik Danielssona (3.14) gdzie l i jest minimalną odległością piksela obiektu od konturu tego obiektu, a S jest powierzchnią obiektu. współczynnik Haralicka (3.15) gdzie d i jest odległością i-tego piksela konturu od środka ciężkości figury, a n liczbą pikseli konturu. 30

39 3.5.3 Momenty główne i centralne Prócz współczynników kształtu do opisu matematycznego obiektów mogą służyć tzw. momenty oraz niezmienniki momentowe. Wzory opisujące te wielkości są w ogólności dobrze znane i stosowane w wielu dziedzinach nauki, (najszerzej są stosowane w mechanice). Poniżej przytoczone są wzory definiujące momenty w dziedzinie dyskretnej. momenty główne (3.16) Rząd momentu określają p i q i dla pq=00 mamy moment rzędu 0 który jest polem powierzchni figury. Momenty rzędu 1 czyli 01 i 10 określają położenie środka ciężkości figury względem osi X i Y a współrzędne tego środka można wyznaczyć stosując wzór 3.17 (3.17) momenty centralne (3.18) Moment centralny rzędu trzeciego opisuje (przez analogię do statystyki) atrakcyjność konturu, czyli jak bardzo jest on różny od okręgu. Moment rzędu trzeciego mówi o stopniu symetryczności figury. moment centralny znormalizowany (3.19) niezmienniki momentowe (3.20a) (3.20b) (3.20c) (3.20d) Niezmienników momentowych jest wiele więcej, a wzory je opisujące można znaleźć w bogatej literaturze matematycznej. Często jednak podaje się je w innych formach i stosując inne oznaczenia. Najczęściej przytaczanym jest niezmiennik opisany wzorem 3.20d i występuje on pod symbolem M7 lub W7. Wszystkie mają jedną wspólną cechę, ich wartość jest stała bez względu na położenie, obrót i wielkości figury którą opisują. W dodatku przedstawione jest badanie wartości niezmienników momentowych oraz wybranych współczynników kształtu w zależności od figury jaką opisują. 31

40 4. Praktyczne wykorzystanie przekształceńznajdowanie znaków w obrazie W pierwszej części tego rozdziału przedstawione zostaną metody znajdowania znaków w obrazie lub sekwencjach obrazów. Przytoczone metody analizy koloru i kształtu, w szczególności metoda transformaty radialnej, maszyna SVM zaprezentowana przez dr Bogusława Cyganka w [9], oraz zastosowany w pracy algorytm są redagowane na podstawie znalezionych opracowań tych metod. Dwie spośród nich zostały zaimplementowane w Matlabie i sprawdzone pod względem poprawności działania, obie są szczegółowo omówione w odpowiednich podrozdziałach. 4.1 ROI (ang. Region Of Interest ) charakter i właściwości znaków Pojęcie ROI często jest wykorzystywane przy przetwarzaniu oraz analizie obrazów i najogólniej oznacza fragmenty obrazu istotne z punktu widzenia realizowanego zadania. W przypadku niniejszej pracy ROI będzie określało obszary w których znajdują się znaki drogowe. Moduł detekcji ma za zadanie obszary te w obrazie wejściowym odnaleźć i przekazać w odpowiedniej formie do dalszego przetwarzania. W pierwszej kolejności należy więc określić podstawowe cechy jakie opisują znaki drogowe z trzech grup A, B i C aby prawidłowo zaprojektować moduł detektora. Znaki drogowe w Polsce a także na świecie są unormowane, i choć ich kształt i kolor jest w wielu krajach nieco inny, to można wyznaczyć ich podstawowe cechy: do znaków stosowane są proste figury geometryczne takie jak okrąg, prostokąt, trójkąt równoramienny, ośmiokąt foremny oraz rąb. znaki zakazu są okrągłe, mają czerwone obramowanie i biały lub żółty środek (przykładowo znak Zakaz wjazdu ) znak stop na całym świecie jest czerwonym ośmiokątem z napisem STOP w środku. znaki ostrzegawcze mają kształt trójkąta z czerwonym obramowaniem i żółtym lub białym wnętrzem, w którym czarnym kolorem jest oznaczony obiekt lub zjawisko do którego znak się odnosi i przed którym przestrzega. znaki nakazujące kierunek jazdy, a także informujące o organizacji ruchu na drodze są koloru niebieskiego z białym lub czarno-białym rysunkiem w środku. Na podstawie zebranych obrazów prezentujących znaki w różnych otoczeniach, warunkach oświetleniowych i sytuacjach drogowych, wyznaczono histogramy kolorów występujących w znakach. Zbiór testowy nie jest duży i zawiera 100 znaków, dlatego też wyniki tej analizy zestawiono z wynikami przedstawionymi w [4]. We wnioskowaniu tym wykorzystano reprezentację w przestrzeni HSV, a wyniki przedstawia rysunek 4.1. Przyjęto, że zbiór ten stanowi pewnego rodzaju wzorzec, na którym będzie się opierała analiza przedstawiona w części 4.3 tego rozdziału. Grupa testowa składa się ze znaków dobrej jakości tzn. takich które nie są wyblakłe, pomalowane na inny kolor lub widziane przez filtr koloru. Nie mniej istnieją znaki, których kolory zupełnie nie pasują do zaprezentowanych tu przykładów, w algorytmach analizujących kolory zostaną one więc odrzucone. Częstym przypadkiem, w którym kolor znaku nie pasuje do zaprezentowanych tu wzorców jest oświetlenie obiektywu kamery przez słońce, lub nadjeżdżający z naprzeciwka samochód. W takim przypadku postrzeganie kamery zostaje zakłócone i znak o prawidłowych barwach jest widziany jako niepoprawny kolorystycznie. 32

41 Rys. 4.1 Histogramy składowych H i S znaków drogowych Wspomniane wcześniej proste figury geometryczne, jakie są wykorzystane w znakach drogowych, mogą ulec wypatrzeniu. Najprostszym przypadkiem zniekształcenia jest obserwowanie znaku pod kątem, wtedy nawet bardzo regularny i dobry znak nie posiada wystarczającej liczby osi symetrii. Może to zaowocować odrzuceniem takiego obiektu w algorytmach opartych o analizę kształtu. Znaki mogą być także obrócone względem swojego prawidłowego ułożenia, albo zniszczone przez chuliganów lub na skutek wypadków drogowych. Istotną sprawą, jaką należy rozpatrzyć, jest zasadność znajdowania takich zniekształconych znaków w obrazie poddawanym analizie 4.2 Stosowane metody detekcji znaków Istnieje wiele metod wyznaczania obszarów zainteresowania w obrazie, dzielą się one na trzy podstawowe grupy: Metody oparte o analizę kształtu. Metody oparte o analizę koloru i/lub tekstury Mieszane W rozpoznawaniu znaków najbardziej popularne są metody realizowane w oparciu o analizę kolorystyczną a także mieszane. Rzadko stosowane są metody oparte o analizę kształtu, mimo to detektor taki został zbudowany przez Gareth Loy i Nick Barnes i przedstawiony w [14]. Autorzy przy realizowaniu projektu wykorzystali Szybką Symetryczną Transformatę Radialną (ang. Fast Radial Symetry Transform ) która umożliwia znalezienie w obrazie obiektów symetrycznych lub symetrycznie względem siebie ułożonych. Opis dość prostego przypadku FRST znajduje się między innymi w [15]. Popularność metod wykorzystujących kolor do detekcji znaków wynika z mnogości narzędzi i przekształceń możliwych do wykorzystania. Duża liczba przestrzeni barw, 33

42 począwszy od RGB i HSV po bardzo zaawansowane, jak CIECAM97 w połączeniu z różnorodnością narzędzi grafiki komputerowej sprawia, że analiza kolorystyczna jest powszechnie stosowana. Metody i algorytmy działania przy analizie kolorów zostały na przestrzeni lat dopracowane, a wyniki ich działania są powtarzalne i z góry znane. W przypadku metod opartych o analizę kształtu istnieje zaledwie kilka przekształceń umożliwiających realizację detektorów tym sposobem. Do najpowszechniejszych należą Transformata Hougha i wspomniana wyżej transformata radialna, oba przekształcenia są jednak czasochłonne i wymagają sporego nakładu obliczeniowego. W następnych podrozdziałach przedstawione są detektory zbudowane z wykorzystaniem obu podejść, a na koniec są one ze sobą porównane Analiza kształtów W pracy podjęto próby zrealizowania programu podobnego do tego przedstawionego w [14]. Próby te nie przyniosły jednak zadowalających wyników, co spowodowało, że zaniechano dalszej pracy nad tym algorytmem na rzecz innego przedstawionego w rozdziale 4.3. W przytaczanej pracy [14] szybka transformata radialna została nieco zmodyfikowana i udoskonalona pod względem przydatności do stawianego jej zadania. Zagadnienie odnajdowania i rozpoznawania znaków w oparciu o kształt figur wymaga wprowadzenia pojęcia metryki. Przestrzeń, w której metrykę tą należy zdefiniować jest przestrzenią typu lub, co powoduje, że najczęściej stosowane są powszechnie znane metryki: Euklidesowa i wartości bezwzględnej. W pracy zastosowano metrykę Euklidesową, a poniżej przedstawiono kolejne etapy działania algorytmu. Obraz krawędziowy. Pierwszą operacją w algorytmie jest wytworzenie obrazu krawędziowego. Obraz taki uzyskiwany jest poprzez filtrację w przestrzeni RGB maską Sobela. Gradient. Następnie dla każdego piksela obrazu krawędziowego określana jest wartość oraz kąt gradientu. Kąt jest zapisany jako dwuelementowy unormowany wektor, a składowe w sposób pośredni określają jego wartość. Analiza wektorowa pozwala tak zapisany kąt obracać, przykładowo obrót o kąt 90 0 to przypisanie W dalszej kolejności następuje progowanie, które z obrazu krawędziowego usuwa piksele o małej wartości pozostawiając tym samym proste związane z gwałtownymi zmianami barwy w obrazie źródłowym. Proste głosujące. Wektor piksela wyznacza prostą prostopadłą do linii krawędziowej na której leży. Następnie na prostej tej w odległości od piksela i w kierunku wskazywanym przez tworzony jest punkt, a po przeciwnej stronie piksela w takiej samej odległości punkt. Tym sposobem punkty i leżą na jednej prostej prostopadłej do linii krawędziowej w punkcie. Punkty i są środkami odcinków odpowiednio i, które z kolei są równoległe względem siebie i względem stycznej do linii krawędziowej w punkcie. Ułożenie punktów, i oraz prostych i przedstawione jest na rysunku

43 Rys. 4.2 Punkty i proste głosujące. Długość odcinków i zależy od kształtu poszukiwanego obiektu oraz aktualnej wartości odległości i są one wyznaczane na podstawie gdzie oznacza ilość boków poszukiwanego kształtu, przykładowo dla trójkąta (4.1a) Głosowanie. W obrazie wynikowym punkty pokrywające się z lub są punktami głosującymi. Te leżące w odległości mniejszej niż od odpowiednio lub głosują pozytywnie (+1) a te bardziej odległe negatywnie (-1). Zbiory punktów głosujących pozytywnie i negatywnie mogą być zapisane jako [14] (4.1b) gdzie oznacza odległość między punktami i, a według [14] Liczenie głosów. Głosowanie jest przeprowadzane dla każdego piksela w obrazie krawędziowym, a głosy poszczególnych głosowań są sumowane i stanowią wynik działania pojedynczej iteracji algorytmu. Piksel obrazu wynikowego zbierze zatem wiele głosów pozytywnych tylko wtedy, gdy wiele pikseli obrazu krawędziowego będzie miało swoje wektory skierowane w jego stronę, lub w stronę przeciwną. Piksel wynikowy z dużą ilością głosów pozytywnych jest pretendentem na środek znaku. Jednakże ze względu na fakt, że nie jest znany a priori rozmiar i kształt znaku, głosowanie należy przeprowadzić wielokrotnie dla różnych wartości i a poszczególne obrazy wynikowe ze sobą zsumować. Wynik działania algorytmu dla pojedynczej iteracji jest przedstawiony na rysunku

44 Rys. 4.3 Wynik działania operacji znajdowania środka znaku na podstawie modułu gradientu. Obraz kątowy. Autorzy [14] podają, że w algorytmie obliczany jest także drugi obraz wynikowy. Każdy znak składa się ze skończonej liczby odcinków prostych, które są usytuowane względem siebie o z góry znany kąt. Kąt ten jest określony jako [14] (4.2) Informacja ta jest wykorzystana, przy tworzeniu drugiego obrazu wynikowego. Kąt każdego gradientu jest przemnażany, przez liczbę brzegów poszukiwanej figury (3 dla trójkąta, 4 dla prostokąta itd.) z uwzględnieniem okresowości miary kątowej tzn. kąt przyjmuje wartości z zakresu [ ]. Powstały w ten sposób wektor jest analogicznie jak w pierwszym obrazie wynikowym, głosem oddawanym na odcinakach głosowania i. Głos ten jest pozytywnym, wtedy moduł wektora jest dodawany, lub negatywnym kiedy jest on odejmowany od obrazu. Granice głosowania pozytywnego i negatywnego są takie same jak w pierwszym obrazie wynikowym. Drugi obraz wynikowy mówi zatem o rozmieszczeniu względem siebie linii krawędziowych, a więc o kształcie figury. Tak samo jak w pierwszej części algorytmu analizę należy przeprowadzić kilkakrotnie dla różnych wartości odległości i poszukiwanego kształtu (zmiennej ). Przykładowy drugi obraz wynikowy pokazany jest na rysunku

45 Rys.4.4 Wynik operacji znajdowania środka znaku na podstawie kąta. Końcowym etapem procesu znajdowania znaków tą metodą jest wyznaczenie środka znaku na podstawie dwu obrazów wynikowych. W tym celu należy unormowane wartości pikseli obu obrazów wymnożyć przez siebie, a następnie odnaleźć w obrazie piksele o wartości zbliżonej do 1. Obrazy wynikowe pierwszy i drugi wyznacza się równolegle w jednym obiegu pętli analizującej wszystkie piksele. Wynik końcowy przedstawiony jest na rysunku 4.5 gdzie poszukiwanie było przeprowadzone dla znaku ostrzegawczego. Najpoważniejszą wadą tej metody, poza dość dużym obciążeniem jednostki obliczeniowej jest problem z normowaniem kolejnych obrazów. Na etapie prób i testowania algorytmu nie udało się znaleźć prawidłowej funkcji normalizującej, a jedynie pewne niedoskonale oszacowania. Każdy obraz należy przeanalizować kilkakrotnie, dla różnych wartości odległości R ze wzoru (4.1a) oraz dla różnych wartości parametru n ze wzoru (4.2). Analiza ta jest długotrwała i w efekcie nie daje zadowalających wyników, co było powodem dla którego zaniechano dalszych prac nad tym algorytmem. Rys.4.5 Wynik końcowy metody 37

46 4.2.2 Analiza koloru Drugą grupę metod detekcji znaków i wyznaczania rejonów zainteresowania stanowią metody oparte o analizę kolorów i faktury. Sposobów realizacji detektorów znaków tą metodą jest wiele, a poniżej przedstawionych jest kilka przykładowych. Różnią się one podejściem autora, stopniem skomplikowania, a także formalizmem matematycznym. Niektóre bowiem opierają się o analizę matematyczną obrazu jako macierzy liczb, podczas gdy inne oparte są o wyczucie autora. Poniżej przytoczone zostały skrótowe opisy kilku interesujących metod. Metoda znajdowania znaków przedstawiona w [10] jest realizowana z wykorzystaniem przestrzeni CIELab. W pracy tej zastosowano rozpoznawanie oparte o Gaussowskie modele znaków. Model taki przewiduje, że dla każdego koloru jaki występuje w znakach wyznaczona jest wartość oczekiwana oraz macierz kowariancji. Rozpoznawanie znaków oparte jest o zmodyfikowaną wersję klasyfikatora Bayesa. Wynikiem klasyfikacji są oznaczone obszary znaków, które podlegają dalszemu przetwarzaniu. Ponadto po poprawnym znalezieniu i rozpoznaniu znaku następuje aktualizacja modelu, dzięki czemu dostosowuje się on samoczynnie do znaków występujących w rzeczywistości. Wszystkie oznaczone piksele są następnie poddawane indeksowaniu czyli łączeniu w spójne obszary będące regionami zainteresowania ROI. Autorzy projektu wykorzystują także charakter danych napływających z kamery, należy bowiem pamiętać, że analizowane są nie pojedyncze obrazy, ale ich serie czasowe i fakt ten został wykorzystany. W pracy zrealizowano bowiem śledzenie znaków, co oznacza, że nawet pojedyncze błędne rozpoznanie nie powoduje utraty funkcjonalności. W pracy Michaela Shneiera [11] operacje realizowane są w przestrzeni RGB. W pierwszej kolejności wyznaczany jest stosunek zawartości barw względem siebie, następnie trzy obrazy wynikowe tj. R/G, G/B i R/B są jednocześnie poddawane binaryzacji z odpowiednimi progami. Zastosowane progi nie są krytyczne tzn. powinny mieć odpowiednie wartości, jednak niewielkie ich odchyłki nie wpływają na działanie algorytmu. Wynikiem tych operacji jest obraz binarny, w którym znajdują się pola odpowiadające kandydatom na znaki, przy czym wszystkie rodzaje znaków znajdują się w jednym obrazie. Istnieje także możliwość otrzymania osobnych obrazów dla każdego rodzaju znaku (bazując na ich kolorach). W takim przypadku konieczna jest jednak oddzielna binaryzacja obrazów R/G G/B i R/B. Autor zastosował pierwsze podejście, z jednym obrazem binarnym. W następnej kolejności należy wykonać erozję w celu usunięcia zakłóceń w postaci niewielkich pól pikseli, oraz trzykrotną dylatację mającą na celu wypełnienie nieciągłości znaków. Istnieje bowiem zagrożenie, że w wyniku nierównomiernego oświetlenia, bądź częściowego zasłonięcia znaku jego kształt będzie nieregularny, a pole niejednorodne. Tak przygotowany obraz podlega segmentacji i indeksacji. Każdemu segmentowi są następnie przyporządkowywane parametry, autor zastosował następujące: centroid (w niniejszej pracy parametr ten jest nazwany środkiem ciężkości obiektu), pole powierzchni, najmniejszy prostokąt opisany na figurze (ang. bounding box ). Parametry te wykorzystane są przy selekcji obiektów, odrzucane są te o zbyt małym lub zbyt dużym polu powierzchni, których bounding box jest zanadto prostokątny, lub których położenie w obrazie nie pasuje do miejsca, gdzie znaki zazwyczaj występują. Pozostają więc tylko obiekty, które najprawdopodobniej reprezentują znaki, i to one są poddawane dalszemu przetwarzaniu. Obiekty, które zostały sklasyfikowane jako zawierające znaki są śledzone w kolejnych obrazach napływających z kamery, jeżeli w pięciu kolejnych klatkach obiekt jest rozpoznany jako zawierający znak, to tworzy on dla tego znaku maskę wycinającą. Przedstawiony algorytm jest więc bardzo prosty, i jak podaje autor, daje dość dobre wyniki. Najbardziej zaawansowany algorytm detekcji znaków z jakim spotkał się autor tej pracy został przedstawiony w [12]. Procedura ta zrealizowana jest w oparciu o detektory kolorów i kształtu. Regiony zainteresowania wyznaczane są na podstawie kolorów w 38

47 przestrzeni HSV. W pierwszej kolejności dokonywana jest binaryzacja na podstawie dwu składowych H i S z progami T H i T S, następnie obszar ten uzupełnia się o piksele należące do znaku. Uzupełnienie to także jest procesem binaryzacji, ale z progami t H i t S mniejszymi od tych w pierwszym podejściu i przy zachowaniu warunku sąsiedztwa. Pikselom zostaje przypisana wartość 1 w procesie binaryzacji, jeżeli ich składowe H i S przekraczają progi t H i t S oraz gdy w najbliższym sąsiedztwie znajdują się piksele, które w pierwszym podejściu zostały sklasyfikowane jako należące do znaku. Tak powstały obraz binarny jest dzielony na obszary zewnętrza i wnętrza znaku. Obszary zewnętrzne to takie, które mają połączenie z brzegiem obrazu, tzn. istnieje ciągła ścieżka prowadząca od piksela do co najmniej jednego brzegu obrazu. Jak podaje autor wyznaczanie zewnętrza rozpoczynane jest od brzegów obrazu przemieszczając się w kierunku jego środka i oznaczając piksele (którym w obrazie binarnym odpowiadają 0 ) jako zewnętrzne. Jeżeli ścieżka trafi w piksele sklasyfikowane w pierwszej części jako 1 (brzeg znaku) to zostają one ominięte bez zaznaczenia. Procedura kontynuowana jest, aż do środka obrazu, a jej wynikiem jest powstały obszar zewnętrza. Jako wnętrze traktowana jest pozostała część obrazu. Kolejnym etapem jest znalezienie krawędzi rozdzielającej zewnętrze od wnętrza znaku czyli jego brzegu, zrealizowane to jest na zasadach sąsiedztwa. Brzegiem jest ten piksel wnętrza, którego chociaż jeden sąsiad należy do zewnętrza znaku (od którego rozpoczyna się procedura). Następnie dokonywana jest indeksacja wyznaczonych krawędzi i do każdej z nich dopasowywany zostaje kontur znaku. Jeżeli dopasowanie jest zgodne tzn. różnica pomiędzy krawędzią, a kształtem dopasowującym jest niewielka to obszar ten jest rozpoznany jako znak. Dopasowanie kształtów dokonywane jest na podstawie rogów figury (patrz operacja Top-Hat ) i układu linii łączących sąsiadujące ze sobą punkty. Ponieważ autor skupiał się w prezentowanym algorytmie na znakach trójkątnych, toteż etap dopasowania kształtu nie uwzględnia znaków okrągłych (które nie mają wierzchołków). Zaprezentowane podejście ma tą przewagę nad pozostałymi, że umożliwia znalezienie znaku na tle obszaru o takim samym kolorze jak brzeg znaku. Innowacyjne podejście do problemów detekcji znaków przedstawione jest w [9] autor dr Cyganek w swojej pracy realizuje wstępne przetwarzanie prowadzące do wyznaczenia obszarów zainteresowania w jednym etapie. Do obrazu wejściowego w przestrzeni RGB zastosowana jest maszyna wektorów wspierających (ang. Support Vector Machine ), która jako wynik swojej pracy przedstawia obraz z zaznaczonymi obszarami znaków. Maszyna ta analizuje układ pikseli i na podstawie ich koloru i ułożenia odnajduje w obrazie wejściowym obszary zainteresowania, autor etap ten nazywa segmentacją kolorów. Następnie znalezione obiekty są poddawane adaptacyjnemu dopasowaniu kształtu, etap ten generuje opis właściwości geometrycznych obiektów, a więc możliwe jest odrzucenie obiektów, które nie pasują kształtem do znaków. Wszystkie pozostałe obiekty są rejestrowane, oraz dla każdego z nich są tworzone macierze przekształcenia afinicznego, które będą wykorzystane na etapie klasyfikacji. Tak przygotowane obiekty są następnie poddawane transformacji Log- polar, oraz binaryzacji. Autor zastosował binaryzację adaptacyjną, w której próg leży pomiędzy wartością jasności piksela równą 128 a maksimum występującym w histogramie. Z powstałego obrazu binarnego wydobywane są cechy, które będą podlegały klasyfikacji w bloku klasyfikacji. 39

48 4.2.3 Porównanie metod Na podstawie przytoczonych tu przykładów, a także ich realizacji w Matlabie można wysnuć pewne wnioski dotyczące skuteczności oraz szybkości działania przedstawionych metod detekcji. Algorytmy badające kształt są skomplikowane matematycznie, wymagają analizy wzorów i poprawnej interpretacji wyników najczęściej przy tym nie posiadających interpretacji fizycznej. Podejście to zawiera jednakże stosunkowo niewielką ilość operacji składowych. Przedstawiona metoda zmodyfikowanej Szybkiej Transformaty Radialnej była czasochłonna i w rezultacie nie dawała satysfakcjonujących wyników. Przytoczone metody znajdowania rejonów zainteresowania oparte o analizę kolorów dawały lepsze wyniki, niż wspomniana wyżej metoda. Na podstawie, przedstawionej w następnym podrozdziale implementacji można powiedzieć, że metody wykorzystujące analizę kolorów są dużo szybsze. Ilość pojedynczych prostych operacji, jakie należy przeprowadzić jest jednak stosunkowo duża, a niektóre z nich są wprowadzone w celu usunięcia wad poprzednio wykonanej. Początkowe operacje w tych algorytmach są stosunkowo proste, polegają na zamianie przestrzeni barw, filtracji, binaryzacji itd. Problemy pojawiają się natomiast w dalszych częściach algorytmów, gdzie należałoby odrzucić obiekty nie pasujące do znaków. Czyste sposoby wyznaczania ROI na podstawie koloru tego nie realizują. Powoduje to, że do dalszego przetwarzania przekazywana jest duża liczba obiektów nie będących znakami (ang, false positive ). Problem ten, a także wiele innych (z jakimi spotkał się autor pracy podczas budowy algorytmu), we wszystkich przytoczonych wyżej przykładach zostały rozwiązane poprzez wprowadzenie bloku analizującego kształt. Autor także zastosował to podejście wprowadzając na samym końcu blok klasyfikatora SVM. Tym sposobem w algorytmie analizującym kolor znalazł się blok analizy kształtu, a cała metoda należy w zasadzie do grupy metod mieszanych. Należy tu jednak zaznaczyć granicę pomiędzy metodami. W metodach opartych o analizę kształtu, operacje matematyczne są wykonywane dla całego obrazu wejściowego, bez dzielenia go na części. W metodach analizy koloru wszystkie operacje są realizowane ze względu na barwę i dążą do wyznaczenia interesujących obszarów. Najlepszym, i najczęściej stosowanym sposobem zbudowania detektora, jest zastosowanie metod łączonych tzn. zastosowanie metod analizy koloru i kształtu jednocześnie. W algorytmach zbudowanych według tej idei początkową operacją jest zmniejszenie liczby danych poprzez analizę kolorów, i wybranie z obrazu wejściowego tylko tych obiektów, które mają odpowiednią barwę. Dopiero tak przygotowane dane są dzielone na podobszary i podlegają analizie kształtu, która w tym przypadku jest bardzo skutecznym narzędziem. Określa ona czy dany obiekt znaleziony w pierwszej części jest zbliżony kształtem do figur znaków, i odpowiednie obiekty stanowią odpowiedź detektora. Metody wymienione jako analizujące kształt nie uwzględniają tej pierwszej operacji (ograniczania liczby danych), lecz od razu skupiają się na poszukiwaniu figur geometrycznych, przez co są dużo bardziej skomplikowane. 40

49 4.3 Zastosowana metoda detekcji znaków W pracy zastosowano metodę detekcji znaków należącą do grupy mieszanej tj. wykorzystującej jednocześnie analizę koloru i kształtu. Podejście takie pozwala wykorzystać walory obu tych sposobów i dzięki temu istnieją realne szanse na zwiększenie skuteczności i szybkości działania. W pracy wykorzystano algorytm oparty o ten zaprezentowany przez Saturnino Maldonado Bascon, i innych i przedstawiony w [13]. Schemat blokowy przedstawiający idee działania znajduje się na rysunku. 4.6 Obraz wejściowy Funkcje przynależności RGB do HSV LUT Operacje morfologiczne I Sumowanie obrazów Operacje morfologiczne II Wycięcie obszaru znaku Sprawdzenie kształtu- SVM Rozdzielanie obszarów Wektory brzegowe Obraz wyjściowy Rys. 4.6 Schemat ideowy bloku detektora W pierwszej kolejności realizowana jest zmiana przestrzeni barw z RGB na HSV. Algorytm do tego służący opisano w [20], [21], [8]. Powszechnie dostępne są też aplikacje prezentujące taką zamianę, a także gotowe funkcje napisane w różnych językach programowania. Konwersję taką można zapisać wzorami (4.3) [8]. (4.3) gdzie 41

50 Następnym etapem jest znalezienie obszarów o kolorach zbliżonych do tych występujących w znakach. W rozdziale 4.1 przedstawiono histogramy składowych h i s znaków i na tej podstawie oraz na postawie wykonanych testów wyznaczono funkcje przynależności (ang. Membeship function) przedstawione na rysunku 4.7. Rys 4.7 Funkcje przynależności dla składowych h i s dla trzech kolorów znaków W celu wyznaczenia obszarów zainteresowania posłużono się metodą odczytu wartości z tablicy LUT (ang. Look Up Table ). Składowa h każdego piksela jest interpretowana jako adres w tablicy z której odczytywana jest przynależność tego piksela do znaku. W tablicy tej zapisane są kolejne wartości funkcji przynależności, a każdy rodzaj znaku (grupy A, B, C i D) ma swoja tablicę. Jeżeli analizowany piksel posiadał składową h o wymaganej wartości, to odczytana wartość wynosi 1, jeżeli wartość ta nie odpowiadała kolorowi znaku, to odczytane zostało 0. Operację LUT przeprowadza się analogicznie dla składowej s wykorzystując odpowiednie tablice z funkcjami przynależności. W celu znalezienia w jednym obrazie znaków wszystkich grup (A, B, C i D) konieczne jest więc przeprowadzenie operacji odczytu z tabeli- LUT sześciokrotnie. Następnie dla każdego koloru wymnażane ze sobą są odpowiedzi poszukiwania dla składowych h i s co w rezultacie skutkuje powstaniem trzech obrazów częściowych. Podejście takie gwarantuje, że znalezione obszary zainteresowania mają obie składowe o odpowiednich wartościach, a więc z dużym prawdopodobieństwem są to znaki. Kolejnym etapem jest operacja zamknięcia i otwarcia przeprowadzana w celu usunięcia zakłóceń i nieciągłości w znalezionych obszarach. Operacja ta jest przeprowadzana na każdym z trzech obrazów częściowych. Następnie są one ze sobą sumowane i poddawane operacji otwarcia po raz drugi, żeby usunąć pozostałe zakłócenia. W rozdziale 6.1 jest przeprowadzana analiza wpływu operacji morfologicznych na obrazie na skuteczność działania algorytmu. Na rysunku 4.8 przedstawiony jest przykładowy obraz oraz jego trzy obrazy częściowe. W obrazach częściowych zostały odwrócone kolory tzn. czarne obszary odpowiadają teraz wartościom 1, białe natomiast wartościom 0. Zamiana ta została dokonana celem poprawienia czytelności wyników. 42

51 Rys 4.8 Obraz oryginalny oraz jego trzy obrazy częściowe Obrazy częściowe przedstawiają nie tylko obszary znaków, ale również tych przedmiotów, których kolor był zbliżony do kolory znaku i został zakwalifikowany jako potencjalny znak. W zależności od oświetlenia obrazu, a także treści znaku mogą się pojawić również odbicia i refleksy, których kolor będzie zbliżony do kolorów poszukiwanych znaków. W takim przypadku zakłócone mogą być wszystkie trzy obrazy częściowe. Przygotowany w pierwszej części algorytmu obraz zajmuje dużo mniejszy obszar w pamięci komputera, i zarazem dostęp do niego jest dużo szybszy. Dogodniejszy są więc bardziej skomplikowane operacje, spośród których pierwszą jest indeksacja. Zaznaczone obszary są w dalszej kolejności sprawdzane pod względem prostokątności i powierzchni. Dla obszarów o powierzchni z przedziału 500 do 100 tys. pikseli i stopniu prostokątności od 0.8 do 2.1 są wyznaczane wektory brzegowe. Idea budowy wektora przedstawiona jest na rysunku Wektory brzegowe 43

52 Wektor brzegowy to zbiór odległości brzegu figury od brzegu najmniejszego prostokątnego obrysu wyznaczana w kierunku pionowym lub poziomym. W celu wyznaczenia tych odległości skaluje się wybrany obszar do rozmiarów odpowiadających długości wektora. Wyznaczenie zestawu wektorów o długościach 50 elementów każdy wymaga przeskalowania obszaru do rozmiarów pikseli. W pierwszej kolejności brane pod uwagę są dwa górne wektory, a więc opisujące figurę po bokach. Na podstawie tych wektorów sprawdzane jest czy obszar nie przedstawia dwóch znaków wobec których nie zachowano rygorów odległościowych. Wektory te można traktować jako zbiór wartości pewnej funkcji odcinkami liniowej. Na podstawie kilku pierwszych wartości wyznaczany jest współczynnik kierunkowy, a następnie dokonywane jest sprawdzenie, czy wartość następnego elementu jest zgodna z przewidywaniami z dokładnością do kilku pikseli. Współczynnik kierunkowy jest z każdym krokiem uaktualniany tak, żeby prognozowanie było prawidłowe nawet dla okręgu. Jeżeli wartości kolejnych pikseli są zgodne z prognozą, to obszar przedstawia tylko jedną figur. Jeżeli wartości te odbiegają od przewidywań, to obraz jest rozdzielany. Obraz binarny oraz wynik działania bloku rozdzielania pokazane są na rysunku Jeżeli rozdzielono obszar, to wektory brzegowe wyznaczone są ponownie dla obu jego części, jeżeli nie to pozostają one aktualne. Rys 4.10 Wynik rozdzielania Ostatnim etapem pracy bloku detektora jest analiza kształtu znalezionych obszarów. Jest ona realizowana w oparciu wyznaczone wektory brzegowe z użyciem czterech maszyn wektorów wspierających SVM. Weryfikacja ta jest oparta o głosowanie, a w literaturze sposób ten nazwany jest klasyfikatorem głosującym (ang. Voting classifier ). Każda z maszyn SVM analizuje wektory brzegowe, które są do niej na stałe przypisane. Oznacza to że maszyna N analizuje tylko wektory pionowe tworzone od góry obszaru itd. Idea działania maszyny SVM przedstawiona jest w rozdziale 5.3 Na rysunku 4.11 przedstawiona jest schematyczna budowa klasyfikatora głosującego. Każdy SVM weryfikuje swój wektor i wystawia kod znaku jaki rozpoznał, kod ten stanowi numer komórki w wektorze wyjściowym. Początkowo zerowe wartości elementów wektora wyjściowego są teraz inkrementowane zgodnie z głosami maszyn SVM. Każdy element wektora jest tyle razy inkrementowany ile maszyn na niego wskazywało. Jeżeli element otrzymał co najmniej trzy głosy to jest to interpretowane jako rozpoznanie kształtu i obiekt dla którego było przeprowadzane sprawdzenie otrzymuje status figury geometrycznej. Następnie poza blokiem detektora figura ta jest wycinana z obrazu źródłowego i przekazywana do bloku rozpoznawania zawartości. Metoda rozpoznawania jest opisana w rozdziale oraz

53 Wektor północny SVM - N Wektor zachodni SVM - W Sumowanie głosów SVM - E Wektor wschodni SVM - S Decyzja Wektor południowy Rys 4.11 Schemat blokowy klasyfikatora głosującego Skuteczność klasyfikatora głosującego zależy od parametrów maszyn SVM, liczby klasyfikatorów, oraz długości wektorów brzegowych. Wyniki testów skuteczności w zależności od tych czynników zostały przedstawione w rozdziale

54 5. Rozpoznawanie obrazów i metody klasyfikacji wzorców Zadanie rozpoznawania obrazów jest jednym z istotnych problemów współczesnej techniki, które nadal jest zgłębiane przez wielu naukowców. Przez pojęcie obrazu, jak to było wspomniane we wcześniejszych rozdziałach, należy rozumieć pewien zbiór danych zgrupowany w wektor jednowymiarowy lub wielowymiarowy. Rozpoznawanie jest często realizowane, jako poszukiwanie podobieństw pomiędzy analizowanym obrazem, a zbiorem pewnych oczekiwanych obrazów wzorców. Ponadto definiuje się także pojęcie klasy jako swoistego zbioru wzorców wyróżniających się w pewien sposób od pozostałych. Nie wyklucza to jednak sytuacji, w której każdy wzorzec wyznacza swoją klasę, choć znacznie częściej do jednej klasy należy kilka wzorców. Wśród klas można także wyznaczyć klasę bezwartościową tj. taką która nie posiada konkretnego wzorca. Obraz należy do klasy bezwartościowej gdy nie należy do żadnej innej klasy. Obraz należy do danej klasy jeżeli jego podobieństwo do wzorca jest wystarczające w przyjętym systemie ocen. Przydzielanie obrazu do jednej z wyznaczonych klas określane jest mianem klasyfikacji. W literaturze anglojęzycznej zadanie rozpoznawania nazwane jest ang. Pattern recognition. Sposobów rozpoznawania obrazów jest wiele, jednak można je podzielić na trzy podstawowe grupy Metody bezpośredniej analizy obrazu. rozpoznawanie w oparciu o sieci neuronowe rozpoznawanie oparte o korelację wzajemną obrazu i wzorca Metody oparte o generację i analizę wektora cech metody minimalno odległościowe NN i k-nn metody otoczeń kulistych SVM Inne Istnieje także grupa metod probabilistycznych, spośród których najistotniejszym jest klasyfikator Bayesa. W pracy nie będą omawiane klasyfikatory tej grupy, stosowne informacje i zastosowanie można znaleźć w literaturze oraz w [18], [19]. Przedstawiony podział nie jest oczywiście ścisły i możliwe jest przykładowo zastosowanie SVM bezpośrednio na obrazie, jak również użycie sieci neuronowych przy analizowaniu cech. Przedstawiony tu podział, a także podstawowe metody klasyfikacji które znajdują się w podrozdziale zostały opracowane na podstawie [5]. 5.1 Metody bezpośredniej analizy obrazu Analiza bezpośrednia jest też często nazywana dopasowaniem wzorca (ang. Template maching ) gdyż przynależność obrazu do klasy jest określana na podstawie bezpośredniego porównania obrazu i wzorca. Metoda ta nie przewiduje żadnych przekształceń, a najczęściej stosowanym algorytmem tej grupy jest wyznaczenie wartości korelacji wzajemnej obrazu i wzorca. Jak podaje [2] wartość korelacji wzajemnej w dziedzinie liczb rzeczywistych dla danych w postaci macierz może być wyznaczona z wykorzystaniem wzoru (5.1) 46

55 (5.1) gdzie są wymiarami wzorca (rozmiar obrazu jest większy), określa umiejscowienie wzorca na obrazie W praktyce jednak wyznacza się wartość korelacji wzajemnej dla zerowego przesunięcia wymaga to jednak dopasowania wymiarów obrazu i wzorca. W takim przypadku: Zdefiniowana wzorem (5.1) korelacja wzajemna (dla oraz gdy wielkości w sensie ilości elementów obrazu i wzorca są takie same) jest iloczynem skalarnym tych dwóch wektorów i osiąga maksimum wtedy i tylko wtedy, gdy wektory te pokrywają się. Analizując wartości korelacji obrazu ze zdefiniowanymi wcześniej wzorcami można wyznaczyć klasę obrazu. Najprostszą analizą tego typu jest progowanie tj. sprawdzenie, czy wartości korelacji znajdują się ponad pewnym arbitralnie dobranym progiem oraz wybranie klasy dla której wartość korelacji jest największa. Rozpoznawanie obrazów tą metodą mimo swojej prostoty ma jednak duże ograniczenia związane ze sporym nakładem obliczeniowym. Przykładowo dla 100 wzorców i rozmiarów obrazu pikseli konieczne jest przeprowadzenie operacji MAC w procesorze sygnałowym. Ponadto wymagane jest zapamiętanie wszystkich wzorców w szybkiej pamięci komputera, gdyż w przeciwnym wypadku czas wykonywania operacji zostanie dodatkowo zwiększony. Z tego też powodu rozwiązanie to stosowane jest przy rozpoznawaniu bardzo małych obrazów i jednocześnie niewielkiej ilości wzorców oraz w przypadkach niewymagających działania w czasie rzeczywistym. Wraz z rozwojem układów programowalnych a w szczególności układów FPGA możliwe było częściowe rozwiązanie problemu dużego nakładu obliczeniowego, przez zrównoleglenie obliczeń i wykorzystanie pamięci rozproszonej charakterystycznej dla tych układów. Przyspieszenie to najczęściej uzyskiwano implementując w układach programowalnych sieci neuronowe. Sieci takie są w stanie zapamiętać stosunkowo dużą liczbę wzorców w postaci współczynników wagowych. Ich dodatkową zaletą jest umiejętność uczenia się nowych wzorców, sieć taka doskonali swoje umiejętności. Podstawową jednostką w sieciach neuronowych są perceptrony zbudowane z wejśćdendrytów, których sygnał jest następnie przemnażany przez wagę- synapsa. Wszystkie sygnały wejściowe z odpowiednimi wagami są w dalszej kolejności sumowane i stanowią pobudzenie dla aksonu generującego sygnał do następnej komórki. Neuron może być przedstawiony jak na rysunku 5.1. Rys 5.1 Schemat poglądowy neuronu [33]. 47

56 Matematycznie pojedynczą komórkę można opisać równaniem (5.2) gdzie (5.2) jest funkcją aktywacji neuronu a iloczyn dla =0 jest piedestałem (ang. bias ) Często stosowaną funkcją aktywacji neuronu jest funkcja znaku. Jedyną pracochłonną operacją jest kilkakrotnie powtórzona operacja MAC czyli pomnożenie wartości z wejścia neuronu przez odpowiednią wagę a następnie zsumowanie wyników. Sieci jednowarstwowe mają ograniczone możliwość, dlatego też częściej stosuje się sieci wielowarstwowe zdolne realizować skomplikowane funkcje, także funkcje rozpoznawania. W sieciach wielowarstwowych realizowane są przeróżne topologie połączeń włączając w to sprzężenia zwrotne oraz połączenia każdy z każdym. Powoduje to, że możliwości tych sieci są bardzo duże. Zastosowanie sieci neuronowych jest dość powszechne, metodę tą zastosowali autorzy [22],[23]. Podstawy działania, podział i przykłady zastosowania sieci neuronowych w różnych dziedzinach nauki przedstawione są w [6]. 5.2 Metody oparte o generacje wektora cech Obraz we wszystkich swoich elementach niesie pewne informacje, i na podstawie części tych informacji może on być prawidłowo sklasyfikowany. Najczęściej nie można a priori wyznaczyć elementów niosących konkretną informację, gdyż każdy element zawiera w sobie cząstkę wielu informacji jednocześnie. Oznacza to, że w celu wydobycia z obrazu pożądanej informacji konieczne jest przeprowadzenie wnioskowania wszystkich (lub prawie wszystkich) elementów obrazu. Transformacje, wydobywające z obrazu najistotniejsze informacje zapisują je w postaci tzw. wektora cech (ang. Feature vector ). Najczęściej dąży się do maksymalnej liczby informacji istotnych z punktu widzenia dalszego przetwarzania w możliwie najmniejszym wektorze cech. Przykładem obrazu i jego wektora cech może być grafika komputerowa przedstawiająca figurę geometryczną w pewnym kolorze. Obraz taki zapisany w postaci macierzy pikseli wykorzystujący przestrzeń RGB o 8 bitach na kolor zawiera elementów o wielkości 24 bity i zajmuje w pamięci w sumie 234kb. Jego wektor cech składać się może natomiast z elementów takich jak kod koloru oraz przykładowo niezmienniki momentowe lub współczynniki kształtu. Wektor cech składał się więc będzie z zaledwie kilku elementów, zapisanych z taką samą dokładnością reprezentacji, a zajmował będzie znikomy procent pamięci potrzebnej na przechowanie obrazu oryginalnego. W przypadku prostych figur geometrycznych wektorami cech mogą być bardzo prosto wyznaczalne parametry. Niektóre z nich zostały omówione i przeanalizowane pod względem dokładności reprezentacji i odporności na zakłócenia w dodatku umieszczonym na końcu pracy. W przypadku bardziej skomplikowanych obrazów koniecznym jest zastosowanie przekształcenia, które wydobędzie z obrazu wymagane cechy. Transformację należy dobrać stosownie do wymagań stawianych wektorowi cech. Przekształcenie takie powinno spełniać kilka dość oczywistych warunków: dla obrazów tej samej klasy wektory cech powinny być zbliżone względem siebie, i jednocześnie zdecydowanie różne od wektorów cech dla obrazów należących do innych klas. liczba liniowo zależnych względem siebie cech powinna być ograniczona 48

57 wektor cech powinien być reprezentatywny tzn. powinien zawierać wszystkie istotne z punktu widzenia dalszego przetwarzania informacje o obrazie, z którego został wygenerowany. Przedstawione w podrozdziale przykłady transformat mają szczególne zastosowanie przy analizowaniu obrazów grafiki komputerowej, chociaż z powodzeniem mogą być zastosowane w wielu innych przypadkach. Oddzielnym zagadnieniem jest klasyfikacja wzorców, czyli sposób przyporządkowywania wektora cech do odpowiedniej klasy. Teoretycznie możliwe jest zastosowanie prostych metod ilościowych jak np. korelacja wzajemna. Metody te nie dają jednak dobrych rezultatów. Stosuje się wiele sposobów klasyfikacji, spośród których w rozdziale omówione są te najbardziej podstawowe Powszechnie znane sposoby generowania wektora cech Popularnie stosowaną transformatą jest SIFT (ang. Scale Invariant Feature Transform ) opisana i zastosowana w [17],[24] oraz [26]. Algorytm ten wyznacza w obrazie punkty kluczowe (niezależne od skali, kąta i przesunięcia), a następnie opisuje otoczenie takiego punktu. Przy wyznaczeniu punktów zainteresowania wykorzystane są różnice funkcji Gaussa (ang. Difference of Gaussian ) sprzężone z obrazem jak we wzorach (5.3) według [17]. (5.3a) (5.3b) Zmieniające się wartości we wzorach (5.3) generują przestrzeń skal i kolejne obrazy. Każdy piksel w obrazie jest porównywany z 8 sąsiadami w swojej skali i 9 sąsiadami w skali powyżej i poniżej jego skali. Jeżeli stanowi on maksimum lub minimum wśród sąsiadów, to jest postrzegany jako kandydat na punkt kluczowy. Następnie eliminowane są te punkty kluczowe, które mają zbyt mały kontrast, lub są słabo zlokalizowane względem krawędzi. Kolejnym krokiem jest wyznaczenie gradientu (kierunku) w punkcie kluczowym a ostatnim etapem określenie otoczenia tego punktu z uwzględnieniem obliczonego wcześniej kierunku. Dokładny opis algorytmu znajduje się w [17] i [26]. Analogiczną do SIFT jest transformata SURF (ang. Speeded Up Robust Features ), która jest nieco zmodyfikowaną i w pełni dyskretną wersją SIFT. Transformata ta została opisana w [16]. Obie transformaty są dość skomplikowane do wyznaczenia i wymagają przy tym umiarkowanych mocy obliczeniowych, ale dają bardzo dobre rezultaty. Inną zaawansowaną transformatą jest PCA (ang. Principal Components Analysis ) transformata ta de koreluje dane i umożliwia usunięcie nieistotnych czynników. Pozostałe dane stanowią wynik działania (ang. Principal Components). W literaturze transformata ta jest znana pod nazwą ang. Karhunen Loève transform. Jej algorytm przewiduje w pierwszej kolejności taką normalizację danych, tak aby ich wartość średnia wynosiła zero. Następnie wyznaczana jest macierz kowariancji oraz wektory i wartości własne macierzy kowariancji. Wektorami cech są wektory własne macierzy kowariancji, przy czym najistotniejszy wektor, to ten którego wartość własna jest największa (dlatego najpierw układane są one w kolejności malejącej). Transformata ta wykazuje największy stopień kompresji danych spośród powszechnie znanych transformat. Wymaga ona jednak dużej mocy obliczeniowej do wyznaczenia macierzy kowariancji, przez co jest rzadko stosowana. 49

58 Często stosowaną transformatą jest wyznaczenie histogramów (rozdział 3.2.1) oraz histogramów fazowych zrealizowane w [4]. Stosowane są także metody, w których utworzony na podstawie obrazu wejściowego kontur zostaje poddany analizie. Wyznaczany jest opis konturowy tzn. obliczane są długości i nachylenia prostych z jakich składa się kontur i to one stanowią wektor cech. Sposobów generowania wektora cech jest bardzo dużo, najczęściej bowiem transformatę dobiera się indywidualnie do realizowanego zadania i zależy ona głównie od pomysłowości autora. Zastosowana w pracy transformata omówiona jest w podrozdziale Zastosowana metoda ekstrakcji cech W pracy dla wyznaczenia wektora cech zastosowano metodę zbliżoną do tej użytej w [8]. Zastosowany algorytm jest w istocie podobny do zasady działania tomografu komputerowego. Obraz w przestrzeni RGB jest w pierwszej kolejności zamieniany na obraz monochromatyczny o 256 poziomach skali szarości. Następnie wyznaczany jest histogram, a na jego podstawie próg binaryzacji według wzoru Próg ten to w istocie środek ciężkości histogramu. (5.41) gdzie jest wektorem histogramu o 256 elementach Następnie obraz poddawany jest binaryzacji z progiem gdzie pikselom o wartościach jasności większych od progu przypisywana jest 1 a pikselom ciemniejszym 0. Rys. 5.2 Obraz oraz jego histogram Wektor cech wyznaczany jest w dwojaki sposób: Pierwsze podejście przewiduje wyznaczenie dwóch podwektorów poziomego i pionowego, które następnie zostaną złączone w jeden wektor wynikowy. W tym rozwiązaniu -ty element pionowego podwektora jest sumą wartości -tego wiersza obrazu binarnego, 50

59 natomiast -ty element poziomego podwektora jest sumą wartości -tej kolumny obrazu binarnego (5.41a) gdzie jest liczbą kolumn, a jest liczbą wierszy obrazu binarnego (5.41a) Drugie podejście przewiduje wyznaczenie wektora cech radialnie, określany jest środek obrazu binarnego, następnie tworzona jest prosta z tego punktu do brzegu prostokątnego obrysu figury o zadanym względem poziomu kącie. Dla każdego z przewidzianych położeń prostej (liczby elementów wektora) wyznaczana jest suma wartości pikseli obrazu binarnego pokrywających się z tą prostą. Co w formie definicji można przedstawić następująco: Niech {k[i], i ϵ<0,n-1>} będzie N- elementowym zbiorem prostych o początku w środku obrazu binarnego i końcu na brzegu tego obrazu o ustalonym kącie względem poziomu. Elementem wektora cech jest suma wartości pikseli w punktach (i, j) obrazu binarnego O które pokrywają się z prostą (5.41b) Oba sposoby generowania cech zostały przedstawione na rysunku 5.3 wraz z obrazem binarnym- piktogramem dla którego powstały. Składowe horyzontalną i wertykalną można scalić otrzymując w ten sposób jeden wektor cech. W pracy posłużono się tym rozwiązaniem umieszczając w końcowym wektorze cech w kolejności najpierw składową horyzontalną a następnie wertykalną. Rys. 5.4 Piktogram i trzy składowe wektora cech. 51

60 5.3 Klasyfikatory Drugim istotnym zagadnieniem w rozpoznawaniu wzorców jest wybór metody przyporządkowania wektora cech do zadanej klasy obrazów. Zadanie przyporządkowania w literaturze nazwane jest klasyfikacją i może być zdefiniowane następująco: Klasyfikatorem jest taki algorytm działania, który na podstawie pewnego opisu obiektu przyporządkuje ten obiekt do jednej z wielu wcześniej wyznaczonych grup. Jeżeli istnieją tylko dwie grupy, to algorytm ten nazywany jest dyskryminatorem. Stosowane są różnego rodzaju klasyfikatory, najpopularniejsze przedstawione poniżej są klasyfikatorami wymagającymi nauki. Oznacza to, że klasyfikator jest sparametryzowany, i w pierwszej kolejności należy ustawić jego parametry- nauczyć rozróżniać klasy. W procesie nauki wymagane jest podanie co najmniej jednego wektora wzorcowego dla każdej klasy. W praktyce jednak stosuje się kilka wektorów wzorcowych dla każdej klasy, a ich ilość jest uzależniona od podobieństw między klasami, liczby klas i rozmiarów wektorów. W zależności od użytego klasyfikatora wymagana ilość wektorów wzorcowych może być różna, jednak im większa ich liczba tym większa skuteczność klasyfikacji i mniejsza skłonność do pomyłek. Istnieje wiele rodzai klasyfikatorów, poniżej zostały przytoczone najpopularniejsze klasyfikatory nieparametryczne. Klasyfikatory te są najprostszymi, ze stosowanych w algorytmach rozpoznawania i zostały tu przytoczone ze względu na swoją prostotę. Klasyfikator NN (ang. Nearest Neighbour) to klasyfikator minimalno odległościowy. Dla każdej klasy należy zapamiętać co najmniej jeden wzorcowy wektor cech. Klasyfikacja realizowana jest jako wybór tej klasy, dla której poddawany analizie wektor cech jest w zadanej metryce najbliższy wektorowi wzorcowemu. W praktyce kształt klasy w przestrzeni cech może być bardzo skomplikowany, dlatego też stosuje się kilka wektorów wzorcowych (są to punkty w przestrzeni cech) które pokrywają cały obszar danej klasy. Metoda ta nie jest odporna na błędy powstałe podczas wyznaczania wzorcowych wektorów cech. Klasyfikator k-nn (ang. k Nearest Neighbours ) jest modyfikacją metody NN, wyznacza się w niej odległość analizowanego wektora od wszystkich wektorów wzorcowych w klasie, a badanie przeprowadzane jest we wszystkich klasach. Otrzymane odległości są następnie szeregowane od najmniejszej do największej, a skojarzone z nimi klasy tworzą k głosów klasowych. Przynależność wektora cech (obrazu) do danej klasy jest określana na podstawie większości głosów klasowych. Metoda ta jest odporna na błędy powstałe przy uczeniu klasyfikatora (wyznaczaniu wektorów wzorcowych) gdyż pojedynczy wektor wzorcowy ze źle przypisaną klasą zostanie zignorowany podczas pracy klasyfikatora. Jeżeli bowiem błędny wektor będzie pokazywał na inną klasę niż pozostałe k-1 wektorów to jego głos nie będzie miał wpływu na klasyfikację. Klasyfikator NM (ang. Nearest Mode). Jest kolejną ewolucją klasyfikatora NN w którym konieczne było zapamiętanie wszystkich wzorców pokrywających równomiernie obszar całej klasy. Klasyfikator NM wybiera kilka wektorów wzorcowych i każdemu przypisuje kulę (kula jest zdefiniowana przez metrykę przestrzeni) o środku w punkcie określonym przez wektor cech i promieniu proporcjonalnym do częstości pojawiania się tego wektora (lub wektora zawierającego się w tej kuli) w procesie nauki klasyfikatora. Następnie powstałe kule są analizowane pod kątem zawierania się w pozostałych, jeżeli kula zawiera się w całości w innej kuli, 52

61 to ta mniejsza jest usuwana (zapominana). Efektem końcowym jest zbiór otoczeń kulistych tworzących pewien obszar w przestrzeni cech z przypisaną do nich klasą. W pamięci należy więc zapisać dużo mniejszą niż w metodach k-nn i NN ilość wektorów cech. Klasyfikacja nowych wektorów cech jest dokonywana poprzez sprawdzenie, czy analizowany wektor leży w środku kuli, czy poza nią. Klasyfikator SVM. Maszyna SVM jest w istocie dyskryminatorem, jeżeli jednak zostanie zebranych kilka dyskryminatorów SVM analizujących pojedynczy opis obiektu, to powstały twór można nazwać klasyfikatorem SVM. Dokładny opis dyskryminatora SVM przedstawiony jest w rozdziale Maszyna wektorów wspierających (ang. Support Vector Machine) Maszyna wektorów wspierających jest w istocie dyskryminatorem, co oznacza, że jest w stanie odróżnić tylko dwie klasy. Możliwe jest zbudowanie klasyfikatora w oparciu o SVM, jednakże wymaga to wielokrotnego przyporządkowania. Zadanie przyporządkowania obiektu do jednej z N klas prymitywnych } można rozpatrywać jako zadanie wielokrotnego przyporządkowania tego obiektu do jednej z dwu klas konkurencyjnych lub gdzie Możliwe są przy tym następujące warianty [7] Jeden przeciw wszystkim. Dwie konkurencyjne klasy biorące udział w klasyfikacji budowane są według wzoru w ten sposób zamiast klasyfikatora N- klasowego powstaje N dyskryminatorów. Decyzja o przynależności wektora cech do klasy podejmowana jest na podstawie najsilniejszej spośród N odpowiedzi. Jeden na jednego. Dzięki przypisaniu każda para klas jest analizowana, co pociąga za sobą konieczność zbudowania N(N-1)/2 dyskryminatorów. Każdej zwycięskiej klasie w każdym dyskryminatorze zostaje przyznany punkt, a decyzja o przynależności wektora cech do klasy jest podejmowana na podstawie liczby zgromadzonych punktów. Jeden przeciw pozostałym. Dwie konkurencyjne klasy stanowią: i a więc konieczne jest zastosowanie N-1 dyskryminatorów. Decyzja o przynależności jest podejmowana w wyniku przejścia w drzewie decyzji podjętych przez poszczególne dyskryminatory. O zdolnościach algorytmu w rozpoznawaniu wzorców mówi tzw. Rozmiar Vapnika- Czervonenkisa [7].Wielkość ta określa ile maksymalnie klas prymitywnych można rozgraniczyć przy użyciu dyskryminatora. Definicja rozmiaru VC według [7] i [28] jest następująca: Niech będzie skończonym zbiorem funkcji rozdzielających takich, że tj. rozróżniających tylko dwie grupy. Rozmiar VC zbioru funkcji określa maksymalną liczbę klas N (jakie można ponumerować na sposobów), które da się rozgraniczyć przy użyciu tych funkcji. Najprostszym przykładem funkcji rozdzielających jest zbiór zorientowanych hiperpłaszczyzn w przestrzeni (hiperpłaszczyzna taka posiada stronę dodatnią i ujemną). Wektory cech 53

62 stanowią punkty w przestrzeni możliwa jest więc ich klasyfikacja na podstawie położenia w tej przestrzeni za pomocą hiperpłaszczyzn. W ogólności istnieje takie ułożenie hiperpłaszczyzny, aby po jej dodatniej stronie znajdowała się dowolna liczba wektorów, pozostałe natomiast będą usytuowane po stronie ujemnej, co daje bardzo duże możliwości klasyfikacji. O rozmiarze VC dla zbioru zorientowanych hiperpłaszczyzn mówi poniższe twierdzenie: Rozmiar Vapnika-Czervonenkisa zbioru zorientowanych hiperpłaszczyzn w przestrzeni wynosi Oznacza to, że dla przestrzeni można w sposób liniowy rozdzielić maksymalnie 3 klasy, graficznie jest to przedstawione na rysunku 5.2 gdzie każda klasa prymitywna posiada tylko jeden wzorzec. Rys. 5.5 Przykład rozdzielności trzech punktów, oraz cztery nieseparowane liniowo punkty. Zgodnie z definicją rozmiaru Vapnika- Czervonenkisa istnieje sposobów numerowania, na rysunku 5.5 są przedstawione cztery przykłady rozmieszczenia klas, pozostałe cztery przypadki powstają przy zmianie orientacji prostej. Czterech punktów przedstawionych po prawej stronie rysunku nie da się rozdzielić w sposób liniowy, jest to nieformalny dowód twierdzenia o rozmiarze VC. W przypadku dyskryminowania wzorców za pomocą zbioru hiperpłaszczyzn istnieje problem optymalnego doboru tych płaszczyzn. Należy mieć na uwadze, że wzorce podlegające klasyfikacji są punktami w przestrzeni cech. Naturalnym rozwiązaniem wydaje się więc takie umieszczenie hiperpłaszczyzny, aby odległość wszystkich wzorców od niej była największa SVM liniowo separowalnego zbioru wzorców Wzorce są liniowo separowane, gdy da się je rozdzielić zbiorem hiperpłaszczyzn. W takim przypadku dobór optymalnej hiperpłaszczyzny może być wyznaczony zgodnie z poniższymi wzorami przytoczonymi z [29]. Rysunek 5.6 stanowi graficzną interpretację poszukiwanego rozwiązania dla przypadku dwuwymiarowego. 54

63 Rys.5.6 Poszukiwanie optymalnej hiperpłaszczyzny H Dowolna hiperpłaszczyzna może być opisana wzorem (5.4) (5.4) gdzie: A jest wektorem normalnym do hiperpłaszczyzny, jest odległością hiperpłaszczyzny od środka układu współrzędnych, natomiast jest argumentem czyli wektorem w przestrzeni cech ( ) Można wyznaczyć dwie hiperpłaszczyzny graniczne, z których każda przechodzi przez zbiór wszystkich najbardziej wysuniętych punktów swojej klasy. Punkty graniczne nazywane są wektorami wspierającymi (ang. Support Vector ). Na rysunku 5.6 przedstawione to jest jako proste H 1 i H 2, matematycznie zaś przez równania (5.5) dla H1 dla H2 (5.5a) (5.5b) gdzie jest odzwierciedleniem klas konkurencyjnych omawianych we wstępie i oznacza punkty będące wektorami wspierającymi. Pozostałe punkty spełniają równania (5.6) dla dla (5.6a) (5.6b) Oba powyższe równania mogą być sprowadzone do pojedynczego równania: gdzie oznacza klasę konkurencyjną -tego wektora cech (5.6c) 55

64 Odległości pomiędzy prostymi H 1 i H oraz H 2 i H są oznaczone kolejno d 1 i d 2 Pożądanym przypadkiem jest, aby odległości d 1 i d 2 były równe. wtedy d=d 1 =d 2 znane jest w literaturze jako margines maszyny SVM, a geometria wektorowa mówi, że (5.7): (5.7) Zapewnienie maksymalnej odległości d wymaga jednocześnie znalezienia najmniejszej wartości przy zachowaniu warunku: co może być zapisane jako (5.8):, (5.8) Znalezienie optymalnego rozwiązania (5.8) możliwe jest przy wykorzystaniu mnożników Lagrange a (ang. Lagrange multipliers ). Jest to metoda znajdowania ekstremum warunkowego funkcji różniczkowalnych. Metoda ta jest opisana w wielu podręcznikach matematyki wyższej i nie jest tematem tej pracy mimo, że jej znajomość jest konieczna do rozwiązania postawionego wyżej problemu. W związku z tym zostaną przytoczone tylko wzory początkowe i końcowe ważniejszych etapów rozwiązania, a wszystkie niezbędne przekształcenia zostaną pominięte. Przekształcenia te znajdują się w [28] i [29]. gdzie jest wagą we wzorze Lagrange a (5.9) Żądane rozwiązanie to takie, w którym i minimalizuje wartość a tą wartość maksymalizuje przy konieczności zachowania. W celu znalezienie takiego rozwiązana należy przyrównać pochodne względem i a do zera. (5.10) Wstawiając równania (5.10) do (5.9) otrzymujemy: (5.11) Przedstawione równanie (5.11) jest formą dualną równania. Zadanie minimalizacji zostało przekształcone do zadania maksymalizacji i jest to problem wypukłej optymalizacji kwadratowej. Rozwiązanie numeryczne tego zadania daje w wyniku wartość na podstawie której możliwe staje się wyznaczenie ze wzoru (5.10) a następnie na podstawie (5.5). Możliwe jest także znalezienie wektorów wspierających, są to mianowicie te wektory dla których. 56

65 Na koniec należy zauważyć, że liniowy SVM opiera się na hiperpłaszczyznach, a więc obowiązuje go twierdzenie odnośnie rozmiaru VC i maksymalnej liczby klas jakie jest w stanie odróżnić. Nakłada to konieczność stosowania odpowiednio dużego wektora cech. Przedstawiona procedura wyznaczania optymalnej hiperpłaszczyzny opierała się głównie na rozwiązaniu dość złożonego zestawu równań. Odmienne podejście jest przedstawione w [5], autor przyjmuje że istnieje pewna ciągła funkcja rozgraniczająca klasy. Zakłada przy tym, że funkcja ta jest funkcją o (cytat z [1]) skończonej dziwaczności i da się aproksymować pewnym zbiorem funkcji o rosnącej dziwaczności. Pojęcie funkcji o skończonej dziwaczności jest dalej tłumaczone jako funkcja o ograniczonej liczbie ekstremów, analogicznie należy rozumieć rosnącą dziwaczność. Na podstawie [5] został napisany kolejny podrozdział omawiający problem nieliniowej klasyfikacji SVM SVM dla nieliniowo separowalnego zbioru wzorców W praktyce liniowa separowalność wektorów jest rzadko spotykana, nie mniej istnieją takie przypadki, gdzie mimo pozornej nieliniowości funkcji przynależności należy zastosować liniową maszynę SVM. Ma to miejsce gdy wektory cech użyte do uczenia maszyny mają źle przypisane klasy- podobny problem występował dla minimalno odległościowych metod klasyfikacji. (Metoda k-nn jest uodpornioną wersją metody NN na źle przypisane klasy wzorców). Maszynę SVM także można uodpornić na błędnie przypisane klasy wektorów wzorcowych, należy wtedy równania (5.5) zmodyfikować do następującej postaci: (5.12) Gdzie oznacza koszt błędu, a minimalizacji jest poddawane wyrażenie: przy zachowaniu warunku Gdzie jest współczynnikiem wagowym mówiącym jak bardzo koszt błędów ma wpływać na proces nauki klasyfikatora. Mnożnik Lagrange a przyjmuje postać: i są wagami wynikającą z ogólnego wzoru mnożników Lagrange a (5.13) Do wyznaczenia konieczne jest obliczenie trzech pochodnych: (5.14) Prowadzi to do tego samego równania tym razem jednak warunkami są:, jak w przypadku liniowo separowanych wzorców, 57

66 i (5.15) Rozwiązanie więc jest analogiczne do poprzedniego. Powstała maszyna SVM dopuszcza istnienie błędnie przypisanych klas, ale w procesie uczenia ich liczba jest minimalizowana. Ten algorytm wyznaczania współczynników hiperpłaszczyzn jest częściej stosowany, niż czysty SVM. Jeżeli jednak wzorce nie są liniowo separowane, to należy zastosować nieliniową maszynę SVM. W tym przypadku praktykowany jest pewien zabieg linearyzujący dane, a więc zmieniający dziedzinę algorytmu. Zabieg ten można także rozumieć jako zakrzywienie przestrzeni, w taki sposób, żeby wzorce były liniowo separowane. W nowej dziedzinie można zastosować algorytm liniowego SVM. Jak podaje autor [5] zakłada się, że istnieje pewna funkcja rozróżniająca dwie klasy konkurencyjne i : (5.16a) Funkcja jest ponadto rozwijalna względem rodziny funkcji zwanej funkcjami bazowymi lub funkcjami jądra rozwinięcia. gdzie: jest wagą -tej funkcji rozwijającej (5.16.b) Przytoczony wzór (5.16b) jest uproszczoną wersją bardzo często stosowanych przekształceń zwanych popularnie transformacjami. W transformacjach stosuje się rodzinę funkcji o określonych właściwościach, lecz różnych wartościach tych właściwości dla każdego członka rodziny. Przykładowo w transformacji kosinusowej rodziną funkcji jest zbiór cosinusów, każdy o innym okresie. Ogólna postać rodziny funkcji jest nazywana jądrem transformaty (ang. Kernel ), dla wspomnianej transformaty kosinusowej jest to funkcja cosinus. Współczynniki rozwinięcia transformaty mówią, w jakim stopniu funkcja podlegająca transformacie jest podobna do danego członka rodziny. Analogicznie we wzorze 5.16b określa jaki jest udział funkcji w rozwijanej funkcji. Sumowanie jest przeprowadzane po wszystkich członkach rodziny funkcji rozwijających i dlatego wynik tego sumowania może być równy funkcji klasyfikującej. W praktyce jednak dopuszcza się istnienie pewnego błędu aproksymacyjnego związanego z sumowaniem pierwszych M członków rodziny narzuca to jednak na tą rodzinę zachowanie pewnych prawidłowości. Warunki jakie musi spełniać rodzina są dobrze omówione w [5], tu zostaną one tylko wspomniane: Rodzina musi zapewnić dobrą rozwijalność funkcji względem siebie. Członkowie rodziny muszą być funkcjami o rosnącej liczbie ekstremów. Najmłodszy członek rodziny musi dobrze aproksymować funkcje o małej liczbie ekstremów, podczas gdy starsi powinni reprezentować większą liczbę ekstremów. Warunek ten jest analogicznym do malejącego okresu cosinusów w transformacie kosinusowej. Najbardziej pożądanym jest aby funkcje bazowe było ortonormalne względem siebie, a w zasadzie koniecznym jest aby były ortogonalne. Prawidłowo dobrana rodzina funkcji rozwijających zapewnia, że klasyfikator może być zrealizowany jako: 58

67 (5.17) Wzór (5.17) względem (5.16) różni się zakresem sumowania, który w tym pierwszym obejmuje także element o indeksie zero, a więc element neutralny. Wektory cech są za pomocą funkcji rozwijających rzutowane do innej przestrzeni cech, gdzie realizowany jest liniowy SVM. Funkcjami rzutującymi mogą być następujące funkcje liniowe: (5.18) w takim przypadku liczba funkcji rozwijających, a także sumowanie we wzorze (5.17) przyjmuje wartość co z kolei prowadzi do: (5.19) Wzór (5.19) jest analogicznym do (5.4) tak więc zaprezentowane w [5] podejście jest równoważnym do podejścia przedstawionego w [28] i [29]. Na tej podstawie można wnioskować, że wykorzystanie rodziny nieliniowych funkcji jądra będzie prowadziło do takich samych rezultatów, jakie są przedstawione w [28] i [29]. Rodzina funkcji przekształcających generuje wektory w nowej przestrzeni cech, zachodzi więc: Zatem: gdzie jest nowym wektorem cech (5.20a) (5.20b) Co oznacza, że nieliniowy problem SVM został dzięki zmianie dziedziny przekształcony do liniowej maszyny SVM. Podobne rozumowanie przeprowadzone jest w [29] gdzie warunek wzoru (5.11) został wyprowadzony z jego ogólnej formy postaci: gdzie oznacza funkcję jądra (5.21) Zaprezentowane tu jądro jest liniowe, nie mniej może to być niemalże dowolne inne jądro. Więcej na ten temat można znaleźć w [28]. Także w tym przypadku nieliniowa funkcja przekształcająca prowadzi do linearyzacji zadania klasyfikacji i umożliwia zastosowanie liniowej maszyny SVM. Analiza (5.21) w kontekście przytoczonej z [5] metodyki rozumowania po raz drugi prowadzi do wniosku, że podejścia te są równoważne. Wzór (5.17) jest zatem istotą działania liniowego i nieliniowego SVM, który to algorytm może być traktowany, jako pewnego rodzaju transformata. Powszechnie stosowanymi jądrami są: 59

68 RBF (ang. Radial Basis Function ) Wielomianowe Sigmoidalne Rozmiar Vapnika-Czervonenkisa maszyny SVM stosującej jądro typu RBF jest nieskończenie duży. Można bowiem dla każdego wektora zastosować odrębną funkcję RBF która w okolicy tego wektora będzie przyjmowała wartości bliskie 1, a wszędzie poza tym obszarem wartości bliskie 0 (o wielkości ww. obszaru decyduje przyjęta metryka oraz parametr we wzorze). W nieliniowej dziedzinie będzie więc znajdował się tylko jeden punkt o wartości zbliżonej do 1 i wiele punktów o wartościach zbliżonych do 0. Taki układ jest łatwo klasyfikowalny liniowo, a więc każdemu wektorowi można przypisać odrębną klasę. Teoretycznie zatem klasyfikator zbudowany na podstawie dyskryminatora z jądrem RBF jest w stanie rozróżnić nieograniczoną liczbę klas przy skończonym wymiarze wektora cech. Jest to największą zaletą maszyny SVM z tym jądrem. W [5] zaprezentowana jest także metodyka wyznaczania współczynników wagowych algorytmu. Ze względu na fakt, że nieliniowy SVM da się sprowadzić do liniowego, przedstawiony tu plan nauki dotyczył będzie tylko przypadku liniowego. Przewiduje on, że nowe położenie hiperpłaszczyzny jest wyznaczane jako suma dotychczasowego położenia i pewnej poprawki. Poprawka jest obliczana na podstawie samego wektora, przypisanej klasy docelowej, oraz klasy na jaką wskazuje ucząca się maszyna. Poprawki są wyznaczane tak, żeby maksymalizować skuteczność klasyfikatora. Proces uczenia przeprowadza się zazwyczaj kilku etapowo, w pierwszej części głównym celem jest osiągnięcie największej liczby prawidłowych klasyfikacji. W drugim natomiast optymalizuje się położenie hiperpłaszczyzny, ze względu na maksymalizację jej odległości od każdej z klas. Interpretację geometryczną procesu uczenia przedstawia rysunek 5.7 Stare położenie hiperpłaszczyzny Rys. 5.7 Interpretacja geometryczna procesu uczenia Nowe położenie hiperpłaszczyzny 60

69 Jeżeli jądro przekształcenia zostało prawidłowo dobrane do realizowanego zadania, oraz maszynie zaprezentowano wystarczającą liczbę wzorców do nauki, to jest ona zdolna do klasyfikacji. Wektory których nie stosowano do trenowania maszyny, a których przynależność do klas jest znana stanowią zbiór trenujący. Testowanie odbywa się poprzez zastosowanie wzoru 5.22, a więc przekształcenie do nowej przestrzeni cech i wykonanie operacji MAC. gdzie oznacza znak wyrażenia będącego argumentem (5.22) Przynależność do klasy jest określana na podstawie znaku, zatem skomplikowana metodyka nauczania klasyfikatora jest później rekompensowana prostym jego użyciem. Wyniki działania maszyny SVM przy zastosowaniu różnych funkcji jądra zaprezentowane są w rozdziale

70 6. Skuteczność algorytmów Zastosowane w pracy rozwiązanie składa się z dwóch modułów, modułu detekcji i modułu rozpoznawania. Z tego względu badanie skuteczności zostało podzielone na dwie części. Pierwszy podrozdział opisuje blok detektora i wpływ różnych parametrów z nim związanych na skuteczność oraz czas jego pracy. W drugim podrozdziale analizowana jest praca bloku rozpoznawania znaków i wpływ dostępnych parametrów na jego pracę. Ostatni podrozdział podsumowuje uzyskane wyniki i porównuje je do uzyskiwanych przez podobne algorytmy. Zbiór testowy składał się ze 164 obrazów, które przedstawiały w sumie 202 znaki. Wszystkie obrazy trenujące/testujące zostały zgromadzone przez autora pracy przez wykonanie zdjęć znaków aparatem fotograficznym wbudowanym w telefon komórkowy. Zdjęcia zostały wykonane w rozdzielczości 1Mpix czyli pikseli z automatycznym balansem bieli oraz bez użycia doświetlającej lampy błyskowej. Zebrane zdjęcia nie były w żaden sposób poprawiane w programach graficznych do tego służących. Tak zebrany zbiór trenujący/testujący zdaniem autora jest najbardziej reprezentatywny gdyż przedstawia znaki w scenerii w jakiej występują. Ze względu na trudności przy zbieraniu obrazów liczba klas znaków została ograniczona do 23 najczęściej występujących w czasie gdy ich gromadzenie było przeprowadzane. Najliczniejszymi grupami są znaki A7-ustąp pierwszeństwa, B20- stop C9- nakaz jazdy z prawej strony znaku i D1- droga z pierwszeństwem przejazdu i występują one w liczebności 10 i 11 znaków. Najmniej licznymi są klasy A5- skrzyżowanie, C12- ruch okrężny, B33- ograniczenie do 50 km/h itp. występujące w liczebności 6 znaków. Takie podejście zapewnia rozkład liczby znaków na klasę wahający się od 3.1% do 5.6%. Zastosowane metody trenowania i testowania bloków detektora i rozpoznawania przedstawiono w stosownych rozdziałach tj. odpowiednio w 6.1 i Skuteczność detektora Pionowe znaki drogowe wykorzystują 6 podstawowych kształtów geometrycznych, którymi są: okrąg, prostokąt, trójkąt z wierzchołkiem skierowanym w górę, trójkąt z wierzchołkiem skierowanym w dół, rąb i ośmiokąt. Trenowanie/testowanie algorytmu detektora zostało oparte o wylosowanie spośród wszystkich obrazów 6 takich, w których będą się zawierały wszystkie 6 figur geometrycznych. Te 6 obrazów stanowi zbiór testowy, pozostałe znaki stanowią zbiór trenujący. Operacja trenowania została powtórzona kilkakrotnie, a po każdym jej przeprowadzeniu zapisano stosowne parametry detektora, tak żeby możliwym było jego ponowne użycie. Jest to uproszczona wersja sprawdzianu krzyżowego (ang. cross-validation ). Moduł detektora został szczegółowo opisany w rozdziale 4.3 tu należy przypomnieć, że zastosowana metoda opiera się o analizę koloru i kształtu jednocześnie. W pierwszej kolejności realizowane jest badanie obrazu pod względem występujących w nim kolorów, aby następnie wybrane obszary przeanalizować pod względem kształtu za pomocą maszyny SVM. Skuteczność detektora zależały więc od dwóch czynników, operacji realizowanych przy analizie kolorystycznej, oraz ustawień maszyny SVM i sposobu reprezentacji kształtu jaki ta maszyna analizuje. Analiza koloru realizowana jest w przestrzeni HSV dzięki czemu znalezienia barw odpowiadających barwom znaków można dokonać przy użyciu prostych funkcji przynależności. Funkcja taka sprawdza czy kolor piksela znajduje się w jej obszarze zainteresowania, jeżeli barwa piksela jest odpowiednia to w obrazie wyjściowym przyjmuje 62

71 on wartość 1 w przeciwnym przypadku 0. Progi funkcji przynależności zostały dobrane sztywno i nie istnieje możliwość ich zmiany. Powstały w ten sposób obraz binarny można poddać wielu przekształceniom, spośród których autor doświadczalnie wybrał zestaw tych, które dawały najlepsze rezultaty podczas testów. Na rysunku 6.1 przedstawiona została skuteczność detektora przy zastosowaniu kilku zestawów różnych przekształceń. Na wykresach przedstawiono zdolność znalezienia znakuseria znak oraz błędne rozpoznanie kształtu który został zinterpretowany jako znak w serii błąd. Można przyjąć rozumowanie, w którym zdolność znalezienia znaku będzie ekonomicznym zyskiem, natomiast błędnie zinterpretowany kształt kosztem operacji. W tym sensie należy dążyć do zwiększenia zysku przy jednoczesnym obniżeniu kosztów. Liczbę znalezionych kształtów porównano z całkowitą liczbą znaków jaka znajdowała się w testowym zbiorze obrazów. Przez określenie operacji lokalnej autor miał na myśli trzykrotne przeprowadzenie danej operacji, jednorazowo na każdym z trzech pod-obrazów będących wynikiem częściowym poszukiwania kolorów. Oznacza to, że przykładowa operacja zamknięcia została wykonana dla pod obrazu który jest wynikiem pośrednim poszukiwania znaków koloru czerwonego. Drugie zamknięcie zostało wykonane dla pod obrazu z koloru żółtego, a trzecia operacja dla koloru niebieskiego. Wszystkie te operacje wykorzystywały taki sam element strukturalny. Pojęcie operacji globalnej należy rozumieć, jako wykonanie jej na obrazie będącym sumą trzech pod obrazów składowych. Skuteczność algorytmu w przypadku braku dodatkowych operacji (kolumny 1) stanowią punkt odniesienia dla wszystkich przeprowadzonych przekształceń. Najlepszy rezultat uzyskano dla lokalnego zamknięcia i globalnego otwarcia, która to operacja przyczyniła się do wzrostu skuteczności z poziomu 69% do poziomu 79%. Jest to jednak okupione wzrostem nieprawidłowych oznaczeń (algorytm znalazł znak w miejscu gdzie go niema) z poziomu 30% do 50%. Koszt jest więc dwa razy większy, niż uzyskane korzyści, niemniej jednak można w tym miejscu domniemywać, że blok rozpoznawania będzie w stanie odrzucić taki błędnie zinterpretowany kształt. Interesującym rozwiązaniem jest też zastosowanie lokalnego przekształcenia zamknięcia, która to operacja cechowała się wzrostem skuteczności z 69% do 75% przy jednoczesnym wzroście kosztów z 30% do 33%. Rozwiązanie to jest więc ekonomicznie uzasadnione 63

72 Rys. 6.1 Wpływ różnych przekształceń obrazów na skuteczność algorytmu detekcji. Drugim czynnikiem mającym wpływ na skuteczność bloku detektora są ustawienia maszyny SVM i zastosowanych w jej pracy wektorów. W pracy przewidziano jeden sposób tworzenia wektora cech (został on opisany w rozdziale 4.3) możliwa jest natomiast zmiana jego długości w dowolnych granicach. Nie mniej ustawienie wektora o długościach bardzo małych jest mało zasadne, gdyż zakłócenia w obrazie oraz fakt istnienia skończonej liczby pikseli będą miały zbyt duży wpływ na wyznaczane wektory. Ustalenie wartości zbyt dużej skutkuje koniecznością skalowania figury do rozmiarów większych, niż te w których on występuje, co także wiąże się z powstaniem dużych błędów binaryzacji. Duże wektory cech wymagają także stosowania większej liczby treningów i jednocześnie większej liczby danych trenujących. Na rysunku 6.2 przedstawiony został wpływ rozmiarów wektora na skuteczność algorytmu detekcji. Posłużono się przy tym powszechnie znanym wykresem ROC (ang. Receiver Operating Characteristic ). Na osi poziomej tego wykresu znajduje się parametr FPR (ang. False Positive Rate ) który mówi ile obszarów zostało błędnie sklasyfikowanych jako znaki w stosunku do wszystkich obszarów nie będących znakami. Na osi pionowej znajduje się parametr TPR (ang. True Positive Rate ), który z kolei mówi ile znaków zostało prawidłowo znalezionych w stosunku do wszystkich znaków występujących w obrazach. Wykres ROC został przedstawiony w całym zakresie możliwych wartości. Dodatkowo w prawym dolnym rogu znajduje się zbliżenie obszaru uzyskanych wyników. Na rysunku można zaobserwować, że najlepsze wyniki uzyskano dla wektorów o długości 50 elementów. Wynik można zinterpretować następująco: analizując zbiór obrazów przeciętnie zostanie znalezionych 78% 64

73 znaków w nich przedstawionych i jednocześnie do grupy znaków zostanie błędnie przydzielonych 26% pozostałych figur znajdujących się w tych obrazach. Czerwona prosta przebiegająca skośnie przez środek wykresu jest hipotetycznym wynikiem losowania, czy dany kształt jest znakiem czy nie. Zakłada się przy tym, że liczebność zbiorów znaków i nie-znaków jest taka sama. Rys. 6.2 Wpływ rozmiaru wektora na skuteczność algorytmu detekcji. TPR liczba znalezionych znaków w odniesieniu do wszystkich znaków w obrazie. FPR liczba obszarów błędnie rozpoznanych jako znaki w stosunku do liczby wszystkich obszarów nie będących znakami. Przy testowaniu algorytmu założono, że nieprawidłowe zinterpretowanie kształtu (rozpoznanie trójkąta w miejscu, gdzie występuje rąb itp.) jest równoznaczne ze zinterpretowaniem nie- znaku jako znaku. Tym samym postawiono detektorowi rygorystyczne wymagania poprawności działania. Podejście takie podyktowane jest wymaganiami kolejnego etapu przetwarzania- bloku rozpoznawania. Koniecznym jest wycięcie wnętrza znaku w celu poddania go pod analizę zawartości, błędnie zinterpretowany kształt znaku uniemożliwiłby więc poprawne działanie tego bloku. Innym dość istotnym parametrem algorytmu był czas jego wykonania, zależał on głównie od czasu potrzebnego na przekształcenia kolorów, w tym na dodatkowe operacje morfologiczne. Sprawdzony więc był czas realizacji algorytmu w zależności od rozmiaru obrazu jaki był poddawany analizie, oraz jego wpływ na skuteczność procedury. Wyniki przedstawiono na rysunku 6.3. Jak widać na wykresie czas realizacji w bardzo dużym stopniu zależy od rozmiarów obrazu i może zmienić się o rząd wielkości. Algorytm zachowywał stabilność, należy bowiem zauważyć, że zmiana rozmiarów obrazu wiąże się ze zmianą wielkości znaków, a więc i koniecznością skalowania ich obszarów w górę. To z kolei w niewielkim stopniu może prowadzić do zmniejszenia skuteczności algorytmu jak to zostało wykazane w poprzednim przypadku. Zastosowanie zbyt małych obrazów wiąże się z większym wpływem dyskretnego charakteru obrazu, a więc gorszą jakością znaków a co za tym idzie także i mniejszą 65

74 skutecznością algorytmu. Wpływ tych dwóch parametrów można zaobserwować na krzywej skuteczności, która ma tendencję do zaginania się w dół dla coraz mniejszych rozmiarów obrazu. Rys.6.3 Wpływ rozmiarów obrazu na czas detekcji Obrazy o średnich rozmiarach (0.4Mpix do 0.6Mpix) są analizowane szybko, wykres czasu jest w dużym stopniu liniowy, można więc w prosty sposób przeliczyć wielkość obrazu na czas jego przetwarzania. Obrazy o rozmiarach powyżej 0.6Mpix były bardzo dokładne, a więc skuteczność ich przetwarzania zbliżyła się bardzo do maksimum. Różnica w czasie przetwarzania obrazów o rozmiarach 0.6Mpix i 1Mpix wynosi aż 450 [ms] czyli 50% czasu potrzebnego na analizę większego z nich. Zastosowanie bardzo dużych obrazów jest więc bezzasadne, nie wpływa znacząco na skuteczność, a zabiera dużo czasu. Zakładając, że algorytm może pracować w urządzeniach mobilnych bardzo istotnym staje się czas jego realizacji, który jak widać w dużym stopniu zależy od przyjętej dokładności danych poddawanych analizie- rozmiarowi obrazu. Jak wykazano skuteczność przyjętego rozwiązania modułu detektora zależy od kilku czynników spośród których najważniejszymi są zastosowane operacje morfologiczne realizowane na obrazach częściowo przetworzonych, prawidłowy dobór rozmiarów wektora cech, a także rozmiar samego obrazu. Ten ostatni parametr ma także bardzo duży wpływ na czas realizacji, co jest kluczowym czynnikiem w aplikacjach pracujących w czasie rzeczywistym. Uzyskane maksimum skuteczności nie jest największym z jakim można się spotkać w literaturze. Wynik 80% jest zadowalający, nie mniej daleko mu do wyników dobrych. Powodem takiego stanu rzeczy może być niedoskonały blok analizy koloru, progi funkcji przynależności są ustawione sztywno i nie ma możliwości ich zmiany. Zastosowanie algorytmów wielokrotnej analizy tekstury, lub metod uczących się mogłoby w dużym stopniu poprawić znajdowanie obszarów zainteresowania. Poza tym zastosowanie bloku obracania do prawidłowego ułożenia przekrzywionych znaków przypuszczalnie także skutkowałoby zwiększeniem prawidłowości działania algorytmu. Także sposób generowania wektorów cech nie jest doskonały, gdyż przysłonięty róg prostokątnego znaku skutkuje zaburzeniem w dwóch wektorach cech. Może się tak zdarzyć, że zaowocuje to błędnym rozpoznaniem tych wektorów i w efekcie odrzuceniem figury. Z drugiej jednak strony przysłonięcie całego brzegu (przykładowo gałęziami drzew) przy widocznych rogach spowoduje, że tylko jeden wektor będzie błędnym i cały znak pozostanie prawidłowo rozpoznany. Rozwiązaniem tego problemu może być złożenie czterech wektorów 66

75 w jeden i zastosowanie jednego klasyfikatora. Rozwiązanie takie nie było jednak testowane. Także procedura trenowania maszyny SVM ma wpływ na jej skuteczność. 6.2 Skuteczność rozpoznawania Blok detektora przekazuje znalezione obszary o stosownym kształcie do bloku rozpoznawania, który odpowiedzialny jest za prawidłowe zidentyfikowanie znaku. Zasada działania bloku rozpoznawania oparta jest o ekstrakcję cech opisaną w rozdziale klasyfikacja natomiast została zrealizowana jako maszyna SVM opisana w rozdziale 5.3. Skuteczność rozpoznawania uzależniona jest więc od dwóch czynników: wielkości i sposobu wyznaczenia wektorów cech opisujących znak oraz parametrów maszyny, w tym najważniejszego czynnika jakim jest typ jądra przekształcenia. Wybrany sposób generacji cech i typ jądra przekształcenia maszyny SVM pociągają za sobą konieczność dostosowania pozostałych parametrów klasyfikatora. Wektor cech wygenerowany w układzie kartezjańskim jest umieszczony w innym miejscu przestrzeni niż wektor tego samego znaku wygenerowany w układzie biegunowym. Także odległości między wektorami w układzie kartezjańskim są inne niż odległości między analogicznymi wektorami w układzie biegunowym. Oznacza to, że przestrzenie cech są inne, a więc inne powinny być także parametry maszyny SVM. W każdym przypadku powinien on być dostosowany do przestrzeni w jakiej pracuje. Wszystkie te czynniki powodują, że koniecznym jest testowanie skuteczności w tzw. zestawach czyli parach: typ wektora cech typ jądra przekształcenia. Zbadane zostały konfiguracje z jądrem Liniowym i RBF, nie udało się znaleźć prawidłowych parametrów dla jądra Sigmoidalnego. Poszukiwania prawidłowych parametrów maszyny SVM dokonano według idei przedstawionej w [32]. Na rysunku 6.4 przedstawiono wyniki badania. 67

76 Rys. 6.4 Skuteczność rozpoznawania dla różnych zestawów. Na tym etapie skuteczność badano podobnie jak w detektorze tj. metodą sprawdzianu krzyżowego losując grupę obrazów, która zawiera co najmniej po jednym znaku danej klasy. Grupa ta stanowi wektor testowy, pozostałe obrazy stanowią wektor trenujący. Najwyższą skuteczność uzyskano dla zestawu, w którym zastosowano kartezjański układ współrzędnych do wyznaczenia wektora cech, a jądrem przekształcenia był RBF. Uzyskany wynik 86% nie wyróżniał się jednak bardzo spośród wszystkich zastosowanych rozwiązań, gdyż najgorszy wynik dla zestawu 4 to 78%. Te niewielkie rozbieżność należy przeanalizować pod kątem zastosowanego sposobu generacji wektora cech, oraz pod kątem typu jądra maszyny SVM. Porównanie kolumny 1 z 4 i 2 z 3 jest w istocie porównaniem sposobu tworzenia wektora cech. W tym przypadku wektory tworzone w układzie kartezjańskim lepiej opisują znak. Ten sposób gwarantuje zapamiętanie każdego piksela znaku dwukrotnie, podczas tworzenia wektora pionowego i poziomego. Natomiast tworzenie wektora cech w układzie biegunowym skutkuje kilkakrotnym zapamiętaniem pikseli znajdujących się blisko środka obszaru znaku i pominięciem pikseli odległych od tego środka. Szczególnie w przypadku znaków trójkątnych sposób ten nie wydaję się być najodpowiedniejszym, gdyż w znakach tych istotne są także brzegi obszaru w pobliżu wierzchołków trójkąta. Fakt ten objawia się mniejszą skutecznością algorytmu niż zastosowanie układu kartezjańskiego. Porównanie kolumn 1 z 2 oraz 3 z 4 jest analizą skuteczności rozpoznawania ze względu na zastosowane jądro przekształcenia. Maszyna oparta o jądro radialne wykazała większą skuteczność, niż ta w której zastosowano liniową klasyfikację. Wynika to z właściwości przekształcenia wykorzystującego funkcje RBF, które selekcjonują wybrany obszar w przestrzeni cech odrzucając jego otoczenie. Funkcja liniowa jest natomiast w stanie oddzielić wybrany obszar tylko z jednej strony. Niewielka różnica w uzyskanej skuteczności 68

77 wynikła zapewne z dość jednoznacznie określonych wektorów cech oraz dużej ich odległości między sobą. Wektory te nie były skomplikowane, dlatego też klasyfikator wykorzystujący przekształcenie liniowe uzyskał wynik bardzo zbliżony do klasyfikatora z funkcjami RBF. Ustalenie prawidłowych parametrów bloku rozpoznawania pozwoliło na wyznaczenie w bardziej wiarygodny sposób skuteczności algorytmu. Na tym etapie zastosowano metodę trenowania/testowania typu zostaw jeden poza (ang. leave-one-out ) która zakłada, że każdy obraz jest dokładnie jeden raz wektorem testującym i N-1 razy wektorem trenującym gdzie N jest liczbą obrazów. Sprawdzono przy tym jak często znaki są błędnie rozpoznawane- znak jest przyporządkowany do innej klasy, a jak często nie- znak jest błędnie rozpoznawany jako znak. Wyniki zostały przedstawione w postaci tzw. macierzy pomyłek (ang. confusion matrix ). W przekątnej głównej znajdują się ilościowe wyniki prawidłowych rozpoznań, w ostatnim wierszu znajdują się kształty nie będące znakami, które zostały błędnie zidentyfikowane jako znaki. Ostatnia kolumna przedstawia wyniki nierozpoznania znaków, a więc sytuacji, w której znajdujący się w obrazie znak zostaje odrzucony. Pozostałe wyniki to przypadki błędnego rozpoznania znaku - przyporządkowania do złej klasy. Macierz pomyłek przedstawiona jest w tabeli 6.5. Podsumowanie wyników przedstawione jest poniżej macierzy pomyłek. Znajdują się tam wyniki ilościowe i procentowe skuteczności rozpoznawania. Nieprawidłowe rozpoznania, oraz brak rozpoznania są niemalże równoprawdopodobne i wynoszą odpowiednio 6.44% i 5.45%. i stanowią uzupełnienie skuteczności rozpoznawania do 100%. Prawidłowe rozpoznania to 88.12% co jest wynikiem bardzo zbliżonym do wartości otrzymanej w pierwszej części analizy skuteczności algorytmu. Oznacza to, że przyjęte podejście odnośnie wykonania prostszych i szybszych testów tej części było prawidłowe, a uzyskane wyniki są reprezentatywne. Obszary, które nie zawierają znaków, a zostały zinterpretowane jako znaki są dość liczne i w odniesieniu do całkowitej liczby znaków jest to 14.36%. Wynik ten jest duży i powinien być najważniejszym wyznacznikiem przy ewentualnych poprawkach algorytmu. 69

78 Tab.6.5 Wynik skuteczności bloku rozpoznawania Pomimo dobrze dobranego sposobu reprezentacji znaków- wektora cech, oraz dużego nacisku na prawidłowe trenowanie klasyfikatora uzyskano stosunkowo niewielką skuteczność bloku rozpoznawania równą 88%. Przyczyną takiego stanu rzeczy jest niedoskonałe określenie obszaru znaku. Przykładowo lekko przekrzywiony znak zostanie w module 70

79 detektora prawidłowo rozpoznany, jego zawartość jest następnie wycinana stałą maską zależną od wyniku pracy detektora. Przekrzywiony znak jest więc wycinany z otoczenia jako znak ułożony prawidłowo, pociąga to za sobą utworzenie zafałszowanych wektorów cech. Wektor taki może wpłynąć na proces uczenia bloku rozpoznawania (maszyn SVM) i zakłócić prawidłowe obszary znaków w przestrzeni cech. Poddany analizie podczas pracy modułu może zostać nieprawidłowo zinterpretowanym. Sposób wycinania wnętrza znaku także jest niedoskonały, gdyż nie uwzględnia znalezionego kształtu, lecz stosuje sztywne maski co może prowadzić do powstania błędów na brzegach znaku. Ponadto znaki w analizowanych obrazach nie były ich głównym tematem, obrazy przedstawiały znaki w otoczeniu w jakim występują, często były więc obserwowane perspektywicznie, odbijało się od nich światło, były wyblakłe, pomalowane lub przesłonięte. To także wpłynęło na otrzymane wektory cech, a w konsekwencji wpłynęło na uzyskaną skuteczność algorytmu. 6.3 Podsumowanie wyników Test działania całej procedury poszukiwania i rozpoznawania znaków został podzielony na dwie części zgodnie z budową tego algorytmu. Uzyskane wyniki skuteczności detektora rzędu 80% oraz skuteczności identyfikowania 88% wskazują, że oba te moduły są dopracowane z jednakową starannością. Oznacza to także, że ewentualne zwiększenie skuteczności będzie pociągało za sobą konieczność modyfikacji obu tych bloków. Skuteczność całej procedury a więc prawidłowego znalezienia i rozpoznania znaku wynosi zaledwie 70% co nie jest wynikiem zadowalającym. Dla porównania można przytoczyć skuteczności uzyskane w publikacjach naukowych, a przedstawionych w tabeli 6.6 Tab. 6.6 Wyniki skuteczności algorytmów detekcji i rozpoznawania uzyskiwane w innych pracach Uzyskany wynik 70% jest więc dużo gorszy od tych otrzymywanych przez naukowców na świecie, należy jednak mieć na uwadze dużo mniejsze doświadczenie autora tej pracy. Celem uskutecznienia zaprezentowanego algorytmu detekcji i rozpoznawania znaków należałoby zdaniem autora poprawić moduł detektora kolorów i rozbudować go o możliwości adaptacji do oświetlenia lub zmodyfikować procedurę wyznaczania obszarów zainteresowania wykorzystując przykładowo logikę rozmytą (ang. fuzzy logic ). Prace powinny iść także w kierunku bloku obracania przekrzywionych znaków. Największym problemem na jaki natrafiono, a którego nie udało się do końca skutecznie rozwiązać jest detekcja i rozpoznawanie obszarów nie będących znakami. Na tym polu większego nakładu pracy wymagałby detektor, który powinien odrzucić te błędne obszary. Maszyna SVM służąca prawidłowemu rozpoznawaniu kształtów powinna być uzależniona od koloru jaki posiada analizowany kształt. W bloku rozpoznawania poprawienia wymaga sposób wycinania wnętrza znaku, zastosowane stałe maski należałoby wyposażyć w możliwość analizy i 71

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat BIBLIOTEKA PROGRAMU R - BIOPS Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat Biblioteka biops zawiera funkcje do analizy i przetwarzania obrazów. Operacje geometryczne (obrót, przesunięcie,

Bardziej szczegółowo

Przetwarzanie obrazów rastrowych macierzą konwolucji

Przetwarzanie obrazów rastrowych macierzą konwolucji Przetwarzanie obrazów rastrowych macierzą konwolucji 1 Wstęp Obrazy rastrowe są na ogół reprezentowane w dwuwymiarowych tablicach złożonych z pikseli, reprezentowanych przez liczby określające ich jasność

Bardziej szczegółowo

Filtracja obrazu operacje kontekstowe

Filtracja obrazu operacje kontekstowe Filtracja obrazu operacje kontekstowe Podział metod filtracji obrazu Metody przestrzenne i częstotliwościowe Metody liniowe i nieliniowe Główne zadania filtracji Usunięcie niepożądanego szumu z obrazu

Bardziej szczegółowo

Grafika komputerowa. Dla DSI II

Grafika komputerowa. Dla DSI II Grafika komputerowa Dla DSI II Rodzaje grafiki Tradycyjny podział grafiki oznacza wyróżnienie jej dwóch rodzajów: grafiki rastrowej oraz wektorowej. Różnica pomiędzy nimi polega na innej interpretacji

Bardziej szczegółowo

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych Parametryzacja obrazu na potrzeby algorytmów decyzyjnych Piotr Dalka Wprowadzenie Z reguły nie stosuje się podawania na wejście algorytmów decyzyjnych bezpośrednio wartości pikseli obrazu Obraz jest przekształcany

Bardziej szczegółowo

Przetwarzanie obrazów wykład 7. Adam Wojciechowski

Przetwarzanie obrazów wykład 7. Adam Wojciechowski Przetwarzanie obrazów wykład 7 Adam Wojciechowski Przekształcenia morfologiczne Przekształcenia podobne do filtrów, z tym że element obrazu nie jest modyfikowany zawsze lecz tylko jeśli spełniony jest

Bardziej szczegółowo

Analiza obrazów - sprawozdanie nr 2

Analiza obrazów - sprawozdanie nr 2 Analiza obrazów - sprawozdanie nr 2 Filtracja obrazów Filtracja obrazu polega na obliczeniu wartości każdego z punktów obrazu na podstawie punktów z jego otoczenia. Każdy sąsiedni piksel ma wagę, która

Bardziej szczegółowo

Filtracja obrazu operacje kontekstowe

Filtracja obrazu operacje kontekstowe Filtracja obrazu operacje kontekstowe Główne zadania filtracji Usunięcie niepożądanego szumu z obrazu Poprawa ostrości Usunięcie określonych wad obrazu Poprawa obrazu o złej jakości technicznej Rekonstrukcja

Bardziej szczegółowo

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab Zygmunt Wróbel i Robert Koprowski Praktyka przetwarzania obrazów w programie Matlab EXIT 2004 Wstęp 7 CZĘŚĆ I 9 OBRAZ ORAZ JEGO DYSKRETNA STRUKTURA 9 1. Obraz w programie Matlab 11 1.1. Reprezentacja obrazu

Bardziej szczegółowo

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38 Wykład 2 Przetwarzanie obrazów mgr inż. 1/38 Przetwarzanie obrazów rastrowych Jedna z dziedzin cyfrowego obrazów rastrowych. Celem przetworzenia obrazów rastrowych jest użycie edytujących piksele w celu

Bardziej szczegółowo

Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy prosty i skuteczny.

Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy prosty i skuteczny. Filtracja nieliniowa może być bardzo skuteczną metodą polepszania jakości obrazów Filtry nieliniowe Filtr medianowy Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy

Bardziej szczegółowo

Komputerowe obrazowanie medyczne

Komputerowe obrazowanie medyczne Komputerowe obrazowanie medyczne Część II Przetwarzanie i analiza obrazów medycznych Grafika rastrowa i wektorowa W grafice wektorowej obrazy i rysunki składają się z szeregu punktów, przez które prowadzi

Bardziej szczegółowo

Metody komputerowego przekształcania obrazów

Metody komputerowego przekształcania obrazów Metody komputerowego przekształcania obrazów Przypomnienie usystematyzowanie informacji z przedmiotu Przetwarzanie obrazów w kontekście zastosowań w widzeniu komputerowym Wykorzystane materiały: R. Tadeusiewicz,

Bardziej szczegółowo

Obraz jako funkcja Przekształcenia geometryczne

Obraz jako funkcja Przekształcenia geometryczne Cyfrowe przetwarzanie obrazów I Obraz jako funkcja Przekształcenia geometryczne dr. inż Robert Kazała Definicja obrazu Obraz dwuwymiarowa funkcja intensywności światła f(x,y); wartość f w przestrzennych

Bardziej szczegółowo

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 9. Przetwarzanie sygnałów wizyjnych. Politechnika Świętokrzyska.

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 9. Przetwarzanie sygnałów wizyjnych. Politechnika Świętokrzyska. Politechnika Świętokrzyska Laboratorium Cyfrowe przetwarzanie sygnałów Ćwiczenie 9 Przetwarzanie sygnałów wizyjnych. Cel ćwiczenia Celem ćwiczenia jest zapoznanie studentów z funkcjami pozwalającymi na

Bardziej szczegółowo

Proste metody przetwarzania obrazu

Proste metody przetwarzania obrazu Operacje na pikselach obrazu (operacje punktowe, bezkontekstowe) Operacje arytmetyczne Dodanie (odjęcie) do obrazu stałej 1 Mnożenie (dzielenie) obrazu przez stałą Operacje dodawania i mnożenia są operacjami

Bardziej szczegółowo

Przetwarzanie obrazów wykład 4

Przetwarzanie obrazów wykład 4 Przetwarzanie obrazów wykład 4 Adam Wojciechowski Wykład opracowany na podstawie Komputerowa analiza i przetwarzanie obrazów R. Tadeusiewicz, P. Korohoda Filtry nieliniowe Filtry nieliniowe (kombinowane)

Bardziej szczegółowo

Przetwarzanie obrazu

Przetwarzanie obrazu Przetwarzanie obrazu Przekształcenia kontekstowe Liniowe Nieliniowe - filtry Przekształcenia kontekstowe dokonują transformacji poziomów jasności pikseli analizując za każdym razem nie tylko jasność danego

Bardziej szczegółowo

POB Odpowiedzi na pytania

POB Odpowiedzi na pytania POB Odpowiedzi na pytania 1.) Na czym polega próbkowanie a na czym kwantyzacja w procesie akwizycji obrazu, jakiemu rodzajowi rozdzielczości odpowiada próbkowanie a jakiemu kwantyzacja Próbkowanie inaczej

Bardziej szczegółowo

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ Przygotowała mgr Joanna Guździoł e-mail: jguzdziol@wszop.edu.pl WYŻSZA SZKOŁA ZARZĄDZANIA OCHRONĄ PRACY W KATOWICACH 1. Pojęcie grafiki komputerowej Grafika komputerowa

Bardziej szczegółowo

Przekształcenia punktowe

Przekształcenia punktowe Przekształcenia punktowe Przekształcenia punktowe realizowane sa w taki sposób, że wymagane operacje wykonuje sie na poszczególnych pojedynczych punktach źródłowego obrazu, otrzymujac w efekcie pojedyncze

Bardziej szczegółowo

Analiza obrazów. Segmentacja i indeksacja obiektów

Analiza obrazów. Segmentacja i indeksacja obiektów Analiza obrazów. Segmentacja i indeksacja obiektów Wykorzystane materiały: R. Tadeusiewicz, P. Korohoda, Komputerowa analiza i przetwarzanie obrazów, Wyd. FPT, Kraków, 1997 Analiza obrazu Analiza obrazu

Bardziej szczegółowo

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski Przekształcenia widmowe Transformata Fouriera Adam Wojciechowski Przekształcenia widmowe Odmiana przekształceń kontekstowych, w których kontekstem jest w zasadzie cały obraz. Za pomocą transformaty Fouriera

Bardziej szczegółowo

dr inż. Piotr Odya dr inż. Piotr Suchomski

dr inż. Piotr Odya dr inż. Piotr Suchomski dr inż. Piotr Odya dr inż. Piotr Suchomski Podział grafiki wektorowa; matematyczny opis rysunku; małe wymagania pamięciowe (i obliczeniowe); rasteryzacja konwersja do postaci rastrowej; rastrowa; tablica

Bardziej szczegółowo

Grafika na stronie www

Grafika na stronie www Grafika na stronie www Grafika wektorowa (obiektowa) To grafika której obraz jest tworzony z obiektów podstawowych najczęściej lini, figur geomtrycznych obrazy są całkowicie skalowalne Popularne programy

Bardziej szczegółowo

Przetwarzanie obrazów wykład 6. Adam Wojciechowski

Przetwarzanie obrazów wykład 6. Adam Wojciechowski Przetwarzanie obrazów wykład 6 Adam Wojciechowski Przykłady obrazów cyfrowych i ich F-obrazów Parzysta liczba powtarzalnych wzorców Transformata Fouriera może być przydatna przy wykrywaniu określonych

Bardziej szczegółowo

Reprezentacja i analiza obszarów

Reprezentacja i analiza obszarów Cechy kształtu Topologiczne Geometryczne spójność liczba otworów liczba Eulera szkielet obwód pole powierzchni środek ciężkości ułożenie przestrzenne momenty wyższych rzędów promienie max-min centryczność

Bardziej szczegółowo

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory GRAFIKA Rodzaje grafiki i odpowiadające im edytory Obraz graficzny w komputerze Może być: utworzony automatycznie przez wybrany program (np. jako wykres w arkuszu kalkulacyjnym) lub urządzenie (np. zdjęcie

Bardziej szczegółowo

Akwizycja obrazów. Zagadnienia wstępne

Akwizycja obrazów. Zagadnienia wstępne Akwizycja obrazów. Zagadnienia wstępne Wykorzystane materiały: R. Tadeusiewicz, P. Korohoda, Komputerowa analiza i przetwarzanie obrazów, Wyd. FPT, Kraków, 1997 A. Przelaskowski, Techniki Multimedialne,

Bardziej szczegółowo

Analiza obrazów - sprawozdanie nr 3

Analiza obrazów - sprawozdanie nr 3 Analiza obrazów - sprawozdanie nr 3 Przekształcenia morfologiczne Przekształcenia morfologiczne wywodzą się z morfologii matematycznej, czyli dziedziny, która opiera się na teorii zbiorów, topologii i

Bardziej szczegółowo

Przetwarzanie obrazów wykład 2

Przetwarzanie obrazów wykład 2 Przetwarzanie obrazów wykład 2 Adam Wojciechowski Wykład opracowany na podstawie Komputerowa analiza i przetwarzanie obrazów R. Tadeusiewicz, P. Korohoda Etapy obróbki pozyskanego obrazu Obróbka wstępna

Bardziej szczegółowo

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej GRAFIKA RASTROWA WYKŁAD 1 Wprowadzenie do grafiki rastrowej Jacek Wiślicki Katedra Informatyki Stosowanej Grafika rastrowa i wektorowa W grafice dwuwymiarowej wyróżnia się dwa rodzaje obrazów: rastrowe,

Bardziej szczegółowo

Analiza obrazu. wykład 4. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009

Analiza obrazu. wykład 4. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Analiza obrazu komputerowego wykład 4 Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Filtry górnoprzepustowe - gradienty Gradient - definicje Intuicyjnie, gradient jest wektorem, którego zwrot wskazuje

Bardziej szczegółowo

Operacje morfologiczne w przetwarzaniu obrazu

Operacje morfologiczne w przetwarzaniu obrazu Przekształcenia morfologiczne obrazu wywodzą się z morfologii matematycznej działu matematyki opartego na teorii zbiorów Wykorzystuje się do filtracji morfologicznej, wyszukiwania informacji i analizy

Bardziej szczegółowo

Diagnostyka obrazowa

Diagnostyka obrazowa Diagnostyka obrazowa 1. Cel ćwiczenia Ćwiczenie czwarte Przekształcenia morfologiczne obrazu Ćwiczenie ma na celu zapoznanie uczestników kursu Diagnostyka obrazowa z definicjami operacji morfologicznych

Bardziej szczegółowo

PRZETWARZANIE SYGNAŁÓW

PRZETWARZANIE SYGNAŁÓW PRZETWARZANIE SYGNAŁÓW SEMESTR V Wykład VIII Podstawy przetwarzania obrazów Filtracja Przetwarzanie obrazu w dziedzinie próbek Przetwarzanie obrazu w dziedzinie częstotliwości (transformacje częstotliwościowe)

Bardziej szczegółowo

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

Detekcja twarzy w obrazie

Detekcja twarzy w obrazie Detekcja twarzy w obrazie Metoda na kanałach RGB 1. Należy utworzyć nowy obrazek o wymiarach analizowanego obrazka. 2. Dla każdego piksela oryginalnego obrazka pobiera się informację o wartości kanałów

Bardziej szczegółowo

Teoria światła i barwy

Teoria światła i barwy Teoria światła i barwy Powstanie wrażenia barwy Światło może docierać do oka bezpośrednio ze źródła światła lub po odbiciu od obiektu. Z oka do mózgu Na siatkówce tworzony pomniejszony i odwrócony obraz

Bardziej szczegółowo

Implementacja filtru Canny ego

Implementacja filtru Canny ego ANALIZA I PRZETWARZANIE OBRAZÓW Implementacja filtru Canny ego Autor: Katarzyna Piotrowicz Kraków,2015-06-11 Spis treści 1. Wstęp... 1 2. Implementacja... 2 3. Przykłady... 3 Porównanie wykrytych krawędzi

Bardziej szczegółowo

MODELE KOLORÓW. Przygotował: Robert Bednarz

MODELE KOLORÓW. Przygotował: Robert Bednarz MODELE KOLORÓW O czym mowa? Modele kolorów,, zwane inaczej systemami zapisu kolorów,, są różnorodnymi sposobami definiowania kolorów oglądanych na ekranie, na monitorze lub na wydruku. Model RGB nazwa

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego

Bardziej szczegółowo

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 10 AiR III

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 10 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

Cyfrowe przetwarzanie obrazów. Dr inż. Michał Kruk

Cyfrowe przetwarzanie obrazów. Dr inż. Michał Kruk Cyfrowe przetwarzanie obrazów Dr inż. Michał Kruk Przekształcenia morfologiczne Morfologia matematyczna została stworzona w latach sześddziesiątych w Wyższej Szkole Górniczej w Paryżu (Ecole de Mines de

Bardziej szczegółowo

Przekształcenia kontekstowe. Filtry nieliniowe Typowy przykład usuwania zakłóceń z obrazu

Przekształcenia kontekstowe. Filtry nieliniowe Typowy przykład usuwania zakłóceń z obrazu Definicja Przekształcenia kontekstowe są to przekształcenia które dla wyznaczenia wartości jednego punktu obrazu wynikowego trzeba dokonać określonych obliczeń na wielu punktach obrazu źródłowego. Przekształcenia

Bardziej szczegółowo

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2. Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2. Technika obrazu 24 W.3. Normalizacja w zakresie obrazu cyfrowego

Bardziej szczegółowo

Ćwiczenie 6. Transformacje skali szarości obrazów

Ćwiczenie 6. Transformacje skali szarości obrazów Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 6. Transformacje skali szarości obrazów 1. Obraz cyfrowy Obraz w postaci cyfrowej

Bardziej szczegółowo

Ćwiczenie 2. Przetwarzanie graficzne plików. Wprowadzenie teoretyczne

Ćwiczenie 2. Przetwarzanie graficzne plików. Wprowadzenie teoretyczne Ćwiczenie Przetwarzanie graficzne plików Wprowadzenie teoretyczne ddytywne składanie kolorów (podstawowe barwy R, G, ) arwy składane addytywnie wykorzystywane są najczęściej w wyświetlaczach, czyli stosuje

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne Grafika komputerowa Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności December 12, 2016 1 Wprowadzenie 2 Optyka 3 Geometria 4 Grafika rastrowa i wektorowa 5 Kompresja danych Wprowadzenie

Bardziej szczegółowo

Gimp Grafika rastrowa (konwersatorium)

Gimp Grafika rastrowa (konwersatorium) GIMP Grafika rastrowa Zjazd 1 Prowadzący: mgr Agnieszka Paradzińska 17 listopad 2013 Gimp Grafika rastrowa (konwersatorium) Przed przystąpieniem do omawiania cyfrowego przetwarzania obrazów niezbędne jest

Bardziej szczegółowo

Diagnostyka obrazowa

Diagnostyka obrazowa Diagnostyka obrazowa Ćwiczenie drugie Podstawowe przekształcenia obrazu 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie uczestników kursu Diagnostyka obrazowa z podstawowymi przekształceniami obrazu wykonywanymi

Bardziej szczegółowo

Reprezentacja i analiza obszarów

Reprezentacja i analiza obszarów Cechy kształtu Topologiczne Geometryczne spójność liczba otworów liczba Eulera szkielet obwód pole powierzchni środek cięŝkości ułoŝenie przestrzenne momenty wyŝszych rzędów promienie max-min centryczność

Bardziej szczegółowo

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 11. Filtracja sygnałów wizyjnych

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 11. Filtracja sygnałów wizyjnych Laboratorium Cyfrowe przetwarzanie sygnałów Ćwiczenie 11 Filtracja sygnałów wizyjnych Operacje kontekstowe (filtry) Operacje polegające na modyfikacji poszczególnych elementów obrazu w zależności od stanu

Bardziej szczegółowo

Diagnostyka obrazowa

Diagnostyka obrazowa Diagnostyka obrazowa Ćwiczenie czwarte Przekształcenia morfologiczne obrazu 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie uczestników kursu Diagnostyka obrazowa z definicjami operacji morfologicznych

Bardziej szczegółowo

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 3 AiR III

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 3 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka + Plan wykładu Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie 2 Wprowadzenie Po co obrabiamy zdjęcia Obrazy wektorowe i rastrowe Wielkość i rozdzielczość obrazu Formaty graficzne

Bardziej szczegółowo

ALGORYTMY PRZETWARZANIA OBRAZÓW Projekt. Aplikacja przetwarzająca obrazy z możliwością eksportu i importu do programu MS Excel.

ALGORYTMY PRZETWARZANIA OBRAZÓW Projekt. Aplikacja przetwarzająca obrazy z możliwością eksportu i importu do programu MS Excel. Grupa IZ07IO1 Wyższa Szkoła Informatyki Stosowanej i Zarządzania WIT ALGORYTMY PRZETWARZANIA OBRAZÓW Projekt Aplikacja przetwarzająca obrazy z możliwością eksportu i importu do programu MS Excel. Wykonali:

Bardziej szczegółowo

Operacje przetwarzania obrazów monochromatycznych

Operacje przetwarzania obrazów monochromatycznych Operacje przetwarzania obrazów monochromatycznych Obraz pobrany z kamery lub aparatu często wymaga dalszej obróbki. Jej celem jest poprawienie jego jakości lub uzyskaniem na jego podstawie określonych

Bardziej szczegółowo

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy Wykorzystane materiały: Zadanie W dalszej części prezentacji będzie omawiane zagadnienie rozpoznawania twarzy Problem ten można jednak uogólnić

Bardziej szczegółowo

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wyższa Szkoła Informatyki Stosowanej i Zarządzania Wyższa Szkoła Informatyki Stosowanej i Zarządzania WIT Grupa IZ06TC01, Zespół 3 PRZETWARZANIE OBRAZÓW Sprawozdanie z ćwiczeń laboratoryjnych Ćwiczenie nr 5 Temat: Modelowanie koloru, kompresja obrazów,

Bardziej szczegółowo

Grafika komputerowa. Oko posiada pręciki (100 mln) dla detekcji składowych luminancji i 3 rodzaje czopków (9 mln) do detekcji koloru Żółty

Grafika komputerowa. Oko posiada pręciki (100 mln) dla detekcji składowych luminancji i 3 rodzaje czopków (9 mln) do detekcji koloru Żółty Grafika komputerowa Opracowali: dr inż. Piotr Suchomski dr inż. Piotr Odya Oko posiada pręciki (100 mln) dla detekcji składowych luminancji i 3 rodzaje czopków (9 mln) do detekcji koloru Czerwony czopek

Bardziej szczegółowo

Analiza obrazu. wykład 1. Marek Jan Kasprowicz Uniwersytet Rolniczy Marek Jan Kasprowicz Analiza obrazu komputerowego 2009 r.

Analiza obrazu. wykład 1. Marek Jan Kasprowicz Uniwersytet Rolniczy Marek Jan Kasprowicz Analiza obrazu komputerowego 2009 r. Analiza obrazu komputerowego wykład 1 Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Plan wykładu Wprowadzenie pojęcie obrazu cyfrowego i analogowego Geometryczne przekształcenia obrazu Przekształcenia

Bardziej szczegółowo

Do opisu kolorów używanych w grafice cyfrowej śluzą modele barw.

Do opisu kolorów używanych w grafice cyfrowej śluzą modele barw. Modele barw Do opisu kolorów używanych w grafice cyfrowej śluzą modele barw. Każdy model barw ma własna przestrzeo kolorów, a co za tym idzie- własny zakres kolorów możliwych do uzyskania oraz własny sposób

Bardziej szczegółowo

Samochodowy system detekcji i rozpoznawania znaków drogowych. Sensory w budowie maszyn i pojazdów Maciej Śmigielski

Samochodowy system detekcji i rozpoznawania znaków drogowych. Sensory w budowie maszyn i pojazdów Maciej Śmigielski Samochodowy system detekcji i rozpoznawania znaków drogowych Sensory w budowie maszyn i pojazdów Maciej Śmigielski Rozpoznawanie obrazów Rozpoznawaniem obrazów możemy nazwać proces przetwarzania i analizowania

Bardziej szczegółowo

Grafika rastrowa (bitmapa)-

Grafika rastrowa (bitmapa)- Grafika komputerowa Grafika rastrowa Grafika rastrowa (bitmapa)- sposób zapisu obrazów w postaci prostokątnej tablicy wartości, opisujących kolory poszczególnych punktów obrazu (prostokątów składowych).

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Zastosowania grafiki komputerowej Światło widzialne Fizjologia narządu wzroku Metody powstawania barw Modele barw

Bardziej szczegółowo

Przekształcenia morfologiczne II i operacje na obrazach logicznych

Przekształcenia morfologiczne II i operacje na obrazach logicznych Przekształcenia morfologiczne II i operacje na obrazach logicznych 1 Przekształcenia morfologiczne 1.1 Ścienianie i Pogrubianie Pogrubianie i ścienianie: Operacje te polegają na nałożeniu lub ściągnięciu

Bardziej szczegółowo

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 2.3. Model rastrowy Rastrowy model danych wykorzystywany jest dla gromadzenia i przetwarzania danych pochodzących ze skanowania istniejących

Bardziej szczegółowo

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka + Plan wykładu Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie 2 Po co obrabiamy zdjęcia Poprawa jasności, kontrastu, kolorów itp. Zdjęcie wykonano w niesprzyjających warunkach (złe

Bardziej szczegółowo

1 LEKCJA. Definicja grafiki. Główne działy grafiki komputerowej. Programy graficzne: Grafika rastrowa. Grafika wektorowa. Grafika trójwymiarowa

1 LEKCJA. Definicja grafiki. Główne działy grafiki komputerowej. Programy graficzne: Grafika rastrowa. Grafika wektorowa. Grafika trójwymiarowa 1 LEKCJA Definicja grafiki Dział informatyki zajmujący się wykorzystaniem komputerów do generowania i przetwarzania obrazów (statycznych i dynamicznych) oraz wizualizacją danych. Główne działy grafiki

Bardziej szczegółowo

Cała prawda o plikach grafiki rastrowej

Cała prawda o plikach grafiki rastrowej ~ 1 ~ Cała prawda o plikach grafiki rastrowej Grafika rastrowa to rodzaj grafiki zapisywanej na dysku w postaci bitmapy, czyli zbioru pikseli. W edytorach grafiki rastrowej możliwa jest edycja na poziomie

Bardziej szczegółowo

Filtracja nieliniowa obrazu

Filtracja nieliniowa obrazu Informatyka, S1 sem. letni, 2014/2015, wykład#4 Filtracja nieliniowa obrazu dr inż. Paweł Forczmański Katedra Systemów Multimedialnych, Wydział Informatyki ZUT 1 / 61 Proces przetwarzania obrazów Obraz

Bardziej szczegółowo

Cyfrowe Przetwarzanie Obrazów. Karol Czapnik

Cyfrowe Przetwarzanie Obrazów. Karol Czapnik Cyfrowe Przetwarzanie Obrazów Karol Czapnik Podstawowe zastosowania (1) automatyka laboratoria badawcze medycyna kryminalistyka metrologia geodezja i kartografia 2/21 Podstawowe zastosowania (2) komunikacja

Bardziej szczegółowo

Filtracja liniowa (metody konwolucyjne, tzn. uwzględniające pewne otoczenie przetwarzanego piksla):

Filtracja liniowa (metody konwolucyjne, tzn. uwzględniające pewne otoczenie przetwarzanego piksla): WYKŁAD 3 Operacje sąsiedztwa Są to operacje, w których na wartość zadanego piksla obrazu wynikowego q o współrz. (i,j) mają wpływ wartości piksli pewnego otoczenia piksla obrazu pierwotnego p o współrzędnych

Bardziej szczegółowo

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów WYKŁAD 1 Analiza obrazu Wyznaczanie parametrów ruchu obiektów Cel analizy obrazu: przedstawienie każdego z poszczególnych obiektów danego obrazu w postaci wektora cech dla przeprowadzenia procesu rozpoznania

Bardziej szczegółowo

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 1 AiR III

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 1 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

Przetwarzanie obrazu

Przetwarzanie obrazu Przetwarzanie obrazu Przegląd z uwzględnieniem obrazowej bazy danych Tatiana Jaworska Jaworska@ibspan.waw.pl www.ibspan.waw.pl/~jaworska Umiejscowienie przetwarzania obrazu Plan prezentacji Pojęcia podstawowe

Bardziej szczegółowo

9. OBRAZY i FILTRY BINARNE 9.1 Erozja, dylatacja, zamykanie, otwieranie

9. OBRAZY i FILTRY BINARNE 9.1 Erozja, dylatacja, zamykanie, otwieranie 9. OBRAZY i FILTRY BINARNE 9.1 Erozja, dylatacja, zamykanie, otwieranie Obrazy binarne to takie, które mają tylko dwa poziomy szarości: 0 i 1 lub 0 i 255. ImageJ wykorzystuje to drugie rozwiązanie - obrazy

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a TEMATYKA: Krzywe Bézier a Ćwiczenia nr 7 DEFINICJE: Interpolacja: przybliżanie funkcji za pomocą innej funkcji, zwykle wielomianu, tak aby były sobie równe w zadanych punktach. Poniżej przykład interpolacji

Bardziej szczegółowo

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 8 AiR III

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 8 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

3. OPERACJE BEZKONTEKSTOWE

3. OPERACJE BEZKONTEKSTOWE 3. OPERACJE BEZKONTEKSTOWE 3.1. Tablice korekcji (LUT) Przekształcenia bezkontekstowe (punktowe) to takie przekształcenia obrazu, w których zmiana poziomu szarości danego piksela zależy wyłącznie od jego

Bardziej szczegółowo

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT. WYDZIAŁ: GEOLOGII, GEOFIZYKI I OCHRONY ŚRODOWISKA KIERUNEK STUDIÓW: INFORMATYKA STOSOWANA RODZAJ STUDIÓW: STACJONARNE I STOPNIA ROK AKADEMICKI 2014/2015 WYKAZ PRZEDMIOTÓW EGZAMINACYJNYCH: I. Systemy operacyjne

Bardziej szczegółowo

Rozpoznawanie Twarzy i Systemy Biometryczne

Rozpoznawanie Twarzy i Systemy Biometryczne Filtry Plan wykładu Przegląd dostępnych filtrów Zastosowanie filtrów na różnych etapach pracy systemu Dalsze badania Kontrast i ostrość Kontrast różnica w kolorze i świetle między częściami ś i obrazu

Bardziej szczegółowo

Filtracja splotowa obrazu

Filtracja splotowa obrazu Informatyka, S1 sem. letni, 2012/2013, wykład#3 Filtracja splotowa obrazu dr inż. Paweł Forczmański Katedra Systemów Multimedialnych, Wydział Informatyki ZUT 1 / 53 Proces przetwarzania obrazów Obraz f(x,y)

Bardziej szczegółowo

Transformata Fouriera

Transformata Fouriera Transformata Fouriera Program wykładu 1. Wprowadzenie teoretyczne 2. Algorytm FFT 3. Zastosowanie analizy Fouriera 4. Przykłady programów Wprowadzenie teoretyczne Zespolona transformata Fouriera Jeżeli

Bardziej szczegółowo

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do 0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

CECHY BIOMETRYCZNE: ODCISK PALCA

CECHY BIOMETRYCZNE: ODCISK PALCA CECHY BIOMETRYCZNE: ODCISK PALCA Odcisk palca można jednoznacznie przyporządkować do osoby. Techniki pobierania odcisków palców: Czujniki pojemnościowe - matryca płytek przewodnika i wykorzystują zjawisko

Bardziej szczegółowo

zna wybrane modele kolorów i metody transformacji między nimi zna podstawowe techniki filtracji liniowej, nieliniowej dla obrazów cyfrowych

zna wybrane modele kolorów i metody transformacji między nimi zna podstawowe techniki filtracji liniowej, nieliniowej dla obrazów cyfrowych Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Wydział Matematyki i Informatyki Instytut Informatyki Przetwarzanie i analiza obrazów cyfrowych w

Bardziej szczegółowo

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 7 AiR III

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 7 AiR III 1 Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może

Bardziej szczegółowo

Analiza obrazu. wykład 6. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009

Analiza obrazu. wykład 6. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Analiza obrazu komputerowego wykład 6 Marek Jan Kasprowicz Uniwersytet Rolniczy 2009 Slajdy przygotowane na podstawie książki Komputerowa analiza obrazu R.Tadeusiewicz, P. Korohoda, oraz materiałów ze

Bardziej szczegółowo

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

Bardziej szczegółowo

Grenlandia się topi badanie rozkładu kątów pomiędzy strumykami na lądolodzie na podstawie analizy obrazu

Grenlandia się topi badanie rozkładu kątów pomiędzy strumykami na lądolodzie na podstawie analizy obrazu Grenlandia się topi badanie rozkładu kątów pomiędzy strumykami na lądolodzie na podstawie analizy obrazu Małgorzata Bąk, Marcin Byra, Filip Chudzyński, Marcin Osiekowicz Opiekun: dr hab. Piotr Szymczak

Bardziej szczegółowo

Percepcja obrazu Podstawy grafiki komputerowej

Percepcja obrazu Podstawy grafiki komputerowej Percepcja obrazu Podstawy grafiki komputerowej Światło widzialne wycinek szerokiego widma fal elektromagnetycznych 1 Narząd wzroku Narząd wzroku jest wysoko zorganizowanym analizatorem zmysłowym, którego

Bardziej szczegółowo

Photoshop. Podstawy budowy obrazu komputerowego

Photoshop. Podstawy budowy obrazu komputerowego Photoshop Podstawy budowy obrazu komputerowego Wykład 1 Autor: Elżbieta Fedko O czym dzisiaj będziemy mówić? Co to jest grafika komputerowa? Budowa obrazu w grafice wektorowej i rastrowej. Zastosowanie

Bardziej szczegółowo

FORMATY PLIKÓW GRAFICZNYCH

FORMATY PLIKÓW GRAFICZNYCH FORMATY PLIKÓW GRAFICZNYCH Różnice między nimi. Ich wady i zalety. Marta Łukasik Plan prezentacji Formaty plików graficznych Grafika wektorowa Grafika rastrowa GIF PNG JPG SAV FORMATY PLIKÓW GRAFICZNYCH

Bardziej szczegółowo

Dodatek B - Histogram

Dodatek B - Histogram Dodatek B - Histogram Histogram to nic innego, jak wykres pokazujący ile elementów od czarnego (od lewej) do białego (prawy koniec histogramu) zostało zarejestrowanych na zdjęciu. Może przedstawiać uśredniony

Bardziej szczegółowo

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk

i ruchów użytkownika komputera za i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Promotor: dr Adrian Horzyk System śledzenia oczu, twarzy i ruchów użytkownika komputera za pośrednictwem kamery internetowej i pozycjonujący oczy cyberagenta internetowego na oczach i akcjach użytkownika Mirosław ł Słysz Promotor:

Bardziej szczegółowo