Porównanie skuteczności algorytmów detekcji ruchu dla systemów wizyjnych ruchu ulicznego w wykrywaniu pojazdów

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

Download "Porównanie skuteczności algorytmów detekcji ruchu dla systemów wizyjnych ruchu ulicznego w wykrywaniu pojazdów"

Transkrypt

1 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2013/2014 PRACA DYPLOMOWA MAGISTERSKA Marcin Nazimek Porównanie skuteczności algorytmów detekcji ruchu dla systemów wizyjnych ruchu ulicznego w wykrywaniu pojazdów Opiekun pracy dr inż. Jakub Koperwas Ocena: Podpis Przewodniczącego Komisji Egzaminu Dyplomowego

2 Specjalność: Inżynieria Systemów Informatycznych Data urodzenia: Data rozpoczęcia studiów: Życiorys Urodziłem się 22 lutego 1989 roku w Iłży. Wychowywałem się w Radomiu, gdzie po ukończeniu szkoły podstawowej i gimnazjum kontynuowałem edukację w VI. Liceum Ogólnokształcącym im. Jana Kochanowskiego uczęszczając do klasy o profilu matematyczno-fizyczno-informatycznym. W lutym 2009 roku rozpocząłem studia inżynierskie na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. Tytuł inżyniera uzyskałem w czerwcu 2012 roku broniąc pracę Aplikacja internetowa wspierająca zarządzanie agencją filmowo-fotograficzną. Obecnie pracuję jako konsultant w firmie Scapaflow.... Podpis studenta EGZAMIN DYPLOMOWY Złożył egzamin dyplomowy w dniu r z wynikiem... Ogólny wynik studiów:... Dodatkowe wnioski i uwagi Komisji:

3 STRESZCZENIE Niniejsza praca magisterska ma na celu analizę skuteczności algorytmów analizy ruchu w sekwencjach filmowych ruchu ulicznego. Opisano klasyfikację metod oraz scharakteryzowano poszczególne podejścia. Na podstawie analizy problemu, którym jest pozyskanie informacji na temat ruchu samochodów na drogach i skrzyżowaniach oraz badań literaturowych wybrano algorytmy, których predyspozycje do osiągnięcia wysokiej skuteczności zostały ocenione najwyżej. W celu przeprowadzenia badań została wykonana aplikacja umożliwiająca przeprowadzenie eksperymentu. Wykorzystuje ona metody, które bazują na podejściach stosowanych do ogólnych rozwiązań wykrywania ruchu oraz własny algorytm zaprojektowany pod kątem analizy ruchu ulicznego. W ramach eksperymentu porównano wyniki działania poszczególnych metod, a analiza wyników pozwoliła wskazać metody, dla których w określonych warunkach skuteczność będzie najwyższa. Badania te dostarczają cenne informacje, które byłyby użyteczne przy projektowaniu systemu analizy ruchu pojazdów dla rzeczywistych zastosowań. Słowa kluczowe: OpenCV, analiza ruchu, detekcja ruchu, przepływ optyczny. THE COMPARISON OF MOTION DETECTION ALGORITHMS' EFFECTIVENESS FOR STREET TRAFFIC VISION SYSTEMS IN VEHICLE DETECTION The purpose of this master thesis is to analyze the effectiveness of movement analysis algorithms in traffic film sequences. It contains the classification of methods and description of each approach. The problem analysis was conducted based off information on road and intersection traffic, in addition to literature. The algorithms that could obtain the highest efficiency were chosen as a result of the analysis. In order to perform the study has been made an application, which allows to carry out the experiment. It uses methods that are based on the approaches used for general-purpose motion detection and own algorithm designed for the analysis of traffic. Throughout the experiment, the method results were compared and analyzed, which indicated the most efficient methods given specific environments. These studies would be beneficial in designing traffic analysis systems for real applications. Keywords: OpenCV, move analyze, move detection, optical flow.

4 Niniejszą pracę dedykuję Żonie.

5 Spis tres ci Spis treści Wstęp Tematyka Cel pracy Wykrywanie ruchu Interpretacja ruchu Podstawy teoretyczne Podstawowe problemy Badania literaturowe Klasyfikacja metod rozpoznawania ruchu Metody różnicowe Metody gradientowe Metody częstotliwościowe Metody korelacyjne Korelacja fragmentów obrazu Korelacja cech Podejście hierarchiczne Algorytmy wyznaczające przepływ optyczny Metoda Lucasa-Kanade Implementacja Metoda Horna-Schuncka Implementacja Algorytm autorski wyznaczanie obszarów ruchu Lokalizacja obszarów ruchu Progowanie Domknięcie Wyznaczenie obszarów Szukanie bloku w obszarze Podatność na błędy

6 Inne obiekty w scenie Podział obiektów Dobranie wartości parametrów Stosunek rozmiaru maski erozji i dylacji Wartość progowania Testowanie Kryteria Wydajność Dokładność Aplikacja Testowe sekwencje Metoda Lucasa-Kanade Metoda Horna-Schuncka Algorytm autorski Prędkość pojazdów Ocena wyników Podsumowanie Ocena techniczna Rozwój umiejętności Perspektywy rozwoju aplikacji Bibliografia

7 1. Wstęp 1.1. Tematyka Zmysłem za pomocą, którego przeciętny człowiek odbiera najwięcej informacji jest wzrok. Obserwowany obraz jest przez człowieka analizowany, a płynące z tej analizy wnioski są przyczyną określonych działań. Od momentu, kiedy stworzono możliwość rejestracji obrazu i zapisu go w postaci cyfrowej podejmowane są próby nauczenia komputerów podobnego procesu. System, który ma za zadanie analizować obraz w sposób wzorowany na biologicznym procesie widzenia nazywany jest powszechnie systemem wizyjnym [1]. Rysunek 1.1.1: Schemat systemu wizyjnego[3] Różnego typu systemy komputerowe, których zadaniem jest zastąpienie pracy człowieka przy podejmowaniu decyzji, opierają swoją pracę na pomiarach takich czynników jak ciśnienie, temperatura czy prędkość. Zmiany tych parametrów mają charakter jednowymiarowy, dzięki czemu do pracy tego typu urządzeń nie jest wymagana wysoka moc obliczeniowa i są one obecne w informatyce niemal od początku 7

8 istnienia tej dziedziny. Analiza sekwencji wideo jest zadaniem dużo trudniejszym, czego główną przyczyną jest wielowymiarowy charakter zmian obserwowanych czynników. Biorąc pod uwagę np. obraz z kamery o rozdzielczości 640x480, do dyspozycji jest różnych pomiarów barw poszczególnych pikseli zmieniających się - w zależności od używanego standardu zapisu - od kilku do kilkudziesięciu razy na sekundę. Pierwsze próby implementacji systemów, których zadaniem miała być reakcja na obserwowany ruch miały miejsce już w latach 80-tych XX wieku, czego przykładem jest system Put-thatthere powstały w 1980 roku na uniwersytecie MIT [2]. Potrafił on odczytywać gesty obserwowanej osoby, która dłonią wskazywała, w którym miejscu ekranu ma pojawić się pożądany obiekt. Kształt obiektu był określany z pomocą prostych komend głosowych. Rysunek 1.1.2: System Put-that-there [1] Granicą w rozwoju rozpoznawania ruchu była niewystarczająca moc obliczeniowa dostępnych komputerów. Dopiero w ostatniej dekadzie na rynku pojawiły się procesory, które posiadają na tyle wysoką częstotliwość taktowania, że możliwa jest już nie tylko analiza zapisanej sekwencji wideo, ale również działanie na obrazie rejestrowanym przez kamerę i reakcja w czasie rzeczywistym. To z kolei przekłada się na coraz silniejszą obecność systemów wizyjnych w automatyce przemysłowej [3]. Analiza ruchu ma swoje zastosowanie w wielu dziedzinach. Na przykład w medycynie pozwala na dokładnie badanie zjawisk chorobowych na podstawie 8

9 obrazów organów wewnętrznych człowieka, a w przypadku zdjęć satelitarnych powierzchni Ziemi jest bardzo pomocna przy analizie zjawisk pogodowych [4]. Tytułem przykładu wskazać należy, że w Monachium znajduje się wieża o wysokości 291 metrów znacznie przewyższająca panoramę miasta. Jest narażona na silne podmuchy wiatru, w związku z czym konieczna jest stała obserwacja odchyleń od pionu, do czego wykorzystywany jest system wizyjny - zaprojektowany specjalnie pod tym kątem [5]. Systemy wizyjne są również wykorzystywane w militariach - w przypadku pocisków, których zadaniem jest uderzenie w śledzony cel, a także w zakładach przemysłowych, gdzie kamera śledzi w danej fazie produkcji taśmę, z której odrzucone mają być wadliwe produkty. W wielu obszarach systemy oparte o detekcję na podstawie obrazu rejestrowanego przez kamerę wypierają powoli zastosowania oparte o innego typu sensory, jak np. lokalizatory laserowe, od których są tańsze, bardziej uniwersalne, mniej zależne od warunków pracy i nie muszą być tak często kalibrowane [3] Cel pracy Moja praca magisterska miała dwa cele. Jako cel naukowy postawiłem sobie wskazanie skutecznego sposobu wykrywania ruchu obiektów w systemach wizyjnych wykorzystywanych do analizy ruchu ulicznego. Aby tego dokonać niezbędna była dokładna analiza teoretyczna dostępnych algorytmów, a także zapoznanie się z dotychczasowymi badaniami i płynącymi z nich wnioskami. Zbadanie sposobu działania i potencjalnej dziedziny zastosowań poszczególnych metod pozwoliło na wybranie podejść, które mają szansę na wykazanie się dużą skutecznością. Równie ważne było dokładne zdefiniowanie problemu i określenie kryterium, które pozwoli na ocenę, który z algorytmów w określonych warunkach należy określić jako najlepszy. Ponieważ sekwencje wideo nagrane z kamer znajdujących się nad drogami posiadają pewne specyficzne cechy, zaimplementowałem również własny algorytm, którego rezultaty zostaną skonfrontowane z metodami wykorzystującymi implementacje dostępne w bibliotece OpenCV [6]. Uważam, że dobrze zaprojekowany i zaimplementowany algorytm analizy ruchu ulicznego może pomóc w poprawie bezpieczeństwa na drogach. Celem dydaktycznym mojej pracy było dokładniejsze zapoznanie się 9

10 z możliwościami analizy ruchu oraz możliwościami jakie udostępniają implementacje algorytmów dostępne w bibliotece OpenCV. Ponieważ w ostatnich latach kamery dostępne są zarówno w telefonach komórkowych jak i tabletach, smartfonach, telewizorach i wielu innych urządzeniach; rejestrowanie sekwencji wideo stało się powszechne. Idzie za tym możliwość czerpania dużej ilości informacji z różnych sekwencji w sposób automatyczny. W szczególności ciekawą perspektywą jest pojawienie się urządzeń typu Google glass 1, które rejestrując obraz w czasie rzeczywistym będą mogły go na bieżąco przetwarzać i wspierać działania użytkownika. 1 Urządzenie w formie okularów, którego wyświetlacz umieszczony jest tuż przed okiem użytkownika. 10

11 2. Wykrywanie ruchu 2.1. Interpretacja ruchu Z punktu widzenia programisty, którego zadaniem jest stworzenie oprogramowania analizującego ruch, sekwencja wideo to zbiór uporządkowanych obrazów. W przeciwieństwie do pojedynczego obrazu, który dostarcza informacje o położeniu obiektów w scenie, sekwencja filmowa pozwala na zbadanie zmian położenia tych obiektów. Ponieważ dla wykrycia ruchu barwy nie są istotne i najczęściej operuje się na obrazie w odcieniach szarości, to ruch jest w tym kontekście zbiorem zmian wartości odcieni szarości poszczególnych pikseli zachodzących pomiędzy następującymi po sobie klatkami filmu. Należy zwrócić uwagę, że nie zawsze konieczne jest analizowanie każdego piksela w klatce ani również każdej klatki w obrazie. Niosłoby to ze sobą wymaganie bardzo dużej mocy obliczeniowej, a co za tym idzie trudności związane z wygenerowaniem odpowiedzi w czasie rzeczywistym. Ponadto tak skonstruowany algorytm byłby bardzo czuły na wszelkiego rodzaju szumy. Przypadkowa zmiana jednego piksela powodowałaby wykrycie ruchu, który nie byłby widoczny gołym okiem. W zależności od rodzaju badanego zjawiskiem istotne jest ustalenie wartości dla podstawowych parametrów: Rozdzielczość badanego obrazu w większości przypadków można pozwolić sobie na pogorszenie jakości analizowanego materiału poprzez zmniejszenie rozdzielczości. Taka operacja nie wpłynie w znaczący sposób na możliwość wykrycia ruchu, a pozwoli na zaoszczędzenie cennej mocy obliczeniowej. Ponadto część drobnych obiektów (np. liście w przypadku obserwacji ruchu ulicznego), których ruch zostałby zarejestrowany w przypadku pierwotnej rozdzielczości, w przypadku rozdzielczości znacznie obniżonej zostanie pominięta. Liczba klatek na sekundę przekroczenie 15 klatek/sekundę [7] oznacza, że przeciętny człowiek nie widzi momentu zmiany kolejnych obrazów i interpretuje je jako płynny ruch. Mniejsza liczba powodowałby powstanie efektu pokazu slajdów. W przypadku analizy ruchu nie jest istotna jakość wizualna badanego materiału. 11

12 Ponieważ wymagane zasoby obliczeniowe są liniowo proporcjonalne do liczby klatek/sekundę, warto wziąć pod uwagę jej ograniczenie, co przekłada się na analizę tylko niektórych klatek w sekwencji. Przykładowo, dla przypadku programu liczącego pojazdy przejeżdżające przez dany przekrój drogi, wystarczy nam materiał w postaci zdjęć robionych na tyle szybko, aby odległość pomiędzy pozycjami samochodu na kolejnych klatkach była na tyle mała, aby możliwe było ich powiązanie ze sobą bez dodatkowej identyfikacji na podstawie cech. Próg zmiany przy sprawdzeniu czy piksel uległ zmianie najczęściej brana jest pod uwagę składowa S w przestrzenie barw HSV. Model HSV ma wiele wspólnego ze sposobem, w jaki kolory odbiera ludzki wzrok. W odróżnieniu od modelu RGB poszczególne składowe nie odpowiadają przedziałom widma, lecz cechom promieniowania widzialnego przez oko barwie (ang. hue - H), nasyceniu (ang. saturation - S) i odcieniowi (ang. value - V). Zasadniczą zaletą poruszania się w przestrzeni HSV jest możliwość oddzielenia chrominancji (H i S) od luminacji (V). Co więcej, składowa H jest mało podatna na zmiany wartości w przypadku zmian kąta pod którym pada światło na powierzchnię [8]. Pomimo tego, należy być przygotowanym na zmiany tej wartości dla konkretnego piksela, które nie są wywołane ruchem obiektu w obrazie. Jeśli odnotowywana będzie każda zmiana tej wartości, ruch będzie wykrywany nawet w sytuacjach, kiedy fizycznie nie będzie miał miejsca, a na zmianę wartości piksela wpłyną takie czynniki jak wspomniana zmiana oświetlenia czy szumy. Należy więc, w zależności od badanego zjawiska, ustalić wartość której przekroczenie będzie definiowało faktyczną różnicę jako zmianę. Decydującą rolę przy projektowaniu oprogramowania ma zakres wymagań, który ma zostać spełniony. Wpływa on bezpośrednio na określenie powyższych parametrów. W przypadku systemu monitoringu, mającego za zadanie ochronę mienia, satysfakcjonującym zakresem zadań będzie samo wykrycie ruchu. W tej sytuacji system alarmowy może po prostu przesłać do agencji ochroniarskiej klatkę albo krótką sekwencję filmową. W przypadku systemów o bardziej złożonej specyfikacji wykrycie ruchu może nie być wystarczające. Wymaganymi informacjami zwrotnymi są często również kierunek ruchu, jego prędkość, a także kształt poruszającego się obiektu. 12

