Amazon Textract を使用したアイデンティティドキュメントの分析 - Amazon Textract

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Textract を使用したアイデンティティドキュメントの分析

アイデンティティドキュメントを分析するには、AnalyzeID API を使用し、ドキュメントファイルを入力として渡します。AnalyzeIDは、分析されたテキストを含む JSON 構造を返します。詳細については、「アイデンティティドキュメントの分析」を参照してください。

入力ドキュメントとして、イメージのバイト配列 (base64 エンコードされたイメージのバイト) を指定するか、Amazon S3 オブジェクトを指定できます。以下の手順では、イメージファイルを S3 バケットにアップロードし、そのファイル名を指定します。

アイデンティティドキュメント (API) を分析するには
  1. まだ実行していない場合:

    1. を使用して IAM ユーザーを作成または更新するAmazonTextractFullAccessそしてAmazonS3ReadOnlyAccessアクセス許可。詳細については、「ステップ 1: AWS アカウントを設定して IAM ユーザーの作成」を参照してください。

    2. AWS CLI と AWS SDK をインストールして設定します。詳細については、「ステップ 2: のセットアップAWS CLIそしてAWSSDK」を参照してください。

  2. ドキュメントが含まれているイメージを S3 バケットにアップロードします。

    手順については、以下を参照してください。Amazon S3 へのオブジェクトのアップロードAmazon Simple Storage Service ユーザーガイド

  3. 以下の例を使用して、AnalyzeID オペレーションを呼び出します。

    CLI

    次の例では、S3 バケットから入力ファイルを取り込み、AnalyzeIDそれに対する操作。以下のコードで、の値を置き換えます。バケットの S3 バケットの名前で、ファイルは、バケット内のファイル名と領域の名前でregionアカウントに関連付けられます。

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

    入力に別の S3 オブジェクトを追加することで、運転免許証の前面と背面で API を呼び出すこともできます。

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

    Windows デバイスで CLI にアクセスする場合は、一重引用符ではなく二重引用符を使用し、内部の二重引用符をバックスラッシュ(つまり\)でエスケープして、発生する可能性のあるパーサーエラーに対処します。例については、以下を参照してください。

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

    次の例では、S3 バケットから入力ファイルを取り込み、AnalyzeIDそれを操作し、検出されたキーと値のペアを返します。以下のコードで、の値を置き換えます。bucket_nameの S3 バケットの名前で、file_nameは、バケット内のファイル名と領域の名前でregionアカウントに関連付けられます。

    import boto3 bucket_name = "bucket-name" file_name = "file-name" region = "region-name" def analyze_id(region, bucket_name, file_name): textract_client = boto3.client('textract', region_name=region) response = textract_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() analyze_id(region, bucket_name, file_name)
    Java

    次の例では、S3 バケットから入力ファイルを取り込み、AnalyzeIDそれを操作し、検出されたデータを返します。関数 main で、次の値を置き換えます。s3bucketそしてsourceDocステップ 2 で使用した Amazon S3 バケット名とドキュメントイメージ名を指定します。

    /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ package com.amazonaws.samples; 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 AnalyzeIdentityDocument { 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); } String s3bucket = "bucket-name"; //args[0]; String sourceDoc = "sourcedoc-name"; //args[1]; AmazonTextractClient textractClient = (AmazonTextractClient) AmazonTextractClientBuilder.standard() .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(); } } }
  4. これにより、の JSON 出力が提供されます。AnalyzeIDオペレーション.