Chamar a API de Leitura de GA do Visão de IA do Azure 3.2

Este guia mostra como chamar a API de leitura GA v3.2 para extrair texto de imagens. Você aprenderá as diversas maneiras de configurar o comportamento dessa API para atender às suas necessidades. Este guia pressupõe que você já criou um recurso de Visão e obteve uma chave e uma URL de ponto de extremidade. Se você ainda não fez isso, siga um início rápido para começar.

Edições de OCR (Leitura)

Importante

Selecione a edição de Leitura que melhor atenda aos seus requisitos.

Entrada Exemplos Edição de Leitura Benefício
Imagens: gerais, na natureza rótulos, placas de rua e cartazes OCR para imagens (versão 4.0) Otimizado para imagens gerais, não documentais, com uma API síncrona com desempenho aprimorado que facilita a incorporação de OCR nos cenários de experiência do usuário.
Documentos: digitais e digitalizados, incluindo imagens livros, artigos e relatórios Modelo de leitura da Informação de Documentos Otimizado para documentos digitais e digitalizados contendo texto intenso com uma API assíncrona para ajudar a automatizar o processamento inteligente de documentos em escala.

Sobre o Read da GA do Visão de IA do Azure v3.2

Procurando o Read da GA mais recente do Visão de IA do Azure v3.2? Todos os aprimoramentos futuros do OCR de Leitura fazem parte dos dois serviços listados anteriormente. Não haverá mais atualizações para a Visão de IA do Azure v3.2. Para obter mais informações, confira Chamar a API de Leitura em GA da Visão de IA do Azure 3.2 e Início rápido: Leitura em GA da Visão de IA do Azure v3.2.

Requisitos de entrada

A chamada de API Read usa imagens e documentos como entrada. Eles têm os seguintes requisitos:

  • Formatos de arquivo compatíveis: JPEG, PNG, BMP, PDF e TIFF
  • Para arquivos PDF e TIFF, até 2,000 mil páginas (apenas as duas primeiras páginas da camada gratuita) são processadas.
  • O tamanho do arquivo de imagem precisa ser menor que 500 MB (4 MB para a camada gratuita) e ter como dimensões, no mínimo, 50 x 50 pixels e, no máximo, 10.000 x 10.000 pixels. Os arquivos PDF não têm um limite de tamanho.
  • A altura mínima do texto a ser extraído é de 12 pixels para uma imagem de 1024 x 768. Isso corresponde a uma mensagem de texto de cerca de 8 pontos de fonte em 150 DPI.

Observação

Não é necessário cortar uma imagem para linhas de texto. Envie a imagem inteira para a API de Leitura e ela reconhecerá todos os textos.

Determinar como processar os dados (opcional)

Especificar o modelo de OCR

Por padrão, o serviço usa o modelo mais recente geralmente disponível (GA) para extrair texto. A partir da Leitura 3.2, um parâmetro model-version permite escolher entre o GA e modelos de versão prévia para uma determinada versão da API. O modelo especificado será usado para extrair texto com a operação de leitura.

Ao usar a operação de leitura, use os valores a seguir para o parâmetro model-version opcional.

Valor Modelo usado
Não fornecida Modelo GA mais recente
mais recente Modelo GA mais recente
2022-04-30 Modelo GA mais recente. 164 idiomas para texto impresso e 9 idiomas para texto manuscrito, incluindo vários aprimoramentos na qualidade e desempenho
2022-01-30-preview O modelo de visualização adiciona suporte a texto de impressão para hindi, árabe e idiomas relacionados. No caso de textos escritos à mão, adiciona suporte para japonês e coreano.
2021-09-30-preview O modelo de versão prévia adiciona suporte de texto de impressão para russo e outros idiomas cirílicos. Para texto manuscrito, adiciona suporte para chinês simplificado, francês, alemão, italiano, português e espanhol.
2021-04-12 Modelo GA 2021

Linguagem de entrada

Por padrão, o serviço extrai todo o texto de suas imagens ou documentos, incluindo idiomas mistos. A operação de Leitura tem um parâmetro de solicitação opcional para o idioma. Forneça apenas um código de linguagem se quiser forçar o documento a ser processado como essa linguagem específica. Caso contrário, o serviço poderá retornar texto incompleto e incorreto.

