[PYTHON] Gesichtserkennung durch Amazon Rekognition

Mit Amazon Rekognition habe ich versucht, das Gesicht im Eingabebild mit einem Rechteck einzuschließen.

Was ist Amazon Rekognition?

Amazon Rekognition ist einer der AI-Dienste von AWS, der die Bilderkennung unterstützt. Darüber hinaus decken die AWS AI-Services verschiedene Bereiche ab, z. B. Bilderkennung und Verarbeitung natürlicher Sprache, und maschinelles Lernen kann in Anwendungen ohne tiefgreifende Kenntnisse des maschinellen Lernens integriert werden. Maschinelles Lernen kann über die API einfach durch Aufbereiten von Daten verwendet werden. Es gibt Funktionen wie.

Ausführungsumgebung

OS:Windows10 Sprache: Python 3.7

Vorbereitungen

Legen Sie die folgenden Anmeldeinformationen in AWS CLI fest (aws configure).

AWS Access Key ID AWS Secret Access Key Default region name Default output format

Quellcode (face_detect.py)

import boto3
import sys
from PIL import Image,ImageDraw

Argumente prüfen

if len(sys.argv) != 2:

print ('Bitte geben Sie die Bilddatei als Argument an.') exit()

Erstellen Sie einen Client für #Rekognition client = boto3.client('rekognition')

Führen Sie detect_faces mit der Bilddatei als Argument aus

with open(sys.argv[1],'rb') as image:
	response = client.detect_faces(Image={'Bytes':image.read()},Attributes=['ALL'])

Wenn das Gesicht nicht erkannt wird, endet der Vorgang

if len(response['FaceDetails'])==0:

print ('Das Gesicht wurde nicht erkannt.') else: #Erstellen Sie eine Bilddatei für einen rechteckigen Satz basierend auf der Eingabebilddatei img = Image.open(sys.argv[1]) imgWidth,imgHeight = img.size draw = ImageDraw.Draw(img)

Führen Sie eine rechteckige Satzverarbeitung für die Anzahl der erkannten Flächen durch

	for faceDetail in response['FaceDetails']:

Informationen zur Position / Größe des Gesichts erhalten Sie von #BoundingBox box = faceDetail['BoundingBox'] left = imgWidth * box['Left'] top = imgHeight * box['Top'] width = imgWidth * box['Width'] height = imgHeight * box['Height']

Legen Sie die Positions- und Größeninformationen des Rechtecks fest

		points = (
			(left,top),
			(left + width,top + height)
		)

Schließen Sie das Gesicht in ein Rechteck ein

		draw.rectangle(points,outline='lime')

Bilddatei speichern

	img.save('detected_' + sys.argv[1]) 	

Bilddatei anzeigen

	img.show()

Kurzer Kommentar

Der Umriss ist wie folgt.

(1) Holen Sie sich die Bilddatei, die zum Zeitpunkt der Programmausführung in Rekognition eingegeben werden soll, aus dem Argument. (2) Führen Sie die erkennungsflächen von Rekognition mit der Bilddatei in (1) oben als Argument aus. (3) Beziehen Sie die erkannten Informationen zur Position / Größe des Gesichts aus Jsons Gesichtsdetails / Begrenzungsrahmen, die von Rekognition zurückgegeben wurden. ④ Erstellen Sie eine Bilddatei mit einem Rechteck von ③ oben und zeigen Sie sie an.

Ausführungsergebnis

Befehl

python face_detect.py ichiro1.jpg

Eingabebild (ichiro1.jpg)

ichiro1.jpg

Ausgabebild (erkannt_ichiro1.jpg)

detected_ichiro1.jpg

Nicht nur Ichiro, sondern auch die Zuschauer sind sich dessen bewusst.

Zusammenfassung

Der AWS AI-Service ist nicht nur auf die Erkennung beschränkt, sondern auch ein praktischer Service, mit dem Sie das maschinelle Lernen über die API problemlos nutzen können. Auch dieses Mal habe ich nur Rechteck versucht, aber es gibt verschiedene Jsons, die von Rekognition zurückgekehrt sind, wie Geschlecht und Alter, also denke ich, dass Sie verschiedene andere Dinge ausprobieren können.

Recommended Posts

Gesichtserkennung durch Amazon Rekognition
Gesichtserkennung mit Edison
Erstellen Sie mit Terraform (Amazon Rekognition) eine serverlose Gesichtserkennung.
Gesichtserkennung mit OpenCV von Python
Gesichtserkennung / Schneiden mit OpenCV
Versuchen Sie die Gesichtserkennung mit Python
Gesichtserkennung mit Lambda (Python) + Erkennung
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Erste Anime-Gesichtserkennung mit Chainer
Gesichtserkennung mit Kamera mit opencv3 + python2.7
Ich habe versucht, das Gesicht mit OpenCV zu erkennen
Gesichtserkennung von Anime-Charakteren mit Keras
[python, openCV] base64 Gesichtserkennung in Bildern
Serverlose Gesichtserkennungs-API mit Python
[Python3] [Ubuntu16] [Docker] Versuchen Sie die Gesichtserkennung mit OpenFace
Bilderkennung mit Keras
Versuchen wir nun die Gesichtserkennung mit Chainer (Vorhersagephase).
Einfacher Gesichtserkennungsversuch mit Jetson Nano und Webkamera
Versuchen wir nun die Gesichtserkennung mit Chainer (Lernphase)
Gesichtserkennung in Echtzeit mit von getUserMedia [HTML5, openCV] aufgenommenem Video
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Gesichtserkennung mit Python + dlib
Gesichtserkennung mit Python + OpenCV
Objekt-Co-Lokalisierung zur Gesichtserkennung
Gesichtserkennung mit Haar Cascades
Erreiche "Bals" mit Amazon Echo
Bilderkennung mit Keras + OpenCV
Anime-Gesichtserkennung mit OpenCV
ZOOM, indem Sie Ihr Gesicht durch ein Twitter-Symbol mit openCV-Gesichtserkennung ersetzen
Zahlenerkennung in Bildern mit Python
Bereiten Sie die Pipenv-Umgebung mit Amazon Linux 2 vor
Erkennung derselben Person durch Amazon Rekognition
Gesichtserkennung mit Hauptkomponentenanalyse
[OpenCV] Persönliche Identifikation mit Gesichtsfoto
Python x Tensoflow x Gesichtserkennung
Ich habe versucht, das Gesicht mit MTCNN zu erkennen
Schneiden Sie das Gesicht mit Python + OpenCV aus
Lassen Sie uns mit Azure Face Emotionen erkennen
Senden Sie E-Mails automatisch mit Amazon SES
Objekterkennung mit openCV durch traincascade
Mit Amazon Transcribe erstellte Untertiteldaten