Capture-removebg-preview (1)Capture-removebg-preview (1)Capture-removebg-preview (1)Capture-removebg-preview (1)
  • Accueil
  • Services
  • L ‘Equipe
  • Autres services
  • Contact
Blog
✕

 

Introduction

Dans le paysage numérique actuel, le respect des réglementations Know Your Customer (KYC) est primordial pour les entreprises opérant dans les services financiers, les marchés en ligne et d’autres secteurs nécessitant l’identification des utilisateurs. Traditionnellement, les processus KYC reposaient sur la vérification manuelle des documents, une approche chronophage et sujette aux erreurs. Ce guide explique comment Amazon Rekognition, un puissant service d’IA basé sur le cloud d’AWS, spécialisé dans le visage et l’analyse, peut révolutionner votre stratégie KYC en ligne, en la transformant en un processus rationalisé, sécurisé et rentable.

Objectifs d’apprentissage

  • Comprendre l’importance des réglementations Know Your Customer (KYC) dans divers secteurs et les défis associés aux processus de vérification manuelle.
  • Découvrez les capacités d’Amazon Rekognition en tant que service d’IA basé sur le cloud spécialisé dans la reconnaissance et l’analyse faciales.
  • Découvrez les étapes impliquées dans la mise en œuvre de la vérification d’identité à l’aide d’Amazon Rekognition, y compris l’intégration des utilisateurs,
    "Documents d'identité" : [
            {
                "DocumentIndex": 1,
                "IdentityDocumentFields": [
                    {
                        "Type": {
                            "Text": "FIRST_NAME"
                        },
                        "ValueDetection": {
                            "Text": "xyz",
                            "Confidence": 93.61839294433594
                        }
                    },
                    {
                        "Type": {
                            "Text": "LAST_NAME"
                        },
                        "ValueDetection": {
                            "Text": "abc",
                            "Confidence": 96.3537826538086
                        }
                    },
                    {
                        "Type": {
                            "Text": "MIDDLE_NAME"
                        },
                        "ValueDetection": {
                            "Text": "",
                            "Confidence": 99.16631317138672
                        }
                    },
                    {
                        "Type": {
                            "Text": "SUFFIX"
                        },
                        "ValueDetection": {
                            "Text": "",
                            "Confidence": 99.16964721679688
                        }
                    },
                    {
                        "Type": {
                            "Text": "CITY_IN_ADDRESS"
                        },
                        "ValueDetection": {
                            "Text": "",
                            "Confidence": 99.17261505126953
                        }
                    },
                    {
                        "Type": {
                            "Text": "ZIP_CODE_IN_ADDRESS"
                        },
                        "ValueDetection": {
                            "Text": "",
                            "Confidence": 99.17854309082031
                        }
                    },
                    {
                        "Type": {
                            "Text": "STATE_IN_ADDRESS"
                        },
                        "ValueDetection": {
                            "Text": "",
                            "Confidence": 99.15782165527344
                        }
                    },
                    {
                        "Type": {
                            "Text": "STATE_NAME"
                        },
                        "ValueDetection": {
                            "Text": "",
                            "Confidence": 99.16664123535156
                        }
                    },
                    {
                        "Type": {
                            "Text": "DOCUMENT_NUMBER"
                        },
                        "ValueDetection": {
                            "Text": "123456",
                            "Confidence": 95.29527282714844
                        }
                    },
                    {
                        "Type": {
                            "Text": "EXPIRATION_DATE"
                        },
                        "ValueDetection": {
                            "Text": "22 OCT 2024",
                            "NormalizedValue": {
                                "Value": "2024-10-22T00:00:00",
                                "ValueType": "Date"
                            },
                            "Confidence": 95.7198486328125
                        }
                    },
                    {
                        "Type": {
                            "Text": "DATE_OF_BIRTH"
                        },
                        "ValueDetection": {
                            "Text": "1 SEP 1994",
                            "NormalizedValue": {
                                "Value": "1994-09-01T00:00:00",
                                "ValueType": "Date"
                            },
                            "Confidence": 97.41930389404297
                        }
                    },
                    {
                        "Type": {
                            "Text": "DATE_OF_ISSUE"
                        },
                        "ValueDetection": {
                            "Text": "23 OCT 2004",
                            "NormalizedValue": {
                                "Value": "2004-10-23T00:00:00",
                                "ValueType": "Date"
                            },
                            "Confidence": 96.1384506225586
                        }
                    },
                    {
                        "Type": {
                            "Text": "ID_TYPE"
                        },
                        "ValueDetection": {
                            "Text": "PASSPORT",
                            "Confidence": 98.65157318115234
                        }
                    }

    La commande ci-dessus utilise la commande AWS Textract analyze-id pour extraire des informations de l’image déjà téléchargée dans S3. Le JSON de sortie contient également des boîtes de délimitation, c’est pourquoi je l’ai tronqué pour ne montrer que les informations clés. Comme vous pouvez le voir, la commande a extrait toutes les informations requises ainsi que le niveau de confiance de la valeur du texte.

    Traduit avec DeepL.com (version gratuite)

    Using Python functions

    textract_client = boto3.client('textract', region_name="us-east-1")
    
    def analyze_id(document_file_name)->dict:
    
      if document_file_name is not None:
           with open(document_file_name, "rb") as document_file:
                idcard_bytes = document_file.read()
      '''
      Analyze the image using Amazon Textract.
      '''
      try:
        response = textract_client.analyze_id(
          DocumentPages=[
            {'Bytes': idcard_bytes},
          ]) renvoie la réponse sauf texttract_client.exceptions.UnsupportedDocumentException : logger.error('L'utilisateur %s a fourni un document non valide.' % inputRequest.user_id) raise InvalidImageError('UnsupportedDocument') except texttract_client.exceptions.DocumentTooLargeException : logger.error('User % Le document fourni est trop volumineux.' % inputRequest.user_id) raise InvalidImageError('DocumentTooLarge') except texttract_client.exceptions.ProvisionedThroughputExceededException: logger.error('Débit de texte dépassé.') raise InvalidImageError('ProvisionedThroughputExceeded') except textract_client.exceptions.ThrottlingException : logger.error('Débit de texte dépassé.') lève InvalidImageError('ThrottlingException') sauf texttract_client.exceptions.InternalServerError : logger.error('Erreur de serveur interne de texte.') lève InvalidImageError('ProvisionedThroughputExceeded') résultat = analyse_id(' id.jpeg') print(result) # imprimer la sortie brute

    Utilisation de l’interface graphique

    –target-image ‘{« S3Object »:{« Bucket »: »imagebucket », »Name »: »liveness.jpg »}}’ \
    –similarity-threshold 0.9
    Sortir

    {
                  "UnmatchedFaces": [],
                  "FaceMatches": [
                      {
                          "Face": {
                              "BoundingBox": {
                                  "Width": 0.12368916720151901,
                                  "Top": 0.16007372736930847,
                                  "Left": 0.5901257991790771,
                                  "Height": 0.25140416622161865
                              },
                              "Confidence": 99.0,
                              "Pose": {
                                  "Yaw": -3.7351467609405518,
                                  "Roll": -0.10309021919965744,
                                  "Pitch": 0.8637830018997192
                              },
                              "Quality": {
                                  "Sharpness": 95.51618957519531,
                                  "Brightness": 65.29893493652344
                              },
                              "Landmarks": [
                                  {
                                      "Y": 0.26721030473709106,
                                      "X": 0.6204193830490112,
                                      "Type": "eyeLeft"
                                  },
                                  {
                                      "Y": 0.26831310987472534,
                                      "X": 0.6776827573776245,
                                      "Type": "eyeRight"
                                  },
                                  {
                                      "Y": 0.3514654338359833,
                                      "X": 0.6241428852081299,
                                      "Type": "mouthLeft"
                                  },
                                  {
                                      "Y": 0.35258132219314575,
                                      "X": 0.6713621020317078,
                                      "Type": "mouthRight"
                                  },
                                  {
                                      "Y": 0.3140771687030792,
                                      "X": 0.6428444981575012,
                                      "Type": "nose"
                                  }
                              ]
                          },
                          "Similarity": 100.0
                      }
                  ],
                  "SourceImageFace": {
                      "BoundingBox": {
                          "Width": 0.12368916720151901,
                          "Top": 0.16007372736930847,
                          "Left": 0.5901257991790771,
                          "Height": 0.25140416622161865
                      },
                      "Confidence": 99.0
                  }
              }
    

    Comme vous pouvez le voir ci-dessus, il a été démontré qu’il n’existe pas de visage inégalé et que le visage correspond avec un niveau de confiance de 99 %. Il a également renvoyé des cadres de délimitation en tant que sortie supplémentaire. Voyons maintenant l’implémentation de Python.

    Code Python

    rek_client = boto3.client('rekognition', region_name="us-east-1")
    
    response = rek_client.compare_faces(
          SimilarityThreshold=0.9,
          SourceImage={
                'S3Object': {
                  'Bucket': bucket,
                  'Name': idcard_name
              }
          },
          TargetImage={
              'S3Object': {
                  'Bucket': bucket,
                  'Name': name
              }
          })
    
    if len(response['FaceMatches']) == 0:
          IsMatch="False"
          Reason = 'Property FaceMatches is empty.'
        
    facenotMatch = False
    for match in response['FaceMatches']:
        similarity:float = match['Similarity']
        if similarity > 0.9:
            IsMatch = True,
            Reason = 'All checks passed.'
        else:
            facenotMatch = True
    

    Le code ci-dessus comparera le visage détecté à partir de la carte d’identité et de la session Liveness en gardant le seuil à 90 %. Si le visage correspond, la variable IsMatch sera définie sur True. Ainsi, avec un seul appel de fonction, nous pouvons comparer les deux visages, tous deux déjà téléchargés dans le compartiment S3.

    Ainsi enfin, nous pouvons enregistrer l’utilisateur valide et compléter son KYC. Comme vous pouvez le constater, cette opération est entièrement automatisée et initiée par l’utilisateur, et aucune autre personne n’est impliquée. Le processus a également raccourci l’intégration des utilisateurs par rapport au processus manuel actuel.

    Étape 4 : Requête d’un document tel que GPT

    J’ai aimé l’une des fonctionnalités très utiles de Texttract : vous pouvez poser des questions spécifiques, par exemple « Quel est le numéro d’identité ». Laissez-moi vous montrer comment procéder à l’aide de l’AWS CLI.

    aws textract analyze-document --document '{"S3Object":{"Bucket":"ARN","Name":"id.jpg"}}' \
    --feature-types '["QUERIES"]' --queries-config '{"Queries":[{"Text":"What is the Identity No"}]}'

    Veuillez noter que plus tôt, j’ai utilisé la fonction analyse-id alors que maintenant j’ai utilisé analyse-document pour interroger le document. Ceci est très utile s’il y a des champs spécifiques dans la carte d’identité qui ne sont pas extraits par la fonction analyse-id. La fonction d’analyse d’identité fonctionne bien pour toutes les cartes d’identité américaines, mais elle fonctionne également bien avec les cartes d’identité du gouvernement indien. Néanmoins, si certains champs ne sont pas extraits, la fonction de requête peut être utilisée.

    AWS utilise le service Cognito pour gérer l’identité de l’utilisateur, l’ID utilisateur et les identifiants de visage stockés dans DynamoDB. L’exemple de code AWS compare également les images de la base de données existante afin que le même utilisateur ne puisse pas se réinscrire en utilisant un identifiant ou un nom d’utilisateur différent. Ce type de validation est indispensable pour un système KYC automatisé robuste.

    Conclusion

    En adoptant AWS Rekognition pour Automated Self KYC, vous pouvez transformer votre processus d’intégration des utilisateurs d’un obstacle laborieux en une expérience fluide et sécurisée. Amazon Rekognition fournit une solution robuste pour la mise en œuvre de systèmes de vérification d’identité dotés de capacités avancées de reconnaissance faciale. En tirant parti de ses fonctionnalités, les développeurs peuvent améliorer les mesures de sécurité, rationaliser les processus d’authentification des utilisateurs et offrir des expériences utilisateur transparentes dans diverses applications et secteurs.

    Avec le guide complet décrit ci-dessus, vous êtes bien équipé pour vous lancer dans la mise en œuvre efficace de la vérification d’identité à l’aide d’Amazon Rekognition. Profitez de la puissance de la vérification d’identité basée sur l’IA et débloquez de nouvelles possibilités dans le domaine de la gestion de l’identité numérique.

    Points clés à retenir

    • Amazon Rekognition offre des capacités avancées de reconnaissance faciale et d’analyse, facilitant des processus de vérification d’identité rationalisés et sécurisés.
    • Il permet l’intégration automatisée des utilisateurs en extrayant les informations essentielles des cartes d’identité émises par le gouvernement et en effectuant des contrôles d’activité.
    • Les étapes de mise en œuvre incluent la configuration des services AWS, la configuration des autorisations IAM et l’utilisation de fonctions Python ou d’interfaces graphiques pour l’extraction de texte et les comparaisons faciales.
    • Les contrôles d’activité en temps réel améliorent la sécurité en garantissant la présence des utilisateurs lors de la vérification, tandis que les comparaisons faciales valident les identités par rapport aux images de référence.

    Les médias présentés dans cet article n’appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l’auteur.

Share
0

Autres articles

16 décembre 2024

L’émergence des robots conversationnels


En savoir plus
24 juin 2024

5 astuces pour utiliser Chat GPT gratuitement


En savoir plus
27 mai 2024

Fiche de Vérification Extincteur


En savoir plus

Comments are closed.

Entreprise d’intelligence artificielle Paris

ia pme

Meilleur planning ia

 

https://cdlacom.eu/2025/01/09/video-pour-reseaux-sociaux/

© 2025 CDLACOM. Mentions legales
    Blog
      Gérer le consentement aux cookies
      Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
      Fonctionnel Toujours activé
      Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
      Préférences
      Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’utilisateur.
      Statistiques
      Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques. Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
      Marketing
      Le stockage ou l’accès technique est nécessaire pour créer des profils d’utilisateurs afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.
      Gérer les options Gérer les services Gérer {vendor_count} fournisseurs En savoir plus sur ces finalités
      Voir les préférences
      {title} {title} {title}