13 Ma to miejsce np. w przypadku kamer instalowanych nad wjazdami na autostrady, kiedy celem jest wykrycie aut wjeżdżających pod prąd. Rysunek 2.1.1: Sytuacja drogowa (źródło: Niebagatelne znaczenie ma również charakter obserwowanej sceny. W przypadku obserwacji zamkniętego pomieszczenia o stałym oświetleniu można sobie pozwolić na dość dużą dokładność, w czego konsekwencji dopuszczalne jest przyjęcie założenia, że przypadkowe zmiany wartości pikseli nie pojawią się albo ich liczba będzie stosunkowo niewielka, a tym samym nie spowodują fałszywie pozytywnego wykrycia ruchu. Inaczej jest w przypadku monitorowania otwartych przestrzeni. Wtedy należy wziąć pod uwagę, że czynniki atmosferyczne takie jak opady, mgła czy rozbłyski oraz zmiany oświetlenia mogą zakłócić pomiar Podstawy teoretyczne Proces wykrycia ruchu w sekwencji wideo polega na wyznaczeniu wektora ruchu pomiędzy dwoma następującymi po sobie klatkami. Zagadnienie wiąże się nieodzownie z dwoma podstawowymi pojęciami: Pole ruchu (ang. motion field) - jest typowym pojęciem geometrycznym [9]. Definiuje je się jako pole powstałe na wskutek zrzutowania trójwymiarowej przestrzeni rzeczywistych wektorów ruchu na płaszczyznę obrazu [10]. Takie przekształcenie jest operacją jednoznaczną. Otrzymane w jego wyniku pole wektorowe zawiera informację o składowej ruchu obiektów równoległej względem płaszczyzny obrazu, ale jest 13

14 pozbawione informacji o składowej prostopadłej ruchu. Obserwowana scena ulega spłaszczeniu, a odtworzenie pierwotnej informacji (rzeczywistych wektorów) w oparciu o informacje zawartą w polu ruchu nie jest możliwe. Rysunek 2.2.1: Rzutowanie obrazu na płaszczyznę Przepływ optyczny (ang. optical flow) jest polem wektorowym, które zawiera informacje pozwalające na przekształcenie jednego obrazu w drugi. Operacja polega na wykonaniu transformacji przemieszczającej fragmenty z pierwszego obrazu zgodnie z wektorem przepływu optycznego do drugiego obrazu. Zgodnie z tą definicją przepływ optyczny nie jest ściśle zdeterminowany, możliwe jest znalezienie wielu pól wektorowych umożliwiających transformację określonego obrazu w inny [11]. Mówiąc bardziej obrazowo przepływ optyczny jest zbiorem translacji w postaci pola, które umożliwiają przekształcenie określonego obrazu w kolejny w sekwencji [12]. 14

15 Koncepcja przepływu optycznego jest obecna w literaturze niemal od początku lat 80-tych XX wieku [11] i w dalszym ciągu jest rozwijana. Rysunek 2.2.2: Przepły optyczny Powyższe definicje są oczywiście do siebie podobne, należy więc zwrócić uwagę na kwestię determinującą różnicę pomiędzy nimi. Pole ruchu mówi o rzeczywistym ruchu obiektów, a przepływ optyczny to interpretacja zmiany obrazu. Najlepiej ilustruje to przedstawiony na poniższym rysunku przykład walca pokrytego teksturą w formie spirali [9]. Na obrazie dwuwymiarowym zaobserwować można pozorny ruch w dół, podczas gdy tekstura faktycznie przesuwa się w prawo. Rysunek 2.2.3: Przepły optyczny a pole ruchu Obraz trójwymiarowej przestrzeni można więc traktować jako funkcję dwóch zmiennych - jej wartość zależy od natężenia światła padającego na sensor w punkcie, a współrzędne odpowiadają argumentom tej funkcji. Przy pewnych założeniach można przyjąć, że pole przepływu jest aproksymacją 15

16 pola ruchu [13], które pozwala na wygodną interpretację reprezentacji ruchu na obrazie. Najbardziej istotnymi czynnikami wpływającymi na wygląd obiektów na obrazie są [14]: oświetlenie umiejscowienie i liczba źródeł światła względem obiektów obserwowanych, natężenie oraz charakterystyki widmowe poszczególnych źródeł, stopień rozproszenia, kierunek padania promieni; charakterystyka sensora pobierającego obraz jego czułość w funkcji natężenia oraz długości promieniowania; dokładność, powtarzalność i prędkość pomiaru natężenia światła; charakterystyka geometryczna sensora; powierzchnia obiektów materiał, z którego wykonano poruszający się obiekt ma decydujący wpływ na pochłanianie światła i załamywanie się promieni. Obraz dwuwymiarowy może powstać z nieograniczonej liczby trójwymiarowych scen, co w praktyce czyni niemożliwym odtworzenie informacji geometrycznej o budowie sceny, którą zobrazowano. Ruch na obrazie można podzielić na ruch równoległy do powierzchni obrazu oraz pozorny, czyli wrażenie ruchu powstałe gdy obiekt albo wzór wydaje się przesuwać na płaszczyźnie obrazu. W sytuacji, gdy znany jest ruch na obrazie, aby uzyskać informację o ruchu rzeczywistym niezbędne jest rozwiązanie problemu zgodności [9] w ten sposób, aby z ogólnej informacji o ruchu odzyskać rzeczywisty ruch po odseparowaniu go od ruchu pozornego. Rozwiązanie tego problemu nie pozwoli jednak na uzyskanie pełnej informacji o ruchu rzeczywistym. Przyczyną takiego stanu rzeczy jest utrata części informacji, co z kolei powoduje możliwość zaistnienia sytuacji, kiedy ruch rzeczywisty nie będzie posiadał odpowiednika w ruchu na obrazie Podstawowe problemy Wszystkie metody estymacji przepływu optycznego są obarczone problemami. Poniżej przedstawiono główne z nich: Problem szczelinowy (ang. aperture problem) polega na błędnym określeniu ruchu w sytuacji, gdy poruszający obiekt znajduje się częściowo poza kadrem. Sytuację 16

17 tę obrazuje poniższy rysunek. Górny rząd przedstawia rzeczywisty ruch obiektu, natomiast dolny jedynie te fragmenty obrazu, które zostały zarejestrowane. Pomimo, że zarówno składowa obiektu w pionie, jak i poziomie są niezerowe, zostanie dostrzeżony jedynie ruch w poziomie. Dla ruchu pionowego doszło do powstania szczeliny, która jest mniejsza od przesunięcia, w związku z czym nie ma możliwości porównania ze sobą pikseli na kolejnych klatkach [15]; Rysunek 2.3.1: Problem szczelinowy Przezroczystość lub jednolita barwa w przypadku braku tekstury może dojść do błędnego określenia wektora przepływu. Ruch takiego obiektu na obrazie może nie zostać zauważony, przykładem czego może być obrót gładko wypolerowanej kuli o jednolitym zabarwieniu; Nietypowe teksturowanie zmieniający się wzdłuż jednego kierunku poziom jasności może prowadzić do utraty informacji o ruchu [11], taka sytuacja może powstać na skutek specyficznego wzoru pokrywającego poruszający się obiekt (np. rysunek spiralna tekstura na walcu); Zachodzenie na siebie obiektów w tej sytuacji dochodzi do pojawiania i zanikania części niektórych obiektów, czyli zmianie ulega ich kształt na obrazie. W takim przypadku istnieją obszary, które nie mają swoich odpowiedników w kolejnych klatkach, co z kolei znacznie utrudnia stworzenie transformacji. Wyznaczony przepływ optyczny jest wtedy błędny, ale może zostać wykorzystany do określenia kierunku 17

18 translacji oraz segmentacji sceny na niezależnie poruszające się obiekty [13]; Zmienne oświetlenie nierównomierna intensywność padającego światła może prowadzić do powstawania cieni na powierzchniach obiektów oraz przemieszczania się gradientów jasności, które są wykorzystywane przez wiele algorytmów. Najbardziej skutecznym rozwiązaniem tego problemu jest poruszanie się w przestrzeni barw HSV [16]. Z uwagi na fakt, że wskazane powyżej problemy są trudne do uniknięcia i nie jest możliwe ich całkowite zniwelowanie, w celu względnie dokładnego obliczenia przepływu optycznego należy przyjąć założenia, które ułatwią aproksymację, a mianowicie: Równomierne rozproszenie światła w wyidealizowanym przypadku położenie obiektu względem sensora i źródła światła nie powinno wpływać na wygląd obiektu jest on taki sam w różnych płaszczyznach rzutowania ze względu na równomiernie rozproszenie światła na jego powierzchni; Równoległe rzutowanie przeniesienie równoległe z trójwymiarowej sceny do płaskiego obrazu, na którym nie jest zauważalna perspektywa; Jednolite oświetlenie - należy przyjąć, że położenie obiektu wobec źródła światła nie powoduje zmian w jego wyglądzie oświetlenie powierzchni obiektu jest stałe; W przypadku rzeczywistej sceny jednoczesne spełnienie wszystkich warunków jest praktycznie niemożliwe. Przyjmuje się jednak, że mogą one zostać spełnione lokalnie dla sceny trójwymiarowej, czyli również lokalnie na płaszczyźnie obrazu [14] Badania literaturowe Istniejące publikacje naukowe poruszają tematykę metod wykrywania ruchu, jak również badające możliwości analizy ruchu ulicznego. W jednej z prac [17] autor weryfikuje możliwość wykrycia pojazdów na podstawie przepływu optycznego. W odróżnieniu od mojego eksperymentu scena jest obserwowana z perspektywy kamery umieszczonej na wysokości samochodu, w ten sposób, aby ogniskowa 18

19 obiektywu była równoległa do osi jezdni. Obserwacja polega więc na badaniu skalowania rzutów samochodów na płaszczyznę obrazu, które zwiększają się lub zmniejszają w zależności od tego, w którą stronę porusza się pojazd. Z kolei inni autorzy porównują ze sobą metody estymacji przepływu optycznego [18] [19], badając m.in. ich podatność na szum, przy czym nie koncentrują się bezpośrednio na konkretnym zastosowaniu. Publikacje, które porównują zgodność przepływu optycznego z faktycznym polem ruchu, operują na obrazach syntetycznych lub półsyntetycznych. Aby sprawdzić stopień, w jakim obliczony przepływ optyczny jest zgodny z faktycznym ruchem, trzeba znać pole ruchu. Ponieważ jego ręczne wyliczenie z pożądaną dokładnością nie jest wykonalne, sekwencje testowe przygotowywuje się poprzez umieszczenie w scenie sztucznie wygenerowanych obiektów o znanym polu ruchu. Inna z prac [20] koncentruje się na wykryciu pojazdów w ruchu ulicznym. Użyta w niej metoda jest bliska metodom różnicowym opisanym w rozdziale 3.1. Z punktu widzenia mojej pracy jest to szczególnie interesująca publikacja. Autorzy podobnie jak ja koncentrują się na wykrywaniu samochodów z perspektywy statycznej kamery umieszczonej nad drogą. Jednak artykuł bierze pod uwagę tylko jedną metodę wykrywania pojazdów, natomiast dużo uwagi poświęca problemowi obiektów nachodzących na siebie. W odróżnieniu od niniejszej pracy nie jest w nim brany pod uwagę aspekt wydajnościowy. Wykrywanie pojazdów w ruchu ulicznym stanowi również przedmiot innej publikacji [21], w której autor - używając tylko metod różnicowych - stara się uzyskać dobre rezultaty przy pomocy wygładzania histogramu i doboru odpowiedniej wartości progowania. Również w tej publikacji autor koncentruje się na jednej wybranej metodzie. Ciekawe zagadnienie porusza także artykuł [22], którego autorzy badają możliwość redukcji liczby wypadków samochodowych poprzez analizę prędkości samochodów zbliżających się do skrzyżowania i pośrednie wpływanie na ich ruch poprzez zmianę świateł. Praca ta ma niewiele wspólego - z technicznego punktu widzenia - z tematyką 19

20 poruszaną przeze mnie, ale ma podobną inspirację stworzenie rozwiązania mogącego poprawić bezpieczeństwo na drogach. Obydwie koncepcje mogłyby funkcjonować wspólnie w ramach jednego systemu. Dla takiego rozwiązania istniałaby również możliwość koncepcji omawianej w źródle [23], która bada możliwość automatycznego odczytywania numerów z tablic rejestracyjnych. W przypadku obserwacji ruchu ulicznego pod kątem przechodniów, bardzo cenną publikacją jest praca na temat wykrywania ludzkiego ciała [24] w sekwencjach wideo. W publikacjach związanych z wykrywaniem ruchu ulicznego dominują prace koncentrujące się na analizowaniu obrazu pochodzącego ze statycznej kamery, jednak nie brakuje również prób [25] polegających na przetwarzaniu obrazu pochodzącego z wideorejestratora umieszczonego za przednią szybą auta. Takie podejście wymaga wcześniejszego wykrycia położenia samochodu i śledzenia jego ruchu, do czego wykorzystywane jest wykrywanie krawędzi i inne metody bliższe zagadnieniom przetwarzania obrazów. Oczywiście niniejszy przegląd nie jest w stanie poruszyć wszystkich publikacji w zakresie automatycznej analizy ruchu, ani też wszystkich zagadnień programistycznych związanych z badaniem ruchu ulicznego. Pozwala jednak stwierdzić, że istnieją badania poruszające kwestie, które wraz z tematyką mojej pracy znajdują się w dwóch wspólnych spektrach problemów detekcji ruchu w sekwencjach wideo oraz analizie ruchu ulicznego. Duża liczba artykułów nie wyczerpuje do końca zagadnienia wykrywania ruchomych obiektów, w szczególności jeśli zostanie uwzględniony kontekst ich zastosowania w postaci analizy ruchu pojazdów w ruchu ulicznym. W większości tego typu publikacji autorzy używają jednej z metod i starają się na tyle udoskonalić określone podejście, aby osiągnąć jak najlepsze wyniki. Natomiast w mojej pracy koncentruję się porównaniu metod, które mają największe szanse osiągnięcia najlepszego wyniku w postaci prawidłowego określenia liczby samochodów znajdujących się w ruchu pomiędzy dwoma kolejnymi klatkami. 20

21 3. Klasyfikacja metod rozpoznawania ruchu Metody wykrywania ruchu najczęściej są klasyfikowane według podziału na cztery główne grupy: Metody różnicowe polegające na analizowaniu różnic składowej koloru lub odcienia szarości odpowiadających sobie pikseli pomiędzy klatkami; i czasowych obrazu; częstotliwości; Metody gradientowe oparte na wyznaczaniu pochodnych przestrzennych Metody częstotliwościowe związane z filtrami operującymi w dziedzinie Metody korelacyjne przeszukujące obraz pod kątem dopasowania obszarów Metody różnicowe Pierwsza grupa metod bazuje na podejściu, które nie jest skomplikowane, a w niektórych zastosowaniach potrafi dać satysfakcjonujące rezultaty. Umożliwia śledzenie ruchu oraz jego detekcję na podstawie różnic pomiędzy następującymi klatkami. Ich wadą jest uzależnienie efektywności od kontrastu pomiędzy poruszającymi się obiektami i tłem. Przyjmijmy, że dysponujemy sekwencją filmową składającą się z dwóch klatek i chcemy stwierdzić czy wystąpił w niej ruch. Aby rozpocząć proces detekcji ruchu należy wykonać operację odjęcia klatek od siebie w celu uzyskania klatki różnicowej. Będzie to polegać na uzyskaniu różnicy wartości pikseli o odpowiadających sobie współrzędnych. Taka operacja ma sens jedynie w przypadku nieruchomej kamery i stałego oświetlenia. Wynikowy obraz różnicowy d(i, j) jest binarnym obrazem, gdzie niezerowe wartości reprezentują potencjalne obszary ruchu, czyli obszary, gdzie występowała zauważalna różnica pomiędzy poziomami szarości w kolejnych obrazach f i f. Zatem [12]: 21

22 d(i, j) = 0 jeśli f (i, j) f (i, j) ε, (3.1.1) 1 w p. p. gdzie ε jest małą liczbą dodatnią. Najlepszą metodą na jej odpowiednie określenie jest dobranie wartości doświadczalnie. Zbyt wysoka wartość spowoduje, że przy niewielkiej różnicy intensywności pomiędzy poruszającym się obiektem i tłem, nie zostanie zauważony ruch. Natomiast jeśli wartość będzie zbyt mała, algorytm będzie stwierdzał ruch również w wyniku szumów. Obraz różnicowy może też być oparty na bardziej złożonych cechach, takich jak średni poziom szarości dla niektórych sąsiadów, lokalne cechy tekstury, itp. Niech f (i, j) i f (i, j) będą wartościami intensywności odpowiadających sobie pikseli na dwóch kolejnych obrazach. Wówczas d(i, j) [26] może mieć wartość 1 dla każdego z poniższych przypadków: 1. f (i, j) jest pikselem poruszającego się obiektu, a f (i, j) należy do nieruchomego tła (lub odwrotnie); 2. f (i, j) jest pikselem poruszającego się obiektu, a f (i, j)jest pikselem innego poruszającego się obiektu; 3. f (i, j) jest pikselem poruszającego się obiektu, a f (i, j) jest pikselem innej części tego samego poruszającego się obiektu; 4. wystąpiły zakłócenia, niedokładności stabilizacji kamery itp. Nietrudno zauważyć, że stosowanie powyższej metody jest związane się z wieloma problemami opisanymi w rozdziale 2.3. Najbardziej intuicyjnym ich rozwiązaniem jest wykluczenie z analizy tych regionów obrazu różnicowego, dla których wartość różnicy nie jest większa od odpowiedniej wartości progowej, jednak jak już wcześniej wspomniano - może to spowodować niewykrycie niektórych ruchów. Podejścia różnicowe są relatywnie szybkie w porównaniu do innych metod i stanowią bardzo dobry wstęp do zagadnienia. Jednakże uzyskane w ten sposób obrazy różnicowe nie dają dostatecznej ilości informacji dla wyspecjalizowanego działania 22

23 systemu w rzeczywistych zastosowaniach. Metody różnicowe nie koncentrują się na dokładnym wyliczeniu pola przepływu optycznego, ale na prostym wyodrębnieniu ruchomego obiektu. Nie w każdej sytuacji możemy liczyć na pożądaną skuteczność. Proces rozpoznawania ruchu z wykorzystaniem metod różnicowych podzielić możemy na trzy etapy [27]: 1. Wygenerowanie klatki referencyjnej lub tła. 2. Arytmetyczne odjęcie klatek od siebie. 3. Dobór progowania. Uzyskanie obrazu referencyjnego (tła) może nastąpić z wykorzystaniem różnych metod, np. poprzez uśrednienie wartości pikseli w kolejnych klatkach. Takie podejście pozwala zniwelować zmiany, które chcielibyśmy pominąć (np. ruch chmur). Istotnym problemem jest występowanie cieni. W szczególności przy obecności w scenie intensywnego źródła światła cienie mogą zostać potraktowane jako fragmenty obiektów albo samodzielne elementy. Może to doprowadzić do zakłamania pomiarów w znacznym stopniu. Na podstawie metody różnicowej został opracowany algorytm budowy obrazu historii ruchu MHI (ang. Motion History Image) [28], zwany nierzadko również skumulowanym obrazem różnicowym [12]. Zasada jego działania nie jest skomplikowana. Utworzony zostaje obraz, na którym intensywność składowej koloru piksela zależy nie tylko od wystąpienia różnicy na dwóch sąsiednich klatkach. Pod uwagę branych jest więcej klatek i piksel jest tym mniej intensywny im dawniej wystąpiła różnica. Dzięki temu możliwe jest nie tylko stwierdzenie wystąpienia ruchu, ale także określenie jego kierunku i prędkości. Wzór na wartość funkcji intensywności piksela ma wtedy postać [12]: d (i, j) = a f (i, j) f (i, j), (3.1.2) gdzie a jest wagą obrazu w sekwencji. Im obraz bardziej odległy od aktualnej 23

24 klatki (miarą odległości jest liczba znajdujących się pomiędzy nimi klatek), tym mniejsza jest mu nadawana waga. W ten sposób zostaje podkreślona istotność aktualnego ruchu, co pozwala określić bieżące położenie obiektu oraz kierunek ruchu. Liczba branych pod uwagę ostatnich klatek oraz wartości wag są parametrami, które mogą służyć do optymalizacji metody w konkretnym zastosowaniu [29]. Metody oparte o skumulowany obraz różnicowy są często wykorzystywane do prezentacji ruchu ciała ludzkiego. [16] Rysunek 3.1.1: Tworzenie historii ruchu [16] 3.2. Metody gradientowe Metody gradientowe opierają się na wykorzystaniu pochodnych przestrzennych i czasowych obrazu, na podstawie których wyznaczany jest przepływ optyczny. Jest to jedna z najstarszych grup metod, jednak jest ona wciąż rozwijana. Metody gradientowe klasyfikowane są na podstawie rzędu pochodnej, którą wykorzystano do obliczeń. Największą popularnością cieszą się metody oparte o pochodne pierwszego rzędu. Metody pierwszego rzędu oparte są na założeniu niezmienności poziomu jasności 24

25 punktu obrazu, który został zrzutowany na płaszczyznę. Jeśli przyjmiemy, że I(x, t) jest funkcją intensywności obrazu w punkcie x oraz chwili t, to założenie to opisuje wzór [11]: di(x, t) = 0 (3.2.1) dt Powyższe wyrażenie wynika bezpośrednio z definicji przepływu optycznego określonego wzorem: I(x, t) = I(x + δ x, t + δt), (3.2.2) w którym δx jest przemieszczeniem punktu w czasie δt. Aby możliwe było różniczkowanie, konieczne jest założenie, że dziedzina jest ciągła. Dla skutecznego działania metod gradientowych istotne jest spełnienie następujących założeń [13]: niezmienne oświetlenie jasność danego piksela nie ulega zmianom podczas ruchu pomiędzy kolejnymi klatkami; Rysunek 3.2.1: Niezmienne oświetlenie [30] małe przesunięcie obiektów w sekwencji; Rysunek 3.2.2: Małe przesunięcia obiektów w sekwencji [30] 25

26 przestrzenna spójność punkty, które ze sobą sąsiadują są położone na tej samej powierzchni oraz wykonują podobne ruchy. Rysunek 3.2.3: Przestrzenna spójność [30] Pierwsze z założeń jest związane z definicją przepływu optycznego. W przypadku drugiego istotne jest, aby ruch w następujących po sobie klatkach był niewielki. Rozwijając prawą stronę równania w szereg Taylora otrzymujemy: I(x + δx, t + δt) = I(x, t) + ( I) δ x + δti + O, (3.2.3) gdzie I = (I, I ) oraz I to pochodne pierwszego rzędu I(x, t). Natomiast O to pochodne wyższych rzędów i można je zaniedbać. Następnie należy od obydwu stron równania odjąć wyrażenie I(x, t), na skutek czego otrzymujemy: ( I) v + I = 0, (3.2.4) gdzie I = (I (x, t), I (x, t)) jest przestrzennym gradientem funkcji intensywności, a z kolei v = (u, v) stanowi wektor przepływu optycznego. Powyższe równanie jest równaniem ograniczenia gradientu, określanym często również jako równanie przepływu optycznego. Definiuje one pojedyncze, lokalne ograniczenie na wektor prędkości optycznej [13]. Nie jest ono jednak wystarczające do wyznaczenia obu składowych właściwego wektora przepływu optycznego v, ponieważ jest to równanie liniowe pojedyncze, natomiast wektor prędkości optycznej posiada dwie 26

27 składowe będące niewiadomymi równania. Rysunek 3.2.4: Ograniczenie prędkości optycznej Równanie przepływu optycznego definiuje więc prostą przedstawioną na powyższym rysunku [11]. Składowa normalna v prędkości optycznej jest definiowana jako wektor prostopadły do prostej ograniczającej oznaczonej linią przerywaną. Ten wektor jest równoległy do gradientu I, czyli: v = I I I (3.2.5) Znajomość pochodnych przestrzenno-czasowych obrazu umożliwia wyznaczenie składowych normalnych prędkości optycznej. Aby wyznaczyć całkowitą prędkość optyczną należy przyjąć dodatkowe założenia. W sytuacji gdy zmiany jasności są lokalne i mają charakter jednowymiarowy, wyznaczenie wektora prędkości optycznej nie jest wykonalne. Wiąże się to z opisanym już wcześniej problemem szczelinowym [9]. Rysunek 3.2.5: Problem szczelinowy W przypadku szczelin 1 i 3 możliwe jest wyznaczenie tylko prędkości normalnej 27

28 obiektu, albowiem brakuje informacji o wszystkich składowych. Wyznaczenie pełnego wektora prędkości jest możliwe w przypadku szczeliny 2. Metody gradientowe drugiego rzędu wykorzystują hesjan intensywności I(x, t): I (x, t) I (x, t) I (x, t) I (x, t) u v + I (x, t) I (x, t) = 0 (3.2.6) 0 Równanie to jest możliwe do wyprowadzenia ze wzoru ogólnego opisującego przepływ optyczny. Jest ono również związane z podstawowym dla metod drugiego rzędu założeniem niezmienności gradientu intensywności: d I(x, t) dt = 0, (3.2.7) gdzie wyrażenie I(x, t) jest gradientem funkcji intensywności. Założenie niezmienności gradientu wyklucza obecność deformacji pierwszego rzędu, jak np. obrót czy skalowanie. Jest to bardziej restrykcyjne założenie niż Jego spełnienie pozwala na wyliczenie prędkości optycznych dzięki wykorzystaniu równania ograniczającego drugiego rzędu (3.2.6) [31]. Najczęściej jednak zestawia się je w celu stworzenia układu równań. Niestety w przypadku pojawienia się problemu szczelinowego [13], duże błędy numeryczne różniczkowania mogą spowodować, że pochodne drugiego rzędu nie zostaną poprawnie wyliczone, co w konsekwencji prowadzi do tego, że metody gradientowe drugiego rzędu mogą okazać się mniej dokładne niż metody pierwszego rzędu [18]. W metodach gradientowych wyróżniamy podejście globalne i lokalne. W przypadku pierwszego wykorzystywane jest równanie ograniczające przepływ optyczny oraz dodatkowe globalne ograniczenia, czego efektem jest gęste pole przepływowe, które określa ruch dla większej liczby pikseli [13]. Natomiast metody lokalne są oparte na informacjach związanych z prędkościami normalnymi z sąsiedztwa, które są wykorzystywane do minimalizacji określonego funkcjonału pozwalającego znaleźć prędkość optyczną punktu. Równanie ograniczające szybkość zmian prędkości optycznej [11] jest używane do usunięcia niejednoznaczności pomiaru prędkości 28

29 normalnej. Bazuje ono na założeniu, że prędkości sąsiadujących ze sobą pikseli są prawie identyczne jeśli odnoszą się do tej samej rzeczywistej poruszającej się powierzchni [11]. Łącząc te ograniczenia otrzymujemy funkcjonał [14]: ( I v + I ) + λ u + v dx, (3.2.8) gdzie D stanowi przestrzeń obrazu, a λ to współczynnik regulacji wpływu ograniczenia wygładzającego. Dla metod gradientowych stosowany jest przybliżony funkcjonał, którego modyfikacje prowadzą do skompensowania rozbieżności warunków i ograniczeń, które nałożono na obraz. Modyfikacje funkcjonału pozwalają zarówno na rozszerzenie zastosowań metod globalnych, jak również na poprawienie rezultatów poprzez uwzględnienie uwarunkowań dla konkretnego typu obrazu. Jeśli na przykład obraz ma zawierać scenę w rzucie prostopadłym oświetlenie musi być przynajmniej lokalnie jednorodne, z kolei ruch powinien być równoległy do płaszczyzny rzutowania. Te warunki są konieczne, aby założenie niezmienności intensywności było spełnione [14]. Aby umożliwić uwzględnienie zmian związanych z rozszerzaniem i kurczeniem się sąsiedztwa, co z kolei pozwoli na zastosowanie metody dla dużo szerszej dziedziny zastosowań, trzeba zmodyfikować ograniczenie prędkości optycznej [14]: Iv + I + I(u + u ) = 0, (3.2.9) gdzie Iu + u stanowi dywergencję przepływu. Istnieją dalsze modyfikacje, które polegają na zastąpieniu ograniczenia (3.2.4) bardziej ogólnym wyrażeniem, które pozwoli na modelowanie wszystkich możliwych liniowych transformacji mogących pojawić się na obrazie. Uwzględnienie w równaniu zmian jasności daje możliwość stosowania metody w przypadkach, gdy intensywność jest zmienna: 0. Powstały również metody, w których funkcjonał zawiera w sobie wyrazy, które dopuszczają złożony model oświetlenia i uwzględniają odbicia 29

30 zwierciadlane oraz oświetlenie rozproszone. Dla minimalizacji pozwalającej uzyskać poszukiwaną wartość prędkości optycznej w metodach lokalnych wykorzystywane są prędkości normalne z sąsiedztwa. Te metody oparte są na założeniu, że na badanym obrazie pojawiają się zazwyczaj grupy punktów przemieszczających się w tym samym kierunku. Metoda Lucasa-Kanade, opisana w jednym z kolejnych rozdziałów, bazuje na wykorzystaniu funkcjonału opartego na równaniu ograniczającym prędkość optyczną (3.2.4), który zawiera ważoną sumę ograniczeń dla sąsiedztwa lokalnego [32]: W (x ) I(x, t) v + I (x, t), (3.2.10) gdzie W(x ) stanowi funkcję wagową, notamiast R jest sąsiedztwem przestrzennym danego punktu. Problem szczelinowy jest możliwy do rozwiązania analitycznie poprzez różniczkowanie równania ograniczającego. Pozwala to uzyskać układ równań, który zawiera pochodne intensywności rzędu drugiego. Ten układ jest określony i daje możliwość wyznaczenia obu składowych prędkości optycznej pod warunkiem niewystąpienia sprzeczności. Z tego powodu metody gradientowe rzędu drugiego mogą być określane jako lokalne [14]. Zaletą metod lokalnych jest możliwość policzenia pola przepływu dla małej liczby punktów, czyli wymagana moc obliczeniowa jest niższa. W przypadku niektórych zastosowań można to jednak uznać za wadę. Należy również zauważyć, że kiedy nie jest zapewniony warunek spójności przestrzennej, te metody dadzą niedokładne wyniki [13]. Korzystanie z metod gradientowych generuje konieczność wprowadzania dodatkowych operacji. Filtrowanie obrazu na wstępie jest konieczne, aby nie pojawił się aliasing, natomiast obliczenia numeryczne muszą być wykonywane z zadaną dokładnością. Jakość ich działania nierzadko jest zależna od wymagań, które powinny spełniać dane wejściowe [31]: liniowy charakter zmian intensywności; 30

31 prędkości nieprzekraczające jednego punktu na ramkę obrazu. Wynikają one głównie z ograniczeń w postaci wykorzystania tylko dwóch klatek, zastosowania niewłaściwych metod numerycznych różniczkowania lub zakłóconych aliasingiem danych wejściowych [18]. Z tego powodu, większość pierwotnych metod zmodyfikowano, aby możliwe było poprawienie jakości działania oraz zwiększenie wydajności. Aby zwiększyć skuteczność działania metod gradientowych często stosuje się dekompozycję hierarchiczną [33]. Polega ona na wykonaniu w pierwszej kolejności obliczeń na obrazie o mniejszej rozdzielczości i późniejszym wykorzystaniu wyników do obliczeń w wersjach obrazu o rozdzielczości coraz większej. Takie podejście pozwala na redukcję aliasingu oraz zmniejsza prędkości optyczne obiektów, co z kolei daje większe prawdopodobieństwo spełnienia warunku związanego z niewielkimi przemieszczeniami. Rysunek 3.2.6: Hierarchiczna dekompozycja obrazu 3.3. Metody częstotliwościowe Wyznaczanie przepływu optycznego jest również możliwe z wykorzystaniem filtrów częstotliwościowych, które są czułe na kierunek fal w przestrzeni fourierowskiej. Ta grupa metod operuje w dziedzinie czasowo-przestrzennej. Konsekwencją takiego podejścia jest możliwość wykrycia ruchu w sygnale obrazu, który byłby niewykrywalny dla metod korelacyjnych i gradientowych [13], co stanowi główną przesłankę do ich wykorzystywania w niektórych zastosowaniach. Przykładem takiej sytuacji jest ruch 31

32 wzoru składającego się z losowo rozmieszczonych punktów na podobnym tle albo obiekt częściowo przezroczysty, który w przypadku metod korelacyjnych i gradientowych zostałby potraktowany jako szum. Natomiast w przestrzeni częstotliwościowej ruch ten spowoduje powstanie zorientowanej energii, której wykrycie - i w konsekwencji stwierdzenie ruchu - jest możliwe. Przykładem takiej sytuacji mogą być np. opady śniegu. Poniższy wzór przedstawia transformatę Fouriera przemieszczającego się sygnału dwuwymiarowego [16]: a k, ω = Ik δv k + ω, (3.3.1) gdzie Ik jest transformatą Fouriera intensywności obrazu I (x, 0). δ to delta Diraca, natomiast k = (k, k ) to częstość przestrzenna, z kolei ω stanowi częstość czasową. To prowadzi do równania ograniczenia przepływu optycznego w dziedzinie częstotliwościowej: v k + ω = 0, (3.3.2) z którego wynika, że prędkość dwuwymiarowego przemieszczającego się wzoru w obrazie jest funkcją jego częstości czasowo-przestrzennej oraz tworzy płaszczyznę w obrazie źródłowym również dla przestrzeni fourierowskiej [13]. Spośród metod częstotliwościowych wyodrębniamy dwie podgrupy [16]: metody oparte na filtrach częstotliwościowych oraz metody bazujące na filtrach fazowych. Metody oparte na filtrach częstotliwościowych polegają na analizie rozkładu energii w przestrzeni fourierowskiej (metoda Adelsona i Bergena) [34]. Korzystają one z równoznaczności rozpoznawania ruchu na obrazie oraz użycia przestrzenno-czasowej orientacji. Mając na celu wydobycie zorientowanej w ten sposób energii używa się filtru Gabora [13] będącego funkcją Gaussa przemnożoną przez sinusoidę lub cosinusoidę [14], czego przykładem jest poniższy wzór: 32

33 G(x, t) = 1 (2π) e σ σ σ sin 2πx k + ωt, (3.3.3) gdzie k, ω to częstotliwość centralna, odpowiada jej maksimum apmlitudy. Techniki oparte na metodach częstotliwościowych wielokrotnie są przedstawiane jako model ludzkiego sposobu postrzegania ruchu [13]. Grupa metod wykorzystująca filtry fazowe polega na definiowaniu prędkości w kategorii zmian fazy sygnału. Zostały one opracowane przez Fleeta i Jepsona [35] i opierają się na pasmowo-przepustowych filtrach fazowych Gabora dostrojonych do prędkości, które przekształcają sygnał wejściowy zgodnie ze skalą, orientacją i prędkością. Tzw. prędkość składowa jest definiowana jako chwilowa zmiana obwiedni fazy na wyjściu z filtra [13]. Filtr daje w wyniku wielkość zespoloną: R(x, t) = ρ(x, t)e (,), (3.3.4) gdzie ρ(x, t) oraz (x, t) są odpowiednio amplitudą oraz fazą sygnału wejściowego. Prędkość normalna obwiedni określona jest wzorem: v = (x, t) φ(x, t) φ(x, t), (3.3.5) gdzie φ(x, t) określa pochodną po czasie z fazy, a φ(x, t) to gradient przestrzenny. Gradient fazy może zostać wyznaczony ze wzoru: φ(x, t) = Im[R (x, t) R(x, t)] R(x, t), (3.3.6) gdzie R to zespolone sprzężenie R(x, t), a R(x, t) jest gradientem R(x, t). Autorzy metody związali prędkość ze zmianą fazy. Kiedy niewielkie odchylenia od kierunku translacji występują regularnie na trójwymiarowym obrazie, jest ona bardziej stabilna niż zmiana amplitudy. Jest to związane z drobnymi nieregularnościami wynikającymi z transformacji obrazu pojawiającymi się często na rzeczywistych obrazach. Wynikają one najczęściej z obecności projekcji perspektywicznej zamiast rzutu 33

34 równoległego. Czynnik fazy może jednak również cechować się niestabilnością, która pojawia się najczęściej w sąsiedztwie punktów nieciągłości. Takie punkty można wykryć korzystając z ograniczenia minimalizującego rozbieżność pomiędzy zmianami amplitudy w czasie i przestrzeni a częstotliwością filtru [14]: logr(x, t) ik, ω σ τ, (3.3.7) gdzie k, ω stanowi częstotliwość filtra, σ to odchylenie standardowe amplitudy spektrum, a τ jest progiem, który może zostać wykorzystany do odrzucenia niepewnych wyników wartości prędkości normalnej fazy. To ograniczenie zapewni również prawidłowy stosunek poziomu sygnału do szumu. Filtry fazowe cechują się dużo większą efektywnością niż metody gradientowe czy metody oparte o analizę rozkładu energii w warunkach zmiennego oświetlenia [13]. Jeśli weźmiemy pod uwagę sygnał w postaci A cos(ωt + ) to możemy zauważyć, że w przypadku zmiany amplitudy, zmieni się zarówno wartość pochodnej sygnału, jak również jego energii w przestrzeni częstotliwościowej. Wartość fazy pozostanie stała. Metody fazowe dają poprawne wyniki również w sytuacji, gdy wiele obiektów znajduje się w ruchu i uwzględniają zachodzenie na siebie ruchomych krawędzi oraz przeźroczystości (pod warunkiem zastosowania odpowiedniego modelu, który uwzględni takie zjawiska dokonując rozdzielania poszczególnych ruchów podczas integracji). Główną wadą metod bazujących na filtrach fazowych jest brak miary, która pozwoliłaby określić stopień dokładności otrzymanych rezultatów. Dla wszystkich metod częstotliwościowych wadą jest skomplikowany model matematyczny utrudniający implementację oraz duża liczba filtrów, które są wymagane do wyodrębnienia istotnych danych, co z kolei wpływa na złożoność obliczeniową algorytmów. Metody częstotliwościowe są jednak uważane za jedne z najbardziej dokładnych i cechują się dużą wydajnością. W szczególności metody oparte o filtry częstotliwościowe są stosunkowo często przedstawiane jako model ludzkiego postrzegania ruchu w ujęciu biologicznym [18]. 34

35 3.4. Metody korelacyjne Metody korelacyjne są najczęściej stosowane w sytuacji, gdy sekwencja wideo jest zbyt słabej jakości, aby inne metody dały zadowalające rezultaty. Przyczyną takiej sytuacji może być mała liczba klatek na sekundę, aliasing albo występowanie szumów. W takich warunkach zarówno metody gradientowe, jak i częstotliwościowe mogą okazać się nieskuteczne. W przypadku grupy metod korelacyjnych prędkość jest definiowana jako przemieszczenie d = (d, d ) i jest ona wyznaczana dla każdego punktu w obrazie dając wektorowe pole przemieszczenia [14]. Jego zastosowanie do pierwotnej ramki obrazu daje bardzo dobre wyniki dopasowania do następnej ramki. Dopasowanie rozumiane jest jako maksimum pewnej funkcji podobieństwa, którą może być np. współczynnik korelacji, który dla dwóch konkretnych funkcji opisane wzorem [16]: Cd = fx + δ x g(x )dx, (3.4.1) gdzie f i g są funkcjami intensywności kolejnych ramek. Wyznaczenie δ x, które maksymalizuje powyższą wartość pozwala na znalezienie przemieszczania pomiędzy f i g. Dopuszczalne są modyfikacje funkcji korelacji, np. mające na celu uwzględnienie pewnych właściwości funkcji intensywności. W przypadku niektórych zastosowań wykorzystywana jest funkcja wagowa, co ma na celu zróżnicowanie istotności korelacji zależnie od np. odległości punktu od środka obrazu. Metody korelacyjne dzielą się na metody korelacji oparte na korelacji fragmentów obrazu oraz metody oparte o korelację cech Korelacja fragmentów obrazu Proces korelacji fragmentów obrazu bazuje na założeniu, że jeżeli sąsiadujące ze sobą punkty pochodzą z tego samego obiektu, to poruszają się w tym samym kierunku. Wynika z tego oczywiste ograniczenie ciało musi być sztywne, a jedyną dopuszczalną transformacją jest przemieszczenie. W przypadku np. skalowania punkty 35

36 znajdujące się przy przeciwnych brzegach obiektu poruszałyby się w przeciwnych kierunkach. Przyjmuje się, że to założenie możemy zastosować również do innych transformacji jak np. skalowanie czy obrót, ale tylko wtedy gdy obraz przedstawia część obiektu. Korelacja polega na odnalezieniu dla pikseli w ramce pierwotnej odpowiadających im punktów w ramkach kolejnych, co następuje przez przeszukanie obszaru z wykorzystaniem kryterium branego pod uwagę przy porównywaniu sąsiedztwa punktu. Proces przedstawiony jest na rysunku (3.4.1). Na lewym obrazie wyróżniono przeszukiwany obszar, a po prawej efekt korelacji. Znaleziono wektor przemieszczenia odpowiadający maksimum dla wykorzystanego kryterium [14]. Położenie oraz rozmiar obszaru przeszukiwań mają wpływ na wydajność, skuteczność oraz wielkość dziedziny zastosowań metody. Zwiększenie rozmiaru spowoduje zwiększenie zakresu przemieszczeń (możliwe stanie się wykrycie większych przemieszczeń, czyli szybszych ruchów), ale jednocześnie zwiększy się wymagana dla algorytmu moc obliczeniowa. Dobranie odpowiedniego rozmiaru obszaru przeszukiwań jest więc typowym problemem korelacyjnym - stosowanie zbyt dużego albo zbyt małego obszaru może prowadzić do powstawania przekłamań. W przypadku za małego okna, gdy korelowany obszar nie mieści się w oknie poszukiwań, zostanie wybrany zamiast niego inny obraz. W przypadku zbyt dużego obszaru, jeśli region uległ specyficznym zmianom (obrót, skalowanie, przesłonięcie), również może się okazać, że maksimum funkcji korelacji zostanie wyznaczone w niewłaściwym miejscu. Istotna modyfikacja w postaci funkcji wagowej, która uwzględni zmniejszenie dopasowania proporcjonalnie do odległości od środka okna, ma zastosowanie w modelach statystycznych [14]. Korelacja może mieć różne formy: korelacji bezpośredniej wartości odpowiednich funkcji w obszarze okna są przez siebie mnożone, po czym sumowane; korelacji znormalizowanej średniej od wartości punktów odejmowana jest średnia wartość intensywności wyliczona dla określonego okna, po czym są one mnożone i sumowane; sumy kwadratów różnic sumuje się kwadraty różnic intensywności 36

37 odpowiadających sobie pikseli. Do grupy tych metod zaliczamy dopasowanie blokowe bardzo popularne w kompresjach wideo [16]- zostało one bardziej szczegółowo opisane poniżej. Rysunek 3.4.1: Korelacja obszarów Dopasowanie blokowe Metoda bazująca na dopasowaniu bloków [15] polega na lokalizacji i porównaniu odpowiadających sobie bloków na kolejnych klatkach. Rysunek przedstawia schemat działania algorytmu. Poszczególne wersje tej metody różnią się m.in. odmiennym działaniem poszczególnych modułów. Jako dane wejściowe służą kolejne klatki, na których chcemy wykryć ruch. Wynikiem jest klatka z oznaczonymi przemieszczającymi się elementami, za co odpowiedzialny jest moduł maskowanie pierwszego planu. Funkcje pozostałych modułów: Wyznaczanie bloków - ustalenie rozmiaru oraz kształtu bloku oraz określenie pozycji startowej na klatce odniesienia, nowa pozycja będzie poszukiwana w kolejnej badanej klatce. Metoda Szukania - przeszukiwanie badanej klatki, podczas którego porównuje się bloki w klatce odniesienia i aktualnej. Kryterium dopasowania - ustalenie kryterium determinującego stwierdzenie dopasowania. Rysunek 3.4.2: Dopasowanie blokowe 37

38 Pomimo różnic w poszczególnych implementacjach każdy algorytm dopasowania blokowego działa według takiej samej sekwencji kroków [15], różniąc się między sobą zachowaniem na poszczególnych etapach działania algorytmu: podział obrazu na bloki; wybranie bloku-kandydata; porównanie bloku-kandydata do bloku-wzorca; oznaczenie podobieństwa na klatce wyjściowej (w przypadku powodzenia) lub ponowny wybór kandydata. Dzięki temu, że algorytm operuje na całych blokach, a nie pojedynczych pikselach, algorytmy dopasowania blokowego łatwiej jest użyć do zastosowań, gdzie wymagana jest praca w czasie rzeczywistym. Poszczególne metody różnią się pomiędzy sobą głównie poniższymi czynnikami [15]: Podział obrazu na bloki Bloki są najczęściej nienachodzącymi na siebie prostokątami, w szczególności kwadratami, choć istnieją metody, w których wykorzystywane są np. trójkąty. Większy rozmiar bloku oznacza mniejszy wpływ zakłóceń jednocześnie zmniejszając możliwość wykrycia mniej widocznych ruchów. Wielkość bloku jest parametrem, który należy dostosować do konkretnego zastosowania i przewidywanych zakłóceń. Istnieją również metody, w których wykorzystywany jest zmienny rozmiar bloku. Jedno z takich podejść [36] jest oparte na analizowaniu w pierwszej kolejności bloków o dużych rozmiarach. Jeśli dla badanego bloku nie znaleziono odpowiednika spełniającego kryterium dopasowania, jest on w kolejnym etapie dzielony na mniejsze. Iteracja w postaci kolejnych podziałów trwa do momentu znalezienia dopasowania albo osiągnięcia minimalnego rozmiaru dla algorytmu. Metryka dopasowania Ze względu za przedstawione wcześniej problemy, takie jak zmiana oświetlenia czy różnego rodzaju zakłócenia, znalezienie identycznych bloków w dwóch sąsiednich 38

39 klatkach jest bardzo mało prawdopodobne. Ponadto należy wziąć pod uwagę sytuację, kiedy poruszający się obiekt uległ transformacji, np. samochód skręcający na skrzyżowaniu, a pożądane jest, aby taki ruch również został wykryty. Istnieje kilka współczynników, które określają miarę dopasowania [37]: SAD (ang. Sum of Absolute values of the Differences) suma wartości bezwzględnych różnic między pikselami w badanych blokach: I (i, j) I (i + p, j + q), (3.4.2) gdzie I jest klatką aktualnie badaną, a I klatką źródłową, p jest przesunięciem bloku w pionie klatki badanej od bloku z klatki źródłowej, natomiast q stanowi przesunięcie poziome; MAD (ang. Mean of the Absolute values of the Differences) średnia wartości bezwzględnych różnic pomiędzy pikselami w badanych blokach; 1 h v I (i, j) I (i + p, j + q), (3.4.3) MSD (ang. Mean of the Square of the Differences) średnia arytmetyczna z sumy kwadratów różnic między analizowanymi blokami; 1 h v (I (i, j) I (i + p, j + q)), (3.4.4) SSD (ang. Sum of Squared Difference) suma kwadratów różnic pomiędzy pikselami badanych bloków [38]; (I (i, j) I (i + p, j + q)), (3.4.5) NMP (ang. Non-Matching Pixels) - liczba pikseli w blokach, które się różnią. 39

40 To, że piksele się różnią oznacza, że różnica wartości pomiędzy ich intensywnością jest większa niż pewien określony próg: DI (i, j), I (i + p, j + q), (3.4.6) gdzie D przyjmuje wartość: Algorytm przeszukiwania 0 dla a b t D(a, b) = 1 dla a b > t Czynnikiem, który ma największy wpływ na efektywność metody jest algorytm przeszukiwania. Do najpopularniejszych zaliczane są [31]: FS (ang. Full search) przeszukanie wszystkich możliwych bloków algorytm daje najlepsze rezultaty, ale wymaga również najwięcej mocy obliczeniowej. TSS (ang. Three step search) przeszukiwanie w trzech krokach w każdym kroku znajdowane jest optymalne dopasowanie w porównaniu do ośmiu sąsiednich bloków rozmieszczonych wokół bloku centralnego. Po przesunięciu do nowego bloku procedura zostaje powtórzona dla pomniejszonego obszaru [39]. Rysunek 3.4.3: Przeszukiwanie w trzech krokach CS (ang. Cross search) przeszukiwanie krzyżowe przeszukiwane są cztery sąsiednie bloki znajdujące się wzdłuż prostych zawierających przekątne bloku [40]. SS (ang. Spiral Search) przeszukiwanie spiralne sprawdzane są bloki 40

41 ułożone na planie dwóch krzyży obróconych względem siebie o 45 [41]. 4SS (ang. Four step search) przeszukiwanie w czterech krokach, w odróżnieniu od TSS obszar wyjściowy, który jest przeszukiwany ma rozmiar 5x5, a nie 3x3 [42]. DS (ang. Diamond search) przeszukiwanie diamentowe [43] porównywane bloki są ułożone wokół pozycji bloku docelowego w formie obwiedni rombu. TDL (ang. 2D-Logarithmic search) przeszukiwanie logarytmiczne [44] przeszukiwanych jest kolejno sąsiednich osiem bloków, ale rozmiar bloku jest zmniejszany tylko w przypadku osiągnięcia odpowiedniego dopasowania Korelacja cech Ta podgrupa metod polega na korelowaniu ze sobą charakterystycznych cech obrazu. Polegają one na analizowaniu pod kątem cech wyższego poziomu, po czym następuje opisanie cech, które zostały uzyskane na pomocą struktur geometrycznych oraz teksturowania. Przyjmuje się założenie, że struktury te są nietrudne do znalezienia na obrazie referencyjnym również w przypadku ruchu obrotowego i skalowania. Gwarantuje to, że takie struktury mają pewne charakterystyczne cechy będące łatwymi do wydobycia i odróżnienia od innych. Zakłada się również, że nie zmieniają się one podczas ruchu. Stosując właściwy opis oraz miary cech jest możliwe ich znalezienie i dopasowanie [45]. Do istotnych struktur mogą być przynależne proste obiekty, jak np. linie, jak również obiekty złożone - krawędzie, obszary. Czasem wyznaczenie cech skomplikowanych może być bardzo kosztowne obliczeniowo [31]. Metody oparte na korelacji cech są wykorzystywane przez kompresję wideo drugiej generacji, w której zastosowano obserwację biologicznego systemu wizyjnego człowieka [16]: krawędzie i kontury obiektów są istotne dla przestrzeni HSV; informacja o teksturze nie zawsze jest istotna. 41

42 Podejście hierarchiczne W przypadku metod gradientowych jedną z możliwych strategii jest zastosowanie podejścia hierarchicznego. Dla dużych przemieszczeń, czyli ruchów o większej prędkości, wskazane jest zwiększenie obszaru przeszukiwań, co z kolei może pogorszyć wyniki procesu korelowania rozmiar okna jest kluczowy dla całej procedury. Jeśli korelacja ma być niezawodna, w oknie musi występować odpowiednia zmienność sygnału w przestrzeni, aby w przypadku błędnego dopasowania różnica była wyraźnie widoczna. Jednocześnie dla takiego samego okna zmienność sygnału nie powinna być za duża w czasie, aby dopasowanie opierające się o założenie ciągłości ruchomych obiektów było możliwe. Odpowiedni rozmiar okna zależny jest od struktury sygnału i jego zbytnie zwiększenie prowadzi do spadku wydajności metod korelacyjnych. W podejściu hierarchicznym dokonuje się podziału obrazu na kilka mniejszych obrazów o różnych rozmiarach, które są kolejno poddawane przetwarzaniu. Podział jest realizowany poprzez filtrowanie powodujące zmniejszenie rozmiarów bez ryzykowania powstaniem artefaktów wywoływanych przez aliasing, które pojawiłyby się podczas zmniejszania bez użycia filtrów. Fragmenty o mniejszych rozdzielczościach są wykorzystywane do odnajdywania większych przemieszczeń, natomiast uzyskany wynik jest podstawą do kolejnej korelacji (następny obraz pod względem rozdzielczości), następuje zwiększenie precyzji przemieszczenia, a procedura jest powtarzana do momentu ociągnięcia fragmentu o największej rozdzielczości [14]. 42

43 4. Algorytmy wyznaczające przepływ optyczny Poszczególne algorytmy oparte o wyznaczanie przepływu optycznego tworzone były z myślą o różnych zastosowaniach. W zależności od rodzaju informacji poszukiwanej w sekwencji wideo szukano sposobu, aby w optymalny sposób wykorzystać jego własności. Trudnym zadaniem jest znalezienie kompromisu w określeniu przyjętych ograniczeń. Założenia ogólne, które dadzą metodzie większą elastyczność, spowodują duże ryzyko zaistnienia sytuacji, w których algorytm okaże się nieskuteczny. Z kolei silne ograniczenia cechują się dużą skutecznością w przypadku danych, które będą z nimi zgodne, a więc w istotny sposób zmniejsza to zakres zastosowań danej metody [14]. Łatwym sposobem na przyspieszenie działania algorytmu jest zmniejszenie rozdzielczości badanej klatki, co jednak pozbawia obraz szczegółów i może wpłynąć negatywnie na uzyskane wyniki. Podczas doboru porównywanych metod uwzględniono dziedzinę, w której będą one stosowane. Obiekty w testowanych scenach będą spójne i nie będą przezroczyste, a oświetlenie nie będzie się gwałtownie zmieniać. Pojazdy są obiektami sztywnymi i nie podlegają skalowaniu. W związku z tym porównane zostaną dwa podejścia z rodziny metod gradientowych: metoda Lucasa-Kanade (wersja piramidalna) oraz metoda Horna-Schuncka. Ze względu na brak przesłanek w postaci np. przezroczystości obiektów, czy zmian oświetlenia, w porównaniu nie zostaną uwzględnione metody częstotliwościowe Metoda Lucasa-Kanade Algorytm został przedstawiony przez Takeo Kanade i Bruce a Lucasa w 1981 roku [32]. Jest to metoda gradientowa reprezentująca podejście lokalne. Początkowo algorytm generował gęste pole przepływu polegające na obliczeniu wektora przepływu dla wszystkich punktów obrazu. Ponieważ metoda okazała się możliwa do wykorzystania do obliczania wektorów dla pojedynczych punktów, znalazła ona 43

44 zastosowanie do obliczania rzadkiego pola przepływu. Było to możliwe z uwagi na fakt, że jest ona zależna tylko od określonych lokalnych informacji, które pochodzą z pewnego sąsiedztwa wokół badanego punktu. Stosowanie małego lokalnego okna może prowadzić jednak do zgubienia większego ruchu, który w następnych klatkach może znaleźć się poza obszarem przeszukiwania i wtedy ruch pozostanie niezauważony. Rozwiązaniem tego problemu stała się nowa wersja algorytmu bazująca na podejściu hierarchicznym. Polega ona na analizie od najwyższego poziomu obrazu (obraz o zmniejszonej do minimalnej rozdzielczości) i w kolejnych krokach bada niższe poziomy (wyższa rozdzielczość). Tym sposobem można przyspieszyć działanie algorytmu, a jednocześnie wykryć ruchy w większym zakresie [31]. Przyjmijmy, że F(x ) i G(x ) są funkcjami reprezentującymi wartość intensywności pikseli w kolejnych ramkach, gdzie x jest wektorem położenia punktu. Należy znaleźć wektor przepływu optycznego h minimalizujący różnice pomiędzy F(x + h ) i G(x ) w określonym obszarze zainteresowania R. W przypadku jednego wymiaru wartością szukaną jest po prostu wartość różnicy h pomiędzy krzywymi funkcji F(x ) oraz G(x ) = F(x + h ) Rysunek 4.1: Wektor przepływu optycznego dla dwóch funkcji intensywności Należy zachować liniową aproksymację F(x ) w sąsiedztwie x, wobec czego dla małych wartości h otrzymujemy: F ()() ()() (4.1.1) 44

45 h G(x) F(x) F (x) (4.1.2) Właściwe działanie zależy od tego, czy h jest wystarczająco małe, aby uzyskano dostateczne przybliżenie. Można zwiększyć zakres skuteczności metody poprzez uprzednie filtrowanie, które usunie wyższe częstotliwości, co z kolei poprawi aproksymację wygładzając przebiegi funkcji intensywności. Ponieważ h zależy od x, aby otrzymać średnią wartość przybliżenia h z różnych x należy wykorzystać sumę: h G(x) F(x) F (x) 1 (4.1.3) Możliwe jest dodatkowe poprawienie przybliżenia. Warto zauważyć, że aproksymacja jest lepsza w miejscach, w których przebieg F(x) jest zbliżony do liniowego i gorsza w przedziałach, gdzie F (x) osiąga wysokie wartości. Należy zastosować wagowy współczynnik odwrotny do estymaty F (x): F (x) G (x) F (x) h (4.1.4) Ta estymata będzie współczynnikiem wagowym w średniej (4.1.3), więc można pominąć czynnik 1/h, dzięki czemu otrzymujemy funkcję wagową: w(x) 1 G (x) F (x) (4.1.5) równa: Tym sposobem końcowa estymata przemieszczenia jednowymiarowego h jest h w(x)(g(x) F(x)) F(x) w(x) (4.1.6) 45

46 W przypadku dwuwymiarowym aproksymacja liniowa zachodzi w innej formie, w związku z czym powyższe wzory nie mają zastosowania. Dodatkowo wyrażenie dla F () = 0 jest nieokreślone. Wtedy należy zastosować liniową aproksymację równania w formie: F(x + h) F(x) + hf (x), (4.1.7) by możliwe było znalezienie takiego h, aby zminimalizować różnicę pomiędzy krzywymi F(x) i G(x): E = [F(x + h) G(x)] (4.1.8) Do minimalizacji błędu funkcjonału ze względu na h przyjmowane jest założenie: 0 = E h h [F(x) + hf (x) G(x)] (4.1.9) W wyniku różniczkowania otrzymujemy rezultat: 2F [F(x) + hf (x) G(x)] 0 (4.1.10) Przybliżona wartość przemieszczenia h wynosi: h = F [G(x) F(x)] F (x) (4.1.11) Należy zwrócić uwagę, że takie rozwiązanie jest równoznaczne intuicyjnemu rozwiązaniu o postaci równania (4.1.6), jeżeli jako funkcję wagową zostanie przyjęta w(x) = F (x). Obliczona tą drogą aproksymacja jest możliwa do wykorzystania przy uogólnieniu do przypadku dwu- i więcej-wymiarowego. Dzięki temu znika również problem dzielenia przez 0. Dla pełnej generalizacji do n-wymiarowej postaci zapisujemy: 46

47 E = 2F [F(x) + hf (x) G(x)] 0, (4.1.12) gdzie x i h określają wektory n-wymiarowe. Aproksymacja liniowa Fx + h ma postać: Fx + h F(x ) + h F(x ), (4.1.13) x gdzie kolumnowego: stanowi operator gradientowy względem x w postaci wektora x =, x x x (4.1.14) Jeżeli wykorzystana zostanie aproksymacja oraz warunek minimum, E h = 0 (4.1.15) to otrzymujemy aproksymację: h F(x ) [F(x ) + h G(x )] h 0 (4.1.16) różniczkując: 2 F(x ) h [F(x ) + h F(x ) h G(x )] 0 (4.1.17) Pozwala to otrzymać aproksymację, która jest przybliżeniem h dla przypadku n-wymiarowego: h = F(x ) h [G(x ) F(x )][ F(x ) h F(x ) h ] (4.1.20) 47

48 Implementacja Aby wyznaczyć pole przepływu optycznego metodą Lucasa-Kanade należy wcześniej wskazać zbiór punktów, które będą śledzone. Służy do tego funkcja goodfeaturestotrack. Kolejnym etapem jest wywołanie funkcji, która na podstawie dwóch zadanych klatek wyznacza pole przepływu: cvcalcopticalflowpyrlk. Poniższy rysunek przestawia pole optyczne dla przykładowej sekwencji. Rysunek 4.1.1: Przepływ optyczny dla przykładowej sekwencji filmowej Jak nietrudno zauważyć, algorytm znajduje prawidłowe przemieszczenie nie dla wszystkich punktów. W większości przypadków znaleziony wektor optyczny jest właściwym odwzorowaniem ruchu. Warto zauważyć, że dla konkretnego samochodu znaleziono kilka wektorów przepływu optycznego, a fakt ten można wykorzystać do wskazania i określenia ruchu. Powstały zbiór wektorów należy poddać filtrowaniu. Za wektory odpowiadające rzeczywistemu ruchowi zostaną uznane te, które znajdują się w obszarze potencjalnego ruchu. Obszary takie zostaną wyznaczone za pomocą metody różnicowej, co opisuje podpunkt poniżej Wyznaczenie maski filtrowania Wyznaczenie maski filtru ma charakter wieloetapowy. Jej celem jest wskazanie obszaru, na którym obie klatki różnią się pomiędzy sobą. W pierwszej kolejności należy 48

49 odjąć od siebie wartości pikseli na odpowiadających sobie klatkach. Tak uzyskany obraz nie jest jednak wolny od szumów, których liczba zostaje zredukowana za pomocą operacji progowania. Taki obraz poddany operacji domknięcia pozwala na uzyskanie spójnych obszarów, na których należy podejrzewać wystąpienie przemieszczenia obiektu. Ostatnim etapem jest wyznaczenie pojedynczych obszarów odpowiadających przypuszczalnemu ruchowi samochodu. Ponieważ maska filtrowania jest również wykorzystywana dla implementacji autorskiego algorytmu, szczegółowy opis procesu jej uzyskania znajduje się w rozdziale 5.1. Rysunek 4.1.2: Proces wyznaczania maski filtrowania Wyznaczenie obiektów Mając do dyspozycji zbiór wektorów oraz maskę w postaci filtru wystarczy sprawdzić, czy na danym obszarze występuje odpowiednia liczba równoległych wektorów o równych długościach (z dokładnością do małej liczby zależnej od przewidywanej wielkości obiektów). Poniższy rysunek przedstawia wyniki dla przykładowej sekwencji. 49

50 Rysunek 4.1.3: Wyznaczanie poruszających się obiektów z wykorzystaniem metody Lucasa-Kanade 4.2. Metoda Horna-Schuncka Metoda została zaprezentowana w 1981 roku przez Bertholda K. P. Horna i Briana G. Schuncka [11], którzy wyszli z założenia, że aby obliczyć przepływ optyczny punktu niezależnie od jego sąsiedztwa, niezbędne są dodatkowe ograniczenia. Zaproponowali połączenie dwóch ograniczeń w funkcjonał, który jest minimalizowany we wszystkich punktach obrazu [14]. Pierwsze z ograniczeń bazuje na założeniu, że jasność punktu należącego do poruszającego się regionu nie zmienia się: I(x, y, t) = I(x + δx, y + δy, t + δt), (4.2.1) gdzie I(x, y, t) to funkcja intensywności punktu (x, y) w czasie t, δx i δy to przemieszczenie punktu w odpowiadających składowych, natomiast δt stanowi odstęp czasu. 50

51 Rozwinięcie prawej strony powyższego równania wokół I(x, y, t) prowadzi do wyrażenia: I(x, y, t) = I(x, y, t) + δx I I I + δy + δt + ε, (4.2.2) x y t przy czym ε oznacza wyrazy wyższych rzędów dla δx, δy i δt. Przekształcenia w postaci obustronnego odjęcia I(x, y, t) oraz podzielenia przez δt dają równanie: δx I δt x + δy δt I y + I + O(δt) = 0, (4.2.3) t a przyjęcie, że δx oraz δy są zależne od δt, oraz założenie, że δt 0, prowadzi do otrzymania: δx I δt x + δy δt I y + I += 0, (4.2.4) t co oznacza, że pierwsze ograniczenie ma następującą postać: I u + I u + I = 0, (4.2.5) dla przyjętych oznaczeń: I =, I =, I =, u = i v =. Dzięki temu ograniczeniu możliwe jest wyznaczenie prędkości normalnej, która będzie zgodna z kierunkiem intensywności gradientu. Ograniczenie drugie bazuje na założeniu, że sąsiednie punkty, które należą do poruszającego się obiektu, mają podobne prędkości, natomiast pole ruchu płynnie zmienia się dla przestrzeni całego obrazu. Nieciągłości pola występują tylko w obszarach, w których obiekty na siebie nachodzą, wobec czego algorytm może mieć trudności z poprawną detekcją ruchu w miejscach, gdzie krawędź obiektu znajduje się na tle innego ruchomego obszaru. Potencjalną miarą płynności dla pola przepływu jest suma kwadratów laplasjanów składowych przepływu: 51

52 u + v = u x + u y + v x + v (4.2.6) y To ograniczenie określane jest najczęściej jako minimalizacja danej miary gładkości pola przepływu. Autorzy algorytmu proponują również zastosowanie aproksymacji wartości laplasjanów w postaci: u = u u, (4.2.7) v = v v, (4.2.8) gdzie wartości u oraz v są uśrednionymi dla odpowiednich składowych przepływu w sąsiedztwie danego punktu, uwzględniając stosowną funkcję wagową, co daje: I + α I I I I I + α u v = α u I I α v I I (4.2.9) Po rozwiązaniu tego równania ze względu na v i u otrzymujemy: (a + I + I )( u u) = -I (I u + I v + I ), (4.2.10) (a + I + I )( v v )= -I (I u + I v + I ), (4.2.11) co ostatecznie pozwala na wyznaczenie obydwu składowych prędkości optycznej dla wszystkich punktów obrazu. Ze względu na elementy równania, które zależą od sąsiednich punktów, rozwiązanie układu jest bardzo pracochłonne. Najczęściej do wyliczenia estymat prędkości optycznych korzysta się z iteracyjnej metody Gaussa- Seidla. W wersji iteracyjnej składowe prędkości możliwe są do obliczenia ze wzorów: u = u I u + I v + I I + I + α, (4.2.12) v = v I u + I v + I I + I + α, (4.2.13) Ponieważ metoda Horna-Schuncka oblicza gęste pole przepływu optycznego, to należy się spodziewać znacznie niższej wydajności niż w przypadku opisanej 52

53 w poprzednim rozdziale metody Lucasa-Kanade Implementacja W aplikacji użyto funkcji dostępnej w bibliotece opencv: cvcalcopticalflowhs. Metoda generuje gęste pole przepływu optycznego, co pozwala na uzyskanie dużo większej liczby informacji niż w przypadku metody Lucasa- Kanade. Poniższy rysunek przedstawia składowe x i y wygenerowanego przepływu. Intensywność punktu jest wprost proporcjonalna do wartości składowej wektora w danym punkcie. Rysunek 4.2.1: Badana sekwencja Rysunek 4.2.2: Przepływ optyczny dla składowych poziomych 53

54 Rysunek 4.2.3: Przepływ optyczny dla składowych pionowych Poniższy rysunek przedstawia wypadkowe pole przepływu. Aby zbytnio nie zaciemniać rysunku uwzględniono na nim jedynie wektory, których punkty początkowe leżą w punktach o współrzędnych podzielnych przez cztery oraz które są dłuższe niż wartość ustalonej wartości progowej, która definiuje szum. Rysunek 4.2.4: Przepływ optyczny wyznaczony metodą Horn-Schuncka Już na tym etapie można mieć pewne przemyślenia co do skuteczności algorytmu w porównaniu do metody Lucasa-Kanade. Pomimo, że algorytm działa o wiele dłużej, to wiele wektorów nie wskazuje prawidłowego kierunku ruchu. 54

55 5. Algorytm autorski wyznaczanie obszaro w ruchu Algorytm autorski nie jest bezpośrednią implementacją żadnej ze znanych koncepcji. Jego charakter wynika z zastosowania, dla którego ma zostać użyty. W przypadku próby jego przyporządkowania do scharakteryzowanych w rozdziale 3. grup metod, to wskazać należy, że algorytm ten jest najbliższy metodom korelacyjnym jak zostanie to opisane poniżej w jednym z jego kroków dochodzi do korelacji fragmentów obrazu. Z uwagi na fakt, że moja praca zakłada porównanie skuteczności w systemach wizyjnych, algorytm jest nastawiony na wykrycie i określeniu kierunku oraz prędkości ruchomych obiektów. Ma więc za zadanie odseparować z badanej sekwencji istotne dane i poddać je analizie. Działnie algorytmu jest dwuetapowe: Wykrycie obszarów potencjalnego ruchu odjęcie od siebie dwóch porównywanych klatek i wyznaczenie spójnych obszarów, dla których istnieje duże prawdopodobieństwo, że znajdują się w nich poruszające obiekty. Klatka różnicowa musi zostać poddana morfologicznym operacjom: zamknięcia (erozja i dylacja) oraz progowania, po czym piksele grupowane są za pomocą algorytmu przeszukiwania grafu w głąb. W ten sposób zbudowana zostaje maska filtru wykorzystywana również przy badaniu skuteczności metod zaimplementowanych w bibliotece OpenCV. Porównanie wartości pikseli w wyznaczonym obszarze na porównywanych klatkach i znalezienie odpowiadających sobie obszarów. Mając do dyspozycji obszar, na którym wystąpił ruch, należy wskazać najbardziej prawdopodobne położenie obiektu na pierwszej i drugiej klatce. Aby tego dokonać należy wyznaczyć odpowiednie bloki, co zostało szczegółowo opisane w jednym z poniższych podrozdziałów Lokalizacja obszarów ruchu Aby dokonać lokalizacji potencjalnych obszarów ruchu, należy posłużyć się metodą różnicową. Odjęcie od siebie dwóch analizowanych klatek w sekwencji jest jednak dopiero początkiem procesu mającego na celu uzyskanie obszarów, w których 55

56 potencjalnie znajdują się poruszające obiekty, a w przypadku tego eksperymentu samochody w ruchu ulicznym. Rysunek 5.1.1: Obliczenie obrazu różnicowego Przedstawiony na rysunku proces pozwala zaobserwować miejsca, w których pojawił się ruch. Należy jednak zwrócić uwagę na kilka czynników, które mogą przynić się do zakłamania obrazu: spójność obiektów w szczególności dla pojazdów poruszających się wzdłuż krawędzi klatki może dojść do błędnego rozpoznania jednego auta jako dwóch osobnych obiektów. Ryzyko zaistnienia takiej sytuacji przedstawiono na rysunku Najwięcej jasnych pikseli oznaczających różnicę w obrazie znajduje się w obszarach, gdzie na klatkach źródłowych znajdował się przód oraz tył pojazdu. Przyczyną takiej sytuacji jest jednolita barwa pewnych fragmentów pojazdu. Niektóre obszary obrazu reprezentujące karoserię środkowej części samochodu nie ulegną zmianie na sąsiednich klatkach pomimo wystąpienia ruchu, ponieważ w ich miejsce pojawiają się inne o podobnej barwie. Rozwiązaniem problemu jest dobór odpowiedniej wielkości maski na etapie domknięcia obrazu. 56

57 Rysunek 5.1.2: Problem spójności w obrazie różnicowym wystąpienie innych ruchomych obiektów należy wziąć pod uwagę, że w obserwowanej scenie mogą pojawić się inne ruchome obiekty niż samochody. W przypadku obserwowania skrzyżowania ulicznego istnieje duże prawdopodobieństwo pojawienia się np. pieszych, rowerzystów albo przelatujących ptaków, co przedstawia rysunek Rozwiązaniem tego problemu jest odpowiednia parametryzacja algorytmu. Spośród wyselekcjonowanych obiektów należy odrzucić te, których wymiary są mniejsze od ustalonego progu. Rysunek 5.1.3: Nieporządane obiekty w scenie 57

58 Progowanie Kolejnym etapem mającym na celu uzyskanie przypuszczalnych obszarów ruchu obiektów jest progowanie. Kluczowym zadaniem jest dobranie odpowiedniej dla badanych sekwencji wartości progu. Tylko piksele, które są na tyle jasne, że ich wartość przekracza ustalony próg, powinny zostać zaklasyfikowane do obszarów na których wystąpił ruch. Rysunek przedstawia obraz z badanej sekwencji przekształcony w zależności od wartości progowych. Zbyt mała wartość spowoduje, że z obrazu nie zostaną wyeliminowane szumy spowodowane np. poruszającą się na wietrze roślinnością oraz przekłamania wynikające z niedoskonalości urządzenia pomiarowego w postaci kamery. Z kolei zbyt duża wartość może przyczynić się do podzielenia auta i w konsekwencji błędnego zinterpretowania go jako więcej niż jeden obiekt. Nie istnieje metoda pozwalająca na jednoznaczne wskazanie odpowiedniej wartości progowej. Rysunek 5.1.4: Przekształcenia dla różnych wartości progowania Domknięcie Aby uzyskać obiekty odpowiadające położeniu obiektów należy uspójnić zbiory pikseli uzyskane w poprzednim etapie. Służy temu operacja domknięcia, która jest 58

59 sekwencją dwóch innych przekształceń morfologicznych: dylacji i erozji. Dylacja polega na zwiększeniu liczby pikseli przekształcanego obiektu. Polega na wykorzystaniu maski zadanych rozmiarów, która zostaje kolejno przyłożona w każdym fragmencie obrazu. Jeśli w masce znajdzie się przynajmniej jeden punkt należący do obiektu, wszystkie punkty wewnątrz maski zostają przyłączone do obiektu poprzez zmianę wartości piksela na odpowiadającą obiektowi. Operacja erozji również wykorzystuje maskę zadanych rozmiarów, ale w tym przypadku badana jest przynależność do tła. Jeśli co najmniej jeden piksel należy do tła, wtedy wszystkie piksele wewnątrz maski zostają do niego przyłączone. Rysunek przedstawia operację domknięcia przy wykorzystaniu maski 2x2. Rysunek 5.1.5: Proces domknięcia Wyznaczenie obszarów Po uzyskaniu spójnych obszarów należy na podstawie uzyskanego obrazu zbudować kolekcję odseparowanych obiektów. Operacja polega na iteracyjnym przejściu przez całą badaną klatkę, podczas której po odnalezieniu piksela sklasyfikowanego jako obiekt następuje przejście do jego sąsiadów algorytmem przeszukiwania w głąb. Innymi słowy zbiór sąsiadujących ze sobą punktów zostaje sklasyfikowany jako pojedynczy obiekt. Na tym etapie następuje również odrzucenie obiektów, które nie spełniają kryterium rozmiaru. Rysunek 5.1.6: Wyznaczenie obszarów 59

60 Klasyfikacja obszarów jako spójne obiekty za pomocą przeszukiwania w głąb została przedstawiona na rysunku W momencie gdy na obrazie odnaleziony zostaje piksel należący do obiektu, następuje przeszukanie wśród jego sąsiadów innych pikseli należących do obiektu. Następnie operacja jest kontynuowana rekurencyjnie dla jego sąsiadów. Wyczerpanie sąsiednich pól do odwiedzenia jest tożsame z wyznaczniem obszaru (punkty oznaczone jednym kolerem na rysunku 5.1.6). Rysunek 5.1.7: Algorytm przeszukiwania grafu w głąb 5.2. Szukanie bloku w obszarze Kolejnym etapem jest znalezienie bloku i jego przemieszczenia. Na rysunku przedstawiono fragment dwóch sąsiednich klatek nałożonych na siebie. Na znalezionym obszarze oznaczono odpowiadające sobie bloki na kolejnych klatkach. Bloki znajdują się w regionie będącym obszarem, który powstał poprzez opisanie prostokątem wyznaczonego wcześniej obszaru wystąpienia ruchu. Ponieważ obszar został wyznaczony na podstawie różnic w obu klatkach, wnioskować należy, że bloki w których znajduje się pojazd położone są wzdłuż tej samej przekątnej. 60

61 Rysunek 5.2.1: Wyszukiwanie bloku w obszarze Schemat działania algorytmu przedstawia rysunek Ponieważ obszar różnicowy wyznaczony w poprzednim etapie jest spójny, implikuje to wzajemne położenie bloków - muszą na siebie nachodzić. Znając rozmiar regionu oraz bloku i wiedząc, że przeciwległe wierzchołki regionu należą do bloków, można określić przesunięcie. Znalezienie rozmiarów bloku pozwoli więc na obliczenie przesunięcia: dy = Y a (5.2.1) dx = X b (5.2.2) Rysunek 5.2.2: Wyszukiwanie optymalnego rozmiaru bloku 61

62 Zadaniem algorytmu jest znalezienie takich liczb: dx 1; X/2 oraz dy 1, Y/2, dla których średnia różnica odpowiadających sobie pikseli będzie najmniejsza. Należy wziąć pod uwagę dwa przypadki położenia odpowiadających sobie bloków w lewym dolnym i prawym górnym oraz lewym górnym i prawym dolnym rogu. Jest to najbardziej kosztowny obliczeniowo etap algorytmu. Dla każdej pary liczb (dx, dy) należy przejść przez wszystkie punkty w bloku. Oznacza, to że algorytm cechuje się tym mniejszą wydajnością, im więcej samochodów znajduje się w scenie. Negatywnie na szybkość działania metody ma również rozmiar obiektów scenie. Jako przemieszczenie wybrany zostaje wektor, który odpowiadał blokom o najmniejszej średniej różnicy pomiędzy odpowiadającymi sobie pikselami Podatność na błędy W przypadku oprogramowania operującego na obrazach i sekwencjach filmowych bardzo trudno osiągnąć stuprocentową skuteczność. Związane jest to z charakterem danych obarczonych zazwyczaj pewnym szumem oraz możliwością wystąpienia nietypowych sytuacji, których nie sposób przewidziać na etapie analizy i projektowania oprogramowania. Aby zminimalizować liczbę przkłamań, na etapie dewelopmentu uwzględniono ryzyko wystąpienia sytuacji, które mogą doprowadzić do zaklasyfikowania jako samochodu innego obiektu lub rozpoznania jednego samochodu wielokrotnie Inne obiekty w scenie Najłatwiejszą sekwencją dla programu wykrywającego ruch jest scena, w której poruszają się wyłącznie poszukiwane obiekty, w tym przypadku samochody. Ponieważ algorytm jest projektowany pod kątem pracy nie w warunkach laboratoryjnych, lecz w otwartej przestrzeni, należy wziąć pod uwagę możliwość pojawienia się zwierząt, pieszych, rowerzystów oraz innych obiektów, które powinny zostać przez algorytm odrzucone. Kluczowym zadaniem jest określenie kryterium, na podstawie którego wykryty obiekt będzie klasyfikowany jako pojazd. Rozwiązaniem, które początkowo brałem pod 62

63 uwagę była próba zlokalizowania w obrazie tablicy rejestracyjnej, która w sposób jednoznaczny definiowałaby wystąpienie pojazdu mechanicznego. Takie podejście okazało się jednak niemożliwe do zrealizowania. Nawet w dobrej jakości nagraniach tablice były zbyt rozmyte, aby klasyfikować je na podstawie takich cech jak barwa, stosunek wysokości do szerokości czy występowanie określonych znaków. Ponieważ czas potrzebny na wykonanie obliczeń wzrasta liniowo wraz z liczbą pikseli w klatce, a wyszukiwanie wzorca również wymaga niemałych zasobów, algorytm nie byłby w stanie odpowiedzieć w czasie rzeczywistym, a czas analizy sekwencji filmowej byłby wielokrotnie dłuższy niż czas trwania samej sekwencji. Wobec powyższego, uznałem, że kryterium może opierać się jedynie na kształcie oraz rozmiarach obiektu. Algorytm odrzuca obiekty, dla których szerokość lub wysokość opisanego na obiekcie prostokąta jest mniejsza niż zadany parametr. Ilustruje to rysunek 5.3.1, na którym w prostokątach o zielonych krawędziach znajdują się obiekty sklasyfikowane jako pojazdy, natomiast kolor czerwony oznacza obiekty zbyt małe, aby spełniły to kryterium. Wartość parametru jest ustalana na podstawie maksymalnego stosunku większego z wymiarów auta do wysokości klatki, który jest podawany przez użytkownika podczas uruchomienia programu. Rysunek 5.3.1: Odrzucanie obiektów na podstawie kryterium wielkości Podział obiektów Bardziej złożonym problemem jest niezamierzona interpretacja jednego samochodu jako dwóch różnych obiektów. Wynika on bezpośrednio ze specyfiki zastosowania metody 63

64 różnicowej, a największe ryzyko jego pojawienia się niosą ze sobą następujące czynniki: samochód porusza się wzdłuż krawędzi klatki; obiekt znajduje się w słabo oświetlonym miejscu w scenie; auto jest przesłonięte przez obiekty znajdujące się na pierwszym planie (np.: latarnia, znak drogowy). Rysunek przestawia klatkę, która uwzględnia dwa pierwsze przypadki, gdzie po progowaniu obydwa samochody zostały rozcięte na osobne obiekty. Decydujący wpływ na taką sytuację mają dwa parametry wartość dla progowania oraz rozmiar maski przy operacji domknięcia. Zbytnie obniżenie wartości progowej skutkowałoby większą czułością algorytmu, który w dalszych krokach musiałby potencjalnie analizować większą liczbę obiektów. Mówiąc innymi słowy, poprawiając w ten sposób skuteczność algorytmu dla pewnych przypadków, obniżono by ją dla innych, co sumarycznie nie musiałoby przyczynić do uzyskania lepszych rezultatów dla całej badanej sekwencji. Z tego powodu zdecydowałem się na zmianę rozmiaru maski używanej dla operacji domknięcia. Przyjmuje ona większy rozmiar dla dylacji niż erozji, co zapobiega większości przypadków rozdzielenia obiektów, jednocześnie nie przyczyniając się znacznie do łączenia się ze sobą sąsiednich obiektów. Również w tym przypadku osiągnięto poprawę zachowania algorytmu dla pewnych sytuacji kosztem innych, ale bilans takiej operacji jest dla skuteczności algorytmu korzystny. Proces doboru stosunku rozmiaru maski erozji do rozmiaru maski dylacji został opisany w rozdziale Rysunek 5.3.2: Podział obiektów 64

65 Dobrą ilustrację skuteczności niwelowania problemu podziału przez zwiększenie maski dylacji przedstawia rysunek W górnym rzędzie przedstawiono kolejne przekształcenia z progowaniem włącznie, natomiast dolny rząd pokazuje efekt domknięcia dla standardowej (po lewej stronie) oraz powiększonej maski dylacji. Zabieg ten zmieniejsza ryzyko przecięcia obiektów, przy czym nie zwiększają się one na tyle, aby istotnie wzrosło ryzyko połączenia się ze sobą sąsiednich obszarów. Rysunek Skutek zwiększania maski dylacji 5.4. Dobranie wartości parametrów Aby zmaksymalizować skuteczność działania algorytmu należy dobrać odpowiednie wartości dla parametrów. Odpowiedni stosunek rozmiaru maski dylacji do maski erozji pozwoli zniwelować efekt podziału obiektów przy jednoczesnym uniknięciu łączenia się sąsiednich obiektów, natomiast właściwa wartość dla procesu progowania pozwoli uniknąć błędnego wskazania innych obiektów jako pojazdów. W tym celu sprawdzono skuteczność algorytmu dla różnych wartości tych parametrów. Jako miarę skuteczności przyjęto dokładność opisaną w rozdziale Sekwencje, których użyto do testów pochodzą z portalu: youtube.com Stosunek rozmiaru maski erozji i dylacji Dla dobrania odpowiedniego stosunku rozmiarów masek wybrano sekwencję, w której pojazdy narażone są na podział. Pomiędzy przejeżdząjącymi samochodami 65

66 a kamerą obserwującą scenę znajduje się szereg latarni, które mogą spowodować, że znajdujący się w danej chwili za nimi samochód zostanie zinterpretowany jako dwa osobne obiekty. Rysunek 5.4.1: Sekwencja, na której może dojść do podziału pojazdów Algorytm został uruchomiony dla różnych wartości parametru. Wyniki eksperymentu przedstawia tabela Tabela Wartość parametru Skuteczność 0,25 65,27% 0,5 67,12% 0,75 74,16% 1,0 82,13% 1,25 86,08% 1,5 88,38% 1,75 90,71% 2 91,45% 2,25 90,46% 2,5 91,37% Wykres 5.4.1: Skuteczność dla różnych wartości stosunku rozmiaru maski erozji do maski dylacji 66

67 Największą poprawę skuteczności osiągnięto dla dwukrotnego zwiększenia rozmiaru maski domknięcia względem rozmiaru maski erozji. Ponieważ próbie została poddana tylko jedna sekwencja, eksperyment nie daje gwarancji, że dla każdej sekwencji będzie to odpowiednia wartość. Pozwala jednak z dużym prawdopodobieństwem stwierdzić, że zwiększenie maski przyniesie poprawę skuteczności algorytmu. W przypadku implementacji systemu wizyjnego wykorzystującego niniejszy algorytm należałoby dobrać jego wartość na podstawie testów wykonanych dla kilku sekwencji obejmujących fragment drogi, na którym później mają być zliczane pojazdy. Ustalenie uniwersalnej wartości, która byłaby optymalna dla wszystkich sekwencji filmowych nie jest możliwe obiekt taki jak latarnia może znajdować się w różnych odległościach od samochodu, więc stosunek jego rzutów na płaszczyznę obrazu w stosunku do rzutu samochodów również nie jest stały Wartość progowania Przy testowaniu wartości progowania wybrano sekwencję nie wyróżniającą się pod względem jakości nagrania od innych. Rysunek 5.4.2: Sekwencja, na której testowano wpływu wartości progowania na skuteczność algorytmu Dokonano kilkudziesięciu iteracji algorytmu dla różnych wartości progowania. Najlepsze rezultaty osiągnięto dla wartości 19, ale różnica pomiędzy pozostałymi wartościami oscylującymi wokół 20 nie jest duża. 67

68 Tabela Wartość parametru Skuteczność 1 13,32% 2 19,05% 3 29,88% 4 42,76% 5 58,00% 6 69,40% 7 77,26% 8 80,29% 9 83,09% 10 84,28% 11 85,47% 12 87,47% 13 88,72% 14 88,69% 15 88,58% 16 89,28% 17 89,28% 18 89,77% 19 89,77% 20 88,65% 21 88,09% 22 87,81% 23 87,39% 24 86,69% 25 87,04% 26 86,83% 27 86,83% 28 85,99% 29 84,04% 30 84,24% 31 83,96% 32 84,10% 33 83,47% 34 83,54% 35 83,05% Wykres 5.4.2: Skuteczność dla różnych wartości progowania 68

69 Wyniki potwierdzają skuteczność procesu progowania w niwelowaniu wpływu szumu na działanie algorytmu. Dla niskich wartości progowania algorytm staje się praktycznie bezużyteczny. Podobnie jak w przypadku wartości parametru stosunku maski erozji do maski dylacji, powyższy test nie wskazuje jednoznacznie wartości, która byłaby odpowiednia dla wszystkich sekwencji. Parametr ten powinien być ustalany indywidualnie dla obserwowanej sceny i może być w miarę potrzeb korygowany ręcznie lub automatycznie. Jego wartość jest zależna m.in. od takich czynników jak wiatr (silne podmuchy mogą wywołać nieporządane drgania kamery) oraz zmiany oświetlenia (w pochmurny dzień kontrast pomiędzy szarymi samochodami a jezdnią będzie mniejszy). Korygowanie jego wartości w zależności od zmian oświetlenia i podobnych czynników jest opcjonalny w zależności od tego jaka jest pożądana skuteczność. Wartość z szerokiego przedziału pozwala na osiągnięcie relatywnie dobrych rezultatów, co pozwala z dużym prawdopodobieństwem stwierdzić, że jednokrotna parametryzacja na podstawie różnych sekwencji filmowych obejmujących scenę, dla której algorytm miałby liczyć pojazdy, byłaby wystarczająca. 69

70 6. Testowanie Ponieważ celem niniejszej pracy jest porównanie skuteczności trzech algorytmów, kluczowym zadaniem jest ustalenie kryteriów według których zostanie dokonana ocena metod. Wszystkie z opisanych wyżej algorytmów przyjmują jako argument wejściowy co najmniej jeden parametr. Ponieważ wartości parametrów są powiązane z rozmiarami obiektów, będą ustalane na podstawie jednej zadanej przez użytkownika wartości. Tą wartością będzie liczba z przedziału <1;100> oznaczająca szacowany stosunek dłuższego z wymiarów pojazdu w scenie do wysokości okna wyrażony w procentach. W przypadku algorytmu autorskiego opcjonalne jest podanie parametru stosunku rozmiaru maski erozji i dylacji oraz wartości progowania, które posiadają domyśle wartości (odpowiednio: 2 oraz 20). Działanie każdej z metod zostanie sprawdzone na podstawie testów wykonanych na trzech sekwencjach filmowych o określonych właściwościach Kryteria Aby w krytyczny sposób porównać analizowane algorytmy, należy ustalić miarodajne kryteria, na podstawie których będzie możliwe wskazanie algorytmu najlepszego dla określonych wymagań. Podczas testów wykorzystane zostały wyłącznie sekwencje filmowe zarejestrowane przez kamery uliczne. Oznacza to trudniejsze do określenia kryteria oceny niż miałoby to miejsce w przypadku sztucznie wygenerowanych sekwencji, gdzie znane byłyby dokładne przemieszczenia i prędkości poszczególnych obiektów. Ponieważ moja praca miała za zadanie nie porównanie algorytmów, a sprawdzenie ich skuteczności w określonych warunkach, wyniki testów na sztucznie wygenerowanych sekwencjach nie miałyby dużej wartości Wydajność Podczas testowania zostały zbadane dwa aspekty związane z wydajnością. Pierwszym z nich jest zdolność do działania systemu wizyjnego opartego o daną metodę w czasie rzeczywistym. Ponieważ system wizyjny może być wykorzystywany 70

71 np. do zarządzania sygnalizacją świetlną na podstawie natężenia ruchu, pożądane jest aby był w stanie reagować w czasie rzeczywistym. Drugi aspekt to szybkość działania algorytmu, a więc zbadanie, który z nich jest w stanie przetworzyć największa liczbę sekwencji filmowych w danym czasie Dokładność Dokładność jest w tym przypadku rozumiana jako zgodność wyników działania algorytmu ze stanem faktycznym. Ponieważ dane testowe będą stanowić nagrania ruchu ulicznego, stan faktyczny będzie ocenianiany na podstawie ręcznego liczenia pojazdów. Metrykę dokładności pomiarów będzie stanowić iloraz: a = min (W, R) max (W, R), (6.1.1) gdzie W stanowi liczbę rozpoznanych samochodów, które przemieściły się w porównywanych klatkach, natomiast R jest liczbą samochodów, które rzeczywiście znajdowały się w ruchu. Z uwagi na fakt, że współczynnik ten zmienia się czasie, wartość dokładności algorytmu dla danej sekwencji jest definiowana jako średnia ważona dokładności, dla której wagą jest stosunek czasu, przez który występowała do długości trwania sekwencji: d = a(t), (6.1.2) T gdzie T jest liczbą sekund w sekwencji Aplikacja Aplikacja została napisana w języku C++ i korzysta z biblioteki Open CV w wersji Działa w trybie konsolowym udostępniając użytkownikowi menu, służące m.in. do wyboru metody, która ma zostać poddana testom oraz sekwencji filmowej. 71

72 Rysunek 6.2.1: Wybór algorytmu Ponieważ aplikacja ma na celu porównanie skuteczności algorytmów, a możliwe jest to tylko w przypadku skonfrontowania wyników działania dla poszczególnych algorytmów ze stanem faktycznym, zostały do niej dołączone przykładowe sekwencje, dla których znana jest liczba samochodów w poszczególnych klatkach. Możliwy jest wybór innego pliku wideo, jednak wiąże się z koniecznością dostarczenia pliku tekstowego, który będzie określał liczbę samochodów w kolejnych klatkach. Plik tekstowy powinien mieć następującą postać: n 1 k(1) 2 k(1)... n k(n) W pierwszej kolumnie występuje numer klatki, natomiast w drugiej liczba ruchomych pojazdów, które w niej występują Testowe sekwencje Optymalnym zbiorem testowym byłaby duża liczba sekwencji filmowych, dla których znana jest liczba poruszających się pojazdów w każdej klatce. Niestety próba znalezienia wyspecjalizowanej w ten sposób bazy przypadków testowych w dostępnych mi zasobach nie zakończyła się sukcesem. Ponadto znalezienie odpowiednich sekwencji ukazujących fragment drogi lub skrzyżowania z perspektywy kamery umieszczonej nad 72

73 drogą na serwisach internetowych, które udostępniają dużą liczbę sekwencji filmowych ( jak np. youtube.com, vimeo.com, dailymotion) okazało się zadaniem nietrywialnym. Proces eksploracji zasobów internetowych w poszukiwaniu odpowiednich nagrań okazał się nieoczekiwanie jednym z trudniejszych etapów niniejszej pracy. Każda z wybranych sekwencji była analizowana ręcznie - dla każdej klatki zapisywano liczbę pojazdów, które faktycznie znajdują się w ruchu. Był to jedyny sposób na przygotowanie danych testowych dla eksperymentu. Taki proces jest czasochłonny, ponadto duże znaczenie odgrywa w nim czynnik ludzki. W niektórych sytuacjach ocena, w którym dokładnie momencie samochód przestał się przemieszczać zatrzymując się przed skrzyżowaniem albo ruszał po zmianie świateł, jest względnie subiektywna. W przypadku projektowania aplikacji zliczającej przejeżdżające pojazdy, najlepszym rozwiązaniem pozwalającym uzyskać relatywnie wiarygodne wyniki, byłoby wykorzystanie sekwencji filmowych tej samej sceny, którą w trybie produkcyjnym ma analizować aplikacja. Jako sekwencje dołączone do kodu źrodłowego aplikacji służą nagrania ruchu ulicznego zarejestrowane przez kamery znajdujące się ponad drogą. Aby wziąć pod uwagę różnego typu sytuacje, wybrano filmy o różnych rozdzielczościach, jakości nagrania i zagęszczeniach pojazdów. Sekwencja nr 1 Na pierwszym nagraniu obserwowane są dwie dwupasmowe jezdnie, na których jednocześnie może pojawić się kilka samochodów poruszających się z podobną prędkością. Cała scena jest równomiernie oświetlona. Rozdzielczość wynosi 220x170. Źródło: youtube.com. 73

74 Rysunek 6.3.1: Sekwencja nr 1 Sekwencja nr 2 Kolejna sekwencja również przedstawia trzy jezdnie ruchu, z czego dwie przebiegają pod wiaduktem, przez co samochody przejeżdzają przez zacienione miejsce o dużo słabszym oświetleniu niż pozostała część sceny. Rozdzielczość wynosi: 480x320. Źródło: vimeo.com. Rysunek 6.3.2: Sekwencja nr 2 Sekwencja nr 3 Ostatnia nr 3 sekwencja zawiera dużą liczbę samochodów, a część z nich znajduje się w scenie od początku, jednak od pewnego momentu zaczyna się przemieszczać. Rozdzielczość sekwencji wynosi: 410x116. Źródło: youtube.com. 74

75 Rysunek 6.3.3: Sekwencja nr 3 Sekwencja nr 4 Kolejna sekwencja zawiera dużą liczbę obiektów, które mogą utrudnić rozpoznanie pojazdu. Przejeżdżając przez niektóre odcinki, samochody są przesłonięte drzewami, a wzdłuż drogi poruszają się piesi. Rozdzielczość sekwencji wynosi: 320x240. Źródło: Rysunek 6.3.4: Sekwencja nr 4 Sekwencja nr 5 Ostatnia sekwencja również zawiera dużą liczbę obiektów, które mogą negatywnie wpłynąć na wynik działania algorytmu. Ponadto na pierwszym planie sceny znajdują się drzewa, które lekko kołyszą się na wietrze wprowadzając dodatkowy szum. Rozdzielczość sekwencji wynosi: 480x320. Źródło: 75

76 Rysunek 6.3.5: Sekwencja nr Metoda Lucasa-Kanade Analiza metodą Lucasa Kanade dała następujące rezultaty: Tabela Dokładność Wydajność Sekwencja nr 1 80% 1,87 Sekwencja nr 2 70% 0,89 Sekwencja nr 3 52% 0,59 Sekwencja nr 4 17% 1,20 Sekwencja nr 5 38% 0,93 Metoda Lucasa-Kanade generująca rzadki przepływ optyczny daje dobre wyniki tylko dla pierwszej sekwencji, czyli w sytuacji gdy jednocześnie w jednej klatce nie znajduje się duża liczba samochodów. W kolejnych sekwencjach jakość klasyfikacji jest niska, czego przyczyną są specyficzne dla tego algorytmu niezauważania pojazdów w pewnych przypadkach. Jedną z takich sytuacji przedstawia rysunek Dla samochodu znajdującego się w cieniu algorytm wskazuje tylko jeden wektor przepływu 76

77 optycznego o błędnym kierunku. Taki przypadek jest interpretowany przez program jako szum i nie dochodzi do stwierdzenia, że w miejscu wskaznia wektora pojawił się poruszający pojazd. Rysunek 6.4.1: Brak wskazania dla samochodu W wielu przypadkach algorytm zbyt późno zauważa samochody, które pojawiły się w sekwencji. Taka sytuacja została przedstawiona na rysunku 6.4.2, na którym dla samochodu w dolnej części ekranu nie zostały wyznaczone wektory przepływu. Związane jest to z faktem, iż dla metody Lucasa-Kanade przed właściwym uruchomieniem algorytmu znajdowane są punkty, dla których odpowiedniki będą poszukiwane na klatce kolejnej. Z tego powodu samochody wjeżdzające w obszar znajdujący się w zasięgu kamery, przez co w kadrze znajdują się tylko częściowo, mogą nie zostać wykryte. Sytuacja ta nie dotyczy samochodów wyjeżdżających ze sceny, kiedy to na poprzedniej klatce pojazd znajdował się w całości. Rysunek 6.4.2: Brak wskazania dla samochodu pojawiającego się na scenie O ile algorytm nie radzi sobie najgorzej w przypadku trzech pierwszych sekwencji, to w przypadku dwóch ostatnich wyniki są na bardzo niskim poziomie. Algorytm pomija większość ruchomych obiektów, czego przyczyną jest zazwyczaj błędne wskazanie punktów, które mają być śledzone. W przypadku jakichkolwiek wdrożeń systemów 77

78 wizyjnych opartych o algorytm Lucasa-Kanade, konieczne byłoby założenie, że sekwencje filmowe będą dość dobrej jakości, a w scenie nie będą znajdowały się obiekty przesłaniające częściowo przejeżdżające auta Metoda Horna-Schuncka Analiza metodą Horna-Schuncka dała następujące rezultaty: Tabela Dokładność Wydajność Sekwencja nr 1 95% 1,72 Sekwencja nr 2 95% 0,36 Sekwencja nr 3 97% 1,08 Sekwencja nr 4 88% 0.86 Sekwencja nr 5 85% 0.37 Zastosowanie gęstego przepływu optycznego wykorzystywanego przez metodę Horna-Schuncka dało zdecydowanie lepsze rezultaty niż w przypadku metody Lucasa- Kanade. Zarówno dla pierwszej, jak i drugiej sekwencji zanotowano nieznaczny spadek wydajności, jednak w przypadku ostatniego testu szybkość działania algorytmu również się poprawiła. Oczywiście również w tym przypadku algorytm nie jest nieomylny. W sytuacji przedstawionej na rysunku można zaobserwować błędne wskazanie przelatującego przez scenę ptaka jako wykryte auto. W tym przypadku algorytm stwierdza ruch dwóch pojazdów. 78

79 Rysunek 6.5.1: Przelot ptaka wykryty jako ruch dwóch obiektów Algorytm Horna-Schuncka generuje bardzo dużą liczbę wektorów przepływu, przy czym wskazuje je również w miejscach, gdzie ruch nie miał miejsca. Większość z nich zostaje poprawnie odrzucona poprzez maskę filtrowania. W tym przypadku obiekt poruszał się szybko, jego obraz w scenie jest rozmyty, przez co algorytm zawyża jego faktyczny rozmiar i interpretuje jako pojazd. Taka sytuacja nie wystąpiła dla metody Lucasa-Kanade, ponieważ w miejscu przelotu ptaka nie został wykryty przepływ optyczny. Metoda osiąga słabsze rezultaty w przypadku trudnych sekwencji. Algorytm nie zawsze poprawnie wskazuje ruchomy obieku, gdy jest on częściowo przesłonięty. Ilustrację takiej sytuacji stanowi rysunek 6.5.2, gdzie znajdujący się po lewej stronie samochód nie zostaje przez algorytm wykryty ponieważ przesłaniają go gałęzie drzewa. Pomimo, że maska filtrowania prawidłowo wskazuje obszar ruchu, wskazany zostaje w tym obszarze tylko jeden wektor przepływu optycznego, co nie spełnia warunku sklasyfikowania obszaru jako poruszającego się pojazdu. 79

80 Rysunek 6.5.2: Pominięcie pojazdu przez algorytm Horna-Schuncka 6.6. Algorytm autorski Analiza algorytmu autorskiego dała następujące rezultaty: Tabela Dokładność Wydajność Sekwencja nr 1 90% 1,98 Sekwencja nr 2 93% 0,15 Sekwencja nr 3 93% 1,20 Sekwencja nr 4 94% 1,86 Sekwencja nr 5 88% 0,74 Algorytm pozwala na osiągnięcie większej dokładności niż w przypadku metody Lucasa-Kanade i słabsze niż w przypadku podejścia Horna-Schuncka. Jest on bardzo wrażliwy na szumy związane z urządzeniem pomiarowym. Nawet niewielkie drgania kamery potrafią wpłynąć na zakłamanie wyników w sposób znaczący, co ilustruje sytuacja przedstawiona na rysunku Niezauważalne gołym okiem drgnięcie kamery powoduje wygenerowanie różnic pomiędzy dwoma klatkami, na których nie znajduje się żaden poruszający się obiekt. Ponieważ jeden z takich ruchów ma miejsce wzdłuż barierki, algorytm przeszukuje ten obszar pod kątem występowania dwóch 80

81 odpowiadających sobie bloków, co kończy się błędnym wskazaniem ruchu. Rysunek 6.6.1: Błędne wskazanie ruchu w algorytmie autorskim W niektórych sytuacjach algorytm zbyt późno zauważa pojazdy, które znajdują się w scenie częściowo. W tym przypadku jest to związane z celowym pomijaniem bloków o małych rozmiarach, które algorytm klasyfikuje jako szum. Taki zabieg jest niezbędny, aby odrzucić sytuację, kiedy przesunięcie bloku jest skutkiem ruchu kamery na wietrze albo pojawieniem się w scenie drobnego obiektu. Odpowiednie dobranie parametru określającego, które wykryte ruchy mają być odrzucone powoduje, że wpływ zakłamań na wyniki działania algorytmu nie jest wysoki. Pomimo że algorytm dla trzech sekwencji osiąga gorsze rezultaty niż metoda Horna-Schuncka, to dla dwóch ostatnich sekwencji osiąga rezultaty lepsze zarówno pod względem wydajności, jak i dokładności. Innymi słowy, algorytm dość dobrze radzi sobie w trudnych warunkach np. w sytuacji gdy pojazd jest widoczny tylko częściowo zza przesłaniających go gałęzi drzew. W szczególności, algorytm autorski poprawnie rozpoznaje sytuację opisaną w rozdziale 6.5, co ilustruje rysunek

82 Rysunek 6.6.2: Działanie algorytmu autorskiego dla częściowo przesłoniętych pojazdów 6.7. Prędkość pojazdów Znając przemieszczenie pojazdów oraz czas w jakim ono zaisniało, możliwe jest określenie prędkości auta w sekwencji w liczbie pikseli na sekundę. Będąc w posiadaniu informacji na temat stosunku rozmiaru rzeczywistego obiektu do jego obrazu można określić prędkość pojazdu, co poszerza dziedzinę zastosowań omawianych algorytmów w analizie ruchu ulicznego. Aby wyróżnić ruchome obiety, algorytm zaznacza na klatce sekwencji strzałki o długości równej przemieszczeniu pojazdu. W przypadku algorytmu Lucasa-Kanade oraz Horna-Schuncka jest to po prostu wypadkowa wektorów przepływu optycznego wykrytych w obszarze pojazdu. Natomiast dla algorytmu autorskiego jest obliczone przemieszczenie w ramach znalezionego regionu. O ile ręczne policzenie pojazdów w każdej klatce sekwencji filmowej celem porównania ich liczby z wynikami jest wykonalne, to określenie w ten sposób przemieszczenia wszystkich pojazdów z sensowną dokładnością nie mogłoby się zakończyć sukcesem. Jedyną możliwością oceny poprawności wyznaczanego przemieszczenia jest obserwacja organoleptyczna. Rysunek przedstawia porównanie przemieszczeń wyznaczonych przez wszystkie algorytmy dla przykładowego 82

83 przypadku. W przypadku algorytmu Lucasa-Kanade (a) oraz Horna-Schuncka (b) można zauważyć, że zwroty wyznaczonych przemieszczeń często nie są zgodne ze zwrotami rzeczywistych przemieszczeń pojazdów. Ponadto, długości wyznaczonych strzałek również budzą wątpliwości ze względu na dużą rozbieżność w sytuacji, gdy samochody w klatce poruszają się ze zbliżoną prędkością. Rysunek 6.7.1: Przemieszczenia pojazdów dla poszczególnych algorytmów. Relatywnie dobre rezultaty zaobserwowano dla algorytmu autorskiego (c). Strzałki prawidłowo wskazują kierunuek ruchu, ponadto ich długość nie budzi większych zastrzeżeń. Oczywiście należy zdać sobie sprawę, że powyższa ocena nie może służyć do jednoznacznej klasyfikacji skuteczności algorytmów w wyznaczaniu przemieszczeń. Aby dokonać porównania niezbędne jest skonforntowanie wyników na podstawie eksperymentów wykonanych na danych testowych, dla których znane są faktyczne przemieszczenia, co nie jest objęte zakresem niniejszej pracy Ocena wyników Na podstawie wyników testów należy zwrócić uwagę na dwa główne problemy który z algorytmów powinien zostać wykorzystany do wykrywania pojazdów oraz w jaki sposób zamontować urządzenia pomiarowe, aby zminimalizować błędne wskazania 83

84 obiektów. Zgodnie z moimi oczekiwaniami, przeprowadzone eksperymenty nie dają jednoznacznej odpowiedzi na pytanie, który algorytm jest najlepszy. Dostarczają jednak jasnych przesłanek, które pozwolą wybrać metodę zależnie od wymagań projektowanego systemu wizyjnego. Dla dobrej jakości sekwencji, o niskim poziomie szumu, w której nie występuje częściowe przesłanianie obiektów, najlepiej pod względem dokładności radzi sobie metoda Horna-Schuncka. Ten algorytm pozwolił na uzyskanie największej skuteczności w trzech pierwszych sekwencjach. Poza drugą sekwencją, osiąga bardzo wysoką wydajność pozwalającą na zastosowania w systemie czasu rzeczywistego. Algorytm pozwala osiągnąć wysoką dokładność zachowując przy tym dobrą wydajność, gdy sekwencja spełnia dwa warunki: rozdzielczość sekwencji nie jest zbyt duża (dzięki czemu obliczenia nie trwają zbyt długo) oraz nie wystąpują drzewa, latarnie, znaki drogowe i inne obiekty ustawione w ten sposób, że będą częściowo zasłaniały ruchomy pojazd. Wyniki niskiej jakości osiągnął algorytm Lucasa-Kanade. Algorytm osiąga rezultaty, które w niektórych sytuacjach można uznać za poprawne. W przypadku testowanych sekwencji ma to miejsce tylko dla pierwszego wideo. Jednak również w tym przypadku dokładność jest znacznie niższa niż w przypadku metody Horna-Schuncka (95%) i algorytmu autorskiego (90%), albowiem wynosi 80%. Cechą, która w większym stopniu charakteryzuje algorytm autorski niż pozostałe metody, jest mała podatność na jakość sekwencji. Niezależnie od jakości nagrania, algorytm pozwala na osiągnięcie dokładności w przedziale 88% - 94%. Co prawda, są to rezultaty nieznacznie gorsze niż w przypadku metody Horna-Schuncka, ale algorytm autorski, we wszystkich sekwencjach - prócz drugiej - osiąga większą wydajność. Algorytm autorski dobrze radzi sobie w sytuacjach, gdy obiekt jest częściowo przesłonięty (np. konarami drzewa) i zdecydowanej większości takich przypadków poprawnie wykrywa ruch pojazdu. Naturalne jest, że dla każdego systemu wizyjnego działającego w czasie rzeczywistym istnieje ograniczenie w postaci rozdzielczości badanej sekwencji. Długi czas 84

85 odpowiedzi algorytmu w określonych przypadkach nie dyskwalifikuje go, lecz stanowi przesłankę do ustanowienia ograniczenia maksymalnej badanej rozdzielczości. Aplikacja odpowiedzialna ze testowanie algorytmów była uruchamiana na domowym komputerze posiadającym 8GB pamięci RAM oraz czterordzeniowy procesor o częstotliwości taktowania 3,2 GHz. W przypadku zastosowań przemysłowych możliwe byłoby zastosowanie bardziej wydajnej jednostki obliczeniowej w zależności od rozmiaru klatki w badanych sekwencjach. Ze względu na różne wydajności poszczególnych algorytmów, decyzja o wyborze, który z nich najlepiej sprawdzi się w projektowanym systemie wizyjnym jest ściśle powiązana z zasobami sprzętowymi jakie bedą do dyspozycji. Istotnym czynnikiem wpływającym na jakość pomiarów jest kąt pomiędzy jezdnią a ogniskową obiektywu kamery - im będzie on większy tym mniejsza jest szansa, że w scenie pojawią się samochody nachodzące na siebie. Innymi słowy, najlepszych rezultatów należy się spodziewać dla sekwencji zarejestrowanych przez kamery zamontowane nad samochodami, a nie przed nimi. Ilustruje to rysunek przedstawiający ujęcie z kamery znajdujęcej się ponad oraz przed pojazdami. Rysunek 6.8.1: Porównanie ujęć ruchu ulicznego z różnych perspektyw (źródło: youtube.com). Ponadto w przypadku rejestracji kamerą ustawioną przed sceną pojawia się problem związany z perspektywą. Obiekty znajdujące się na pierwszym planie są kilkukrotnie większe niż znajdujące się w głębi sceny. Ogranicza to możliwość optymalnego doboru parametrów algorytmów, które są jednakowe dla całej klatki. Taki przypadek ma miejsce w przypadku analizowanej podczas testów sekwencji nr 3, kiedy to na pierwszym planie pojawia się przelatujący ptak. Najbardziej skutecznym sposobem eliminacji tego typu obiektów byłoby odrzucanie ich na podstawie rozmiaru, jednak wtedy algorytm nie zarejestrowałby również pojazdów znajdujących się na dalszym 85

Analiza ruchu. Marek Wnuk < > ZPCiR I-6 PWr. MW: SyWizE p.1/22

Analiza ruchu. Marek Wnuk < > ZPCiR I-6 PWr. MW: SyWizE p.1/22 Analiza ruchu Marek Wnuk < marek.wnuk@pwr.wroc.pl > ZPCiR I-6 PWr MW: SyWizE p.1/22 Ruch w sekwencji obrazów Podstawowe problemy: złożoność obliczeniowa nadmiar informacji niejednoznaczność MW: SyWizE

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

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

Bardziej szczegółowo

Analiza obrazów - sprawozdanie nr 2

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

Bardziej szczegółowo

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Implementacja filtru Canny ego

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

Bardziej szczegółowo

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D autorzy: Michał Dajda, Łojek Grzegorz opiekun naukowy: dr inż. Paweł Rotter I. O projekcie. 1. Celem projektu było stworzenie

Bardziej szczegółowo

3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas

3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas 3. KINEMATYKA Kinematyka jest częścią mechaniki, która zajmuje się opisem ruchu ciał bez wnikania w jego przyczyny. Oznacza to, że nie interesuje nas oddziaływanie między ciałami, ani też rola, jaką to

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

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

Bardziej szczegółowo

Akwizycja obrazów. Zagadnienia wstępne

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

Bardziej szczegółowo

Filtracja obrazu operacje kontekstowe

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

Bardziej szczegółowo

Wektory, układ współrzędnych

Wektory, układ współrzędnych Wektory, układ współrzędnych Wielkości występujące w przyrodzie możemy podzielić na: Skalarne, to jest takie wielkości, które potrafimy opisać przy pomocy jednej liczby (skalara), np. masa, czy temperatura.

Bardziej szczegółowo

Cyfrowe przetwarzanie i kompresja danych

Cyfrowe przetwarzanie i kompresja danych Cyfrowe przetwarzanie i kompresja danych dr inż.. Wojciech Zając Wykład 5. Dyskretna transformata falkowa Schemat systemu transmisji danych wizyjnych Źródło danych Przetwarzanie Przesył Przetwarzanie Prezentacja

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Przetwarzanie obrazu

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

Bardziej szczegółowo

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

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

Bardziej szczegółowo

Animowana grafika 3D. Opracowanie: J. Kęsik.

Animowana grafika 3D. Opracowanie: J. Kęsik. Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Powierzchnia obiektu 3D jest renderowana jako czarna jeżeli nie jest oświetlana żadnym światłem (wyjątkiem są obiekty samoświecące) Oświetlenie

Bardziej szczegółowo

Obraz jako funkcja Przekształcenia geometryczne

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

Bardziej szczegółowo

Proste metody przetwarzania obrazu

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

Bardziej szczegółowo

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych inż. Marek Duczkowski Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych słowa kluczowe: algorytm gradientowy, optymalizacja, określanie wodnicy W artykule

Bardziej szczegółowo

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38 Wykład 5 Potok Renderowania Oświetlenie mgr inż. 1/38 Podejście śledzenia promieni (ang. ray tracing) stosuje się w grafice realistycznej. Śledzone są promienie przechodzące przez piksele obrazu wynikowego

Bardziej szczegółowo

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30 Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego

Bardziej szczegółowo

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy

Bardziej szczegółowo

Przetwarzanie obrazów rastrowych macierzą konwolucji

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

Bardziej szczegółowo

Diagnostyka obrazowa

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

Bardziej szczegółowo

Inteligentna analiza danych

Inteligentna analiza danych Numer indeksu 150946 Michał Moroz Imię i nazwisko Numer indeksu 150875 Grzegorz Graczyk Imię i nazwisko kierunek: Informatyka rok akademicki: 2010/2011 Inteligentna analiza danych Ćwiczenie I Wskaźniki

Bardziej szczegółowo

Anemometria obrazowa PIV

Anemometria obrazowa PIV Wstęp teoretyczny Celem ćwiczenia jest zapoznanie się z techniką pomiarową w tzw. anemometrii obrazowej (Particle Image Velocimetry PIV). Jest to bezinwazyjna metoda pomiaru prędkości pola prędkości. Polega

Bardziej szczegółowo

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

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

Bardziej szczegółowo

METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ

METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ Wykład 3 Elementy analizy pól skalarnych, wektorowych i tensorowych Prof. Antoni Kozioł, Wydział Chemiczny Politechniki Wrocławskiej 1 Analiza

Bardziej szczegółowo

Metody kodowania wybranych cech biometrycznych na przykładzie wzoru naczyń krwionośnych dłoni i przedramienia. Mgr inż.

Metody kodowania wybranych cech biometrycznych na przykładzie wzoru naczyń krwionośnych dłoni i przedramienia. Mgr inż. Metody kodowania wybranych cech biometrycznych na przykładzie wzoru naczyń krwionośnych dłoni i przedramienia Mgr inż. Dorota Smorawa Plan prezentacji 1. Wprowadzenie do zagadnienia 2. Opis urządzeń badawczych

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

Plan wykładu. Akcelerator 3D Potok graficzny

Plan wykładu. Akcelerator 3D Potok graficzny Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D

Bardziej szczegółowo

Filtracja obrazu operacje kontekstowe

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

PRZETWARZANIE SYGNAŁÓW

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

Bardziej szczegółowo

Problematyka budowy skanera 3D doświadczenia własne

Problematyka budowy skanera 3D doświadczenia własne Problematyka budowy skanera 3D doświadczenia własne dr inż. Ireneusz Wróbel ATH Bielsko-Biała, Evatronix S.A. iwrobel@ath.bielsko.pl mgr inż. Paweł Harężlak mgr inż. Michał Bogusz Evatronix S.A. Plan wykładu

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Paweł Pełczyński ppelczynski@swspiz.pl

Mechatronika i inteligentne systemy produkcyjne. Paweł Pełczyński ppelczynski@swspiz.pl Mechatronika i inteligentne systemy produkcyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie definicja, cel i zastosowania mechatroniki Urządzenie mechatroniczne - przykłady

Bardziej szczegółowo

Podstawy Przetwarzania Sygnałów

Podstawy Przetwarzania Sygnałów Adam Szulc 188250 grupa: pon TN 17:05 Podstawy Przetwarzania Sygnałów Sprawozdanie 6: Filtracja sygnałów. Filtry FIT o skończonej odpowiedzi impulsowej. 1. Cel ćwiczenia. 1) Przeprowadzenie filtracji trzech

