Zephyrnet-logo

Balpositie volgen in de cloud met de PGA TOUR | Amazon-webservices

Datum:

De PGA TOUR blijft de golfervaring verbeteren met realtime gegevens die fans dichter bij het spel brengen. Om nog rijkere ervaringen te bieden, streven ze naar de ontwikkeling van een balpositievolgsysteem van de volgende generatie dat automatisch de positie van de bal op de green volgt.

De TOUR maakt momenteel gebruik van ShotLink, mogelijk gemaakt door CDW, een vooraanstaand scoresysteem dat gebruik maakt van een complex camerasysteem met on-site compute, om de begin- en eindpositie van elk schot nauwkeurig te volgen. De TOUR wilde technieken voor computer vision en machine learning (ML) onderzoeken om een ​​cloudgebaseerde pijplijn van de volgende generatie te ontwikkelen om golfballen op de putting green te lokaliseren.

Het Amazon Genative AI Innovation Center (GAIIC) demonstreerde de effectiviteit van deze technieken in een voorbeelddataset van een recent PGA TOUR-evenement. De GAIIC ontwierp een modulaire pijplijn die een reeks diepe convolutionele neurale netwerken laat lopen die met succes spelers binnen het gezichtsveld van een camera lokaliseren, bepalen welke speler aan het putten is en de bal volgen terwijl deze richting de beker beweegt.

In dit bericht beschrijven we de ontwikkeling van deze pijplijn, de onbewerkte gegevens, het ontwerp van de convolutionele neurale netwerken waaruit de pijplijn bestaat, en een evaluatie van de prestaties ervan.

Data

De TOUR bood drie dagen aaneengesloten videobeelden van een recent toernooi, afkomstig van drie 3K-camera's die rond de green op één hole waren geplaatst. De volgende afbeelding toont een frame van één camera, bijgesneden en ingezoomd, zodat de speler die aan het zetten is gemakkelijk zichtbaar is. Merk op dat ondanks de hoge resolutie van de camera's, vanwege de afstand tot de green, de bal klein lijkt (meestal 4×3, 3×4 of 4×5 pixels), en dat doelen van dit formaat moeilijk nauwkeurig te lokaliseren kunnen zijn.

Naast de camerafeeds voorzag de TOUR de GAIIC van geannoteerde scoregegevens over elke opname, inclusief de wereldlocatie van de rustpositie en de tijdstempel. Dit maakte visualisaties van elke putt op de green mogelijk, evenals de mogelijkheid om alle videoclips van puttende spelers op te halen, die handmatig konden worden gelabeld en gebruikt om detectiemodellen te trainen waaruit de pijplijn bestaat. De volgende afbeelding toont de drie camerabeelden met geschatte puttpad-overlays, tegen de klok in vanaf linksboven. De pin wordt elke dag verplaatst, waarbij dag 1 overeenkomt met blauw, dag 2 met rood en dag 3 met oranje.

Pijpleidingoverzicht

Het totale systeem bestaat uit zowel een trainingspijplijn als een gevolgtrekkingspijplijn. Het volgende diagram illustreert de architectuur van de trainingspijplijn. Het startpunt is de opname van videogegevens, hetzij via een streamingmodule zoals Amazon Kinesis voor live video of plaatsing rechtstreeks in Amazon eenvoudige opslagservice (Amazon S3) voor historische video. De trainingspijplijn vereist videovoorbewerking en het handmatig labelen van afbeeldingen met Amazon SageMaker Grondwaarheid. Modellen kunnen worden getraind Amazon Sage Maker en hun artefacten opgeslagen met Amazon S3.

De inferentiepijplijn, weergegeven in het volgende diagram, bestaat uit een aantal modules die achtereenvolgens informatie uit de onbewerkte video extraheren en uiteindelijk de wereldcoördinaten van de bal in rust voorspellen. In eerste instantie wordt het groen bijgesneden uit het grotere gezichtsveld van elke camera, om het pixelgebied waarin de modellen naar spelers en ballen moeten zoeken, te verkleinen. Vervolgens wordt een diep convolutioneel neuraal netwerk (CNN) gebruikt om de locaties van mensen in het gezichtsveld te vinden. Een ander CNN wordt gebruikt om te voorspellen welk type persoon is gevonden om zo te bepalen of er iemand gaat putten. Nadat een waarschijnlijke putter in het gezichtsveld is gelokaliseerd, wordt hetzelfde netwerk gebruikt om de locatie van de bal nabij de putter te voorspellen. Een derde CNN volgt de bal tijdens zijn beweging, en ten slotte wordt een transformatiefunctie toegepast van de positie van de camerapixels naar GPS-coördinaten.

