Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Detección de texto en una imagen
Puede facilitar una imagen de entrada como matriz de bytes de imagen (bytes de imagen con codificación base64) o como objeto de Amazon S3. En este procedimiento, carga una imagen JPEG o PNG en su bucket de S3 y especifica el nombre de archivo.
Para detectar texto en una imagen (API)
-
Complete los siguientes requisitos previos si aún no lo ha hecho.
-
Cree o actualice un usuario con los permisos
AmazonRekognitionFullAccess
yAmazonS3ReadOnlyAccess
. Para obtener más información, consulte Paso 1: Configure una AWS cuenta y cree un usuario. -
Instala y configura los SDK AWS Command Line Interface y los mismos. AWS Para obtener más información, consulte Paso 2: Configura el AWS CLI y AWS SDKs.
-
-
Cargue la imagen que contenga texto en su bucket de S3.
Para ver las instrucciones, consulte Carga de objetos en Amazon S3 en la Guía del usuario de Amazon Simple Storage Service.
-
Consulte los siguientes ejemplos para llamar a la operación
DetectText
.
DetectText solicitud de operación
En la operación DetectText
, indique una imagen de entrada como matriz de bytes codificada en base64 o como una imagen almacenada en un bucket de Amazon S3. En la siguiente solicitud JSON de ejemplo, aparece la imagen cargada desde un bucket de Amazon S3.
{ "Image": { "S3Object": { "Bucket": "bucket", "Name": "inputtext.jpg" } } }
Filtros
El filtrado por región, tamaño y puntuación de confianza del texto le brinda una flexibilidad adicional para controlar el resultado de su detección del texto. Mediante el uso de regiones de interés, puede limitar fácilmente la detección de texto a las regiones que son relevantes para usted, por ejemplo, la parte superior derecha de la foto de perfil o una ubicación fija en relación con un punto de referencia al leer los números de pieza de la imagen de una máquina. El filtro de tamaño del cuadro delimitador de texto puede utilizarse para evitar texto en segundo plano pequeño que sea molesto o irrelevante. El filtro de confianza del texto le permite eliminar resultados que no sean fiables, como texto borroso o difuminado.
Para obtener información sobre los valores de filtro, consulte DetectTextFilters
.
Puede utilizar los siguientes filtros:
-
MinConfidence—Establece el nivel de confianza de la detección de palabras. Las palabras con confianza de detección por debajo de este nivel se excluyen del resultado. Los valores deben estar comprendidos entre 0 y 100.
-
MinBoundingBoxWidth— Establece el ancho mínimo del cuadro delimitador de palabras. Las palabras con cuadros delimitadores menores que este valor se excluyen del resultado. El valor es relativo al ancho del marco de la imagen.
-
MinBoundingBoxHeight— Establece la altura mínima del cuadro delimitador de palabras. Las palabras con alturas de cuadro delimitador inferiores a este valor se excluyen del resultado. El valor es relativo a la altura del marco de la imagen.
-
RegionsOfInterest— Limita la detección a una región específica del marco de la imagen. Los valores son relativos a las dimensiones del marco. Para el texto que se encuentra solo parcialmente dentro de una región, la respuesta es indefinida.
DetectText respuesta de operación
La DetectText
operación analiza la imagen y devuelve una matriz TextDetections, donde cada elemento (TextDetection
) representa una línea o palabra detectada en la imagen. Para cada elemento, DetectText
devuelve la siguiente información:
-
El texto detectado (
DetectedText
) -
Las relaciones entre palabras y líneas (
Id
yParentId
) -
La ubicación de texto en la imagen (
Geometry
) -
La confianza que Amazon Rekognition tiene en la precisión del texto detectado y cuadro delimitador (
Confidence
) -
El tipo de texto detectado (
Type
)
Texto detectado
Cada elemento TextDetection
contiene texto reconocido (palabras o líneas) en el campo DetectedText
. Una palabra consta de uno o varios caracteres alfabéticos que no están separados por espacios. DetectText
puede detectar hasta 100 palabras en una imagen. El texto devuelto podría incluir caracteres que hacen que una palabra sea irreconocible. Por ejemplo, C@l en lugar de cal. Para determinar si un elemento TextDetection
representa una línea de texto o una palabra, utilice el campo Type
.
Cada elemento TextDetection
incluye un valor de porcentaje que representa el grado de confianza que tiene Amazon Rekognition en la precisión del texto detectado y el cuadro delimitador que rodea el texto.
Relaciones entre palabras y líneas
Cada elemento TextDetection
tiene un identificador de campo, Id
. El Id
muestra la posición de la palabra en una línea. Si el elemento es una palabra, el campo de identificador principal, ParentId
, identifica la línea en la que se detectó la palabra. El ParentId
para una línea es nulo. Por ejemplo, la línea "but keep" de la imagen anterior tiene los siguientes valores Id
y ParentId
:
Texto |
ID |
ID principal |
---|---|---|
but keep |
3 |
|
but |
8 |
3 |
keep |
9 |
3 |
Ubicación de texto en una imagen
Para determinar dónde está el texto reconocido en una imagen, utilice la información de cuadro delimitador (Geometry) devuelta por DetectText
. El objeto Geometry
contiene dos tipos de información de cuadro delimitador para líneas y palabras detectadas:
-
Un contorno rectangular grueso alineado con el eje en un objeto BoundingBox
-
Un polígono más detallado compuesto por varias coordenadas X e Y en una matriz Point
Las coordenadas del polígono y el cuadro delimitador muestran dónde se encuentra el texto en la imagen de origen. Los valores de las coordenadas son una proporción del tamaño de la imagen global. Para obtener más información, consulte. BoundingBox
La siguiente respuesta JSON de la operación DetectText
muestra las palabras y las líneas detectadas en la imagen siguiente.
{ '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'}