Llame a Read API de disponibilidad general de Visión de Azure AI 3.2

En esta guía se muestra cómo llamar a la API de lectura de disponibilidad general v3.2 para extraer texto de imágenes. Conocerá las distintas maneras en que puede configurar el comportamiento de esta API para satisfacer sus necesidades. En esta guía se da por supuesto que ya se ha creado un recurso de Visión y se ha obtenido una clave de suscripción y una dirección URL del punto de conexión. Si no lo ha hecho, para empezar consulte un inicio rápido.

Ediciones de OCR (Read)

Importante

Seleccione la edición de Read que mejor se adapte a sus requisitos.

Entrada Ejemplos Edición de lectura Prestación
Imágenes: Imágenes generales etiquetas, carteles y pósteres OCR para imágenes (versión 4.0) Optimizada para imágenes generales, no provenientes de documentos, con una API sincrónica con rendimiento mejorado que facilita la inserción de experiencias con tecnología de OCR en los escenarios de experiencia de usuario.
Documentos: Digitales y digitalizados, incluidas las imágenes libros, artículos e informes Modelo de lectura del documento de inteligencia Optimizado para documentos digitales y que contienen gran cantidad de texto digitalizado con una API asincrónica para ayudar a automatizar el procesamiento inteligente de documentos a escala.

Acerca de la lectura de Visión de Azure AI v3.2 de disponibilidad general

¿Busca la versión de lectura de disponibilidad general de Visión de Azure AI v3.2? Todas las futuras mejoras de la lectura por OCR forman parte de los dos servicios enumerados anteriormente. No habrá más actualizaciones de Visión de Azure AI v3.2. Para más información, consulte Llamada a la Read API de disponibilidad general de Visión de Azure AI 3.2 e Inicio rápido: Lectura de Visión de Azure AI v3.2 (disponibilidad general).

Requisitos de entrada

La llamada API a Read usa las imágenes y los documentos como entrada. Tienen los siguientes requisitos:

  • Formatos de archivos admitidos: JPEG, PNG, BMP, PDF y TIFF.
  • En el caso de los archivos PDF y TIFF, se procesan hasta 2000 páginas (solo las primeras dos páginas en el nivel Gratis).
  • El tamaño de archivo de las imágenes debe ser inferior a 500 MB (4 MB para el nivel Gratis) y las dimensiones de 50 x 50 píxeles como mínimo y 10 000 x 10 000 píxeles como máximo. Los archivos PDF no tienen un límite de tamaño.
  • La altura mínima del texto que se va a extraer es de 12 píxeles para una imagen de 1024 x 768. Esto se corresponde con texto de 8 puntos de fuente aproximadamente a 150 PPP.

Nota:

No es necesario recortar una imagen para las líneas de texto. Envíe toda la imagen a Read API y reconocerá todos los textos.

Determinación de cómo procesar los datos (opcional)

Especificación del modelo de OCR

De manera predeterminada, el servicio usará el modelo de disponibilidad general (GA) más reciente para extraer texto. A partir de Read 3.2, un parámetro model-version permite elegir entre los modelos de GA y versión preliminar de una versión de API determinada. El modelo que se especifique se va a usar para extraer texto con la operación de lectura.

Al usar la operación de lectura, emplee los valores siguientes en el parámetro model-version opcional.

Valor Modelo usado
No proporcionado Modelo de disponibilidad general más reciente
latest Modelo de disponibilidad general más reciente
2022-04-30 Modelo de disponibilidad general más reciente. 164 idiomas para texto impreso y 9 idiomas para texto manuscrito junto con varias mejoras en la calidad y el rendimiento
2022-01-30-preview El modelo de versión preliminar agrega compatibilidad con texto impreso para hindi, árabe e idiomas relacionados. En el caso del texto manuscrito, agrega compatibilidad con el japonés y el coreano.
2021-09-30-preview El modelo de vista previa agrega compatibilidad con texto impreso para el ruso y otros idiomas cirílicos. Para texto manuscrito, agrega compatibilidad con chino simplificado, francés, alemán, italiano, portugués y español.
2021-04-12 Modelo de disponibilidad general de 2021

Idioma de entrada

De manera predeterminada, el servicio extrae todo el texto de las imágenes o documentos, incluidos los idiomas mixtos. La operación de lectura tiene un parámetro de solicitud opcional para el lenguaje. Proporcione un código de idioma únicamente si quiere forzar a que el documento se procese como ese idioma específico. De lo contrario, el servicio puede devolver texto incompleto e incorrecto.

Salida de orden de lectura natural (solo idiomas procedentes del latín)

De manera predeterminada, el servicio genera las líneas de texto en el orden de izquierda a derecha. Opcionalmente, con el parámetro de solicitud readingOrder, use natural si quiere obtener una salida de orden de lectura más natural, como se muestra en el ejemplo siguiente. Esta característica solo es compatible con los idiomas procedentes del latín.

OCR Reading order example

Seleccionar páginas o intervalos de páginas para la extracción de texto

