ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU Algorytmy śledzenia ruchu obiektów dr inż. Jacek Naruniec
Wprowadzenie Śledzenie ruchu Śledzenie punktu Metody deterministyczne Metody statystyczne (Kalman, filtry częsteczkowe, roje cząsteczek) Śledzenie kształtu Metody oparte na wzorcach Modele oparte na wielowidokowych modelach wyglądu Śledzenie sylwetki Dopasowywanie kształtu Ewolucja konturów Mean shift, CAMSHIFT 2
Wprowadzenie 3
Metody deterministyczne 2 2? 1 4 1 4?? 3 3? 4
Metody deterministyczne Operują na prostych założeniach specyfiki ruchu. Jest to zwykle podzbiór założeo: Pozycja obiektu nie zmienia się znacznie w przeciągu jednej dyskretnej chwili czasu Prędkośd i kierunek obiektu nie zmienia się znacząco w jednej chwili (gładkośd) Przy analizie zbioru punktów zakłada się, że prędkośd bliskich sobie obiektów jest podobna Odległości pomiędzy dwoma punktami są względnie stałe w obiektach 3D 5
Metody deterministyczne Możliwe założenia: Punkty mogą znikad i pojawiad się Punkty mogą zostad przysłonięte Analiza wymaga podania początkowych pozycji punktów 6
Metody deterministyczne Najprostsza minimalizowana funkcja kosztu: e( P k 1, n, P k, i, P k 1, m ) w d 1 P P k 1, n k 1, n P P k, i k, i P k, i P k, i P k 1, m P k 1, m w m 1 2 P P k 1, n k 1, n P P k, i k, i P k, i P k, i P k 1, m P k 1, m 1 2 gdzie P to wektor pomiędzy punktami n i i w k 1, npk, i chwilach czasu k-1 i k, w d to waga różnicy kierunku, w m to waga szybkości ruchu Jeśli punkt zostaje przysłonięty, to jego pozycja jest ekstrapolowana. Nie pozwala na pojawianie się/znikanie punktów *źródło: Salari Feature Point Correspondence in the Presence of Occlusion 7
Metody deterministyczne Rozwiązanie poprzez algorytm zachłanny 15 5 9 6 17 6 8 3 2 8
Metody deterministyczne Skuteczniejszy algorytm IPAN Trzy części algorytmu: Inicjalizacja Przetwarzanie kolejnych klatek obrazu Przetwarzanie koocowe Algorytm skutecznie radzi sobie z pojawianiem się i znikaniem punktów, przysłonięciami Ustawianie początkowych punktów wykonywane jest automatycznie Koszt połączeo wektorów jak poprzednio 9
Metody deterministyczne Inicjalizacja Wykonywana po zgromadzeniu 3 kolejnych klatek obrazu Analiza sąsiedztwa punktów drugiej klatki w pierwszej i trzeciej klatce Łączenie wektorów o najniższym koszcie Hipotezy sprawdzane w kierunkach do przodu i do tyłu Nie wszystkie punkty muszą zostad połączone *źródło: Tracking Feature Points: a New Algorithm + 10
Metody deterministyczne Przetwarzanie kolejnych klatek obrazu Analiza podobna jak przy inicjalizacji, zachowując utworzone wcześniej połączenia Punkty, które określone były dla F k-1 znikają Możliwośd wejścia nowych punktów *źródło: Tracking Feature Points: a New Algorithm + 11
Metody deterministyczne Poprawianie zgubionych trajektorii Przeprowadzane w dłuższym okresie czasu Analizowane są punkty o zgubionej trajektorii w większym otoczeniu *źródło: Tracking Feature Points: a New Algorithm + 12
Metody statystyczne Metody lokalizacji obarczone są błędami Predykcja ruchu także nie jest doskonała Algorytmy statystyczne dążą do estymacji pozycji obiektu zakładając niepewnośd modelu ruchu jak i pomiarów Zwykle dwuetapowa analiza: Predykcja na podstawie kilku poprzednich pozycji obiektu Korekcja na podstawie aktualnych pomiarów 13
Filtr Kalmana Estymacja stanu obiektu w procesie dynamicznym w dyskretnych chwilach czasu Założenie gaussowości rozkładu prawdopodobieostwa stanu systemu Proces opisany równaniem liniowym: i pomiarem: x k Ax k Bu w 1 k 1 k 1 z k Hx k v k chwila czasowa, w i v to szum predykcji i pomiaru. Są to zmienne niezależne o rozkładzie normalnym, zerowej średniej i kowariancji odpowiednio Q i R A macierz określająca stosunek aktualnego stanu do poprzedniego, z pominięciem pozostałych członów równania u, B dodatkowe parametry kontrolne modelu H analogicznie do A, tylko odnośnie pomiaru 14
Filtry cząsteczkowe Nie zakładają określonego rozkładu prawdopodobieostwa Jeśli nie można wyznaczyd równao filtru analitycznie, to prawdopodobieostwo stanu może byd reprezentowane poprzez losowo wybrany zbiór ważonych próbek Cząsteczkę definiuje się jako parę (x, π), gdzie xєr, a π w zakresie [0; 1+ jest wagą cząsteczki. Zbiór cząsteczek dobierany jest w ten sposób, aby waga i dowolnej cząsteczki odpowiadała prawdopodobieostwu rozkładu p(x) w punkcie x i. 15
Filtry cząsteczkowe Ponowne próbkowanie Splot z funkcją dynamiki Mnożenie przez obserwacje 16
Filtry cząsteczkowe 17 *źródło: J. MacCormick Stochastic Algorithms for Visual Tracking]
Filtry cząsteczkowe Wyznaczanie obrysu ramion i głowy Obrys reprezentowany przez krzywą sklejaną (spline) Prostopadle do kierunku krzywej znajdują się punkty kontrolne (cząsteczki) W prostopadłych do kierunku krzywej znajduje się wyniki pomiaru 18
Roje cząsteczek (PTO Particle Swarm Optimization) Także oparte na cząsteczkach Metoda wzoruje się na zachowaniu ptaków Można założyd, że stado poszukuje jedzenia i każdy z ptaków wie, jak blisko znajduje się celu Optymalna strategią stada będzie poruszanie się w kierunku tego ptaka, który znajduje się najbliżej pożywienia. W danym zagadnieniu cząsteczki reprezentują ptaki Cząsteczki posiadają własną pozycję i prędkośd i wagę 19
Roje cząsteczek Waga cząsteczki odpowiada bliskości pożywienia Metoda zakłada istnienie miary według których kierują się cząsteczki gbest - najlepszy globalny kierunek ruchu lbest najlepszy lokalny kierunek ruchu Algorytm: Losowo wybierz cząsteczki w obrazie Dopóki odpowiedni poziom funkcji kosztu nie zostanie osiągnięty: Uaktualnij pozycję punktu na podstawie wektora prędkości Uaktualnij wektor prędkości znając globalne i lokalne maksima: v i v i c r ( xˆ ) ( ˆ i xi c2r2 g x 1 1 i ) gdzie ω stała bezwładności, c 1 i c 2 określają stosunek wagi najlepszego kierunku lokalnego do globalnego, r 1 i r 2 to losowe wektory w zakresie [0..1] 20
Śledzenie punktu Metoda przepływu optycznego optical flow Zakłada ona, że luminancje pikseli odpowiadających sobie obiektów są niezmienne w kolejnych klatkach obrazu Podstawowa wersja algorytmu zaprojektowana była do śledzenia punktów. Dla każdego piksela znajdującego się w gęstym polu przepływu wyznacza się wektor przepływu (dx; dy) poprzez wyznaczenie rozwiązao równania Rozwiązania funkcji poszukiwane są w bliskim sąsiedztwie analizowanego punktu Metoda bardzo wrażliwa na szumy 21
Śledzenie punktu *źródło: B.Horn Determining Optical Flow + 22
Śledzenie kształtu Metody oparte na wzorcach Aktywne kształty, aktywne modele, aktywny wygląd, implicit Shape Model w okolicy danego obiektu - to już było Zwykle metody polegają na pobraniu informacji zlokalizowanego obiektu i dopasowanie tej informacji do kolejnej klatki obrazu 23
Śledzenie kształtu Informacje na podstawie których śledzony jest obiekt: Luminancje wszystkich pikseli Gradienty pikseli Histogram barw pikseli w oknie Wariancja, wartośd średnia 24
Śledzenie kształtu Najprostszy algorytm sprawdź różnicę luminancji prostokątów w każdym możliwym oknie Nieskuteczne ze względu na bardzo długi czas działania 25
Śledzenie kształtu Miara korelacji: Innymi słowy filtracja obrazu za pomocą danego wzorca 4 2 6 4 1 5 3 2 3 4 2 6 4 3 5 3 2 3 Konieczne przesunięcie wektorów o wartośd średnią wzorca Metoda podobna do Hit&Miss 26
Śledzenie kształtu Problem zmian intensywności pikseli Może wynikad z pojawieniem się nowego źródła światła, dostosowaniu czasu naświetlania kamery, itp. Kompensacja zmian oświetlenia Zastosowanie gradientu obrazu Normalizacja obrazu w( x, y) w( x, y) w 27
Śledzenie kształtu Możliwe ulepszenia systemu: Założenia o specyfice obiektu: Prędkości ruchu, gładkości, itp. W celu uniewrażliwienia się na tło - dopasowanie kształtu okna do kształtu obiektu 28
Śledzenie kształtu Problemy metod przepływu optycznego: Wrażliwośd na zmiany oświetlenia Błąd akumulacji dryftu Duża wrażliwośd na szumy Rozwiązania analityczne oparte na gradientach pikseli Metoda bardzo prosta 29
Śledzenie kształtu Rozszerzenie przepływu optycznego do prostokątnych obszarów metoda KLT (Kanade, Lee, Tomasi) Algorytm minimalizuje błąd SSD: 1+2w x 1+2w y d 30
Śledzenie kształtu KLT implementacja na piramidzie obrazów Znacznie przyspiesza działanie procesu dając dokładne wyniki 31
Śledzenie kształtu Algorytm KLT: 1. Wyznacz położenie punktu na najmniejszym obrazie piramidy 2. Wyznacz położenie punktu na wyższym poziomie piramidy poprzez wymnożenie parametrów przez 2 (u*2) 3. Doprecyzuj położenie okna na danym poziomie piramidy 4. Powtarzaj punkty 2-3 do momentu osiągnięcia najwyższego poziomu piramidy Rozmiar okna jest stały na wszystkich poziomach piramidy W celu uniknięcia dużej akumulacji błędu dryftu stosuje się podpikselową dokładnośd 32
Śledzenie kształtu Podpikselową dokładnośd otrzymuje się poprzez bilinearną interpolację: gdzie x i y to liczby rzeczywiste (nie całkowite), x 0 i y 0 to częśd całkowita x i y, natomiast α x i α y to pozostała częśd w zakresie [0..1] Wartośd piksela w obrazie I(x, y) w danym stopniu piramidy L: 33
Śledzenie kształtu KLT: Wybór dobrych punktów do śledzenia można przeprowadzid np. poprzez analizę wartości własnych macierzy Hessianu Bardzo skuteczne, szybkie implementacje Działa w czasie rzeczywistym Odporna na szumy Dobry opis algorytmu: J. Bouguet Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm 34
Śledzenie kształtu Blokowa estymacja ruchu Używane przede wszystkim w kompresji wideo Three step search: -7 0 +7-7 0 +7 *źródło: M.Jakubowski Selected Motion Estimation Algorithms Comparison + 35
Śledzenie kształtu Diamond search Nieograniczona ilośd kroków Poszukuje lokalnego minimum w okolicy punktu -7 0 +7-7 0 +7 *źródło: M.Jakubowski Selected Motion Estimation Algorithms Comparison + 36
Śledzenie kształtu Uproszczenie wykorzystanie obrazu całkowego Zamiast odejmowad wartośd każdego piksela można odejmowad wartości średnie Znaczny wzrost szybkości algorytmu Nieco gorsze wyniki Zastosowanie zależne od aplikacji 37
Mean shift Algorytm iteracyjny Pozwala na znalezienie lokalnych maksimów rozkładu gęstości punktów W algorytmie otrzymuje się początkową pozycję (estymatę) punktu oraz pewną funkcję jądra K np. gaussowską Punkt przesuwa się do średniej punktów w otoczeniu danego punktu: m( x) x i x i N ( x) N ( x) K( x i K( x i x) x x) i 38
Mean shift uproszczony przykład (bez wag) Punkty zainteresowania Klasyfikacja punktów w otoczeniu estymaty w punktach zainteresowania Przesunięcie punktu do średniej punktów w otoczeniu... Stabilizacja punktu = zakończenie algorytmu. 39
CAMSHIFT Rozszerzenie algorytmu mean-shift Mean shift zakłada stałą wielkośd okna analizy CAMSHIFT opiera się na prawdopodobieostwie koloru (np. skóry) Zerowy moment obszaru rozkładu obszar rozkładu znaleziony w oknie poszukiwao Zakłada zmienną wartośd jądra oraz zmienną wielkośd okna analizy 40
CAMSHIFT Algorytm: 1. Wybierz początkową pozycję okna poszukiwao 2. Wybierz początkową wielkośd okna analizy (np. 3 piksele) 3. Wykonaj algorytm mean-shift 4. Ustal wielkośd okna w zależności od funkcji zerowego momentu rozkładu 5. Powtarzaj kroki 3 i 4 do uzyskania stabilizacji średniej W przypadku analizy na żywo z kamery można pominąd krok 5. 41
CAMSHIFT 42
CAMSHIFT 43