Chamar a API de leitura do Azure AI Vision 3.2 GA

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

Edições OCR (Leitura)

Importante

Selecione a edição Read que melhor se adapta às suas necessidades.

Entrada Exemplos Ler edição Benefício
Imagens: Imagens gerais, in-the-wild rótulos, sinais de rua e cartazes OCR para imagens (versão 4.0) Otimizado para imagens gerais não documentais com uma API síncrona de desempenho aprimorado que facilita a incorporação de OCR em cenários de experiência do usuário.
Documentos: digitais e digitalizados, incluindo imagens livros, artigos e relatórios Modelo de leitura do Document Intelligence Otimizado para documentos digitalizados, digitalizados e digitais com muito texto com uma API assíncrona para ajudar a automatizar o processamento inteligente de documentos em escala.

Sobre o Azure AI Vision v3.2 GA Read

Procurando o mais recente Azure AI Vision v3.2 GA Read? Todos os futuros aprimoramentos do Read OCR fazem parte dos dois serviços listados anteriormente. Não há mais atualizações para o Azure AI Vision v3.2. Para obter mais informações, consulte Chamar a API de leitura do Azure AI Vision 3.2 GA e Guia de início rápido: leitura do Azure AI Vision v3.2 GA.

Requisitos de entrada

A chamada da API de leitura usa imagens e documentos como entrada. Têm os seguintes requisitos:

  • Formatos de ficheiro suportados: JPEG, PNG, BMP, PDF e TIFF
  • Para ficheiros PDF e TIFF, são processadas até 2000 páginas (apenas as duas primeiras páginas no escalão gratuito).
  • O tamanho do ficheiro das imagens deve ser inferior a 500 MB (4 MB no escalão gratuito) e as dimensões de, pelo menos, 50 x 50 píxeis e, no máximo, 10 000 x 10 000 píxeis. Os ficheiros PDF não têm limite de tamanho.
  • A altura mínima do texto a extrair é de 12 píxeis para uma imagem de 1024 x 768, Isso corresponde a cerca de 8 texto de ponto de fonte a 150 DPI.

Nota

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

Determinar como processar os dados (opcional)

Especificar o modelo OCR

Por padrão, o serviço usa o modelo mais recente disponível em geral (GA) para extrair texto. A partir do Read 3.2, um model-version parâmetro permite escolher entre os modelos GA e preview para uma determinada versão da API. O modelo especificado será usado para extrair texto com a operação Ler.

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

Value Modelo utilizado
Não fornecido 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, juntamente com várias melhorias na qualidade e desempenho
2022-01-30-pré-visualização O modelo de visualização adiciona suporte de texto de impressão para hindi, árabe e idiomas relacionados. Para texto manuscrito, adiciona suporte para japonês e coreano.
2021-09-30-pré-visualização O modelo de visualização 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

Língua de entrada

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

Saída de ordem de leitura natural (apenas em línguas latinas)

Por padrão, o serviço emite as linhas de texto na ordem da esquerda para a direita. Opcionalmente, com o readingOrder parâmetro request, use natural para uma saída de ordem de leitura mais amigável para o ser humano, conforme mostrado no exemplo a seguir. Este recurso só é suportado para 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 dos documentos. Opcionalmente, use o pages parâmetro request para especificar números de página ou intervalos de páginas para extrair texto somente dessas 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 para a API de leitura. Para local, você coloca os dados da imagem binária no corpo da solicitação HTTP. Para remoto, especifique o URL da imagem formatando o corpo da solicitação da seguinte forma: {"url":"http://example.com/images/test.jpg"}.

A chamada Read da API Read usa uma imagem ou documento PDF como entrada e extrai texto de forma 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 Operation-Location valor é uma URL que contém a ID da operação a ser usada na próxima etapa.

Cabeçalho da resposta Valor de exemplo
Local de Operação https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

Nota

Faturação

A página de preços do Azure AI Vision inclui a camada de preços 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 Ler contará como 100 transações e você será cobrado por 100 transações. Se você fez 50 chamadas para a operação e cada chamada enviou 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. Esta operação toma como entrada o ID da operação que foi criado pela operação Ler.

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

Ele retorna uma resposta JSON que contém um campo de status com os seguintes valores possíveis.

Value Significado
notStarted A operação não foi iniciada.
running A operação está a ser processada.
failed A operação falhou.
succeeded A operação foi bem sucedida.

Você chama essa operação iterativamente até que ela retorne com o valor bem-sucedido . Use um intervalo de 1 a 2 segundos para evitar exceder a taxa de solicitações por segundo (RPS).

Nota

O nível gratuito limita a taxa de solicitação a 20 chamadas por minuto. O nível pago permite 30 solicitações por segundo (RPS) que podem ser aumentadas mediante solicitação. Observe seu identificador de recursos e região do Azure e abra um tíquete de suporte do Azure ou entre em contato com sua equipe de conta para solicitar uma taxa de solicitação por segundo (RPS) mais alta.

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

Nota

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

Exemplo de saída JSON

Veja 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 (apenas em línguas latinas)

A resposta inclui uma classificação de se cada linha de texto está em estilo manuscrito ou não, juntamente com uma pontuação de confiança. Esta funcionalidade só está disponível para línguas latinas. O exemplo a seguir mostra a classificação manuscrita para o texto na imagem.

OCR handwriting classification example

Próximos passos