Śledzenie pozycji piłki w chmurze za pomocą PGA TOUR | Usługi internetowe Amazona

Śledzenie pozycji piłki w chmurze za pomocą PGA TOUR | Usługi internetowe Amazona

Węzeł źródłowy: 3057379

PGA TOUR w dalszym ciągu poprawia jakość gry w golfa dzięki danym w czasie rzeczywistym, które przybliżają fanów do gry. Aby zapewnić jeszcze bogatsze doświadczenia, pracują nad systemem śledzenia pozycji piłki nowej generacji, który automatycznie śledzi pozycję piłki na greenie.

TOUR korzysta obecnie z ShotLink obsługiwanego przez CDW, najlepszego systemu punktacji, który wykorzystuje złożony system kamer z obliczeniami na miejscu, aby dokładnie śledzić pozycję początkową i końcową każdego strzału. Celem projektu TOUR było zbadanie technik widzenia komputerowego i uczenia maszynowego (ML) w celu opracowania opartego na chmurze potoku nowej generacji umożliwiającego lokalizowanie piłek golfowych na greenie.

Centrum innowacji Amazon Generative AI (GAIIC) wykazało skuteczność tych technik na przykładowym zestawie danych z niedawnego wydarzenia PGA TOUR. W projekcie GAIIC zaprojektowano modułowy potok łączący kaskadowo serię głębokich splotowych sieci neuronowych, które skutecznie lokalizują graczy w polu widzenia kamery, określają, który gracz rzuca, i śledzą piłkę poruszającą się w kierunku kubka.

W tym poście opisujemy rozwój tego potoku, surowe dane, projekt splotowych sieci neuronowych składających się na potok oraz ocenę jego wydajności.

Dane

TOUR zapewniał ciągły zapis wideo z niedawnego turnieju przez 3 dni z trzech kamer 4K rozmieszczonych wokół greenu na jednym dołku. Poniższy rysunek przedstawia klatkę z jednej kamery przyciętą i powiększoną w taki sposób, aby puttowanie gracza było dobrze widoczne. Należy pamiętać, że pomimo dużej rozdzielczości kamer, ze względu na odległość od greenu, kula wydaje się mała (zwykle 3×3, 4×4 lub 5×5 pikseli), a cele tego rozmiaru mogą być trudne do dokładnego zlokalizowania.

Oprócz transmisji z kamery zespół TOUR dostarczył GAIIC dane punktowe z adnotacjami dotyczące każdego strzału, w tym światową lokalizację pozycji spoczynkowej oraz sygnaturę czasową. Umożliwiło to wizualizację każdego uderzenia na greenie, a także umożliwiło pobranie wszystkich klipów wideo przedstawiających uderzenia graczy, które można było ręcznie oznaczyć i wykorzystać do szkolenia modeli wykrywania składających się na potok. Poniższy rysunek przedstawia trzy widoki z kamer z przybliżonymi nakładkami ścieżki puttowania, w kierunku przeciwnym do ruchu wskazówek zegara, od lewego górnego rogu. Kołek jest przesuwany każdego dnia, gdzie dzień 1 odpowiada kolorowi niebieskiemu, dzień 2 czerwonemu, a dzień 3 pomarańczowemu.

Przegląd rurociągu

Ogólny system składa się zarówno z potoku szkoleniowego, jak i potoku wnioskowania. Poniższy diagram ilustruje architekturę potoku szkoleniowego. Punktem wyjścia jest pobranie danych wideo z modułu przesyłania strumieniowego, np Amazonka Kinesis do transmisji wideo na żywo lub umieszczania bezpośrednio w Usługa Amazon Simple Storage (Amazon S3) dla filmów historycznych. Proces szkoleniowy wymaga wstępnego przetwarzania wideo i ręcznego etykietowania obrazów Amazon SageMaker Ground Prawda. Z modelami można trenować Amazon Sage Maker i ich artefakty przechowywane w Amazon S3.

Potok wnioskowania pokazany na poniższym schemacie składa się z szeregu modułów, które sukcesywnie wyodrębniają informacje z nieprzetworzonego wideo i ostatecznie przewidują współrzędne światowe piłki w spoczynku. Początkowo zieleń jest przycinana z większego pola widzenia każdej kamery, aby zmniejszyć obszar pikseli, w którym modele muszą szukać graczy i piłek. Następnie do ustalenia lokalizacji osób w polu widzenia wykorzystywana jest głęboka splotowa sieć neuronowa (CNN). Inny CNN służy do przewidywania, jaki typ osoby został znaleziony, aby ustalić, czy ktoś zamierza uderzyć. Po zlokalizowaniu prawdopodobnego miotacza w polu widzenia, ta sama sieć jest wykorzystywana do przewidywania położenia piłki w pobliżu miotacza. Trzecia CNN śledzi piłkę podczas jej ruchu, a na koniec stosowana jest funkcja transformacji pozycji piksela kamery na współrzędne GPS.

