Condividi tramite


Libreria client di Analisi immagini di Visione artificiale di Azure per JavaScript - versione 1.0.0-beta.3

Il servizio Analisi immagini fornisce algoritmi di intelligenza artificiale per l'elaborazione di immagini e la restituzione di informazioni sul contenuto. In una singola chiamata al servizio è possibile estrarre una o più funzionalità visive dall'immagine contemporaneamente, tra cui ottenere una didascalia per l'immagine, estrarre il testo visualizzato nell'immagine (OCR) e rilevare gli oggetti. Per altre informazioni sul servizio e sulle funzionalità visive supportate, vedere panoramica dell'analisi delle immagini e la pagina concetti .

Usare la libreria client di Analisi immagini per:

  • Eseguire l'autenticazione nel servizio
  • Impostare le funzionalità da estrarre
  • Caricare un'immagine per l'analisi o inviare un URL di immagine
  • Ottenere il risultato dell'analisi

documentazione del prodotto | esempi | | documentazione di riferimento dell'API | Package (npm) | SDK

Introduttiva

Ambienti attualmente supportati

Per altri dettagli, vedere i criteri di supporto .

Prerequisiti

  • Una sottoscrizione di Azure .
  • Una risorsa Visione artificiale nella sottoscrizione di Azure.
    • La chiave e l'endpoint di questa risorsa saranno necessari per eseguire l'autenticazione nel servizio.
    • È possibile usare il piano tariffario gratuito (F0) per provare il servizio e eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.
    • Si noti che per eseguire l'analisi delle immagini con le funzionalità di Caption o Dense Captions, la risorsa di Azure deve trovarsi da una delle aree supportate dalla GPU seguenti: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europeo West US.

Installare il pacchetto @azure-rest/ai-vision-image-analysis

Installare la libreria client di Analisi immagini per JavaScript con npm:

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

Supporto browser

JavaScript Bundle

Per usare questa libreria client nel browser, è prima necessario usare un bundler. Per informazioni dettagliate su come eseguire questa operazione, vedere la documentazione di creazione di bundle .

Concetti chiave

Dopo aver inizializzato un ImageAnalysisClient, è necessario selezionare una o più funzionalità visive da analizzare. Le opzioni vengono specificate dalla classe enum VisualFeatures. Sono supportate le funzionalità seguenti:

  1. VisualFeatures.Caption: (esempi | esempi) Generare una frase leggibile che descrive il contenuto di un'immagine.
  2. VisualFeatures.Read: ( esempi di | esempi) noto anche come riconoscimento ottico dei caratteri (OCR). Estrarre testo stampato o scritto a mano dalle immagini.
  3. VisualFeatures.DenseCaptions: le didascalie dense forniscono altri dettagli generando didascalie di una frase per un massimo di 10 aree diverse nell'immagine, inclusa una per l'intera immagine.
  4. VisualFeatures.Tags: estrarre tag di contenuto per migliaia di oggetti riconoscibili, esseri viventi, paesaggi e azioni che appaiono nelle immagini.
  5. VisualFeatures.Objects: rilevamento oggetti. Questo è simile all'assegnazione di tag, ma incentrato sul rilevamento di oggetti fisici nell'immagine e sulla restituzione della posizione.
  6. VisualFeatures.SmartCrops: usato per trovare una sottoarea rappresentativa dell'immagine per la generazione di anteprime, con priorità assegnata per includere i visi.
  7. VisualFeatures.People: individuare le persone nell'immagine e restituirne la posizione.

Per altre informazioni su queste funzionalità, vedere panoramica dell'analisi delle immaginie la pagina concetti di .

Formati di immagine supportati

L'analisi delle immagini funziona sulle immagini che soddisfano i requisiti seguenti:

  • L'immagine deve essere presentata in formato JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF o MPO
  • Le dimensioni del file dell'immagine devono essere inferiori a 20 megabyte (MB)
  • Le dimensioni dell'immagine devono essere maggiori di 50 x 50 pixel e minori di 16.000 x 16.000 pixel

ImageAnalysisClient

Il ImageAnalysisClient è l'interfaccia principale per gli sviluppatori che interagiscono con il servizio Analisi immagini. Funge da gateway da cui si verificherà tutta l'interazione con la libreria.

Esempi

Autenticare il client

Ecco un esempio di come creare un'istanza di ImageAnalysisClient usando un'autenticazione basata su chiave.

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);

Creare ImageAnalysisClient con una credenziale microsoft Entra ID

L'autenticazione della chiave di sottoscrizione client viene usata nella maggior parte degli esempi di questa guida introduttiva, ma è anche possibile eseguire l'autenticazione con l'ID Microsoft Entra (in precedenza Azure Active Directory) usando la [libreria di identità di Azure][azure_identity]. Per usare il provider [DefaultAzureCredential][azure_identity_dac] illustrato di seguito o altri provider di credenziali forniti con Azure SDK, installare il pacchetto Azure.Identity:

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

const client = new ImageAnalysisClient(endpoint, credential);

Analizzare un'immagine dall'URL

L'esempio seguente illustra come analizzare un'immagine usando la libreria client di Analisi immagini per 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();

Analizzare un'immagine da un file locale

In questo esempio verrà analizzata un'immagine da un file locale usando la libreria client di Analisi immagini per 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();

Estrarre testo da un URL di immagine

In questo esempio viene illustrato come estrarre testo stampato o scritto a mano per il file di immagine sample.jpg usando ImageAnalysisClient. La chiamata al metodo restituisce un oggetto ImageAnalysisResult. La proprietà ReadResult nell'oggetto restituito include un elenco di righe di testo e un poligono di delimitazione che circonda ogni riga di testo. Per ogni riga, restituisce anche un elenco di parole nella riga di testo e un poligono delimitatore che circonda ogni parola.

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.');
  }

Risoluzione dei problemi

Registrazione

L'abilitazione della registrazione può aiutare a individuare informazioni utili sugli errori. Per visualizzare un log di richieste e risposte HTTP, impostare la variabile di ambiente AZURE_LOG_LEVEL su info. In alternativa, la registrazione può essere abilitata in fase di esecuzione chiamando setLogLevel nel @azure/logger:

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

setLogLevel("info");

Per istruzioni più dettagliate su come abilitare i log, è possibile esaminare la documentazione del pacchetto @azure/logger.

Passaggi successivi

Esaminare gli esempi directory per esempi dettagliati che illustrano come usare le librerie client.

Contribuire

Per contribuire a questa libreria, leggere la guida contribuire per altre informazioni su come compilare e testare il codice.