PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w...

41
AKADEMIA GÓRNICZO-HUTNICZA IM. STANISLAWA STASZICA W KRAKOWIE Wydzial Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki PRACA DYPLOMOWA Inżynierska Program do detekcji i śledzenia toru obiektów geometrycznych w obrazie wideo. Software tool for detection and tracking of the geometric objects in video signal. Piotr Glazor, Tomasz Lukańko Kierunek studiów Elektronika i Telekomunikacja Opiekun Pracy: Dr inż. Jakub Galka

Transcript of PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w...

Page 1: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICAW KRAKOWIE

Wydział Elektrotechniki, Automatyki, Informatyki i ElektronikiKatedra Elektroniki

PRACA DYPLOMOWAInżynierska

Program do detekcji i śledzenia toru obiektów geometrycznych w obraziewideo.

Software tool for detection and tracking of the geometric objects in videosignal.

Piotr Glazor, Tomasz ŁukańkoKierunek studiów Elektronika i Telekomunikacja

Opiekun Pracy: Dr inż. Jakub Gałka

Page 2: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Oświadczamy, świadomi odpowiedzialności karnej za poświadczenie nieprawdy,że niniejszą pracę dyplomową wykonaliśmy osobiście i samodzielnie (w zakre-sie wyszczególnionym we wstępie) i że nie korzystaliśmy ze źródeł innych niżwymienione w prac.

Page 3: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Spis treści

1 Wstęp 51.1 Cyfrowe przetwarzanie obrazów . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Analiza problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3 Założenia projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Zasady działania aplikacji 92.1 Schemat blokowy i opis działania . . . . . . . . . . . . . . . . . . . . . . . 92.2 Wykorzystane narzędzia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Transformacja log-polar 153.1 Wstęp teoretyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Implementacja transformacji log-polar . . . . . . . . . . . . . . . . . . . . . 173.3 Zastosowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Segmentacja obrazu 194.1 Wstęp teoretyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Segmentacja obrazu z wykorzystaniem przestrzeni kolorów HSV . . . . . . 21

5 Ekstrakcja cech obrazu 265.1 Wstęp teoretyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.2 Zastosowanie filtra Sobela . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.3 Analiza obrazu binarnego . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.4 Zastosowanie erozji obrazu . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Implementacja projektu w środowisku Matlab/Simulink 34

7 Zakończenie 38

Page 4: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdziały opracowano w następujący sposób:

• Piotr Glazor:

– Rozdział 2: Zasady działania aplikacji.

– Rozdział 4: Segmentacja obrazu.

– Rozdział 5:

∗ 5.1 Wstęp teoretyczny.

∗ 5.3 Analiza obrazu binarnego.

• Tomasz Łukańko:

– Rozdział 1: Wstęp.

– Rozdział 3: Transformacja log- polar.

– Rozdział 5:

∗ 5.2 Zastosowanie filtra Sobela.

∗ 5.4 Zastosowanie erozji obrazu.

• Rozdziały przygotowane wspólnie:

– Rozdział 6: Implementacja projektu w środowisku Matlab/Simulink.

– Rozdział 7: Zakończenie przygotowano wspólnie.

Page 5: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdział 1

Wstęp

Cyfrowe przetwarzanie oraz analiza obrazów posiada szereg zastosowań w różnych ga-łęziach nauki m.in. elektronice i telekomunikacji (np. rozpoznawanie znaków drogowych),kryminalistyce (np. rozpoznanie zdjęć osób podobnych), automatyce (np. systemy regula-cji automatycznej), medycynie (np. analiza obrazów tomografii rentgenowskich), geodezjii kartografii (np. przetwarzanie zdjęć satelitarnych obejmujących ogromne obszary)[9].Przetwarzanie obrazów odkrywa przed ludźmi wiele nowych możliwości, jest to dziedzinanauki z pogranicza elektroniki, telekomunikacji i informatyki, która wraz z rozwojem tech-nologii komputerowej daje coraz większe możliwości.

W 1964 roku zastosowano komputerowe metody przetwarzania obrazu do poprawyjakości obrazu zdjęć Księżyca, dziś trudno wyobrazić sobie jakikolwiek film, zdjęcie bezcyfrowego przetwarzania obrazu, większość dzisiejszych aparatów cyfrowych posiada opcjedetekcji twarzy, usuwania efektu „czerwonych oczu”. Mówiąc o przetwarzaniu i analizieobrazów należy wspomnieć o możliwości śledzenia obiektów w obrazie wideo. Znalazłoto zastosowanie w kilku bardzo przydatnych aplikacjach, które już poprawiają standardnaszego życia lub uczynią to w niedalekiej przyszłości. Mowa tu o systemach zabezpie-czeń, wykrywających zagrożenie lub podejrzane zachowanie. Systemy pomiaru, obserwacjioraz zarządzania ruchem drogowym pomagają w odpowiednim sterowaniu ruchem orazpozwalają na szybką interwencję w sytuacjach alarmowych. Systemy medyczne ułatwiająanalizę wyników różnego rodzaju badań np. tomografii mózgu.

1.1 Cyfrowe przetwarzanie obrazów

Obraz może zostać zdefiniowany jako funkcja dwóch zmiennych f(x, y), gdzie x i ysą współrzędnymi przestrzennymi, natomiast wartość funkcji f , dla dowolnej pary współ-rzędnych x i y jest poziomem szarości w punkcie (x, y). Jeżeli współrzędne x i y są war-tościami skończonymi, a wartość funkcji f jest dyskretna i skwantowana, to taki obraznazywamy obrazem cyfrowym[8]. Ilość poziomów szarości, zwana także ilością kolorów,w komputerowej analizie obrazów można określić jako ilość bitów opisująca najmniejszy

5

Page 6: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

kawałek obrazu czyli piksel (bpp1). Obrazy możemy podzielić na:

• obrazy binarne - ten format ma duże znaczenie dla algorytmów przetwarzania ob-razów. Zajmuje on najmniej pamięci, ponieważ wartość jednego piksela opisywanajest za pomocą jednego bitu (1bpp),

• obrazy monochromatyczne - format za którego pomocą można zakodować zazwyczaj256 odcieni szarości, jeden piksel opisywany jest za pomocą 8 bitów (8bpp),

• obrazy kolorowe - format opisywany najczęściej za pomocą 24 lub 32 bitów. Naj-bardziej popularna przestrzeń kolorów dla obrazów kolorowych to przestrzeń RGB2,gdzie każda ze składowych jest opisywana za pomocą 8 bitów. Format 32bpp za-wiera zwykle tyle samo informacji co 24bpp, dodatkowe osiem bitów dodanych jestcelem zwiększenia szybkości operacji na obrazie przez systemy wyposażone w szynędanych 32-bitową lub 64-bitową[9].

Wyróżnić można cztery główne rodzaje przetwarzania obrazów. Pierwszy z nich toprzekształcenia geometryczne. Należą do nich rotacje, przesunięcia i transformacje geo-metryczne (np.: transformacja log-polar).

Przekształcenia punktowe są to operacje na poszczególnych, najmniejszych obszarachobrazu - pikselach. Operacje wykonywane są bezkontekstowo w tym sensie, iż na wynikoperacji, dokonanych na poszczególnych pikselach, nie mają wpływu wartości sąsiadują-cych pikseli. Przykładem tej operacji jest tworzenie negatywu lub rozjaśnianie, ściemnianieobrazu.

Przekształcenia przy pomocy filtrów polegają na przetwarzaniu elementów obrazu napodstawie ich wartości oraz na podstawie wartości elementów ich otaczających. Występu-jąca w tym przypadku kontekstowość sprawia, że operacje filtracji mogą być czasochłonne.

Przekształcenia widmowe polegają na operacjach na widmie obrazu. Najpierw na pod-stawie całego obrazu obliczana jest jego tranformata Fouriera. Powstałe dwuwymiarowewidmo jest modyfikowane za pomocą pożądanych operacji. Przekształcenia widmowe wy-kazują podobieństwo do filtracji kontekstowych z tą różnicą, że kontekstem w tym przy-padku jest cały obraz.

Przekształcenia morfologiczne w odróżnieniu od filtracji kontekstowej, nie są wykony-wane zawsze, mają one charakter warunkowy. Jeżeli zostanie spełniony założony waruneklogiczny, wówczas operacja morfologiczna zostanie wykonana. Przykładami tych operacjisą erozja i odwrotna do niej dylatacja.

1ang. bit per pixel2ang. Red, Green, Blue

6

Page 7: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

1.2 Analiza problemu

Tematem pracy jest detekcja oraz śledzenie trajektorii ruchu obiektu w sekwencji wi-deo. Można więc wyróżnić dwa problematyczne zadania. Pierwsze z nich to rozpoznanieżądanego obiektu, w tym przypadku będzie to zielony prostokąt. Drugie natomiast topodążanie za ciągle zmieniającym się położeniem obiektu. Należy zwrócić uwagę na fakt,że obiekt poruszać się może w dowolnym kierunku, jego obraz jest podatny na zniekształ-cenia związane z oddaleniem, przybliżeniem, obrotem. Dlatego aby z powodzeniem śledzićobiekt, należy wyodrębnić najważniejsze dla niego cechy takie jak kolor i kształt.

Rozdział 1 jest wstępem do tematyki przetwarzania obrazów cyfrowych. Kolejne roz-działy bliżej przedstawią projekt.

