Śledzenie punktów w wideo pozwala sprawdzić, jak wybrane miejsca w obrazie przemieszczają się między klatkami. Model TAPNext++ wyznacza ich położenie i szacuje widoczność, również wtedy, gdy punkt znika za przeszkodą, a później pojawia się ponownie. W badaniach takie śledzenie nazywa się Tracking Any Point, w skrócie TAP.[1]

W demo na stronie można przyjrzeć się skokowi konia przez przeszkodę i obrotom tancerza breakdance. Kolorowe punkty i smugi pokazują ruch, który w zwykłym nagraniu łatwo przeoczyć. Możesz zatrzymać obraz, zaznaczyć jego fragment i porównać dwa sposoby przedstawienia torów.

Otwórz demo „Tory ruchu” →

Co właściwie śledzi AI?

Wyobraź sobie, że wskazujesz miejsce przy siodle. Interesuje cię, gdzie ten sam fragment obrazu znajdzie się chwilę później. Model próbuje odnaleźć ten sam punkt w kolejnych klatkach nagrania. Sam prostokąt otaczający konia nie dostarczyłby równie szczegółowej informacji o ruchu poszczególnych miejsc.

TAPNext++ rozwija wcześniejszy model TAPNext. Autorzy pracowali między innymi nad śledzeniem punktów w dłuższych nagraniach i odnajdywaniem ich po zasłonięciu. W pracy opisują trening na sekwencjach liczących 1024 klatki. Model może jednak błędnie ocenić położenie punktu, którego w danej chwili nie widać. Na stronie projektu pokazano również taki nieudany przykład.[1]

Kod i wagi modelu są udostępnione w repozytorium TAP prowadzonym przez Google DeepMind. Modele z rodziny TAPNext przetwarzają nagranie klatka po klatce, wykorzystując informacje z wcześniejszych obrazów. W moim demo oglądasz gotowe wyniki tych obliczeń.[2]

Ruch konia czy ruch kamery?

Kamera podąża za koniem. Przez to przesuwają się także drzewa, ogrodzenie i przeszkoda. W widoku „Na ekranie” smugi pokazują kolejne położenia punktów bez korygowania tego wpływu. To zapis ruchu tak, jak pojawia się on w obrazie.

„Na ekranie”: smugi obejmują również wpływ ruchu kamery. Nagranie bez dźwięku.

W widoku „W przestrzeni” położenia punktów są przeliczane z uwzględnieniem ruchu tła. Dzięki temu łatwiej przyjrzeć się samemu skokowi, bo ruch kamery mniej wpływa na kształt smug. Pomysł pochodzi z notatnika TAPIR „rainbow”. Ruch tła jest w nim opisywany za pomocą homografii, czyli przekształceń obrazu, wyznaczanych metodą RANSAC.[3]

„W przestrzeni”: tory po uwzględnieniu ruchu kamery, nadal w obrazie 2D. Nagranie bez dźwięku.

Nazwa tego widoku nie oznacza rekonstrukcji 3D. Homografia opisuje przekształcenie między płaszczyznami. Przybliżenie sprawdza się między innymi przy płaskim tle lub obrocie kamery wokół jej środka projekcji. Gdy kamera zmienia położenie w scenie, a elementy tła leżą na różnych głębokościach, jedno takie przekształcenie może nie opisać ich ruchu dokładnie.[4] Ten widok pomaga więc przyjrzeć się nagraniu. Nie wystarcza do dokładnego pomiaru ruchu w trzech wymiarach.

Drugi przykład: obroty tancerza

W nagraniu breakdance nogi zataczają łuki, tułów zmienia położenie, a poszczególne części ciała chwilami zasłaniają się nawzajem. Warto zatrzymać obraz i zaznaczyć punkt na nodze: jego tor wygląda inaczej niż tor punktu na dłoni opartej o podłoże. To dobry przykład do porównania z ruchem konia.

Drugi przykład obejmuje pierwsze 60 klatek sekwencji breakdance ze zbioru DAVIS. Nagranie wybierzesz w polu nad obrazem w demo.[5]

