Biblioteca de cliente do Azure AI Vision Image Analysis 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 o texto mostrado na imagem (OCR) e detetar objetos. Para obter mais informações sobre o serviço e os recursos visuais suportados, consulte de visão geral da Análise de Imagem e a página Conceitos.

Use a biblioteca de cliente de Análise de Imagem para:

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

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

Primeiros passos

Ambientes atualmente suportados

Consulte o nosso de política de suporte para obter mais detalhes.

Pré-requisitos

  • Uma assinatura do Azure.
  • Um recurso Visão Computacional em sua assinatura do Azure.
    • Você precisará da chave e do ponto de extremidade desse recurso para autenticar no serviço.
    • Você pode usar o nível de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para um nível pago 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 de 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 cliente de Análise de Imagem para JavaScript com npm:

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

Suporte do navegador

Pacote JavaScript

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

Conceitos-chave

Depois de inicializar um ImageAnalysisClient, você precisa selecionar um ou mais recursos visuais para analisar. As opções são especificadas pela classe enum VisualFeatures. Os seguintes recursos são suportados:

  1. VisualFeatures.Caption: (Exemplos | Exemplos) Gere uma frase legível por humanos que descreva o conteúdo de uma imagem.
  2. VisualFeatures.Read: (Exemplos | amostras) Também conhecido como Reconhecimento Ótico de Caracteres (OCR). Extraia texto impresso ou manuscrito de imagens.
  3. VisualFeatures.DenseCaptions: Legendas densas fornece mais detalhes gerando legendas de uma frase para até 10 regiões diferentes na imagem, incluindo uma para a imagem inteira.
  4. VisualFeatures.Tags: Extraia tags de conteúdo para milhares de objetos reconhecíveis, seres vivos, cenários e ações que aparecem em imagens.
  5. VisualFeatures.Objects: Deteção de objetos. Isso é semelhante à marcação, mas focado em detetar objetos físicos na imagem e retornar sua localização.
  6. VisualFeatures.SmartCrops: Usado para encontrar uma sub-região representativa da imagem para geração de miniaturas, com prioridade para incluir rostos.
  7. VisualFeatures.People: Localize as pessoas na imagem e devolva a sua localização.

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

Formatos de imagem suportados

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

  • A imagem deve ser apresentada nos formatos JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF ou MPO
  • O tamanho do arquivo da imagem deve ser inferior a 20 megabytes (MB)
  • As dimensões da imagem devem ser maiores que 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 a partir do qual toda a interação com a biblioteca ocorrerá.

Exemplos

Autenticar o cliente

Veja 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 de cliente é usada na maioria dos exemplos neste guia de introdução, mas você também pode autenticar com o Microsoft Entra ID (anteriormente Azure Ative 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 a partir do URL

O exemplo a seguir demonstra como analisar uma imagem usando a biblioteca de cliente de 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 cliente do Image Analysis 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 um URL de imagem

Este exemplo demonstra como extrair texto impresso ou manuscrito 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 delimitador ao redor de cada linha de texto. Para cada linha, ele também retorna uma lista de palavras na linha de texto e um polígono delimitador ao redor 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.');
  }

Solução de problemas

Registo

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 tempo de execução chamando setLogLevel no @azure/logger:

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

setLogLevel("info");

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

Próximos passos

Dê uma olhada no exemplos diretório para obter exemplos detalhados que demonstram como usar as bibliotecas cliente.

Contribuição

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