View a markdown version of this page

Analyse der Identitätsdokumentation mit Amazon Textract - Amazon Textract

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Analyse der Identitätsdokumentation mit Amazon Textract

Um Ausweisdokumente zu analysieren, verwenden Sie den API-Vorgang analyseID und übergeben eine Dokumentdatei als Eingabe. AnalyzeIDgibt eine JSON-Struktur zurück, die den analysierten Text enthält. Weitere Informationen finden Sie unter Analyse von Ausweisdokumenten.

Sie können ein Eingabedokument als Bildbyte-Array (Base64-kodierte Bildbytes) oder als Amazon S3-Objekt bereitstellen. In diesem Verfahren laden Sie eine Bilddatei in Ihren S3-Bucket hoch und geben den Dateinamen an.

Um ein Ausweisdokument (API) zu analysieren
  1. Wenn Sie dies noch nicht getan haben:

    1. Erteilen Sie einem Benutzer die AmazonTextractFullAccess und AmazonS3ReadOnlyAccess -Berechtigungen. Weitere Informationen finden Sie unter Schritt 1: Einrichten eines AWS-Kontos und Erstellen eines Benutzers.

    2. Installieren und konfigurieren Sie die SDKs AWS CLI und die AWS SDKs. Weitere Informationen finden Sie unter Schritt 2: Richten Sie das ein AWS CLI und AWS SDKs.

  2. Laden Sie ein Bild, das ein Dokument enthält, in Ihren S3-Bucket hoch.

    Weitere Anleitungen finden Sie unter Upload eines Objekts in Amazon S3 im Benutzerhandbuch für Amazon Simple Storage Service.

  3. Verwenden Sie die folgenden Beispiele zum Aufrufen der AnalyzeID-Operation.

    AWS CLI

    Das folgende Beispiel nimmt eine Eingabedatei aus einem S3-Bucket auf und führt den AnalyzeID Vorgang darauf aus. Ersetzen Sie im folgenden Code den Wert von Bucket durch den Namen Ihres S3-Buckets und den Wert von Name durch den Namen der Datei in Ihrem Bucket. profile-nameErsetzen Sie durch den Namen eines Profils, das die Rolle übernehmen kann, und region durch die Region, in der Sie den Code ausführen möchten.

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

    Sie können die API auch mit der Vorder- und Rückseite eines Führerscheins aufrufen, indem Sie der Eingabe ein weiteres Amazon S3-Objekt hinzufügen.

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

    Wenn Sie auf einem Windows-Gerät auf die CLI zugreifen, verwenden Sie doppelte Anführungszeichen statt einfacher Anführungszeichen und umgehen Sie die inneren doppelten Anführungszeichen mit einem umgekehrten Schrägstrich (\), um etwaige Parserfehler zu beheben. Sehen Sie sich zum Beispiel Folgendes an:

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

    Das folgende Beispiel nimmt eine Eingabedatei aus einem S3-Bucket auf und führt den AnalyzeID Vorgang darauf aus, wobei die erkannten Schlüssel-Wert-Paare zurückgegeben werden. Ersetzen Sie im folgenden Code den Wert von bucket_name durch den Namen Ihres S3-Buckets und den Wert von file_name durch den Namen der Datei in Ihrem Bucket. profile-nameErsetzen Sie durch den Namen eines Profils, das die Rolle übernehmen kann, und region durch die Region, in der Sie den Code ausführen möchten.

    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

    Das folgende Beispiel nimmt eine Eingabedatei aus einem S3-Bucket auf und führt den AnalyzeID Vorgang darauf aus, wobei die erkannten Daten zurückgegeben werden. Ersetzen Sie in der Hauptfunktion die Werte von s3bucket und sourceDoc durch die Namen des Amazon S3-Buckets und des Dokumentbilds, die Sie in Schritt 2 verwendet haben. Ersetzen Sie den Wert von credentialsProvider mit dem Namen Ihres Entwicklerprofils.

    /* 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

    Das folgende Beispiel nimmt eine Eingabedatei aus einem S3-Bucket auf und führt den AnalyzeID Vorgang darauf aus, wobei die erkannten Daten zurückgegeben werden. Ersetzen Sie in der Hauptfunktion die Werte von s3bucket und sourceDoc durch die Namen des S3-Buckets und des Dokumentbilds, die Sie in Schritt 2 verwendet haben.

    Ersetzen Sie profile-name in der Zeile, in der das erstellt wird, TextractClient durch den Namen Ihres Entwicklerprofils.

    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. Dadurch erhalten Sie die JSON-Ausgabe für den AnalyzeID Vorgang.