Gezondheidszorg
AI-pose-estimatie in fitnessapplicaties

Door Maksym Tatariants, Data Science Engineer bij MobiDev.
Menselijke pose-estimatie is een technologie – nog vrij nieuw, maar snel evoluerend – die een belangrijke rol speelt in fitness- en dansapplicaties, waardoor we digitale inhoud over de echte wereld kunnen plaatsen.
In het kort is het concept van menselijke pose-estimatie een computer-vision-gebaseerde technologie die in staat is om menselijke houding te detecteren en te verwerken. Het meest belangrijke en centrale deel van deze technologie is het modelleren van het menselijk lichaam. Drie lichaamsmodellen zijn het meest prominent binnen de huidige systemen voor menselijke pose-estimatie – skelet-gebaseerd, contour-gebaseerd en volume-gebaseerd.
Skelet-gebaseerd model
Dit model bestaat uit een set van gewrichten (sleutelpunten), zoals knieën, enkels, polsen, ellebogen, schouders en de oriëntatie van de ledematen van het lichaam. Dit model is opvallend vanwege zijn flexibiliteit en is daarom geschikt voor zowel 3-dimensionale als 2-dimensionale menselijke pose-estimatie. Met 3-dimensionale modellering gebruikt de oplossing een RGB-afbeelding en vindt de X, Y en Z-coördinaten van de gewrichten. Met 2-dimensionale modellering is het dezelfde analyse van een RGB-afbeelding, maar met de X en Y-coördinaten.
Contour-gebaseerd model
Dit model maakt gebruik van de contouren van de torso en ledematen van het lichaam, evenals hun ruwe breedte. Hierbij neemt de oplossing de silhouet van het lichaam en rendert lichaamsdelen als rechthoeken en grenzen binnen dat kader.
Volume-gebaseerd model
Dit model gebruikt over het algemeen een reeks van 3-dimensionale scans om de vorm van het lichaam te vastleggen en converteert deze naar een kader van vormen en geometrische netwerken. Deze vormen creëren een 3D-reeks van poses en lichaamsweergaven.
Hoe 3D-menselijke pose-estimatie werkt
Fitnessapplicaties zijn geneigd om 3-dimensionale menselijke pose-estimatie te gebruiken. Voor deze apps is de meer informatie over de menselijke pose, hoe beter. Met deze techniek zal de gebruiker van de app zichzelf opnemen terwijl hij een oefening of trainingsroutine uitvoert. De app zal vervolgens de lichaamsbewegingen van de gebruiker analyseren en correcties aanbrengen voor fouten of onnauwkeurigheden.
Het typische flowchart van dit type app volgt meestal het volgende patroon:
- Ten eerste, verzamel gegevens over de bewegingen van de gebruiker terwijl hij de oefening uitvoert.
- Vervolgens, bepaal hoe correct of incorrect de bewegingen van de gebruiker waren.
- Ten slotte, toon de gebruiker via de interface welke fouten hij mogelijk heeft gemaakt.
Op dit moment is de standaard in menselijke pose-technologie COCO-topologie. COCO-topologie bestaat uit 17 landmarks over het hele lichaam, variërend van het gezicht tot de armen tot de benen. Let op dat COCO niet de enige menselijke lichaamshouding-framework is, maar slechts de meest gebruikte.
Dit type proces maakt typisch gebruik van diepe machine learning-technologie voor het extraheren van gewrichten bij het schatten van de pose van de gebruiker. Vervolgens gebruikt het geometrie-gebaseerde algoritmes om te begrijpen wat het heeft gevonden (analyse van de relatieve posities van de gedetecteerde gewrichten). Terwijl het een dynamische video als brondata gebruikt, kan het systeem een reeks frames gebruiken, niet alleen één afbeelding, om zijn sleutelpunten te detecteren. Het resultaat is een veel nauwkeurigere weergave van de echte bewegingen van de gebruiker, aangezien het systeem informatie uit de aangrenzende frames kan gebruiken om onzekerheden over de positie van het menselijk lichaam in de huidige frame op te lossen.
Uit de huidige technieken voor het gebruik van 3D-pose-estimatie in fitnessapplicaties, is de meest nauwkeurige benadering om eerst een model toe te passen om 2D-sleutelpunten te detecteren en vervolgens de 2D-detectie te verwerken met een ander model om deze om te zetten in 3D-sleutelpuntvoorspellingen.
In het onderzoek dat we onlangs hebben gepubliceerd, werd één video-bron gebruikt, met convolutionele neurale netwerken met gedilateerde temporele convoluties toegepast om de 2D naar 3D-sleutelpuntconversie uit te voeren.
Na het analyseren van de modellen die momenteel beschikbaar zijn, hebben we vastgesteld dat VideoPose3D de oplossing is die het beste aansluit bij de behoeften van de meeste AI-gedreven fitnessapplicaties. De invoer met behulp van dit systeem zou een 2D-set van sleutelpunten moeten toelaten, waar een model, vooraf getraind op de COCO 2017-dataset, wordt toegepast als een 2D-detector.
Voor de meest nauwkeurige voorspelling van de positie van een huidig gewricht of sleutelpunt, kan VideoPose3D meerdere frames over een korte sequentie van tijd gebruiken om 2D-pose-informatie te genereren.
Om de nauwkeurigheid van 3D-pose-estimatie verder te verbeteren, kan meer dan één camera alternatieve gezichtspunten van de gebruiker verzamelen die dezelfde oefening of routine uitvoeren. Let op dat dit echter meer verwerkingskracht en gespecialiseerde modelarchitectuur vereist om meerdere video-stroominvoer te verwerken.
Onlangs onthulde Google (GOOGL ) hun BlazePose-systeem, een model voor mobiele apparaten voor het schatten van de menselijke pose door het aantal sleutelpunten te verhogen tot 33, een superset van de COCO-sleutelpunten en twee andere topologieën – BlazePalm en BlazeFace. Als gevolg hiervan kan het BlazePose-model pose-voorspellingresultaten produceren die consistent zijn met handmodellen en gezichtsmodellen door lichaamssymboliek te articuleren.
Elk onderdeel binnen een machine learning-gebaseerd menselijke pose-estimatie-systeem moet snel zijn, met een maximum van een paar milliseconden per frame voor pose-detectie- en trackingmodellen.
Vanwege het feit dat de BlazePose-pijplijn (die pose-estimatie- en trackingcomponenten omvat) moet werken op een verscheidenheid aan mobiele apparaten in real-time, is elk individueel onderdeel van de pijplijn ontworpen om zeer computationeel efficiënt te zijn en te draaien op 200-1000 FPS.
Pose-estimatie en tracking in de video waarin het niet bekend is of en waar de persoon aanwezig is, gebeurt meestal in twee fasen.
In de eerste fase wordt een objectdetectiemodel uitgevoerd om de aanwezigheid van een mens te lokaliseren of om hun afwezigheid te identificeren. Zodra de persoon is gedetecteerd, kan de pose-estimatiemodule de gelokaliseerde gebieden verwerken die de persoon bevatten en de positie van de sleutelpunten voorspellen.
Een nadeel van deze setup is dat het zowel objectdetectie- als pose-estimatiemodules vereist om voor elke frame te draaien, wat extra computationele middelen verbruikt. De auteurs van de BlazePose hebben echter een slimme manier bedacht om deze kwestie te omzeilen en efficiënt te gebruiken in andere sleutelpuntdetectiemodules zoals FaceMesh en MediaPipe Hand.
Het idee is dat een objectdetectiemodule (gezichtsdetector in het geval van BlazePose) alleen kan worden gebruikt om de pose-tracking in de eerste frame te starten, terwijl de volgende tracking van de persoon kan worden gedaan met behulp van uitsluitend de pose-voorspellingen na enige pose-alignering, parameters waarvoor worden voorspeld met behulp van het pose-estimatiemodel.
Het gezicht produceert het sterkste signaal voor de torso’s positie voor het neurale netwerk, als gevolg van de relatief kleine variantie in verschijning en hoge contrast in zijn kenmerken. Gevolglijk is het mogelijk om een snelle, lage-overheadsysteem voor pose-detectie te creëren door een reeks van gerechtvaardigde aannamen die gebaseerd zijn op het idee dat het menselijk hoofd altijd te lokaliseren is in elke persoonlijke gebruikscase.
Het overwinnen van uitdagingen van menselijke pose-estimatie
Het gebruik van pose-estimatie in fitnessapplicaties staat voor de uitdaging van het enorme volume en de range van menselijke poses, bijvoorbeeld de honderden asana’s in de meeste yogaregimes.
Bovendien zal het lichaam soms bepaalde ledematen blokkeren zoals vastgelegd door elke gegeven camera, gebruikers kunnen verschillende outfits dragen die lichaamskenmerken en persoonlijke looks verhullen.
Terwijl het gebruik van vooraf getrainde modellen, let op dat ongebruikelijke lichaamsbewegingen of vreemde camerahoeken kunnen leiden tot fouten in menselijke pose-estimatie. We kunnen dit probleem tot op zekere hoogte mitigeren door gebruik te maken van synthetische gegevens van een 3D-menselijk lichaamsmodelrender, of door fijne afstemming met gegevens die specifiek zijn voor het domein in kwestie.
Het goede nieuws is dat we de meeste zwakke punten kunnen vermijden of mitigeren. De sleutel tot het doen hiervan is het selecteren van de juiste trainingsgegevens en modelarchitectuur. Bovendien geeft de tendens van de ontwikkeling in het veld van menselijke pose-estimatie-technologie aan dat sommige van de problemen die we nu tegenkomen minder relevant zullen zijn in de komende jaren.
Het laatste woord
Menselijke pose-estimatie houdt een verscheidenheid aan potentieel toekomstig gebruik buiten het gebied van fitnessapplicaties en het volgen van menselijke bewegingen, van gaming tot animatie tot Augmented Reality tot robotica. Dat vertegenwoordigt geen volledige lijst van de mogelijkheden, maar benadrukt enkele van de meest waarschijnlijke gebieden waar menselijke pose-estimatie zal bijdragen aan ons digitale landschap.
















