Przewodnik wykrywania twarzy

3 osoby z twarzami zaznaczonymi za pomocą ramek

Zadanie MediaPipe Face Detector umożliwia wykrywanie twarzy na obrazie lub w filmie. Za pomocą tego zadania możesz zlokalizować twarze i cechy twarzy w ramce. W tym zadaniu używamy modelu uczenia maszynowego, który działa z pojedynczymi obrazami lub ciągłym strumieniem obrazów. Zadanie zwraca położenie twarzy oraz następujące punkty kluczowe twarzy: lewe oko, prawe oko, czubek nosa, usta, lewy kąt oka i prawy kąt oka.

Wypróbuj to!

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:

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
Detektor twarzy akceptuje dane wejściowe jednego z tych typów:
  • obrazy nieruchome,
  • Dekodowane klatki wideo
  • Transmisja na żywo
Detektor twarzy zwraca te wyniki:
  • Ramki ograniczające wykrywanych twarzy w ramce obrazu.
  • współrzędne 6 punktów orientacyjnych 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 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
min_detection_confidence Minimalny wynik ufności, który pozwala uznać wykrywanie twarzy za skuteczne. Float [0,1] 0.5
min_suppression_threshold Minimalny próg wygaszania niemaksymalizowanego wykrywania twarzy, który ma być traktowany jako nakładanie się. Float [0,1] 0.3
result_callback Gdy detektor twarzy jest w trybie transmisji na żywo, ustawia odbiornik wyników tak, aby otrzymywał wyniki asynchronicznie. Można go używać tylko wtedy, gdy tryb działania ma wartość LIVE_STREAM. N/A Not set

Modele

Modele wykrywania twarzy mogą się różnić w zależności od ich przeznaczenia, np. wykrywania z dużej lub małej odległości. Modele zwykle wymagają kompromisu między wydajnością, dokładnością, rozdzielczością i zasobami, a w niektórych przypadkach obejmują dodatkowe funkcje.

Modele wymienione w tej sekcji to warianty BlazeFace, lekkiego i dokładnego narzędzia do wykrywania twarzy zoptymalizowanego pod kątem wnioskowania na GPU w urządzeniach mobilnych. Modele BlazeFace nadają się do zastosowań takich jak szacowanie 3D punktów charakterystycznych twarzy, klasyfikacja wyrazu twarzy i segmentacja obszarów twarzy. BlazeFace korzysta z lekkie sieci do wyodrębniania cech, która jest podobna do MobileNetV1/V2.

BlazeFace (krótkodystansowy)

Lekki model do wykrywania pojedynczych lub wielu twarzy na zdjęciach typu selfie wykonanych za pomocą aparatu w smartfonie lub kamery internetowej. Model jest zoptymalizowany pod kątem zdjęć z przedniego aparatu telefonu w przypadku krótkiego zasięgu. Architektura modelu wykorzystuje technikę sieci konwolucyjnej Single Shot Detector (SSD) z niestandardowym koderem. Więcej informacji znajdziesz w artykule naukowym Single Shot MultiBox Detector.

Nazwa modelu Kształt wejściowy Typ kwantowania Karta modelu Wersje
BlazeFace (krótki zasięg) 128 x 128 float 16 info Najnowsze

BlazeFace (pełny zakres)

stosunkowo lekki model do wykrywania pojedynczych lub wielu twarzy na zdjęciach z aparatu w smartfonie lub kamery internetowej; Model jest zoptymalizowany pod kątem zdjęć o pełnym zakresie, takich jak zdjęcia zrobione tylnym aparatem telefonu. Architektura modelu wykorzystuje technikę podobną do sieci koniunkcyjnej CenterNet z niestandardowym koderem.

Nazwa modelu Kształt wejściowy Typ kwantowania Karta modelu Wersje
BlazeFace (pełny zakres) 128 x 128 float 16 informacje Wkrótce

BlazeFace Sparse (pełny zakres)

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

Nazwa modelu Kształt wejściowy Typ kwantowania Karta modelu Wersje
BlazeFace Sparse (pełny zakres) 128 x 128 float 16 informacje Wkrótce

Porównania zadań

Poniżej znajdziesz punkty odniesienia zadań dla całego potoku na podstawie wymienionych powyżej wstępnie wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 z wykorzystaniem procesora CPU lub GPU.

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