Zadanie MediaPipe Hand Landmarker umożliwia wykrywanie punktów orientacyjnych dłoni na obrazie. Za pomocą tego zadania możesz zlokalizować kluczowe punkty dłoni i renderować na nich efekty wizualne. To zadanie działa na danych obrazów z modelem uczenia maszynowego (ML) jako dane statyczne lub ciągły strumień i wydaje punkty odniesienia dłoni w współrzędnych obrazu, punkty odniesienia dłoni w współrzędnych świata oraz rękę(lewą lub prawą) w przypadku wielu wykrytych rąk.
Rozpocznij
Aby zacząć korzystać z tego zadania, postępuj zgodnie z jednym z tych przewodników dotyczących wdrażania na platformie docelowej. Te przewodniki dotyczące poszczególnych platform zawierają podstawowe informacje o wdrażaniu tego zadania, w tym zalecany model i przykład kodu z zalecanymi opcjami konfiguracji:
- Android – przykład kodu
- Python – przykład kodu
- Web – przykład kodu – przewodnik
Szczegóły działania
W tej sekcji opisano możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.
Funkcje
- Przetwarzanie wejściowego obrazu – przetwarzanie obejmuje obrót, zmianę rozmiaru, normalizację i konwersję przestrzeni barw.
- Progień wyniku – filtrowanie wyników według progu wyniku prognozy.
Dane wejściowe zadania | Dane wyjściowe |
---|---|
Narzędzie Hand Landmarker akceptuje dane wejściowe w jednym z tych typów:
|
Funkcja Hand Landmarker zwraca te 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. Dostępne są 3 tryby: OBRAZ: tryb dla pojedynczych obrazów wejściowych. FILM: tryb dekodowanych klatek filmu. LIVE_STREAM: tryb transmisji na żywo danych wejściowych, takich jak dane z kamery. W tym trybie należy wywołać metodę resultListener, aby skonfigurować odbiornik, który będzie asynchronicznie odbierał wyniki. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
num_hands |
Maksymalna liczba rąk wykrywana przez detektor punktów orientacyjnych dłoni. | Any integer > 0 |
1 |
min_hand_detection_confidence |
Minimalny wynik ufności wykrywania dłoni, który jest uznawany za udany w przypadku modelu wykrywania dłoni. | 0.0 - 1.0 |
0.5 |
min_hand_presence_confidence |
Minimalny wynik ufności dla wyniku obecności ręki w modelu wykrywania punktów orientacyjnych ręki. W trybie wideo i w trybie transmisji na żywo, jeśli wskaźnik ufności obecności ręki z modelu punktów orientacyjnych ręki jest poniżej tego progu, funkcja Hand Landmarker uruchamia model wykrywania dłoni. W przeciwnym razie lekki algorytm śledzenia dłoni określa położenie dłoni na potrzeby wykrywania kolejnych punktów orientacyjnych. | 0.0 - 1.0 |
0.5 |
min_tracking_confidence |
Minimalny wynik ufności śledzenia dłoni, który jest uznawany za udany. To próg współczynnika podobieństwa ramki ograniczającej między dłońmi w bieżącej i ostatniej ramie. W trybie wideo i trybie strumieniowania w Hand Landmarker, jeśli śledzenie się nie powiedzie, Hand Landmarker uruchamia wykrywanie dłoni. W przeciwnym razie pomija wykrywanie dłoni. | 0.0 - 1.0 |
0.5 |
result_callback |
Ustawia odbiornik wyników w celu asynchronicznego otrzymywania wyników wykrywania, gdy punkt odniesienia ręki jest w trybie transmisji na żywo.
Ma zastosowanie tylko wtedy, gdy tryb działania ma wartość LIVE_STREAM |
Nie dotyczy | Nie dotyczy |
Modele
Narzędzie Hand Landmarker korzysta z paczki modeli z 2 modelami: modelem wykrywania dłoni i modelem wykrywania punktów orientacyjnych dłoni. Aby wykonać to zadanie, potrzebujesz pakietu modeli zawierającego oba te modele.
Nazwa modelu | Kształt wejściowy | Typ kwantowania | Karta modelu | Wersje |
---|---|---|---|---|
HandLandmarker (pełny) | 192 x 192, 224 x 224 | float 16 | info | Najnowsze |
Pakiet modeli punktów orientacyjnych dłoni wykrywa lokalizację punktów kluczowych 21 współrzędnych stawów palców dłoni w wykrytych regionach dłoni. Model został wytrenowany na około 30 tys. zdjęć rzeczywistych oraz kilku wyrenderowanych syntetycznych modeli dłoni na różnych tłach.
Pakiet modeli punktów charakterystycznych dłoni zawiera model wykrywania dłoni i model wykrywania punktów charakterystycznych dłoni. Model wykrywania dłoni wykrywa dłonie na obrazie wejściowym, a model wykrywania punktów orientacyjnych dłoni identyfikuje określone punkty orientacyjne dłoni na wyciętym obrazie dłoni zdefiniowanym przez model wykrywania dłoni.
Uruchomienie modelu wykrywania dłoni jest czasochłonne, dlatego w trybie strumieniowego przetwarzania wideo lub transmisji na żywo Hand Landmarker używa ramki ograniczającej zdefiniowanej przez model punktów orientacyjnych dłoni w jednym ujęciu, aby zlokalizować obszar dłoni w kolejnych ujęciach. Hand Landmarker ponownie uruchamia model wykrywania dłoni tylko wtedy, gdy model punktów orientacyjnych dłoni nie rozpoznaje już obecności dłoni lub nie może śledzić dłoni w ramce. Zmniejsza to liczbę przypadków, w których wskaźnik Hand Landmarker uruchamia model wykrywania dłoni.
Porównania zadań
Poniżej znajdziesz benchmarki zadań dla całego przepływu danych opartego na wytrenowanych wstępnie modelach. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 z wykorzystaniem procesora CPU lub GPU.
Nazwa modelu | Czas oczekiwania procesora | Opóźnienie GPU |
---|---|---|
HandLandmarker (full) | 17,12 ms | 12,27 ms |