W rozdziale 2 została opisana zasada działania projektu oraz wykorzystane narzędzia.Rozdział 3 opisuje transformację Log-polar, jako potężne narzędzie do rozpoznawania

obiektów. Opisane w tym rozdziale zostały ogólne informacje na temat transformacji, jakrównież jej implementacja w środowisku Matlab, następnie jej wykorzystaniew Simulinku. Rozdział ten kończy się charakterystyką zastosowań transformacji Log-Polar.

Rozdział 4 dotyczy zagadnienia segmentacji obrazu. Opisane tam zostały rodzaje seg-mentacji. Wstępne testy metod segmentacji, których wynikami sugerowano się wybiera-jąc metodę segmentacji. Rozdział ten opisuje również użytą w pracy przestrzeń kolorówHSV3 oraz przedstawia konkretną implementację procesu segmentacji, przeprowadzonegow tejże przestrzeni.

Najbardziej obszerny rozdział 5 opisuje wykorzystane w pracy techniki ekstrakcji cechobrazu. W sposób szczegółowy omawia techniki przetwarzania obrazów z naciskiem nasposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wiona została idea indeksacjii obrazu w celu łatwej analizy cech wyseparowanych w pro-cesie segmentacji obiektów, następnie detekcji jego krawędzi wykorzystując filtr Sobela.Znajduje się tam również opis techniki erozji wykorzystanej celem polepszenia wynikówdetekcji obiektu.

Rozdział 6 opisuje dokładną implementację aplikacji w środowisku Matlab/Simulink.Przedstawiono narzędzia dostępne w pakiecie Matlab/Simulink, które użyto w projekcie.

1.3 Założenia projektu

Obecnie przetwarzanie obrazów jest bardzo dynamicznie rozwijającą się dziedziną,która stanowi główne zainteresowania obu autorów pracy. Dlatego chciano wykonać apli-kację praktyczną, którą w przyszłości można rozwinąć do bardziej zaawansowanego pro-jektu.

3ang. Hugh, Saturation, Value

7

Page 8: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Głównym założeniem projektu było utworzenie aplikacji do detekcji i śledzenia trajek-torii ruchu obiektu. Autorzy zdecydowali się na wykonanie pracy w środowiskuMatlab/Simulink, gdyż ich zdaniem jest to idealne narzędzie do prototypownia aplikacji.Założenia projektu zostały spełnione, aplikacja jest w pełni funkcjonalna. W przyszłościautorzy chcieliby rozwinąć aplikację do detekcji oraz śledzenia określonych kształtów w se-kwencji wideo. Wówczas projekt można wykorzystać do zdalnego sterowania innymi apli-kacjami np. MS Paint czy przeglądarką zdjęć. Rozwiązanie takie może poprawić wygodęoraz komfort pracy z takiego rodzaju oprogramowaniem.

8

Page 9: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdział 2

Zasady działania aplikacji

Zgodnie z tematem projektu przedstawionym w podrozdziale 1.3 oraz analizą problemuzawartą w podrozdziale 1.2 tworzona aplikacja powinna być zdolna do:

• Rozpoznania obiektu o konkretnych cechach.

• Podążania za rozpoznanym obiektem.

• Praktycznego zastosowania np. jako interfejs dla programu MS Paint.

Rozdział ten przedstawi zasadę działania oraz pokrótce opisze narzędzia z jakich możnaskorzystać do budowy podobnych aplikacji, uzasadni również wybór konkretnych narzędzido budowy opisywanej aplikacji.

2.1 Schemat blokowy i opis działania

Rysunek 2.1: Schemat blokowy aplikacji

Schemat blokowy aplikacji przedstawiono na rysunku 2.1. Można wyróżnić czterygłówne bloki zadaniowe:

9

Page 10: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

• Akwizycja- proces ten w opisywanym projekcie zrealizowano przy użyciu kamery in-ternetowej o rozdzielczości 320x240 pikseli opisującej obraz przy pomocy przestrzeniYCbCr. Przestrzeń ta jest używana do cyfrowego przesyłania oraz przechowywaniaobrazów wideo. Wykorzystuje ona fakt, że oko ludzkie jest bardziej podatne nainformacje o jasności obrazu (dane o luminancji Y), niż na informacje o jego kolo-rze (dane o chromancji Cb, Cr), w związku z tym obraz opisany w tej przestrzenijest wygodniejszy do przechowywania. Urządzenie wyświetla obrazy z prędkością 30klatek na sekundę.

• Segmentacja- proces umożliwiający wydzielenie obszarów obrazu spełniających pewneściśle określone kryteria jednorodności[9]. W efekcie obraz poddany konkretnej tech-nice segmentacji zostaje przekształcony w obraz binarny. Kryteria według którychobraz jest poddawany segmentacji mogą być praktycznie dowolne np. poziom jasno-ści, kolor obszaru, ukształtowanie powierzchni obszaru. Dobór kryterium decydujeo skuteczności segmentacji, a więc o poprawnym przygotowaniu obrazu do dalszejanalizy. W opisywanym projekcie segmentację przeprowadzono na podstawie ko-loru obszaru. W efekcie z obrazu wyróżniono jedynie obiekty zielone, które poddanodalszej analizie.

• Analiza obrazu binarnego- zadaniem tego bloku funkcjonalnego jest odpowiednieprzebadanie obrazu otrzymanego po segmentacji. W jego obszarze można wydzielićnastępujące podbloki funkcjonalne:

– Detekcja krawędzi.

– Indeksacja.

– Analiza pól powierzchni obiektów.

– Wyznaczenie środka największego obszaru, rozpoczęcie śledzenia, przekazaniewspółrzędnych środka regionu jako środka dla transformacji log- polar.

• Transformacja log- polar- pozwala przenieść analizę obrazu z przestrzeni kartezjańś-kiej do przestrzeni logarytmiczno-biegunowej. Przestrzeń ta czyni algorytm bardziejodpornym na zniekształcenia (rotacja, skalowanie).

Zasada działania aplikacji polega więc na odpowiednim wydzieleniu konkretnych cechz obrazu pochodzącego z kamery internetowej oraz poddaniu go dalszej, bardziej szczegó-łowej analizie. Najważniejszą częscią aplikacji jest segmentacja, ponieważ od jej skutecz-ności zależy ilość danych, które są przedstawiane użytkownikowi. Celem segmentacji jestpodzielenie obrazu na obszary, które pomagają we wskazaniu obiektów poddawanych dal-szej analizie[5]. Proces ten polega na wyodrębnieniu z obrazu tych części, które są istotnez punktu widzenia dalszego procesu. Z reguły procesowi temu towarzyszy skrajna reduk-cja ilości informacji zawartych w obrazie[9]. Jeżeli proces segmentacji (wstępnej analizy

10

Page 11: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

obrazu) przeprowadzono by w oparciu o złe kryteria to dalsze rozpatrywanie jej wynikównie miałoby żadnego sensu. Segmentacja obrazu na podstawie koloru może również okazaćsię mało skuteczna, w szczególności gdy oświetlenie jest nieodpowiednie np. jego gradientbardzo szybko się zmienia. Według teorii koloru barwa to fale elektromagnetyczne, którepo odbiciu od obiektu trafiają do odbiorcy. Zgodnie z tą definicją kolor będzie zależałod czynników dodatkowych m.in.: od rodzaju oświetlenia. Efektem analizy obrazu bi-narnego jest wyznaczenie regionów o podobnych właściwosciach, które zostają następniezaznaczone przy pomocy czerwonych prostokątów w orginalnym obrazie. Ponadto przypomocy filtra Sobela wyznaczono krawędzie obiektów wykrytych. Obiekt śledzony jestdodatkowo wyróżniony czerwonym kołem umieszczonym na jego środku. Transformacjalog- polar była początkowym alternatywnym rozwiązaniem, śledzenia obiektu, okazałasię jednak nieprzydatna na tym etapie analizy obrazu, została ona jednak zaimplemen-towana. Kolejne położenia środka śledzonego obiektu (czerwone koła) mogą kontrolowaćdziałanie programu MS Paint.

2.2 Wykorzystane narzędzia

Opisywany projekt stworzono przy użyciu środowiska Matlab/Simulink. Środowiskoto idealnie nadaję się do przeprowadzania obliczeń naukowych i inżynierskich, do two-rzenia symulacji. Przy wyborze środowiska należy zwrócić uwagę na narzędzia oferowaneprzez każde z nich, na biblioteki dostępne dla użytkowników. Simulink jest w tym przy-padku bardzo atrakcyjną alternatywą, przede wszystkim ze względu na obecność trzechbilbiotek, które są niezbędne przy tworzeniu projektów dotyczących przetwarzania orazanalizy obrazów. Bibliotekami tymi są:

• Image Acquisition Toolbox - biblioteka umożliwiająca akwizycję sygnału pochodzą-cego z kamery internetowej. Dzięki wykorzystaniu tej bilbioteki, obraz z kameryjest bezpośrednio dostępny w modelu tworzonym w Simulinku i traktowany jakomacierz. Dodatkowo możliwe jest wyseparowanie składowych przestrzeni kolorów,których używa urządzenie do rejestracji obrazu.

