Anleitung zur Gesichtserkennung

Drei Personen, deren Gesichter mit Begrenzungsrahmen hervorgehoben sind

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 ausprobieren

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:

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:
  • Standbilder
  • Decodierte Videoframes
  • Live-Videostream
Der Gesichtserkennung gibt die folgenden Ergebnisse aus:
  • Begrenzungsrahmen für erkannte Gesichter in einem Bildframe.
  • Koordinaten für 6 Gesichts-Landmarks für jedes erkannte Gesicht.

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