Bardziej szczegółowo

Mechanika ogólna. Kinematyka. Równania ruchu punktu materialnego. Podstawowe pojęcia. Równanie ruchu po torze (równanie drogi)

Mechanika ogólna. Kinematyka. Równania ruchu punktu materialnego. Podstawowe pojęcia. Równanie ruchu po torze (równanie drogi) Kinematyka Mechanika ogólna Wykład nr 7 Elementy kinematyki Dział mechaniki zajmujący się matematycznym opisem układów mechanicznych oraz badaniem geometrycznych właściwości ich ruchu, bez wnikania w związek

Bardziej szczegółowo

OPTYKA KWANTOWA Wykład dla 5. roku Fizyki

OPTYKA KWANTOWA Wykład dla 5. roku Fizyki OPTYKA KWANTOWA Wykład dla 5. roku Fizyki c Adam Bechler 006 Instytut Fizyki Uniwersytetu Szczecińskiego Równania (3.7), pomimo swojej prostoty, nie posiadają poza nielicznymi przypadkami ścisłych rozwiązań,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

II. Równania autonomiczne. 1. Podstawowe pojęcia.

II. Równania autonomiczne. 1. Podstawowe pojęcia. II. Równania autonomiczne. 1. Podstawowe pojęcia. Definicja 1.1. Niech Q R n, n 1, będzie danym zbiorem i niech f : Q R n będzie daną funkcją określoną na Q. Równanie różniczkowe postaci (1.1) x = f(x),