• Signal Processing Blockset - biblioteka umożliwiająca wykonywanie różnego rodzajuoperacji na sygnałach jedno- i wielowymiarowych. W ramach tej biblioteki możemywyróżnić kilka jej podzbiorów (zostają przedstawione jedynie podzbiory użyte w opi-sywanym projekcie):

– Statistics - umożliwia obliczanie histogramów, wartości średnich, wartości środ-kowych.

– Signal Management - umożliwia tworzenie buforów (kolejek, stosów), licznikówpróbek sygnału, operację wycinania określonych fragmentów sygnału.

11

Page 12: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

• Video and Image Processing Blockset- biblioteka przeznaczona do analizy obrazówstatycznych oraz obrazu wideo. Podobnie jak w przypadku poprzedniej bibliotekimożemy wyróżnić kilka jej podzbiorów:

– Analysis and Enhancement- biblioteka przeznaczona do zaawansowanej ana-lizy. Umożliwia między innymi wykrywanie krawędzi obrazu, porównywaniewzorców, wykrywanie rogów obrazu, filtrowanie uśredniające.

– Conversions- bilbioteka umożliwiająca przede wszystkim swobodne przejściedo innej przestrzeń kolorów np. RGB do YCbCr, RGB do HSV itp.

– Morphological Operations- biblioteka umożliwiająca przeprowadzenie operacjimorfologicznych takich jak: erozja, dylatacja, zamknięcie, otwarcie.

– Statistics- biblioteka umożliwiająca obliczenie histogramów obrazu, wartościśrednich, wartości maksymalnych, minimalnych, indeksację.

– Text and Graphics - biblioteka umożliwiająca dodanie kształtów zdefiniowa-nych przez użytkownika do oryginalnego obrazu, zaznaczania obszarów o od-powiednich współrzędnych[1].

Oczywiście odpowiednie narzędzia oferuje również język C++, jednakże sposób tworzeniasymulacji, aplikacji w Simulinku znacznie różni się od klasycznego programistycznegopodejścia. W Simulinku każda akcja, funkcja jest realizowana przez odpowiedni blokfunkcyjny. Działanie każdego bloku jest dokładnie opisane w pomocy programu oraz nastronie internetowej producenta. Na rysunku 2.2 przedstawiono przykładowy model sy-mulacyjny Simulinka. Model ten zamienia przestrzeń kolorów z YCbCr na skalę szarości,a następnie dokonuje filtracji takiego obrazu przy pomocy filtra środkowego. Liczbę kla-tek na sekundę uzyskano stosując odpowiedni blok funkcyjny. Parametr ten określa liczbęobrazów wyświetlanych w sekwencji wideo w czasie jednej sekundy. Mała liczba klatekna sekundę powoduje utratę płynności wyświetlanej sekwencji wideo, granica płynnościto około 15 klatek na sekundę. Aby uzyskać płynny obraz ruchu należy analizować około25 obrazów na sekundę[9]. W przefiltrowanym obrazie wideo uzyskano liczbę klatek napoziomie około 12,5 klatki.

Simulink doskonale nadaje się do weryfikacji działania aplikacji. Nie występują tużadne ograniczenia dotyczące dostępu do przetwarzanych danych, w każdym miejscu mo-delu można podłączyć odpowiedni blok funkcyjny służący do obserwowania i analizy da-nych otrzymywanych w wyniku działania innych bloków funkcyjnych (np. blok o nazwieSkope, czy użyty w przykładzie Frame Rate Display). Simulink jest również często wyko-rzystywany przy tworzeniu aplikacji obsługiwanych przez procesory sygnałowe, ponieważmożna w nim w łatwy sposób dokonać wstępnych jak i bardziej zaawansowanych ana-liz działania projektu. Nie wszystkie funkcje Matlaba są bezpośrednio wspierane przezSimulinka (np. funkcja interp2), w takim przypadku należy użyć s-funkcji. Blok ten po-

12

Page 13: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rysunek 2.2: Przykładowy model wykonany w Simulinku.

zwala przenieść strumień danych do Matlaba, tam wykonać rządane operacje i zwrócićotrzymane wyniki z powrotem do Simulinka i kontynuować pracę aplikacji. W opisywa-nym projekcie s-funkcji użyto między innymi do implementacji transformacji log- polar.

Kolejnym narzędziem jakie wybrano było odpowiednie dobranie techniki segmentacji.Możemy rozróżnić wiele technik segmentacji, oto kilka z nich:

• Segmentacja poprzez rozrost obrazu, polega na grupowaniu obrazu w obszaryo podobnych właściwosciach[9].

• Segmentacja poprzez podział obrazu, polega na progowaniu, a więc każdy piksel jestporównywany z określoną wczesniej wartością i na tej podstawie jest mu przypisy-wana wartosć 0 lub 1, wynikiem takiej operacji jest więc obraz binarny[9].

W opisywanym projekcie użyto segmentacji poprzez podział obrazu. Ponieważ informacjepochodzące z segmentacji poprzez rozrost obrazu niewiele ułatwiłyby dalszą analizie ob-razu. Ta technika pozwoliłaby uzyskać informacje jedynie o ilości podobnych obszarów, copozostawiłoby wiele niepotrzebnych informacji na temat obrazu. Cecha obrazu znaczącywpływ na skuteczność procesu segmentacji. W opisywanym przypadku wyróżniono kilkagłównych cech śledzonych obiektów:

• kolor,

• kształt (krawędzie),

• ruch.

Segmentacja na podstawie koloru przyniosła bardzo dobre efekty. Zielona barwa, którąwyróżnia się śledzony obiekt jest specyficzna i łatwa do wykrycia. Konkretny sposóbimplementacji tego rodzaju segmentacji przedstawiono w rodziale 4. W efekcie otrzymanoobraz binarny o wyraźnie wyróznionych obiektach. Niestety segmentacja ta jest bardzowrażliwa na silne zmiany oświetlenia, co nie powinno dziwić, ze względu na fakt, że mocneoświetlenie obiektu powoduje zmiane barwy jaką rejestruje ludzkie oko.

13

Page 14: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Operację morfologiczną połączono z filtracją medianową, a następnie użyto do usunię-cia szumów oraz mało znaczących szczegółów, które wpływały na błędną analizę obiektów.

Otrzymany po procesie obraz binarny poddawano dalszej analizie. Obraz podzielonona obszary o podobnych cechach, zostały z niego wyodrębnione krawędzie, wyznaczonopola wyodrębionych obszarów. Obszary wyznaczono przeprowadzając proces indeksacji.Krawędzie wyznaczono przy użyciu jednego z detektorów krawędzi- filtra Sobela. Sposóbimplementacji powyższych działań przedstawiono w rodziale 5.

14

Page 15: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdział 3

Transformacja log-polar

3.1 Wstęp teoretyczny

Sekwencje wideo można przedstawić jako funkcję trzech zmiennych (x, y, t), dwiepierwsze zmienne określają współrzędne przestrzenne, natomiast zmienna t jest współ-rzędną czasową. Dziedziną funkcji są konkretne piksele występujące w ściśle określo-nym czasie, natomiast przeciwdziedziną są wartości w przestrzeni kolorów (np. RGB lubYCbCr). Zarówno argumenty jak i elementy zbioru wartości należą do zbioru liczb rze-czywistych i są liczbami skończonymi.

W tej pracy początkowo użyto transformacji log-polar, ponieważ czyni ona algorytmdetekcji i śledzenia określonego kształtu bardziej odpornym na zniekształcenia takie jakrotacja czy skalowanie, niż w przypadku badania obiektu w przestrzeni kartezjańskiej.Transformacja log-polar pozwala na uzyskanie najwyższej rozdzielczości w środku analizo-wanego obiektu. Rozdzielczość jest zmniejszana wraz z oddalaniem się od zdefiniowanegocentrum transformacji.

Każdy obraz możemy opisać w przestrzeni biegunowej. Współrzędnymi tej przestrzenisą kąt θ oraz promień ρ. Aby dokonać transformacji ze współrzędnych kartezjańskich dowspółrzędnych biegunowych należy posłużyć się następującymi przekształceniami:

ρ =√

((x− xc)2 + (y − yc)2) (3.1)

θ = arc tg y − yc

x− xc

(3.2)

gdzie xc i yc są współrzędnymi punktu określającego środek obrazu w przestrzeni biegu-nowej. Równania 3.1 i 3.2 nie opisują przestrzeni logarytmiczno-biegunowej. Koniecznejest dokonanie przekształcenia współrzędnej opisującej promień 3.1. W tym celu należywykorzystać promień jako argument funkcji logarytmującej[11]:

ρ0 = log(ρ) (3.3)

15

Page 16: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rysunek 3.1: Transformacja Log-Polar.

Na rysunku 3.1 przedstawiono trasnformacje log-polar. Każdy punkt o współrzędnej(xi, yi) (po lewej kartezjański układ współrzędnych) może zostać przedstawiony we współ-rzędnych w przestrzeni log-polar (ρi, θi) [6].

Rysunek 3.2: Siatka przekształcenia w układzie kartezjańskim.

Rysunek 3.2 przedstawia przykładową siatkę przekształcenia transformacji log−polar.Każdy z okręgów odpowiada jednemu kolorowi. Średnice okręgów zmniejszają się wraz zezbliżaniem się do środka obrazu w przestrzeni log−polar(xc, yc) co pozwala na osiągnięciewiększych rozdzielczości w interesującym nas obszarze.

