

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mendeteksi teks
<a name="text-detection"></a>

Amazon Rekognition dapat mendeteksi teks dalam citra dan video. Hal ini kemudian dapat mengonversi teks yang terdeteksi menjadi teks yang dapat dibaca oleh mesin. Anda dapat menggunakan deteksi teks yang dapat dibaca mesin dalam citra untuk menerapkan solusi seperti:
+ Pencarian visual. Misalnya, mengambil dan menampilkan citra yang berisi teks yang sama.
+ Wawasan konten. Misalnya, menyediakan wawasan tentang tema yang muncul dalam teks yang dikenali dalam bingkai video yang diekstraksi. Aplikasi Anda dapat mencari teks yang dikenali untuk konten yang relevan, seperti berita, skor olahraga, nomor atlet, dan keterangan.
+ Navigasi. Misalnya, mengembangkan aplikasi seluler berkemampuan bicara untuk penyandang disabilitas yang mengenali nama restoran, toko, atau rambu jalan. 
+ Keamanan publik dan dukungan transportasi. Misalnya, mendeteksi nomor plat mobil dari citra kamera lalu lintas. 
+ Memfilter. Misalnya, mem-filter informasi pengenal pribadi (PII) dari citra. 

Untuk deteksi teks dalam video, Anda dapat menerapkan solusi seperti: 
+ Mencari video untuk klip dengan kata kunci teks tertentu, seperti nama tamu pada grafik di acara berita.
+ Memoderasi konten untuk kepatuhan dengan standar organisasi dengan cara mendeteksi teks, kata tidak senonoh, atau spam yang tidak disengaja.
+ Menemukan semua lapisan teks pada lini masa video untuk pemrosesan lebih lanjut, seperti mengganti teks dengan teks dalam bahasa lain untuk internasionalisasi konten.
+ Menemukan lokasi teks, sehingga grafik lain dapat disejajarkan dengan tepat.

Untuk mendeteksi teks dalam citra dalam format JPEG atau PNG, gunakan operasi [DetectText](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectText.html). Untuk mendeteksi teks dalam video secara tidak sinkron, gunakan operasi [StartTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartTextDetection.html) dan [GetTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetTextDetection.html). Operasi deteksi teks citra dan video mendukung sebagian besar font, termasuk font yang sangat bergaya. Setelah mendeteksi teks, Amazon Rekognition membuat representasi kata-kata dan baris teks yang terdeteksi, menunjukkan hubungan di antaranya, dan memberi tahu Anda tempat teks berada pada bingkai citra atau video.

Operasi `DetectText` dan `GetTextDetection` mendeteksi kata-kata dan baris. Sebuah *kata* adalah satu atau lebih karakter skrip yang tidak dipisahkan oleh spasi. `DetectText`dapat mendeteksi hingga 100 kata dalam sebuah gambar. `GetTextDetection`Juga dapat mendeteksi hingga 100 kata per frame video. 

Kata adalah satu atau lebih karakter skrip yang tidak dipisahkan oleh spasi. Amazon Rekognition dirancang untuk mendeteksi kata-kata dalam bahasa Inggris, Arab, Rusia, Jerman, Prancis, Italia, Portugis, dan Spanyol.

*Baris* adalah rangkaian kata yang berjarak sama. Sebuah baris belum tentu merupakan kalimat yang lengkap (titik tidak menunjukkan akhir dari sebuah baris). Misalnya, Amazon Rekognition mendeteksi nomor lisensi pengemudi sebagai sebuah baris. Sebuah baris berakhir ketika tidak ada teks yang disejajarkan setelahnya atau ketika ada jarak yang besar di antara kata-kata, relatif terhadap panjang kata. Tergantung pada celah antar kata, Amazon Rekognition mungkin mendeteksi beberapa baris dalam teks yang disejajarkan dalam arah yang sama. Jika kalimat mencakup beberapa baris, maka operasi mengembalikan beberapa baris.

Pertimbangkan citra berikut.

