Compartilhar via


Biblioteca de clientes da Análise de Imagem da Pesquisa Visual do Azure para JavaScript – versão 1.0.0-beta.3

O serviço de Análise de Imagem fornece algoritmos de IA para processar imagens e retornar informações sobre seu conteúdo. Em uma única chamada de serviço, você pode extrair um ou mais recursos visuais da imagem simultaneamente, incluindo obter uma legenda para a imagem, extrair texto mostrado na imagem (OCR) e detectar objetos. Para obter mais informações sobre o serviço e os recursos visuais com suporte, consulte visão geral da Análise de Imageme a página Conceitos .

Use a biblioteca de clientes da Análise de Imagem para:

  • Autenticar no serviço
  • Definir quais recursos você gostaria de extrair
  • Carregar uma imagem para análise ou enviar uma URL de imagem
  • Obter o resultado da análise

Documentação do produto | exemplos | documentação de referência da API do Vision Studio | | Package (npm) | código-fonte do SDK

Introdução

Ambientes com suporte no momento

Consulte nossa política de suporte para obter mais detalhes.

Pré-requisitos

  • Uma assinatura do Azure.
  • Um recurso pesquisa visual computacional em sua assinatura do Azure.
    • Você precisará da chave e do ponto de extremidade desse recurso para se autenticar no serviço.
    • Você pode usar o tipo de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para uma camada paga para produção.
    • Observe que, para executar a Análise de Imagem com os recursos Caption ou Dense Captions, o recurso do Azure precisa ser de uma das seguintes regiões com suporte para GPU: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europeou West US.

Instalar o pacote @azure-rest/ai-vision-image-analysis

Instale a biblioteca de clientes de Análise de Imagem para JavaScript com npm:

npm install @azure-rest/ai-vision-image-analysis

Suporte ao navegador

Pacote JavaScript

Para usar essa biblioteca de clientes no navegador, primeiro, você precisa usar um empacotador. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agrupamento .

Principais conceitos

Depois de inicializar um ImageAnalysisClient, você precisará selecionar um ou mais recursos visuais para analisar. As opções são especificadas pela classe de enumeração VisualFeatures. Há suporte para os seguintes recursos:

  1. VisualFeatures.Caption: ( exemplos | exemplos) Gere uma frase legível por humanos que descreve o conteúdo de uma imagem.
  2. VisualFeatures.Read: ( exemplos de | exemplos) também conhecido como OCR (Reconhecimento Óptico de Caracteres). Extraia texto impresso ou manuscrito de imagens.
  3. VisualFeatures.DenseCaptions: Legendas densas fornecem mais detalhes gerando legendas de uma frase para até 10 regiões diferentes na imagem, incluindo uma para toda a imagem.
  4. VisualFeatures.Tags: extraia marcas de conteúdo para milhares de objetos reconhecíveis, seres vivos, cenários e ações que aparecem em imagens.
  5. VisualFeatures.Objects: detecção de objeto. Isso é semelhante à marcação, mas focado em detectar objetos físicos na imagem e retornar sua localização.
  6. VisualFeatures.SmartCrops: usada para localizar uma sub-região representativa da imagem para a geração de miniaturas, com prioridade dada para incluir faces.
  7. VisualFeatures.People: localize as pessoas na imagem e retorne sua localização.

Para obter mais informações sobre esses recursos, consulte visão geral da Análise de Imageme a página conceitos de .

Formatos de imagem com suporte

A Análise de Imagem funciona em imagens que atendem aos seguintes requisitos:

  • A imagem deve ser apresentada no formato JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF ou MPO
  • O tamanho do arquivo da imagem deve ser menor que 20 megabytes (MB)
  • As dimensões da imagem devem ter mais de 50 x 50 pixels e menos de 16.000 x 16.000 pixels

ImageAnalysisClient

O ImageAnalysisClient é a interface principal para desenvolvedores que interagem com o serviço de Análise de Imagem. Ele serve como o gateway do qual toda a interação com a biblioteca ocorrerá.

Exemplos

Autenticar o cliente

Aqui está um exemplo de como criar uma instância de ImageAnalysisClient usando uma autenticação baseada em chave.

const key = "<your_key>";
const credential = new AzureKeyCredential(key);

const client = new ImageAnalysisClient(endpoint, credential);