De manera predeterminada, el servicio extrae texto de todas las páginas de los documentos. Opcionalmente, use el parámetro de solicitud pages para especificar números de página o intervalos de páginas para extraer texto solo de esas páginas. En el ejemplo siguiente se muestra un documento con 10 páginas, con texto extraído para ambos casos: todas las páginas (1-10) y las páginas seleccionadas (3-6).

Selected pages output

Envío de datos al servicio

Envíe una imagen local o una imagen remota a Read API. Si la imagen es local, coloque los datos binarios de la imagen en el cuerpo de la solicitud HTTP. Si la imagen es remota, especifique la dirección URL de la misma asignando al cuerpo de la solicitud un formato como el siguiente: {"url":"http://example.com/images/test.jpg"}.

La llamada a Read de Read API toma como entrada una imagen o un documento PDF y extrae texto de forma asincrónica.

https://{endpoint}/vision/v3.2/read/analyze[?language][&pages][&readingOrder]

La llamada se devuelve un campo de encabezado de respuesta denominado Operation-Location. El valor Operation-Location es una dirección URL que contiene el identificador de la operación que se va a usar en el paso siguiente.

Encabezado de respuesta Valor de ejemplo
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

Nota

Facturación

La página de precios de Visión de Azure AI incluye el plan de tarifa de Lectura. Cada imagen o página analizada cuenta como una transacción. Si llama a la operación con un documento PDF o TIFF con 100 páginas, la operación de Read la contabilizará como 100 transacciones para su facturación. Si realizó 50 llamadas a la operación, y cada llamada envió un documento con 100 páginas, se facturarán 50x100 = 5000 transacciones.

Obtención de resultados a partir del servicio

El segundo paso es llamar a la operación Get Read Results. Esta operación toma como entrada el identificador de operación que la operación de lectura ha creado.

https://{endpoint}/vision/v3.2/read/analyzeResults/{operationId}

Devuelve una respuesta JSON que contiene un campo de estado con los siguientes valores posibles.

Value Significado
notStarted la operación no se ha iniciado.
running la operación se está procesando.
failed Se produjeron errores en la operación.
succeeded La operación se ha realizado correctamente.

Llamará a esta operación de forma iterativa hasta que se devuelva con el valor correcto. Use un intervalo de 1 a 2 segundos para evitar superar la tasa de solicitudes por segundo (RPS).

Nota

El nivel gratuito limita la tasa de solicitudes a 20 llamadas por minuto. El nivel de pago permite 30 solicitudes por segundo (RPS) que pueden aumentar a petición. Anote tanto el identificador como la región de los recursos de Azure y abra una incidencia de soporte técnico de soporte técnico de Azure o póngase en contacto con el equipo de su cuenta para solicitar una tasa de solicitudes por segundo (RPS) mayor.

Cuando el campo estado tiene el valor succeeded (correcto), la respuesta JSON contiene el contenido de texto extraído de la imagen o el documento. La respuesta en JSON mantiene las agrupaciones de líneas originales de palabras reconocidas. Incluye las líneas de texto extraídas y las coordenadas del cuadro de límite correspondientes. Cada línea de texto incluye todas las palabras extraídas, con las coordenadas y las puntuaciones de confianza respectivas.

Nota:

Los datos enviados a la operación Read se cifran temporalmente y se almacenan en reposo durante un corto tiempo y después se eliminan. Esto permite que las aplicaciones recuperen el texto extraído como parte de la respuesta del servicio.

Salida de JSON de ejemplo

Consulte el siguiente ejemplo de una respuesta JSON correcta:

{
  "status": "succeeded",
  "createdDateTime": "2021-02-04T06:32:08.2752706+00:00",
  "lastUpdatedDateTime": "2021-02-04T06:32:08.7706172+00:00",
  "analyzeResult": {
    "version": "3.2",
    "readResults": [
      {
        "page": 1,
        "angle": 2.1243,
        "width": 502,
        "height": 252,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              58,
              42,
              314,
              59,
              311,
              123,
              56,
              121
            ],
            "text": "Tabs vs",
            "appearance": {
              "style": {
                "name": "handwriting",
                "confidence": 0.96
              }
            },
            "words": [
              {
                "boundingBox": [
                  68,
                  44,
                  225,
                  59,
                  224,
                  122,
                  66,
                  123
                ],
                "text": "Tabs",
                "confidence": 0.933
              },
              {
                "boundingBox": [
                  241,
                  61,
                  314,
                  72,
                  314,
                  123,
                  239,
                  122
                ],
                "text": "vs",
                "confidence": 0.977
              }
            ]
          }
        ]
      }
    ]
  }
}

Clasificación manuscrita de líneas de texto (solo para idiomas procedentes del latín)

La respuesta incluye una clasificación de si cada línea de texto está en estilo manuscrito o no, junto con una puntuación de confianza. Esta característica solo es compatible con los idiomas procedentes del latín. En el ejemplo siguiente se muestra la clasificación manuscrita del texto de la imagen.

OCR handwriting classification example

Pasos siguientes