

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

# Amazon Textract を使用したアイデンティティドキュメントの分析
<a name="analyzing-document-identity"></a>

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

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

**アイデンティティドキュメント (API) を分析するには**

1. まだ実行していない場合:

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

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

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

   手順については、以下を参照してください。[Amazon S3 へのオブジェクトのアップロード](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/UploadingObjectsintoAmazonS3.html)の*Amazon Simple Storage Service ユーザーガイド*。

1. 以下の例を使用して、`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();
          }
       }
   }
   ```

------

1. これにより、の JSON 出力が提供されます。`AnalyzeID`オペレーション.