Udostępnij za pośrednictwem


Biblioteka klienta analizy obrazów usługi Azure AI Vision dla języka JavaScript — wersja 1.0.0-beta.3

Usługa Analizy obrazów udostępnia algorytmy sztucznej inteligencji do przetwarzania obrazów i zwracania informacji o ich zawartości. W ramach pojedynczego wywołania usługi można wyodrębnić jedną lub więcej funkcji wizualnych z obrazu jednocześnie, w tym uzyskanie podpisu dla obrazu, wyodrębnianie tekstu wyświetlanego na obrazie (OCR) i wykrywanie obiektów. Aby uzyskać więcej informacji na temat usługi i obsługiwanych funkcji wizualnych, zobacz Omówienie analizy obrazówi stronę Pojęcia.

Użyj biblioteki klienta Analizy obrazów, aby:

  • Uwierzytelnianie w usłudze
  • Ustawianie funkcji, które chcesz wyodrębnić
  • Przekazywanie obrazu do analizy lub wysyłanie adresu URL obrazu
  • Pobieranie wyniku analizy

Dokumentacja produktu | Przykłady | Vision Studio | DOKUMENTACJA interfejsu API | Package (npm) zestawu SDK |

Wprowadzenie

Obecnie obsługiwane środowiska

  • wersje Node.js LTS
  • Najnowsze wersje przeglądarek Safari, Chrome, Edge i Firefox.

Aby uzyskać więcej informacji, zobacz nasze zasad pomocy technicznej.

Warunki wstępne

  • Subskrypcja platformy Azure .
  • Zasób przetwarzania obrazów w ramach subskrypcji platformy Azure.
    • Klucz i punkt końcowy z tego zasobu będą potrzebne do uwierzytelniania w usłudze.
    • Możesz użyć bezpłatnej warstwy cenowej (F0), aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.
    • Należy pamiętać, że aby uruchomić analizę obrazów z funkcjami Caption lub Dense Captions, zasób platformy Azure musi pochodzić z jednego z następujących regionów obsługiwanych przez procesor GPU: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europelub West US.

Instalowanie pakietu @azure-rest/ai-vision-image-analysis

Zainstaluj bibliotekę klienta Analizy obrazów dla języka JavaScript przy użyciu npm:

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

Obsługa przeglądarki

Pakiet JavaScript

Aby użyć tej biblioteki klienta w przeglądarce, najpierw należy użyć pakietu. Aby uzyskać szczegółowe informacje o tym, jak to zrobić, zapoznaj się z naszą dokumentacją dotyczącą tworzenia pakietów .

Kluczowe pojęcia

Po zainicjowaniu ImageAnalysisClientnależy wybrać co najmniej jedną funkcję wizualną do przeanalizowania. Opcje są określane przez klasę wyliczenia VisualFeatures. Obsługiwane są następujące funkcje:

  1. VisualFeatures.Caption: ( przykładyprzykłady | ) Wygeneruj czytelne dla człowieka zdanie opisujące zawartość obrazu.
  2. VisualFeatures.Read: ( przykładyprzykłady | ) znane również jako optyczne rozpoznawanie znaków (OCR). Wyodrębnij tekst drukowany lub odręczny z obrazów.
  3. VisualFeatures.DenseCaptions: Napisy gęste zawierają więcej szczegółów, generując napisy jednodniowe dla maksymalnie 10 różnych regionów na obrazie, w tym jeden dla całego obrazu.
  4. VisualFeatures.Tags: wyodrębnianie tagów zawartości dla tysięcy rozpoznawalnych obiektów, żywych istot, scenerii i akcji wyświetlanych na obrazach.
  5. VisualFeatures.Objects: wykrywanie obiektów. Jest to podobne do tagowania, ale koncentruje się na wykrywaniu obiektów fizycznych na obrazie i zwracaniu ich lokalizacji.
  6. VisualFeatures.SmartCrops: służy do znajdowania reprezentatywnego podregionu obrazu na potrzeby generowania miniatur, z priorytetem dla dołączania twarzy.
  7. VisualFeatures.People: znajdź osoby na obrazie i zwróć ich lokalizację.

Aby uzyskać więcej informacji na temat tych funkcji, zobacz Omówienie analizy obrazówi stronę Pojęcia.

Obsługiwane formaty obrazów

Analiza obrazów działa na obrazach spełniających następujące wymagania:

  • Obraz musi być przedstawiony w formacie JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF lub MPO
  • Rozmiar pliku obrazu musi być mniejszy niż 20 megabajtów (MB)
  • Wymiary obrazu muszą być większe niż 50 x 50 pikseli i mniejsze niż 16 000 x 16 000 pikseli

ImageAnalysisClient

ImageAnalysisClient jest podstawowym interfejsem dla deweloperów korzystających z usługi Analizy obrazów. Służy jako brama, z której nastąpi cała interakcja z biblioteką.

Przykłady

Uwierzytelnianie klienta

Oto przykład tworzenia wystąpienia ImageAnalysisClient przy użyciu uwierzytelniania opartego na kluczach.

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

Tworzenie elementu ImageAnalysisClient przy użyciu poświadczeń identyfikatora entra firmy Microsoft

Uwierzytelnianie klucza subskrypcji klienta jest używane w większości przykładów w tym przewodniku wprowadzającym, ale można również uwierzytelniać się za pomocą identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory) przy użyciu [biblioteki tożsamości platformy Azure][azure_identity]. Aby użyć dostawcy [DefaultAzureCredential][azure_identity_dac] pokazanego poniżej lub innych dostawców poświadczeń dostarczonych z zestawem Azure SDK, zainstaluj pakiet Azure.Identity:

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

const client = new ImageAnalysisClient(endpoint, credential);

Analizowanie obrazu z adresu URL

W poniższym przykładzie pokazano, jak analizować obraz przy użyciu biblioteki klienta Analizy obrazów dla języka 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();

Analizowanie obrazu z pliku lokalnego

W tym przykładzie przeanalizujemy obraz z pliku lokalnego przy użyciu biblioteki klienta Analizy obrazów dla języka 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();

Wyodrębnianie tekstu z adresu URL obrazu

W tym przykładzie pokazano, jak wyodrębnić tekst drukowany lub ręcznie napisany dla pliku obrazu sample.jpg przy użyciu klasy ImageAnalysisClient. Wywołanie metody zwraca obiekt ImageAnalysisResult. Właściwość ReadResult zwróconego obiektu zawiera listę wierszy tekstu i wielokąt ograniczenia wokół każdego wiersza tekstu. Dla każdego wiersza zwraca również listę wyrazów w wierszu tekstu i wielokąt ograniczenia wokół każdego słowa.

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

Rozwiązywanie problemów

Wyrąb

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:

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

setLogLevel("info");

Aby uzyskać bardziej szczegółowe instrukcje dotyczące włączania dzienników, zapoznaj się z dokumentami dotyczącymi pakietów @azure/rejestratora.

Następne kroki

Zapoznaj się z przykładami katalogu, aby zapoznać się ze szczegółowymi przykładami, które pokazują, jak używać bibliotek klienckich.

Przyczyniając się

Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik dotyczący współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.