Mit der MediaPipe Face Detector-Aufgabe können Sie Gesichter in einem Bild oder Video erkennen. Mit dieser Aufgabe können Sie Gesichter und Gesichtsmerkmale in einem Frame erkennen. Für diese Aufgabe wird ein ML-Modell verwendet, das mit einzelnen Bildern oder einem kontinuierlichen Bildstream funktioniert. Bei der Aufgabe werden Gesichtspositionen zusammen mit den folgenden Gesichtsmerkmalen ausgegeben: linkes Auge, rechtes Auge, Nasenspitze, Mund, Tragion des linken Auges und Tragion des rechten Auges.
Jetzt starten
Folgen Sie einer der Implementierungsanleitungen für Ihre Zielplattform, um diese Aufgabe zu verwenden. In diesen plattformspezifischen Anleitungen wird die grundlegende Implementierung dieser Aufgabe beschrieben. Dazu gehören ein empfohlenes Modell und ein Codebeispiel mit empfohlenen Konfigurationsoptionen:
- Android – Codebeispiel – Anleitung
- Python – Codebeispiel – Anleitung
- Web – Codebeispiel – Anleitung
- iOS – Codebeispiel – Anleitung
Taskdetails
In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.
Funktionen
- Verarbeitung von Eingabebildern: Die Verarbeitung umfasst Bilddrehung, Größenänderung, Normalisierung und Farbraumkonvertierung.
- Grenzwert für die Punktzahl: Ergebnisse nach Vorhersagepunktzahlen filtern.
| Aufgabeneingaben | Aufgabenausgaben |
|---|---|
Der Gesichtserkennungs-Operator akzeptiert Eingaben mit einem der folgenden Datentypen:
|
Der Gesichtserkennung gibt die folgenden Ergebnisse aus:
|
Konfigurationsoptionen
Für diese Aufgabe sind die folgenden Konfigurationsoptionen verfügbar:
| Option | Beschreibung | Wertebereich | Standardwert |
|---|---|---|---|
running_mode |
Legt den Ausführungsmodus für die Aufgabe fest. Es gibt drei Modi: IMAGE: Der Modus für einzelne Bildeingaben. VIDEO: Der Modus für decodierte Frames eines Videos. LIVE_STREAM: Der Modus für einen Livestream von Eingabedaten, z. B. von einer Kamera. In diesem Modus muss „resultListener“ aufgerufen werden, um einen Listener einzurichten, der Ergebnisse asynchron empfängt. |
{IMAGE, VIDEO, LIVE_STREAM} |
IMAGE |
min_detection_confidence |
Der Mindestkonfidenzwert, damit die Gesichtserkennung als erfolgreich gilt. | Float [0,1] |
0.5 |
min_suppression_threshold |
Der minimale Grenzwert für die nicht maximale Unterdrückung für die Gesichtserkennung, damit eine Überlappung berücksichtigt wird. | Float [0,1] |
0.3 |
result_callback |
Legt den Ergebnis-Listener fest, der die Erkennungsergebnisse asynchron empfängt, wenn sich der Gesichtserkennungs-Algorithmus im Livestream-Modus befindet. Kann nur verwendet werden, wenn der Ausführungsmodus auf LIVE_STREAM festgelegt ist. |
N/A |
Not set |
Modelle
Gesichtserkennungsmodelle können je nach den vorgesehenen Anwendungsfällen variieren, z. B. für die Erkennung im Nah- und Fernbereich. Modelle erfordern in der Regel auch Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen und bieten in einigen Fällen zusätzliche Funktionen.
Die in diesem Abschnitt aufgeführten Modelle sind Varianten von BlazeFace, einem leichten und genauen Gesichtserkennungsmodell, das für die mobile GPU-Inferenz optimiert ist. BlazeFace-Modelle eignen sich für Anwendungen wie die Schätzung von 3D-Gesichtsschlüsselpunkten, die Klassifizierung von Gesichtsausdrücken und die Segmentierung von Gesichtsbereichen. BlazeFace verwendet ein leichtgewichtiges Netzwerk zur Extraktion von Merkmalen, das MobileNetV1/V2 ähnelt.
BlazeFace (Nahbereich)
Ein schlankes Modell zum Erkennen von einem oder mehreren Gesichtern in Selfies, die mit einer Smartphone-Kamera oder Webcam aufgenommen wurden. Das Modell ist für Bilder optimiert, die mit der Frontkamera eines Smartphones aus kurzer Entfernung aufgenommen wurden. Die Modellarchitektur verwendet ein Convolutional Network mit Single Shot Detector (SSD) und einem benutzerdefinierten Encoder. Weitere Informationen finden Sie im Forschungsbericht zum Single Shot MultiBox Detector.
| Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
|---|---|---|---|---|
| BlazeFace (Nahbereich) | 128 x 128 | float 16 | Info | Neueste |
BlazeFace (Vollbereich)
Ein relativ leichtgewichtiges Modell zum Erkennen von einzelnen oder mehreren Gesichtern auf Bildern, die mit einer Smartphone-Kamera oder Webcam aufgenommen wurden. Das Modell ist für Bilder mit vollem Dynamikbereich optimiert, z. B. für Bilder, die mit einer Rückkamera aufgenommen wurden. Die Modellarchitektur verwendet eine Technik, die einem CenterNet-Convolutional Network mit einem benutzerdefinierten Encoder ähnelt.
| Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
|---|---|---|---|---|
| BlazeFace (full-range) | 128 x 128 | float 16 | Info | Neueste |
BlazeFace Sparse (Breitband)
Eine abgespeckte Version des regulären BlazeFace-Modells mit vollem Umfang, die etwa 60% kleiner ist. Das Modell ist für Bilder mit großem Dynamikbereich optimiert, z. B. für Bilder, die mit einer nach hinten gerichteten Smartphone-Kamera aufgenommen wurden. Die Modellarchitektur verwendet eine Technik, die einem CenterNet-Convolutional Network mit einem benutzerdefinierten Encoder ähnelt.
| Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
|---|---|---|---|---|
| BlazeFace Sparse (full-range) | 128 x 128 | float 16 | Info | Neueste |
Aufgaben-Benchmarks
Hier sind die Aufgabenbenchmarks für die gesamte Pipeline basierend auf den oben genannten vortrainierten Modellen. Das Latenzergebnis ist die durchschnittliche Latenz auf dem Pixel 6 mit CPU / GPU.
| Modellname | CPU-Latenz | GPU-Latenz |
|---|---|---|
| BlazeFace (Nahbereich) | 2,94 ms | 7,41 ms |