const { ImageAnalysisClient } = require("@azure-rest/ai-vision-image-analysis");
const { AzureKeyCredential } = require('@azure/core-auth');

const endpoint = "<your_endpoint>";
const key = "<your_key>";
const credential = new AzureKeyCredential(key);

const client = new ImageAnalysisClient(endpoint, credential);

Criar ImageAnalysisClient com uma Credencial de ID do Microsoft Entra

A autenticação de chave de assinatura do cliente é usada na maioria dos exemplos neste guia de introdução, mas você também pode se autenticar com a ID do Microsoft Entra (antigo Azure Active Directory) usando a [biblioteca de Identidade do Azure][azure_identity]. Para usar o provedor [DefaultAzureCredential][azure_identity_dac] mostrado abaixo ou outros provedores de credenciais fornecidos com o SDK do Azure, instale o pacote Azure.Identity:

npm install @azure/identity
const endpoint = "<your_endpoint>";
const credential = new DefaultAzureCredential();

const client = new ImageAnalysisClient(endpoint, credential);

Analisar uma imagem da URL

O exemplo a seguir demonstra como analisar uma imagem usando a biblioteca de clientes da Análise de Imagem para JavaScript.

const imageUrl = "https://example.com/image.jpg";
const features = ["Caption", "DenseCaptions", "Objects", "People", "Read", "SmartCrops", "Tags"];

async function analyzeImageFromUrl() {
  const result = await client.path("/imageanalysis:analyze").post({
    body: {
      url: imageUrl,
    },
    queryParameters: {
      features: features,
      "smartCrops-aspect-ratios": [0.9, 1.33],
    },
    contentType: "application/json",
  });

  console.log("Image analysis result:", result.body);
}

analyzeImageFromUrl();

Analisar uma imagem de um arquivo local

Neste exemplo, analisaremos uma imagem de um arquivo local usando a biblioteca de clientes da Análise de Imagem para JavaScript.

const fs = require("fs");

const imagePath = "./path/to/your/image.jpg";
const features = ["Caption", "DenseCaptions", "Objects", "People", "Read", "SmartCrops", "Tags"];

async function analyzeImageFromFile() {
  const imageBuffer = fs.readFileSync(imagePath);

  const result = await client.path("/imageanalysis:analyze").post({
    body: imageBuffer,
    queryParameters: {
      features: features,
      "smartCrops-aspect-ratios": [0.9, 1.33],
    },
    contentType: "application/octet-stream",
  });

  console.log("Image analysis result:", result.body);
}

analyzeImageFromFile();

Extrair texto de uma URL de imagem

Este exemplo demonstra como extrair texto impresso ou escrito à mão para o arquivo de imagem sample.jpg usando o ImageAnalysisClient. A chamada de método retorna um objeto ImageAnalysisResult. A propriedade ReadResult no objeto retornado inclui uma lista de linhas de texto e um polígono delimitado em torno de cada linha de texto. Para cada linha, ela também retorna uma lista de palavras na linha de texto e um polígono delimitando em torno de cada palavra.

const client: ImageAnalysisClient = createImageAnalysisClient(endpoint, credential);

const features: string[] = [
  'Read'
];

const imageUrl: string = 'https://aka.ms/azsdk/image-analysis/sample.jpg';

client.path('/imageanalysis:analyze').post({
  body: { url: imageUrl },
  queryParameters: { features: features },
  contentType: 'application/json'
}).then(result => {
  const iaResult: ImageAnalysisResultOutput = result.body as ImageAnalysisResultOutput;

  // Process the response
  if (iaResult.readResult && iaResult.readResult.blocks.length > 0) {
    iaResult.readResult.blocks.forEach(block => {
      console.log(`Detected text block: ${JSON.stringify(block)}`);
    });
  } else {
    console.log('No text blocks detected.');
  }

Solucionando problemas

Log

Habilitar o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em runtime chamando setLogLevel no @azure/logger:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Para obter instruções mais detalhadas sobre como habilitar logs, você pode examinar os documentos do pacote @azure/agente.

Próximas etapas

Examine os exemplos de diretório para obter exemplos detalhados que demonstram como usar as bibliotecas de cliente.

Contribuindo

Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.

  • do SDK do Microsoft Azure para JavaScript