

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Textract Textract를 사용하여 자격 증명 문서 분석
<a name="analyzing-document-identity"></a>

ID 문서를 분석하려면 AnalyzeId API를 사용하고 문서 파일을 입력으로 전달합니다.`AnalyzeID`는 분석된 텍스트를 포함하는 JSON 구조를 반환합니다. 자세한 정보는 [ID 문서 분석](how-it-works-identity.md)을 참조하십시오.

입력 문서를 이미지 바이트 어레이 (base64 인코딩 이미지 바이트) 또는 Amazon S3 객체로 제공할 수 있습니다. 이 절차에서는 S3 버킷에 이미지 파일을 업로드하고 파일 이름을 지정합니다.

**ID 문서 (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에 액세스하는 경우 작은 따옴표 대신 큰따옴표를 사용하고 백슬래시 (예:\$1) 로 내부 큰따옴표를 이스케이프하여 발생할 수 있는 파서 오류를 해결합니다. 예제는 아래를 참조하십시오.

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

------
#### [ Python ]

   다음 예제에서는 S3 버킷에서 입력 파일을 가져와`AnalyzeID`이 작업에 대해 검색된 키-값 페어를 반환합니다. 아래 코드에서 다음 값을 바꿉니다.*bucket\$1name*S3 버킷의 이름을 사용하여*file\$1name*을 사용하여 버킷의 파일 이름과 의 값을 사용하여*부위*의 이름과 함께`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`작업을 수행합니다.