Hoe werkt Human Pose Estimation?

Nu we een beetje weten wat Human Pose Estimation is, waarvoor het gebruikt kan worden, en welke verschillende vormen er zijn, kunnen we eens wat dieper ingaan op hoe het eigenlijk werkt.

Voorverwerking

Voordat er overgegaan kan worden tot het schatten van de pose van de te analyseren perso(o)n(en), moet er eerst wat voorverwerking plaatsvinden. Zo is het mogelijk nodig om de achtergrond te verwijderen om de persoon van de achtergrond te scheiden of om ruis te verwijderen. Daarnaast creëren sommige algoritmen, met name bij Multi-Person Pose Estimation, begrenzende vakjes voor elke persoon die in het beeld aanwezig is. Elk vakje wordt apart geëvalueerd voor het schatten van de poses. In het geval dat er gebruik wordt gemaakt van meerdere camera’s is het bovendien nodig om de beelden te registreren.

Feature Extraction

Vervolgens wordt er overgegaan op feature extraction. Feature extraction in machine learning refereert naar de creatie van waarden die van ruwe data zijn afgeleid en kunnen worden gebruikt als input voor een leeralgoritme. Deze waarden kunnen expliciet of impliciet zijn.

Onder expliciete waarden vallen waarden die gebaseerd zijn op conventionele computervisie. Deze waarden worden expliciet berekend voordat deze als input naar het opvolgende leeralgoritme worden gestuurd.

Impliciete waarden zijn op deep learning gebaseerde feature maps zoals outputs van complexe Deep Convolutional Neural Networks (CNN’s). Deze feature maps worden nooit expliciet gecreëerd, maar zijn onderdeel van een compleet end-to-end proces.

Inference

Over het algemeen zijn deep learning architecturen die geschikt zijn voor Pose Estimation gebaseerd op variaties van CNN’s. Een gebruikelijke manier om gewricht locaties te voorspellen is het produceren van confidence maps voor elk gewricht. Confidence maps zijn kansverdelingen over het beeld, die de zekerheid van de locatie van het gewricht voor iedere pixel weergeven.

Er zijn twee overkoepelende benaderingen: Een bottom-up benadering en een top-down benadering.

Bottom-up benadering: Bij bottom-up benaderingen worden eerst de kernpunten van één of meerdere personen in het beeld gedetecteerd, waarna er groepen van kernpunten worden samengevoegd in skeletten die worden geassocieerd met een bepaald persoon. Het algoritme voorspelt dus eerst alle gewrichten die aanwezig zijn in het beeld. Gewoonlijk volgt hierop een formulering van een grafiek, gebaseerd op het lichaamsmodel, welke gewrichten verbindt die bij dezelfde persoon horen. Deze grafiek wordt vaak gecreëerd met integer linear programming (ILP) of bipartite matching.

Top-down benadering: Top-down benaderingen zijn het omgekeerde. Bij deze benaderingen gebruikt het netwerk eerst een object detector om een vakje om elk object te vormen, en schat daarna de kernpunten binnen elke afgebakende regio individueel.

Top-down Pose Estimation kan worden onderverdeeld in generative body-model based en deep learning based benaderingen. Bij generative body-model based benaderingen wordt er getracht een lichaamsmodel op het beeld te passen, waardoor de uiteindelijke voorspelling menselijk is. Deep learning based benaderingen voorspellen direct de locaties van de gewrichten, waardoor er geen garantie is dat de uiteindelijke voorspelling menselijk is.

Nabewerking

Veel algoritmen hebben geen beperking met betrekking tot de uiteindelijke output. Dit betekent dat een algoritme dat locaties van gewrichten voorspelt op basis van een input beeld geen enkele filter heeft voor het afkeuren of corrigeren van onnatuurlijke menselijke poses. Dit kan voor Human Pose Estimation soms vreemde resultaten opleveren.

Om dit op te lossen bestaat er een aantal nabewerking algoritmen die onnatuurlijke menselijke poses afkeurt. De output van iedere Pose Estimation pijpleiding gaat hierbij door een leeralgoritme die elke pose punten geeft op basis van waarschijnlijkheid. Poses die onder een bepaalde drempel scoren worden genegeerd tijdens de testfase.

De afgelopen tijd is het een opmerkelijke trend geweest in Human Pose Estimation dat er gebruik wordt gemaakt van deep learning, en dan met name CNN gebaseerde benaderingen. Een van de belangrijkste redenen hiervoor zijn de superieure prestaties van deep learning door de beschikbaarheid van grote hoeveelheden training data.

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Google photo

Je reageert onder je Google account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

Verbinden met %s