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 p.2/22
Pole ruchu a przepływ optyczny pole ruchu (motion field) rzut trójwymiarowych wektorów ruchu na płaszczyznę obrazu; zawiera informacje o składowej wektora ruchu równoległej do płaszczyzny obrazu; brak informacji o składowej prostopadłej do płaszczyzny obrazu. przepływ optyczny (optical flow) pole wektorowe zawierajace informacje umożliwiajace przekształcenie jednego obrazu w drugi przez przesunięcie obszarów z pierwszego obrazu w drugi; nie jest jednoznacznie określony. MW: SyWizE p.3/22
Problemy estymacji przepływu problem szczelinowy (aperture problem) błędne określenie ruchu w przypadku lokalnych zmian jasności obrazu o jednowymiarowym charakterze jednolita barwa lub przezroczystość brak tekstury - ruch obiektu może zostać niezauważony zmienne oświetlenie pozorne ruchy zwiazane z przesuwaniem się cieni na powierzchni obiektów lub przemieszczenia się gradientów jasności; remedium - kompensacja oświetlenia lub wykorzystanie odcienia w przestrzeni HSV zachodzenie obiektów na siebie zanikanie, pojawianie się lub iluzja zmiany obiektów poruszajacych się na obrazie; specyficzne teksturowanie zmiany jasności na obiekcie wzdłuż jednego kierunku prowadza do utratu informacji o ruchu. MW: SyWizE p.4/22
Metody detekcji i śledzenia ruchu różnicowe umożliwiajacedetekcję i śledzenie ruchu dzięki różnicom pomiędzy następujacymi klatkami, korelacyjne przeszukujace obraz w poszukiwaniu dopasowania regionów, gradientowe opierajace się na wyznaczeniu pochodnych czasowych i przestrzennych obrazu, częstotliwościowe oparte na filtrach operujacych w dziedzinie częstotliwości. MW: SyWizE p.5/22
Metody różnicowe MW: SyWizE p.6/22
Historia ruchu MW: SyWizE p.7/22
Metody korelacyjne MW: SyWizE p.8/22
Diamond Search MW: SyWizE p.9/22
Założenia metod gradientowych jasność niezmienna w czasie ruchu I(x,y,t) = I(x+δ x,y+δ y,t + δ t ) niewielkie przesunięcia pomiędzy klatkami spójność przestrzenna MW: SyWizE p.10/22
Założenia metod gradientowych I(x,y,t) obraz 2D + t przy założonej stałej jasności punktu na scenie mamy: I x Warunek przepływu: dx dt + I y di dt = 0 I x u+i y v+i t = 0 ; I dy dt + I t = 0 [ u v ] = I t MW: SyWizE p.11/22
Lucas Kanade 1D MW: SyWizE p.12/22
Lucas Kanade 1D iteracyjnie MW: SyWizE p.13/22
Lucas Kanade 2D Warunek przepływu dla jednego punktu: I x u+i y v+i t = 0 ; I [ u v ] = I t daje tylko tzw. przepływ normalny (składowa równoległa do gradientu jasności) MW: SyWizE p.14/22
Problem szczelinowy MW: SyWizE p.15/22
Lucas Kanade dla otoczenia Rozważajac otoczenie punktu otrzymujemy nadmiarowy układ równań Aw = b: I x (p 1 ) I y (p 1 ) I x (p 2 ) I y (p 2 ).. I x (p 9 ) I y (p 9 ) [ u v ] = I t (p 1 ) I t (p 2 ). I t (p 9 ) który można rozwiazać minimalizujac bład średniokwadratowy: min Aw b 2 (A T A)w = A T b Warunek: odwracalność A T A. [ u v ], = (A T A) 1 A T b. MW: SyWizE p.16/22
Punkty dobre do śledzenia (Harris) Macierz autokorelacji: [ ] [ ] [ I x I y ] A T A = I 2 x I x I y I x I y I 2 y = I x I y = I( I) T jest nieosobliwa jeśli ma dwie duże wartości własne, co oznacza, że w otoczeniu punktu występuja wyraźne zmiany jasności w dwóch różnych kierunkach. Punktami dobrze nadajacymi się do śledzenia ruchu sa narożniki, ale nie krawędzie. Dla wektora I: ( I( I) T ) I =(n I( I) T ) I = n I(( I) T I)=(n I 2 ) I a dla wektora E stycznego do krawędzi (prostopadłego do I): ( I( I) T )E = 0 MW: SyWizE p.17/22
Dekompozycja piramidalna Potencjalne przyczyny błędnego działania metody: niestałość oświetlenia (jasności punktów na scenie) punkt nie porusza się wraz z całym sasiedztwem (zbyt duże okno?) zbyt duży zakres ruchu (przesunięcia nie powinny przekraczać 1-2 pikseli) Rozwiazanie: zmniejszyć rozdzielczość! MW: SyWizE p.18/22
Dekompozycja piramidalna MW: SyWizE p.19/22
Horn Schunck Warunek przepływu: e c = ZZ (I x u+i y v+i t ) 2 dydx Warunki gładkosci: e s = ZZ u 2 + v 2 dydx lub: e s = ZZ ( 2 u) 2 +( 2 v) 2 dydx Polioptymalizacja (α 2 - stała regularyzacji): min(e c + α 2 e s ) MW: SyWizE p.20/22
Horn Schunck Rozwiazanie zadania wariacyjnego: Przybliżaj od ważonej średniej jego s I x (I x u+i y v+i t ) α 2 2 u = 0 I y (I x u+i y v+i t ) α 2 2 v = 0 ac laplasjan przez odchylenie punktu centralnego u(x, y) asiadów u(x, y): otrzymujemy algorytm iteracyjny: 2 u(x,y) u(x,y) u(x,y) u k+1 = u k I x(i x u k + I y v k + I t ) α 2 + I 2 x + I 2 y v k+1 = v k I y(i x u k + I y v k + I t ) α 2 + I 2 x + I 2 y MW: SyWizE p.21/22
Implementacja w OpenCV Lucas Kanade: { imga = cvloadimage(..); imgb = cvloadimage(..);... cvgoodfeaturestotrack(imga,.., cora,..); cvfindcornersubpix(imga,.., cora,..);... cvcalcopticalflowlkpyr(imga, imgb,.., cora, corb,..); } Horn Schunck: { imga = cvloadimage(..); imgb = cvloadimage(..);... cvcalcopticalflowhs(imga, imgb,.., velx, vely); } MW: SyWizE p.22/22