Bardziej szczegółowo

Zbigniew Figiel, Piotr Dzikowicz. Skanowanie 3D przy projektowaniu i realizacji inwestycji w Koksownictwie KOKSOPROJEKT

Zbigniew Figiel, Piotr Dzikowicz. Skanowanie 3D przy projektowaniu i realizacji inwestycji w Koksownictwie KOKSOPROJEKT 1 Zbigniew Figiel, Piotr Dzikowicz Skanowanie 3D przy projektowaniu i realizacji inwestycji w Koksownictwie 2 Plan prezentacji 1. Skanowanie laserowe 3D informacje ogólne; 2. Proces skanowania; 3. Proces

Bardziej szczegółowo

Drgania poprzeczne belki numeryczna analiza modalna za pomocą Metody Elementów Skończonych dr inż. Piotr Lichota mgr inż.

Drgania poprzeczne belki numeryczna analiza modalna za pomocą Metody Elementów Skończonych dr inż. Piotr Lichota mgr inż. Drgania poprzeczne belki numeryczna analiza modalna za pomocą Metody Elementów Skończonych dr inż. Piotr Lichota mgr inż. Joanna Szulczyk Politechnika Warszawska Instytut Techniki Lotniczej i Mechaniki

Bardziej szczegółowo

Przetwarzanie obrazów wykład 4

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