![\[Mug kopi dengan wajah tersenyum dan teks “Ini hari Senin tapi tetap tersenyum”, dengan kotak pembatas dan teks yang diekstraksi..\]](http://docs.aws.amazon.com/id_id/rekognition/latest/dg/images/text.png)


Kotak biru mewakili informasi tentang teks yang terdeteksi dan lokasi teks yang dikembalikan oleh operasi `DetectText`. Dalam contoh ini, Amazon Rekognition mendeteksi "IT'S", "SENIN", "tapi", "tetap", dan "Tersenyum" sebagai kata. Amazon Rekognition mendeteksi "IT'S", "SENIN", "tapi tetap", dan "Tersenyum" sebagai baris. Agar terdeteksi, teks harus berada dalam orientasi \$1/- 90 derajat dari sumbu horizontal.

Sebagai contoh, lihat [Mendeteksi teks dalam sebuah citra](text-detecting-text-procedure.md).

**Topics**
+ [Mendeteksi teks dalam sebuah citra](text-detecting-text-procedure.md)
+ [Mendeteksi teks dalam video yang tersimpan](text-detecting-video-procedure.md)

# Mendeteksi teks dalam sebuah citra
<a name="text-detecting-text-procedure"></a>

Anda dapat menyediakan citra input sebagai array bit citra (bit citra yang dikodekan base64), atau sebagai objek Amazon S3. Dalam prosedur ini, Anda mengunggah citra JPEG atau PNG ke bucket S3 Anda dan menentukan nama file. 

**Untuk mendeteksi teks dalam citra (API)**

1. Jika Anda belum melakukannya, selesaikan prasyarat berikut.

   1. Buat atau perbarui pengguna dengan `AmazonRekognitionFullAccess` dan `AmazonS3ReadOnlyAccess` izin. Untuk informasi selengkapnya, lihat [Langkah 1: Siapkan akun AWS dan buat Pengguna](setting-up.md#setting-up-iam).

   1. Instal dan konfigurasikan AWS Command Line Interface dan AWS SDKs. Untuk informasi selengkapnya, lihat [Langkah 2: Mengatur AWS CLI dan AWS SDKs](setup-awscli-sdk.md).

1. Unggah citra yang berisi teks ke bucket S3 Anda. 

   Untuk petunjuk, lihat [Mengunggah Objek ke Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UploadingObjectsintoAmazonS3.html) S3 di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

1. Gunakan contoh berikut untuk memanggil operasi `DetectText`.

------
#### [ Java ]

   Kode contoh berikut menampilkan baris dan kata-kata yang terdeteksi dalam citra. 

   Mengganti nilai-nilai `amzn-s3-demo-bucket` dan `photo` dengan nama bucket S3 dan citra yang Anda gunakan pada langkah 2. 

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   package aws.example.rekognition.image;
   import com.amazonaws.services.rekognition.AmazonRekognition;
   import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
   import com.amazonaws.services.rekognition.model.AmazonRekognitionException;
   import com.amazonaws.services.rekognition.model.Image;
   import com.amazonaws.services.rekognition.model.S3Object;
   import com.amazonaws.services.rekognition.model.DetectTextRequest;
   import com.amazonaws.services.rekognition.model.DetectTextResult;
   import com.amazonaws.services.rekognition.model.TextDetection;
   import java.util.List;
   
   
   
   public class DetectText {
   
      public static void main(String[] args) throws Exception {
         
     
         String photo = "inputtext.jpg";
         String bucket = "bucket";
   
         AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
   
        
         
         DetectTextRequest request = new DetectTextRequest()
                 .withImage(new Image()
                 .withS3Object(new S3Object()
                 .withName(photo)
                 .withBucket(bucket)));
       
   
         try {
            DetectTextResult result = rekognitionClient.detectText(request);
            List<TextDetection> textDetections = result.getTextDetections();
   
            System.out.println("Detected lines and words for " + photo);
            for (TextDetection text: textDetections) {
         
                    System.out.println("Detected: " + text.getDetectedText());
                    System.out.println("Confidence: " + text.getConfidence().toString());
                    System.out.println("Id : " + text.getId());
                    System.out.println("Parent Id: " + text.getParentId());
                    System.out.println("Type: " + text.getType());
                    System.out.println();
            }
         } catch(AmazonRekognitionException e) {
            e.printStackTrace();
         }
      }
   }
   ```

------
#### [ Java V2 ]

   Kode ini diambil dari GitHub repositori contoh SDK AWS Dokumentasi. Lihat contoh lengkapnya [di sini](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/rekognition/src/main/java/com/example/rekognition/DetectText.java).

   ```
   /**
   *  To run this code example, ensure that you perform the Prerequisites as stated in the Amazon Rekognition Guide:
   *  https://docs.aws.amazon.com/rekognition/latest/dg/video-analyzing-with-sqs.html
   *
   * Also, ensure that set up your development environment, including your credentials.
   *
   * For information, see this documentation topic:
   *
   * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
   */
   
   //snippet-start:[rekognition.java2.detect_text.import]
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.core.SdkBytes;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DetectTextRequest;
   import software.amazon.awssdk.services.rekognition.model.Image;
   import software.amazon.awssdk.services.rekognition.model.DetectTextResponse;
   import software.amazon.awssdk.services.rekognition.model.TextDetection;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   import java.io.FileInputStream;
   import java.io.FileNotFoundException;
   import java.io.InputStream;
   import java.util.List;
   //snippet-end:[rekognition.java2.detect_text.import]
   
   /**
   * 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 DetectTextImage {
   
    public static void main(String[] args) {
   
        final String usage = "\n" +
            "Usage: " +
            "   <sourceImage>\n\n" +
            "Where:\n" +
            "   sourceImage - The path to the image that contains text (for example, C:\\AWS\\pic1.png). \n\n";
   
      if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }
   
        String sourceImage = args[0] ;
        Region region = Region.US_WEST_2;
        RekognitionClient rekClient = RekognitionClient.builder()
            .region(region)
            .credentialsProvider(ProfileCredentialsProvider.create("default"))
            .build();
   
        detectTextLabels(rekClient, sourceImage );
        rekClient.close();
    }
   
    // snippet-start:[rekognition.java2.detect_text.main]
    public static void detectTextLabels(RekognitionClient rekClient, String sourceImage) {
   
        try {
            InputStream sourceStream = new FileInputStream(sourceImage);
            SdkBytes sourceBytes = SdkBytes.fromInputStream(sourceStream);
            Image souImage = Image.builder()
                .bytes(sourceBytes)
                .build();
   
            DetectTextRequest textRequest = DetectTextRequest.builder()
                .image(souImage)
                .build();
   
            DetectTextResponse textResponse = rekClient.detectText(textRequest);
            List<TextDetection> textCollection = textResponse.textDetections();
            System.out.println("Detected lines and words");
            for (TextDetection text: textCollection) {
                System.out.println("Detected: " + text.detectedText());
                System.out.println("Confidence: " + text.confidence().toString());
                System.out.println("Id : " + text.id());
                System.out.println("Parent Id: " + text.parentId());
                System.out.println("Type: " + text.type());
                System.out.println();
            }
   
        } catch (RekognitionException | FileNotFoundException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
    }
    // snippet-end:[rekognition.java2.detect_text.main]
   ```

------
#### [ AWS CLI ]

    AWS CLI Perintah ini menampilkan output JSON untuk operasi `detect-text` CLI. 

   Mengganti nilai-nilai `amzn-s3-demo-bucket` dan `Name` dengan nama bucket S3 dan citra yang Anda gunakan pada langkah 2. 

   Ganti nilai `profile_name` dengan nama profil pengembang Anda.

   ```
   aws rekognition detect-text  --image "{"S3Object":{"Bucket":"amzn-s3-demo-bucket","Name":"image-name"}}" --profile default
   ```

   Jika Anda mengakses CLI pada perangkat Windows, gunakan tanda kutip ganda alih-alih tanda kutip tunggal dan hindari tanda kutip ganda bagian dalam dengan garis miring terbalik (yaitu\$1) untuk mengatasi kesalahan parser yang mungkin Anda temui. Sebagai contoh, lihat berikut ini: 

   ```
   aws rekognition detect-text  --image "{\"S3Object\":{\"Bucket\":\"amzn-s3-demo-bucket\",\"Name\":\"image-name\"}}" --profile default
   ```

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

   Contoh kode berikut menampilkan baris dan kata-kata yang terdeteksi dalam sebuah citra. 

   Mengganti nilai-nilai `amzn-s3-demo-bucket` dan `photo` dengan nama bucket S3 dan citra yang Anda gunakan pada langkah 2. Ganti nilai `profile_name` di baris yang membuat sesi Rekognition dengan nama profil pengembang Anda.

   ```
   # Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   import boto3
   
   def detect_text(photo, bucket):
   
       session = boto3.Session(profile_name='default')
       client = session.client('rekognition')
   
       response = client.detect_text(Image={'S3Object': {'Bucket': bucket, 'Name': photo}})
   
       textDetections = response['TextDetections']
       print('Detected text\n----------')
       for text in textDetections:
           print('Detected text:' + text['DetectedText'])
           print('Confidence: ' + "{:.2f}".format(text['Confidence']) + "%")
           print('Id: {}'.format(text['Id']))
           if 'ParentId' in text:
               print('Parent Id: {}'.format(text['ParentId']))
           print('Type:' + text['Type'])
           print()
       return len(textDetections)
   
   def main():
       bucket = 'amzn-s3-demo-bucket'
       photo = 'photo-name'
       text_count = detect_text(photo, bucket)
       print("Text detected: " + str(text_count))
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ .NET ]

   Contoh kode berikut menampilkan baris dan kata-kata yang terdeteksi dalam sebuah citra. 

   Ganti nilai-nilai `amzn-s3-demo-bucket` dan `photo` dengan nama bucket S3 dan citra yang Anda gunakan pada langkah 2. 

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   using System;
   using Amazon.Rekognition;
   using Amazon.Rekognition.Model;
   
   public class DetectText
   {
       public static void Example()
       {
           String photo = "input.jpg";
           String bucket = "amzn-s3-demo-bucket";
   
           AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();
   
           DetectTextRequest detectTextRequest = new DetectTextRequest()
           {
               Image = new Image()
               {
                   S3Object = new S3Object()
                   {
                       Name = photo,
                       Bucket = bucket
                   }
               }
           };
   
           try
           {
               DetectTextResponse detectTextResponse = rekognitionClient.DetectText(detectTextRequest);
               Console.WriteLine("Detected lines and words for " + photo);
               foreach (TextDetection text in detectTextResponse.TextDetections)
               {
                   Console.WriteLine("Detected: " + text.DetectedText);
                   Console.WriteLine("Confidence: " + text.Confidence);
                   Console.WriteLine("Id : " + text.Id);
                   Console.WriteLine("Parent Id: " + text.ParentId);
                   Console.WriteLine("Type: " + text.Type);
               }
           }
           catch (Exception e)
           {
               Console.WriteLine(e.Message);
           }
       }
   }
   ```

------
#### [ Node.JS ]

   Contoh kode berikut menampilkan baris dan kata-kata yang terdeteksi dalam sebuah citra. 

   Mengganti nilai-nilai `amzn-s3-demo-bucket` dan `photo` dengan nama bucket S3 dan citra yang Anda gunakan pada langkah 2. Ganti nilai `region` dengan wilayah yang ditemukan di kredensial.aws Anda. Ganti nilai `profile_name` di baris yang membuat sesi Rekognition dengan nama profil pengembang Anda. 

   ```
   var AWS = require('aws-sdk');
   
   const bucket = 'bucket' // the bucketname without s3://
   const photo  = 'photo' // the name of file
   
   const config = new AWS.Config({
     accessKeyId: process.env.AWS_ACCESS_KEY_ID,
     secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
   }) 
   AWS.config.update({region:'region'});
   const client = new AWS.Rekognition();
   const params = {
     Image: {
       S3Object: {
         Bucket: bucket,
         Name: photo
       },
     },
   }
   client.detectText(params, function(err, response) {
     if (err) {
       console.log(err, err.stack); // handle error if an error occurred
     } else {
       console.log(`Detected Text for: ${photo}`)
       console.log(response)
       response.TextDetections.forEach(label => {
         console.log(`Detected Text: ${label.DetectedText}`),
         console.log(`Type: ${label.Type}`),
         console.log(`ID: ${label.Id}`),
         console.log(`Parent ID: ${label.ParentId}`),
         console.log(`Confidence: ${label.Confidence}`),
         console.log(`Polygon: `)
         console.log(label.Geometry.Polygon)
       } 
       )
     } 
   });
   ```

------

## DetectText permintaan operasi
<a name="detecttext-request"></a>

Dalam operasi `DetectText`, Anda menyediakan citra input, sebagai array bit yang dikodekan base64 atau sebagai citra yang disimpan dalam bucket Amazon S3. Contoh permintaan JSON berikut menunjukkan citra yang dimuat dari bucket Amazon S3.

```
{
    "Image": {
        "S3Object": {
            "Bucket": "amzn-s3-demo-bucket",
            "Name": "inputtext.jpg"
        }
    }
}
```

### Penyaring
<a name="text-filters"></a>

Pemfilteran berdasarkan wilayah teks, ukuran, dan skor kepercayaan memberikan Anda fleksibilitas tambahan untuk mengendalikan output deteksi teks Anda. Dengan menggunakan wilayah yang diminati, Anda dapat dengan mudah membatasi deteksi teks ke wilayah yang relevan bagi Anda, misalnya, kanan atas foto profil atau lokasi tetap terkait dengan titik referensi saat membaca nomor suku cadang dari citra mesin. Filter ukuran kotak pembatas kata dapat digunakan untuk menghindari teks latar belakang kecil yang mungkin ramai atau tidak relevan. Filter kepercayaan kata memungkinkan Anda untuk menghapus hasil yang mungkin tidak dapat diandalkan karena buram atau ternoda. 

Untuk informasi mengenai nilai filter, lihat`[DetectTextFilters](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectTextFilters.html)`.

Anda dapat menggunakan filter berikut:
+ **MinConfidence**—Menetapkan tingkat kepercayaan deteksi kata. Kata-kata dengan kepercayaan deteksi di bawah tingkat ini dikeluarkan dari hasil. Nilai harus antara 0 hingga 100.
+ **MinBoundingBoxWidth**— Mengatur lebar minimum kotak pembatas kata. Kata-kata dengan kotak pembatas yang lebih kecil dari nilai ini dikeluarkan dari hasil. Nilainya relatif terhadap lebar bingkai citra.
+ **MinBoundingBoxHeight**— Mengatur tinggi minimum kotak pembatas kata. Kata-kata dengan tinggi kotak pembatas kurang dari nilai ini dikeluarkan dari hasil. Nilainya relatif terhadap tinggi bingkai citra.
+ **RegionsOfInterest**— Membatasi deteksi ke wilayah tertentu dari bingkai gambar. Nilai-nilainya relatif terhadap dimensi bingkai. Untuk teks yang hanya sebagian dalam suatu wilayah, responsnya tidak ditentukan.

## DetectText respon operasi
<a name="text-response"></a>

`DetectText`Operasi menganalisis gambar dan mengembalikan array, TextDetections, di mana setiap elemen (`[TextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TextDetection.html)`) mewakili garis atau kata yang terdeteksi dalam gambar. Untuk setiap elemen, `DetectText` mengembalikan informasi berikut: 
+ Teks yang terdeteksi (`DetectedText`)
+ Hubungan antara kata-kata dan baris (`Id` dan `ParentId`)
+ Lokasi teks pada citra (`Geometry`)
+ kepercayaan Amazon Rekognition memiliki keakuratan teks yang terdeteksi dan kotak pembatas (`Confidence`)
+ tipe teks yang terdeteksi (`Type`)

### Teks yang terdeteksi
<a name="text-detected-text"></a>

Setiap elemen `TextDetection` berisi teks yang dikenali (kata atau baris) dalam bidang `DetectedText`. Sebuah kata adalah satu atau lebih karakter skrip yang tidak dipisahkan oleh spasi. `DetectText`dapat mendeteksi hingga 100 kata dalam sebuah gambar. Teks yang dikembalikan mungkin menyertakan karakter yang membuat kata tidak dapat dikenali. Misalnya, *C@t* alih-alih *Cat*. Untuk menentukan apakah elemen `TextDetection` mewakili baris teks atau kata, gunakan bidang `Type`.

 

Setiap elemen `TextDetection` termasuk nilai persentase yang mewakili tingkat kepercayaan bahwa Amazon Rekognition memiliki keakuratan teks yang terdeteksi dan kotak pembatas yang mengelilingi teks. 

### Hubungan kata dan baris
<a name="text-ids"></a>

Setiap elemen `TextDetection` memiliki bidang pengenal, `Id`. `Id` menunjukkan posisi kata dalam satu baris. Jika elemennya adalah kata, bidang pengenal induk, `ParentId`, mengidentifikasi baris tempat kata tersebut terdeteksi. `ParentId` untuk baris adalah nol. Sebagai contoh, baris "tapi tetap" dalam citra contoh memiliki nilai `Id` dan `ParentId` berikut: 


|  Teks  |  ID  |  ID Induk  | 
| --- | --- | --- | 
|  tapi tetap  |  3  |     | 
|  tapi  |  8  |  3  | 
|  tetap  |  9  |  3  | 

### Lokasi teks pada citra
<a name="text-location"></a>

Untuk menentukan di mana teks yang dikenali berada pada gambar, gunakan informasi kotak pembatas ([Geometri](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Geometry.html)) yang dikembalikan oleh. `DetectText` Objek `Geometry` berisi dua tipe informasi kotak pembatas untuk baris dan kata yang terdeteksi:
+ Garis besar persegi panjang kasar sejajar sumbu dalam objek [BoundingBox](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_BoundingBox.html)
+ [Poligon berbutir halus yang terdiri dari beberapa koordinat X dan Y dalam array Titik](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Point.html)

Koordinat kotak pembatas dan poligon menunjukkan lokasi teks terletak pada citra sumber. Nilai koordinat adalah rasio ukuran citra secara keseluruhan. Untuk informasi selengkapnya, lihat [BoundingBox](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_BoundingBox.html). 

Berikut respons JSON dari operasi `DetectText` yang menunjukkan kata-kata dan baris yang terdeteksi pada citra berikut.

![\[Mug kopi tersenyum di sebelah teks yang bertuliskan “Ini hari Senin tapi tetap Tersenyum” dengan latar belakang batu bata, dengan kotak pembatas teks.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/dg/images/text.png)


```
{
 'TextDetections': [{'Confidence': 99.35693359375,
                     'DetectedText': "IT'S",
                     'Geometry': {'BoundingBox': {'Height': 0.09988046437501907,
                                                  'Left': 0.6684935688972473,
                                                  'Top': 0.18226495385169983,
                                                  'Width': 0.1461552083492279},
                                  'Polygon': [{'X': 0.6684935688972473,
                                               'Y': 0.1838926374912262},
                                              {'X': 0.8141663074493408,
                                               'Y': 0.18226495385169983},
                                              {'X': 0.8146487474441528,
                                               'Y': 0.28051772713661194},
                                              {'X': 0.6689760088920593,
                                               'Y': 0.2821454107761383}]},
                     'Id': 0,
                     'Type': 'LINE'},
                    {'Confidence': 99.6207275390625,
                     'DetectedText': 'MONDAY',
                     'Geometry': {'BoundingBox': {'Height': 0.11442459374666214,
                                                  'Left': 0.5566731691360474,
                                                  'Top': 0.3525116443634033,
                                                  'Width': 0.39574965834617615},
                                  'Polygon': [{'X': 0.5566731691360474,
                                               'Y': 0.353712260723114},
                                              {'X': 0.9522717595100403,
                                               'Y': 0.3525116443634033},
                                              {'X': 0.9524227976799011,
                                               'Y': 0.4657355844974518},
                                              {'X': 0.5568241477012634,
                                               'Y': 0.46693623065948486}]},
                     'Id': 1,
                     'Type': 'LINE'},
                    {'Confidence': 99.6160888671875,
                     'DetectedText': 'but keep',
                     'Geometry': {'BoundingBox': {'Height': 0.08314694464206696,
                                                  'Left': 0.6398131847381592,
                                                  'Top': 0.5267938375473022,
                                                  'Width': 0.2021435648202896},
                                  'Polygon': [{'X': 0.640289306640625,
                                               'Y': 0.5267938375473022},
                                              {'X': 0.8419567942619324,
                                               'Y': 0.5295097827911377},
                                              {'X': 0.8414806723594666,
                                               'Y': 0.609940767288208},
                                              {'X': 0.6398131847381592,
                                               'Y': 0.6072247624397278}]},
                     'Id': 2,
                     'Type': 'LINE'},
                    {'Confidence': 88.95134735107422,
                     'DetectedText': 'Smiling',
                     'Geometry': {'BoundingBox': {'Height': 0.4326171875,
                                                  'Left': 0.46289217472076416,
                                                  'Top': 0.5634765625,
                                                  'Width': 0.5371078252792358},
                                  'Polygon': [{'X': 0.46289217472076416,
                                               'Y': 0.5634765625},
                                              {'X': 1.0, 'Y': 0.5634765625},
                                              {'X': 1.0, 'Y': 0.99609375},
                                              {'X': 0.46289217472076416,
                                               'Y': 0.99609375}]},
                     'Id': 3,
                     'Type': 'LINE'},
                    {'Confidence': 99.35693359375,
                     'DetectedText': "IT'S",
                     'Geometry': {'BoundingBox': {'Height': 0.09988046437501907,
                                                  'Left': 0.6684935688972473,
                                                  'Top': 0.18226495385169983,
                                                  'Width': 0.1461552083492279},
                                  'Polygon': [{'X': 0.6684935688972473,
                                               'Y': 0.1838926374912262},
                                              {'X': 0.8141663074493408,
                                               'Y': 0.18226495385169983},
                                              {'X': 0.8146487474441528,
                                               'Y': 0.28051772713661194},
                                              {'X': 0.6689760088920593,
                                               'Y': 0.2821454107761383}]},
                     'Id': 4,
                     'ParentId': 0,
                     'Type': 'WORD'},
                    {'Confidence': 99.6207275390625,
                     'DetectedText': 'MONDAY',
                     'Geometry': {'BoundingBox': {'Height': 0.11442466825246811,
                                                  'Left': 0.5566731691360474,
                                                  'Top': 0.35251158475875854,
                                                  'Width': 0.39574965834617615},
                                  'Polygon': [{'X': 0.5566731691360474,
                                               'Y': 0.3537122905254364},
                                              {'X': 0.9522718787193298,
                                               'Y': 0.35251158475875854},
                                              {'X': 0.9524227976799011,
                                               'Y': 0.4657355546951294},
                                              {'X': 0.5568241477012634,
                                               'Y': 0.46693626046180725}]},
                     'Id': 5,
                     'ParentId': 1,
                     'Type': 'WORD'},
                    {'Confidence': 99.96778869628906,
                     'DetectedText': 'but',
                     'Geometry': {'BoundingBox': {'Height': 0.0625,
                                                  'Left': 0.6402802467346191,
                                                  'Top': 0.5283203125,
                                                  'Width': 0.08027780801057816},
                                  'Polygon': [{'X': 0.6402802467346191,
                                               'Y': 0.5283203125},
                                              {'X': 0.7205580472946167,
                                               'Y': 0.5283203125},
                                              {'X': 0.7205580472946167,
                                               'Y': 0.5908203125},
                                              {'X': 0.6402802467346191,
                                               'Y': 0.5908203125}]},
                     'Id': 6,
                     'ParentId': 2,
                     'Type': 'WORD'},
                    {'Confidence': 99.26438903808594,
                     'DetectedText': 'keep',
                     'Geometry': {'BoundingBox': {'Height': 0.0818721204996109,
                                                  'Left': 0.7344760298728943,
                                                  'Top': 0.5280686020851135,
                                                  'Width': 0.10748066753149033},
                                  'Polygon': [{'X': 0.7349520921707153,
                                               'Y': 0.5280686020851135},
                                              {'X': 0.8419566750526428,
                                               'Y': 0.5295097827911377},
                                              {'X': 0.8414806127548218,
                                               'Y': 0.6099407076835632},
                                              {'X': 0.7344760298728943,
                                               'Y': 0.6084995269775391}]},
                     'Id': 7,
                     'ParentId': 2,
                     'Type': 'WORD'},
                    {'Confidence': 88.95134735107422,
                     'DetectedText': 'Smiling',
                     'Geometry': {'BoundingBox': {'Height': 0.4326171875,
                                                  'Left': 0.46289217472076416,
                                                  'Top': 0.5634765625,
                                                  'Width': 0.5371078252792358},
                                  'Polygon': [{'X': 0.46289217472076416,
                                               'Y': 0.5634765625},
                                              {'X': 1.0, 'Y': 0.5634765625},
                                              {'X': 1.0, 'Y': 0.99609375},
                                              {'X': 0.46289217472076416,
                                               'Y': 0.99609375}]},
                     'Id': 8,
                     'ParentId': 3,
                     'Type': 'WORD'}],
 'TextModelVersion': '3.0'}
```

# Mendeteksi teks dalam video yang tersimpan
<a name="text-detecting-video-procedure"></a>

Pendeteksi teks Amazon Rekognition Video dalam video yang disimpan adalah operasi tidak sinkron. Untuk mulai mendeteksi teks, hubungi [StartTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartTextDetection.html). Amazon Rekognition Video menerbitkan status penyelesaian analisis video ke topik Amazon SNS. Jika analisis video berhasil, hubungi [GetTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetTextDetection.html) untuk mendapatkan hasil analisis. Untuk informasi selengkapnya tentang memulai analisis video dan mendapatkan hasilnya, lihat [Memanggil operasi Amazon Rekognition Video](api-video.md).

Prosedur ini memperluas kode di [Menganalisis video yang disimpan di bucket Amazon S3 dengan Java atau Python (SDK)](video-analyzing-with-sqs.md). Menggunakan antrean Amazon SQS untuk mendapatkan status penyelesaian permintaan analisis video.

**Untuk mendeteksi teks dalam video yang disimpan di bucket Amazon S3 (SDK)**

1. Lakukan langkah-langkah pada [Menganalisis video yang disimpan di bucket Amazon S3 dengan Java atau Python (SDK)](video-analyzing-with-sqs.md).

1. Tambahkan kode berikut ke kelas `VideoDetect` pada langkah 1.

------
#### [ Java ]

   ```
   //Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   
   private static void StartTextDetection(String bucket, String video) throws Exception{
              
       NotificationChannel channel= new NotificationChannel()
               .withSNSTopicArn(snsTopicArn)
               .withRoleArn(roleArn);
       
       StartTextDetectionRequest req = new StartTextDetectionRequest()
               .withVideo(new Video()
                       .withS3Object(new S3Object()
                           .withBucket(bucket)
                           .withName(video)))
               .withNotificationChannel(channel);
       
       
       StartTextDetectionResult startTextDetectionResult = rek.startTextDetection(req);
       startJobId=startTextDetectionResult.getJobId();
       
   } 
   
   private static void GetTextDetectionResults() throws Exception{
       
       int maxResults=10;
       String paginationToken=null;
       GetTextDetectionResult textDetectionResult=null;
       
       do{
           if (textDetectionResult !=null){
               paginationToken = textDetectionResult.getNextToken();
   
           }
           
       
           textDetectionResult = rek.getTextDetection(new GetTextDetectionRequest()
                .withJobId(startJobId)
                .withNextToken(paginationToken)
                .withMaxResults(maxResults));
       
           VideoMetadata videoMetaData=textDetectionResult.getVideoMetadata();
               
           System.out.println("Format: " + videoMetaData.getFormat());
           System.out.println("Codec: " + videoMetaData.getCodec());
           System.out.println("Duration: " + videoMetaData.getDurationMillis());
           System.out.println("FrameRate: " + videoMetaData.getFrameRate());
               
               
           //Show text, confidence values
           List<TextDetectionResult> textDetections = textDetectionResult.getTextDetections();
   
   
           for (TextDetectionResult text: textDetections) {
               long seconds=text.getTimestamp()/1000;
               System.out.println("Sec: " + Long.toString(seconds) + " ");
               TextDetection detectedText=text.getTextDetection();
               
               System.out.println("Text Detected: " + detectedText.getDetectedText());
                   System.out.println("Confidence: " + detectedText.getConfidence().toString());
                   System.out.println("Id : " + detectedText.getId());
                   System.out.println("Parent Id: " + detectedText.getParentId());
                   System.out.println("Bounding Box" + detectedText.getGeometry().getBoundingBox().toString());
                   System.out.println("Type: " + detectedText.getType());
                   System.out.println();
           }
       } while (textDetectionResult !=null && textDetectionResult.getNextToken() != null);
         
           
   }
   ```

   Dalam fungsi `main`, ganti baris: 

   ```
           StartLabelDetection(amzn-s3-demo-bucket, video);
   
           if (GetSQSMessageSuccess()==true)
           	GetLabelDetectionResults();
   ```

   dengan:

   ```
           StartTextDetection(amzn-s3-demo-bucket, video);
   
           if (GetSQSMessageSuccess()==true)
           	GetTextDetectionResults();
   ```

------
#### [ Java V2 ]

   Kode ini diambil dari GitHub repositori contoh SDK AWS Dokumentasi. Lihat contoh lengkapnya [di sini](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/rekognition/src/main/java/com/example/rekognition/VideoDetectText.java).

   ```
   //snippet-start:[rekognition.java2.recognize_video_text.import]
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.S3Object;
   import software.amazon.awssdk.services.rekognition.model.NotificationChannel;
   import software.amazon.awssdk.services.rekognition.model.Video;
   import software.amazon.awssdk.services.rekognition.model.StartTextDetectionRequest;
   import software.amazon.awssdk.services.rekognition.model.StartTextDetectionResponse;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   import software.amazon.awssdk.services.rekognition.model.GetTextDetectionResponse;
   import software.amazon.awssdk.services.rekognition.model.GetTextDetectionRequest;
   import software.amazon.awssdk.services.rekognition.model.VideoMetadata;
   import software.amazon.awssdk.services.rekognition.model.TextDetectionResult;
   import java.util.List;
   //snippet-end:[rekognition.java2.recognize_video_text.import]
   
   /**
   * 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 DetectTextVideo {
   
    private static String startJobId ="";
    public static void main(String[] args) {
   
        final String usage = "\n" +
            "Usage: " +
            "   <bucket> <video> <topicArn> <roleArn>\n\n" +
            "Where:\n" +
            "   bucket - The name of the bucket in which the video is located (for example, (for example, amzn-s3-demo-bucket). \n\n"+
            "   video - The name of video (for example, people.mp4). \n\n" +
            "   topicArn - The ARN of the Amazon Simple Notification Service (Amazon SNS) topic. \n\n" +
            "   roleArn - The ARN of the AWS Identity and Access Management (IAM) role to use. \n\n" ;
   
        if (args.length != 4) {
            System.out.println(usage);
            System.exit(1);
        }
   
        String bucket = args[0];
        String video = args[1];
        String topicArn = args[2];
        String roleArn = args[3];
   
        Region region = Region.US_EAST_1;
        RekognitionClient rekClient = RekognitionClient.builder()
            .region(region)
            .credentialsProvider(ProfileCredentialsProvider.create("profile-name"))
            .build();
   
        NotificationChannel channel = NotificationChannel.builder()
            .snsTopicArn(topicArn)
            .roleArn(roleArn)
            .build();
   
        startTextLabels(rekClient, channel, bucket, video);
        GetTextResults(rekClient);
        System.out.println("This example is done!");
        rekClient.close();
    }
   
    // snippet-start:[rekognition.java2.recognize_video_text.main]
    public static void startTextLabels(RekognitionClient rekClient,
                                   NotificationChannel channel,
                                   String bucket,
                                   String video) {
        try {
            S3Object s3Obj = S3Object.builder()
                .bucket(bucket)
                .name(video)
                .build();
   
            Video vidOb = Video.builder()
                .s3Object(s3Obj)
                .build();
   
            StartTextDetectionRequest labelDetectionRequest = StartTextDetectionRequest.builder()
                .jobTag("DetectingLabels")
                .notificationChannel(channel)
                .video(vidOb)
                .build();
   
            StartTextDetectionResponse labelDetectionResponse = rekClient.startTextDetection(labelDetectionRequest);
            startJobId = labelDetectionResponse.jobId();
   
        } catch (RekognitionException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
    }
   
    public static void GetTextResults(RekognitionClient rekClient) {
   
        try {
            String paginationToken=null;
            GetTextDetectionResponse textDetectionResponse=null;
            boolean finished = false;
            String status;
            int yy=0 ;
   
            do{
                if (textDetectionResponse !=null)
                    paginationToken = textDetectionResponse.nextToken();
   
                GetTextDetectionRequest recognitionRequest = GetTextDetectionRequest.builder()
                    .jobId(startJobId)
                    .nextToken(paginationToken)
                    .maxResults(10)
                    .build();
   
                // Wait until the job succeeds.
                while (!finished) {
                    textDetectionResponse = rekClient.getTextDetection(recognitionRequest);
                    status = textDetectionResponse.jobStatusAsString();
   
                    if (status.compareTo("SUCCEEDED") == 0)
                        finished = true;
                    else {
                        System.out.println(yy + " status is: " + status);
                        Thread.sleep(1000);
                    }
                    yy++;
                }
   
                finished = false;
   
                // Proceed when the job is done - otherwise VideoMetadata is null.
                VideoMetadata videoMetaData=textDetectionResponse.videoMetadata();
                System.out.println("Format: " + videoMetaData.format());
                System.out.println("Codec: " + videoMetaData.codec());
                System.out.println("Duration: " + videoMetaData.durationMillis());
                System.out.println("FrameRate: " + videoMetaData.frameRate());
                System.out.println("Job");
   
                List<TextDetectionResult> labels= textDetectionResponse.textDetections();
                for (TextDetectionResult detectedText: labels) {
                    System.out.println("Confidence: " + detectedText.textDetection().confidence().toString());
                    System.out.println("Id : " + detectedText.textDetection().id());
                    System.out.println("Parent Id: " + detectedText.textDetection().parentId());
                    System.out.println("Type: " + detectedText.textDetection().type());
                    System.out.println("Text: " + detectedText.textDetection().detectedText());
                    System.out.println();
                }
   
            } while (textDetectionResponse !=null && textDetectionResponse.nextToken() != null);
   
        } catch(RekognitionException | InterruptedException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
    }
    // snippet-end:[rekognition.java2.recognize_video_text.main]
   }
   ```

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

   ```
   #Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   #PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
       def StartTextDetection(self):
           response=self.rek.start_text_detection(Video={'S3Object': {'Bucket': self.bucket, 'Name': self.video}},
               NotificationChannel={'RoleArn': self.roleArn, 'SNSTopicArn': self.snsTopicArn})
   
           self.startJobId=response['JobId']
           print('Start Job Id: ' + self.startJobId)
     
       def GetTextDetectionResults(self):
           maxResults = 10
           paginationToken = ''
           finished = False
   
           while finished == False:
               response = self.rek.get_text_detection(JobId=self.startJobId,
                                               MaxResults=maxResults,
                                               NextToken=paginationToken)
   
               print('Codec: ' + response['VideoMetadata']['Codec'])
               
               print('Duration: ' + str(response['VideoMetadata']['DurationMillis']))
               print('Format: ' + response['VideoMetadata']['Format'])
               print('Frame rate: ' + str(response['VideoMetadata']['FrameRate']))
               print()
   
               for textDetection in response['TextDetections']:
                   text=textDetection['TextDetection']
   
                   print("Timestamp: " + str(textDetection['Timestamp']))
                   print("   Text Detected: " + text['DetectedText'])
                   print("   Confidence: " +  str(text['Confidence']))
                   print ("      Bounding box")
                   print ("        Top: " + str(text['Geometry']['BoundingBox']['Top']))
                   print ("        Left: " + str(text['Geometry']['BoundingBox']['Left']))
                   print ("        Width: " +  str(text['Geometry']['BoundingBox']['Width']))
                   print ("        Height: " +  str(text['Geometry']['BoundingBox']['Height']))
                   print ("   Type: " + str(text['Type']) )
                   print()
   
               if 'NextToken' in response:
                   paginationToken = response['NextToken']
               else:
                   finished = True
   ```

   Dalam fungsi `main`, ganti baris:

   ```
       analyzer.StartLabelDetection()
       if analyzer.GetSQSMessageSuccess()==True:
           analyzer.GetLabelDetectionResults()
   ```

   dengan:

   ```
       analyzer.StartTextDetection()
       if analyzer.GetSQSMessageSuccess()==True:
           analyzer.GetTextDetectionResults()
   ```

------
#### [ CLI ]

   Jalankan AWS CLI perintah berikut untuk mulai mendeteksi teks dalam video.

   ```
    aws rekognition start-text-detection --video "{"S3Object":{"Bucket":"amzn-s3-demo-bucket","Name":"video-name"}}"\
    --notification-channel "{"SNSTopicArn":"topic-arn","RoleArn":"role-arn"}" \
    --region region-name --profile profile-name
   ```

   Perbarui nilai berikut:
   + Ubah `amzn-s3-demo-bucket` dan `video-name` ke nama bucket Amazon S3 dan nama file yang Anda tentukan pada langkah 2.
   + Ubah `region-name` ke wilayah AWS yang Anda gunakan.
   + Ganti nilai `profile-name` dengan nama profil pengembang Anda.
   + Ubah `topic-ARN` ke ARN dari topik Amazon SNS yang Anda buat pada langkah 3 [Mengonfigurasi Amazon Rekognition Video](api-video-roles.md).
   + Perubahan `role-ARN` ke ARN dari peran layanan IAM yang Anda buat di langkah 7 [Mengonfigurasi Amazon Rekognition Video](api-video-roles.md).

   Jika Anda mengakses CLI pada perangkat Windows, gunakan tanda kutip ganda alih-alih tanda kutip tunggal dan hindari tanda kutip ganda bagian dalam dengan garis miring terbalik (yaitu\$1) untuk mengatasi kesalahan parser yang mungkin Anda temui. Sebagai contoh, lihat di bawah: 

   ```
   aws rekognition start-text-detection --video \
    "{\"S3Object\":{\"Bucket\":\"amzn-s3-demo-bucket\",\"Name\":\"video-name\"}}" \
    --notification-channel "{\"SNSTopicArn\":\"topic-arn\",\"RoleArn\":\"role-arn\"}" \
    --region region-name --profile profile-name
   ```

   Setelah menjalankan contoh kode proses, salin yang dikembalikan `jobID` dan berikan ke `GetTextDetection` perintah berikut di bawah ini untuk mendapatkan hasil Anda, ganti `job-id-number` dengan yang `jobID` Anda terima sebelumnya: 

   ```
   aws rekognition get-text-detection --job-id job-id-number --profile profile-name             
   ```

------
**catatan**  
Jika Anda sudah menjalankan contoh video selain [Menganalisis video yang disimpan di bucket Amazon S3 dengan Java atau Python (SDK)](video-analyzing-with-sqs.md), kode yang akan diganti mungkin berbeda.

1. Jalankan kode tersebut. Teks yang terdeteksi dalam video ditampilkan dalam daftar.

## Penyaring
<a name="text-detection-filters"></a>

Filter adalah parameter permintaan opsional yang dapat digunakan ketika Anda memanggil `StartTextDetection`. Pemfilteran berdasarkan wilayah teks, ukuran, dan skor kepercayaan memberikan Anda fleksibilitas tambahan untuk mengendalikan output deteksi teks Anda. Dengan menggunakan wilayah yang diminati, Anda dengan mudah membatasi deteksi teks ke wilayah yang relevan, misalnya, wilayah ketiga terbawah untuk grafik atau sudut kiri atas untuk membaca papan skor dalam pertandingan sepak bola. Filter ukuran kotak pembatas kata dapat digunakan untuk menghindari teks latar belakang kecil yang mungkin ramai atau tidak relevan. Dan terakhir, filter kepercayaan kata memungkinkan Anda untuk menghapus hasil yang mungkin tidak dapat diandalkan karena buram atau tercoreng. 

Untuk informasi mengenai nilai filter, lihat`[DetectTextFilters](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectTextFilters.html)`.

Anda dapat menggunakan filter berikut:
+ **MinConfidence**—Menetapkan tingkat kepercayaan deteksi kata. Kata-kata dengan kepercayaan deteksi di bawah tingkat ini dikeluarkan dari hasil. Nilai harus antara 0 hingga 100.
+ **MinBoundingBoxWidth**— Mengatur lebar minimum kotak pembatas kata. Kata-kata dengan kotak pembatas yang lebih kecil dari nilai ini dikeluarkan dari hasil. Nilainya relatif terhadap lebar bingkai video.
+ **MinBoundingBoxHeight**— Mengatur tinggi minimum kotak pembatas kata. Kata-kata dengan tinggi kotak pembatas kurang dari nilai ini dikeluarkan dari hasil. Nilai relatif terhadap tinggi bingkai video.
+ **RegionsOfInterest**— Membatasi deteksi ke wilayah tertentu dari bingkai. Nilainya relatif terhadap dimensi bingkai. Untuk objek yang hanya sebagian di dalam wilayah, responsnya tidak ditentukan.

## GetTextDetection respon
<a name="text-detecting-video-response"></a>

`GetTextDetection` mengembalikan sebuah array (`TextDetectionResults`) yang berisi informasi tentang teks yang terdeteksi dalam video. Sebuah elemen array, [TextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TextDetection.html), ada untuk setiap kali kata atau baris terdeteksi dalam video. Elemen array diurutkan berdasarkan waktu (dalam milidetik) sejak awal video.

Berikut ini adalah respons JSON parsial dari `GetTextDetection`. Dalam respons, perhatikan hal berikut:
+ **Informasi teks** - Elemen array `TextDetectionResult` berisi informasi tentang teks yang terdeteksi ([TextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TextDetection.html)) dan waktu teks yang terdeteksi dalam video (`Timestamp`).
+ **Informasi halaman** – Contoh tersebut menunjukkan satu halaman informasi deteksi teks. Anda dapat menentukan seberapa banyak elemen teks yang akan dikembalikan dalam parameter input `MaxResults` untuk `GetTextDetection`. Jika ada lebih banyak hasil daripada `MaxResults`, atau ada lebih banyak hasil daripada maksimum default, `GetTextDetection` mengembalikan token (`NextToken`) yang digunakan untuk mendapatkan halaman hasil berikutnya. Untuk informasi selengkapnya, lihat [Mendapatkan hasil analisis Amazon Rekognition Video](api-video.md#api-video-get).
+ **Informasi video** – Respons mencakup informasi tentang format video (`VideoMetadata`) di setiap halaman informasi yang dikembalikan oleh `GetTextDetection`.

```
{
    "JobStatus": "SUCCEEDED",
    "VideoMetadata": {
        "Codec": "h264",
        "DurationMillis": 174441,
        "Format": "QuickTime / MOV",
        "FrameRate": 29.970029830932617,
        "FrameHeight": 480,
        "FrameWidth": 854
    },
    "TextDetections": [
        {
            "Timestamp": 967,
            "TextDetection": {
                "DetectedText": "Twinkle Twinkle Little Star",
                "Type": "LINE",
                "Id": 0,
                "Confidence": 99.91780090332031,
                "Geometry": {
                    "BoundingBox": {
                        "Width": 0.8337579369544983,
                        "Height": 0.08365312218666077,
                        "Left": 0.08313830941915512,
                        "Top": 0.4663468301296234
                    },
                    "Polygon": [
                        {
                            "X": 0.08313830941915512,
                            "Y": 0.4663468301296234
                        },
                        {
                            "X": 0.9168962240219116,
                            "Y": 0.4674469828605652
                        },
                        {
                            "X": 0.916861355304718,
                            "Y": 0.5511001348495483
                        },
                        {
                            "X": 0.08310343325138092,
                            "Y": 0.5499999523162842
                        }
                    ]
                }
            }
        },
        {
            "Timestamp": 967,
            "TextDetection": {
                "DetectedText": "Twinkle",
                "Type": "WORD",
                "Id": 1,
                "ParentId": 0,
                "Confidence": 99.98338317871094,
                "Geometry": {
                    "BoundingBox": {
                        "Width": 0.2423887550830841,
                        "Height": 0.0833333358168602,
                        "Left": 0.08313817530870438,
                        "Top": 0.46666666865348816
                    },
                    "Polygon": [
                        {
                            "X": 0.08313817530870438,
                            "Y": 0.46666666865348816
                        },
                        {
                            "X": 0.3255269229412079,
                            "Y": 0.46666666865348816
                        },
                        {
                            "X": 0.3255269229412079,
                            "Y": 0.550000011920929
                        },
                        {
                            "X": 0.08313817530870438,
                            "Y": 0.550000011920929
                        }
                    ]
                }
            }
        },
        {
            "Timestamp": 967,
            "TextDetection": {
                "DetectedText": "Twinkle",
                "Type": "WORD",
                "Id": 2,
                "ParentId": 0,
                "Confidence": 99.982666015625,
                "Geometry": {
                    "BoundingBox": {
                        "Width": 0.2423887550830841,
                        "Height": 0.08124999701976776,
                        "Left": 0.3454332649707794,
                        "Top": 0.46875
                    },
                    "Polygon": [
                        {
                            "X": 0.3454332649707794,
                            "Y": 0.46875
                        },
                        {
                            "X": 0.5878220200538635,
                            "Y": 0.46875
                        },
                        {
                            "X": 0.5878220200538635,
                            "Y": 0.550000011920929
                        },
                        {
                            "X": 0.3454332649707794,
                            "Y": 0.550000011920929
                        }
                    ]
                }
            }
        },
        {
            "Timestamp": 967,
            "TextDetection": {
                "DetectedText": "Little",
                "Type": "WORD",
                "Id": 3,
                "ParentId": 0,
                "Confidence": 99.8787612915039,
                "Geometry": {
                    "BoundingBox": {
                        "Width": 0.16627635061740875,
                        "Height": 0.08124999701976776,
                        "Left": 0.6053864359855652,
                        "Top": 0.46875
                    },
                    "Polygon": [
                        {
                            "X": 0.6053864359855652,
                            "Y": 0.46875
                        },
                        {
                            "X": 0.7716627717018127,
                            "Y": 0.46875
                        },
                        {
                            "X": 0.7716627717018127,
                            "Y": 0.550000011920929
                        },
                        {
                            "X": 0.6053864359855652,
                            "Y": 0.550000011920929
                        }
                    ]
                }
            }
        },
        {
            "Timestamp": 967,
            "TextDetection": {
                "DetectedText": "Star",
                "Type": "WORD",
                "Id": 4,
                "ParentId": 0,
                "Confidence": 99.82640075683594,
                "Geometry": {
                    "BoundingBox": {
                        "Width": 0.12997658550739288,
                        "Height": 0.08124999701976776,
                        "Left": 0.7868852615356445,
                        "Top": 0.46875
                    },
                    "Polygon": [
                        {
                            "X": 0.7868852615356445,
                            "Y": 0.46875
                        },
                        {
                            "X": 0.9168618321418762,
                            "Y": 0.46875
                        },
                        {
                            "X": 0.9168618321418762,
                            "Y": 0.550000011920929
                        },
                        {
                            "X": 0.7868852615356445,
                            "Y": 0.550000011920929
                        }
                    ]
                }
            }
        }
    ],
    "NextToken": "NiHpGbZFnkM/S8kLcukMni15wb05iKtquu/Mwc+Qg1LVlMjjKNOD0Z0GusSPg7TONLe+OZ3P",
    "TextModelVersion": "3.0"
}
```