Çok modüllü eklemeleri kullanarak görüntü alma işlemi yapma (sürüm 4.0)
Multimodal embeddings API'leri, görüntülerin ve metin sorgularının vektörleştirilmesini sağlar. Görüntüleri çok boyutlu vektör uzayında koordinatlara dönüştürürler. Ardından, gelen metin sorguları vektörlere dönüştürülebilir ve görüntüler semantik yakınlık temelinde metinle eşleştirilebilir. Bu, kullanıcının resim etiketlerini veya diğer meta verileri kullanmaya gerek kalmadan metin kullanarak bir görüntü kümesinde arama yapmasına olanak tanır. Anlamsal yakınlık genellikle aramada daha iyi sonuçlar üretir.
API, 2024-02-01
102 dilde metin aramayı destekleyen çok dilli bir model içerir. Özgün yalnızca İngilizce modeli hala kullanılabilir, ancak aynı arama dizinindeki yeni modelle birleştirilemez. Yalnızca İngilizce modeli kullanarak metin ve görüntüleri vektörleştirdiyseniz, bu vektörler çok dilli metin ve görüntü vektörleriyle uyumlu olmayacaktır.
Önemli
Bu API'ler yalnızca belirli coğrafi bölgelerde kullanılabilir. Bkz. Bölge kullanılabilirliği.
Önkoşullar
- Azure aboneliği - Ücretsiz olarak oluşturun
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Görüntü İşleme kaynağı oluşturun. Desteklenen coğrafi bölgelerden birinde oluşturduğunuzdan emin olun: Bkz . Bölge kullanılabilirliği.
- Dağıtıldıktan sonra Kaynağa git'i seçin. Anahtarı ve uç noktayı daha sonra kullanmak üzere geçici bir konuma kopyalayın.
Çok modüllü eklemeleri deneyin
Multimodal embeddings özelliğini Vision Studio'yu kullanarak tarayıcınızda hızlı ve kolay bir şekilde deneyebilirsiniz.
Önemli
Vision Studio deneyimi 500 resimle sınırlıdır. Daha büyük bir görüntü kümesi kullanmak için bu kılavuzdaki API'leri kullanarak kendi arama uygulamanızı oluşturun.
Vectorize Image API'sini çağırma
API, retrieval:vectorizeImage
görüntünün verilerini vektöre dönüştürmenizi sağlar. Bunu çağırmak için aşağıdaki cURL komutunda aşağıdaki değişiklikleri yapın:
- değerini Azure AI Vision uç noktanızla değiştirin
<endpoint>
. - değerini Azure AI Vision anahtarınız ile değiştirin
<subscription-key>
. - İstek gövdesinde, kullanmak istediğiniz uzak görüntünün URL'sine ayarlayın
"url"
. - İsteğe bağlı olarak, parametresini
model-version
eski bir sürümle değiştirin.2022-04-11
yalnızca İngilizce metni destekleyen eski modeldir. Belirli bir modelle vektörleştirilen resimler ve metinler diğer modellerle uyumlu olmadığından her ikisi için de aynı modeli kullandığınızdan emin olun.
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://video2.skills-academy.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'
}"
Yerel görüntüyü vektörleştirmek için ikili verileri HTTP isteği gövdesine koyarsınız.
API çağrısı, görüntünün koordinatlarını yüksek boyutlu vektör alanında tanımlayan bir vektör JSON nesnesi döndürür.
{
"modelVersion": "2022-04-11",
"vector": [ -0.09442752, -0.00067171326, -0.010985051, ... ]
}
Vectorize Metin API'sini çağırma
API, retrieval:vectorizeText
bir metin dizesini vektöre dönüştürmenizi sağlar. Bunu çağırmak için aşağıdaki cURL komutunda aşağıdaki değişiklikleri yapın:
- değerini Azure AI Vision uç noktanızla değiştirin
<endpoint>
. - değerini Azure AI Vision anahtarınız ile değiştirin
<subscription-key>
. - İstek gövdesinde, kullanmak istediğiniz örnek arama terimine ayarlayın
"text"
. - İsteğe bağlı olarak, parametresini
model-version
eski bir sürümle değiştirin.2022-04-11
yalnızca İngilizce metni destekleyen eski modeldir. Belirli bir modelle vektörleştirilen resimler ve metinler diğer modellerle uyumlu olmadığından her ikisi için de aynı modeli kullandığınızdan emin olun.
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'
}"
API çağrısı, metin dizesinin koordinatlarını yüksek boyutlu vektör alanında tanımlayan bir vektör JSON nesnesi döndürür.
{
"modelVersion": "2022-04-11",
"vector": [ -0.09442752, -0.00067171326, -0.010985051, ... ]
}
Vektör benzerliğini hesaplama
Kosinüs benzerliği, iki vektör benzerliğini ölçmek için kullanılan bir yöntemdir. Görüntü alma senaryosunda, arama sorgusu vektörlerini her görüntünün vektörleriyle karşılaştıracaksınız. Belirli bir benzerlik eşiğinin üzerinde olan görüntüler arama sonuçları olarak döndürülebilir.
Aşağıdaki örnek kod, iki vektör arasındaki kosinüs benzerliğini hesaplar. Görüntüleri arama sonuçları olarak döndürmek için hangi benzerlik eşiğinin kullanılacağına karar vermek size kalmış.
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);
}