Posenerkennung

Die ML Kit Pose Detection API ist eine schlanke, vielseitige Lösung für App-Entwickler, mit der sie in Echtzeit die Position eines Subjekts aus einem Video oder einem statischen Bild erkennen können. Eine Pose beschreibt die Position des Körpers zu einem bestimmten Zeitpunkt mit einer Reihe von berühmten Skelettpunkten. Die Sehenswürdigkeiten beziehen sich auf verschiedene Körperteile wie Schultern und Hüften. Die relativen Positionen von Sehenswürdigkeiten können verwendet werden, um zwischen Positionen zu unterscheiden.

iOS Android-Geräte

Die ML Kit Pose Detection erzeugt ein Ganzkörper-Skelett-Match mit 33 Punkten, das Gesichtsmerkmale (Ohren, Augen, Mund und Nase) sowie Punkte an Händen und Füßen umfasst. Abbildung 1 zeigt die Sehenswürdigkeiten, die durch die Kamera des Nutzers blicken. Es handelt sich also um ein Spiegelbild. Die rechte Seite des Nutzers wird links im Bild angezeigt:

Abbildung 1: Sehenswürdigkeiten

Für die Potenzierung von ML Kit ist keine spezielle Ausrüstung oder ML-Kenntnisse erforderlich, um hervorragende Ergebnisse zu erzielen. Mit dieser Technologie können Entwickler mit ein paar Zeilen Code eine einzigartige Erfahrung für ihre Nutzer schaffen.

Das Gesicht des Nutzers muss erkannt werden, damit eine Pose erkannt werden kann. Die Posenerkennung funktioniert am besten, wenn der gesamte Körper des Körpers im Frame sichtbar ist. Er erkennt jedoch auch nur eine teilweise Körperstellung. In diesem Fall werden Sehenswürdigkeiten, die nicht erkannt werden, Koordinaten außerhalb des Bildes zugewiesen.

Hauptmerkmale

  • Plattformübergreifende Unterstützung für Android und iOS
  • Ganzkörper-Tracking: Das Modell gibt 33 wichtige Skelett-Basispunkte zurück, einschließlich der Positionen von Händen und Füßen.
  • InFrameLikelihood Score: Ein Messwert, der für jedes Meilenstein-Objekt die Wahrscheinlichkeit angibt, dass sich die Sehenswürdigkeit im Bild-Frame befindet. Die Punktzahl liegt zwischen 0,0 und 1,0, wobei 1,0 eine hohe Konfidenz angibt.
  • Zwei optimierte SDKs: Das Basis-SDK wird in Echtzeit auf modernen Smartphones wie Pixel 4 und iPhone X ausgeführt. Die Ergebnisse werden mit einer Rate von etwa 30 bzw. 45 fps zurückgegeben. Die Genauigkeit der Koordinaten in Bezug auf Sehenswürdigkeiten kann jedoch variieren. Das genaue SDK gibt Ergebnisse mit einer langsameren Framerate zurück, erzeugt aber genauere Koordinatenwerte.
  • Z-Koordinaten zur Tiefenanalyse: Dieser Wert kann bei der Entscheidung helfen, ob Teile des Nutzerkörpers vor oder hinter den Hüften liegen. Weitere Informationen finden Sie im Abschnitt Z-Koordinaten weiter unten.

Die Pose Detection API ähnelt der Facial Recognition API insofern, als sie eine Reihe von Sehenswürdigkeiten und ihren Standort zurückgibt. Während bei der Gesichtserkennung auch versucht wird, Merkmale wie ein lächelndes Mund oder offene Augen zu erkennen, hat die Poseerkennung keinen Sinn für die Sehenswürdigkeiten in einer Pose oder der Pose selbst. Sie können eigene Algorithmen erstellen, um eine Pose zu interpretieren. Einige Beispiele finden Sie in den Tipps zur Klassifizierung von Produkten.

Bei der Posenerkennung kann nur eine Person auf einem Bild erkannt werden. Wenn das Bild zwei Personen enthält, weist das Modell der Person mit der höchsten Konfidenz Sehenswürdigkeiten zu.

Z-Koordinate

Die Z-Koordinate ist ein experimenteller Wert, der für jede Sehenswürdigkeit berechnet wird. Sie wird wie die x- und y-Koordinaten in Bildpixelpixeln gemessen, aber kein richtiger 3D-Wert. Die Z-Achse verläuft senkrecht zur Kamera und verläuft zwischen den Hüften eines Motivs. Der Ursprung der Z-Achse ist ungefähr der Mittelpunkt zwischen den Hüften (links/rechts und vorn/zurück relativ zur Kamera). Negative Z-Werte sind auf die Kamera gerichtet; positive Werte sind davon entfernt. Die Z-Koordinate hat keine Ober- oder Untergrenze.

Beispielergebnisse

In der folgenden Tabelle sehen Sie die Koordinaten und InFrameLikelihood für einige Sehenswürdigkeiten in der Position rechts. Die Z-Koordinaten für die linke Hand des Nutzers sind negativ, da sie sich vor den Hüften des Subjekts und in Richtung der Kamera befinden.

SehenswürdigkeitTypPositionIn-Frame-Wahrscheinlichkeit
11LEFT_SHOULDER(734.9671, 550.7924, -118.11934)0,9999038
12 RIGHT_SHOULDER (391.27032, 583.2485, -321.15836) 0,9999894
13 LINKS_ELBOW (903.83704, 754.676 und -219.67009) 0,9836427
14 RECHTS_ELBOW (322.18152, 842.5973, -179.28519) 0,99970156
15 LINKS_ZUM HANDGELENK (1073.8956, 654.9725, -820.93463) 0,9737737
16 RECHTSWEISEND (218 27956, 1015.70435, -683.6567) 0,995568
17 LINKS ZURÜCKGEBEN (1146.1635, 609.6432, -956.9976) 0,95273364
18 RECHTS_PINKY (176.17755, 1065.838, -776.5006) 0,9785348

Details

Weitere Implementierungsdetails zu den zugrunde liegenden ML-Modellen für diese API finden Sie in unserem Google AI-Blogpost.

Weitere Informationen zu unseren ML-Fairness-Praktiken und zum Training der Modelle finden Sie auf unserer Modellkarte.