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.
"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)
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