Aracılığıyla paylaş


JavaScript için Azure AI Vision Görüntü Analizi istemci kitaplığı - sürüm 1.0.0-beta.3

Görüntü Analizi hizmeti, görüntüleri işlemek ve içerikleri hakkında bilgi döndürmek için yapay zeka algoritmaları sağlar. Tek bir hizmet çağrısında, resim için resim yazısı alma, görüntüde gösterilen metni ayıklama (OCR) ve nesneleri algılama gibi bir veya daha fazla görsel özelliği görüntüden aynı anda ayıklayabilirsiniz. Hizmet ve desteklenen görsel özellikler hakkında daha fazla bilgi için Görüntü Analizine genel bakışve Kavramları sayfasına bakın.

Görüntü Analizi istemci kitaplığını kullanarak:

  • Hizmette kimlik doğrulaması
  • Ayıklamak istediğiniz özellikleri ayarlama
  • Analiz için görüntü yükleme veya resim URL'si gönderme
  • Analiz sonucunu alma

Ürün belgeleri | Örnekler | Vision Studio | API başvuru belgeleri | Paketi (npm) | SDK kaynak kodu

Başlarken

Şu anda desteklenen ortamlar

  • Node.js LTS sürümleri
  • Safari, Chrome, Edge ve Firefox'un en son sürümleri.

Daha fazla bilgi için bkz. destek ilkesi.

Önkoşullar

  • Azure aboneliği.
  • Azure aboneliğinizde bir Görüntü İşleme kaynağı.
    • Hizmette kimlik doğrulaması yapmak için bu kaynağın anahtarına ve uç noktasına ihtiyacınız olacaktır.
    • Hizmeti denemek için ücretsiz fiyatlandırma katmanını (F0) kullanabilir ve daha sonra üretim için ücretli bir katmana yükseltebilirsiniz.
    • Görüntü Analizi'ni Caption veya Dense Captions özellikleriyle çalıştırmak için Azure kaynağının aşağıdaki GPU destekli bölgelerden biri olması gerektiğini unutmayın: East US, France Central, Korea Central, North Europe, Southeast Asia, West Europeveya West US.

@azure-rest/ai-vision-image-analysis paketini yükleme

npmile JavaScript için Görüntü Analizi istemci kitaplığını yükleyin:

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

Tarayıcı desteği

JavaScript Paketi

Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl yapılacağının ayrıntıları için lütfenpaketleme belgelerimize bakın.

Temel kavramlar

bir ImageAnalysisClientbaşlatıldıktan sonra analiz etmek için bir veya daha fazla görsel özellik seçmeniz gerekir. Seçenekler VisualFeaturessabit listesi sınıfı tarafından belirtilir. Aşağıdaki özellikler desteklenir:

  1. VisualFeatures.Caption: (Örnekler | Örnekler) Görüntünün içeriğini açıklayan, okunabilir bir cümle oluşturun.
  2. VisualFeatures.Read: (Örnekler | Örnekler) Optik Karakter Tanıma (OCR) olarak da bilinir. Resimlerden yazdırılan veya el yazısı metinleri ayıklayın.
  3. VisualFeatures.DenseCaptions: Yoğun Açıklamalı Alt Yazılar, görüntüde 10'a kadar farklı bölge için tek cümlelik resim yazıları oluşturarak daha fazla ayrıntı sağlar ve görüntü tamamı için bir resim yazısı içerir.
  4. VisualFeatures.Tags: Binlerce tanınabilir nesnenin, canlının, manzaranın ve görüntülerde görünen eylemlerin içerik etiketlerini ayıklayın.
  5. VisualFeatures.Objects: Nesne algılama. Bu, etiketlemeye benzer, ancak görüntüdeki fiziksel nesneleri algılamaya ve konumlarını döndürmeye odaklanır.
  6. VisualFeatures.SmartCrops: Küçük resim oluşturma için resmin temsili bir alt bölgesini bulmak için kullanılır ve öncelik yüzleri içerecek şekilde verilir.
  7. VisualFeatures.People: Görüntüdeki kişileri bulun ve konumlarını geri gönderin.

Bu özellikler hakkında daha fazla bilgi için Görüntü Analizine genel bakışve Kavramları sayfasına bakın.

Desteklenen görüntü biçimleri

Görüntü Analizi, aşağıdaki gereksinimleri karşılayan görüntülerde çalışır:

  • Resim JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF veya MPO biçiminde gösterilmelidir
  • Görüntünün dosya boyutu 20 megabayttan (MB) küçük olmalıdır
  • Görüntünün boyutları 50 x 50 pikselden büyük ve 16.000 x 16.000 pikselden küçük olmalıdır

ImageAnalysisClient

ImageAnalysisClient, Görüntü Analizi hizmetiyle etkileşim kuran geliştiriciler için birincil arabirimdir. Kitaplıkla tüm etkileşimin gerçekleşeceği ağ geçidi görevi görür.

Örnekler

İstemcinin kimliğini doğrulama

Aşağıda anahtar tabanlı kimlik doğrulaması kullanarak ImageAnalysisClient örneği oluşturma örneği verilmiştır.

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

Microsoft Entra Id Kimlik Bilgileri ile ImageAnalysisClient Oluşturma

İstemci abonelik anahtarı kimlik doğrulaması, bu başlangıç kılavuzundaki örneklerin çoğunda kullanılır, ancak [Azure Kimlik kitaplığı][azure_identity] kullanarak Microsoft Entra Id (eski adıYla Azure Active Directory) ile de kimlik doğrulaması yapabilirsiniz. Aşağıda gösterilen [DefaultAzureCredential][azure_identity_dac] sağlayıcısını veya Azure SDK ile sağlanan diğer kimlik bilgisi sağlayıcılarını kullanmak için lütfen Azure.Identity paketini yükleyin:

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

const client = new ImageAnalysisClient(endpoint, credential);

URL'den görüntü analiz etme

Aşağıdaki örnek, JavaScript için Görüntü Analizi istemci kitaplığını kullanarak bir görüntüyü analiz etme işlemini gösterir.

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

Yerel dosyadan görüntü analiz etme

Bu örnekte, JavaScript için Görüntü Analizi istemci kitaplığını kullanarak yerel bir dosyadaki bir görüntüyü analiz edeceğiz.

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

Resim Url'sinden metin ayıklama

Bu örnekte, ImageAnalysisClient kullanılarak görüntü dosyası sample.jpg için yazdırılan veya el ile yazılmış metnin nasıl ayıklanması gösterilmektedir. Yöntem çağrısı bir ImageAnalysisResult nesnesi döndürür. Döndürülen nesnedeki ReadResult özelliği, metin satırlarının listesini ve her metin satırını çevreleyen sınırlayıcı çokgeni içerir. Her satır için, metin satırındaki sözcüklerin listesini ve her sözcüğü çevreleyen sınırlayıcı çokgeni de döndürür.

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

Sorun giderme

Günlük tutmak

Günlüğe kaydetmeyi etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için AZURE_LOG_LEVEL ortam değişkenini infoolarak ayarlayın. Alternatif olarak, @azure/loggersetLogLevel çağrılarak günlükler çalışma zamanında etkinleştirilebilir:

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

setLogLevel("info");

Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için@azure/günlükçü paketi belgelerine bakabilirsiniz.

Sonraki adımlar

İstemci kitaplıklarının nasıl kullanılacağını gösteren ayrıntılı örnekler için lütfen örnekleri dizinine göz atın.

Katkıda

Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.

  • JavaScript için Microsoft Azure SDK