

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Détection de texte
<a name="text-detection"></a>

Amazon Rekognition peut détecter du texte dans les images et les vidéos. Elle peut ensuite convertir le texte détecté en texte lisible par une machine. Vous pouvez utiliser la détection de texte lisible par une machine dans les images pour implémenter des solutions telles que :
+ Recherche visuelle. Par exemple, récupérer et afficher des images qui contiennent le même texte.
+ Informations des contenus. Par exemple : informations sur des thèmes qui reviennent dans le texte reconnu à l’intérieur des images vidéo extraites. Votre application peut rechercher des contenus pertinents dans le texte reconnu, par exemple des actualités, des résultats sportifs, des numéros d’athlètes et des sous-titres.
+ Navigation. Par exemple, le développement d’une application mobile vocale pour les personnes malvoyantes qui reconnaît les noms des restaurants et des magasins, ou les plaques de rue. 
+ Prise en charge de la sécurité et des transports publics. Par exemple, détection des numéros de plaques minéralogiques sur des images de caméras de surveillance de la circulation. 
+ Filtrage en cours. Par exemple, filtrage des données d'identification personnelle (PII) sur des images. 

Pour la détection de texte dans les vidéos, vous pouvez implémenter des solutions telles que : 
+ Recherche dans des vidéos de clips avec des mots clés spécifiques, tels que le nom de l’invité sur un graphique d’une émission d’actualités.
+ Modération du contenu pour garantir la conformité aux normes de l’organisation en détectant les textes inopinés, les grossièretés ou spams.
+ Recherche de toutes les superpositions de texte sur la chronologie vidéo pour un traitement ultérieur, comme le remplacement par du texte dans une autre langue pour l’internationalisation du contenu.
+ Recherche d’emplacements de texte pour que les autres graphiques puissent être alignés en conséquence.

Pour détecter du texte dans des images au format JPEG ou PNG, utilisez l'[DetectText](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectText.html)opération. Pour détecter du texte de manière asynchrone dans une vidéo, utilisez les opérations [StartTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartTextDetection.html)et [GetTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetTextDetection.html). Les opérations de détection de texte d’image et de vidéo prennent en charge la plupart des polices, y compris les polices hautement stylisées. Après avoir détecté le texte, Amazon Rekognition crée une représentation des mots et des lignes de texte détectés, affiche la relation entre eux et vous indique où le texte se trouve sur une image ou un cadre vidéo.

Les opérations `DetectText` et `GetTextDetection` détectent les mots et les lignes. Un *mot* est un ou plusieurs caractères de script qui ne sont pas séparés par des espaces. `DetectText` peut détecter jusqu’à 100 mots dans une image. `GetTextDetection` peut également détecter jusqu’à 100 mots par image de vidéo. 

Un mot est constitué d’un ou de plusieurs caractères qui ne sont pas séparés par des espaces. Amazon Rekognition est conçu pour détecter les mots en anglais, arabe, russe, allemand, français, italien, portugais et espagnol.

Une *ligne* est une chaîne de mots séparés par des espaces égaux. Une ligne n’est pas nécessairement une phrase complète (les points n’indiquent pas la fin d’une ligne). Par exemple, Amazon Rekognition détecte un numéro de permis de conduire comme étant une ligne. Une ligne se termine lorsqu’aucun texte n’est aligné après elle, ou lorsqu’il y a un grand écart entre les mots par rapport à la longueur des mots. En fonction de l’intervalle entre les mots, Amazon Rekognition peut détecter plusieurs lignes dans un texte aligné dans la même direction. Si une phrase s’étend sur plusieurs lignes, l’opération renvoie plusieurs lignes.

Examinez l’image suivante.

