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 sur une image
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)
-
Remplissez les conditions préalables requises suivantes, si vous ne l’avez pas déjà fait.
-
Créez ou mettez à jour un utilisateur avec les autorisations
AmazonRekognitionFullAccess
etAmazonS3ReadOnlyAccess
. Pour plus d’informations, consultez Étape 1 : créer un AWS compte et créer un utilisateur. -
Installez et configurez AWS Command Line Interface les AWS SDK. Pour plus d’informations, consultez Étape 2 : configurer le AWS CLI and AWS SDKs.
-
-
Chargez l’image qui contient du texte dans votre compartiment S3.
Pour en savoir plus, consultez Chargement d’objets dans Amazon S3 dans le Guide de l’utilisateur Amazon Simple Storage Service.
-
Utilisez les exemples suivants pour appeler l’opération
DetectText
.
DetectText demande d'opération
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": "bucket", "Name": "inputtext.jpg" } } }
Filtres
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
.
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 d'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
L'DetectText
opération analyse l'image et renvoie un tableau TextDetections, où chaque élément (TextDetection
) 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
etParentId
) -
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é
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
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
Pour déterminer l’emplacement du texte reconnu dans une image, utilisez les informations du cadre de délimitation (Géometrie) 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 :
-
Contour rectangulaire grossier aligné sur un axe dans un objet BoundingBox
-
Un polygone plus fin composé de plusieurs coordonnées X et Y dans un tableau Point
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 plus d'informations, consultez BoundingBox.
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.
{ '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'}