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
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
- versões lts do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
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
ouDense 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 Europe
ouWest 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:
-
VisualFeatures.Caption
: ( exemplos | exemplos) Gere uma frase legível por humanos que descreve o conteúdo de uma imagem. -
VisualFeatures.Read
: ( exemplos de | exemplos) também conhecido como OCR (Reconhecimento Óptico de Caracteres). Extraia texto impresso ou manuscrito de imagens. -
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. -
VisualFeatures.Tags
: extraia marcas de conteúdo para milhares de objetos reconhecíveis, seres vivos, cenários e ações que aparecem em imagens. -
VisualFeatures.Objects
: detecção de objeto. Isso é semelhante à marcação, mas focado em detectar objetos físicos na imagem e retornar sua localização. -
VisualFeatures.SmartCrops
: usada para localizar uma sub-região representativa da imagem para a geração de miniaturas, com prioridade dada para incluir faces. -
VisualFeatures.People
: localize as pessoas na imagem e retorne sua localização.
Para obter mais informações sobre esses recursos, consulte
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.
Projetos relacionados
Azure SDK for JavaScript