System wraz z biblioteką modułów dla zaawansowanej analizy i interaktywnej syntezy ruchu postaci ludzkiej. Motion. Dokumentacja techniczna projektu

Podobne dokumenty
System wraz z biblioteką modułów dla zaawansowanej analizy i interaktywnej syntezy ruchu postaci ludzkiej.

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Algorytm grupowania danych typu kwantyzacji wektorów

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

Opisy efektów kształcenia dla modułu

PSO Rój cząsteczek - Particle Swarm Optimization. Michał Szopiak

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Dobór parametrów algorytmu ewolucyjnego

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

Szczegółowy program kursu Statystyka z programem Excel (30 godzin lekcyjnych zajęć)

Elementy inteligencji obliczeniowej

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Podstawy OpenCL część 2

Optymalizacja ciągła

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

10. Redukcja wymiaru - metoda PCA

Seminarium IO. Zastosowanie wielorojowej metody PSO w Dynamic Vehicle Routing Problem. Michał Okulewicz

Maciej Piotr Jankowski

Algorytmy ewolucji różnicowej (ang. differential evolution -DE) oraz roju cząstek (ang. particle swarm optimization -PSO)

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

Temat: Sieci neuronowe oraz technologia CUDA

Julia 4D - raytracing

Implementacja filtru Canny ego

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

STATYSTYKA MATEMATYCZNA

Algorytmy genetyczne w optymalizacji

Fuzja sygnałów i filtry bayesowskie

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Statystyki: miary opisujące rozkład! np. : średnia, frakcja (procent), odchylenie standardowe, wariancja, mediana itd.

Statystyki: miary opisujące rozkład! np. : średnia, frakcja (procent), odchylenie standardowe, wariancja, mediana itd.

Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Raport Hurtownie Danych

WYZNACZANIE NIEPEWNOŚCI POMIARU METODAMI SYMULACYJNYMI

Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa

Statystyka od podstaw Janina Jóźwiak, Jarosław Podgórski

Spacery losowe generowanie realizacji procesu losowego

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Priorytetyzacja przypadków testowych za pomocą macierzy

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym

Agnieszka Nowak Brzezińska Wykład III

ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

ALHE. prof. Jarosław Arabas semestr 15Z

Szczegółowy program kursu Statystyka z programem Excel (30 godzin lekcyjnych zajęć)

Agnieszka Nowak Brzezińska Wykład III

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Przykładowe sprawozdanie. Jan Pustelnik

O dwóch modyfikacjach algorytmu PSO

Elementy modelowania matematycznego

Algorytmy zrandomizowane

Algorytm genetyczny (genetic algorithm)-

Optymalizacja optymalizacji

Aproksymacja funkcji a regresja symboliczna

Zadania laboratoryjne i projektowe - wersja β

Komputerowe algorytmy ekstrakcji i śledzenia obiektów w czasie rzeczywistym

Algorytmy estymacji stanu (filtry)

Analiza danych. TEMATYKA PRZEDMIOTU

METODY STATYSTYCZNE W BIOLOGII

Algorytmy sortujące i wyszukujące

Jeśli X jest przestrzenią o nieskończonej liczbie elementów:

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Modyfikacja algorytmów retransmisji protokołu TCP.

7. Identyfikacja defektów badanego obiektu

Testowanie metod optymalizacji i hipotez statystycznych Opracowanie: Łukasz Lepak,

Rój cząsteczek. Particle Swarm Optimization. Adam Grycner. 18 maja Instytut Informatyki Uniwersytetu Wrocławskiego

Monte Carlo, bootstrap, jacknife

Grafika Komputerowa Materiały Laboratoryjne

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Kalibracja kamery. Kalibracja kamery

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Stochastic modelling of phase transformations using HPC infrastructure

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Kwantowa wariacyjna metoda Monte Carlo. Problem własny dla stanu podstawowego układu N cząstek

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Wykład 1 Próba i populacja. Estymacja parametrów z wykorzystaniem metody bootstrap

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

Metody systemowe i decyzyjne w informatyce

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Modelowanie terenu na bazie symulacji erozji z wykorzystaniem deformowalnych wokseli

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

Generowanie ciągów pseudolosowych o zadanych rozkładach przykładowy raport

Anemometria obrazowa PIV

i3: internet - infrastruktury - innowacje

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

WSKAZÓWKI DO WYKONANIA SPRAWOZDANIA Z WYRÓWNAWCZYCH ZAJĘĆ LABORATORYJNYCH

Zad. 4 Należy określić rodzaj testu (jedno czy dwustronny) oraz wartości krytyczne z lub t dla określonych hipotez i ich poziomów istotności:

Uczenie sieci typu MLP

Strategie ewolucyjne (ang. evolu4on strategies)

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Klasyfikacja publikacji biomedycznych w konkursie JRS 2012 Data Mining Competition - Szkic koncepcji

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