![\[Tasse à café avec smiley et texte « It's Monday but keep smiling », avec encadrés et texte extrait.\]](http://docs.aws.amazon.com/fr_fr/rekognition/latest/dg/images/text.png)


Les cases bleues représentent des informations sur le texte détecté et son emplacement que l’opération `DetectText` renvoie. Dans cet exemple, Amazon Rekognition détecte « IT’s », « MONDAY », « but », « keep », et « Smiling » comme étant des mots. Amazon Rekognition détecte les phrases « IT’s », « MONDAY », « but », « keep », et « Smiling » sous forme de lignes. Pour être détecté, le texte doit avoir une orientation maximale de \$1/- 90 degrés par rapport à l’axe horizontal.

Pour obtenir un exemple, consultez [Détection de texte sur une image](text-detecting-text-procedure.md).

**Topics**
+ [Détection de texte sur une image](text-detecting-text-procedure.md)
+ [Détection de texte dans une vidéo stockée](text-detecting-video-procedure.md)

# Détection de texte sur une image
<a name="text-detecting-text-procedure"></a>

Vous pouvez fournir une image d’entrée sous la forme d’un tableau d’octets d’image (octets d’image encodés en base64) ou en tant qu’objet Amazon S3. Dans cette procédure, vous chargez une image JPEG ou PNG dans votre compartiment S3 et vous spécifiez le nom du fichier. 

**Pour détecter du texte sur une image (API)**

1. Remplissez les conditions préalables requises suivantes, si vous ne l’avez pas déjà fait.

   1. Créez ou mettez à jour un utilisateur avec les autorisations `AmazonRekognitionFullAccess` et `AmazonS3ReadOnlyAccess`. Pour de plus amples informations, veuillez consulter [Étape 1 : configurer un compte AWS et créer un utilisateur](setting-up.md#setting-up-iam).

   1. Installez et configurez le AWS Command Line Interface et le AWS SDKs. Pour de plus amples informations, veuillez consulter [Étape 2 : configurer le AWS CLI et AWS SDKs](setup-awscli-sdk.md).

1. Chargez l’image qui contient du texte dans votre compartiment S3. 

   Pour en savoir plus, consultez [Chargement d’objets dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UploadingObjectsintoAmazonS3.html) dans le *Guide de l’utilisateur Amazon Simple Storage Service*.

1. Utilisez les exemples suivants pour appeler l’opération `DetectText`.

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

   L’exemple de code suivant affiche dans une image les lignes et les mots qui ont été détectés. 

   Remplacez la valeur de `amzn-s3-demo-bucket` et de `photo` par le nom du compartiment S3 et celui de l’image utilisés à l’étape 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 ]

   Ce code est extrait du GitHub référentiel d'exemples du SDK de AWS documentation. Voir l’exemple complet [ici](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 ]

   Cette AWS CLI commande affiche la sortie JSON pour l'opération `detect-text` CLI. 

   Remplacez la valeur de `amzn-s3-demo-bucket` et de `Name` par le nom du compartiment S3 et le nom de l’image utilisés à l’étape 2. 

   Remplacez la valeur de `profile_name` par le nom de votre profil de développeur.

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

   Si vous accédez à la CLI sur un périphérique Windows, utilisez des guillemets doubles au lieu de guillemets simples et évitez les guillemets doubles internes par une barre oblique inverse (c’est-à-dire \$1) pour corriger les erreurs d’analyse que vous pourriez rencontrer. Pour un exemple, consultez ce qui suit : 

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

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

   L’exemple de code suivant affiche les lignes et les mots détectés dans une image. 

   Remplacez la valeur de `amzn-s3-demo-bucket` et de `photo` par le nom du compartiment S3; et le nom de l’image utilisés à l’étape 2. Remplacez la valeur de `profile_name` dans la ligne qui crée la session de Rekognition par le nom de votre profil de développeur.

   ```
   # 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 ]

   L’exemple de code suivant affiche les lignes et les mots détectés dans une image. 

   Remplacez la valeur de `amzn-s3-demo-bucket` et de `photo` par le nom du compartiment S3; et le nom de l’image utilisés à l’étape 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 ]

   L’exemple de code suivant affiche les lignes et les mots détectés dans une image. 

   Remplacez la valeur de `amzn-s3-demo-bucket` et de `photo` par le nom du compartiment S3; et le nom de l’image utilisés à l’étape 2. Remplacez la valeur de `region` par la région figurant dans vos informations d’identification .aws. Remplacez la valeur de `profile_name` dans la ligne qui crée la session de Rekognition par le nom de votre profil de développeur. 

   ```
   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 demande d'opération
<a name="detecttext-request"></a>

Dans le cadre de l’opération `DetectText`, vous fournissez une image d’entrée sous la forme d’un tableau d’octets encodé en base64 ou en tant qu’image stockée dans un compartiment Amazon S3. L’exemple de demande JSON suivant présente l’image chargée à partir d’un compartiment Amazon S3.

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

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

Le filtrage par région, taille et score de fiabilité du texte vous offre encore plus de souplesse pour contrôler ce que donne la détection de votre texte. En utilisant les régions intéressantes, vous pouvez facilement limiter la détection de texte aux régions qui vous intéressent, par exemple en haut à droite de la photo de profil ou à un emplacement fixe par rapport à un point de référence lors de la lecture des numéros de pièces à partir d’une image d’une machine. Il est possible d’utiliser un filtre pour la taille du cadre de délimitation d’un mot, afin d’éviter l’apparition de texte de petite taille gênant ou non pertinent en arrière-plan. Le filtre de fiabilité des mots vous permet de supprimer les résultats non fiables car flous ou illisibles. 

Pour plus d’informations sur les valeurs des filtres, consultez `[DetectTextFilters](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectTextFilters.html)`.

Vous pouvez utiliser les filtres suivants :
+ **MinConfidence**: définit le niveau de confiance de la détection des mots. Les mots dont la confiance de détection est inférieure à ce niveau sont exclus du résultat. Les valeurs doivent être comprises entre 0 et 100.
+ **MinBoundingBoxWidth**— Définit la largeur minimale du cadre de délimitation des mots. Les mots dont les zones de délimitation sont plus petites que cette valeur sont exclus du résultat. La valeur est relative à la largeur du cadre de l’image.
+ **MinBoundingBoxHeight**— Définit la hauteur minimale du cadre de délimitation des mots. Les mots dont les hauteurs de zone de délimitation sont inférieures à cette valeur sont exclus du résultat. La valeur est relative à la hauteur du cadre de l’image.
+ **RegionsOfInterest**— Limite la détection à une zone spécifique du cadre de l'image. Les valeurs sont relatives aux dimensions du cadre. Pour du texte se trouvant seulement partiellement dans une région, la réponse n’est pas définie.

## DetectText réponse à l'opération
<a name="text-response"></a>

L'`DetectText`opération analyse l'image et renvoie un tableau TextDetections, où chaque élément (`[TextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TextDetection.html)`) représente une ligne ou un mot détecté dans l'image. Pour chaque élément, `DetectText` renvoie les informations suivantes : 
+ Le texte détecté (`DetectedText`)
+ Les relations entre les mots et les lignes (`Id` et `ParentId`)
+ L’emplacement du texte sur l’image (`Geometry`)
+ La confiance d’Amazon Rekognition dans l’exactitude du texte détecté et du cadre de délimitation (`Confidence`)
+ Le type de texte détecté (`Type`)

### Texte détecté
<a name="text-detected-text"></a>

Chaque élément `TextDetection` contient le texte reconnu (mots ou lignes) dans le champ `DetectedText`. Un mot est constitué d’un ou plusieurs caractères non séparés par des espaces. `DetectText` peut détecter jusqu’à 100 mots dans une image. Le texte renvoyé peut inclure des caractères qui rendent un mot méconnaissable. Par exemple, *Ch@t* au lieu de *Chat*. Pour déterminer si un `TextDetection` élément représente une ligne de texte ou un mot, utilisez le champ `Type`.

 

Chaque élément `TextDetection` comprend une valeur de pourcentage qui représente le degré de fiabilité déterminé par Amazon Rekognition en ce qui concerne la précision du texte détecté et du cadre de délimitation qui entoure le texte. 

### Relations entre les mots et les lignes
<a name="text-ids"></a>

Chaque élément `TextDetection` possède un champ d’identifiant, `Id`. L’`Id` montre la position du mot dans une ligne. Si l’élément est un mot, le champ de l’identifiant parent, `ParentId`, identifie la ligne où le mot a été détecté. Le `ParentId` d’une ligne est null. Par exemple, la ligne « but keep » de l’exemple d’image a l’`Id` et les valeurs `ParentId` suivants : 


|  Texte  |  ID  |  ID du parent  | 
| --- | --- | --- | 
|  but keep  |  3  |     | 
|  but  |  8  |  3  | 
|  keep  |  9  |  3  | 

### Emplacement du texte sur une image
<a name="text-location"></a>

Pour déterminer l’emplacement du texte reconnu dans une image, utilisez les informations du cadre de délimitation ([Géometrie](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Geometry.html)) renvoyées par `DetectText`. L’objet `Geometry` contient deux types d’informations sur les cadres de délimitation pour les lignes et les mots détectés :
+ Un contour rectangulaire épais aligné sur l'axe dans un objet [BoundingBox](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_BoundingBox.html)
+ Un polygone plus fin composé de plusieurs coordonnées X et Y dans un tableau [Point](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Point.html)

Les coordonnées du cadre de sélection et du polygone montrent où le texte est situé sur l’image source. Les valeurs des coordonnées sont un ratio de la taille globale de l’image. Pour de plus amples informations, veuillez consulter [BoundingBox](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_BoundingBox.html). 

La réponse JSON suivante de l’opération `DetectText` indique les mots et les lignes qui ont été détectés dans l’image suivante.

![\[Tasse à café souriante à côté du texte « It's Monday but keep Smiling » sur fond de brique, avec des zones de texte encadrées.\]](http://docs.aws.amazon.com/fr_fr/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'}
```

# Détection de texte dans une vidéo stockée
<a name="text-detecting-video-procedure"></a>

La détection de textes par Vidéo Amazon Rekognition dans les vidéos stockées est une opération asynchrone. Pour commencer à détecter le texte, appelez [StartTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartTextDetection.html). Vidéo Amazon Rekognition publie le statut d’achèvement de l’analyse des vidéos dans une rubrique Amazon SNS. Si l'analyse vidéo aboutit, appelez [GetTextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetTextDetection.html) pour obtenir les résultats de cette opération. Pour plus d’informations sur le démarrage de l’analyse vidéo et l’obtention des résultats, consultez [Appeler les opérations de Vidéo Amazon Rekognition](api-video.md).

Cette procédure se développe sur le code dans [Analyse d’une vidéo stockée dans un compartiment Amazon S3 avec Java or Python (SDK)](video-analyzing-with-sqs.md). Il utilise une file d’attente Amazon SQS pour obtenir l’état d’achèvement d’une demande d’analyse vidéo.

**Pour détecter des visages dans une vidéo stockée dans un compartiment Amazon S3 (SDK)**

1. Effectuez les étapes décrites dans la section [Analyse d’une vidéo stockée dans un compartiment Amazon S3 avec Java or Python (SDK)](video-analyzing-with-sqs.md).

1. Ajoutez le code suivant à la classe `VideoDetect` de l’étape 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);
         
           
   }
   ```

   Dans la fonction `main`, remplacez les lignes : 

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

   avec :

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

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

   Ce code est extrait du GitHub référentiel d'exemples du SDK de AWS documentation. Voir l’exemple complet [ici](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
   ```

   Dans la fonction `main`, remplacez les lignes :

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

   avec :

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

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

   Exécutez la AWS CLI commande suivante pour commencer à détecter du texte dans une vidéo.

   ```
    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
   ```

   Mettez à jour les valeurs suivantes :
   + Remplacez `amzn-s3-demo-bucket` et `video-name` par le nom du compartiment Amazon S3 et le nom du fichier que vous avez spécifiés à l’étape 2.
   + Remplacez `region-name` par la région AWS que vous utilisez.
   + Remplacez la valeur de `profile-name` par le nom de votre profil de développeur.
   + Remplacez `topic-ARN` par l’ARN de la rubrique Amazon SNS que vous avez créée à l’étape 3 de [Configuration de Vidéo Amazon Rekognition](api-video-roles.md).
   + Remplacez `role-ARN` par l’ARN de la fonction de service IAM que vous avez créé à l’étape 7 de [Configuration de Vidéo Amazon Rekognition](api-video-roles.md).

   Si vous accédez à la CLI sur un périphérique Windows, utilisez des guillemets doubles au lieu de guillemets simples et évitez les guillemets doubles internes par une barre oblique inverse (c’est-à-dire \$1) pour corriger les erreurs d’analyse que vous pourriez rencontrer. Pour un exemple, voir ci-dessous : 

   ```
   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
   ```

   Après avoir exécuté l’exemple de code suivant, copiez l’`jobID` renvoyé et saisissez-le dans la commande suivante `GetTextDetection` pour obtenir vos résultats, en remplaçant `job-id-number` par `jobID` que vous avez reçu précédemment : 

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

------
**Note**  
Si vous avez déjà exécuté un exemple vidéo autre que [Analyse d’une vidéo stockée dans un compartiment Amazon S3 avec Java or Python (SDK)](video-analyzing-with-sqs.md), le code à remplacer peut être différent.

1. Exécutez le code. Le texte détecté dans la vidéo est affiché dans une liste.

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

Les filtres sont des paramètres de requête facultatifs qui peuvent être utilisés lorsque vous appelez `StartTextDetection`. Le filtrage par région, taille et score de fiabilité du texte vous offre encore plus de souplesse pour contrôler ce que donne la détection de votre texte. Grâce aux régions d’intérêt, vous pouvez aisément délimiter la détection de texte aux seules régions pertinentes, comme une région tierce pour les graphiques ou un panneau dans le coin supérieur gauche indiquant le score pour un match de foot, par exemple. Il est possible d’utiliser un filtre pour la taille du cadre de délimitation d’un mot, afin d’éviter l’apparition de texte de petite taille gênant ou non pertinent en arrière-plan. Pour finir, le filtre de fiabilité des mots vous permet de supprimer les résultats non fiables car flous ou illisibles. 

Pour plus d’informations sur les valeurs des filtres, consultez `[DetectTextFilters](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectTextFilters.html)`.

Vous pouvez utiliser les filtres suivants :
+ **MinConfidence**: définit le niveau de confiance de la détection des mots. Les mots dont la confiance de détection est inférieure à ce niveau sont exclus du résultat. Les valeurs doivent être comprises entre 0 et 100.
+ **MinBoundingBoxWidth**— Définit la largeur minimale du cadre de délimitation des mots. Les mots dont les zones de délimitation sont plus petites que cette valeur sont exclus du résultat. La valeur est relative à la largeur de l’image vidéo.
+ **MinBoundingBoxHeight**— Définit la hauteur minimale du cadre de délimitation des mots. Les mots dont les hauteurs de zone de délimitation sont inférieures à cette valeur sont exclus du résultat. La valeur est relative à la hauteur de l’image vidéo.
+ **RegionsOfInterest**— Limite la détection à une zone spécifique du cadre. Les valeurs sont relatives aux dimensions du cadre. Pour les objets partiellement situés dans les régions, la réponse n’est pas définie.

## GetTextDetection réponse
<a name="text-detecting-video-response"></a>

`GetTextDetection` renvoie un tableau (`TextDetectionResults`) qui contient des informations sur le texte détecté dans la vidéo. Un élément de liste, [TextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TextDetection.html), existe pour chaque occurrence de détection d'un mot ou d'une ligne dans la vidéo. Les éléments de la liste sont triés par heure, en millisecondes depuis le début de la vidéo.

Voici une réponse JSON partielle renvoyée par `GetTextDetection`. Dans la réponse, notez les points suivants :
+ **Informations textuelles** — L'élément du `TextDetectionResult` tableau contient des informations sur le texte détecté ([TextDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_TextDetection.html)) et l'heure à laquelle le texte a été détecté dans la vidéo (`Timestamp`).
+ **Informations sur la pagination** : l’exemple montre une page d’informations sur la détection de texte. Vous pouvez spécifier le nombre d’éléments de texte à renvoyer dans le paramètre d’entrée `MaxResults` pour `GetTextDetection`. Si le nombre de résultats est supérieur à `MaxResults`, ou s’il y a plus de résultats que le maximum par défaut, `GetTextDetection` renvoie un jeton (`NextToken`) qui est utilisé pour obtenir la page suivante de résultats. Pour de plus amples informations, veuillez consulter [Obtenir les résultats de l’analyse de Vidéo Amazon Rekognition](api-video.md#api-video-get).
+ **Informations sur la vidéo** : la réponse comprend des informations sur le format vidéo (`VideoMetadata`) dans chaque page d’informations renvoyée par `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"
}
```