Przewodnik wykrywania twarzy

Zadanie Wykrywacz twarzy MediaPipe umożliwia wykrywanie twarzy na zdjęciu lub filmie. Dzięki temu możesz zlokalizować twarze w kadrze. To zadanie wykorzystuje model systemów uczących się (ML), który działa z pojedynczymi obrazami lub ciągłym strumieniem obrazów. Zadanie określa lokalizacje twarzy i uwzględnia te najważniejsze punkty: lewe i prawe oko, opuszka nosa, usta, tragie dla lewego oka oraz tragie w prawym oku.

Wypróbuj!

Rozpocznij

Zacznij od wykonania tego zadania, postępując zgodnie z instrukcjami podanymi w jednym z przewodników po 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
Wykrywacz twarzy akceptuje dane jednego z tych typów:
  • nieruchome obrazy;
  • Zdekodowane klatki wideo
  • Kanał z obrazem na żywo
Wykrywacz twarzy generuje następujące wyniki:
  • Pola ograniczające wykryte twarze w ramce obrazu.
  • Współrzędne 6 punktów orientacyjnych dla każdej wykrytej twarzy.

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
min_detection_confidence Minimalny stopień pewności, że wykrywanie twarzy zostanie uznane za udane. Float [0,1] 0.5
min_suppression_threshold Minimalny próg niemaksymalnego ograniczenia wykrywania twarzy, który ma być uznawany za nakładający się. Float [0,1] 0.3
result_callback Powoduje, że detektor wyników będzie asynchronicznie otrzymywać wyniki wykrywania, gdy czytnik twarzy działa w trybie transmisji na żywo. Tej opcji można używać tylko wtedy, gdy tryb biegowy jest ustawiony na LIVE_STREAM. N/A Not set

Modele

Modele wykrywania twarzy mogą się różnić w zależności od przeznaczenia, np. wykrywania małego i dużego zasięgu. Modele zwykle kompromiują też wymagania dotyczące wydajności, dokładności, rozdzielczości i zasobów, a w niektórych przypadkach zawierają dodatkowe funkcje.

Modele wymienione w tej sekcji to warianty BlazeFace – lekkiego i precyzyjnego wykrywania twarzy zoptymalizowanego pod kątem wnioskowania przez GPU. Modele BlazeFace nadają się do takich zastosowań jak szacowanie kluczowych punktów twarzy w 3D, klasyfikacja ekspresji i segmentacja obszarów twarzy. BlazeFace korzysta z lekkiej sieci wyodrębniania funkcji podobnej do MobileNetV1/V2.

BlazeFace (krótki zasięg)

Lekki model do wykrywania pojedynczych twarzy lub wielu twarzy na zdjęciach przypominających selfie, które robi się aparaty fotograficzne lub kamery w smartfonie. Model jest zoptymalizowany pod kątem zdjęć z krótkiego zakresu wykonanego przednim aparatem telefonu. W architekturze modelu wykorzystywana jest technika splotowa detektora pojedynczego zdjęcia (SSD) z własnym koderem. Więcej informacji znajdziesz w publikacji badawczej na temat wykrywacza wielofunkcyjnego pojedynczego ujęcia.

Nazwa modelu Wprowadź kształt Typ kwantyzacji Karta modelu Wersje
BlazeFace (krótki zasięg) 128 x 128 liczba zmiennoprzecinkowa 16 informacje Najnowsze

BlazeFace (pełny zakres)

Względnie lekki model do wykrywania pojedynczych twarzy lub wielu twarzy na zdjęciach zrobionych za pomocą aparatu lub kamery internetowej w smartfonie. Model jest zoptymalizowany pod kątem zdjęć w pełnym zakresie, np. wykonanych tylnym aparatem telefonu. Architektura modelu korzysta z metody podobnej do sieci splotowej CenterNet z niestandardowym koderem.

Nazwa modelu Wprowadź kształt Typ kwantyzacji Karta modelu Wersje
BlazeFace (pełny zakres) 128 x 128 liczba zmiennoprzecinkowa 16 informacje Wkrótce

BlazeFace Sparse (pełny zakres)

Lżejsza wersja zwykłego, pełnozakresowego modelu BlazeFace. Jest mniejsza o około 60%. Model jest zoptymalizowany pod kątem zdjęć w pełnym zakresie, np. wykonanych tylnym aparatem telefonu. W architekturze modelu stosowana jest technika podobna do metody konwolucyjnej CenterNet z własnym koderem.

Nazwa modelu Wprowadź kształt Typ kwantyzacji Karta modelu Wersje
BlazeFace Sparse (pełny zakres) 128 x 128 liczba zmiennoprzecinkowa 16 informacje Wkrótce

Testy porównawcze działań

Oto porównania zadań dla całego potoku na podstawie powyższych wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 korzystającym z procesora / GPU.

Nazwa modelu Czas oczekiwania procesora Opóźnienie GPU
BlazeFace (krótki zasięg) 2,94 ms 7,41 ms