Mit der MediaPipe-Aufgabe „Gesichtserkennung“ können Sie Gesichter in einem Bild oder Video erkennen. Mit dieser Aufgabe können Sie Gesichter und Gesichtsmerkmale in einem Frame finden. Für diese Aufgabe wird ein ML-Modell (Machine Learning) verwendet, das mit einzelnen Bildern oder einem kontinuierlichen Bildstream funktioniert. Die Aufgabe gibt die Gesichtspositionen sowie die folgenden Gesichtsmerkmale aus: linkes Auge, rechtes Auge, Nasenspitze, Mund, Tragion des linken Auges und Tragion des rechten Auges.
Jetzt starten
Folgen Sie einer dieser Implementierungsanleitungen für Ihre Zielplattform, um diese Aufgabe zu verwenden. In diesen plattformspezifischen Anleitungen werden Sie durch die grundlegende Implementierung dieser Aufgabe geführt. Sie finden dort auch 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
- Eingabebildverarbeitung: Die Verarbeitung umfasst Bilddrehung, Größenänderung, Normalisierung und Farbraumkonvertierung.
- Grenzwert für die Bewertung: Ergebnisse nach Bewertungen filtern.
Aufgabeneingaben | Aufgabenausgaben |
---|---|
Der Gesichtserkennungsalgorithmus akzeptiert einen der folgenden Datentypen als Eingabe:
|
Der Gesichtserkennungsalgorithmus gibt die folgenden Ergebnisse aus:
|
Konfigurationsoptionen
Für diese Aufgabe gibt es die folgenden Konfigurationsoptionen:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
running_mode |
Legt den Ausführungsmodus für die Aufgabe fest. Es gibt drei Modi: IMAGE: Der Modus für Eingaben mit einem einzelnen Bild. 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 für den asynchronen Empfang von Ergebnissen einzurichten. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
min_detection_confidence |
Der Mindestwert für die Konfidenz, damit die Gesichtserkennung als erfolgreich gilt. | Float [0,1] |
0.5 |
min_suppression_threshold |
Der Mindestgrenzwert für die Nicht-Maximalunterdrückung, ab dem die Gesichtserkennung als überlappend betrachtet wird. | Float [0,1] |
0.3 |
result_callback |
Legt fest, dass der Ergebnisempfänger die Erkennungsergebnisse asynchron empfängt, wenn sich der Gesichtserkennungsdienst im Livestream-Modus befindet. Kann nur verwendet werden, wenn der Ausführungsmodus auf LIVE_STREAM festgelegt ist. |
N/A |
Not set |
Modelle
Modelle für die Gesichtserkennung können je nach Anwendungsfall variieren, z. B. für die Erkennung in kurzer und in großer Entfernung. Bei Modellen werden in der Regel Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen eingegangen. In einigen Fällen sind auch zusätzliche Funktionen enthalten.
Die in diesem Abschnitt aufgeführten Modelle sind Varianten von BlazeFace, einem schlanken und präzisen Gesichtserkennungstool, das für die mobile GPU-Inferenz optimiert ist. BlazeFace-Modelle eignen sich für Anwendungen wie die Schätzung von 3D-Gesichterpunkten, die Ausdrucksklassifizierung und die Segmentierung von Gesichtsregionen. BlazeFace verwendet ein schlankes Netzwerk zur Feature-Extraktion, das MobileNetV1/V2 ähnelt.
BlazeFace (kurze Reichweite)
Ein einfaches Modell zum Erkennen einzelner oder mehrerer Gesichter in Selfie-ähnlichen Bildern von einer Smartphone-Kamera oder Webcam. Das Modell ist für Bilder von der Frontkamera eines Smartphones aus kurzer Entfernung optimiert. Die Modellarchitektur verwendet ein Convolutional-Netzwerk mit Single Shot Detector (SSD) mit einem benutzerdefinierten Encoder. Weitere Informationen finden Sie im Forschungsartikel zum Single Shot MultiBox Detector.
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
BlazeFace (kurze Reichweite) | 128 x 128 | float 16 | info | Neueste |
BlazeFace (Vollband)
Ein relativ einfaches Modell zum Erkennen einzelner oder mehrerer Gesichter in Bildern von einer Smartphone-Kamera oder Webcam. Das Modell ist für Vollbereichsbilder optimiert, z. B. solche, die mit der Rückkamera eines Smartphones aufgenommen wurden. Die Modellarchitektur verwendet ein Verfahren, das dem eines CenterNet-Convolutional-Netzwerks mit einem benutzerdefinierten Encoder ähnelt.
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
BlazeFace (Vollband) | 128 x 128 | float 16 | Info | Demnächst |
BlazeFace Sparse (Vollbereich)
Eine leichtere Version des regulären BlazeFace-Modells mit voller Reichweite, das etwa 60% kleiner ist. Das Modell ist für Vollbereichsbilder optimiert, z. B. solche, die mit der Rückkamera eines Smartphones aufgenommen wurden. Die Modellarchitektur verwendet eine Technik, die dem Convolutional Network CenterNet mit einem benutzerdefinierten Encoder ähnelt.
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
BlazeFace Sparse (Vollbereich) | 128 x 128 | float 16 | Info | Demnächst |
Benchmarks für Aufgaben
Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline, die auf den oben genannten vorab trainierten Modellen basieren. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.
Modellname | CPU-Latenz | GPU-Latenz |
---|---|---|
BlazeFace (kurze Reichweite) | 2,94 ms | 7,41 ms |