Chamar a API de leitura do Azure AI Vision v3.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.

As etapas a seguir pressupõem que você já criou um recurso de Visão Computacional e obteve uma chave e uma URL de ponto final. Se ainda não o fez, consulte o 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 existem 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.

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. Começando com Read v3.2, um model-version parâmetro permite escolher entre os modelos GA e preview para uma determinada versão da API. O modelo especificado é 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 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 Adiciona suporte de texto impresso 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 produz 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.

Captura de tela do exemplo de ordem de leitura 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 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).

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

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

{"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 o ID da operação a ser usado na próxima etapa.

Cabeçalho da resposta Valor de exemplo
Local de Operação https://cognitiveservice/vision/v3.2/read/analyzeResults/d3d3d3d3-eeee-ffff-aaaa-b4b4b4b4b4b4

Nota

Faturação

A página de preços do Azure AI Vision inclui a camada de preços 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 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 Resultado 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 RPS que podem ser aumentados 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 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.

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