Speler detectie

Hoewel het mogelijk zou zijn om een ​​CNN voor baldetectie uit te voeren over een volledig 4K-frame met een ingesteld interval, activeert elk klein wit object, gezien de hoekgrootte van de bal op deze cameraafstanden, een detectie, wat resulteert in veel valse alarmen. Om te voorkomen dat het hele beeldframe naar de bal wordt doorzocht, is het mogelijk om te profiteren van correlaties tussen de houding van de speler en de ballocatie. Een bal die op het punt staat te worden geput, moet zich naast een speler bevinden, dus het vinden van de spelers in het gezichtsveld zal het pixelgebied waarin de detector naar de bal moet zoeken aanzienlijk beperken.

We konden een CNN gebruiken die vooraf was getraind om selectiekaders rond alle mensen in een scène te voorspellen, zoals weergegeven in de volgende afbeelding. Helaas ligt er vaak meer dan één bal op de green, dus er is meer logica nodig dan alleen het vinden van alle mensen en het zoeken naar een bal. Hiervoor is een andere CNN nodig om de speler te vinden die momenteel aan het putten was.

Spelerclassificatie en baldetectie

Om verder te bepalen waar de bal zich zou kunnen bevinden, hebben we een vooraf getrainde objectdetectie-CNN (YOLO v7) verfijnd om alle mensen op de green te classificeren. Een belangrijk onderdeel van dit proces was het handmatig labelen van een reeks afbeeldingen met behulp van SageMaker Ground Truth. Dankzij de labels kon CNN de putting van de speler met hoge nauwkeurigheid classificeren. Tijdens het labelingproces werd de bal ook omlijnd samen met de putt van de speler, dus deze CNN kon ook baldetectie uitvoeren, door een eerste begrenzingsvak rond de bal te tekenen vóór een putt en de positie-informatie in te voeren in de stroomafwaartse CNN voor het volgen van de bal. .

We gebruiken vier verschillende labels om de objecten in de afbeeldingen te annoteren:

  • speler-putting – De speler die een club vasthoudt en zich in de putpositie bevindt
  • speler-niet-putten – De speler die niet in de putpositie staat (kan ook een club vasthouden)
  • ander persoon – Elke andere persoon die geen speler is
  • golfbal – De golfbal

De volgende afbeelding laat zien dat een CNN is verfijnd met behulp van labels van SageMaker Ground Truth om elke persoon in het gezichtsveld te classificeren. Dit is moeilijk vanwege het brede scala aan visuele optredens van spelers, caddies en fans. Nadat een speler als putting was geclassificeerd, werd een CNN die was afgestemd op baldetectie toegepast op het kleine gebied direct rond die speler.

Volgen van het balpad

Een derde CNN, een ResNet-architectuur die vooraf was getraind voor het volgen van bewegingen, werd gebruikt voor het volgen van de bal nadat deze was geput. Bewegingsregistratie is een grondig onderzocht probleem, dus dit netwerk presteerde goed toen het zonder verdere verfijning in de pijplijn werd geïntegreerd.

Pijplijnuitvoer

De cascade van CNN's plaatst selectiekaders rond mensen, classificeert mensen op de green, detecteert de initiële balpositie en volgt de bal zodra deze begint te bewegen. De volgende afbeelding toont de gelabelde video-uitvoer van de pijplijn. De pixelposities van de bal terwijl deze beweegt, worden gevolgd en vastgelegd. Houd er rekening mee dat mensen op de green worden gevolgd en omlijnd door middel van kaders; de putter onderaan is correct gelabeld als 'speler-putting', en de bewegende bal wordt gevolgd en omlijnd door een klein blauw kader.

Performance

Om de prestaties van componenten van de pijplijn te beoordelen, is het noodzakelijk om gelabelde gegevens te hebben. Hoewel we de grondwaarheidswereldpositie van de bal kregen, hadden we geen tussenpunten voor de grondwaarheid, zoals de uiteindelijke pixelpositie van de bal of de pixellocatie van de speler die zet. Met de labelingopdracht die we hebben uitgevoerd, hebben we ground-truth-gegevens ontwikkeld voor deze tussenliggende outputs van de pijplijn, waarmee we de prestaties kunnen meten.

Spelerclassificatie en nauwkeurigheid van baldetectie