16

Page 17: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

3.2 Implementacja transformacji log-polar

Należy zauważyć, iż współrzędna 3.3 określona jest logarytmem, dlatego aby możliwebyło wyświetlenie obrazu w przestrzeni log−polar wartość promienia musi być niezerowai skończona, w tym celu należy pominąć przynajmniej jeden piksel o współrzędnych xc, yc.

Rozmiar obrazu w przestrzeni log − polar (Nρ,Nθ) określa ilość zmian promieniaoraz ilość zmian kąta, ponieważ wartości opisujące obraz są dyskretne. Aby określić krokpróbkowania promienia należy podzielić promień obrazu w przestrzeni log − polar przezilość zmian promienia Nρ, podobnie w przypadku określania kroku próbkowania kąta θnależy podzielić kąt 2π przez ilość zmian kąta (Nθ).

Rysunek 3.3: a) Obraz oryginalny b) obraz wyświetlony w przestrzeni log-polar.

Rysunek 3.3b przedstawia przykładową transformatę obrazu do przestrzeni log−polar.Środek przekształcenia został ustawiony w środku trzymanego prostokąta.

Rysunek 3.4: Implementacja transformacji log-polar w Simulinku.

Rysunek 3.4 przedstawia implementację transformacji log − polar w środowisku Ma-tlab/Simulink. Na wejście podawany jest obraz w odseparowanych składowych RGB. Na-stępnie dokonano jego konwersji do skali szarości. Zmiana przestrzeni kolorów zostaławykonana, ponieważ operacje na obrazie w skali szarości są szybsze, jak również trans-formowanie obrazu w przestrzeni RGB nie przynosi żadnych korzyści w porównaniu doobrazu w skali szarości. Tak spreparowany obraz przekazywany jest do funkcji, której za-daniem jest zapisywanie kolejnych klatek obrazu. Kolejne klatki są pobierane przez funkcjęrun transform, która dokonuje transformacji obrazu. Funkcja ta zwraca przetworzony

17

Page 18: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

obraz w postaci wektora, dlatego konieczne jest jego zamienienie na postać dwuwymia-rową. Do tego został użyty element biblioteki „MathOperations” Reshape, służy on dozmiany wymiarowości danych. Na jedno z jego wejść został podany wektor zwróconyz funkcji transformującej obraz do przestrzeni log − polar, a na drugie z wejść podanyzostał obraz referencyjny, celem ustalenia poprawnej wymiarowości obrazu wyjściowego.

3.3 Zastosowanie

Na rysunku 3.3b wyraźnie widać, że prostokąt zajmuje większą część obrazu wyniko-wego. Pozwala to osiągać większe rozdzielczości w obszarach zainteresowania. Dodatkowopowstały obraz jest odporny na obroty badanego obiektu, jego oddalanie, przybliżanie,ponieważ w dziedzinie log− polar powyższe operacje są jedynie przesunięciami badanegoobiektu wzdłuż osi ρ i θ, co w rzeczywistości powoduje małe zmiany obrazu wynikowego.

Najczęściej spotykanym zastosowaniem dla transformacji log − polar jest detekcjaobiektów, ze względu na jej charakterystyczną odporność na obroty i zmiany położeniabadanego obiektu. W praktyce jednak okazało się, że inne metody są bardziej wydajnei dokładniejsze. Dlatego zdecydowano się w projekcie zrezygnować z transformacji log −polar na rzecz operacji przedstawionych w rozdziale 5.

18

Page 19: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdział 4

Segmentacja obrazu

Istnieje wiele definicji segmentacji. Jedną z nich przytoczono w rozdziale 2.1, najpro-ściej można ją określić jako działanie mające na celu podzielenie obrazu na obszary, którebędą przydatne przy dalszych etapach przetwrzarzania[5], a więc takich obaszarów któresą istotne z punktu widzenia użytkownika lub procesu. W wyniku każdego rodzaju seg-mentacji otrzymany obraz zawiera znacznie mniejszą ilość informacji, w związku z tymreprezentowany jest przez znacznie mniejszą ilość bitów. Segmentacja odbywa się wedługwcześniej ustalonych kryteriów, którymi mogą być dowolne cechy obrazu np. kolor, tek-stura, kształt. W rozdziale 2.1 przedstawiono różne techniki segmentacji, a mianowiciesegmentacje przez podział obszaru oraz przez jego rozrost. W opisywanej pracy wykorzy-stano segmentacje poprzez podział obszaru, dlatego też technice tej poswięcono niniejszyrozdział.

4.1 Wstęp teoretyczny

Technika segmentacji obrazu poprzez podział obszaru bazuje na porównywaniu warto-ści każdego piksela z wartością progową (progowanie). Dokonywana jest więc binaryzacjaobrazu. Oprócz wartości progowej określona musi zostać cecha obrazu na bazie której wy-odrębnione zostaną obszary zainteresowania. W opisywanym projekcie rozważono czterymożliwości:

• kształt(krawędź),

• jasność,

• ruch obiektu,

• kolor.

Segmentacja na podstawie kształtu, a więc na podstawie krawędzi obiektów okazała sięmało skuteczna. W sytuacji połączenia się dwóch obiektów w jeden, dalsza analiza obrazu

19

Page 20: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

jest dużo bardziej skomplikowana. Ciągłość krawędzi nie zawsze była zachowywana, po-wodując niemożność określenia konkretnego kształtu. Detektory krawędzi są najskutecz-niejsze dla obrazów o dużym kontraście[9], a więc różnicy między najjaśniejszym pikselemobrazu a jego najciemniejszym elementem. Technika ta okazała się odporna na zmianynatężenia światła.

Segmentacja na podstawie jasności ogranicza ważną cechę śledzonego obiektu, a mia-nowicie jego kolor. Technika ta jest mało odporna na zmiany natężenia światła. Do prze-prowadzenia dokładnej segmentacji na podstawie tej cechy niezbędny byłby również hi-stogram co wiązało się z dodatkowym obciążeniem obliczeniowym.

Segmentacja na podstawie ruchu, okazała się mało skuteczna, z kilku powodów. Popierwsze była ona przeprowadzana na zasadzie dyferencjału obrazu, a więc obliczeniajego różniczki, co powodowało opóźnienie o co najmniej jedną klatkę całego obrazu, coz kolei wpływało na opóźnienie detekcji i śledzenia obiektu. Jako ruch traktowane byływszelkiego rodzaju fluktuacje związane z odbijaniem się światła od powierzchni obiektówobecnych w kadrze kamery internetowej, co jednak można ograniczyć poprzez zastoso-wanie odpowiedniego filtra. Trzecim problemem okazała się obecność osoby kontrolującejruch obiektu, co powodowało zwiększenie ilości danych po segmentacji.

Segmentacja na podstawie koloru okazała się bardzo skuteczną techniką. Przedsta-wione zostanie dokładniejsze przeanalizowanie tego problemu.

Segmentacja oparta na kolorze może zostać uznana za rozszerzenie metody progo-wania. Określając pewne zakresy, przedziały w wybranych składowych modeli barw iporównując dany piksel z tymi zakresami ustalana jest przynależność takiego piksela doobszaru. Segmentacja taka jest często skutecznie wykorzystywana do wykrywania twarzy,ponieważ kolor ludzkiej skóry jest łatwy do określenia w różnych przestrzeniach barw[5].Przedziały progowania mogą się dynamicznie zmieniać, na przykład poprzez wykorzysta-nie histogramu lub mogą być z góry ustalone. Kolorowy histogram liczony na podstawiepikseli reprezentujących barwy w przestrzeni RGB polega na liczeniu pikseli o każdejwartości(każdym kolorze). Z reguły są to wartości od 0-255, a więc informacja na tematkoloru zapisana jest na 8 bitach, dodatkowo histogram musi być liczony dla każdej skła-dowej osobno. Analizując obraz o rozdzielczości 320x240 należy obliczyć wartości 76800pikseli dla trzech różnych składowych. Otrzymujemy 230400 pikseli, które muszą być przy-dzielone do jednej z 256 wartości. Obliczenia muszą być przeprowadzone w odpowiednimczasie. Innymi problemami mogą być wielogarbność histogramu czy trudność wydzieleniawierzchołków[5][9][7]. W opisywanym projekcie zrezygnowano z dynamicznej techniki pro-gowania przy użyciu histogramu ze względu na ograniczoną ilość zasobów obliczeniowych.Segmentacja przeprowadzona na podstawie koloru charakteryzuje się następującymi ce-chami:

• prosty sposób na wyodrębnienie interesujących użytkownika obszarów,

20

Page 21: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

• wymaga niewielkich zasobów obliczeniowych (w porównaniu do metody wykorzy-stującej histogramy),

• mniejsza odporność na fluktuację oświetlenia (w porównaniu do metody wykorzy-stującej detektory krawędzi),

• nie wprowadza zniekształceń obrazu.

4.2 Segmentacja obrazu z wykorzystaniem przestrzenikolorów HSV