Saída da ordem de leitura natural (somente idiomas latinos)

Por padrão, o serviço saída as linhas de texto na ordem da esquerda para a direita. Opcionalmente, como o parâmetro de solicitação readingOrder, use natural para uma saída de ordem de leitura mais amigável, conforme mostrado no exemplo a seguir. Esse recurso é compatível apenas com idiomas latinos.

OCR Reading order example

Selecionar página(s) ou intervalo(s) de páginas para extração de texto

Por padrão, o serviço extrai texto de todas as páginas nos documentos. Opcionalmente, use o parâmetro de solicitação pages para especificar números de página ou intervalos de página para extrair o texto apenas daquelas páginas. O exemplo a seguir mostra um documento com 10 páginas, com texto extraído para ambos os casos – todas as páginas (1-10) e páginas selecionadas (3-6).

Selected pages output

Enviar dados ao serviço

Você envia uma imagem local ou remota à API de Leitura. Para local, você coloca os dados da imagem binária no corpo da solicitação HTTP. Para remoto, especifique a URL da imagem formatando o corpo da solicitação da seguinte maneira: {"url":"http://example.com/images/test.jpg"}.

A Chamada de leitura da API de Leitura usa uma imagem ou documento PDF como entrada e extrai o texto de maneira assíncrona.

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

A chamada retorna com um campo de cabeçalho de resposta chamado Operation-Location. O valor Operation-Location é uma URL que contém a ID da Operação a ser usada na próxima etapa.

Cabeçalho de resposta Valor de exemplo
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

Observação

Billing

A página de preços de Visão de IA do Azure inclui o tipo de preço para Leitura. Cada imagem ou página analisada é uma transação. Se você chamar a operação com um documento PDF ou TIFF contendo 100 páginas, a operação de Leitura fará a contagem de 100 transações e você será cobrado por 100 transações. Caso tenha feito 50 chamadas para a operação e cada chamada tiver enviado um documento com 100 páginas, você será cobrado por 50 X 100 = 5000 transações.

Obter resultados do serviço

A segunda etapa é chamar a operação Obter Resultados de Leitura. Essa operação usa como entrada a ID da operação que foi criada pela operação de Leitura.

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

Ela retorna uma resposta JSON que contém um campo de status com os valores possíveis a seguir.

Valor Significado
notStarted A operação não foi iniciada.
running A operação está sendo processada.
failed A operação falhou.
succeeded Êxito na operação.

Execute uma chamada a essa operação de modo iterativo até que ela retorne o valor succeeded. Use um intervalo de um a dois segundos para evitar que a taxa de RPS (solicitações por segundo) seja excedida.

Observação

A camada gratuita limita a taxa de solicitação a 20 chamadas por minuto. A camada paga permite 30 solicitações por segundo (RPDS) que podem ser aumentadas mediante solicitação. Anote o identificador e a região do recurso Azure e abra um tíquete no Suporte do Azure; ou entre em contato com sua equipe de conta para solicitar uma taxa de solicitação por segundo (RPS) maior.

Quando o campo status tiver o valor succeeded, a resposta JSON conterá o conteúdo de texto extraído da imagem ou do documento. A resposta JSON mantém os agrupamentos de linhas originais de palavras reconhecidas. Isso inclui as linhas de texto extraídas e as respectivas coordenadas da caixa delimitadora. Cada linha de texto inclui todas as palavras extraídas com as respectivas coordenadas e pontuações de confiança.

Observação

Os dados enviados para a operação Leitura são temporariamente criptografados e armazenados em repouso por um curto período de tempo e, em seguida, excluídos. Isso permite que os aplicativos recuperem o texto extraído como parte da resposta do serviço.

Saída JSON de exemplo

Confira o seguinte exemplo de uma resposta JSON bem-sucedida:

{
  "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
              }
            ]
          }
        ]
      }
    ]
  }
}

Classificação manuscrita para linhas de texto (somente idiomas latinos)

A resposta inclui uma classificação de se cada linha de texto está no estilo manuscrito ou não, juntamente com um escore de confiança. Este recurso só está disponível para idiomas latinos. O exemplo a seguir mostra a classificação manuscrita para o texto na imagem.

OCR handwriting classification example

Próximas etapas