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

Praca dyplomowa - dsp.agh.edu.plpraca_dyplomowa.pdf · naukowych w tej tematyce. Wprowadzony został także podział metod detekcji i szczegółowo zaprezentowano metodę detekcji

Embed Size (px)

Citation preview

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI,

INFORMATYKI I ELEKTRONIKI

KATEDRA TELEKOMUNIKACJI

Praca dyplomowa

magisterska

Imię i nazwisko Adam Pyka

Kierunek studiów Elektronika i Telekomunikacja

Temat pracy dyplomowej Przenośny system detekcji

i rozpoznawania znaków drogowych

Opiekun pracy dr inż. Jakub Gałka

Kraków, rok 2011

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.

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.

Niniejszą pracę chciałbym dedykować mojej żonie,

która wierzyła we mnie nawet gdy ja zwątpiłem.

Spis treści

1. Wstęp

1.1 Cel pracy …………………………………………………………………. 1

1.2 Zakres pracy ……………………………………………………………… 1

2. Wprowadzenie do świata obrazów …………………………………………… 3

2.1 Przestrzenie barw …………………………………………………………. 3

2.2 Reprezentacja obrazów …………………………………………………… 5

3. Przekształcenia i analiza obrazów ……………………………………………. 7

3.1 Przekształcenia geometryczne ……………………………………………. 7

3.2 Przekształcenia punktów …………………………………………………. 8

3.2.1 Histogram i wyrównanie histogramu ……………………………… 8

3.2.2 Korekcja gamma …………………………………………………... 10

3.2.3 Binaryzacja ………………………………………………………… 11

3.3 Przekształcenia kontekstowe ……………………………………………… 12

3.3.1 Splot ………………………………………………………………. 13

3.3.2 Filtry 2-D ………………………………………………………….. 14

3.3.2.1 Filtry dolnoprzepustowe ………………………………………. 15

3.3.2.2 Filtry górnoprzepustowe ………………………………………. 16

3.4 Przekształcenia morfologiczne ……………………………………………. 20

3.4.1 Erozja ……………………………………………………………… 20

3.4.2 Dylatacja …………………………………………………………… 21

3.4.3 Otwarcie i zamknięcie ……………………………………………… 22

3.4.4 Detekcja ekstremów: Top-Hat, Bottom-Hat ……………………….. 23

3.4.5 Ścienianie i pogrubianie …………………………………………… 24

3.4.6 Szkieletyzacja i obcinanie gałęzi …………………………………… 25

3.4.7 Trafi - nie trafi ……………………………………………………… 27

3.5 Analiza obrazów …………………………………………………………… 28

3.5.1 Segmentacja i numerowanie ……………………………………….. 28

3.5.2 Współczynniki kształtu …………………………………………….. 29

3.5.3 Momenty główne i centralne ………………………………………. 31

4. Praktyczne wykorzystanie przekształceń- znajdowanie znaków w obrazie …… 32

4.1 ROI („Region Of Interest ”) charakter i właściwości znaków …………….. 32

4.2 Stosowane metody detekcji znaków ………………………………………. 33

4.2.1 Analiza kształtów …………………………………………………... 34

4.2.2 Analiza koloru ……………………………………………………… 38

4.2.3 Porównanie metod …………………………………………………. 40

4.3 Zastosowana metoda detekcji znaków …………………………………….. 41

5. Rozpoznawanie obrazów i metody klasyfikacji wzorców …………………….. 46

5.1 Metody bezpośredniej analizy obrazu ……………………………………… 46

5.2 Metody oparte o generację wektora cech ………………………………….. 48

5.2.1 Powszechnie znane sposoby generowania wektora cech …………… 49

5.2.2 Zastosowana metoda ekstrakcji cech ………………………………. 50

5.3 Klasyfikatory ………………………………………………………………. 52

5.3.1 Maszyna wektorów wspierających SVM …………………………... 53

5.3.2 SVM liniowo separowalnego zbioru wzorców …………………….. 54

5.3.3 SVM nieliniowo separowalnego zbioru wzorców …………………. 57

6. Skuteczność algorytmów ………………………………………………………. 62

6.1 Skuteczność detektora ……………………………………………………... 62

6.2 Skuteczność rozpoznawania ……………………………………………….. 67

6.3 Podsumowanie wyników ………………………………………………….. 71

7. Opis programu …………………………………………………………………. 73

7.1 Obsługa programu …………………………………………………………. 73

7.2 Ważniejsze części i funkcje programu …………………………………….. 77

Dodatek- Porównanie współczynników kształtu oraz momentów geometrycznych …… 83

Literatura ………………………………………………………………………………. 87

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

ci- klasy w SVM

CI, CJ 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

Wykaz ważniejszych akronimów

RGB- przestrzeń barw ang. Red Green Blue

HSV – przestrzeń barw ang. Hue Saturation Value

YUV- przestrzeń barw

CIEXYZ- przestrzeń barw

ROI- obszar zainteresowania ang. Region Of Interest

SKIZ- szkieletyzacja bez stykania obszarów

SVM- maszyna wektorow wspierajacych ang. Support Vector Machine

FRST- szybka transformata radialna ang. Fast Radial Symetry Transform

LUT - operacja odczytu z tablicy ang. Look Up Table

NN- metoda klasyfikacji ang. Nearest Neighbour

k-NN- metoda klasyfikacji ang. k-Nearest Neighbours

NM- metoda klasyfikacji ang. Nearest Mode

MAC - operacja pomnóż i sumuj

FPGA- uklady programowalne

SIFT- ang. Scale Invariant Feature Transform

SURF- ang. Speeded Up Robust Features

PCA- ang. Principal Components Analisis

VC- rozmiar Vapnika-Czervonenkisa

Przenośny system detekcji i rozpoznawania znaków drogowych

1

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

2

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

3

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

Przenośny system detekcji i rozpoznawania znaków drogowych

4

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]

Przenośny system detekcji i rozpoznawania znaków drogowych

5

Składowa „Hue” odpowiada za barwę światła z koła barw i jest wyrażana, jako kąt w

zakresie 0-3600 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

6

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

7

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

Przenośny system detekcji i rozpoznawania znaków drogowych

8

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.

3.2.1 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

Przenośny system detekcji i rozpoznawania znaków drogowych

9

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)

(3.1a)

gdzie jest wartością histogramu dla i tego stopnia szarości, a N jest liczbą pikseli w

obrazie

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

Przenośny system detekcji i rozpoznawania znaków drogowych

10

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.

3.2.2 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 3.6.

Przenośny system detekcji i rozpoznawania znaków drogowych

11

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.

3.2.3 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 3.8

Przenośny system detekcji i rozpoznawania znaków drogowych

12

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

Przenośny system detekcji i rozpoznawania znaków drogowych

13

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.

3.3.1. 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ć dwuwymiarowy1. 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]

Przenośny system detekcji i rozpoznawania znaków drogowych

14

W filtrach 2-D element dla którego realizowana jest w danej chwili filtracja znajduje

się w środku filtru- czerwony kwadrat na rysunku 3.10. 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. 3.10 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.

3.3.2 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

15

3.3.2.1 Filtry dolnoprzepustowe:

Rys.3.11 Obraz po filtracji filtrem uśredniającym 3×3

