Pobieranie obrazów przy użyciu osadzania wielomodalnego (wersja 4.0)

Interfejsy API osadzania wielomodalnego umożliwiają wektoryzacja obrazów i zapytań tekstowych. Konwertują obrazy na współrzędne w przestrzeni wektorów wielowymiarowych. Następnie przychodzące zapytania tekstowe można również konwertować na wektory, a obrazy można dopasować do tekstu na podstawie bliskości semantycznej. Dzięki temu użytkownik może przeszukiwać zestaw obrazów przy użyciu tekstu bez konieczności używania tagów obrazów lub innych metadanych. Bliskość semantyczna często daje lepsze wyniki w wyszukiwaniu.

Interfejs 2024-02-01 API zawiera wielojęzyczny model, który obsługuje wyszukiwanie tekstu w 102 językach. Oryginalny model tylko w języku angielskim jest nadal dostępny, ale nie można go połączyć z nowym modelem w tym samym indeksie wyszukiwania. W przypadku wektoryzowanego tekstu i obrazów przy użyciu modelu tylko w języku angielskim te wektory nie będą zgodne z wielojęzycznymi wektorami tekstu i obrazów.

Ważne

Te interfejsy API są dostępne tylko w następujących regionach geograficznych: Wschodnie stany USA, Francja Środkowa, Korea Środkowa, Europa Północna, Azja Południowo-Wschodnia, Europa Zachodnia, Zachodnie stany USA.

Wymagania wstępne

  • Subskrypcja platformy Azure — utwórz bezpłatnie
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób przetwarzanie obrazów w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Pamiętaj, aby utworzyć ją w jednym z dozwolonych regionów geograficznych: Wschodnie stany USA, Francja Środkowa, Korea Środkowa, Europa Północna, Azja Południowo-Wschodnia, Europa Zachodnia, Zachodnie stany USA.
    • Po wdrożeniu wybierz pozycję Przejdź do zasobu. Skopiuj klucz i punkt końcowy do lokalizacji tymczasowej do późniejszego użycia.

Wypróbuj osadzanie wielomodalne

Możesz szybko i łatwo wypróbować funkcję osadzania wielomodalnego w przeglądarce przy użyciu programu Vision Studio.

Ważne

Środowisko usługi Vision Studio jest ograniczone do 500 obrazów. Aby użyć większego zestawu obrazów, utwórz własną aplikację wyszukiwania przy użyciu interfejsów API w tym przewodniku.

Wywoływanie interfejsu API wektoryzacji obrazu

Interfejs retrieval:vectorizeImage API umożliwia konwertowanie danych obrazu na wektor. Aby go wywołać, wprowadź następujące zmiany w poleceniu cURL poniżej:

  1. Zastąp <endpoint> element punktem końcowym usługi Azure AI Vision.
  2. Zastąp <subscription-key> element kluczem usługi Azure AI Vision.
  3. W treści żądania ustaw "url" adres URL obrazu zdalnego, którego chcesz użyć.
  4. Opcjonalnie zmień parametr na model-version starszą wersję. 2022-04-11 to starszy model, który obsługuje tylko tekst w języku angielskim. Obrazy i tekst, które są wektoryzowane z określonym modelem, nie są zgodne z innymi modelami, dlatego upewnij się, że używasz tego samego modelu dla obu tych modeli.
curl.exe -v -X POST "<endpoint>/computervision/retrieval:vectorizeImage?api-version=2024-02-01&model-version=2023-04-15" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription-key>" --data-ascii "
{
'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'
}"

Aby wektoryzować obraz lokalny, należy umieścić dane binarne w treści żądania HTTP.

Wywołanie interfejsu API zwraca obiekt JSON wektora , który definiuje współrzędne obrazu w przestrzeni wektorowej o dużej wymiarach.

{ 
  "modelVersion": "2022-04-11", 
  "vector": [ -0.09442752, -0.00067171326, -0.010985051, ... ] 
}

Wywoływanie interfejsu API wektoryzacji tekstu

Interfejs retrieval:vectorizeText API umożliwia konwertowanie ciągu tekstowego na wektor. Aby go wywołać, wprowadź następujące zmiany w poleceniu cURL poniżej:

  1. Zastąp <endpoint> element punktem końcowym usługi Azure AI Vision.
  2. Zastąp <subscription-key> element kluczem usługi Azure AI Vision.
  3. W treści żądania ustaw "text" na przykładowy termin wyszukiwania, którego chcesz użyć.
  4. Opcjonalnie zmień parametr na model-version starszą wersję. 2022-04-11 to starszy model, który obsługuje tylko tekst w języku angielskim. Obrazy i tekst, które są wektoryzowane z określonym modelem, nie są zgodne z innymi modelami, dlatego upewnij się, że używasz tego samego modelu dla obu tych modeli.
curl.exe -v -X POST "<endpoint>/computervision/retrieval:vectorizeText?api-version=2024-02-01&model-version=2023-04-15" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription-key>" --data-ascii "
{
'text':'cat jumping'
}"

Wywołanie interfejsu API zwraca obiekt JSON wektora , który definiuje współrzędne ciągu tekstowego w przestrzeni wektorowej o dużej wymiarach.

{ 
  "modelVersion": "2022-04-11", 
  "vector": [ -0.09442752, -0.00067171326, -0.010985051, ... ] 
}

Obliczanie podobieństwa wektorów

Podobieństwo cosinus jest metodą pomiaru podobieństwa dwóch wektorów. W scenariuszu pobierania obrazu porównasz wektor zapytania wyszukiwania z wektorem każdego obrazu. Obrazy, które są powyżej określonego progu podobieństwa, mogą być zwracane jako wyniki wyszukiwania.

Poniższy przykładowy kod oblicza podobieństwo cosinusu między dwoma wektorami. Decydujesz, jaki próg podobieństwa ma być używany do zwracania obrazów jako wyników wyszukiwania.

public static float GetCosineSimilarity(float[] vector1, float[] vector2)
{ 
    float dotProduct = 0; 
    int length = Math.Min(vector1.Length, vector2.Length); 
    for (int i = 0; i < length; i++) 
    { 
        dotProduct += vector1[i] * vector2[i]; 
    } 
    float magnitude1 = Math.Sqrt(vector1.Select(x => x * x).Sum());
    float magnitude2 = Math.Sqrt(vector2.Select(x => x * x).Sum());
    
    return dotProduct / (magnitude1 * magnitude2);
}

Następne kroki

Pojęcia dotyczące pobierania obrazów