View a markdown version of this page

Análisis de la documentación de identidad con Amazon Textract - Amazon Textract

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Análisis de la documentación de identidad con Amazon Textract

Para analizar los documentos de identidad, utilice la operación de la API AnalyzeID y pase un archivo de documento como entrada. AnalyzeIDdevuelve una estructura JSON que contiene el texto analizado. Para obtener más información, consulte Análisis de documentos de identidad.

Puede proporcionar un documento de entrada como una matriz de bytes de imagen (bytes de imagen codificados en base64) o como un objeto de Amazon S3. En este procedimiento, sube un archivo de imagen a su bucket de S3 y especifica el nombre del archivo.

Para analizar un documento de identidad (API)
  1. Si aún no lo ha hecho:

    1. Otorgue a un usuario los AmazonS3ReadOnlyAccess permisos AmazonTextractFullAccess y. Para obtener más información, consulte Paso 1: Configurar una cuenta de AWS y crear un usuario.

    2. Instale y configure los SDK AWS CLI y los AWS SDK. Para obtener más información, consulte Paso 2: configurar el AWS CLI and AWS SDK.

  2. Sube una imagen que contenga un documento a tu bucket de S3.

    Para ver las instrucciones, consulte Carga de objetos en Amazon S3 en la Guía del usuario de Amazon Simple Storage Service.

  3. Consulte los siguientes ejemplos para llamar a la operación AnalyzeID.

    AWS CLI

    El siguiente ejemplo toma un archivo de entrada de un bucket de S3 y ejecuta la AnalyzeID operación en él. En el siguiente código, sustituya el valor de Bucket por el nombre de su bucket de S3 y el valor de Name por el nombre del archivo de su bucket. profile-nameSustitúyelo por el nombre de un perfil que pueda asumir la función y region por la región en la que quieres ejecutar el código.

    aws textract analyze-id \ --document-pages '{"S3Object":{"Bucket":"bucket","Name":"name"}}' \ --profile profile-name \ --region region

    También puede llamar a la API con el anverso y el reverso del carné de conducir añadiendo otro objeto de Amazon S3 a la entrada.

    aws textract analyze-id \ --document-pages '[{"S3Object":{"Bucket":"bucket","Name":"name front"}}, {"S3Object":{"Bucket":"bucket","Name":"name back"}}]' \ --profile profile-name \ --region region

    Si accede a la CLI desde un dispositivo Windows, utilice comillas dobles en lugar de comillas simples y evite las comillas dobles internas con una barra invertida (\) para corregir cualquier error de análisis que pueda producirse. Por ver un ejemplo, consulte lo siguiente:

    aws textract analyze-id --document-pages "[{\"S3Object\":{\"Bucket\":\"bucket\",\"Name\":\"name\"}}]" --region region
    Python

    El siguiente ejemplo toma un archivo de entrada de un bucket de S3 y ejecuta la AnalyzeID operación en él, devolviendo los pares clave-valor detectados. En el siguiente código, reemplaza el valor de bucket_name por el nombre de tu bucket de S3 y el valor de file_name por el nombre del archivo de tu bucket. profile-nameSustitúyelo por el nombre de un perfil que pueda asumir la función y region por la región en la que quieres ejecutar el código.

    import boto3 def analyze_id(client, bucket_name, file_name): # Analyze document # process using S3 object response = client.analyze_id( DocumentPages=[{'S3Object': {'Bucket': bucket_name, 'Name': file_name}}]) for doc_fields in response['IdentityDocuments']: for id_field in doc_fields['IdentityDocumentFields']: for key, val in id_field.items(): if "Type" in str(key): print("Type: " + str(val['Text'])) for key, val in id_field.items(): if "ValueDetection" in str(key): print("Value Detection: " + str(val['Text'])) print() def main(): session = boto3.Session(profile_name='profile-name') client = session.client('textract', region_name='region') bucket_name = "bucket" file_name = "file" analyze_id(client, bucket_name, file_name) if __name__ == "__main__": main()
    Java

    El siguiente ejemplo toma un archivo de entrada de un bucket de S3 y ejecuta la AnalyzeID operación en él, devolviendo los datos detectados. En la función principal, sustituya los valores de s3bucket y por sourceDoc los nombres del bucket de Amazon S3 y la imagen del documento que utilizó en el paso 2. Sustituya el valor de credentialsProvider de por el nombre de su perfil de desarrollador.

    /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ package com.amazonaws.samples; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.textract.AmazonTextractClient; import com.amazonaws.services.textract.AmazonTextractClientBuilder; import com.amazonaws.services.textract.model.*; import java.util.ArrayList; import java.util.List; public class AppTest1 { public static void main(String[] args) { final String USAGE = "\n" + "Usage:\n" + " <s3bucket><sourceDoc> \n\n" + "Where:\n" + " s3bucket - the Amazon S3 bucket where the document is located. \n" + " sourceDoc - the name of the document. \n"; if (args.length != 1) { System.out.println(USAGE); System.exit(1); } // set provider credentials AWSCredentialsProvider credentialsProvider = new ProfileCredentialsProvider("default"); String s3bucket = "bucket-name"; //args[0]; String sourceDoc = "sourcedoc-name"; //args[1]; AmazonTextractClient textractClient = (AmazonTextractClient) AmazonTextractClientBuilder.standard().withCredentials(credentialsProvider) .withRegion(Regions.US_EAST_1) .build(); getDocDetails(textractClient, s3bucket, sourceDoc); } public static void getDocDetails(AmazonTextractClient textractClient, String s3bucket, String sourceDoc ) { try { S3Object s3 = new S3Object(); s3.setBucket(s3bucket); s3.setName(sourceDoc); com.amazonaws.services.textract.model.Document myDoc = new com.amazonaws.services.textract.model.Document(); myDoc.setS3Object(s3); List<Document> list1 = new ArrayList(); list1.add(myDoc); AnalyzeIDRequest idRequest = new AnalyzeIDRequest(); idRequest.setDocumentPages(list1); AnalyzeIDResult result = textractClient.analyzeID(idRequest); List<IdentityDocument> docs = result.getIdentityDocuments(); for (IdentityDocument doc: docs) { List<IdentityDocumentField>idFields = doc.getIdentityDocumentFields(); for (IdentityDocumentField field: idFields) { System.out.println("Field type is "+ field.getType().getText()); System.out.println("Field value is "+ field.getValueDetection().getText()); } } } catch (Exception e) { e.printStackTrace(); } } }
    Java V2

    El siguiente ejemplo toma un archivo de entrada de un bucket de S3 y ejecuta la AnalyzeID operación en él, devolviendo los datos detectados. En la función principal, sustituya los valores de s3bucket y por sourceDoc los nombres del bucket de S3 y la imagen del documento que utilizó en el paso 2.

    Sustituye profile-name la línea que crea el TextractClient por el nombre de tu perfil de desarrollador.

    import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.core.SdkBytes; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.textract.TextractClient; import software.amazon.awssdk.services.textract.model.*; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; // snippet-end:[textract.java2._analyze_doc.import] import java.util.Optional; import org.json.JSONObject; /** * Before running this Java V2 code example, set up your development environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class DetectCelebrityVideo { public static void main(String[] args) { final String usage = "\n" + "Usage:\n" + " <bucketName> <docName> \n\n" + "Where:\n" + " bucketName - The name of the Amazon S3 bucket that contains the document. \n\n" + " docName - The document name (must be an image, i.e., book.png). \n"; if (args.length != 2) { System.out.println(usage); System.exit(1); } String bucketName = args[0]; String docName = args[1]; Region region = Region.US_WEST_2; TextractClient textractClient = TextractClient.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create("default")) .build(); analyzeID(textractClient, bucketName, docName); textractClient.close(); } // snippet-start:[textract.java2._analyze_doc.main] public static void analyzeID(TextractClient textractClient, String bucketName, String docName) { try { S3Object s3Object = S3Object.builder() .bucket(bucketName) .name(docName) .build(); // Create a Document object and reference the s3Object instance Document myDoc = Document.builder() .s3Object(s3Object) .build(); AnalyzeIdRequest analyzeIdRequest = AnalyzeIdRequest.builder() .documentPages(myDoc).build(); AnalyzeIdResponse analyzeId = textractClient.analyzeID(analyzeIdRequest); // System.out.println(analyzeExpense.toString()); List<IdentityDocument> Docs = analyzeId.identityDocuments(); for (IdentityDocument doc: Docs) { System.out.println(doc); } } catch (TextractException e) { System.err.println(e.getMessage()); System.exit(1); } } // snippet-end:[textract.java2._analyze_doc.main] }
  4. Esto te proporcionará la salida JSON de la AnalyzeID operación.