Voor detectie van de speler die aan het putten is en de initiële ballocatie, hebben we een dataset gelabeld en een YOLO v7 CNN-model verfijnd zoals eerder beschreven. Het model classificeerde de uitvoer van de vorige persoonsdetectiemodule in vier klassen: een speler die put, een speler die niet put, andere mensen en de golfbal, zoals weergegeven in de volgende afbeelding.

De prestaties van deze module worden beoordeeld met een verwarringsmatrix, weergegeven in de volgende afbeelding. De waarden in de diagonale vakken laten zien hoe vaak de voorspelde klasse overeenkwam met de werkelijke klasse op basis van de grondwaarheidslabels. Het model heeft een herinnering van 89% of beter voor elke persoonsklasse, en een herinnering van 79% voor golfballen (wat te verwachten is omdat het model vooraf is getraind op voorbeelden met mensen, maar niet op voorbeelden met golfballen; dit kan worden verbeterd met meer gelabelde golfballen in de trainingsset).

De volgende stap is het activeren van de balltracker. Omdat de baldetectie-uitvoer een betrouwbaarheidswaarschijnlijkheid is, is het ook mogelijk om de drempelwaarde voor 'gedetecteerde bal' in te stellen en te observeren hoe dat de resultaten verandert, samengevat in de volgende afbeelding. Deze methode heeft een wisselwerking omdat een hogere drempel noodzakelijkerwijs minder vals alarm zal veroorzaken, maar ook enkele van de minder zekere voorbeelden van ballen zal missen. We testten drempels van 20% en 50% betrouwbaarheid en vonden baldetectie op respectievelijk 78% en 61%. Door deze maatregel is de drempel van 20% beter. De wisselwerking blijkt uit het feit dat voor de betrouwbaarheidsdrempel van 20% 80% van de totale detecties feitelijk ballen waren (20% vals-positief), terwijl voor de betrouwbaarheidsdrempel van 50% 90% ballen waren (10% vals-positief). Voor minder valse positieven is de betrouwbaarheidsdrempel van 50% beter. Beide maatregelen kunnen worden verbeterd met meer gelabelde gegevens voor een grotere trainingsset.

De doorvoersnelheid van de detectiepijplijn ligt in de orde van grootte van 10 frames per seconde, dus in zijn huidige vorm is een enkele instantie niet snel genoeg om continu op de invoer te worden uitgevoerd met 50 frames per seconde. Het bereiken van de 7-secondenmarkering voor output na de balstappen zou verdere optimalisatie van de latentie vereisen, misschien door meerdere versies van de pijplijn parallel te laten draaien en de CNN-modellen te comprimeren via kwantisering (bijvoorbeeld).

Nauwkeurigheid van het volgen van de balbaan

Het vooraf getrainde CNN-model van MMTracking werkt goed, maar er zijn interessante faalgevallen. De volgende afbeelding toont een geval waarin de tracker begint met de bal, het grensgebied uitbreidt om zowel het putterhoofd als de bal te omvatten, en dan helaas het putterhoofd volgt en de bal vergeet. In dit geval lijkt het putterhoofd wit (mogelijk als gevolg van spiegelreflectie), dus de verwarring is begrijpelijk; gelabelde gegevens voor het volgen en verfijnen van de tracking CNN kunnen dit in de toekomst helpen verbeteren.

Conclusie

In dit bericht hebben we de ontwikkeling besproken van een modulaire pijplijn die spelers binnen het gezichtsveld van een camera lokaliseert, bepaalt welke speler aan het putten is en de bal volgt terwijl deze richting de beker beweegt.

Voor meer informatie over AWS-samenwerking met de PGA TOUR, zie PGA TOUR werkt samen met AWS om de fanervaring opnieuw vorm te geven.


Over de auteurs

Jacobus Gouden is een toegepast wetenschapper bij Amazon Bedrock met een achtergrond in machine learning en neurowetenschappen.

Henry Wang is toegepast wetenschapper bij het Amazon Generative AI Innovation Center, waar hij generatieve AI-oplossingen voor AWS-klanten onderzoekt en bouwt. Hij richt zich op de sport- en media- en entertainmentindustrie en heeft in het verleden met verschillende sportcompetities, teams en omroepen gewerkt. In zijn vrije tijd speelt hij graag tennis en golf.

Tryambak Gangopadhyay is een Applied Scientist bij het AWS Generative AI Innovation Center, waar hij samenwerkt met organisaties in een breed spectrum van industrieën. Zijn rol omvat het uitvoeren van onderzoek en het ontwikkelen van generatieve AI-oplossingen om cruciale zakelijke uitdagingen aan te pakken en de adoptie van AI te versnellen.

spot_img

Laatste intelligentie

spot_img