Rys. 3.12 Obraz po filtracji filtrem uśredniającym 5×5

Przenośny system detekcji i rozpoznawania znaków drogowych

16

Rys. 3.13 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

3.3.2.2 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

17

Rys. 3.15 Wynik działania filtru Prewitt-a w kierunku horyzontalnym i jego maski

Rys. 3.16 Wynik działania filtru Sobela w kierunku horyzontalnym i jego maski

Przenośny system detekcji i rozpoznawania znaków drogowych

18

Rys. 3.17 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 3.18.

Przenośny system detekcji i rozpoznawania znaków drogowych

19

Rys. 3.18 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

Przenośny system detekcji i rozpoznawania znaków drogowych

20

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.

3.4.1 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

21

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. 3.19 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.

3.4.2 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

22

Rys. 3.20 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.

3.4.3 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ń.

Przenośny system detekcji i rozpoznawania znaków drogowych

23

Rys. 3.21 Wynik operacji otwarcia po lewej i zamknięcia po prawej elementem strukturalnym

o rozmiarze 3×3

3.4.4 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. 3.22 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

24

Rys. 3.23 Wynik operacji Top-hat po lewej i laplasjanu po prawej.

3.4.5 Ś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. 3.24 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

25

Rys. 3.25 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 3.26.

Rys. 3.26 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 900 przy

realizowaniu operacji danego brzegu.

3.4.6 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:

Przenośny system detekcji i rozpoznawania znaków drogowych

26

Rys.3.27 Element strukturalny szkieletyzacji.

Obraz oryginalny i jego szkielet przedstawione są na rysunku 3.28:

Rys. 3.28 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. 3.29 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

27

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

Wypukłe

otoczenie

D

Marker lub

centroid

Przybliżenie

wypukłego

otoczenia

E

Obcinanie

gałęzi

SIKZ (LC a

następnie EC)

Detekcja

punktów

końcowych

F

Detekcja

punktów

potrójnych

H

Detekcja

brzegu Erozja

I

Detekcja

odizolowanych

punktów

L

Szkieletyzacja SKIZ (L

C a

następnie EC)

M

Szkieletyzacja

Pogrubianie

izolowanych

punktów

R

Erozja

liniowa

Dylatacja

liniowa

Przenośny system detekcji i rozpoznawania znaków drogowych

28

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.

3.5.1 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).

Przenośny system detekcji i rozpoznawania znaków drogowych

29

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. 3.31 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.

3.5.2 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 LH jest odległością od środka ciężkości obiektu do dalej położonego końca w

osi poziomej, a LV jest odległością od środka ciężkości obiektu do dalej położonego

końca w osi pionowej.

Przenośny system detekcji i rozpoznawania znaków drogowych

30

współczynnik Fereta

(3.9)

gdzie DH jest rozpiętością figury w poziomie, a DV jest rozpiętością figury w pionie.

prostokątność

(3.10)

gdzie S jest polem obiektu, a PP 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 ri 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 li jest minimalną odległością piksela obiektu od konturu tego obiektu, a S jest

powierzchnią obiektu.

współczynnik Haralicka

(3.15)

gdzie di jest odległością i-tego piksela konturu od środka ciężkości figury, a n liczbą

pikseli konturu.

Przenośny system detekcji i rozpoznawania znaków drogowych

31

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ą.

Przenośny system detekcji i rozpoznawania znaków drogowych

32

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

33

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,

Przenośny system detekcji i rozpoznawania znaków drogowych

34

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.

4.2.1 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 900 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 4.2.

Przenośny system detekcji i rozpoznawania znaków drogowych

35

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

(4.1a)

gdzie oznacza ilość boków poszukiwanego kształtu, przykładowo dla trójkąta

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 4.3.

Przenośny system detekcji i rozpoznawania znaków drogowych

36

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 [0- 3600]. 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 4.4.

Przenośny system detekcji i rozpoznawania znaków drogowych

37

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

Przenośny system detekcji i rozpoznawania znaków drogowych

38

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

Przenośny system detekcji i rozpoznawania znaków drogowych

39

przestrzeni HSV. W pierwszej kolejności dokonywana jest binaryzacja na podstawie dwu

składowych H i S z progami TH i TS, następnie obszar ten uzupełnia się o piksele należące do

znaku. Uzupełnienie to także jest procesem binaryzacji, ale z progami tH i tS 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 tH

i tS 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 3.4.4 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

40

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

41

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

Operacje

morfologiczne II

Wektory

brzegowe

Rozdzielanie

obszarów

Sprawdzenie

kształtu- SVM

Sumowanie

obrazów

Operacje

morfologiczne ILUT

Funkcje

przynależności

RGB do HSV

Obraz

wejściowy

Wycięcie

obszaru znaku

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

Przenośny system detekcji i rozpoznawania znaków drogowych

42

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

43

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 4.9.

4.9 Wektory brzegowe

Przenośny system detekcji i rozpoznawania znaków drogowych

44

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 50×50 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 4.10. 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 5.2.2 oraz 5.3

Przenośny system detekcji i rozpoznawania znaków drogowych

45

SVM - S

SVM - N

SVM - W SVM - E

We

kto

r za

ch

od

ni

We

kto

r w

sch

od

ni

Wektor południowy

Wektor północny

Sumowanie

głosów

Decyzja

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 6.1.

Przenośny system detekcji i rozpoznawania znaków drogowych

46

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 5.2.3 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)

Przenośny system detekcji i rozpoznawania znaków drogowych

47

(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].

Przenośny system detekcji i rozpoznawania znaków drogowych

48

Matematycznie pojedynczą komórkę można opisać równaniem (5.2)

(5.2)

gdzie 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 100 100

pikseli wykorzystujący przestrzeń RGB o 8 bitach na kolor zawiera 10000 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

Przenośny system detekcji i rozpoznawania znaków drogowych

49

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 5.2.1 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 5.2.2 omówione są te najbardziej podstawowe.

5.2.1 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

50

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 5.2.2.

5.2.2 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 5.41. 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,

Przenośny system detekcji i rozpoznawania znaków drogowych

51

natomiast -ty element poziomego podwektora jest sumą wartości -tej kolumny obrazu

binarnego (5.41a)

(5.41a)

gdzie jest liczbą kolumn, a jest liczbą wierszy obrazu binarnego

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

52

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,

Przenośny system detekcji i rozpoznawania znaków drogowych

53

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 5.3.1.

5.3.1 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

Przenośny system detekcji i rozpoznawania znaków drogowych

54

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.

5.3.2 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.

Przenośny system detekcji i rozpoznawania znaków drogowych

55

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 H1 i H2, matematycznie zaś przez równania (5.5)

dla H1 (5.5a)

dla H2 (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 (5.6a)

dla (5.6b)

Oba powyższe równania mogą być sprowadzone do pojedynczego równania:

(5.6c)

gdzie oznacza klasę konkurencyjną -tego wektora cech

Przenośny system detekcji i rozpoznawania znaków drogowych

56

Odległości pomiędzy prostymi H1 i H oraz H2 i H są oznaczone kolejno d1 i d2 Pożądanym

przypadkiem jest, aby odległości d1 i d2 były równe. wtedy d=d1=d2 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].

(5.9)