Przestrzeń barw (kolorów) pozwala opisać barwę nie tylko poprzez podanie jej widma,a więc długości fali elektromagnetycznej z zakresu 380nm do 780nm (światło widzialne),ale przez model zbliżony do ludzkiej percepcji koloru. Każda z przestrzeni barw wyróż-nia się innymi cechami, właściwościami. Przestrzeń barw RGB charakteryzuje się trzemaskładowymi, wykorzystuje fakt, że każdą barwę można przedstawić poprzez zmieszanie zesobą (w ustalonych proporcjach) trzech wiązek światła o barwie czerwonej, zielonej i nie-bieskiej. Przestrzeń ta jest najbardziej rozpowszechniona, jednakże jej związek z fizjologiąoka ludzkiego nie jest tak duży jak w przypadku innych przestrzeni. Z kolei przestrzeńYCbCr wykorzystuje większą wrażliwość ludzkiego oka na jasność obrazu niż informacje okolorze. Składowe tej przestrzeni to Y- luminancja, Cb- składowa różnicowa chrominancjii,Cr- składowa chrominancji. Pierwsza z nich odpowiada za natężenie oświetlenia, dwie po-zostałe opisują odcień oraz nasycenie koloru. Przestrzeń HSV nawiązuje do faktu, iż ludz-kie oko postrzega barwy jako ilość światła odbitego od danego obiektu. Model ten możnarównież przedstawić jako stożek, którego podstawą jest koło barw (składowa H wyrażonajako kąt na tym właśnie kole). Promień podstawy tworzy składowa S (nasycenie koloru),składowa V (moc światła białego) tworzy jego wysokość. Na rysunku 4.1 przedstawionazostała przestrzeń HSV. Centrum barwy zielonej odpowiada kąt 120◦, barwy niebieskiej

Rysunek 4.1: Stożek przestrzeni barw HSV[7]

21

Page 22: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

240◦, zaś barwy czerwonej 0◦(360◦). Przestrzenie barw, które charakteryzują barwę nieze względu na cechy samego koloru (RGB), a ze względu na cechy uwzględniające wpływczynników zewnętrznych (zmienne oświetlenie) są bardziej efektywne. Pozwalają one naoperację na składowych niezależnych od siebie. Wykonując operację na jakiejkolwiek skła-dowej w przestrzeni RGB zmianie ulega kolor, co prowadzi do przekłamań. W przestrzeniHSV efekty takie jak zacienienie, rozjaśnienie można przypisać do jednej składowej- na-tężenie i uwzględnić to tylko w jej przypadku[7]. W modelu HSV przyjęto niezależnośćzmiennych w pełnym zakresie ich zmian. Wybór przestrzeni HSV jest również uwarunko-wany łatwością kwantyzacji przestrzeni, o czym będzie mowa w dalszej części rozdziału.

Segmentacja przeprowadzona na podstawie koloru ze względu na małą złożoność po-zwala na przeprowadzenie dodatkowych operacji, poprawiających efekt segmentacji. W opi-sywanej pracy wykorzystano dodatkowo kwantyzację oraz filtrację.

Proces kwantyzacji przeprowadzono przed segmentacją, jego zadaniem jest zmniejsze-nie liczby kolorów w celu wyraźniej ich separacji. Zmniejszając liczbę kolorów w obra-zie granice między barwami stają się wyraźniejsze, a więc łatwiejsze jest poprawne ichrozdzielenie. Efekt kwantyzacji przeprowadzonej na obrazie w uproszczeniu przedstawiarysunek 4.2. Widać wyraźnie efekt zmiejszenia palety kolorów, obraz jest rozmazany, gra-

Rysunek 4.2: Kwantyzacja obrazu a)Obraz oryginalny b)Obraz po kwantyzacji

nice kolorów są wyraźniejsze. W omawianym projekcie dokonano osobnej kwantyzacjiskładowych H,S,V. Składowa barwy(H) wymaga największej uwagi. Okrąg tej składowejposiada trzy główne obszary oddalone od siebie o 120◦. Kwantyzacja na poziomie 20◦

zapewnia wyraźne granice między trzema głównymi kolorami: czerwonym, zielonym, nie-bieskim oraz trzema dodatkowymi: żółtym, magentą i cyjanem. Dodatkowo składowe Si V zostały skwantyzowane do trzech poziomów[7]. Dzięki kwantyzacji zmniejszona zo-stała ilość kolorów do zaledwie 162. Zabieg ten znacznie ułatwił proces segmentacji. Narysunku 4.3 przedstawiono przestrzeń HSV po dokonaniu kwantyzacji w sposób opisanypowyżej. Wyraźnie widoczne są granice między obszarami o różnym nasyceniu oraz o

Rysunek 4.3: Skwantyzowana przestrzeń HSV[7].

22

Page 23: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

różnym natężeniu, łatwo też wyróżnić 18 oddzielnych obszarów na okręgu barw.Takie ograniczenie palety kolorów nie było wystarczające do uzyskania porządanego

efektu, a więc dokładnego oddzielenia regionów o różnych barwach. Wpływ na takie wynikimiały nieistotne detale oraz szumy. Zastosowanie filtra medianowego rozwiązało problem,bowiem filtr ten jest wykorzystywany do usuwania zakłóceń losowych, których poziomintensywności znacznie odbiega od poziomu intensywności punktów sąsiednich. Opróczeliminacji szumów i detali, filtr spowodował też nieznaczną utratę ostrości krawędzi ob-szarów. Filtr medianowy należy do grupy filtrów nieliniowych. Zasadę działania takiegofiltra można przedstawić w następujący sposób:

1. Zbierz wartości pikseli z wyznaczonego obszaru (w omawianym projekcie jest toobszar 8x8, a więc 64 piksele).

2. Posortuj wartości pikseli.

3. Wybierz środkową wartośc (mediana).

4. Przypisz srodkowemu pikselowi obszaru wartość mediany.

Filtry medianowe mogą znacznie wpływać na szybkość działania aplikacji ze względu nazłożoność obliczeniową[10]. W przypadku opisywanej pracy zastosowanie filtrów zmniej-szyło ilość klatek na sekundę w obrazie wynikowym, aczkolwiek jego zastosowanie po-prawiło zdecydowanie jakość segmentacji. Na rysunku 4.4 przedstawiono wynik użyciafiltra medianowego. Widoczny jest efekt działania filtra, a więc usunięcie szumów oraz

Rysunek 4.4: Filtracja medianowa a) Oryginalny obraz b) Obraz po filtracji[10]

szczegółów, co pozwala na pozostawienie tylko znaczących informacji w obrazie.Wszystkie powyższe czynnosci zostały zaimplementowane w Simulinku. Rysunek 4.5

przedstawia model zaimplementowanego sposobu segmentacji.Widoczne są kolejne kroki procesu segmentacji, a więc:

1. Przejście z przestrzeni kolorów RGB do HSV.

2. Kwantyzacja.

23

Page 24: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rysunek 4.5: Segmentacja obrazu na podstawie koloru.

3. Filtracja medianowa.

4. Progowanie.

5. Obraz binarny jako wynik końcowy.

Kolejne etapy procesu są realizowane przy pomocy bloków funkcyjnych Simulinka. Skła-dowe przestrzeni HSV są znormalizowane i mieszczą się w zakresie 0 do 1. Kwantyzatorypozwalają na skwantyzowanie sygnału o dowolną wielkość, proces ten odbywa się przyużyciu prostego równania:

y = q ∗ round(uq

) (4.1)

gdzie y jest sygnałem wyjściowym, q stałą kwantyzacji, u sygnałem wejściowym. Funckjaround jest funkcją zaokrąglającą wynik do najbliższej całkowitej liczby. Blok filtru me-dianowego pozwala na ustawienie wielkości obszarów, które są traktowane jako sąsiedniepodczas filtracji, co ma bezpośredni wpływ na jej wyniki. Funkcje progowania spełniablok Interval Test, w którym ustala się zakres progowania. Przyjmują one następującewartości dla odpowiednich składowych:

• Hue: 0.3- 0.6 (120deg - 240deg: barwa zielona).

• Saturation: 0.4- 1 (duze nasycenie koloru, wyraźna barwa).

• Value: 0.6- 1 (duże natężenie, duża jasność koloru).

Tak dobrane wartości progów pozwalają otrzymać bardzo dobre wyniki. Logiczna funckjaAND zapewnia poprawność każdego z warunków progowania, a więc zgodność odpowied-niej barwy, jej nasycenia oraz jej natężenia.

Na rysunkach 4.6 oraz 4.7 przedstawione zostały wyniki segmentacji przeprowadzonejwedług techniki opisanej w tym rozdziale. Pierwszy rysunek przedstawia zielony obiekt,

24

Page 25: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

który zostaje bardzo dobrze wykryty, można zauważyć wyseparowane palce osoby trzyma-jącej obiekt. Krawędzie nie są bardzo ostre, ze względu na działania filtra medianowego.Ponadto tak przygotowany obraz bardzo dobrze nadaje się do dalszej analizy, ponieważilość danych pozostawionych w obrazie jest zdecydowanie mniejsza w porównaniu z ob-razem oryginalnym. Drugi rysunek jest swojego rodzaju kontrprzykładem, pokazuje żeobiekty o innej barwie są całkowicie pomijane (o czym świadczyć może również pominię-cie tła).

Rysunek 4.6: Wyniki segmentacji a) Oryginalny obraz b) Obraz binarny

Rysunek 4.7: Wyniki segmentacji a) Oryginalny obraz b) Obraz binarny

25

Page 26: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdział 5

Ekstrakcja cech obrazu

