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 niektórych regionach geograficznych. Zobacz Dostępność regionów.
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ć go w jednym z obsługiwanych regionów geograficznych: zobacz Dostępność regionów.
- 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:
- Zastąp
<endpoint>
element punktem końcowym usługi Azure AI Vision. - Zastąp
<subscription-key>
element kluczem usługi Azure AI Vision. - W treści żądania ustaw
"url"
adres URL obrazu zdalnego, którego chcesz użyć. - 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:
- Zastąp
<endpoint>
element punktem końcowym usługi Azure AI Vision. - Zastąp
<subscription-key>
element kluczem usługi Azure AI Vision. - W treści żądania ustaw
"text"
na przykładowy termin wyszukiwania, którego chcesz użyć. - 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);
}