Partekatu honen bidez:


Llamada a Read API de disponibilidad general de Visión de Azure AI v3.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 los pasos siguientes se supone que ya ha creado un recurso de Computer Vision y ha obtenido una clave y una dirección URL de punto de conexión. Si no lo ha hecho, consulte la guía de inicio rápido para empezar.

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).

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 v3.2, un parámetro model-version permite elegir entre los modelos de disponibilidad general y versión preliminar para una versión de API determinada. El modelo que especifique se usa 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
Más reciente 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 Agrega compatibilidad con texto impreso para hindi, árabe y idiomas relacionados. En el caso del texto manuscrito, agrega compatibilidad con el japonés y el coreano.
2021-09-30 Agrega compatibilidad con texto impreso para 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 podría devolver texto incompleto e incorrecto.

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

De forma predeterminada, el servicio genera las líneas de texto en 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.

Captura de pantalla del ejemplo de orden de lectura de OCR.

Selección de 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 Páginas seleccionadas (3-6).

Captura de pantalla que muestra la salida de todas las páginas y de las páginas seleccionadas.

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. En el caso remoto, especifique la dirección URL de la imagen mediante el formato del cuerpo de la solicitud, como en el ejemplo 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/d3d3d3d3-eeee-ffff-aaaa-b4b4b4b4b4b4

Nota

Facturación

La página precios de Visión de Azure AI incluye el plan de tarifa para las operaciones 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 de Obtención de resultados de lectura. 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 Error 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 un aumento de 30 RPS a petición. Anote el identificador y la región del recurso de Azure y abra una incidencia de soporte técnico de Azure o póngase en contacto con el equipo de su cuenta para solicitar una tarifa de RPS más alta.

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.

Captura de pantalla que muestra el ejemplo de clasificación de escritura a mano de OCR.