Bardziej szczegółowo

Pattern Classification

Pattern Classification Pattern Classification All materials in these slides were taken from Pattern Classification (2nd ed) by R. O. Duda, P. E. Hart and D. G. Stork, John Wiley & Sons, 2000 with the permission of the authors

Bardziej szczegółowo

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Podstawy Automatyki

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Podstawy Automatyki Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Podsta Automatyki Transmitancja operatorowa i widmowa systemu, znajdowanie odpowiedzi w dziedzinie s i w

Bardziej szczegółowo

INTERFERENCJA WIELOPROMIENIOWA

INTERFERENCJA WIELOPROMIENIOWA INTERFERENCJA WIELOPROMIENIOWA prof. dr hab. inż. Krzysztof Patorski W tej części wykładu rozważymy przypadek koherentnej superpozycji większej liczby wiązek niż dwie. Najważniejszym interferometrem wielowiązkowym

Bardziej szczegółowo

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7 Łukasz Deńca V rok Koło Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE

Bardziej szczegółowo

Techniki animacji komputerowej

Techniki animacji komputerowej Techniki animacji komputerowej 1 Animacja filmowa Pojęcie animacji pochodzi od ożywiania i ruchu. Animować oznacza dawać czemuś życie. Słowem animacja określa się czasami film animowany jako taki. Animacja

