Przewodnik wykrywania punktów orientacyjnych utrzymywania pozycji

Zadanie MediaPipe Pose pointer umożliwia wykrywanie na zdjęciach lub filmach punktów orientacyjnych ludzkich ciał. Możesz używać tego zadania do identyfikowania kluczowych lokalizacji ciała, analizowania postawy i kategoryzowania ruchów. To zadanie wykorzystuje modele systemów uczących się, które działają z pojedynczymi obrazami lub filmami. Zadanie wyprowadza punkty orientacyjne ustalania pozycji ciała we współrzędnych zdjęcia i w trójwymiarowych współrzędnych świata.

Wypróbuj!

Rozpocznij

Zacznij od wykonania tego zadania, postępując zgodnie z instrukcjami opisanymi w przewodniku implementacji dla platformy docelowej. Przewodniki dotyczące poszczególnych platform przeprowadzą Cię przez podstawowe wdrożenie tego zadania, w tym zalecany model i przykładowy kod z zalecanymi opcjami konfiguracji:

Szczegóły działania

W tej sekcji opisujemy możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.

Funkcje

  • Przetwarzanie obrazu wejściowego – przetwarzanie obejmuje obrót obrazu, zmianę jego rozmiaru, normalizację i konwersję przestrzeni kolorów.
  • Próg wyniku – filtrowanie wyników na podstawie wyników prognozy.
Dane wejściowe zadań Wyniki działania
Punkt orientacyjny pozycji przyjmuje dane jednego z tych typów danych:
  • nieruchome obrazy;
  • Zdekodowane klatki wideo
  • Kanał z obrazem na żywo
Punkt orientacyjny pozycji generuje następujące wyniki:
  • Umieszczanie punktów orientacyjnych na znormalizowanych współrzędnych zdjęcia
  • Ustawianie punktów orientacyjnych we współrzędnych świata
  • Opcjonalnie: maska podziału na segmenty dla pozycji.

Opcje konfiguracji

To zadanie ma te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
running_mode Ustawia tryb działania zadania. Są 3 tryby:

IMAGE: tryb wprowadzania pojedynczych obrazów.

WIDEO: tryb dekodowanych klatek filmu.

TRANSMISJA NA ŻYWO: tryb transmisji danych wejściowych na żywo, np. z kamery. W tym trybie należy wywołać metodę resultListener, aby skonfigurować odbiornik, który będzie odbierał wyniki asynchronicznie.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_poses Maksymalna liczba pozycji, które może wykryć Punkt orientacyjny pozycji. Integer > 0 1
min_pose_detection_confidence Minimalny poziom ufności, że wykrywanie pozycji zostanie uznane za udane. Float [0.0,1.0] 0.5
min_pose_presence_confidence Minimalny wskaźnik ufności dotyczący obecności pozycji podczas wykrywania punktu orientacyjnego pozycji. Float [0.0,1.0] 0.5
min_tracking_confidence Minimalny wskaźnik ufności pozwalający na uznanie śledzenia pozycji za udane. Float [0.0,1.0] 0.5
output_segmentation_masks Określa, czy Kreator elementów budowy pozycji generuje maskę podziału na segmenty dla wykrytej pozycji. Boolean False
result_callback Ustawia detektor wyników tak, aby asynchronicznie otrzymywał wyniki dotyczące punktów orientacyjnych, gdy kreator pozycji jest w trybie transmisji na żywo. Tego ustawienia można używać tylko wtedy, gdy tryb biegowy jest ustawiony na LIVE_STREAM ResultListener N/A

Modele

Funkcja wyznaczania pozycji wykorzystuje serię modeli do przewidywania punktów orientacyjnych pozycji. Pierwszy z nich wykrywa obecność ludzkich ciał w ramce, a drugi lokalizuje punkty orientacyjne na tych ciałach.

Poniższe modele są prezentowane w formie pakietu modeli, który można pobrać:

  • Model wykrywania pozycji: wykrywa obecność ciała za pomocą kilku punktów orientacyjnych pozycji.
  • Pozycja w modelu orientacyjnym: dodaje pełne mapowanie położenia. Model uzyskuje oszacowanie 33 trójwymiarowych punktów orientacyjnych pozycji.

Ten pakiet korzysta z splotowej sieci neuronowej podobnej do MobileNetV2 i jest zoptymalizowany pod kątem aplikacji do fitnessu w czasie rzeczywistym na urządzeniu. Ten wariant modelu BlazePose wykorzystuje GHUM, czyli potok 3D do modelowania kształtu ludzkiego, do oszacowania pełnego położenia ciała w 3D na zdjęciach lub filmach.

Pakiet modeli Wprowadź kształt Typ danych Karty modelu Wersje
Punkt orientacyjny pozycji (lite) Wykrywanie pozycji: 224 x 224 x 3
Punkt orientacyjny pozycji: 256 x 256 x 3
liczba zmiennoprzecinkowa 16 informacje Najnowsze
Punkt orientacyjny pozycji (pełny) Wykrywanie pozycji: 224 x 224 x 3
Punkt orientacyjny pozycji: 256 x 256 x 3
liczba zmiennoprzecinkowa 16 informacje Najnowsze
Punkt orientacyjny pozycji (ciężki) Wykrywanie pozycji: 224 x 224 x 3
Punkt orientacyjny pozycji: 256 x 256 x 3
liczba zmiennoprzecinkowa 16 informacje Najnowsze

Pozycjonowanie modelu punktu orientacyjnego

Ten model przedstawia 33 punkty orientacyjne i odzwierciedla przybliżone położenie następujących części ciała:

0 - nose
1 - left eye (inner)
2 - left eye
3 - left eye (outer)
4 - right eye (inner)
5 - right eye
6 - right eye (outer)
7 - left ear
8 - right ear
9 - mouth (left)
10 - mouth (right)
11 - left shoulder
12 - right shoulder
13 - left elbow
14 - right elbow
15 - left wrist
16 - right wrist
17 - left pinky
18 - right pinky
19 - left index
20 - right index
21 - left thumb
22 - right thumb
23 - left hip
24 - right hip
25 - left knee
26 - right knee
27 - left ankle
28 - right ankle
29 - left heel
30 - right heel
31 - left foot index
32 - right foot index

Dane wyjściowe modelu zawierają zarówno znormalizowane współrzędne (Landmarks), jak i współrzędne światowe (WorldLandmarks) każdego punktu orientacyjnego.