Delen via


Azure AI Vision Image Analysis-clientbibliotheek voor JavaScript - versie 1.0.0-beta.3

De Image Analysis-service biedt AI-algoritmen voor het verwerken van afbeeldingen en het retourneren van informatie over hun inhoud. In één serviceaanroep kunt u een of meer visuele functies uit de afbeelding extraheren, waaronder het ophalen van een bijschrift voor de afbeelding, het extraheren van tekst die wordt weergegeven in de afbeelding (OCR) en het detecteren van objecten. Zie Overzicht van afbeeldingsanalyseen de pagina Concepten voor meer informatie over de service en de ondersteunde visuele functies.

Gebruik de clientbibliotheek voor afbeeldingsanalyse om het volgende te doen:

  • Verifiëren op basis van de service
  • Instellen welke functies u wilt extraheren
  • Een afbeelding uploaden voor analyse of een afbeeldings-URL verzenden
  • Het analyseresultaat ophalen

Productdocumentatie | Voorbeelden | Vision Studio | API-referentiedocumentatie | Package (npm) | SDK-broncode

Slag

Momenteel ondersteunde omgevingen

Zie ons ondersteuningsbeleid voor meer informatie.

Voorwaarden

  • Een Azure-abonnement.
  • Een Computer Vision-resource in uw Azure-abonnement.
    • U hebt de sleutel en het eindpunt van deze resource nodig om te verifiëren bij de service.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen en later een upgrade uit te voeren naar een betaalde laag voor productie.
    • Als u afbeeldingsanalyse wilt uitvoeren met de Caption- of Dense Captions-functies, moet de Azure-resource afkomstig zijn van een van de volgende gpu-ondersteunde regio's: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europeof West US.

Het @azure-rest/ai-vision-image-analysis-pakket installeren

Installeer de image analysis-clientbibliotheek voor JavaScript met npm:

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

Browserondersteuning

JavaScript-bundel

Als u deze clientbibliotheek in de browser wilt gebruiken, moet u eerst een bundelaar gebruiken. Raadpleeg onze bundeldocumentatievoor meer informatie over hoe u dit doet.

Sleutelbegrippen

Nadat u een ImageAnalysisClienthebt geïnitialiseerd, moet u een of meer visuele functies selecteren die u wilt analyseren. De opties worden opgegeven door de enumklasse VisualFeatures. De volgende functies worden ondersteund:

  1. VisualFeatures.Caption: (Voorbeelden | Voorbeelden) Genereer een door mensen leesbare zin waarin de inhoud van een afbeelding wordt beschreven.
  2. VisualFeatures.Read: (Voorbeelden | Voorbeelden) Ook wel bekend als Optical Character Recognition (OCR). Gedrukte of handgeschreven tekst extraheren uit afbeeldingen.
  3. VisualFeatures.DenseCaptions: Dense Captions biedt meer details door bijschriften van één zin te genereren voor maximaal 10 verschillende regio's in de afbeelding, inclusief een voor de hele afbeelding.
  4. VisualFeatures.Tags: Inhoudstags extraheren voor duizenden herkenbare objecten, levende wezens, landschappen en acties die in afbeeldingen worden weergegeven.
  5. VisualFeatures.Objects: Objectdetectie. Dit is vergelijkbaar met taggen, maar gericht op het detecteren van fysieke objecten in de afbeelding en het retourneren van hun locatie.
  6. VisualFeatures.SmartCrops: wordt gebruikt om een representatieve subregio van de afbeelding te vinden voor het genereren van miniaturen, met prioriteit die wordt gegeven om gezichten op te nemen.
  7. VisualFeatures.People: zoek personen in de afbeelding en retourneer hun locatie.

Zie Overzicht van afbeeldingsanalyseen de pagina Concepten voor meer informatie over deze functies.

Ondersteunde afbeeldingsindelingen

Afbeeldingsanalyse werkt op afbeeldingen die voldoen aan de volgende vereisten:

  • De afbeelding moet worden weergegeven in JPEG-, PNG-, GIF-, BMP-, WEBP-, ICO-, TIFF- of MPO-indeling
  • De bestandsgrootte van de afbeelding moet kleiner zijn dan 20 MEGABYTES (MB)
  • De afmetingen van de afbeelding moeten groter zijn dan 50 x 50 pixels en kleiner dan 16.000 x 16.000 pixels

ImageAnalysisClient

De ImageAnalysisClient is de primaire interface voor ontwikkelaars die interactie hebben met de Image Analysis-service. Deze fungeert als de gateway waaruit alle interactie met de bibliotheek plaatsvindt.

Voorbeelden

De client verifiëren

Hier volgt een voorbeeld van het maken van een ImageAnalysisClient exemplaar met behulp van een verificatie op basis van een sleutel.

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

ImageAnalysisClient maken met een Microsoft Entra ID-referentie

Verificatie van clientabonnementssleutels wordt gebruikt in de meeste voorbeelden in deze introductiehandleiding, maar u kunt zich ook verifiëren met Microsoft Entra ID (voorheen Azure Active Directory) met behulp van de [Azure Identity library][azure_identity]. Als u de onderstaande provider [DefaultAzureCredential][azure_identity_dac] wilt gebruiken, of andere referentieproviders die zijn opgegeven met de Azure SDK, installeert u het Pakket Azure.Identity:

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

const client = new ImageAnalysisClient(endpoint, credential);

Een afbeelding van URL analyseren

In het volgende voorbeeld ziet u hoe u een afbeelding analyseert met behulp van de clientbibliotheek voor Afbeeldingsanalyse voor 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();

Een afbeelding uit een lokaal bestand analyseren

In dit voorbeeld analyseren we een afbeelding uit een lokaal bestand met behulp van de clientbibliotheek voor Afbeeldingsanalyse voor 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();

Tekst extraheren uit een afbeeldings-URL

In dit voorbeeld ziet u hoe u gedrukte of handgeschreven tekst voor het afbeeldingsbestand kunt extraheren sample.jpg met behulp van ImageAnalysisClient. De methodeaanroep retourneert een ImageAnalysisResult-object. De eigenschap ReadResult op het geretourneerde object bevat een lijst met tekstregels en een begrenzings veelhoek rond elke tekstregel. Voor elke regel wordt ook een lijst met woorden in de tekstregel en een begrenzingsveelhoek rond elk woord geretourneerd.

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

Probleemoplossing

Logboekregistratie

Het inschakelen van logboekregistratie kan helpen nuttige informatie over fouten te ontdekken. Als u een logboek met HTTP-aanvragen en -antwoorden wilt zien, stelt u de omgevingsvariabele AZURE_LOG_LEVEL in op info. U kunt logboekregistratie ook tijdens runtime inschakelen door setLogLevel aan te roepen in de @azure/logger:

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

setLogLevel("info");

Voor meer gedetailleerde instructies over het inschakelen van logboeken, kunt u de @azure/logger pakketdocumentenbekijken.

Volgende stappen

Bekijk de voorbeelden map voor gedetailleerde voorbeelden die laten zien hoe u de clientbibliotheken gebruikt.

Bijdragen

Als u een bijdrage wilt leveren aan deze bibliotheek, leest u de gids voor bijdragen voor meer informatie over het bouwen en testen van de code.