Anleitung zur Gesichtserkennung

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 ausprobieren

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:

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:
  • Standbilder
  • Decodierte Videoframes
  • Live-Videofeed
Die Gesichtserkennung gibt folgende Ergebnisse aus:
  • Begrenzungsrahmen für erkannte Gesichter in einem Bildrahmen.
  • Koordinaten für 6 Gesichtsmarkierungen für jedes erkannte Gesicht.

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