1. Symulacje komputerowe Idea symulacji Przykład. 2. Metody próbkowania Jackknife Bootstrap. 3. Łańcuchy Markova. 4. Próbkowanie Gibbsa

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

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS

Algorytmy genetyczne w interpolacji wielomianowej

Wydział Matematyki. Testy zgodności. Wykład 03

Programowanie procesorów graficznych GPGPU

Transkrypt:

PROGRAM OPERACYJNY INNOWACYJNA GOSPODARKA System wraz z biblioteką modułów dla zaawansowanej analizy i interaktywnej syntezy ruchu postaci ludzkiej Motion Dokumentacja techniczna projektu Wyciąg z raportu technicznego Zakres: Zadanie 2.2.Opracowanie algorytmu kondensacji

Spis treści 1. Cel zadania... 2 2. Wprowadzenie... 3 3. Przygotowane oprogramowanie... 3 Rozdział 1:... 5 4. Zrealizowane badania... 5 4.1. Filtry do śledzenia ruchu postaci ludzkiej... 5 5. Analiza i interpretacja wyników... 14 6. Podsumowanie... 19 1. Cel zadania Celem Zadania 2.2 było opracowanie filtru cząsteczkowego do śledzenia ruchu postaci ludzkiej. Śledzenie ruchu w wielowymiarowej przestrzeni jest zadaniem trudnym oraz czasochłonnym obliczeniowo. W ramach zadania porównano pięd różnych rodzajów filtrów cząsteczkowych o różnych konfiguracjach. W badaniach eksperymentalnych przetestowano filtry zbudowane w oparciu o macierze transformacji, kwaterniony i kąty Eulera. Przebadano skutecznośd oraz szybkośd śledzenia ruchu postaci ludzkiej. Przeprowadzono także badania nad rozwiązaniami algorytmicznymi celem przyśpieszenia działania filtrów poprzez wykorzystanie kart graficznych i technologii CUDA. 2

2.Wprowadzenie Obecnie znaczną częśd uwagi poświęca się śledzeniu ruchu postaci ludzkiej w sekwencjach obrazów *1,2,3,4,5+. Głównym problemem związanym ze śledzeniem ruchu postaci ludzkiej jest estymacja aktualnej konfiguracji postaci. Jest to jeden z najtrudniejszych problemów w komputerowym przetwarzaniu obrazów biorąc pod uwagę bardzo dużą przestrzeo poszukiwao, różnorodnośd w wyglądzie postaci ludzkich oraz różnorodnośd otoczenia śledzonej postaci. W pracach nad śledzeniem ruchu postaci ludzkiej najczęściej stosuje się modele uproszczone *3,7+, jednolite tło *2+ oraz odpowiednio dobrany ubiór postaci ludzkiej w celu wyznaczenia cech charakterystycznych. W pracy *2+ stworzono system do śledzenia ruchu człowieka w oparciu o trójwymiarowy model geometryczny. System wykorzystywał obrazy pochodzące z trzech skalibrowanych kamer. Eksperymenty realizowano w scenariuszach z czarnym tłem. Mimo że wykorzystywano udoskonalony filtr cząsteczkowy z algorytmem symulowanego wyżarzania, uzyskane czasy obliczeo są bardzo długie. Układy wielokamerowe *2,4,6+ są zwykle wykorzystywane w aplikacjach śledzących ruch postaci ludzkiej celem uzyskania lepszych wyników w kontekście wzajemnych przesłonięd przez kooczyny ludzkie i elementy ciała. W aplikacjach tego typu zwykle wykorzystuje się probabilistyczne modele postaci ludzkiej *4+ lub trójwymiarowe modele postaci [2,3,5,7]. 3.Przygotowane oprogramowanie Jak już wspomniano wcześniej śledzenie ruchu postaci ludzkiej w wielowymiarowej przestrzeni stanu jest zadaniem trudnym. Śledzenie ruchu postaci ludzkiej w oparciu o model 3D pozwala na uzyskanie lepszych wyników w porównaniu do rozwiązao opartych na probabilistycznych modelach, wyrażających zależności między treścią obrazu a konfiguracją sylwetki. Ze względu na nieliniową przestrzeo stanu (konfiguracji modelu 3d), a także nieliniowe modele obserwacji, do estymacji konfiguracji postaci ludzkiej zwykle stosuje się metody Monte-Carlo. We wspomnianym podejściu rozkład prawdopodobieostwa 3