Jak korzystać z demo „Tory ruchu”?

  1. Wybierz nagranie nad obrazem. Skok konia i breakdance pokazują różne rodzaje ruchu.
  2. Porównaj oba widoki. Przyjrzyj się tej samej chwili nagrania i zobacz, jak zmieniają się smugi.
  3. Zatrzymaj odtwarzanie. Suwakiem wybierz klatkę, a przyciskami przechodź po jednej klatce.
  4. Zaznacz fragment obrazu. Przeciągnij palcem albo myszą. Linia ciągła pokazuje wcześniejszą część toru, a przerywana — późniejsze położenia w tym samym nagraniu.
  5. Zmień długość smugi i granicę obiekt/tło. Zobaczysz, jak ustawienia wpływają na czytelność i liczbę wyróżnionych punktów.

Przerywana linia nie jest prognozą przyszłości. Pokazuje dalszy fragment filmu, który został już przeanalizowany. Zaznaczanie działa też z klawiatury: po przejściu do obrazu strzałki przesuwają pędzel, Enter zaznacza punkty, a Escape usuwa zaznaczenie.

Co liczy model, a co robi przeglądarka?

Dane nagrania ze skokiem konia zawierają 1932 tory punktów i 50 klatek obrazu o wymiarach 854 × 480 pikseli. Punkty początkowe rozmieszczono co 20 pikseli na trzech klatkach. Przy domyślnej granicy 60% do obiektu przypisane są 104 punkty. Te liczby wynikają z pliku danych, który można obejrzeć bezpośrednio.

W nagraniu z tancerzem model wyznaczył 984 tory punktów na 60 klatkach o tych samych wymiarach. Siatka ma rozstaw 24 pikseli, a punkty początkowe wyznaczono na klatkach 0, 20 i 40. Przy domyślnym ustawieniu do obiektu przypisanych jest 121 punktów. Te dane również można sprawdzić w pliku nagrania.

Przeglądarka wczytuje gotowe klatki i dane wybranego nagrania, a następnie rysuje tory na elemencie canvas. Plik z torami skoku konia zajmuje około 678 KB. Reaguje na wybór punktów oraz zmianę ustawień. Nie uruchamia modelu TAPNext++ na urządzeniu osoby odwiedzającej stronę. Dzięki temu można oddzielić przygotowanie analizy od sposobu jej pokazania na stronie.

Dlaczego interesuje mnie takie wykorzystanie AI?

Podoba mi się możliwość zajrzenia do nagrania trochę głębiej. Zwykłe wideo pokazuje zdarzenie, a interaktywna wizualizacja pozwala zatrzymać się przy szczególe i samodzielnie go prześledzić. Widzę w tym pomysł na materiały edukacyjne, prezentacje sposobu działania produktu czy eksperymenty z grafiką podążającą za wybranym miejscem w obrazie. W tych kierunkach chciałbym dalej rozwijać podobne eksperymenty.

Warto przy tym oglądać wynik uważnie. Autorzy notatnika „rainbow” zaznaczają, że błędy śledzenia tła mogą sprawić, iż jego punkty zostaną uznane za część poruszającego się obiektu. Wynik zależy też od ustawień, według których punkty są przypisywane do obiektu lub tła.[3] Suwak w demo dobrze pokazuje, ile interpretacji kryje się w pozornie prostym podziale na obiekt i tło.

Więcej takich eksperymentów znajdziesz w zakładce Motion design. Jeżeli masz nagranie, którego ruch chcesz pokazać w ciekawszy sposób, napisz do mnie — możemy sprawdzić, czy podobna wizualizacja będzie w nim przydatna.

Czytaj też

Źródła

  1. TAPNext++: What's Next for Tracking Any Point (TAP)? — strona projektu, opis metody, treningu i przykładów, także nieudanych.
  2. Google DeepMind, repozytorium Tracking Any Point — kod i wagi modeli oraz opis rodziny TAPNext.
  3. Google DeepMind, notatnik TAPIR rainbow — korekta wpływu kamery, podział obiekt/tło i ograniczenia wizualizacji.
  4. OpenCV, Basic concepts of the homography explained with code — geometria i założenia homografii.
  5. DAVIS, przegląd nagrań DAVIS 2016 oraz opis i publikacja dotycząca zbioru.

Nagrania: horsejump-high i breakdance ze zbioru DAVIS. Parametry i liczby pochodzą z plików danych skoku konia i breakdance. Model i udostępniony komponent mają oznaczenie licencji Apache 2.0; plik licencji jest dołączony do demo.