Der neue Parameter „faces“ zur Gesichtserkennung in Bildern

Es ist eine Weile her, seit der Robot
/image/facedetect in einem Blogbeitrag aufgetreten ist. Und welcher
Zeitpunkt wäre besser, um über ihn zu sprechen, als jetzt, mit seiner neuesten Weiterentwicklung,
dem Parameter faces.
Der Robot /image/facedetect bestimmt automatisch, wo sich Gesichter in einem Bild befinden, gibt die Koordinaten zurück, schneidet um eine Gruppe herum zu oder erstellt völlig neue Bilder von jedem gefundenen Gesicht.

Die Funktionen des neuen Parameters im Überblick
Vor diesem Update hat der Robot /image/facedetect jedes gefundene Gesicht ausgeschnitten. Wenn Sie also ein Bild mit fünf Gesichtern hatten, erhielten Sie am Ende fünf kleinere Bilder, die jeweils ein einzelnes Gesicht enthalten.
Diese Option gibt es weiterhin und sie hat sich als recht hilfreich erwiesen, doch es gibt andere
Situationen, in denen das nicht ausreicht. Um auszugleichen, was dem
Robot bislang fehlte, kommt der neue Parameter
faces ins Spiel, der steuern kann, welches Gesicht anhand bestimmter
Eigenschaften des verwendeten Bildes zum Zuschneiden herangezogen wird.
Die folgende Demonstration verwendet ein kostenloses Bild von Unsplash.
Die neuen Parameterwerte kennenlernen
Hier ein Blick auf das Skript, das ich in Python geschrieben habe, um den neuen Parameter zu testen:
# pip install pytransloadit
from transloadit import client
tl = client.Transloadit('YOUR_TRANSLOADIT_KEY', 'YOUR_TRANSLOADIT_SECRET')
assembly = tl.new_assembly()
assembly.add_file(open("test.jpg", "rb"))
assembly.add_step("face-detect", "/image/facedetect", { "crop": True, "faces": "each"} )
# Start the Assembly
response = assembly.create(wait=True)
result_url = response.data.get('results').get('face-detect')
print("Your result:", result_url) #returns a url containing the result of the program
Im obigen Programm verwenden wir das folgende Eingabebild:

Ersetzen Sie unbedingt YOUR_TRANSLOADIT_KEY und YOUR_TRANSLOADIT_SECRET durch die
Schlüssel Ihres eigenen Kontos. Sie finden sie in den
API-Einstellungen Ihres Kontos.
In den folgenden Beispielen zeige ich nur den Teil des Codes, der mit einem neuen Wert für den
Parameter faces geändert wurde, also Zeile 8.
Wert: "group"
Dies ist eine brandneue Funktion. group ermittelt, wo sich Gesichter in
einem Bild befinden, und fasst sie zusammen.
assembly.add_step("face-detect", "/image/facedetect", { "crop": True, "faces": "group"} )
Daraus ergeben sich folgende Ergebnisse:

Wert: "each"
Dies ist die ursprüngliche Funktionsweise und der Standardwert. "each" gibt
jedes Gesicht einzeln zurück. Das kann nützlich sein, um viele Avatare aus einem einzigen
Klassenfoto zu extrahieren, oder vielleicht auch, um schnell herauszufinden, wie viele Gesichter auf
einem Bild zu sehen sind.
assembly.add_step("face-detect", "/image/facedetect", { "crop": True, "faces": "each"} )
Daraus ergeben sich folgende Ergebnisse:

Wert: "max-confidence"
Drittens sehen wir uns an, was passiert, wenn Sie faces auf den Wert
"max-confidence" setzen. Sie werden sehen, dass das Bild verarbeitet und nur das eine
Gesicht mit dem höchsten Konfidenzwert ausgegeben wird. Dieser Wert wird im Hintergrund mithilfe
eines neuronalen Netzes bestimmt und gibt an, wie sicher es ist, dass der erkannte Bereich
tatsächlich ein Gesicht enthält. Das ist nützlich, um automatisch einen Avatar zuzuschneiden.
assembly.add_step("face-detect", "/image/facedetect", { "crop": True, "faces": "max-confidence"} )
Daraus ergeben sich folgende Ergebnisse:

Wert: "max-size"
Der vierte betrachtete Wert ist "max-size". Dieser Wert berechnet, welches der
gefundenen Gesichter die größte Fläche hat, und gibt das Ergebnis aus. Damit wird das dominante
Gesicht aus einem Bild extrahiert, aber nicht zwangsläufig dasjenige mit dem höchsten
Konfidenzwert.
assembly.add_step("face-detect", "/image/facedetect", { "crop": True, "faces": "max-size"} )
Daraus ergeben sich folgende Ergebnisse:

Wert: Ganzzahl
Der fünfte und letzte betrachtete Wert ist, nun ja, eine beliebige Ganzzahl. Dieser Wert wählt
anhand eines Index ein Gesicht aus dem Bild aus, wobei die Gesichter im Bild von der oberen linken
Ecke aus sortiert werden. Das ist nützlich, wenn Endnutzer ein Gesicht in zwei Durchgängen auswählen
sollen. Oder vielleicht möchten Sie die zweite Person von links aus einem Bild auswählen; in diesem
Fall geben Sie 1 an, da die Zählung bei null beginnt.
assembly.add_step("face-detect", "/image/facedetect", { "crop": True, "faces": 1} )
Daraus ergeben sich folgende Ergebnisse:

Damit endet unser Überblick zum Robot
/image/facedetect und seinem neuen Parameter
faces. Wir sind gespannt, was Sie mit diesen neuen Funktionen in
Kombination mit allen anderen Robots/Funktionen bauen werden, die
Ihnen zur Verfügung stehen.