Dans divers secteurs, tels que les services financiers, les télécommunications et la santé, les clients utilisent un processus d'identité numérique, qui implique généralement plusieurs étapes pour vérifier les utilisateurs finaux lors de l'intégration en ligne ou d'une authentification renforcée. Un exemple d'étape pouvant être utilisée est la recherche de visage, qui peut aider à déterminer si le visage d'un nouvel utilisateur final correspond à ceux associés à un compte existant.
Construire un système de recherche de visage précis implique plusieurs étapes. Le système doit être capable de détecter des visages humains dans les images, d'extraire les visages dans des représentations vectorielles, de stocker les vecteurs de visages dans une base de données et de comparer les nouveaux visages aux entrées existantes. Amazon Reconnaissance facilite cela en vous proposant des modèles pré-entraînés qui sont invoqués via de simples appels API.
Amazon Rekognition vous permet d'obtenir une très grande précision de recherche de visage avec une seule image de visage. Dans certains cas, vous pouvez utiliser plusieurs images du visage de la même personne pour créer des vecteurs utilisateur et améliorer encore davantage la précision. Ceci est particulièrement utile lorsque les images présentent des variations d’éclairage, de poses et d’apparences.
Dans cet article, nous montrons comment utiliser les API Amazon Rekognition Face Search avec des vecteurs utilisateur pour augmenter le score de similarité pour les vraies correspondances et diminuer le score de similarité pour les vraies non-correspondances.
Nous comparons les résultats de la mise en correspondance de visages avec et sans vecteurs utilisateur.
Correspondance faciale Amazon Rekognition
La correspondance de visage Amazon Rekognition permet de mesurer la similarité d'un vecteur de visage extrait d'une image avec un vecteur de visage extrait d'une autre image. On dit qu'une paire d'images de visage est un vraie correspondance si les deux images contiennent le visage de la même personne et qu'un vraie non-correspondance sinon. Amazon Rekognition renvoie un score pour la similarité des visages source et cible. Le score de similarité minimum est de 0, ce qui implique très peu de similarité, et le maximum est de 100.
Pour comparer un visage source avec une collection de visages cibles (correspondance 1:N), Amazon Rekognition vous permet de créer un objet Collection et de le remplir avec des visages provenant d'images à l'aide d'appels d'API.
Lors de l'ajout d'un visage à une collection, Amazon Rekognition ne stocke pas l'image réelle du visage mais plutôt le vecteur du visage, une représentation mathématique du visage. Avec le Rechercher des visages API, vous pouvez comparer un visage source avec une ou plusieurs collections de visages cibles.
En juin 2023, AWS a lancé les vecteurs d'utilisateurs, une nouvelle fonctionnalité qui améliore considérablement la précision de la recherche de visages en utilisant plusieurs images de visage d’un utilisateur. Désormais, vous pouvez créer des vecteurs utilisateur, qui regroupent plusieurs vecteurs de visage du même utilisateur. Les vecteurs utilisateur offrent une plus grande précision de recherche de visage avec des représentations plus robustes, car ils contiennent différents degrés d'éclairage, de netteté, de pose, d'apparence, etc. Cela améliore la précision par rapport à la recherche sur des vecteurs de visage individuels.
Dans les sections suivantes, nous décrivons le processus d'utilisation des vecteurs d'utilisateurs Amazon Rekognition. Nous vous guidons dans la création d'une collection, le stockage des vecteurs de visage dans cette collection, l'agrégation de ces vecteurs de visage en vecteurs utilisateur, puis la comparaison des résultats de la recherche avec ces vecteurs de visage individuels et ces vecteurs utilisateur.
Vue d'ensemble de la solution
Pour cette solution, nous utilisons une collection d'utilisateurs Amazon Rekognition, chacun avec ses vecteurs de visage indexés associés à partir d'un certain nombre d'images de visages différentes pour chaque utilisateur.
Examinons le flux de travail pour créer une collection avec des utilisateurs et des visages :
- Créez une collection Amazon Rekognition.
- Pour chaque utilisateur, créez un utilisateur dans la collection.
- Pour chaque image de l'utilisateur, ajoutez le visage à la collection (IndexFaces, qui renvoie l'ID de visage correspondant à chaque vecteur de visage).
- Associez tous les identifiants de visage indexés à l’utilisateur (cela est nécessaire pour les vecteurs utilisateur).
Ensuite, nous comparerons les workflows suivants :
Recherche avec une nouvelle image d'entrée donnée par rapport à des vecteurs de visage individuels dans notre collection :
- Récupère tous les visages d'une image (Détecter les visages).
- Pour chaque visage, comparez avec les visages individuels de notre collection (RechercherVisagesParImage).
Recherche avec une nouvelle image d'entrée donnée par rapport aux vecteurs utilisateur de notre collection :
- Récupère tous les visages d'une image (Détecter les visages).
- Pour chaque visage, comparez au vecteur utilisateur (Rechercher des utilisateurs par image).
Décrivons maintenant la solution en détail.
Pré-requis
Ajoutez la stratégie suivante à votre Gestion des identités et des accès AWS (IAM) utilisateur ou rôle. La stratégie vous accorde l'autorisation d'accéder aux API Amazon Rekognition pertinentes et vous permet d'accéder à un Service de stockage simple Amazon (Amazon S3) pour stocker les images :
Créez une collection Amazon Rekognition et ajoutez des utilisateurs et des visages
Tout d'abord, nous créons un compartiment S3 pour stocker les images des utilisateurs. Nous organisons le bucket en créant un dossier pour chaque utilisateur contenant ses images personnelles. Notre dossier d'images ressemble à la structure suivante :
Notre compartiment S3 dispose d'un répertoire pour chaque utilisateur qui stocke ses images. Il existe actuellement deux dossiers et chacun contient plusieurs images. Vous pouvez ajouter plusieurs dossiers pour vos utilisateurs, chacun contenant une ou plusieurs images à indexer.
Ensuite, nous créons notre collection Amazon Rekognition. Nous avons fourni aides.py, qui contient différentes méthodes que nous utilisons :
- créer_collection – Créer une nouvelle collection
- supprimer_collection – Supprimer une collection
- Créer un utilisateur – Créer un nouvel utilisateur dans une collection
- add_faces_to_collection – Ajouter des visages à la collection
- associ_faces – Associer face_ids à un utilisateur dans une collection
- get_subdirs – Récupérez tous les sous-répertoires sous le préfixe S3
- get_files – Récupérez tous les fichiers sous le préfixe S3
Voici un exemple de méthode pour créer une collection Amazon Rekognition :
Créez la collection avec le code suivant :
Ensuite, ajoutons les vecteurs de visage à notre collection et regroupons-les en vecteurs utilisateur.
Pour chaque utilisateur du répertoire S3, nous créons un vecteur utilisateur dans la collection. Ensuite, nous indexons les images de visage de chaque utilisateur dans la collection en tant que vecteurs de visage individuels, ce qui génère des identifiants de visage. Enfin, nous associons les identifiants de visage au vecteur utilisateur approprié.
Cela crée deux types de vecteurs dans notre collection :
- Vecteurs de visage individuels
- Vecteurs utilisateur, qui sont construits sur la base des identifiants de vecteur de visage fournis à l'aide de la méthode
associate_faces
Voir le code suivant:
Nous utilisons les méthodes suivantes :
- get_subdirs – Renvoie une liste de tous les répertoires des utilisateurs. Dans notre exemple, la valeur est [Swami, Werner].
- get_files – Renvoie tous les fichiers images sous le préfixe S3 pour l'utilisateur.
- face_ids – Il s’agit d’une liste contenant tous les identifiants de visage appartenant à un utilisateur. Nous utilisons cette liste lorsque nous appelons le AssocierFaces API.
Comme expliqué précédemment, vous pouvez ajouter plus d'utilisateurs en leur ajoutant des dossiers (le dossier dicte l'ID utilisateur) et ajouter vos images dans ce dossier (aucun ordre n'est requis pour les fichiers).
Maintenant que notre environnement est configuré et que nous disposons à la fois de vecteurs de visage individuels et de vecteurs d'utilisateurs, comparons la qualité de notre recherche à chacun d'eux. Pour ce faire, nous utilisons une nouvelle photo avec plusieurs personnes et essayons de faire correspondre leurs visages avec notre collection, d'abord avec les vecteurs de visage individuels, puis avec les vecteurs utilisateur.
Recherche de visage d'image par rapport à une collection de vecteurs de visage individuels
Pour effectuer une recherche sur nos vecteurs de visage individuels, nous utilisons Amazon Rekognition RechercherVisagesParImage API. Cette fonction utilise une image de visage source pour rechercher des vecteurs de visage individuels dans notre collection et renvoie les visages qui correspondent à notre seuil de score de similarité défini.
Une considération importante est que le SearchFacesByImage
L'API ne fonctionnera que sur le plus grand visage détecté dans l'image. Si plusieurs visages sont présents, vous devez recadrer chaque visage individuel et le transmettre séparément à la méthode d'identification.
Pour extraire les détails des visages d'une image (comme leur emplacement sur l'image), nous utilisons Amazon Rekognition Détecter les visages API.
détecter_faces_in_image La méthode détecte les visages dans une image. Pour chaque face, il effectue les actions suivantes :
- Imprimer l'emplacement de sa boîte englobante
- Recadrez le visage de l'image et vérifiez si ce visage existe dans la collection et imprimez l'utilisateur ou "Inconnu".
- Imprimer le score de similarité
L'exemple de code Python utilise le Oreillers bibliothèque pour effectuer les manipulations d’images (telles que l’impression, le dessin et le recadrage).
Nous utilisons un seuil de score de similarité de 99 %, ce qui est un paramètre courant pour les cas d'utilisation de la vérification d'identité.
Exécutez le code suivant :
file_key
est la clé d'objet S3 que nous voulons comparer à notre collection. Nous avons fourni un exemple d'image (photo.jpeg
) dans le dossier images.
L'image suivante montre nos résultats.
En utilisant un seuil de 99 %, une seule personne a été identifiée. Le Dr Werner Vogels a été signalé comme inconnu. Si nous exécutons le même code en utilisant un seuil inférieur de 90 (définir le seuil = 90), nous obtenons les résultats suivants.
Nous constatons maintenant que le visage du Dr Werner Vogel présente un score de similarité de 96.86 %. Vérifions ensuite si nous pouvons obtenir un score de similarité supérieur à notre seuil défini en utilisant des vecteurs utilisateur.
Recherche de visage d'image par rapport à une collection de vecteurs utilisateur
Pour rechercher nos vecteurs d'utilisateurs, nous utilisons Amazon Rekognition Rechercher des utilisateurs par image API. Cette fonction utilise une image de visage source pour rechercher des vecteurs d'utilisateurs dans notre collection et renvoie les utilisateurs qui correspondent à notre seuil de score de similarité défini.
La même considération est pertinente ici – le SearchUsersByImage
L'API ne fonctionnera que sur le plus grand visage détecté dans l'image. Si plusieurs visages sont présents, vous devez recadrer chaque visage individuel et le transmettre séparément à la méthode d'identification.
Pour extraire les détails des visages d'une image (comme leur emplacement sur l'image), nous utilisons Amazon Rekognition Détecter les visages API.
détecter_utilisateurs_in_image La méthode détecte les visages dans une image. Pour chaque face, il effectue les actions suivantes :
- Imprimer l'emplacement de sa boîte englobante
- Recadrez le visage de l'image et vérifiez si ce visage d'utilisateur existe dans notre collection et imprimez l'utilisateur ou "Inconnu".
- Imprimer le score de similarité
Voir le code suivant:
La fonction renvoie une image modifiée avec les résultats qui peuvent être enregistrés sur Amazon S3 ou imprimés. La fonction génère également des statistiques sur l'âge estimé des visages vers le terminal.
Exécutez le code suivant :
L'image suivante montre nos résultats.
Les utilisateurs qui existent dans notre collection ont été correctement identifiés avec une grande similarité (plus de 99 %).
Nous avons pu augmenter le score de similarité en utilisant trois vecteurs de visage par vecteur utilisateur. À mesure que nous augmentons le nombre de vecteurs de visages utilisés, nous nous attendons à ce que le score de similarité pour les vraies correspondances augmente également. Vous pouvez utiliser jusqu'à 100 vecteurs de visage par vecteur utilisateur.
Un exemple de code de bout en bout peut être trouvé dans le GitHub référentiel. Il comprend un détail Carnet Jupyter sur lequel tu peux courir Amazon SageMakerStudio (ou d'autres alternatives).
Nettoyer
Pour supprimer la collection, utilisez le code suivant :
Conclusion
Dans cet article, nous avons présenté comment utiliser les vecteurs d'utilisateurs Amazon Rekognition pour mettre en œuvre la recherche de visages sur un ensemble de visages d'utilisateurs. Nous avons démontré comment améliorer la précision de la recherche de visages en utilisant plusieurs images de visage par utilisateur et les avons comparées à des vecteurs de visage individuels. De plus, nous avons décrit comment utiliser les différentes API Amazon Rekognition pour détecter les visages. L'exemple de code fourni sert de base solide pour construire un système de recherche de visage fonctionnel.
Pour plus d'informations sur les vecteurs d'utilisateurs Amazon Rekognition, reportez-vous à Rechercher des visages dans une collection. Si vous êtes nouveau sur Amazon Rekognition, vous pouvez utiliser notre offre gratuite, qui dure 12 mois et comprend le traitement de 5,000 1,000 images par mois et le stockage de XNUMX XNUMX objets vectoriels utilisateur par mois.
À propos des auteurs
Arik Porat est architecte senior de solutions de startups chez Amazon Web Services. Il travaille avec des startups pour les aider à créer et concevoir leurs solutions dans le cloud, et est passionné par l'apprentissage automatique et les solutions basées sur des conteneurs. Dans ses temps libres, Arik aime jouer aux échecs et aux jeux vidéo.
Eliran Efron est architecte de solutions de startups chez Amazon Web Services. Eliran est un passionné de données et de calcul, aidant les startups à concevoir leurs architectures système. Dans ses temps libres, Eliran aime construire et piloter des voitures lors de courses de tourisme et construire des appareils IoT.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/improve-accuracy-of-amazon-rekognition-face-search-with-user-vectors/
- :possède
- :est
- $UP
- 000
- 1
- 10
- 100
- 12
- 12 mois
- 17
- 2023
- 28
- 30
- 7
- 9
- a
- Capable
- A Propos
- au dessus de
- accès
- Compte
- précision
- Avec cette connaissance vient le pouvoir de prendre
- atteindre
- Action
- actes
- présenter
- ajouter
- ajoutant
- En outre
- à opposer à
- Âge
- agrégat
- agréger
- Tous
- permettre
- permet
- déjà
- aussi
- des alternatives
- Amazon
- Amazon Reconnaissance
- Amazon Web Services
- an
- ainsi que le
- Une autre
- api
- Apis
- apparence
- les apparences
- approprié
- architectures
- SONT
- tableau
- AS
- assistant
- Associé(e)
- associé
- At
- tentative
- Authentification
- AWS
- basé
- BE
- car
- qui appartiennent
- jusqu'à XNUMX fois
- corps
- tous les deux
- Box
- boîtes
- construire
- construit
- mais
- by
- calculer
- Appelez-nous
- appel
- Appels
- CAN
- Peut obtenir
- aptitude
- voitures
- cas
- vérifier
- Échecs
- client
- le cloud
- code
- collection
- collections
- Commun
- comparer
- par rapport
- comparant
- calcul
- considération
- la construction
- contiennent
- contient
- convertir
- correctement
- Correspondant
- engendrent
- crée des
- La création
- récolte
- Lecture
- Clients
- données
- Base de données
- diminuer
- défini
- démontrer
- démontré
- décrire
- décrit
- Conception
- conception
- détaillé
- détails
- détecter
- détecté
- Déterminer
- Compatibles
- dicte
- différent
- numérique
- identité numérique
- répertoires
- annuaire
- Commande
- do
- Ne fait pas
- faire
- fait
- dr
- dessiner
- dessin
- pendant
- chacun
- Plus tôt
- effet
- sans effort
- d'autre
- permet
- end-to-end
- passionné
- Environment
- notamment
- estimé
- Pourtant, la
- exemple
- Sauf
- exister
- existant
- existe
- sorties
- attendre
- expliqué
- extrait
- Visage
- visages
- Fichiers
- la traduction de documents financiers
- services financiers
- Trouvez
- Prénom
- marqué
- flotteur
- Abonnement
- Pour
- le format
- trouvé
- Fondation
- Gratuit
- De
- fonction
- fonctionnel
- plus
- Games
- génère
- obtenez
- donné
- Don
- subventions
- guide
- Vous avez
- he
- la médecine
- la taille
- vous aider
- aides
- utile
- ici
- Haute
- augmentation
- sa
- Comment
- How To
- HTML
- http
- HTTPS
- humain
- ID
- Identification
- identifié
- Identite
- vérification d'identité
- ids
- if
- image
- satellite
- Mettre en oeuvre
- importer
- important
- améliorer
- améliore
- in
- inclut
- Améliore
- indice
- indexé
- individuel
- secteurs
- d'information
- contribution
- développement
- invoqué
- implique
- IOT
- iot devices
- IT
- SES
- jpeg
- juin
- ACTIVITES
- le plus grand
- enfin
- lancé
- apprentissage
- à gauche
- Bibliothèque
- Eclairage
- comme
- aime
- Liste
- peu
- charge
- emplacement
- Style
- LOOKS
- Faible
- baisser
- click
- machine learning
- FAIT DU
- manipulations
- Match
- allumettes
- assorti
- math
- mathématique
- maximales
- mesure
- méthode
- méthodes
- minimum
- numériques jumeaux (digital twin models)
- modifié
- Mois
- mois
- PLUS
- plusieurs
- must
- prénom
- nécessaire
- Besoin
- Nouveauté
- next
- aucune
- maintenant
- nombre
- objet
- objets
- of
- code
- Vieux
- on
- Onboarding
- ONE
- en ligne
- uniquement
- fonctionner
- or
- Autre
- autrement
- nos
- contour
- sorties
- plus de
- paire
- pass
- passionné
- Personnes
- /
- effectuer
- effectue
- autorisation
- personne
- personnel
- photo
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Jouez
- des notes bonus
- politique
- poser
- pose
- Post
- représentent
- présenté
- Imprimé
- impression
- processus
- traitement
- à condition de
- Python
- qualité
- Race
- courses
- plutôt
- reportez-vous
- pertinent
- représentation
- conditions
- ressource
- réponse
- Résultats
- retourner
- Retours
- robuste
- Rôle
- Courir
- sagemaker
- Saïd
- même
- sauvé
- But
- Rechercher
- recherche
- les sections
- sur le lien
- supérieur
- sert
- Services
- Session
- set
- mise
- plusieurs
- Spectacles
- de façon significative
- étapes
- unique
- Taille
- solide
- sur mesure
- Solutions
- quelques
- Identifier
- Startups
- Déclaration
- statistiques
- Statut
- étapes
- Étapes
- storage
- Boutique
- STORES
- stockage
- courant
- structure
- tel
- fourni
- combustion propre
- Target
- monde de télécommunications
- terminal
- qui
- La
- La Source
- leur
- Les
- puis
- Là.
- l'ont
- this
- ceux
- trois
- порог
- Avec
- étage
- fiable
- à
- top
- tourisme
- oui
- Essai
- deux
- types
- sous
- inconnu
- utilisé
- d'utiliser
- Utilisateur
- utilisateurs
- Usages
- en utilisant
- d'habitude
- Plus-value
- variations
- divers
- variant
- Vérification
- vérifier
- version
- très
- via
- Vidéo
- jeux vidéo
- souhaitez
- était
- we
- web
- services Web
- ont été
- quand
- que
- qui
- largeur
- sera
- comprenant
- sans
- workflow
- workflows
- vos contrats
- pourra
- années
- Vous n'avez
- Votre
- zéphyrnet