翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Textract を使用した ID ドキュメントの分析
ID ドキュメントを分析するには、AnalyzeID API オペレーションを使用して、ドキュメントファイルを入力として渡します。 は、分析されたテキストを含む JSON 構造AnalyzeIDを返します。詳細については、「ID ドキュメントの分析」を参照してください。
入力ドキュメントは、イメージバイト配列 (base64 でエンコードされたイメージバイト) または Amazon S3 オブジェクトとして指定できます。この手順では、イメージファイルを S3 バケットにアップロードし、ファイル名を指定します。
ID ドキュメントを分析するには (API)
まだ実行していない場合:
ユーザーに
AmazonTextractFullAccessおよび アクセスAmazonS3ReadOnlyAccess許可を付与します。詳細については、「ステップ 1: AWS アカウントを設定してユーザーを作成する」を参照してください。と AWS SDKs をインストール AWS CLI して設定します。詳細については、「ステップ 2: AWS CLI と AWS SDKs」を参照してください。
-
ドキュメントを含むイメージを S3 バケットにアップロードします。
手順については、「Amazon S3 へのオブジェクトのアップロード」のために、Amazon Simple ストレージサービスユーザーガイド を参照してください。
以下の例を使用して、
AnalyzeIDオペレーションを呼び出します。- AWS CLI
-
次の例では、S3 バケットから入力ファイルを取得し、そのバケットに対して
AnalyzeIDオペレーションを実行します。次のコードでは、 の値を S3 バケットの名前Bucketに置き換え、 の値をバケット内のファイルNameの名前に置き換えます。をロールを引き受けることができるプロファイルの名前profile-nameに置き換え、 をコードを実行するリージョンregionに置き換えます。aws textract analyze-id \ --document-pages '{"S3Object":{"Bucket":"bucket","Name":"name"}}' \ --profileprofile-name\ --regionregion入力に別の Amazon S3 オブジェクトを追加することで、運転免許証の前面と背面で API を呼び出すこともできます。
aws textract analyze-id \ --document-pages '[{"S3Object":{"Bucket":"bucket","Name":"name front"}}, {"S3Object":{"Bucket":"bucket","Name":"name back"}}]' \ --profileprofile-name\ --regionregionWindows デバイスで CLI にアクセスする場合は、一重引用符の代わりに二重引用符を使用し、内部の二重引用符をバックスラッシュ (\) でエスケープして、発生する可能性のあるパーサーエラーに対処します。例として以下を参照してください。
aws textract analyze-id --document-pages "[{\"S3Object\":{\"Bucket\":\"bucket\",\"Name\":\"name\"}}]" --regionregion - Python
-
次の例では、S3 バケットから入力ファイルを取得し、そのバケットに対して
AnalyzeIDオペレーションを実行して、検出されたキーと値のペアを返します。次のコードでは、 の値を S3 バケットの名前bucket_nameに置き換え、 の値をバケット内のファイルfile_nameの名前に置き換えます。をロールを引き受けることができるプロファイルの名前profile-nameに置き換え、 をコードを実行するリージョンregionに置き換えます。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
-
次の例では、S3 バケットから入力ファイルを取得し、そのバケットに対して
AnalyzeIDオペレーションを実行して、検出されたデータを返します。関数のメインで、s3bucketと の値を、ステップ 2 で使用した Amazon S3 バケットとドキュメントイメージsourceDocの名前に置き換えます。credentialsProviderの値を自分のデベロッパープロファイル名に置き換えます。/* 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
-
次の例では、S3 バケットから入力ファイルを取得し、そのバケットに対して
AnalyzeIDオペレーションを実行して、検出されたデータを返します。関数のメインで、s3bucketと の値を、ステップ 2 で使用した S3 バケットとドキュメントイメージsourceDocの名前に置き換えます。を作成する行
profile-nameの を開発者プロファイルの名前TextractClientに置き換えます。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] }
-
これにより、
AnalyzeIDオペレーションの JSON 出力が提供されます。