stomp AI-houdingsschatting in fitnesstoepassing - Unite.AI
Verbind je met ons

Gezondheidszorg

AI Pose-schatting in fitnesstoepassing

mm

gepubliceerd

 on

Door Maksym Tatariants, Data Science Engineer bij MobiDev.

Menselijke houdingsschatting verwijst naar een technologie – vrij nieuw, maar toch snel aan het evolueren – die een belangrijke rol speelt in fitness- en danstoepassingen, waardoor we digitale inhoud over de echte wereld kunnen plaatsen.

Kortom, het concept van het schatten van menselijke houdingen is een op computervisie gebaseerde technologie die de menselijke houding kan detecteren en verwerken. Het belangrijkste en centrale onderdeel van deze technologie is het modelleren van het menselijk lichaam. Drie lichaamsmodellen zijn het meest prominent aanwezig binnen de huidige systemen voor het schatten van menselijke poses: op skelet gebaseerd, op contouren gebaseerd en op volume gebaseerd.

Op skelet gebaseerd model

Dit model bestaat uit een reeks gewrichten (keypoints), zoals knieën, enkels, polsen, ellebogen, schouders en de oriëntatie van de ledematen van het lichaam. Dit model valt op door zijn flexibiliteit en is als zodanig geschikt voor zowel driedimensionale als tweedimensionale schattingen van menselijke houdingen. 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.

Contourgebaseerd model

Dit model maakt gebruik van de contouren van de romp en ledematen van het lichaam, evenals hun grove breedte. Hier neemt de oplossing het silhouet van het koetswerkframe en geeft lichaamsdelen weer als rechthoeken en grenzen binnen dat raamwerk.

Op volume gebaseerd model

Dit model gebruikt over het algemeen een reeks driedimensionale scans om de vorm van het lichaam vast te leggen en om te zetten in een raamwerk van vormen en geometrische mazen. Deze vormen creëren een 3D-reeks van poses en lichaamsrepresentaties.

Hoe 3D Human Pose Estimation werkt

Fitnesstoepassingen hebben de neiging om te vertrouwen op een driedimensionale schatting van de menselijke houding. Voor deze apps geldt: hoe meer informatie over de menselijke houding, hoe beter. Met deze techniek registreert de gebruiker van de app zichzelf tijdens een oefening of trainingsroutine. De app analyseert vervolgens de lichaamsbewegingen van de gebruiker en biedt correcties voor fouten of onnauwkeurigheden.

Het stroomschema van dit type app volgt meestal dit patroon:

  • Verzamel eerst gegevens over de bewegingen van de gebruiker terwijl deze de oefening uitvoert.
  • Bepaal vervolgens hoe correct of incorrect de bewegingen van de gebruiker waren.
  • Laat tot slot de gebruiker via de interface zien welke fouten hij eventueel heeft gemaakt.

Op dit moment is de standaard in de menselijke pose-technologie COCO-topologie. De COCO-topologie bestaat uit 17 oriëntatiepunten over het lichaam, variërend van het gezicht tot de armen tot de benen. Merk op dat COCO niet het enige raamwerk voor de houding van het menselijk lichaam is, maar alleen het meest gebruikte.

Dit type proces maakt doorgaans gebruik van deep machine learning-technologie voor de extractie van gewrichten bij het inschatten van de houding van de gebruiker. Vervolgens maakt het gebruik van op geometrie gebaseerde algoritmen om betekenis te geven aan wat het heeft gevonden (analyse van de relatieve posities van de gedetecteerde gewrichten). Terwijl het systeem dynamische video als brongegevens gebruikt, kan het een reeks frames gebruiken, en niet slechts één enkele afbeelding, om de belangrijkste punten vast te leggen. Het resultaat is een veel nauwkeurigere weergave van de werkelijke bewegingen van de gebruiker, aangezien het systeem informatie uit de aangrenzende frames kan gebruiken om eventuele onzekerheden met betrekking tot de positie van het menselijk lichaam in het huidige frame op te lossen.

Van de huidige technieken voor het gebruik van 3D-houdingsschatting in fitnesstoepassingen, is de meest nauwkeurige benadering om eerst een model toe te passen om 2D-keypoints te detecteren en vervolgens de 2D-detectie met een ander model te verwerken om ze om te zetten in 3D-keypoint-voorspellingen. 

In het onderzoek we hebben onlangs gepost, er werd een enkele videobron gebruikt, met convolutionele neurale netwerken met verwijde temporele convoluties toegepast om de 2D -> 3D keypoint-conversie uit te voeren.

Na analyse van de modellen die momenteel beschikbaar zijn, hebben we vastgesteld dat VideoPose3D de oplossing is die het best is afgestemd op de behoeften van de meeste AI-gestuurde fitnesstoepassingen. De invoer die dit systeem gebruikt, moet het mogelijk maken om een ​​2D-reeks sleutelpunten te detecteren, waarbij een model, vooraf getraind op 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 tijdsperiode gebruiken om 2D-pose-informatie te genereren. 