aproksymowany jest poprzez zbiór cząstek. W typowym podejściu śledzenie ruchu postaci ludzkiej realizowane jest poprzez filtr cząsteczkowy, w którym cząstki reprezentują hipotezy, zaś wagi wyrażają prawdopodobieostwa hipotez. Celem porównania filtrów opracowano model 3D postaci ludzkiej oraz środowisko do badao symulacyjnych nad filtrami cząsteczkowymi. Dzięki zastosowaniu hierarchicznego modelu postaci ludzkiej, uzyskuje się ograniczenie przestrzeni poszukiwao, w której operują cząstki. Przygotowany model 3D (Rys. 1) składa się z 11 elementów i posiada dwudziestosześciowymiarową przestrzeo swobody. Głowa (2), tułów (1) oraz ramiona (5, 6) mają po 3 stopnie swobody, ponieważ możemy nimi obracad wokół dowolnej osi. Biodro (0) posiada 6 stopni, dzięki czemu można przesuwad oraz obracad cały model. Dwa stopnie swobody posiadają uda (3, 4), ponieważ nie mają możliwości obrotu wokół własnej osi. Pozostałe części modelu, czyli przedramiona (9, 10) i łydki (7, 8), mają jeden stopieo swobody. Rys. 1 Model 3D postaci ludzkiej Prezentowany na Rys. 1 model znajduje się w konfiguracji podstawowej, którą można rozszerzyd poprzez dodanie kolejnych elementów (dłoni, stóp itd.). Na Rys. 2 zaprezentowano poglądowy schemat systemu, który wykorzystywano w badaniach nad filtrami cząsteczkowymi do śledzenia ruchu postaci ludzkiej. Aktualna konfiguracja postaci jest estymowana przez filtr cząsteczkowy, który reprezentuje wiele hipotetycznych stanów reprezentujących konfiguracje człowieka. Z każdą hipotetyczną konfiguracją związana jest waga, która reprezentuje podobieostwo konfiguracji do aktualnej konfiguracji człowieka. Każda z tych hipotetycznych konfiguracji postaci jest w pierwszej kolejności rzutowana do przestrzeni 2D, gdzie następuje porównanie z dwuwymiarową 4

reprezentacją postaci, otrzymaną na podstawie danych z kamery lub systemu symulacyjnego. W trakcie porównywania wykorzystywane są cechy obrazów, np. krawędzie, kolory obiektów, gradient obrazu. Na Rys. 2 wspomniane cechy obrazu zaznaczono w sposób schematyczny za pomocą znaku x. Rys. 2 Schemat systemu do projektowania i testowanie filtru cząsteczkowego Rozdział 1: 4.Zrealizowane badania 4.1. Filtry do śledzenia ruchu postaci ludzkiej W trakcie prac zaimplementowano oraz przetestowano pięd różnych filtrów, z których każdy operuje w dwudziestosześciowymiarowej przestrzeni. Poniżej omówiono poszczególne filtry. 5

1.1.1. Filtr cząsteczkowy Filtr cząsteczkowy (ang. particle filter) aproksymuje rozkład prawdopodobieństwa za pomocą zbioru próbek w przestrzeni stanów systemu. Gęstość występowania próbek w danym obszarze reprezentuje prawdopodobieństwo iż system znajduje się w określonym punkcie przestrzeni stanów. W praktycznej realizacji algorytmu dla każdej próbki wyznaczana jest waga określająca trafnośd z jaką dana cząstka odwzorowuje dany stan. Wartośd wag dla poszczególnych cząstek można wyznaczyd z zależności: 2 1 1 f st w t exp, (1) 2 gdzie w t oznacza wagę cząstki a s t jej stan w danym czasie. W algorytmie można wyróżnid kilka podstawowych faz: predykcję, wyliczenie wag, normalizację, estymację i resampling. Podczas predykcji wyliczany jest nowy stan s t wszystkich cząstek. Nowe stany są wyznaczane na podstawie stanu cząstki dla czasu t-1. Bardzo ważną fazą algorytmu jest resampling. Podczas resamplingu losowane są najlepsze cząstki, które są następnie brane pod uwagę w fazie predykcji dla czasu t. Dzięki temu zabiegowi w kolejnej iteracji brane są pod uwagę jedynie próbki, które stosunkowo trafnie odwzorowują właściwy stan. Takie podejście zapobiega zjawisku degeneracji cząstek, które polega na propagowaniu do następnego kroku mało istotnych cząstek. Zaimplementowany algorytm filtru cząsteczkowego można przedstawid w następujący sposób: 1. Predykcja: przewidywanie stanów s t cząstek na podstawie stanu s t-1 2. Wyliczenie wag: wyliczenie wag w t dla wszystkich cząstek za pomocą wzoru (1) 3. Normalizacja wag 4. Estymacja: wyznaczenie najlepszej cząstki 5. Resampling: losowanie cząstek na podstawie wag w i Jak już wspomniano filtr cząsteczkowy aproksymuje rozkład prawdopodobieostwa za pomocą zbioru próbek. Przy odpowiednio dużej liczbie cząstek rozkład ten jest dobrze określony. W podstawowym 6