Bardziej szczegółowo

Rozpoznawanie obrazów

Rozpoznawanie obrazów Rozpoznawanie obrazów Laboratorium Python Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba, J. Kaczmar Cel zadania Celem zadania jest implementacja liniowego zadania

Bardziej szczegółowo

Sposoby opisu i modelowania zakłóceń kanałowych

Sposoby opisu i modelowania zakłóceń kanałowych INSTYTUT TELEKOMUNIKACJI ZAKŁAD RADIOKOMUNIKACJI Instrukcja laboratoryjna z przedmiotu Podstawy Telekomunikacji Sposoby opisu i modelowania zakłóceń kanałowych Warszawa 2010r. 1. Cel ćwiczeń: Celem ćwiczeń

Bardziej szczegółowo

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

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 9 AiR III 1 Na podstawie materiałów autorstwa dra inż. Marka Wnuka. Niniejszy dokument zawiera materiały do wykładu z przedmiotu Cyfrowe Przetwarzanie Obrazów i Sygnałów. Jest on udostępniony pod warunkiem wykorzystania

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

LABORATORIUM FIZYKI PAŃSTWOWEJ WYŻSZEJ SZKOŁY ZAWODOWEJ W NYSIE. Ćwiczenie nr 3 Temat: Wyznaczenie ogniskowej soczewek za pomocą ławy optycznej.