Niniejszy rozdział poświęcono rozważaniom nad dalszą analizą obrazu binarnego otrzy-manego w wyniku segmentacji. Dalsze operacje wykonywane na obrazie to:

• indeksacja,

• detekcja krawędzi,

• operacja morfologiczna- erozja.

5.1 Wstęp teoretyczny

Proces indeksacji polega na przypisaniu do wszystkich pikseli obiektów identyfikato-rów, wskazujących jednoznacznie do którego obietku można dany piksel przypisać. Za-stosowanie indeksacji umożliwia wszystkie inne pomiary, takie jak wyznaczenie pól po-wierzchni każdego z obszarów, ponieważ wyznaczone są granice dla każdego analizowanegoobiektu[9]. Technika indeksacji polega na przepatrywaniu zbinaryzowanego obrazu liniapo lini aż do napotkania piksela o wartości 1 (piksel został wyseparowany na podstawiesegmentacji, więc należeć będzie do obiektu). Przypisanie piksela do określonego obiektuodbywa się na podstawie analizy sąsiednich pikseli, które zostały już zindeksowane. Narysunku 5.1 przedstawiono powyższą zasadę. Indeks (etykieta) jaki zostanie przypisanydo piksela oznaczonego jako X, zależy bezpośrednio od pikseli A,B,C,D.

Rysunek 5.1: Zasada indeksacji pikseli[9].

Można wyróżnić kilka sytuacji:

• Wszystkie sąsiednie piksele posiadają wartość 0- piksel X otrzymuje pierwszą nie-używaną etykietę.

26

Page 27: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

• Przynajmniej jeden sąsiedni piksel jest niezerowy oraz posiada etykietę np. E1-piksel X otrzymuje etykietę E1.

• Sąsiednie piksele należą do dwóch obiektów np. E1 oraz E2- piksel X otrzymujeetykietę o niższym numerze, czyli E1(założono E1<E2).

Ostatnia sytuacja może prowadzić do powstania kilku obszarów w obrębie jednego obiektu[9].Detekcja krawędzi to zagadnienie związane z wykryciem konkretnej cechy, może więc

z powodzeniem być użyte jako jedna z technik segmentacji[9]. W opisywanym projekciewykorzystano detekcje krawędzi do określenia kształtu wykrytych obiektów. Z reguły algo-rytmy detekcji krawędzi opierają się na analizie nieciągłości funkcji jasności obrazu- gwał-towna zmiana natężenia światła. Do analizy funkcji janości wykorzystuje się w większościalgorytmów rachunek różniczkowy np.: procedura Sobela, Kircha, Canny’ego (operatorgradientu), Marr- Hildertha (operator laplasjanu)[4]. Pierwsze dwa należą do najprost-szych detektorów.

Operacje morfologiczne są jednymi z nawjażniejszych operacji w analizie obrazu, stano-wią punkt wyjściowy do bardziej złożonych operacji związanych z analizą kształtu obiek-tów oraz ich wzajemnym położeniem[9]. Przekształcenia morfologiczne odbywają sięz wykorzystaniem tzw. elementu strukturalnego. Element ten jest przemieszczany po ob-razie, wykonywana jest analiza koincydencji punktów obrazu oraz elementu struktural-nego, na podstawie zgodności przeprowadzana jest odpowiednia akcja. Do podstawowychprzekształceń morfologicznych należą:

• Erozja- jeżeli cały element strukturalny mieści się w zbiorze (obiekcie), wtedy śro-dek tego elementu jest powielany na obrazie, w przeciwnym wypadku piksel zostajeusunięty z obrazu. Erozja o rozmiarze 3x3 (definicja wymiarów elementu struktural-nego) przeprowadzona na obiekcie o wymiarach 3x3 pikseli spowoduje pomniejszenieobiektu do rozmiarów jednego piksela. Erozję można również zdefiniować jako filtrminimalny, a więc taki którego działanie opiera się na przypisaniu pikselowi mini-malnej wartości spośród otaczających go pikseli. Wszystkie powyższe założenia sąspełnione dla obrazów binarnych, wynik erozji obrazów kolorowych może odbiegaćod spodziewanego rezultatu[9]. Jedną z główych zalet erozji jest jej zdolność do eli-minacji drobnych szczegółów oraz do wygładzania brzegów figur. Ponadto erozjazmniejsza pola powierzchni obszarów.

• Dylatacja- jeżeli punkt centralny elementu strukturalnego zawiera się w zbiorze(obiekcie), wtedy element ten jest w całości powielany w obrazie. Dylatacja jestoperacją odwrtoną do erozji. Dylatacja może posłużyć więc do zamknięcia małychotworów oraz zatok we wnętrzu figury. Cechą dylatacji jest również zdolność do łą-czenia obiektów, które znajdują się blisko siebie. Można również określić dylatację

27

Page 28: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

jako filtr maksymalny[9]. Dodatkowo dylatacja powiększa pola powierzchni obsza-rów.

Rysunek 5.2 przedstawia efekty wykorzystania powyższych narzędzi. Do operacji morfo-

Rysunek 5.2: a)Obraz oryginalny b)Erozja 5x5 c)Dylatacja 5x5.

logicznych można zaliczyć również otwarcie oraz zamknięcie, są to przekształcenia, któreopierają się na erozji oraz dylatacji, ale eliminują ich wady. Operację otwarcia możnaprzedstawić jako operację erozji i dylatacji następujących po sobie, operację zamknięciazaś jako przeciwną[9]. Własności operacji otwarcia i zamknięcia obrazów binarnych sąbardzo przydatne. Używając zamknięcia i otwarcia, kształty oraz rozmiary dużych obiek-tów pozostają bez zmian. Otwarcie doskonale usuwa drobne obiekty i mało ważne detale,zamknięcie wypełnia niewielkie otwory wewnątrz obiektów. Techniki te są używane do eli-minacji zakłóceń, które ciężko usunąć przy pomocy klasycznych filtrów. Jednakże operacjemorfologiczne pochłaniają znaczne zasoby obliczeniowe co jest ich znaczącą wadą.

5.2 Zastosowanie filtra Sobela

Jednym z najważniejszych zagadnień analizy wykrywanego obiektu jest jego wyraźnei jednoznaczne wyodrębnienie z sekwencji wideo. Dlatego w celu poprawy wyrazistości wy-krytego obiektu postanowiono posłużyć się jedną z metod detekcji krawędzi. Krawędź jestto linia oddzielająca obszary o różnym poziomie jasności. W projekcie detekcji krawędzipoddany jest obraz binarny, dlatego w tym przypadku, krawędziami będą linie oddziela-jące obszary białe od obszarów czarnych. Samych algorytmów rozpoznających krawędziobiektów jest stosunkowo dużo, w projekcie zdecydowano się jednak na filtr Sobela,z uwagi na prostotę w implementacji, jak również jego dobre wyniki.[12]

Rysunek 5.3 przedstawia implementację filtra Sobela w środowisku Simulink, do tegocelu posłużono się elementem biblioteki Video and Image Processing Blockset - Analy-sis and Enhancement o nazwie Edge Detection. Wybrany filtr Sobela jest to kombinacjafiltrów gradientowego, gaussowskiego, prostokątnego oraz uśredniającego. Krawędzie wy-krywane są na podstawie przybliżeń zmian gradientu jasności obrazu. Obraz wejściowy

28

Page 29: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rysunek 5.3: Implementacja filtra Sobela w środowisku Simulink.

jest splatany z maską Sobela. Na wyjściu otrzymuje się obraz binarny, gdzie piksele owartości 1 tworzą krawędź.

Rysunek 5.4: a) Obraz z zastosowaniem filtra Sobela b) Obraz bez zastosowania filtraSobela.

Rysunek 5.4 przedstawia porównanie działania aplikacji z zastosowaniem filtra So-bela oraz bez jego użycia. Filtr został zastosowany w celu poprawy wizualizacji wyników

29

Page 30: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

segmentacji. Wyznaczone krawędzie prostokąta nie są ostre ze względu na zastosowanewcześniej operacje filtracji medianowej oraz erozji. Efekt ten jest widoczny szczególnie nawierzchołkach prostokąta.

5.3 Analiza obrazu binarnego

Proces indeksacji umożliwił dalszą analizę obrazu binarnego ze względu na cechy ta-kie jak pola powierzchni wyszczególnionych obiektów. Jak pisano w rozdziale 5.1 procesindeksacji jednoznacznie określa granicę obszarów. Na rysunku 5.5 przedstawiono modelstworzony w środowisku Simulink realizujący proces indeksacji oraz analizę jego wyni-ków. Model zawiera kilka bloków funkcyjnych, z których każdy realizuje inne zadanie.

Rysunek 5.5: Analiza obrazu binarnego- środowisko Simulink

Blok o nazwie blob analysis dokonuje analizy statystycznej zindeksowanego obrazu. Blokten dokonuje uprzednio indeksacji, następnie analizując jej wyniki. Możliwe jest określenieparametrów indeksowanych obiektów. W projekcie przyjęto warunek wielkości, mianowi-cie pole powierzchni obiektu nie może być mniejsze niż 100 pikseli, w przeciwnym razienie zostanie on poddany analizie. Podejście to pozwoliło na eliminacje małych zielonychobiektów mogących pojawiać się w tle. Wykorzystano następujące cechy zindeksowanychobszarów:

• pole powierzchni,

