Mit der Aufgabe „MediaPipe-Gesichtserkennung“ können Sie Gesichter in einem Bild oder Video erkennen. Sie können diese Aufgabe verwenden, um Gesichter und Gesichtsmerkmale innerhalb eines Rahmens zu finden. Bei dieser Aufgabe wird ein Modell für maschinelles Lernen (ML) verwendet, das mit einzelnen Bildern oder einem kontinuierlichen Bilderstrom arbeitet. Die Aufgabe gibt Gesichterpositionen zusammen mit den folgenden wichtigen Gesichtspunkten aus: linkes Auge, rechtes Auge, Nasenspitze, Mund, Tragion des linken Auges und Tragion des rechten Auges.
Jetzt starten
Beginnen Sie mit dieser Aufgabe, indem Sie einem dieser Implementierungsleitfäden für Ihre Zielplattform folgen. Diese plattformspezifischen Leitfäden führen Sie durch eine grundlegende Implementierung dieser Aufgabe, einschließlich eines empfohlenen Modells und eines Codebeispiels mit empfohlenen Konfigurationsoptionen:
- Android – Codebeispiel – Anleitung
- Python – Codebeispiel – Anleitung
- Web – Codebeispiel – Anleitung
- iOS – Codebeispiel – Leitfaden
Taskdetails
In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.
Funktionen
- Eingabebildverarbeitung: Die Verarbeitung umfasst Bilddrehung, Größenanpassung, Normalisierung und Farbraumkonvertierung.
- Punktzahl-Schwellenwert: Filtern Sie Ergebnisse basierend auf den Vorhersagewerten.
Aufgabeneingaben | Aufgabenausgaben |
---|---|
Die Gesichtserkennung unterstützt die Eingabe eines der folgenden Datentypen:
|
Die Gesichtserkennung gibt folgende Ergebnisse aus:
|
Konfigurationsoptionen
Diese Aufgabe hat die folgenden Konfigurationsoptionen:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
running_mode |
Legt den Ausführungsmodus für die Task fest. Es gibt drei Modi: IMAGE: Der Modus für Einzelbildeingaben. VIDEO: Der Modus für decodierte Frames eines Videos. LIVE_STREAM: Der Modus für einen Livestream der Eingabedaten, z. B. von einer Kamera. In diesem Modus muss resultListener aufgerufen werden, um einen Listener einzurichten, der die Ergebnisse asynchron empfängt. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
min_detection_confidence |
Der Mindestkonfidenzwert, mit dem die Gesichtserkennung als erfolgreich gilt. | Float [0,1] |
0.5 |
min_suppression_threshold |
Der minimale nicht maximale Grenzwert für die Gesichtserkennung, der als überlappend eingestuft wird. | Float [0,1] |
0.3 |
result_callback |
Legt den Ergebnis-Listener so fest, dass er die Erkennungsergebnisse asynchron empfängt, wenn sich der Gesichtserkennung im Livestreammodus 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. bei der Kurz- und Langstreckenerkennung. Modelle machen in der Regel auch Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen und beinhalten in einigen Fällen zusätzliche Funktionen.
Die in diesem Abschnitt aufgeführten Modelle sind Varianten von BlazeFace, einem schlanken und genauen Gesichtserkennung, der für mobile GPU-Inferenzen optimiert ist. BlazeFace-Modelle eignen sich für Anwendungen wie die 3D-Gesichts-Keypoint-Schätzung, die Klassifizierung von Ausdrücken und die Segmentierung der Gesichtsregionen. BlazeFace verwendet ein einfaches Netzwerk zur Featureextraktion ähnlich wie MobileNetV1/V2.
BlazeFace (Nahbereich)
Ein leichtes Modell zur Erkennung einzelner oder mehrerer Gesichter in Selfie-ähnlichen Bildern einer Smartphonekamera oder Webcam. Das Modell ist für Bilder der Frontkamera von Smartphones aus kurzer Distanz optimiert. In der Modellarchitektur wird ein Convolutional Network-Verfahren (Single Shot Detector, SSD) mit einem benutzerdefinierten Encoder verwendet. Weitere Informationen finden Sie im Forschungsbericht Single Shot Multibox Detector.
Modellname | Form eingeben | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
BlazeFace (Kurzbereich) | 128 x 128 | Gleitkommazahl 16 | Informationen | Neueste |
BlazeFace (Breitband)
Ein relativ leichtes Modell zur Erkennung einzelner oder mehrerer Gesichter in Bildern einer Smartphonekamera oder Webcam. Das Modell ist für Vollbildaufnahmen optimiert, z. B. Bilder, die mit der rückseitigen Kamera eines Smartphones aufgenommen wurden. Die Modellarchitektur verwendet ein Verfahren, das einem CenterNet-Faltnetzwerk mit einem benutzerdefinierten Encoder ähnelt.
Modellname | Form eingeben | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
BlazeFace (Breitband) | 128 x 128 | Gleitkommazahl 16 | Info | Bald verfügbar |
BlazeFace Sparse (Breitband)
Eine leichtere Version des regulären Breitbandmodells BlazeFace, etwa 60% kleiner. Das Modell ist für Breitbandbilder optimiert, z. B. für Bilder, die mit der Rückkamera eines Smartphones aufgenommen wurden. Die Modellarchitektur verwendet ein Verfahren, das einem CenterNet-Faltnetzwerk mit einem benutzerdefinierten Encoder ähnelt.
Modellname | Form eingeben | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
BlazeFace Sparse (Breitband) | 128 x 128 | Gleitkommazahl 16 | Info | Bald verfügbar |
Aufgaben-Benchmarks
Im Folgenden sind die Aufgaben-Benchmarks für die gesamte Pipeline basierend auf den oben vortrainierten Modellen aufgeführt. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.
Modellname | CPU-Latenz | GPU-Latenz |
---|---|---|
BlazeFace (Nahbereich) | 2,94 ms | 7,41 ms |