Przewodnik wykrywania twarzy

3 osoby z twarzami zaznaczonymi ramkami

Zadanie MediaPipe Face Detector umożliwia wykrywanie twarzy na obrazie lub w filmie. Możesz użyć tego zadania, aby zlokalizować twarze i cechy twarzy w ramce. To zadanie wykorzystuje model uczenia maszynowego, który działa z pojedynczymi obrazami lub ciągłym strumieniem obrazów. Usługa zwraca lokalizacje twarzy wraz z tymi punktami kluczowymi: lewe oko, prawe oko, czubek nosa, usta, lewy i prawy punkt tragion.

Wypróbuj

Rozpocznij

Aby zacząć korzystać z tego zadania, postępuj zgodnie z jednym z tych przewodników po implementacji na platformie docelowej. Te przewodniki dotyczące poszczególnych platform zawierają podstawowe informacje o wdrażaniu 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 obracanie obrazu, zmianę rozmiaru, normalizację i konwersję przestrzeni kolorów.
  • Próg wyniku – filtruj wyniki na podstawie wyników prognozy.
Dane wejściowe zadania Dane wyjściowe działania
Wykrywacz twarzy akceptuje dane wejściowe w jednym z tych typów:
  • w przypadku obrazów nieruchomych,
  • Dekodowane klatki wideo
  • Transmisja wideo na żywo
Detektor twarzy zwraca te wyniki:
  • Ramki ograniczające wykryte twarze w klatce obrazu.
  • Współrzędne 6 punktów charakterystycznych twarzy 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 uruchamiania zadania. Dostępne są 3 tryby:

OBRAZ: tryb dla pojedynczych obrazów.

WIDEO: tryb dla zdekodowanych klatek filmu.

LIVE_STREAM: tryb transmisji na żywo danych wejściowych, np. z kamery. W tym trybie należy wywołać funkcję resultListener, aby skonfigurować odbiornik do asynchronicznego odbierania wyników.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence Minimalny poziom ufności, przy którym wykrywanie twarzy jest uznawane za udane. Float [0,1] 0.5
min_suppression_threshold Minimalny próg tłumienia niemaksymalnego, przy którym wykrywanie twarzy jest uznawane za nakładające się. Float [0,1] 0.3
result_callback Ustawia odbiornik wyników, aby asynchronicznie odbierać wyniki wykrywania, gdy detektor twarzy jest w trybie transmisji na żywo. Można go używać tylko wtedy, gdy tryb działania jest ustawiony na LIVE_STREAM. N/A Not set

Modele

Modele wykrywania twarzy mogą się różnić w zależności od zamierzonego zastosowania, np. wykrywania z bliskiej lub dalekiej odległości. Modele zwykle wymagają kompromisu między wydajnością, dokładnością, rozdzielczością i wymaganiami dotyczącymi zasobów, a w niektórych przypadkach zawierają dodatkowe funkcje.

Modele wymienione w tej sekcji to warianty BlazeFace, lekkiego i dokładnego detektora twarzy zoptymalizowanego pod kątem wnioskowania na mobilnych procesorach graficznych. Modele BlazeFace nadają się do zastosowań takich jak szacowanie kluczowych punktów twarzy w 3D, klasyfikacja wyrazu twarzy i segmentacja obszaru twarzy. BlazeFace korzysta z lekkiej sieci do wyodrębniania cech podobnej do MobileNetV1/V2.

BlazeFace (krótki zasięg)

Lekki model do wykrywania jednej lub wielu twarzy na zdjęciach typu selfie z aparatu smartfona lub kamery internetowej. Model jest zoptymalizowany pod kątem zdjęć z przedniego aparatu telefonu zrobionych z bliskiej odległości. Architektura modelu wykorzystuje technikę sieci konwolucyjnej Single Shot Detector (SSD) z niestandardowym koderem. Więcej informacji znajdziesz w artykule naukowym na temat Single Shot MultiBox Detector.

Nazwa modelu Kształt wejściowy Typ kwantyzacji Karta modelu Wersje
BlazeFace (krótkiego zasięgu) 128 x 128 float 16 informacje Najnowsze

BlazeFace (pełny zakres)

Stosunkowo lekki model do wykrywania jednej lub wielu twarzy na zdjęciach z aparatu smartfona lub kamery internetowej. Model jest zoptymalizowany pod kątem obrazów o pełnym zakresie, takich jak zdjęcia zrobione tylnym aparatem telefonu. Architektura modelu wykorzystuje technikę podobną do sieci konwolucyjnej CenterNet z niestandardowym koderem.

Nazwa modelu Kształt wejściowy Typ kwantyzacji Karta modelu Wersje
BlazeFace (full-range) 128 x 128 float 16 informacje Najnowsze

BlazeFace Sparse (pełny zakres)

Lżejsza wersja zwykłego modelu BlazeFace o pełnym zakresie, około 60% mniejsza. Model jest zoptymalizowany pod kątem obrazów o pełnym zakresie, takich jak zdjęcia zrobione tylnym aparatem telefonu. Architektura modelu wykorzystuje technikę podobną do sieci konwolucyjnej CenterNet z niestandardowym koderem.

Nazwa modelu Kształt wejściowy Typ kwantyzacji Karta modelu Wersje
BlazeFace Sparse (full-range) 128 x 128 float 16 informacje Najnowsze

Testy porównawcze zadań

Poniżej znajdziesz testy porównawcze zadań dla całego potoku na podstawie powyższych wstępnie wytrenowanych modeli. Wynik czasu oczekiwania to średni czas oczekiwania na Pixelu 6 przy użyciu procesora lub GPU.

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