Chamar a API de Leitura de GA da Visão de IA do Azure v3.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.

As etapas a seguir pressupõem que você já criou um recurso de Pesquisa Visual Computacional e obteve uma chave e uma URL de ponto de extremidade. Se ainda não fez isso, consulte o 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 da Visão de IA do Azure 3.2 GA e Início Rápido: leitura do Visão de IA do Azure v3.2 GA.

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 v3.2, um parâmetro model-version permite escolher entre os modelos GA e de visualização 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 Adiciona suporte a texto impresso para idiomas hindi, árabe e relacionados. No caso de textos escritos à mão, adiciona suporte para japonês e coreano.
2021-09-30 Adiciona suporte a texto impresso para o idioma 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 gera 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.

Captura de tela do exemplo da ordem de leitura do OCR.

Selecionar páginas ou intervalos 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 a 10) e Páginas selecionadas (3-6).

Captura de tela mostrando a saída de todas as páginas e de páginas selecionadas.

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 como o exemplo a seguir.

{"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/d3d3d3d3-eeee-ffff-aaaa-b4b4b4b4b4b4

Observação

Billing

A página de preços da Visão de IA do Azure inclui o tipo de preço para operações de 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 Resultado 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 Falha na operação.
succeeded A operação foi bem-sucedida.

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

Observação

A camada gratuita limita a taxa de solicitação a 20 chamadas por minuto. A camada paga permite 30 RPS, que podem ser aumentadas mediante solicitação. Anote o identificador e a região do recurso do Azure e abra um tíquete de suporte do Azure ou entre em contato com a equipe da sua conta para solicitar uma taxa de RPS mais alta.

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.

Captura de tela que mostra o exemplo de classificação de manuscrito do OCR.