LABORATORIUM FIZYKI PAŃSTWOWEJ WYŻSZEJ SZKOŁY ZAWODOWEJ W NYSIE. Ćwiczenie nr 3 Temat: Wyznaczenie ogniskowej soczewek za pomocą ławy optycznej. LABORATORIUM FIZYKI PAŃSTWOWEJ WYŻSZEJ SZKOŁY ZAWODOWEJ W NYSIE Ćwiczenie nr 3 Temat: Wyznaczenie ogniskowej soczewek za pomocą ławy optycznej.. Wprowadzenie Soczewką nazywamy ciało przezroczyste ograniczone

Bardziej szczegółowo

Biostatystyka, # 3 /Weterynaria I/

Biostatystyka, # 3 /Weterynaria I/ Biostatystyka, # 3 /Weterynaria I/ dr n. mat. Zdzisław Otachel Uniwersytet Przyrodniczy w Lublinie Katedra Zastosowań Matematyki i Informatyki ul. Głęboka 28, p. 221 bud. CIW, e-mail: zdzislaw.otachel@up.lublin.pl

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

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

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

Bardziej szczegółowo

LABORATORIUM PODSTAW TELEKOMUNIKACJI

LABORATORIUM PODSTAW TELEKOMUNIKACJI WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego w Warszawie Wydział Elektroniki LABORATORIUM PODSTAW TELEKOMUNIKACJI Grupa Podgrupa Data wykonania ćwiczenia Ćwiczenie prowadził... Skład podgrupy:

