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.
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:
- Android – przykładowy kod – Przewodnik
- Python – przykładowy kod – Przewodnik
- Sieć – przykładowy kod – Przewodnik
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:
|
Punkt orientacyjny pozycji generuje następujące wyniki:
|
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.