Anleitung zur Gesichtserkennung

Drei Personen, deren Gesichter mit Begrenzungsrahmen hervorgehoben sind

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 testen!

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:

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

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