Bardziej szczegółowo

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka Modelowanie jako sposób opisu rzeczywistości Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka 2015 Wprowadzenie: Modelowanie i symulacja PROBLEM: Podstawowy problem z opisem otaczającej

Bardziej szczegółowo

Segmentacja przez detekcje brzegów

Segmentacja przez detekcje brzegów Segmentacja przez detekcje brzegów Lokalne zmiany jasności obrazu niosą istotną informację o granicach obszarów (obiektów) występujących w obrazie. Metody detekcji dużych, lokalnych zmian jasności w obrazie

Bardziej szczegółowo

W celu obliczenia charakterystyki częstotliwościowej zastosujemy wzór 1. charakterystyka amplitudowa 0,

W celu obliczenia charakterystyki częstotliwościowej zastosujemy wzór 1. charakterystyka amplitudowa 0, Bierne obwody RC. Filtr dolnoprzepustowy. Filtr dolnoprzepustowy jest układem przenoszącym sygnały o małej częstotliwości bez zmian, a powodującym tłumienie i opóźnienie fazy sygnałów o większych częstotliwościach.

Bardziej szczegółowo

Pomiar drogi koherencji wybranych źródeł światła

Pomiar drogi koherencji wybranych źródeł światła Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Optoelektroniki i Systemów Elektronicznych Pomiar drogi koherencji wybranych źródeł światła Instrukcja do ćwiczenia laboratoryjnego

Bardziej szczegółowo

Ćwiczenie z fizyki Doświadczalne wyznaczanie ogniskowej soczewki oraz współczynnika załamania światła

Ćwiczenie z fizyki Doświadczalne wyznaczanie ogniskowej soczewki oraz współczynnika załamania światła Ćwiczenie z fizyki Doświadczalne wyznaczanie ogniskowej soczewki oraz współczynnika załamania światła Michał Łasica klasa IIId nr 13 22 grudnia 2006 1 1 Doświadczalne wyznaczanie ogniskowej soczewki 1.1

Bardziej szczegółowo

Ćwiczenie 12. Wprowadzenie teoretyczne

Ćwiczenie 12. Wprowadzenie teoretyczne Ćwiczenie 12 Hologram cyfrowy. I. Wstęp Wprowadzenie teoretyczne Ze względu na sposób zapisu i odtworzenia, hologramy można podzielić na trzy grupy: klasyczne, syntetyczne i cyfrowe. Hologramy klasyczny

Bardziej szczegółowo

PODSTAWY BARWY, PIGMENTY CERAMICZNE

PODSTAWY BARWY, PIGMENTY CERAMICZNE PODSTAWY BARWY, PIGMENTY CERAMICZNE Barwa Barwą nazywamy rodzaj określonego ilościowo i jakościowo (długość fali, energia) promieniowania świetlnego. Głównym i podstawowym źródłem doznań barwnych jest

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

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

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

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16 Spis treści Przedmowa.......................... XI Rozdział 1. Pomiar: jednostki miar................. 1 1.1. Wielkości fizyczne i pozafizyczne.................. 1 1.2. Spójne układy miar. Układ SI i jego

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Teoria światła i barwy

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

Bardziej szczegółowo

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Wymagania edukacyjne z matematyki w klasie III gimnazjum Wymagania edukacyjne z matematyki w klasie III gimnazjum - nie potrafi konstrukcyjnie podzielić odcinka - nie potrafi konstruować figur jednokładnych - nie zna pojęcia skali - nie rozpoznaje figur jednokładnych

Bardziej szczegółowo

Procedura modelowania matematycznego

Procedura modelowania matematycznego Procedura modelowania matematycznego System fizyczny Model fizyczny Założenia Uproszczenia Model matematyczny Analiza matematyczna Symulacja komputerowa Rozwiązanie w postaci modelu odpowiedzi Poszerzenie

Bardziej szczegółowo

Równania dla potencjałów zależnych od czasu

Równania dla potencjałów zależnych od czasu Równania dla potencjałów zależnych od czasu Potencjały wektorowy A( r, t i skalarny ϕ( r, t dla zależnych od czasu pola elektrycznego E( r, t i magnetycznego B( r, t definiujemy poprzez następujące zależności

Bardziej szczegółowo

Metody systemowe i decyzyjne w informatyce

Metody systemowe i decyzyjne w informatyce Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z liniowym zadaniem najmniejszych

Bardziej szczegółowo

Analiza składowych głównych

Analiza składowych głównych Analiza składowych głównych Wprowadzenie (1) W przypadku regresji naszym celem jest predykcja wartości zmiennej wyjściowej za pomocą zmiennych wejściowych, wykrycie związku między wielkościami wejściowymi

Bardziej szczegółowo

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności

WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony. Wiadomości i umiejętności WYMAGANIA Z WIEDZY I UMIEJĘTNOŚCI NA POSZCZEGÓLNE STOPNIE SZKOLNE DLA KLASY CZWARTEJ H. zakres rozszerzony Funkcja wykładnicza i funkcja logarytmiczna. Stopień Wiadomości i umiejętności -definiować potęgę

Bardziej szczegółowo

Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie. Projekt. z przedmiotu Analiza i Przetwarzanie Obrazów

Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie. Projekt. z przedmiotu Analiza i Przetwarzanie Obrazów 30 czerwca 2015 Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie Projekt z przedmiotu Analiza i Przetwarzanie Obrazów Wykrywanie tablic rejestracyjnych Jagieła Michał IS (GKiPO) Michał Jagieła

Bardziej szczegółowo

FIZYKA klasa 1 Liceum Ogólnokształcącego (4 letniego)

FIZYKA klasa 1 Liceum Ogólnokształcącego (4 letniego) 2019-09-01 FIZYKA klasa 1 Liceum Ogólnokształcącego (4 letniego) Treści z podstawy programowej przedmiotu POZIOM ROZSZERZONY (PR) SZKOŁY BENEDYKTA Podstawa programowa FIZYKA KLASA 1 LO (4-letnie po szkole

Bardziej szczegółowo

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości

Bardziej szczegółowo

Przetwarzanie obrazu

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

Bardziej szczegółowo

Oświetlenie obiektów 3D

Oświetlenie obiektów 3D Synteza i obróbka obrazu Oświetlenie obiektów 3D Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Rasteryzacja Spłaszczony po rzutowaniu obraz siatek wielokątowych

Bardziej szczegółowo

Interpretacja gestów dłoni w sekwencji obrazów cyfrowych. autor: Karol Czapnik opiekun: prof. dr hab. Włodzimierz Kasprzak

Interpretacja gestów dłoni w sekwencji obrazów cyfrowych. autor: Karol Czapnik opiekun: prof. dr hab. Włodzimierz Kasprzak Interpretacja gestów dłoni w sekwencji obrazów cyfrowych autor: Karol Czapnik opiekun: prof. dr hab. Włodzimierz Kasprzak Plan prezentacji Cel pracy magisterskiej Zastosowanie pracy Założenia projektowe

Bardziej szczegółowo

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy)

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy) Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy) klasa 3. PAZDRO Plan jest wykazem wiadomości i umiejętności, jakie powinien mieć uczeń ubiegający się o określone oceny na poszczególnych etapach edukacji

Bardziej szczegółowo

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

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

Bardziej szczegółowo

BADANIA SYMULACYJNE PROCESU HAMOWANIA SAMOCHODU OSOBOWEGO W PROGRAMIE PC-CRASH

BADANIA SYMULACYJNE PROCESU HAMOWANIA SAMOCHODU OSOBOWEGO W PROGRAMIE PC-CRASH BADANIA SYMULACYJNE PROCESU HAMOWANIA SAMOCHODU OSOBOWEGO W PROGRAMIE PC-CRASH Dr inż. Artur JAWORSKI, Dr inż. Hubert KUSZEWSKI, Dr inż. Adam USTRZYCKI W artykule przedstawiono wyniki analizy symulacyjnej

Bardziej szczegółowo

AUTOMATYCZNE ROZPOZNAWANIE PUNKTÓW KONTROLNYCH GŁOWY SŁUŻĄCYCH DO 3D MODELOWANIA JEJ ANATOMII I DYNAMIKI

AUTOMATYCZNE ROZPOZNAWANIE PUNKTÓW KONTROLNYCH GŁOWY SŁUŻĄCYCH DO 3D MODELOWANIA JEJ ANATOMII I DYNAMIKI AUTOMATYCZNE ROZPOZNAWANIE PUNKTÓW KONTROLNYCH GŁOWY SŁUŻĄCYCH DO 3D MODELOWANIA JEJ ANATOMII I DYNAMIKI Tomasz Huczek Promotor: dr Adrian Horzyk Cel pracy Zasadniczym celem pracy było stworzenie systemu

Bardziej szczegółowo

Temat ćwiczenia: Zasady stereoskopowego widzenia.

Temat ćwiczenia: Zasady stereoskopowego widzenia. Uniwersytet Rolniczy w Krakowie Wydział Inżynierii Środowiska i Geodezji Katedra Fotogrametrii i Teledetekcji Temat ćwiczenia: Zasady stereoskopowego widzenia. Zagadnienia 1. Widzenie monokularne, binokularne

Bardziej szczegółowo

Elementy modelowania matematycznego

Elementy modelowania matematycznego Elementy modelowania matematycznego Modelowanie algorytmów klasyfikujących. Podejście probabilistyczne. Naiwny klasyfikator bayesowski. Modelowanie danych metodą najbliższych sąsiadów. Jakub Wróblewski

Bardziej szczegółowo

Rys. 1 Geometria układu.

Rys. 1 Geometria układu. Ćwiczenie 9 Hologram Fresnela Wprowadzenie teoretyczne Holografia umożliwia zapis pełnej informacji o obiekcie optycznym, zarówno amplitudowej, jak i fazowej. Dzięki temu można m.in. odtwarzać trójwymiarowe

Bardziej szczegółowo

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe. Z5: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania zagadnienie brzegowe Dyskretne operatory różniczkowania Numeryczne obliczanie pochodnych oraz rozwiązywanie

Bardziej szczegółowo

RÓWNANIE DYNAMICZNE RUCHU KULISTEGO CIAŁA SZTYWNEGO W UKŁADZIE PARASOLA

RÓWNANIE DYNAMICZNE RUCHU KULISTEGO CIAŁA SZTYWNEGO W UKŁADZIE PARASOLA Dr inż. Andrzej Polka Katedra Dynamiki Maszyn Politechnika Łódzka RÓWNANIE DYNAMICZNE RUCHU KULISTEGO CIAŁA SZTYWNEGO W UKŁADZIE PARASOLA Streszczenie: W pracy opisano wzajemne położenie płaszczyzny parasola

Bardziej szczegółowo