• współrzędne środka obszaru,

• wymiary obszaru.

Kolejnym wykorzystanym blokiem jest blok funkcyjny o nazwie draw rectangles.Umożliwia on rysowanie figur geometrycznych takich jak: okręgi, prostokąty, kwadraty

30

Page 31: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

na orginalnym obrazie wideo (wejścia RED,GREEN,BLUE- kolejne składowe przestrzenikolorów RGB oryginalnego obrazu wideo). Doskonale więc nadaje się do zaznaczania róż-nego rodzaju obiektów. W zależności jaką figurę geometryczną rysowano, na wejściabloków podano różne dane. Rysując kwadraty podano ich wymiary, wykorzystując danepochodzące z bloku blob analysis. Dodając okrąg do orginalnego obszaru, podano jegośrodek oraz promień. Dane te uzyskano na podstawie analizy pól powierzchni oraz środ-ków zindeksowanych obszarów.

Dodatkowo wykorzystano bloki funkcyjne s− function do wyznaczenia największegowykrytego obszaru. S − funkcje pozwalają na przeniesienie obliczeń do Matlaba, coumożliwia wykorzystanie pętli oraz zmiennych globalnych. Stworzono odpowiednie funkcjew Matlabie analizujące dane z bloku blob analysis. W wyniku tej analizy otrzymanowspółrzędne środka największego obszaru.

W efekcie wyżej opisanych działań otrzymano wyniki przedstawione na rysunkach 5.6oraz 5.7. Zielone obiekty wykryto bezbłędnie, również analiza pól powierzchni przyniosłazakładany efekt. W wyniku tych działań obiekt znajdujący się po lewej stronie będzieśledzony do momentu pojawienia się obiektu większego od niego. Jednakże takie zdarze-nie jest mało prawdopodobne w związku z przeznaczeniem programu, o czym napisanow rozdziale 7. Czarne zakończenie przedmiotu zielonego nie jest traktowane jako jegoczęść ze względu na inny kolor, co również jest zgodne z wcześniejszymi założeniami. Na

Rysunek 5.6: Wynik analizy obrazu binarnego: a) Oryginalny obraz b) Zaznaczony zielonyobiekt c) Środek zielonego obiektu.

legitymacji studenckiej (przedmiot po prawej stronie) widoczne są napisy, jednakże niepowodują one błędów detekcji legitymacji jako jednego obiektu ze względu na użyte na-rzędzia, eliminujące mało znaczące szczegóły. Uniknięto również problemu rozdzielaniajednego obiektu na kilka mniejszych w wyniku błędnej indeksacji. Odcienie zieleni obuprzedmiotów różnią się od siebie, co nie ma wpływu na ich detekcje.

Wyniki analizy cech obrazu binarnego są zadowalające oraz zgodne z wcześniejszymizałożeniami.

31

Page 32: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rysunek 5.7: Wyniki analizy obrazu binarnego: a) Oryginalny obraz b) Zaznaczone zieloneobiekty c) Środek największego zielonego obiektu.

5.4 Zastosowanie erozji obrazu

Erozja jest jedną z podstawowych operacji morfologicznych obok dylatacji, otwarcia,zamknięcia, pogrubienia, ścieniania, szkieletyzacji i ścinania. Sam proces erozji najłatwiejwyobrazić sobie jako odcięcie pasa o zadanej szerokości wzdłuż brzegu obiektu, którypoddawany jest erozji. Szerokość odcięcia określona jest przez element strukturalny zwanyinaczej wzorcem lub szablonem, który przetaczany jest po wewnętrznej krawędzi obiektu.Kolejne punkty położenia elementu centralnego szablonu strukturalnego określają nowybrzeg obiektu po operacji erozji [12].

Rysunek 5.8: a) Obraz oryginalny b) obraz po dokonaniu erozji.

Rysunek 5.8 przedstawia przykład przeprowadzenia operacji erozji w środowiskuMatlab.Po lewej stronie obraz oryginalny, natomiast po prawej obraz po dokonaniu erozji. Sza-blonem wykonanej tutaj erozji jest kwadrat zawierający 5x5 pikseli.

Zastosowanie w projekcie przekształcenia morfologicznego jakim jest erozja przyniosłoduże korzyści, dzięki kilku charakterystycznym cechom które to przekształcenie posiada,a mianowicie:

• Erozja ma zdolność do eliminacji drobnych szczegółów, elementów odizolowanychod większych obszarów na obrazie binarnym oraz małych i wąskich wypustów. Do-

32

Page 33: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

datkowo erozja powoduje wygładzenie brzegu figury. Ta cecha umożliwiła niwelacjęszumów otoczenia, a także niewielkich obszarów występujących w obrazie binarnym.

• Erozja jest przekształceniem addytywnym.

• Możliwy jest wpływ na wynik operacji erozji poprzez zastosowanie odpowiedniegoelementu strukturalnego.

Rysunek 5.9: Implementacja przekształcenia erozji w środowisku Simulink.

Rysunek 5.9 przedstawia implementację erozji w środowisku Simulink. Zastosowaneprzekształcenie wykorzystane zostało po segmentacji obrazu w przestrzeni kolorów HSV.Filtracja medianowa nie usunęła w pełni szumów oraz niepożądanych obiektów, którezostały odseparowane w wyniku użycia operacji erozji. Elementem strukturalnym prze-prowadzonej w projekcie erozji jest kwadrat zawierający 5x5 pikseli. Wartość ta zostaładobrana doświadczalnie i okazała się wartością optymalną do celów projektu.

33

Page 34: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdział 6

Implementacja projektuw środowisku Matlab/Simulink

Rozdział ten przedstawi narzędzia Simulinka oraz Matlaba, których użyto do stwo-rzenia projektu opisanego w pracy. Narzędzia te mogą być wykorzystane do projektówo podbnej tematyce. Narzędzia te dobrano w sposób taki, aby była możliwa realizacjaprojektu zgodnie z wcześniej przedstawionymi założeniami.

Rysunek 6.1 przedstawia subsystem odpowiedzialny za akwizycję obrazu wideo.

Rysunek 6.1: Akwizycja obrazu wideo

Zawiera on następujące elementy:

• Video From Device-element biblioteki-Image Acquisition Toolbox. Przeprowadza onproces akwizycji obrazu wideo.

• Color Space Conversion-element biblioteki-Video and Image Processing Blockset:Conversions. Element ten dokonuje konwersji przestrzeni kolorów.

Sygnały wyjściowe tego subsystemu to odseparowane składowe obrazu wideo w prze-strzeni RGB.

Rysunek 6.2 przedstawia subsystem wykonujący transformację log-polar. Sygnałemwejściowym jest obraz wideo w odseparowanych składowych w przestrzeni RGB. Wnętrzesubsystemu zawiera następujące elementy:

• Color Space Conversion.

34

Page 35: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rysunek 6.2: Subsystem realizujący transformację log − polar

• Data Type Conversion- element biblioteki Simulink: Signal Attributes. Przeprowa-dza on konwersję typu danej (np. konwersja typu uint8 do double).

• S − function- element biblioteki Simulink: User-Defined Functions. Element tenpozwala programiście na korzystanie z wszystkich funkcji pakietu Matlab w środo-wisku Simulink.

• Reshape- element biblioteki Simulink: Math Operations. Dokonuje on zmiany wy-miarowości danych wejściowych.

Działanie tego subsystemu zostało dokładnie opisane w podrozdziale 3.2.Na rysunku 6.3 przedstawiono subsystem odpowiedzialny za przeprowadzenie procesu

segmentacji. Sygnały wejściowe stanowią kolejne składowe przestrzeni RGB. Sygnałem

Rysunek 6.3: Subsystem realizujący proces segmentacji.

wyjściowym jest zaś obraz po segmentacji, a więc obraz binarny. W obrębie przedstawio-nego subsystemu wykorzystano następujące elementy bibliotek środowiska Simulink:

• Color space conversion.

• Quantizer- element biblioteki Simulink: Discontinuities. Dokonuje on dyskretyzacjidanych wejściowych z ustalonym krokiem.

• Median Filter- element biblioteki Video and Image Processing Blockset: Filtering/ Analysis & Enhancement. Element przeprowadzający filtrację medianową.

• Interval Test- element biblioteki Simulink: Logic and Bit Operations. Przeprowadzabinaryzację obrazu. Dany piksel ustawia na wartość 1 jeżeli zawiera się on w okre-ślonych przedziałach.

35

Page 36: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

• Logical Operator- element biblioteki Simulink: Logic and Bit Operations. Elementten dokonuje określonych operacji logicznych na danych wejściowych.

• Erosion- element biblioteki Video and Image Processing Blockset: MorphologicalOperations. Przeprowadza on operację erozji obrazu.

Na rysunku 6.4 przedstawiono subsystem przeprowadzający dalszą analizę obrazuotrzymanego w wyniku procesu segmentacji. Sygnałami wejściowymi tego bloku są skła-dowe przestrzeni RGB oryginalnego obrazu wideo, obraz binarny. Sygnał wyjściowy tworząskładowe przestrzeni RGB obrazu wideo po analizie. Na obrazie tym wyróżniono elementyzielone oraz śledzony obiekt. W obrębie przedstawionego powyżej subsystemu wykorzy-

Rysunek 6.4: Subsystem realizujący analizę obrazu binarnego