algorytmie filtru cząsteczkowego liczba cząstek powinna rosnąd ekspotencjalnie wraz ze wzrostem wymiarowości przestrzeni stanów. W praktyce liczba ta może byd znacząca, w szczególności w zadaniach estymacji ruchu postaci ludzkiej. W konsekwencji konieczne jest zastosowanie modyfikacji filtru cząsteczkowego, które pozwoliłby na zmniejszenie ilości cząstek. Przykłady modyfikacji filtru cząsteczkowego zostaną przedstawione w dalszej części raportu. 1.1.2. PSO Optymalizacja w oparciu o rój cząstek (ang. particle swarm optimization) PSO jest nowoczesną metodą poszukiwania stochastycznego, czerpiącą z reguł zachowao społecznych w populacjach organizmów żywych. Główną zaletą omawianego algorytmu jest to, że osobnicy pamiętają znalezione wcześniej najlepsze położenia, czyli dysponują pseudo-gradientową informacją o przestrzeni poszukiwania. Dodatkowo poprzez wzajemne oddziaływania na siebie oraz sprzężenia zwrotne osobnicy dzielą się wiedzą między sobą. Prowadzi to do znaczącego wzrostu skuteczności poszukiwao najlepszego rozwiązania. Zaimplementowany algorytm roju jest asynchroniczną wersją PSO z globalnym sąsiedztwem. Każda z cząstek i zawiera aktualną pozycje cząstki x i, aktualną prędkośd v i, i najlepszą pozycję cząstki y i. Dla każdej cząstki składowa j prędkości v i może byd wyliczona w następujący sposób: v v cr y x ) cr ( yˆ x ) (2) i, j i, j 1, j ( i, j i, j 2, j j i, j lub: v K v cr ( y x ) cr ( yˆ x )), (3) i, j ( i, j 1, j i, j i, j 2, j j i, j gdzie ω jest współczynnikiem inercyjnym (w zaimplementowanym algorytmie ω=1.2 ), r 1,j i r 2,j są liczbami losowymi z rozkładu jednorodnego w przedziale (0, 1), zaś c jest mnożnikiem wagowym, który powinien przyjmowad wartości większe od zera (w zaimplementowanym algorytmie c=2.05). Współczynnik K można wyliczyd ze wzoru: 7

2 K, (4) 2 2 4 gdzie γ=2c. W badaniach eksperymentalnych przetestowana została wersja algorytmu PSO z prędkością wyliczoną za pomocą wzorów (2) oraz (3). PSO wykorzystujący wzór (2) uzyskiwał lepsze wyniki, dlatego zaleca się stosowanie tego wzoru. Po wyliczeniu prędkości nową pozycję cząstki można wyliczyd ze wzoru: x i j xi, j vi, j, (5) W algorytmie niezbędny jest mechanizm kontroli prędkości maksymalnej by cząstki przemieszczające się ruchem odcinkowo prostoliniowym nie mijały dobrych rozwiązao. Zaimplementowany algorytm roju można przedstawid w następujący sposób: 1. Funkcja y ˆ PSO( ) 2. Inicjalizuj x, v 3. y = x, ( y) arg min f ( x) 4. Powtarzaj f x 5. Dla każdej cząstki 6. Uaktualnij prędkośd cząstki v i w oparciu o zależności (2) lub (3) 7. Uaktualnij pozycję cząstki x i za pomocą (5) 8. If f y ) f ( x ), uaktualnij najlepszą lokalną pozycję cząstki y i xi ( i i 9. If f ( yˆ) f ( xi ), uaktualnij najlepszą globalną pozycję cząstek ŷ xi 10. Dopóki iteracja < max_iteracji W omawianym algorytmie, dzięki zdolności zapamiętywania najlepszych położeo oraz zdolności dzielenia się informacją, cząstki wyszukują obszary z wartościami funkcji celu przyjmującymi największe wartości. 8

Przetestowana została także wersje PSO z wieloma sąsiedztwami. Uzyskiwane wyniki pokrycia były zbliżone do standardowego algorytmu PSO, lecz uzyskane odchylenie standardowe dla poszczególnych klatek było mniejsze (uzyskiwane wyniki były bardziej stabilne). 1.1.3. PSO + Filtr cząsteczkowy W celu zwiększenia dokładności śledzenia przez algorytm PSO zrealizowano filtr hybrydowy łączący cechy standardowego filtru cząsteczkowego z PSO. W naszym podejściu głównym zadaniem filtru cząsteczkowego jest propagacja najlepszych cząstek do następnego kroku, dzięki czemu cząstki są lepiej rozłożone w przestrzeni. Natomiast zadaniem algorytmu PSO jest estymacja dokładnej konfiguracji postaci ludzkiej. Zaimplementowany algorytm hybrydowy można przedstawid w następujący sposób: 1. Predykcja: przewidywanie stanów s t cząstek na podstawie s t-1 2. Ruch cząstek algorytmem PSO 3. Wyliczenie wag: wyliczenie wag w t dla wszystkich cząstek za pomocą wzoru (1) 4. Normalizacja wag 5. Estymacja: wyznaczenie najlepszej cząstki 6. Resampling: losowanie cząstek na podstawie wag w i Główna zaletą omawianego filtru jest możliwośd propagacji najlepszych cząstek do następnego kroku, co pozwala na uzyskanie lepszych rezultatów, w porównaniu do standardowego PSO, przy mniejszej ilości cząstek i iteracji. 1.1.4. Filtr cząsteczkowy z Mean-Shift Zaimplementowany algorytm Mean-Shift jest modyfikacją standardowego filtru cząsteczkowego i umożliwia bardziej efektywną eksplorację przestrzeni stanów w trakcie śledzenia ruchu postaci ludzkiej. Celem zmniejszenia liczby zdegenerowanych cząstek, to znaczy cząstek które ulokowane są w obszarach 9

charakteryzujących się małymi wartościami prawdopodobieostw obserwacji, cząstki przemieszczane są do obszarów o większych wartościach prawdopodobieostw obserwacji za pomocą deterministycznego algorytmu przesunięcia do średniej (ang. mean-shift). W algorytmie Mean-Shift mając do dyspozycji punkt początkowy wyznacza się wektor przesunięcia w kierunku maksimum funkcji rozkładu prawdopodobieostwa, zob. Rys. 3. Wektor przesunięcia wyznaczany jest iteracyjnie w zdefiniowanym zawczasu otoczeniu aż długośd tego wektora nie spadnie poniżej pewnego progu. t-1 t Rys. 3 Algorytm Mean-Shift w dwóch kolejnych iteracjach Nowe pozycje cząstek są wyliczane na podstawie wag cząstek, które znajdują się w danym sąsiedztwie za pomocą wzoru: s i N s k k 0 N k 0 w w k k, (6) gdzie s i oznacza stan cząstki, dla której wyliczana jest nowa pozycja, a s k i w k oznaczają odpowiednio cząstki które znajdują się w kernelu s i oraz wagi tych cząstek. W algorytmie wykorzystywanym w 10

badaniach eksperymentalnych wartośd kernela została ustalona na 8. Wielkośd kernela w każdej kolejnej iteracji powinna byd mniejsza. Do wyliczenia aktualnej wielkości kernela można wykorzystad wzór: K i 0.75 K 0, (7) gdzie K oznacza wielkośd kernela w danej iteracji, K 0 początkowy kernel, a i jest numerem aktualnej iteracji. Zaimplementowany algorytm można przedstawid w następujący sposób: 1. Predykcja: przewidywanie stanów s t cząstek na podstawie s t-1 2. Powtarzaj 3. Wyliczenie wag: wyliczenie wag w t dla wszystkich cząstek za pomocą wzoru (1) 4. Normalizacja wag 5. Mean-Shift: ruch cząstek z wykorzystaniem wzoru (6) 6. Dopóki iteracja < max_iteracji 7. Wyliczenie wag: wyliczenie wag w t dla wszystkich cząstek za pomocą wzoru (1) 8. Normalizacja wag 9. Estymacja: wyznaczenie najlepszej cząstki 10. Resampling: losowanie cząstek na podstawie wag w i Filtr Mean-Shift pozwala na znaczna zmniejszenie ilości cząstek, które są potrzebne do skutecznego śledzenia ruchu postaci ludzkiej. Niestety odpowiednie ustawienie filtru jest zadaniem trudnym i wymaga wielu eksperymentów. W testach implementacji ustawiono ilośd iteracji na 3, a wielkośd kernela na 8. 1.1.5. Filtr cząsteczkowy z symulowanym wyżarzaniem 11

Filtr cząsteczkowy z symulowanym wyżarzaniem (ang. annealed particle filter) jest modyfikacją standardowego filtru cząsteczkowego. W opisywanym filtrze funkcja celu jest początkowo wygładzana, a w kolejnych iteracjach następuje stopniowe wyostrzanie funkcji. Dzięki takiemu podejściu cząstki stopniowo są kierowane w kierunku lokalnych maksimów funkcji. Wygładzenie funkcji jest realizowane poprzez modyfikację wzoru (1) pozwalającego na wyliczenie wagi. Zmodyfikowany wzór na wyliczanie wag cząstek ma następującą postad: w t 2 1 exp 1 f s t 2 a, (8) gdzie a oznacza współczynnik wyżarzania przyjmujący wartości z przedziału (0.1, 0.9). W kolejnych iteracjach wartośd współczynnika a jest zwiększana, co powoduje stopniowe zmniejszenie stopnia wygładzenia funkcji celu. Zaimplementowany algorytm można przedstawid w następujący sposób: 1. Predykcja: przewidywanie stanów s t cząstek na podstawie s t-1 2. Powtarzaj 3. Wyliczenie wag: wyznaczenie w t dla wszystkich cząstek za pomocą wzoru (8) 4. Normalizacja wag 5. Resampling: losowanie cząstek na podstawie wag w i 6. Ruch wylosowanych cząstek 7. Dopóki iteracja < max_iteracji 8. Wyliczenie wag: wyznaczenie w t dla wszystkich cząstek za pomocą wzoru (1) 9. Normalizacja wag 10. Estymacja: wyznaczenie najlepszej cząstki 11. Resampling: losowanie cząstek na podstawie wag w i 12

Filtr cząsteczkowy z symulowanym wyżarzaniem uzyskuje dobre wyniki w przypadku sekwencji wideo z dużą ilością klatek na sekundę (w pracy *2+ uzyskano dobre wyniki przy 60 klatkach na sekundę). Natomiast przy mniejszej ilości klatek uzyskuje on nieco słabsze wyniki. 4.2. Algorytm PSO na GPU W celu znacznego przyspieszenia obliczeo związanych z śledzeniem ruchu postaci ludzkiej zaimplementowano filtr PSO na GPU z wykorzystaniem technologii CUDA. Niestety ze względu na architekturę CUDA konieczne stało się zastosowanie synchronicznej wersji PSO, która jest mniej efektywna w przeszukiwaniu wielowymiarowej przestrzeni stanu. Różnice w skuteczności śledzenia wynikają z kolejności w jakiej są wykonywane poszczególne kroki algorytmu. W przypadku wersji synchronicznej PSO, najpierw następuje wyliczenie nowych pozycji wszystkich cząstek i dopiero wtedy wyliczana jest najlepsza uzyskana pozycja dla wszystkich cząstek (najlepsza konfiguracja postaci ludzkiej). W algorytmie asynchronicznym PSO po wyliczeniu każdej z cząstek następuje aktualizacja najlepszej uzyskanej pozycji (najlepszej uzyskanej konfiguracji postaci ludzkiej). Zaimplementowany synchroniczny algorytm PSO można przedstawid w następujący sposób: 1. Funkcja y ˆ PSO( ) 2. Inicjalizuj x, v 3. y = x, ( y) arg min f ( x) 4. Powtarzaj f x 5. Uaktualnij prędkośd wszystkich cząstek v i za pomocą wzoru (2) lub (3) 6. Uaktualnij pozycję wszystkich cząstek x i za pomocą wzoru (5) 7. If f y ) f ( x ), uaktualnij najlepszą lokalną pozycję cząstki y i xi ( i i 8. If f ( yˆ) f ( xi ), uaktualnij najlepszą globalną pozycję cząstek ŷ xi 9. Dopóki iteracja < max_iteracji 13

Pomimo mniejszej skuteczności synchronicznego algorytmu PSO w śledzeniu ruchu postaci ludzkiej jest on wart zainteresowania, ponieważ jego implementacja na GPU pozwala na znaczne przyspieszenie obliczeo. 5.Analiza i interpretacja wyników Eksperymenty przeprowadzono na 40 kolejnych klatkach sekwencji wideo zarejestrowanej w jednym z domów studenckich. Obrazy wejściowe miały rozdzielczośd 720x576 pikseli i były rejestrowane z szybkością 6fps. Niska częstotliwości rejestrowanych obrazów wejściowych była dodatkowym czynnikiem utrudniającym śledzenie przez prezentowane filtry. Pomiary wykonano na laptopie Lenovo Y530 wyposażonym w dwurdzeniowy procesor o taktowaniu 2.0 GHz. Przeprowadzone zostały także testy śledzenia ruchu postaci ludzkiej wygenerowanej przy pomocy programu Blender. Śledzenie tak przygotowanej postaci przez filtr PSO również było prawidłowe. Na Rys. 4 zaprezentowano dwie klatki z badanej sekwencji wideo. W prawym dolnym rogu obrazów umieszczono modele, które były porównywane przez system symulacyjny z obrazami wygenerowanym na podstawie danych z poszczególnych filtrów. Model po lewej stronie jest modelem wygenerowanym przez system symulacyjny (zob. także Rys. 2), natomiast model po prawej jest modelem postaci ludzkiej, którą wygenerowano w programie Blender. 14

Rys. 4 Przykładowe klatki badanej sekwencji wideo z nałożonym modelem. W prawym dolnym rogu obrazów znajdują się obrazy, które były porównywane z obrazami generowanymi przez filtry 5.1. Porównanie filtrów do śledzenia ruchu postaci ludzkiej W Tabeli 1 przedstawiono średnie czasy obliczeo (kolumna 4) oraz średnie wyniki pokrycia się obrazu odniesienia z obrazem wygenerowanym na podstawie konfiguracji modelu 3D wyznaczonej przez filtr (kolumna 3). Zdecydowanie najlepsze wyniki uzyskuje filtr cząsteczkowy z algorytmem roju. Filtr ten uzyskuje zadowalające wyniki śledzenia ruchu postaci ludzkiej już przy wykorzystaniu 200 cząstek i 10 iteracjach, a jedna klatka przetwarzana jest w czasie 2.46s. Podobne rezultaty czasowe uzyskuje standardowy algorytm roju. Pozostałe przebadane filtry uzyskują już znacznie gorsze rezultaty czasowe oraz uzyskanego średniego pokrycia. Zgodnie z przewidywaniami zdecydowanie najgorzej wypada standardowy filtr cząsteczkowy, który potrzebuje bardzo dużej ilości cząstek do śledzenia ruchu postaci ludzkiej. Nawet przy zastosowaniu 20000 cząstek uzyskane wyniki pokrycia się obrazów są znacznie gorsze niż w przypadku filtru cząsteczkowego z zaimplementowanym algorytmem roju. Na uwagę zasługują także filtr Mean-Shift oraz filtr cząsteczkowy z symulowanym wyżarzaniem, które śledzą ruch postaci ludzkiej w czasie odpowiedni 3.5s oraz 5.6s. Jednak podobnie jak w przypadku standardowego filtru cząsteczkowego jest to śledzenie dużo mniej dokładne niż w przypadku filtru cząsteczkowego z algorytmem roju. 15

Tabela 1 Skuteczność śledzenia postaci ludzkiej przez filtr cząsteczkowy (PF), algorytm roju (PSO), filtr cząsteczkowy z algorytmem roju (PSO+PF), filtr Mean-Shift (KPF) oraz filtr z symulowanym wyżarzaniem (APF) #cząstki #it pokrycie [%] czas [s] 20000 0.75 22.92 PF 10000 5000 0.74 0.73 11.39 5.69 2000 0.67 2.71 1000 10 0.83 12.45 500 10 0.80 6.20 PSO 200 1000 10 5 0.76 0.81 2.49 6.79 500 5 0.78 3.40 200 5 0.76 1.36 1000 10 0.83 12.63 500 10 0.82 6.24 PSO+PF 200 1000 10 5 0.80 0.82 2.50 6.90 500 5 0.81 3.41 200 5 0.78 1.36 KPF 2000 1000 3 3 0.76 0.74 7.26 3.50 2000 10 0.79 22.38 APF 1000 10 0.78 11.16 500 10 0.75 5.60 16

Na Rys. 5 przedstawiono wyniki pokrycia uzyskanego przez poszczególne filtry w kolejnych klatkach sekwencji wideo. Rys. 5 Pokrycie obrazów referencyjnych z obrazami wygenerowanymi na podstawie konfiguracji wyestymowanej przez filtry w kolejnych klatkach sekwencji wideo. PF - filtr cząsteczkowy, PSO - algorytm roju, PSO+PF - filtr cząsteczkowy z algorytmem roju, KPF - filtr Mean-Shift, APF - filtr z symulowanym wyżarzaniem Na Rys. 5 można zaobserwowad jak zmienia się skutecznośd śledzenia w poszczególnych klatkach sekwencji wideo. W klatkach #13, #25 i #38 następuje spadek uzyskiwanego przez poszczególne filtry pokrycia, jest to spowodowane szybszym ruchem postaci ludzkiej w wymienionych klatkach, przez co postad śledzona jest mniej dokładnie. Zdecydowanie najlepiej z takim zmianami radzą sobie filtry wykorzystujące algorytm PSO. Pozwalają one na uzyskanie dokładnego śledzenia podczas całej sekwencji wideo. 17

5.2. Algorytm PSO na GPU W Tabeli 2 przedstawiono porównanie czasów obliczeo dla algorytmu PSO zaimplementowanego na CPU oraz na GPU. Obliczenia dla algorytmu zaimplementowanego na GPU zostały przeprowadzone na dwóch różnych kartach: GeForce GT 130M i GeForce GTX 280. Pierwsza z kart była wyposażona w 4 multiprocesory taktowane zegarem 1.5GHz, z których każdy miał 8 rdzeni, oraz 512MB RAM. Druga z kart miała 30 multiprocesorów taktowanych zegarem 1.3GHz, z których każdy miał 8 rdzeni, oraz 1GB RAM. Implementacja algorytmu PSO na GPU pozwoliła na uzyskanie ponad 15 krotnego przyspieszenia obliczeo w przypadku karty GTX 280. Na karcie w laptopie (GT 130M) uzyskano ponad dwukrotne przyspieszenie. Tabela 2 Średni czas obliczeń pojedynczej klatki sekwencji wideo [sek.] CPU GT 130M GTX 280 #4000, 10 it. 48.89 20.35 2.94 #2000, 10 it. 24.51 10.06 1.49 #1000, 10 it. 12.28 5.26 0.75 #500, 10 it. 6.12 2.65 0.39 #4000, 5 it. 26.74 11.19 1.59 #2000, 5 it. 13.38 5.52 0.81 #1000, 5 it. 6.68 2.87 0.41 #500, 5 it. 3.34 1.45 0.22 Ze względu na architekturę CUDA, zaimplementowano synchroniczną wersją PSO, która jest mniej efektywna w śledzeniu ruchu postaci ludzkiej niż wersja asynchroniczna. Porównanie efektywności śledzenia dla wersji asynchronicznej i synchronicznej przedstawiono w Tabeli 3. 18

Tabela 3 Średnie pokrycie uzyskane przez asynchroniczny i synchroniczny algorytm PSO PSO PSO asynchroniczny synchroniczny #2000, 10 it. 0.85 0.80 #1000, 10 it. 0.83 0.79 #500, 10 it. 0.80 0.78 #2000, 5 it. 0.82 0.80 #1000, 5 it. 0.81 0.78 #500, 5 it. 0.78 0.75 Pomimo mniejszej skuteczności synchronicznego algorytmu PSO, jest on wart zainteresowania, ponieważ jego implementacja na GPU pozwala na uzyskanie bardzo dużych przyśpieszeo (w naszym przypadku jest to przyspieszenie ponad piętnastokrotne). Warto nadmienid, że można uzyskad jeszcze większe przyspieszenie obliczeo poprzez zastosowanie specjalizowanych kart obliczeniowych takich jak np. nvidia Tesla. 6.Podsumowanie W ramach Zadania 2.2 przetestowano szereg różnych filtrów pod kątem skuteczności śledzenia ruchu postaci ludzkiej. Przeprowadzone badania wykazały, że najskuteczniejsze w omawianym zastosowaniu są filtry cząsteczkowe oparte na algorytmie PSO. Takie filtry pozwalają uzyskad najlepsze efektywności śledzenia, a także czasy estymacji konfiguracji postaci ludzkiej. W pracy w szczególności przebadano filtr 19

hybrydowy PSO+PF, który nie był do tej pory wykorzystywany w pracach związanych ze śledzeniem ruchu postaci ludzkiej. Filtr ten został porównany z innymi filtrami cząsteczkowymi. Uzyskano znacznie lepsze wyniki skuteczności śledzenia oraz czasy obliczeo *8,9+. W badaniach eksperymentalnych najlepsze wyniki uzyskano dla filtrów zbudowanych w oparciu o kąty Eulera. Eksperymenty zrealizowano na rzeczywistych obrazach dla różnych konfiguracji filtrów cząsteczkowych. Czasy obliczeo na GPU są około piętnastu razy krótsze w porównaniu do czasów obliczeo na CPU. W literaturze brak jest wzmianki odnośnie wykorzystania GPU do śledzenia ruchu postaci ludzkiej. Literatura [1] Poppe, R.: Vision-based human motion analysis: an overview. Computer Vision and Image Understanding 108 (2007) 4-18. [2] Deutscher, J., Blake, A., Reid, I.: Articulated body motion capture by annealed particle filtering, IEEE Int. Conf. on Pattern Recognition, 2000, 126 133. [3] Schmidt, J., Fritsch, J., Kwolek, B.: Kernel particle filter for real-time 3D body tracking in monocular color images, IEEE Int. Conf. on Automatic Face and Gesture Rec., 2006, 567-572. [4] Sigal, L., Bhatia, S., Roth, S., Black, M.J., Isard, M.: Tracking loose-limbed people, IEEE Int. Conf. on Computer Vision and Pattern Recognition, 2004, vol. 1, 421 428. [5] Sidenbladh, H., Black, M. Fleet, D.: Stochastic tracking of 3D human figures using 2D image motion. In: Europen Conference on Computer Vision (2000) 702-718. [6] Rosales, R., Siddiqui, M., Alon, J., Sclaroff, S.: Estimating 3d body pose using uncalibrated cameras, Int. Conf. on Computer Vision and Pattern Recognition, 2001, 821 827. [7] Ivekovic, S., Trucco, E., Petillot, Y.R.: Human body pose estimation with particle swarm optimisation. Evolutionary Computation 16 (2008) 509-528. [8] Krzeszowski, T., Kwolek, B., Wojciechowski, K.: Articulated Body Motion Tracking by Combined Particle Swarm Optimization and Particle Filtering, Int. Conf. on Computer Vision and Graphics, Lecture Notes in Computer Science, Springer 2010 (przyjęta). 20

[9] Krzeszowski, T., Kwolek, B., Wojciechowski, K.: GPU-Accelerated Tracking of the Motion of 3D Articulated Figure, Int. Conf. on Computer Vision and Graphics, Lecture Notes in Computer Science, Springer 2010 (przyjęta). 21