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.
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 – przewodnik
- Python – przykład kodu – przewodnik
- Sieć – przykład kodu – przewodnik
- iOS – 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 |
---|---|
Detektor twarzy akceptuje dane wejściowe jednego z tych typów:
|
Detektor twarzy 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 |
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 |