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
- Předplatné Azure: Můžete si ho vytvořit zdarma.
- Jakmile budete mít předplatné Azure, vytvořte na webu Azure Portal prostředek Počítačové zpracování obrazu, abyste získali klíč a koncový bod. Nezapomeňte ho vytvořit v jedné z podporovaných geografických oblastí: viz Dostupnost oblastí.
- Po nasazení vyberte Přejít k prostředku. Zkopírujte klíč a koncový bod do dočasného umístění, abyste ho mohli později použít.
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:
- Nahraďte
<endpoint>
koncovým bodem služby Azure AI Vision. - Nahraďte
<subscription-key>
klíčem Azure AI Vision. - V textu požadavku nastavte
"url"
adresu URL vzdáleného obrázku, který chcete použít. - 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:
- Nahraďte
<endpoint>
koncovým bodem služby Azure AI Vision. - Nahraďte
<subscription-key>
klíčem Azure AI Vision. - V textu požadavku nastavte
"text"
ukázkový hledaný termín, který chcete použít. - 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);
}