gdzie jest wagą we wzorze Lagrange’a

Żą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 .

Przenośny system detekcji i rozpoznawania znaków drogowych

57

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ł 5.3.2 omawiający problem nieliniowej klasyfikacji SVM.

5.3.3 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ć:

(5.13)

i są wagami wynikającą z ogólnego wzoru mnożników Lagrange’a

Do wyznaczenia konieczne jest obliczenie trzech pochodnych:

(5.14)

Prowadzi to do tego samego równania , jak w przypadku liniowo separowanych wzorców,

tym razem jednak warunkami są:

Przenośny system detekcji i rozpoznawania znaków drogowych

58

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.

(5.16.b)

gdzie: jest wagą -tej funkcji rozwijającej

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:

Przenośny system detekcji i rozpoznawania znaków drogowych

59

(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:

(5.20a)

Zatem:

(5.20b)

gdzie jest nowym wektorem cech

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:

(5.21)

gdzie oznacza funkcję jądra

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ą:

Przenośny system detekcji i rozpoznawania znaków drogowych

60

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

Nowe położenie

hiperpłaszczyznyStare położenie

hiperpłaszczyzny Rys. 5.7 Interpretacja geometryczna procesu uczenia

Przenośny system detekcji i rozpoznawania znaków drogowych

61

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.

(5.22)

gdzie oznacza znak wyrażenia będącego argumentem

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 6.2

Przenośny system detekcji i rozpoznawania znaków drogowych

62

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 1280×768 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 6.2.

6.1 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

Przenośny system detekcji i rozpoznawania znaków drogowych

63

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 znaku-

seria „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”

Przenośny system detekcji i rozpoznawania znaków drogowych

64

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%

Przenośny system detekcji i rozpoznawania znaków drogowych

65

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ą

Przenośny system detekcji i rozpoznawania znaków drogowych

66

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

Przenośny system detekcji i rozpoznawania znaków drogowych

67

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 5.2.2.

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

68

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

Przenośny system detekcji i rozpoznawania znaków drogowych

69

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.

Przenośny system detekcji i rozpoznawania znaków drogowych

70

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

Przenośny system detekcji i rozpoznawania znaków drogowych

71

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

Przenośny system detekcji i rozpoznawania znaków drogowych

72

dopasowania do znalezionego kształtu. Rozwiązanie sposobu klasyfikacji znaków w oparciu o

wektory cech oraz maszynę wektorów wspierających SVM jest dobre i można przypuszczać,

że tym sposobem dałoby się uzyskać skuteczność rzędu 95% lub większą.

Przenośny system detekcji i rozpoznawania znaków drogowych

73

7. Opis programu Zaprojektowany algorytm detekcji i rozpoznawania znaków został napisany w języku C++ w programie Microsoft Visual C++ 2010 Expres. Jądro programu napisane jest z wykorzystaniem biblioteki OpenCV 2.2 Jest to biblioteka wieloplatformowa typu Open source zapoczątkowana przez firmę Intel. Bibliotekę wraz z dokumentacją można ściągnąć ze strony www.opencv.willowgarage.com.

Biblioteka podzielona jest dziesięć modułów, wśród których znajdują się przykładowo bloki umożliwiające otwieranie i zapisywanie obrazów z plików o najpowszechniej stosowanych formatach. Zawiera moduł przetwarzania obrazów, w którym zaimplementowane są histogramy, przekształcenia i transformacje, analiza kształtów i inne. Ponadto biblioteka wyposażona jest w blok uczenia maszynowego, który zawiera algorytm SVM.

Interfejs użytkownika napisany został przy wykorzystaniu biblioteki Qt firmy Nokia. Biblioteka jest wieloplatformowa i zawiera w sobie wiele narzędzi umożliwiających budowę interfejsu użytkownika, a także obsługę procesów, plików, sieci, grafiki trójwymiarowej (OpenGL), baz danych (SQL), języka XML, lokalizacji, wielowątkowości, zaawansowanej obsługi napisów oraz wtyczek.

7.1 Obsługa programu

Program po uruchomieniu przedstawia rysunek 7.1.

Rys. 7.1 Okno detekcji programu

Przenośny system detekcji i rozpoznawania znaków drogowych

74

Program zgodnie ze swoją modułową budową posiada dwie zakładki. Pierwsza przedstawiona na rysunku 7.1 jest związana z modułem detektora i taką nosi nazwę. Druga związana jest z modułem rozpoznawania i będzie przedstawiona w dalszej części opisu. Działanie bloku detektora regulowane jest z kilkoma ustawieniami dostępnymi w zakładce Detektor. Znajdują się tu:

• Wczytaj obraz. Linia adresu do obrazu na którym będzie przeprowadzona detekcji i w dalszej części rozpoznawanie. Wyposażona w dodatkowy przycisk Browse uruchamiający explorera i umożliwiający interaktywne wyszukanie obrazu.

• Wybierz kolor znaku. Trzy przyciski typu zatwierdzającego (ang. Checkbox) uaktywniające funkcje przynależności odpowiadających im kolorów. Zaznaczenie przycisku spowoduje, uaktywnienie wybranej funkcji przynależności, dzięki czemu znaki odpowiadającego im koloru mogą zostać znalezione.

• Rozłączanie znaków. Rozłączanie znaków jest uruchomione bez względu na stan tego przycisku.

• Wektory cech. Ustawienia wektorów cech, ich długości i zakresu. W algorytmie sprawdzania kształtów generowane są wektory cech. W pierwszej kolejności obiekt jest skalowany do rozmiarów określonych przez licznik Istotne punkty wektora. Następnie na podstawie licznika Długość wektora wybierane są punkty dla których wyznaczany jest wektor cech. Możliwe jest zatem skalowanie obszarów do rozmiaru przykładowo 100 pikseli i wyznaczenie 50 elementowego wektora. W takim przypadku będzie brana pod uwagę co druga wyznaczona odległość.

• Wczytaj wektory cech. Przycisk ten oraz następny Utwórz nowe wektory odpowiadają ze wczytanie lub utworzenie nowych wektorów cech. Wektory te należy zatwierdzić trzecim przyciskiem Zastosuj wektory. Rozwiązanie to wprowadzone jest w celu umożliwienia zapisu i ponownego wczytania wektorów cech. Dzięki temu raz wyznaczone wektory można wykorzystać wielokrotnie.

• SVM -jądro maszyny. Trzy przyciski wykluczające określają typ stosowanego przekształcenia

• Wektory trenuj ące. Maszynę SVM detektora można wytrenować na podstawie wszystkich obiektów jakie zostały zapisane we wzorcowych wektorach cech ( w tym także nie będących figurami geometrycznymi), lub tylko tych przedstawiających figury geometryczne.

• Wektory wybrane do trenowania. Spośród wybranych wcześniej wektorów możliwe jest zastosowanie wszystkich do trenowania maszyny SVM lub wylosowanie spośród nich 70% które będą służyły do treningu. Pozostałe 30% stanowić będzie wektor testowy.

• Trenuj i zapisz SVM. Dwa przyciski kontrolujące zastosowaną maszynę wektorów wspierających. Możliwe jest wytrenowanie nowej maszyny na podstawie wszystkich dostępnych w oknie ustawień, lub wczytanie wcześniej wytrenowanej maszyny- Wczytaj SVM. Zapisanie nowej maszyny SVM jest realizowane w rzeczywistości jako zapisanie pięciu plików. Koniecznym jest więc utworzenie nowego folderu dla tych plików.

• Sprawdź SVM. Przycisk służy do testowania działania detektora. Druga zakładka programu zawiera ustawienia bloku rozpoznawania, jej widok przedstawiony jest na rysunku 7.2. Znajdują się tu następujące parametry:

Przenośny system detekcji i rozpoznawania znaków drogowych

75

Rys 7.2 Zakładka bloku rozpoznawania

• Opis znaku w układzie współrzędnych. Dwa wykluczające się przyciski

związane są ze sposobem generowania wektora cech w bloku rozpoznawania. Możliwe jest zastosowanie wektorów wyznaczanych w układzie kartezjańskim lub biegunowym.

• Długość wektora opisującego. Określa długość wektora cech przy rozpoznawaniu. Obszar znaku przed wyznaczeniem wektorów cech skalowany jest do wielkości określonej tym ustawieniem.

• Rodzaj maszyny SVM. Blok rozpoznawania zbudowany jest w oparciu o maszynę wektorów wspierających dla której można zastosować jedno z trzech jąder przekształcenia. Podczas badania skuteczności algorytmu zostały przetestowane dwa spośród tych ustawień: Liniowa i RBF

• Trenuj i zapisz. Przycisk uruchamia okno dialogowe, w którym można wybrać, czy wektory cech mają być utworzone od nowa, czy wczytane z pliku. Utworzenie nowych wektorów uruchamia podprogram, w którym opisuje się każdy znaleziony znak. Wczytanie zapisanych wcześniej wektorów wymaga podania ścieżki dostępu do odpowiedniego pliku i kończy się procedurą trenowania maszyny.

• Testuj obraz. Przycisk uruchamia algorytm główny dla obrazu do którego ścieżka została podana w linii adresowej detektora. Detekcja realizowana jest zgodnie z ustawieniami w zakładce Detektor. Następnie znalezione obszary są analizowane pod względem zawartości i klasyfikowane w bloku rozpoznawania.

Przenośny system detekcji i rozpoznawania znaków drogowych

76

Rozpoznawanie realizowane jest przez maszynę SVM której parametry zostały ustawione w zakładce Rozpoznanie.

Przycisk trenuj i zapisz spowoduje pojawienie się okna dialogowego przedstawionego

na rysunku 7.3. Umożliwia on utworzenie nowych wektorów lub wczytanie wcześniej utworzonych. Jeżeli użytkownik wybierze pierwszą możliwość, to bieżące okno ulegnie zamknięciu, a w jego miejsce pojawi się nowe pokazane na rysunku 7.4.

Rys 7.3 Okno dialogowe

Nowe okno dialogowe służy do wyznaczania nowych wektorów cech znaków.

Wektory te posłużą do wytrenowania maszyny SVM bloku rozpoznawania według ustawień dokonanych w oknie głównym programu. Zakończenie procedury spowoduje automatyczne zapisanie wyników (wektorów cech ) wraz z przypisanymi im kodami w katalogu głównym programu.

Rys. 7.4 Okno dialogowe wyznaczania nowych wektorów cech znaków

Przed przystąpieniem do wyznaczania nowych wektorów cech konieczne jest podanie pliku z listą obrazów dla których procedura ta ma być przeprowadzona. Wyznaczanie nowych wektorów cech jest w istocie ich nazywaniem, nie wymaga więc dokładniejszego omówienia. Jeżeli znalezionym kształtem nie będzie znak lecz inny obiekt, to na liście rozwijanej Typ znaku należy wybrać Brak .

Przenośny system detekcji i rozpoznawania znaków drogowych

77

Pozostałe przyciski w zakładce Rozpoznawanie oraz wybór ustawień i przyciski

menu głównego są nieaktywne i pozostają jako jeden z punktów do dalszego opracowania. Testowanie działania algorytmu po ustawieniu wszystkich parametrów typów maszyn SVM wymaga każdorazowo wprowadzenia adresu nowego obrazu. Zmiana ustawień maszyn SVM wymaga ponownego wczytania wektorów trenujących. Próby testowania skuteczności bez uprzedniego wytrenowania maszyn wektorów wspierających zakończy się błędem działania programu i spowoduje odpowiednia reakcję systemu operacyjnego.

Przetestowanie działania algorytmu w najprostszej wersji przy założeniu, że użytkownik posiada wszystkie niezbędne pliki z danymi maszyn SVM wymaga podjęcia następujących kroków.

1. W zakładce Detektor w polu adresu wybrać należy plik dla którego będzie

przeprowadzana analiza. Można się przy tym posłużyć przyciskiem Browse. 2. Wcisnąć przycisk Wczytaj SVM a następnie podać ścieżkę dostępu do stosownego

pliku z zapisanymi parametrami maszyny SVM. W wybranym katalogu powinny się także znaleźć cztery inne pliki zapisywane automatycznie przy zapisywaniu maszyny SVM.

3. Działanie detektora można sprawdzić klikając przycisk Sprawdź SVM. Ustawienia detektora są gotowe, należy przejść do ustawień bloku rozpoznawania.

4. W bloku rozpoznawania należy wybrać sposób generowania wektora cech oraz jego długość.

5. Należy wybrać tym maszyny SVM, a następnie kliknąć na Trenuj i zapisz. W nowym oknie dialogowym należy wybrać Wczytaj wektory i podać ścieżkę dostępu do pliku z zapisanymi wektorami cech.

6. Można przetestować działanie programu klikając na Testuj obraz 7.2 Ważniejsze części i funkcje programu W rozdziale zostaną przytoczone i omówione bardziej istotne części programu. Przedstawione będą fragmenty algorytmów detekcji i rozpoznawania, oraz przykład wykorzystania właściwości biblioteki Qt przy realizacji interfejsu użytkownika. Przytoczone tu fragmenty stanowią niewielką część kodu i zostały „wyrwane z kontekstu”. Nie mniej ich opis pozwolił odnieść się do zaproponowanej w poprzednich rozdziałach metodzie detekcji i rozpoznawania znaków.

Detektor koloru jest funkcją uruchamianą z czterema argumentami. Pierwszy to referencja do obrazu na którym ma zostać wykonana operacja detekcji kolorów. Jest to nieprzetwarzany obraz odczytany ze wskazanego pliku. Z obrazu tego pod koniec pracy bloku detektora zostaną wycięte fragmenty sklasyfikowane jako figury geometryczne- potencjalne znaki. Pozostałe trzy argumenty funkcji detektora koloru skojarzone są z ustawieniami wyboru koloru w zakładce Detektor. Mat Detect_Sel( Mat &RGB_image, bool R, bool Y, bool B)

{

Zmiana przestrzeni barw z RGB do HSV. Biblioteka OpenCV stosuje w istocie odwrotną przestrzeń RGB czyli pierwszym składnikiem jest kolor niebieski, stąd nazwa parametru CV_BGR2HSV.

Przenośny system detekcji i rozpoznawania znaków drogowych

78

cvtColor(RGB_image,hsv,CV_BGR2HSV); //konwersja z przestrzeni RGB do HSV

Obraz jest następnie rozdzielany na trzy obrazy składowe- monochromatyczne, aby możliwe było zastosowanie odpowiednich masek koloru.

Mat tmp[3]; split(hsv,tmp); // rozdzielanie obrazow

Kolejnym istotnym krokiem jest zbudowanie funkcji przynależności i zastosowanie ich do detekcji kolorów. Detekcja ta jest realizowana jako operacja odczytu z tablicy (ang. Look-at-table) dla składowych H i S osobno.

Mat lutH(1,256,CV_32F,Scalar(0)); Mat lutS(1,256,CV_32F,Scalar(0));

//RED – przygotowanie funkcji przynależności i realizacja operacji LUT

if (R==true)

{ lutH.colRange(0,13)=1; //Funkcje przynależności

lutH.colRange(172,180)=1;

lutS.colRange(120,255)=1; LUT(tmp[0],lutH,H); //tmp[0] -skladowa H obrazu

LUT(tmp[1],lutS,S); //lutH- tablica wartosci, S- obraz wynikowy

RED=H.mul(S,1);

Rezultat znajdowania kolorów jest wynikiem mnożenia składowych H i S, który jest dalej poddawany operacji zamknięcia elementem strukturalnym 3×3

dilate(RED,hsv,Mat::ones(3,3,CV_8U));

erode (hsv,RED,Mat::ones(3,3,CV_8U)); }

Podobnie operacja znajdowania kolorów jest przeprowadzana dla znaków w kolorach niebieskim i żółtym. Ich wyniki są ze sobą sumowane, a następnie poddawane binaryzacji, a na końcu operacji otwarcia.

hsv=RED+YELLOW+BLUE; threshold(hsv,H,0.5,1,THRESH_BINARY);

// progowanie argumenty: hsv-zrodlo, H-wynik, 0.5-prog, 1-wartosc maksymalna

// THRESH_BINARY - tryb binaryzacji- patrz opis na stronie OpenCV

morphologyEx(hsv,H,MORPH_OPEN,Mat::ones(3,3,CV_8U));

H.convertTo(hsv,CV_8UC1); return (hsv);

}

Tak przygotowany obraz zostaje w następnej kolejności przekazany do wyznaczenia wektorów brzegowych i klasyfikacji w maszynie SVM. Realizowane to jest w funkcji vector<figura> Wkontur (Mat &image, Size rozmiar, Size krok_wekt_cech, Vec<int,4>

zakr_wekt_cech )

która w pierwszej kolejności znajduje kontury obiektów, z zastosowanymi parametrami jest to operacja segmentowania i indeksacji. Indeksy przechowywane są w zmiennej hierarchy cv::findContours( image, contours, hierarchy,CV_RETR_TREE, CV_CHAIN_APPROX_NONE );

Przenośny system detekcji i rozpoznawania znaków drogowych

79

/* funkcja znajdowania obszarow, argumenty

image- obraz zrodlowy,

contours- wynik operacji,

hierarchy- hierarchia obszarow CV_RETR_CCOMP-parametr okreslajacy sposób zapamietania konturu

ostatni parametr okresla sposob zapisu- aktualnie zapisuje wszystkie piksele konturu*/

Następnie każdy obiekty jest z obrazu wycinany i analizowany pod kątem pola powierzchni i stopnia prostokątności. Dla obiektów, które przeszły weryfikacje są wyznaczane w pętli wektory brzegowe. //B- obraz zawierajacy analizowany obszar //rozmiar- obiekt klasy Size przechowujący rozmiar obrazu B

//F- obiekt klasy figura przechowujacej wektory brzegowe

for (int i=0;i<fin;i++) {

int j=0;

while(!B.at<long>(i,j++)&& j<rozmiar.width){}; F.left.push_back(j);

j=99;

while(!B.at<long>(i,j--)&& j!=0){}; F.right.push_back(rozmiar.height-j);

};

Kolejną jest funkcja rozłączania dwóch stykających się obszarów. Efektem końcowym jest zbiór wektorów brzegowych zapisanych w obiekcie F klasy figura. Przeprowadzenie tego algorytmu dla wszystkich obszarów w obrazie źródłowym daje w efekcie zbiór obiektów klasy figura. Do zarządzania tym zbiorem posłużono się klasą vector. Zbiór obiektów klasy figura stanowi argument funkcji weryfikacji kształtów, która dla każdej z czterech maszyn SVM realizuje procedurę: //M-macierz do której zostaje przepisany wektor brzegowy z domyślną zmianą typu //figury- zbiór obiektów klasy figura

//wynik- wektor wyników głosowania

M.create(1,figury[i].left.size(),CV_32FC1);

for (int j=0;j<figury[i].left.size();j++)

M.at<float>(0,j)=figury[i].left.get(j);

wynik[static_cast<int>(SVM_L.predict(M))]+=1;

Każda maszyna jako wynik analizy swojego wektora brzegowego wpisuje na

odpowiednie miejsce w wektorze swój głos. Jeżeli maszyna nie rozpoznała figury, to głosuje na klasę bezwartościową- nie reprezentującą żadnego konkretnego kształtu. Weryfikacja głosów jest realizowana w następujący sposób.

//wynik- wektor wyników głosowania

//max- zmienna tymczasowa

//ODP- odpowiedź klasyfikatora głosującego, 0- to nie jest figura geometryczna

for(int i=0;i<7;i++)

{

if(wynik[i]>max) {

max=wynik[i];

Przenośny system detekcji i rozpoznawania znaków drogowych

80

wsk=i;

}

}

ODP.push_back(wynik[wsk]>2 ? wsk : 0);

Jeżeli blok detektora rozpozna figurę geometryczną zgodną z tymi występującymi w znakach drogowych, to wycina stosowny fragment obrazu sprzed zamiany przestrzeni barw z RGB do HSV ( tego będącego argumentem funkcji Detect_Sel.) Wycięty fragment obrazu jest trafia do bloku rozpoznawania do funkcji wyznaczania wektora cech. W pierwszej kolejności obraz ten jest zamieniany na monochromatyczny i wyznaczany jest jego histogram.

//obraz- wyciety fragment obrazu sprzed zamiany przestrzeni barw //temp- wynik zmiany przestrzeni z RGB do monochromatycznej

//CV_BGR2GRAY- typ przekształcenia

cvtColor(obraz,temp,CV_BGR2GRAY);

//Przygotowanie danych do funkcji wyznaczajacej histogram int hbins = 256;

int histSize[] = {hbins};

float hranges[] = { 0, 256 };

const float* ranges[] = { hranges };

MatND hist;

int channels[] = {0};

/*&temp- wektor obrazow dla ktorych tworzony jest histogram

channels- kanaly obrazow dla ktorych beda wyznaczane histogramy Mat()- maska operacji, wpisana wartość to brak maski

hist- wielowymiarowa macierz zawierajaca histogramy

histSize- rozmiar macierzy zawieracej histogramy ranges-zakresy */

calcHist( &temp, 1, channels, Mat(),hist, 1, histSize, ranges,true, false );

Następnie na podstawie momentów bezwładności zostaje wyznaczony próg binaryzacji, a w efekcie binaryzacja obrazu. double maxVal=0; minMaxLoc(hist, 0, &maxVal, 0, 0);

float x=0,d=1; for(int i=0;i<hbins;i++)

{

x+=hist.at<float>(i)*i; //x- moment bezwladnosci I-go rzedu d+=hist.at<float>(i); //d-moment bezwladnosci 0-go rzedu

}

threshold(temp,obraz,x/d,1,CV_8UC1);

Dla obrazu binarnego są w dalszej kolejności wyznaczane wektory cech, poniżej przedstawiony jest algorytm tej procedury w układzie kartezjańskim. Wpierw jednak obraz binarny zostaje przeskalowany do wymaganej wielkości związanej z rozmiarem wektora cech. //obraz- obraz binarny po progowaniu

//temp- obraz- zmienna tymczasowa

//L_elem – docelowy rozmiar wektora cech cv::resize(obraz,temp,Size(L_elem,L_elem));

Przenośny system detekcji i rozpoznawania znaków drogowych

81

//wynik- wektor cech wynik.create(1,temp.size().width+temp.size().height,CV_32F);

for(int i=0;i<temp.size().width;i++) wynik.col(i)=sum(temp.col(i))[0];

for(int i=0;i<temp.size().height;i++) wynik.col(temp.size().width+i)=sum(temp.row(i))[0];

Tak przygotowany wektor cech jest następnie analizowany w maszynie wektorów wspierających w bloku rozpoznawania. Wynikiem tego rozpoznania jest adres linii w pliku z nazwami znaków. Stosowna nazwa zostaje odczytana i wyświetlona jako wynik działania algorytmu. Narzędzia biblioteki Qt są narzędziami obiektowymi. Do przekazywania informacji pomiędzy obiektami biblioteka ta została wyposażona w mechanizm sygnałów i slotów. Każdy obiekt, który zrealizował jakąś operację bądź nastąpiło zdarzenie związane z tym obiektem, generuje globalny sygnał w którym zamieszczone są informacje o stanie tego obiektu. Informacje te mogą być przekazane do dedykowanej do tego funkcji w innym obiekcie. Funkcja ta nosi nazwę slotu i stanowi swoisty port dla informacji, przekazywanych z jednego lub wielu obiektów. Zaobserwowanie sygnału w porcie- slocie skutkuje uruchomieniem tej funkcji na rzecz tego obiektu. Dokładnie mechanizm sygnałów i slotów opisany jest w dokumentacji biblioteki.

W niniejszej pracy autor zastosował mechanizm sygnałów i slotów w wielu miejscach. Jest on wykorzystany w przyciskach gdzie kliknięcie przycisku powoduje wysłanie odpowiedniego sygnału. Trafia on do dedykowanego slotu i uruchamia tam odpowiednie procedury. Mechanizm ten został zastosowany w najprostszej postaci i nie realizuje uruchamiania wielu slotów wieloma sygnałami. Najlepszym przykładem działania mechanizmu jest proces wyznaczania wektorów wzorcowych bloku rozpoznawania. Zastosowane rozwiązanie przedstawione jest graficznie na rysunku 7.5

W bloku okna głównego znajdują się trzy procedury, obie są w stanie wygenerować sygnał nast_znak(). Sygnał ten trafia do slotu znajdz_znak gdzie wczytywany jest nowy obraz i przeprowadzana jest detekcja kształtów jakie w nim występują,oraz wyznaczane są wektory bloku rozpoznawania. Procedura ta po wykonaniu swojego zadania generuje sygnał znajdz_znak_done(obraz). Sygnał ten trafia do slotu pokaz(obraz) w oknie dialogowym, w sygnale tym przekazywany jest obraz wyświetlany w tym oknie. Po reakcji użytkownika generowany jest sygnał dial_done(nazwa) zawierający informacje o kodzie znaku. Sygnał ten podłączony jest do procedury zapisz_wynik(nazwa) która zapisuje wyznaczony wektor cech bloku rozpoznawania wraz z przypisanym mu kodem znaku. Funkcja zapisz_wynik(nazwa) generuje nowy sygnał nast_znak(), który sprawdza, czy są jeszcze obrazy do przeanalizowania i uruchamia procedurę od nowa.

Przenośny system detekcji i rozpoznawania znaków drogowych

82

Rys 7.5 Schemat przepływu sygnałów w procedurze tworzenia nowych wektorów wzorcowych bloku rozpoznawania

Przenośny system detekcji i rozpoznawania znaków drogowych

83

Porównanie współczynników kształtu oraz

momentów geometrycznych

W pierwszej kolejności należy zdefiniować jak powinny się zmieniać wartości

idealnego współczynnika kształtu. Powinien on być niezależny od rozmiarów i obrotu figury.

Poszukiwany współczynnik powinien dobrze rozróżniać figury, tzn. jego wartość dla różnzch

obiektów powinna być zdecydowanie inna. Wymagana jest także odporność na niewielkie

zaburzenia kształtu, gdyż w rzeczywistości znaki mogą być przysłonięte przez inne nie

niewielkie obiekty, jak chociażby drzewa lub śnieg.

W tabelach 1 i 2 przedstawione są wartości współczynników kształtu oraz

niezmienników momentowych dla dwóch figur. W pierwszej kolejności analizowany jest

wpływ wielkości obiektu na wartość współczynnika na podstawie figur geometrycznych

prostokąta i trójkąta.

Tab. 1 Wartości współczynników kształtu i niezmienników momentowych dla różnych

wielkości prostokąta.

Prostokąt Rozmiar obrazu w odniesieniu do oryginału

Współczynnik 120% 100% 80% 60% 40% 20%

zawartości 1.2523 1.2482 1.242 1.2234 1.1964 1.0931

cyrkularności 136.5339 113.9663 91.3987 56.9804 36.668 15.2227

Malinowskiej 0.1191 0.1172 0.1144 0.1061 0.0938 0.0455

prostokątności 1.0167 1.0201 1.0252 1.0408 1.0645 1.1667

Fareta 1 1 1 1.0204 1.0323 1.0833

Blair -Bliss 0.9772 0.9773 0.9773 0.9773 0.9774 0.9786

Haralicka 0.994 0.994 0.994 0.994 0.9939 0.9934

Niezmiennik momentowy

M1 0.1667 0.1667 0.1666 0.1666 0.1666 0.1662

M2 0.0278 0.0278 0.0278 0.0278 0.0278 0.0276

M3*1000 0 0 0 0 0 0

M7 0.0069 0.0069 0.0069 0.0069 0.0069 0.0069

Tab. 2 Wartości współczynników kształtu i niezmienników momentowych dla różnych

wielkości trójkąta

Trójkąt Rozmiar obrazu w odniesieniu do oryginału

Współczynnik 120% 100% 80% 60% 40% 20%

zawartości 1.2931 1.2488 1.3102 1.2229 1.2274 1.2072

cyrkularności 123.7261 101.9733 81.7588 61.5975 40.5118 20.2795

Malinowskiej 0.1371 0.1175 0.1446 0.1059 0.1079 0.0987

prostokątności 0.5265 0.5325 0.5402 0.5394 0.548 0.5493

Fareta 0.763 0.7606 0.7611 0.7647 0.75 0.75

Blair –Bliss 0.9063 0.9061 0.9064 0.9065 0.9059 0.9044

Haralicka 0.9751 0.9752 0.9755 0.9754 0.9745 0.9732

Niezmiennik momentowy

M1 0.1938 0.1939 0.1937 0.1937 0.194 0.1946

M2 0.0376 0.0376 0.0375 0.0375 0.0376 0.0379

M3*1000 1.6032 1.6104 1.5963 1.5922 1.6413 1.6545

M7 0.0092 0.0092 0.0092 0.0092 0.0092 0.0093

Przenośny system detekcji i rozpoznawania znaków drogowych

84

Analizując powyższe wartości należy zauważyć, że dużą zmienność na wielkość

figury wykazuje współczynnik cyrkularności. Jest to wystarczający powód by współczynnik

ten zdyskwalifikować jako przydatny do sprawdzania kształtu. Współczynniki Fereta, BB i

Haralicka oraz niezmienniki momentowe nie zmieniają się w ogóle przy zmianie wielkości

figury, a więc są z tego punktu widzenia najbardziej interesujące. Dobrze wyniki uzyskują

również prostokątność i współczynnik Malinowskiej.

Kolejnym testem jest wpływ obrotu figury na wartości współczynników. Pomiarów

dokonano przy użyciu prostokąta, który był obracany co 150 zgodnie z ruchem wskazówek

zegara. Stosowne dane przedstawia tabela nr 3.

Tab.3 Wpływ ułożenia (obrotu) figury na wartości współczynników.

Kąt obrotu Kąt obrotu w stopniach w prawo

Współczynnik 15˚

30˚ 45˚ 60˚ 75˚

zawartości 1.1659 0.9379 0.7973 0.9379 1.1615

cyrkularności 136.1931 136.0762 136.1744 136.0715 136.1557

Malinowskiej 0.0798 -0.0316 -0.1071 -0.0315 0.0777

prostokątności 0.6788 0.5474 0.513 0.5473 0.6831

Fareta 0.9932 1 0.9941 1 0.9864

Blair -Bliss 0.9773 0.9772 0.9774 0.9772 0.9773

Haralicka 0.9942 0.9941 0.9942 0.9942 0.9942

Niezmiennik momentowy

M1 0.1666 0.1667 0.1666 0.1667 0.1666

M2 0.0278 0.0278 0.0278 0.0278 0.0278

M3*1000 0 0 0 0 0

M7 0.0069 0.0069 0.0069 0.0069 0.0069

W tym przypadku najbardziej wrażliwymi są współczynnik zawartości, Malinowskiej

oraz prostokątności. Współczynniki Fereta, BB i Haralicka a także wszystkie niezmienniki

momentowe są niewrażliwe na tego typu przekształcenia.

We współczynnikach opisujących figury ważne jest także, żeby opis ten jednoznacznie

rozróżniał obiekty. Należy więc oczekiwać jak największej zmienności współczynników dla

różnych figur. Porównanie pod tym względem jest przedstawione w tabeli 4.

Przenośny system detekcji i rozpoznawania znaków drogowych

85

Tab. 4 Wartości współczynników przy różnych figurach geometrycznych.

Współczynnik koło prostokąt trójkąt

równor.

trójkąt

prost. Gwiazda plama strzałka księżyc

Zawartości 0.8021 1.2578 1.2624 1.3354 2.6444 1.7168 1.9727 1.7545

Cyrkularności 118.0006 125.4482 104.5381 98.8862 104.5259 103.0044 54.6187 112.4649

Malinowskiej -0.1044 0.1215 0.1236 0.1556 0.6262 0.3103 0.4045 0.3246

Prostokątności 0.7989 1.0183 0.5312 0.5378 0.3899 0.5947 0.5872 0.5198

Fareta 1.0172 0.8571 0.7902 0.9917 0.9161 1.0973 2.7632 1.1308

Blair –Bliss 0.9999 0.9716 0.9084 0.849 0.8733 0.8865 0.6982 0.7795

Haralicka 1 0.9927 0.976 0.9613 0.9706 0.9677 0.9192 0.9465

Niezmiennik

M1 0.1592 0.1686 0.1929 0.2208 0.2087 0.2025 0.3264 0.2619

M2 0.0253 0.0284 0.0372 0.0608 0.0436 0.0494 0.1066 0.0705

M3*1000 0 0 1.4641 2.7939 0.0067 0.3641 0.0618 4.3565

M7 0.0063 0.0069 0.0092 0.0092 0.0109 0.0082 0.0072 0.0139

Dużą zmienność wykazują współczynnik Malinowskiej, BB oraz niezmienniki M1 i

M2. Biorąc pod uwagę także poprzednie tabele można stwierdzić, że dobrze zachowuje się

M7 oraz wsp. Haralicka mimo że ich wartości niewiele się zmieniają. Szczególną należy

zwrócić na średnice Fereta. Jego wartości wykazują dużą zmienność i niezależność od

transformacji, ponadto doskonale wykrywa on obiekty podłużne. Należy bowiem zwrócić

uwagę, że dla strzałki (która jest podłużna) wartość tego współczynnika znacznie odbiega od

pozostałych jego wartości.

W przypadku zastosowania współczynników do znajdowania znaków drogowych,

istotne jest także ich zachowanie przy nierównomiernych ich kształtach. W rzeczywistości

bowiem znak może być częściowo przesłonięty przez drzewo, obiekt na drodze, śnieg lub

inny znak. W tabeli 5 przedstawiono wyniki współczynników dla różnych imitowanych

zakłóceń.

Tab. 5 Wpływ zniekształceń figur na wartości współczynników.

Współczynnik

Zawartości 1.7096 1.2624 1.315 1.1616 2.5889 1.4531 1.2665

Cyrkularności 113.4456 104.5381 100.7612 101.3031 99.5087 96.9093 99.2781

Malinowskiej 0.3075 0.1236 0.1467 0.0778 0.609 0.2055 0.1254

prostokątności 0.48 0.5312 0.6128 0.5706 0.4813 0.4983 0.5037

Fareta 0.8654 0.7902 0.6364 0.904 0.7902 0.8626 0.8309

Blair –Bliss 0.9004 0.9084 0.9157 0.9288 0.8593 0.8935 0.9038

Haralicka 0.9724 0.976 0.9772 0.981 0.966 0.9732 0.9747

Niezmiennik momentowy

M1 0.1963 0.1929 0.1898 0.1845 0.2156 0.1993 0.1948

M2 0.0388 0.0372 0.036 0.0348 0.0465 0.0398 0.0384

M3*1000 1.0828 1.4641 1.5711 0.7032 1.7041 1.2678 1.6354

M7 0.0094 0.0092 0.0083 0.0083 0.0115 0.0099 0.0093

Przenośny system detekcji i rozpoznawania znaków drogowych

86

W tym przypadku dobrze zachowują się współczynniki: BB, Haralicka, M1, M2, słabą

odporność wykazują natomiast średnice Fereta. Współczynnik Malinowskiej wykazuje małą

odporność na tego typu zakłócenia.

Test zachowania współczynników przy tak małej liczbie danych testujących nie może

być traktowany jako decydujący. Nie mniej pozwala spojrzeć na zachowanie się

współczynników w różnych sytuacjach i wybór tych , które najlepiej rokują jako cechy figur.

Te wybrane współczynniki powinny być sprawdzone na odpowiednio dużej liczbie wektorów

testujących i przy użyciu algorytmu, który potrafiłby określić w jakim stopniu są one

przydatne. Współczynnikami, które zdaniem autora najlepiej spełniają warunki przydatności

to współczynniki: Fereta, BB, Haralick, M1, M2, M7, prostokątności i zawartości. Pozostałe

czyli cyrkularność, wsp. Malinowskiej i M3 nie spełniają stawianych im wymagań. W

literaturze przedmiotu, znajdują się obszerne porównania współczynników kształtu.

Przenośny system detekcji i rozpoznawania znaków drogowych

87

Literatura:

[1] Komputerowa analiza i przetwarzanie obrazów. Ryszard Tadeusiewicz i Przemysław

Korohoda , wyd. Fundacji postępu telekomunikacji, Kraków 1997

[2] Cyfrowe przetwarzanie sygnałów od teorii do zastosowań. Tomasz P. Zieliński,

Wydawnictwa komunikacji i łączności, Warszawa 2007

[3] Nowoczesne metody przetwarzania obrazu. Christopher D.Watkins, Alberto Sadun,

Stephen Marenka, WNT 1995

[4] Metody i algorytmy rozpoznawania obiektów w obrazach cyfrowych. Bogusław

Cyganek. Wydawnictwo AGH, Kraków 2009

[5] Rozpoznawanie obrazów. Tadeusiewicz, Ryszard (1947- ). Państwowe Wydawnictwo

Naukowe, 1991. Seria: Problemy Współczesnej Nauki i Techniki. Informatyka.

[6] Sieci neuronowe. Ryszard Tadeusiewicz Akademicka oficyna wydawnicza RM,

Warszawa 1993

[7] Rozpoznawanie obrazów i sygnałów mowy. Włodzimierz Kasprzak, Warszawa 2009

Oficyna Wydawnicza Politechniki Warszawskiej

[8] Extracting Road Signs using the Color Information. Wen-Yen Wu, Tsung-Cheng

Hsieh, and Ching-Sung Lai, World Academy of Science Engineering and Technology

http://www.waset.org/journals/waset/v32/v32-54.pdf -dostęp 10 styczeń 2011

[9] Circular road signs recognition with soft classifiers. Bogusław Cyganek AGH –

University of Science and Technology, Kraków.

[10] Color-Based Road Sign Detection and Tracking. Luis David Lopez and Olac Fuentes,

Computer Science Department University of Texas, El Paso, USA

[11] Road Sign Detection and Recognition, Michael Shneier, National Institute of

Standards and Technology, Bureau Drive, Gaithersburg

[12] Traffic Sign Detection and Classification using Colour and Shape. F.P. Senekal,

Council for Scientific and Industrial Research, South Africa

[13] Road-Sign Detection and Recognition Based on Support Vector Machines. Saturnino

Maldonado-Bascón, Member, IEEE, Sergio Lafuente-Arroyo, Pedro Gil-Jiménez,

Hilario Gómez-Moreno, Member, IEEE, and Francisco López-Ferreras

[14] Fast Shape-based Road Sign Detection for a Driver Assistance System by Gareth Loy

and Nick Barnes

[15] A Fast Radial Symmetry Transform for Detecting Points of Interest Gareth Loy and

Alexander Zelinsky Australian National University, Canberra 0200, Australia,

http://www.syseng.anu.edu.au/~gareth -dostęp 15 grudzień 2010

[16] SURF: Speeded Up Robust Features. Herbert Bay1, Tinne Tuytelaars, and Luc Van

Gool ETH Zurich, Katholieke Universiteit Leuven

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.2512&rep=rep1&type=p

df -dostęp 5 grudzień 2010

[17] Distinctive Image Features from Scale-Invariant Keypoints. David G. Lowe Computer

Science Department University of British Columbia Vancouver, B.C., Canada,

January 5 2004, http://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf -dostęp 3 listopad 2010

[18] IBM Research Report An empirical study of the naive Bayes classifier. Irina Rish IBM

Research Division Thomas J. Watson Research Center P.O. Box 218 Yorktown

Heights, NY http://www.research.ibm.com/people/r/rish/papers/RC22230.pdf - dostęp

20 styczeń 2010

[19] Nomograms for Visualization of Naive Bayesian Classier. Martin Mozina, Janez

Demsar, Michael Kattan, and Blaz Zupan;

http://www.ailab.si/blaz/papers/2004-PKDD.pdf -dostęp 12 listopad 2010

[20] http://www.algorytm.org/index.php -dostęp 10 marzec 2011

Przenośny system detekcji i rozpoznawania znaków drogowych

88

[21] http://www.flashandmath.com/advanced/color/ - dostęp 20 kwiecień 2011

[22] Real Time Road Signs Recognition. Alberto Broggi, Pietro Cerri, Paolo Medici, Pier

Paolo Porta VisLab – Dipartimento di Ingegneria dell’Informazione Universit`a degli

Studi di Parma, ITALY

[23] Road Signs Recognition using a Dynamic Pixel Spaces. G. Pollaccia, G. Pilato and

E Sorbello

[24] Traffic Sign Recognition by Bags of Features. Kazumasa Ohgushi, Nozomu Hamada

School of Integrated Design Engineering Kio University Kanagawa Japan

[25] General Traffic Sign Recognition by Feature Matching. FeiXiang Ren, Jinsheng

Huang. The University of Auckland, New Zealand 24th International Conference

Image and Vision Computing New Zealand

[26] Object Recognition from Local Scale-Invariant Features David G. Lowe Computer

Science Department University of British Columbia Vancouver, B.C, Canada

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.1181&rep=rep1&type=p

df –dostęp 10 maj 2011

[27] A tutorial on Principal Components Analysis. Lindsay Smith, February 26 2002

http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf -

dostęp 12 pażdziernik 2010

[28] A Tutorial on Support Vector Machines for Pattern Recognition. Christopher J.C.

Burges. Bell Laboratories, Lucent Technologies

http://www.cs.brown.edu/courses/archive/2006-2007/cs195-5/extras/Burges98.pdf -

dostęp 20 wrzesień 2010

[29] Support Vector Machines Explained. Tristan Fletcher www.cs.ucl.ac.uk/sta

/T.Fletcher/ March 1, 2009

[30] Computed Tomography Its History and Technology by SIEMENS medical.

http://www.medical.siemens.com/siemens/zh_CN/gg_ct_FBAs/files/brochures/CT_Hi

story_and_Technology.pdf - dostęp 5 września 2010

[31] An Empirical Comparison of Voting Classication Algorithms: Bagging, Boosting, and

Variants. by Eric Bauer Received 3 Oct 1997; Revised 25 Sept 1998

http://ai.stanford.edu/~ronnyk/vote.pdf - dostęp 20 listopad 2010

[32] A Practical Guide to Support Vector Classifcation. Chih-Wei Hsu, Chih-Chung

Chang, and Chih-Jen Lin, Department of Computer Science National Taiwan

University, Taipei 106, Taiwan http://www.csie.ntu.edu.tw/~cjlin, Initial version: 2003

Last updated: April 15, 2010 – dostęp 24 kwiecien 2010

[33] http://commons.wikimedia.org – dostęp 15 marzec 2011