翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Textract を使用したアイデンティティドキュメントの分析
アイデンティティドキュメントを分析するには、AnalyzeID API を使用し、ドキュメントファイルを入力として渡します。AnalyzeID
は、分析されたテキストを含む JSON 構造を返します。詳細については、「アイデンティティドキュメントの分析」を参照してください。
入力ドキュメントとして、イメージのバイト配列 (base64 エンコードされたイメージのバイト) を指定するか、Amazon S3 オブジェクトを指定できます。以下の手順では、イメージファイルを S3 バケットにアップロードし、そのファイル名を指定します。
アイデンティティドキュメント (API) を分析するには
まだ実行していない場合:
を使用して IAM ユーザーを作成または更新するAmazonTextractFullAccess
そしてAmazonS3ReadOnlyAccess
アクセス許可。詳細については、「ステップ 1: AWS アカウントを設定して IAM ユーザーの作成」を参照してください。
AWS CLI と AWS SDK をインストールして設定します。詳細については、「ステップ 2: のセットアップAWS CLIそしてAWSSDK」を参照してください。
-
ドキュメントが含まれているイメージを S3 バケットにアップロードします。
手順については、以下を参照してください。Amazon S3 へのオブジェクトのアップロードのAmazon Simple Storage Service ユーザーガイド。
以下の例を使用して、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();
}
}
}
-
これにより、の JSON 出力が提供されます。AnalyzeID
オペレーション.