Om de nauwkeurigheid van de 3D-houdingsschatting verder te vergroten, kan meer dan één camera alternatieve gezichtspunten verzamelen van de gebruiker die dezelfde oefening of routine uitvoert. Houd er echter rekening mee dat het een grotere verwerkingskracht vereist, evenals een gespecialiseerde modelarchitectuur om met meerdere videostream-ingangen om te gaan.

Onlangs heeft Google onthuld hun BlazePose-systeem, een mobiel apparaatgericht model voor het schatten van de menselijke pose door het aantal geanalyseerde keypoints te verhogen tot 33, een superset van de COCO-keypoint-set en twee andere topologieën - BlazePalm en BlazeFace. Als gevolg hiervan kan het BlazePose-model pose-voorspellingsresultaten produceren die consistent zijn met handmodellen en gezichtsmodellen door lichaamssemantiek te articuleren.

Elk onderdeel binnen een op machine learning gebaseerd systeem voor het inschatten van menselijke poses moet snel zijn, met een maximum van een paar milliseconden per frame voor posedetectie en volgmodellen. 

Vanwege het feit dat de BlazePose-pijplijn (die pose-schatting en volgcomponenten bevat) in realtime op verschillende mobiele apparaten moet werken, is elk afzonderlijk onderdeel van de pijplijn ontworpen om zeer rekenkundig efficiënt te zijn en te draaien op 200-1000 FPS .

Het inschatten en volgen van poses in de video waarbij niet bekend is of en waar de persoon aanwezig is, wordt meestal in twee fasen gedaan. 

In de eerste fase wordt een objectdetectiemodel uitgevoerd om de aanwezigheid van een mens te lokaliseren of om hun afwezigheid te identificeren. Nadat de persoon is gedetecteerd, kan de pose-inschattingsmodule het gelokaliseerde gebied met de persoon verwerken en de positie van de sleutelpunten voorspellen.

Een nadeel van deze opstelling is dat zowel objectdetectie- als pose-schattingsmodules nodig zijn om voor elk frame te worden uitgevoerd, wat extra rekenkracht verbruikt. De auteurs van de BlazePose hebben echter een slimme manier bedacht om dit probleem te omzeilen en het efficiënt te gebruiken in andere keypoint-detectiemodules zoals GezichtMesh en MediaPipe-hand.

Het idee is dat een objectdetectiemodule (gezichtsdetector in het geval van BlazePose) alleen kan worden gebruikt om het volgen van de pose in het eerste frame een kickstart te geven, terwijl het daaropvolgende volgen van de persoon uitsluitend kan worden gedaan met behulp van de pose-voorspellingen na enige pose-uitlijning. parameters waarvoor wordt voorspeld met behulp van het pose-schattingsmodel.

Het gezicht geeft het sterkste signaal af met betrekking tot de positie van de romp voor het neurale netwerk, als gevolg van de relatief kleine variatie in uiterlijk en het hoge contrast in de gelaatstrekken. Bijgevolg is het mogelijk om een ​​snel systeem met weinig overhead te creëren voor posedetectie door middel van een reeks gerechtvaardigde aannames die zijn gebaseerd op het idee dat het menselijk hoofd in elk persoonlijk gebruik kan worden gelokaliseerd.

Uitdagingen overwinnen bij het inschatten van menselijke poses

Het gebruik van houdingsschatting in fitness-apps staat voor de uitdaging van het enorme aantal menselijke houdingen, bijvoorbeeld de honderden asana's in de meeste yogaregimes. 

Verder blokkeert het lichaam soms bepaalde ledematen zoals vastgelegd door een bepaalde camera, kunnen gebruikers verschillende outfits dragen die lichaamskenmerken en persoonlijke looks verdoezelen.

Houd er bij het gebruik van vooraf getrainde modellen rekening mee dat ongebruikelijke lichaamsbewegingen of vreemde camerahoeken kunnen leiden tot fouten in de schatting van de menselijke houding. We kunnen dit probleem tot op zekere hoogte verzachten door gebruik te maken van synthetische gegevens uit een 3D-weergave van een menselijk lichaam, of door te verfijnen met gegevens die specifiek zijn voor het betreffende domein.

Het goede nieuws is dat we de meeste zwakheden kunnen vermijden of verminderen. De sleutel hiervoor is het kiezen van de juiste trainingsgegevens en modelarchitectuur. Verder suggereert de tendens van ontwikkeling op het gebied van technologie voor het inschatten van menselijke poses dat sommige van de problemen waarmee we nu worden geconfronteerd de komende jaren minder relevant zullen zijn.

Het laatste woord

Het inschatten van menselijke poses heeft een verscheidenheid aan mogelijke toekomstige toepassingen buiten het gebied van fitness-apps en het volgen van menselijke bewegingen, van gaming tot animatie tot Augmented Reality tot robotica. Dat vertegenwoordigt geen volledige lijst van de mogelijkheden, maar belicht wel enkele van de meest waarschijnlijke gebieden waar het inschatten van menselijke poses zal bijdragen aan ons digitale landschap.

Maksym wil graag nieuwe inzichten en ervaring opdoen in Data Science en Machine Learning. Hij is vooral geïnteresseerd in op Deep Learning gebaseerde technologieën en hun toepassing op zakelijke use cases.