stano następujące elementy bilbiotek środowiska Simulink:

• Blob Analysis- element biblioteki Video and Image Processing Blockset: Statistics.Przeprowadza on proces indeksacji, na jego podstawie wyznaczane są cechy staty-styczne.

• Draw Shapes- element biblioteki Video and Image Processing Blockset: Text & Gra-phics. Element służy do zaznaczania obiektów na obrazie z wykorzystaniem kształ-tów typu prostokąt, okrąg.

• To V ideo Display- element biblioteki Video and Image Processing Blockset: Sinks.Blok umożliwiający wyświetlenie obrazu wideo.

• Reshape.

• Data Conversion.

• Concatenate- element biblioteki Simulink: Math Operations. Element dokonującykonkatenacji (łączenia) macierzy.

• S-function.

Do analizy obrazu binarnego posłużono się funkcjami stworzonymi w Matlabie, funkcjete realizują zadanie znalezienia największego pola figur oraz uaktualniania współrzędnychśrodka największego obiektu.

36

Page 37: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Funkcja find center odpowiada za szukanie największego zielonego obiektu. Sygnałemwejściowym tej funkcji jest macierz utworzona z odpowiednich danych (pola powierzchniobiektów, współrzędne środków obiektów). Funkcja ta korzysta ze zmiennych globalnychXc oraz Y c. Zmienne te stanowią współrzędne środka dla transformacji log- polar orazwspółrzędne środka największego wykrytego obiektu. Funkcja find center nie posiadasygnałów wyjściowych, ich rolę przejmują zmienne globalne.

Funkcja run follow odpowiada za aktualizację pozycji środka śledzonego obiektu.W obrębie tej funkcji wykonywana jest inna funkcja follow. Funkcje te nie posiadająsygnałów wejściowych, gdyż korzystają jedynie ze zmiennych globalnych. Sygnałem wyj-ściowym są współrzędne środka największego obiektu oraz promień okręgu, którym tenśrodek zaznaczono.

Aby użytkownik mógł obserwować kolejne fazy przetwarzania obrazu, każdy z subsystemwposiada blok To V ideo Display. Do opisu poszczególnych bloków funkcyjnych wykorzy-stano dokumentację produktu Matlab[1].

37

Page 38: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rozdział 7

Zakończenie

Tematem pracy jest detekcja oraz śledzenie poruszającego się obiektu w sekwencjiwideo. Oba zadania, a więc rozpoznanie danego obiektu oraz jego śledzenie zostały zre-alizowane poprawnie. Algorytm został zrealizowany wieloetapowo, wykorzystując wieletechnik przetwarzania obrazów, a mianowicie:

• segmentacja,

• erozja i filtracja,

• detekcja krawędzi,

• indeksacja,

• transformacja log -polar.

Przy tak wielu operacjach wykonywanych w czasie rzeczywistym płynność działania pro-gramu jest niewystarczająca, istnieją jednak metody o których będzie mowa w dalszejczęści tego rozdziału, które mogą przyśpieszyć działanie programu. Każdy etap opisywa-nej pracy, wymagał osobnego podejścia do problemu. Podstawą do poprawnej detekcjijest proces segmentacji, należało więc wyróżnić charakterystyczne cechy obiektów, którenastępnie śledzono. Dobór odpowiedniej operacji morfologicznej w połączniu z filtracjąmedianową pozwolił na eliminację szumów oraz mało ważnych detali. Przy pomocy fil-tra Sobela jednoznacznie określono krawędzie wykrytych obiektów. Indeksacja umożliwiłaanalize pól powierzchni wykrytych obiektów. Transformacja log -polar była początkowympomysłem na realizację tematu projektu, jednakże podczas pracy nad opisywanym zagad-nieniem okazała się ona mało przydatna. Narzędzie to jednak byłoby bardzo użytecznedo ropoznawania określonych wzorców ze względu na swoje cechy znamienne.

Wyniki działania programu przedstawiono na rysunku 7.1. Wyniki są zadowalające,gdyż spełniono wszystkie założenia projektowe. Wyraźnie widoczne są wyselekcjonowanezielone obiekty z obrazu wideo, a więc segmentacje wykonano prawidłowo. Należy zazna-czyć, iż proces segmentacji wykorzystany w opisywanej pracy jest mało odporny na gwał-towne zmiany oświetlenia. Detekcje krawędzi przeprowadzono w sposób poprawny, gdyż

38

Page 39: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Rysunek 7.1: Wyniki działania aplikacji:a) Oryginalny obraz b) Zaznaczone zielone obiektyc) Krawędzie wykrytych obiektów d) Środek największego zielonego obiektu.

obiekty niezielone są pomijane przez detektor (np. palce osoby trzymającej obiekty, chipznajdujący się na legitymacji studenckiej- obiekt po prawej stronie), zaś krawędzie orygi-nalnych zielonych przedmiotów pokrywają się z wykrytymi. Łagodne krawędzie świadcząo wykorzystaniu operacji erozji i filtracji medianowej. Proces indeksacji można zaobserwo-wać na podstawie czerwonych prostokątów otaczających wykryte obiekty- jeden prostokątodpowiada jednemu zindeksowanemu obszarowi. W wyniku działania aplikacji śledzonybędzie większy zielony przedmiot.

W przyszłości projekt zostanie rozwinięty w znaczący sposób. W pierwszej fazie jegorozwoju zostanie zwiększona szybkość działania. Zostanie wygenerowany kod C, którypo kompilacji pozwoli uzyskać aplikację działającą zdecydowanie szybciej niż używającśrodowiska Matlab/Simulink. Następnie projekt zostanie rozwinięty w sensie praktycz-nym. Utworzona będzie aplikacja pozwalająca na sterowanie przeglądarką internetowąwykonując odpowiednie gesty przedmiotem śledzonym. Wykonany będzie również modułpozwalający na rysowanie w programie graficznym MS Paint, również za pomocą gestówwykonywanych przedmiotem śledzonym. Ludzie mający problemy z obsługą myszki kom-puterowej będą mieli szansę używać przeglądarki internetowej wykonując odpowiedniegesty dłonią.

39

Page 40: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Technologie związane z przetwarzaniem obrazów są obecnie na bardzo wysokim pozio-mie. Niniejszy projekt w swojej końcowej fazie ma być rozwiązaniem bardzo podobnymdo tego proponowanego przez firmę Microsoft o nazwie Kinect[2]. Jest to urządzenie de-dykowane dla konsoli MicrosoftXbox360. Za pomocą tego urządzenia ruchy gracza sąrozpoznawane a następnie śledzone, pozwala to na branie udziału w interaktywnej zaba-wie bez użycia jakiegokolwiek kontrolera.

Innym podobnym urządzeniem jest kontroler PlayStationMove[3], który w połączeniuze specjalną kamerą PlayStationEye pozwala grać w gry bazujące na naśladowaniu ruchugracza. To tylko dwa z pośród wielu zaawansowanych zastosowań przetwarzania obrazóww przemyśle rozrywkowym.

Opisany projekt stanowi bardzo dobrą podstawę do dalszego rozwoju. W projekcieskorzystano z szeregu różnego rodzaju narzędzi, które mogą być pomocne przy tworze-niu innych projektów o zbliżonej tematyce np. implementacja transformacji log -polar.Rodzaj rozpoznawanych obiektów można bardzo łatwo zmodyfikować, przez co może byćzmienione zastosowanie aplikacji.

40

Page 41: PRACADYPLOMOWA Inżynierska - Zespół …dydaktyka:glazor_lukanko...sposób wykorzystania ich w środowisku Matlab/Simulink. W tym rozdziale przedsta-wionazostałaideaindeksacjiiobrazuwcelułatwejanalizycechwyseparowanychwpro-cesie

Bibliografia

[1] Dokumentacja produktu Matlab http://www.mathworks.com/help/techdoc.

[2] Omówienie urządzenia Kinect http://www.xbox.com/pl-PL/kinect.

[3] Omówienie urządzenia Play Station Move http://pl.playstation.com/psmove.

[4] Sławomir Mikrut Anna Czechowicz. Analiza przydatności algorytmów detekcji kra-wędzi w zastosowaniach fotogrametrii bliskiego zasięgu. Kraków, 2006.

[5] Dariusz Frejlichowski. Segmentacja obrazu na potrzeby automatycznej indentyfikacjizawodników na podstawie cech ich strojów podczas telewizyjnej transmisji sportowej.Gdańsk, 2007.

[6] Jorge M. Dias Helder Araujo. An introduction to the log-polar mapping.

[7] Shih-Fu Chang John R.Smith. Single Color Extraction and Image Query.

[8] Richard E. Woods Rafael C. Gonzales. Digital Image Processing using Matlab.

[9] Przemysław Korohoda Ryszard Tadeusiewicz. Komputerowa analiza i przetwarzanieobrazów. Wydawnictwo Fundacji Postępu Telekomunikacyjnego, Kraków, 1997.

[10] Patrick Hebert Simon Perreault. Median Filtering in Constant Time. IEEE.

[11] Saikiran S. Thunuguntla. Object tracking using log-polar transformation. Rajam,Indie 2005.

[12] Robert Koprowiski Zygmunt Wróbel. Praktyka przetwarzania obrazów w programieMatlab. Akademicka Oficyna Wydawnicza EXIT, Warszawa, 2004.

41