Dans la continuité de Dernière fois, j'ai essayé de détecter la même personne en utilisant Amazon Rekogniton.
La même personne est détectée à l'aide de l'API appelée compare_faces d'Amazon Rekognition. J'entre deux images dans compare_faces, la première est l'image de la personne que je veux détecter, et la seconde est l'image à détecter.
OS:Windows10 Langage: Python 3.7
Définissez les informations d'identification suivantes dans AWS CLI (aws configure).
AWS Access Key ID AWS Secret Access Key Default region name Default output format
face_compare.py
import boto3
import sys
from PIL import Image,ImageDraw
#Vérification des arguments
if len(sys.argv) != 3:
print('Veuillez spécifier deux fichiers image comme arguments.')
exit()
#Créer un client pour Rekognition
client = boto3.client('rekognition')
#Comparer avec deux fichiers image comme arguments_Exécuter des visages
with open(sys.argv[1],'rb') as source:
with open(sys.argv[2],'rb') as target:
response = client.compare_faces(SourceImage={'Bytes':source.read()},TargetImage={'Bytes':target.read()})
#Si la même personne n'est pas détectée, le processus se termine
if len(response['FaceMatches'])==0:
print('La même personne n'a pas été détectée.')
else:
#Créer un fichier image pour un ensemble rectangulaire basé sur le deuxième fichier image
img = Image.open(sys.argv[2])
imgWidth,imgHeight = img.size
draw = ImageDraw.Draw(img)
#Effectue un traitement de jeu rectangulaire pour le nombre de visages détectés
for faceMatch in response['FaceMatches']:
#Obtenir des informations sur la position / la taille du visage de BoundingBox
box = faceMatch['Face']['BoundingBox']
left = imgWidth * box['Left']
top = imgHeight * box['Top']
width = imgWidth * box['Width']
height = imgHeight * box['Height']
#Définir les informations de position et de taille du rectangle
points = (
(left,top),
(left + width,top + height)
)
#Entourez le visage dans un rectangle
draw.rectangle(points,outline='lime')
#Enregistrer le fichier image
img.save('detected_' + sys.argv[2])
#Afficher le fichier image
img.show()
Le plan est comme suit.
(1) Obtenez deux fichiers image à entrer dans Rekognition à partir des arguments au moment de l'exécution du programme. (2) Exécutez compare_faces de Rekognition avec le fichier image dans (1) ci-dessus comme argument. (3) Obtenez les informations de position / taille du visage reconnues à partir des correspondances de visage / de la zone de délimitation de Json renvoyées par Rekognition. ④ Créez un fichier image avec un rectangle de ci-dessus et affichez-le.
python face_compare.py ichiro1.jpg ichiro2.jpg
Il a détecté Ichiro.
Semblable à detect_faces dans Last time, vous pouvez facilement effectuer une reconnaissance d'image à l'aide de l'API. En utilisant compare_faces, vous pouvez facilement extraire la personne que vous souhaitez trouver à partir d'un grand nombre d'images. Selon le site AWS, il est utilisé par des sociétés de presse et des sociétés de services photo au Japon.