Computer vision · R&D
jumpsight
Analiza skoku łyżwiarskiego z jednego nagrania z telefonu – każda liczba podawana jest razem z tym, jak bardzo system jest jej pewien.
Prywatne repozytorium · prezentacja na życzenie
- ±0.54błąd obrotów na 1705 skokach (MMFS)
- 91%rozpoznany Axel (FS-Jump3D)
- ±0.5–1klatek przy lądowaniu, klip kontrolny
- ~13 sna klip na CPU, pierwsze wyniki po ~2 s
Problem
Trenerzy nagrywają zwykłymi telefonami: 30 fps, kompresja, często przesyłane dalej przez Telegram. Skok trwa około pół sekundy, a jeden obrót to mniej więcej cztery klatki, więc większość liczb jest na granicy tego, co zawiera nagranie. System musi zmierzyć, co może, i jasno powiedzieć, czego nie może.
Jak to działa
- 01
Sprawdzenie i dekodowanie
Prawdziwe znaczniki czasu klatek (telefony nagrywają ze zmienną liczbą klatek), bitrate, szybki przebieg 360×640 po całym klipie i ścieżka audio z dźwiękiem lądowania.
- 02
Wykrywanie i śledzenie
YOLOX-tiny na co trzeciej klatce, śledzenie IoU i stabilizacja tła utrzymują jedną łyżwiarkę w kadrze, gdy telefon się porusza.
- 03
Znalezienie prób
Kinematyka ramki ciała i balistyczna parabola wskazują, gdzie łyżwiarka odrywa się od lodu. Podobnie wyglądające spirale i podnoszenia są odrzucane z podaniem powodu.
- 04
Poza w każdej klatce
RTMPose-m działa na oknach w pełnej rozdzielczości wokół każdej próby i zwraca stawy, które mierzy reszta potoku.
- 05
Czas, obroty, rodzaj
Odbicie i lądowanie wynikają z granicy balistycznej wokół szczytu. Obroty liczą dwa niezależne kanały. Drzewo reguł, odbite lustrzanie dla kierunku, nazywa skok.
- 06
Raport, który przyznaje się do ograniczeń
Każda wartość to obiekt z przedziałem 68%, poziomem i statusem. To, czego nie da się zmierzyć, wraca jako "absent" z powodem czytelnym dla maszyny, nigdy jako prawdopodobny strzał.
Znane ograniczenia
- W skokach ząbkowych odbicie może zostać odczytane do dwóch klatek za wcześnie: puszczenie ząbka jest niewidoczne na wysokości kostki. Nagrywanie w 60 fps to naprawia.
- Przy około siedmiu obrotach na sekundę i 30 fps liczenie obrotów może ulec aliasingowi. System wtedy odmawia z AZIMUTH_ALIASING_SUSPECT zamiast zgadywać.
- Lutz i flip różnią się krawędzią łyżwy, której skompresowane wideo 30 fps często nie pokazuje (76,5% dla tej pary).