Wykrywanie gracza

Chociaż możliwe byłoby uruchomienie CNN w celu wykrywania piłek w całej klatce 4K w ustalonych odstępach czasu, biorąc pod uwagę rozmiar kątowy piłki w takich odległościach kamery, każdy mały biały obiekt wyzwala detekcję, co skutkuje wieloma fałszywymi alarmami. Aby uniknąć przeszukiwania całego kadru obrazu w poszukiwaniu piłki, można wykorzystać korelacje pomiędzy pozycją zawodnika a lokalizacją piłki. Piłka, która ma zostać wrzucona, musi znajdować się obok gracza, więc znalezienie graczy w polu widzenia znacznie zawęzi obszar pikseli, w którym detektor musi szukać piłki.

Udało nam się użyć CNN, który został wstępnie przeszkolony do przewidywania ramek ograniczających wokół wszystkich osób w scenie, jak pokazano na poniższym rysunku. Niestety, często na greenie znajduje się więcej niż jedna piłka, dlatego wymagana jest dalsza logika, wykraczająca poza zwykłe znalezienie wszystkich osób i wyszukanie piłki. Wymaga to od innego CNN znalezienia gracza, który aktualnie wystawiał.

Klasyfikacja zawodników i wykrywanie piłek

Aby jeszcze bardziej zawęzić miejsce, w którym może znajdować się piłka, udoskonaliliśmy wstępnie wytrenowany CNN (YOLO v7) do wykrywania obiektów, aby klasyfikował wszystkie osoby na greenie. Ważnym elementem tego procesu było ręczne oznaczenie zestawu obrazów przy użyciu programu SageMaker Ground Truth. Etykiety umożliwiły CNN klasyfikację puttowania gracza z dużą dokładnością. W procesie etykietowania piłka została również obrysowana wraz z uderzeniem gracza, więc ta CNN była w stanie również wykryć piłkę, rysując początkową ramkę ograniczającą wokół piłki przed puttowaniem i przekazując informacje o pozycji do CNN śledzącego piłkę dalej. .

Do opisywania obiektów na obrazach używamy czterech różnych etykiet:

  • umieszczanie gracza – Gracz trzymający kij i będący na pozycji puttowania
  • gracz nie puttuje – Gracz nie będący na pozycji puttowania (może również trzymać kij)
  • inna osoba – Każda inna osoba niebędąca graczem
  • piłka golfowa – Piłeczka golfowa

Poniższy rysunek pokazuje, że CNN zostało dostrojone przy użyciu etykiet z SageMaker Ground Truth w celu sklasyfikowania każdej osoby w polu widzenia. Jest to trudne ze względu na szeroką gamę wyglądu zawodników, caddie i kibiców. Gdy gracz został sklasyfikowany jako puttujący, na małym obszarze bezpośrednio wokół niego zastosowano kamerę CNN dostosowaną do wykrywania piłki.

Śledzenie ścieżki piłki

Trzeci CNN, architektura ResNet, wstępnie przeszkolona do śledzenia ruchu, została wykorzystana do śledzenia piłki po jej umieszczeniu. Śledzenie ruchu to problem szczegółowo zbadany, dlatego sieć ta działała dobrze po zintegrowaniu z rurociągiem bez dalszego dostrajania.

Wyjście rurociągu

Kaskada CNN umieszcza ramki ograniczające wokół ludzi, klasyfikuje ich na greenie, wykrywa początkową pozycję piłki i śledzi ją, gdy zaczyna się ona poruszać. Poniższy rysunek przedstawia oznaczone wyjście wideo potoku. Pozycje pikseli poruszającej się piłki są śledzone i rejestrowane. Zwróć uwagę, że ludzie na greenie są śledzeni i otoczeni ramkami ograniczającymi; putter na dole jest poprawnie oznaczony jako „putter gracza”, a poruszająca się piłka jest śledzona i obrysowana małą niebieską ramką.

Wydajność

Aby ocenić wydajność elementów rurociągu, konieczne jest posiadanie oznakowanych danych. Chociaż otrzymaliśmy rzeczywistą pozycję piłki w świecie, nie mieliśmy punktów pośrednich dla prawdy podstawowej, takich jak ostateczna pozycja piłki w pikselach lub lokalizacja gracza w pikselach. W ramach wykonywanego przez nas zadania etykietowania opracowaliśmy podstawowe dane dotyczące pośrednich wyników rurociągu, które pozwalają nam mierzyć wydajność.

Klasyfikacja zawodników i dokładność wykrywania piłek

Aby wykryć puttowanie gracza i początkową lokalizację piłki, oznaczyliśmy zbiór danych i dopracowaliśmy model YOLO v7 CNN, jak opisano wcześniej. Model podzielił dane wyjściowe modułu wykrywania poprzedniej osoby na cztery klasy: gracz wkładający, gracz nie oddający piłki, inne osoby i piłeczka golfowa, jak pokazano na poniższym rysunku.

