Sdílet prostřednictvím


Načítání obrázků pomocí multimodálních vkládání (verze 4.0)

Rozhraní API multimodálních vkládání umožňují vektorizaci obrázků a textových dotazů. Převedou obrázky na souřadnice v multidimenzionálním vektorovém prostoru. Příchozí textové dotazy lze také převést na vektory a obrázky se dají shodovat s textem na základě sémantické blízkosti. To uživateli umožňuje prohledávat sadu obrázků pomocí textu, aniž by museli používat značky obrázků nebo jiná metadata. Sémantická blízkost často vede k lepším výsledkům hledání.

Rozhraní 2024-02-01 API obsahuje vícejazyčný model, který podporuje vyhledávání textu v 102 jazycích. Původní anglický model je stále dostupný, ale nejde ho kombinovat s novým modelem ve stejném indexu vyhledávání. Pokud jste vektorizovali text a obrázky pomocí anglického modelu, nebudou tyto vektory kompatibilní s vícejazyčným textem a vektory obrázků.

Důležité

Tato rozhraní API jsou dostupná pouze v určitých geografických oblastech. Viz Dostupnost oblastí.

Požadavky

Vyzkoušení multimodálních vkládání

Funkci Multimodal embeddings si můžete vyzkoušet rychle a snadno v prohlížeči pomocí nástroje Vision Studio.

Důležité

Prostředí Vision Studio je omezené na 500 obrázků. Pokud chcete použít větší sadu obrázků, vytvořte vlastní vyhledávací aplikaci pomocí rozhraní API v této příručce.

Volání rozhraní API pro vektorizaci obrázků

Rozhraní retrieval:vectorizeImage API umožňuje převést data obrázku na vektor. Pokud ho chcete volat, proveďte následující změny příkazu cURL níže:

  1. Nahraďte <endpoint> koncovým bodem služby Azure AI Vision.
  2. Nahraďte <subscription-key> klíčem Azure AI Vision.
  3. V textu požadavku nastavte "url" adresu URL vzdáleného obrázku, který chcete použít.
  4. Volitelně můžete parametr změnit model-version na starší verzi. 2022-04-11 je starší verze modelu, který podporuje pouze anglický text. Obrázky a text, které jsou vektorizovány s určitým modelem, nejsou kompatibilní s jinými modely, proto nezapomeňte pro oba použít stejný model.
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'
}"

Pokud chcete vektorizovat místní obrázek, vložte binární data do textu požadavku HTTP.

Volání rozhraní API vrátí vektorový objekt JSON, který definuje souřadnice obrázku ve vysocerozměrném vektorovém prostoru.

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

Volání rozhraní API pro vektorizaci textu

Rozhraní retrieval:vectorizeText API umožňuje převést textový řetězec na vektor. Pokud ho chcete volat, proveďte následující změny příkazu cURL níže:

  1. Nahraďte <endpoint> koncovým bodem služby Azure AI Vision.
  2. Nahraďte <subscription-key> klíčem Azure AI Vision.
  3. V textu požadavku nastavte "text" ukázkový hledaný termín, který chcete použít.
  4. Volitelně můžete parametr změnit model-version na starší verzi. 2022-04-11 je starší verze modelu, který podporuje pouze anglický text. Obrázky a text, které jsou vektorizovány s určitým modelem, nejsou kompatibilní s jinými modely, proto nezapomeňte pro oba použít stejný model.
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'
}"

Volání rozhraní API vrátí vektorový objekt JSON, který definuje souřadnice textového řetězce ve vysokorozměrném vektorovém prostoru.

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

Výpočet podobnosti vektorů

Kosinus podobnost je metoda měření podobnosti dvou vektorů. Ve scénáři načítání obrázků porovnáte vektor vyhledávacího dotazu s vektorem každého obrázku. Obrázky, které jsou nad určitou prahovou hodnotou podobnosti, se pak dají vrátit jako výsledky hledání.

Následující příklad kódu vypočítá kosinus podobnost mezi dvěma vektory. Je na vás, abyste se rozhodli, jakou prahovou hodnotu podobnosti použít pro vrácení obrázků jako výsledků hledání.

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

Další kroky

Koncepty načítání obrázků