Freigeben über


Azure AI Vision Image Analysis-Clientbibliothek für JavaScript – Version 1.0.0-beta.3

Der Bildanalysedienst stellt KI-Algorithmen für die Verarbeitung von Bildern und das Zurückgeben von Informationen zu ihren Inhalten bereit. In einem einzelnen Dienstaufruf können Sie ein oder mehrere visuelle Features gleichzeitig aus dem Bild extrahieren, darunter das Abrufen einer Beschriftung für das Bild, das Extrahieren von Text, der im Bild (OCR) angezeigt wird, und das Erkennen von Objekten. Weitere Informationen zum Dienst und zu den unterstützten visuellen Features finden Sie unter Übersicht über die Bildanalyseund auf der Seite Konzepte.

Verwenden Sie die Clientbibliothek für die Bildanalyse, um:

  • Authentifizieren für den Dienst
  • Festlegen der Features, die Sie extrahieren möchten
  • Hochladen eines Bilds zur Analyse oder Senden einer Bild-URL
  • Abrufen des Analyseergebnisses

Produktdokumentation | Beispiele | Vision Studio | API-Referenzdokumentation | Package (npm) | SDK-Quellcode

Erste Schritte

Derzeit unterstützte Umgebungen

Weitere Informationen finden Sie in unserer Supportrichtlinie.

Voraussetzungen

  • Ein Azure-Abonnement.
  • Eine Computer Vision-Ressource in Ihrem Azure-Abonnement.
    • Sie benötigen den Schlüssel und endpunkt aus dieser Ressource, um sich für den Dienst zu authentifizieren.
    • Sie können das kostenlose Preisniveau (F0) verwenden, um den Dienst zu testen und später auf eine kostenpflichtige Stufe für die Produktion zu aktualisieren.
    • Beachten Sie, dass die Azure-Ressource zum Ausführen der Bildanalyse mit den features Caption oder Dense Captions aus einer der folgenden GPU-unterstützten Regionen stammen muss: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europeoder West US.

Installieren des @azure-rest/ai-vision-image-analysis-Pakets

Installieren Sie die Image Analysis-Clientbibliothek für JavaScript mit npm:

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

Browserunterstützung

JavaScript-Bündel

Um diese Clientbibliothek im Browser zu verwenden, müssen Sie zuerst einen Bundler verwenden. Ausführliche Informationen dazu finden Sie in unserer Bündelungsdokumentation.

Schlüsselkonzepte

Nachdem Sie eine ImageAnalysisClientinitialisiert haben, müssen Sie ein oder mehrere visuelle Features auswählen, die analysiert werden sollen. Die Optionen werden durch die Enumerationsklasse VisualFeaturesangegeben. Die folgenden Features werden unterstützt:

  1. VisualFeatures.Caption: (Beispiele | Beispiele) Generieren Sie einen lesbaren Satz, der den Inhalt eines Bilds beschreibt.
  2. VisualFeatures.Read: (Beispiele | Beispiele) Auch als optische Zeichenerkennung (OCR) bezeichnet. Extrahieren Sie gedruckten oder handschriftlichen Text aus Bildern.
  3. VisualFeatures.DenseCaptions: Dichte Beschriftungen bieten weitere Details durch Generieren von Einsatzbeschriftungen für bis zu 10 verschiedene Bereiche im Bild, einschließlich einer für das gesamte Bild.
  4. VisualFeatures.Tags: Extrahieren Sie Inhaltstags für Tausende erkennbarer Objekte, Lebewesen, Landschaft und Aktionen, die in Bildern angezeigt werden.
  5. VisualFeatures.Objects: Objekterkennung. Dies ähnelt dem Tagging, konzentriert sich jedoch auf das Erkennen physischer Objekte im Bild und die Rückgabe ihrer Position.
  6. VisualFeatures.SmartCrops: Wird verwendet, um einen repräsentativen Unterbereich des Bilds für die Miniaturansichtengenerierung zu finden, wobei die Priorität zum Einschließen von Gesichtern gegeben ist.
  7. VisualFeatures.People: Suchen Sie Personen im Bild, und geben Sie ihren Standort zurück.

Weitere Informationen zu diesen Features finden Sie unter Übersicht über die Bildanalyseund auf der Seite Konzepte.

Unterstützte Bildformate

Die Bildanalyse funktioniert auf Bildern, die die folgenden Anforderungen erfüllen:

  • Das Bild muss im JPEG-, PNG-, GIF-, BMP-, WEBP-, ICO-, TIFF- oder MPO-Format angezeigt werden.
  • Die Dateigröße des Bilds muss kleiner als 20 MB sein.
  • Die Abmessungen des Bilds müssen größer als 50 x 50 Pixel und kleiner als 16.000 x 16.000 Pixel sein.

ImageAnalysisClient

Die ImageAnalysisClient ist die primäre Schnittstelle für Entwickler, die mit dem Bildanalysedienst interagieren. Sie dient als Gateway, von dem aus alle Interaktionen mit der Bibliothek auftreten.

Beispiele

Authentifizieren des Clients

Im Folgenden finden Sie ein Beispiel zum Erstellen einer ImageAnalysisClient Instanz mithilfe einer schlüsselbasierten Authentifizierung.

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

Erstellen von ImageAnalysisClient mit einer Microsoft Entra ID-Anmeldeinformationen

Die Clientabonnementschlüsselauthentifizierung wird in den meisten Beispielen in diesem Leitfaden für die ersten Schritte verwendet, Sie können sich jedoch auch mit der Microsoft Entra-ID (vormals Azure Active Directory) mithilfe der [Azure Identity Library][azure_identity] authentifizieren. Um den unten angezeigten [DefaultAzureCredential][azure_identity_dac]-Anbieter oder andere Anmeldeinformationsanbieter zu verwenden, die mit dem Azure SDK bereitgestellt werden, installieren Sie bitte das Azure.Identity-Paket:

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

const client = new ImageAnalysisClient(endpoint, credential);

Analysieren eines Bilds aus der URL

Im folgenden Beispiel wird veranschaulicht, wie ein Bild mithilfe der Bildanalyse-Clientbibliothek für JavaScript analysiert wird.

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

Analysieren eines Bilds aus einer lokalen Datei

In diesem Beispiel analysieren wir ein Bild aus einer lokalen Datei mithilfe der Image Analysis-Clientbibliothek für 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();

Extrahieren von Text aus einer Bild-URL

In diesem Beispiel wird veranschaulicht, wie gedruckter oder handgeschriebener Text für die Bilddatei sample.jpg mithilfe des ImageAnalysisClient extrahiert wird. Der Methodenaufruf gibt ein ImageAnalysisResult -Objekt zurück. Die ReadResult-Eigenschaft für das zurückgegebene Objekt enthält eine Liste von Textzeilen und ein umgebendes Polygon, das jede Textzeile umgibt. Für jede Zeile gibt sie auch eine Liste von Wörtern in der Textzeile und ein umgebendes Polygon um jedes Wort zurück.

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

Fehlerbehebung

Protokollierung

Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert werden:

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

setLogLevel("info");

Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in den @azure/Logger-Paketdokumenten.

Nächste Schritte

Sehen Sie sich die Beispiele Verzeichnis an, um detaillierte Beispiele zur Verwendung der Clientbibliotheken zu finden.

Beitragend

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.