Wydajność tego modułu ocenia się za pomocą macierzy zamieszania pokazanej na poniższym rysunku. Wartości w ukośnych polach pokazują, jak często przewidywana klasa odpowiadała rzeczywistej klasie na podstawie podstawowych etykiet prawdy. Model ma co najmniej 89% zapamiętywania dla każdej klasy osób i 79% zapamiętywania piłek golfowych (czego można się spodziewać, ponieważ model został wstępnie przeszkolony na przykładach z ludźmi, ale nie na przykładach z piłkami golfowymi; można to poprawić za pomocą więcej oznaczonych piłek golfowych w zestawie treningowym).

Następnym krokiem jest uruchomienie trackera piłki. Ponieważ wynik wykrycia piłki jest prawdopodobieństwem ufnym, możliwe jest również ustawienie progu dla „wykrytej piłki” i obserwowanie, jak zmienia to wyniki, podsumowane na poniższym rysunku. Metoda ta wiąże się z pewnym kompromisem, ponieważ wyższy próg będzie koniecznie powodował mniej fałszywych alarmów, ale także pomijał niektóre mniej pewne przykłady piłek. Przetestowaliśmy progi ufności 20% i 50% i stwierdziliśmy, że wykrywanie piłki wynosi odpowiednio 78% i 61%. Dzięki temu próg 20% ​​jest lepszy. Kompromis jest widoczny w tym sensie, że w przypadku progu ufności wynoszącego 20% 80% wszystkich wykryć stanowiły w rzeczywistości kulki (20% fałszywie dodatnie), podczas gdy w przypadku progu ufności wynoszącego 50% 90% stanowiły kulki (10% fałszywie dodatnie). W przypadku mniejszej liczby wyników fałszywie dodatnich lepszy jest próg ufności wynoszący 50%. Obie te miary można ulepszyć za pomocą bardziej oznakowanych danych dla większego zestawu szkoleniowego.

Przepustowość potoku wykrywania jest rzędu 10 klatek na sekundę, więc w obecnej postaci pojedyncza instancja nie jest wystarczająco szybka, aby działać w sposób ciągły na wejściu z szybkością 50 klatek na sekundę. Osiągnięcie 7-sekundowego wyniku po etapach kulowych wymagałoby dalszej optymalizacji pod kątem opóźnień, być może poprzez równoległe uruchomienie wielu wersji potoku i kompresję modeli CNN za pomocą kwantyzacji (na przykład).

Dokładność śledzenia ścieżki piłki

Wstępnie wytrenowany model CNN z MMTracking działa dobrze, ale zdarzają się ciekawe przypadki awarii. Poniższy rysunek przedstawia przypadek, w którym moduł śledzący zaczyna od piłki, rozszerza swoją ramkę ograniczającą, aby uwzględnić zarówno główkę miotacza, jak i piłkę, a następnie niestety śledzi główkę miotacza i zapomina o piłce. W tym przypadku główka puttera wydaje się biała (prawdopodobnie w wyniku odbicia lustrzanego), więc zamieszanie jest zrozumiałe; oznakowane dane do śledzenia i dostrajania śledzenia CNN mogą pomóc w ulepszeniu tego w przyszłości.

Wnioski

W tym poście omówiliśmy rozwój modułowego potoku, który lokalizuje graczy w polu widzenia kamery, określa, który gracz stawia, i śledzi ruch piłki w kierunku kubka.

Więcej informacji na temat współpracy AWS z PGA TOUR można znaleźć na stronie PGA TOUR nawiązuje współpracę z AWS, aby na nowo wyobrazić sobie doświadczenia fanów.


O autorach

Jakub Złoty jest naukowcem stosowanym w Amazon Bedrock z doświadczeniem w uczeniu maszynowym i neuronauce.

Henry’ego Wanga jest naukowcem stosowanym w Amazon Generative AI Innovation Center, gdzie bada i buduje generatywne rozwiązania AI dla klientów AWS. Koncentruje się na branży sportowej oraz medialnej i rozrywkowej. W przeszłości współpracował z różnymi ligami sportowymi, drużynami i nadawcami. W wolnym czasie lubi grać w tenisa i golfa.

Tryambak Gangopadhyay jest naukowcem stosowanym w Centrum Innowacji AWS Generative AI, gdzie współpracuje z organizacjami z różnych branż. Jego rola polega na prowadzeniu badań i opracowywaniu rozwiązań generatywnej sztucznej inteligencji, aby sprostać kluczowym wyzwaniom biznesowym i przyspieszyć wdrażanie sztucznej inteligencji.

Znak czasu:

Więcej z Uczenie maszynowe AWS