Bagikan melalui


Lakukan pengambilan gambar menggunakan penyematan multimodal (versi 4.0)

API Penyematan Multimodal memungkinkan vektorisasi gambar dan kueri teks. Mereka mengonversi gambar menjadi koordinat dalam ruang vektor multi-dimensi. Kemudian, kueri teks masuk juga dapat dikonversi ke vektor, dan gambar dapat dicocokkan dengan teks berdasarkan kedekatan semantik. Ini memungkinkan pengguna untuk mencari sekumpulan gambar menggunakan teks, tanpa perlu menggunakan tag gambar atau metadata lainnya. Kedekatan semantik sering menghasilkan hasil yang lebih baik dalam pencarian.

2024-02-01 API menyertakan model multibahasa yang mendukung pencarian teks dalam 102 bahasa. Model asli khusus bahasa Inggris masih tersedia, tetapi tidak dapat dikombinasikan dengan model baru dalam indeks pencarian yang sama. Jika Anda mem-vektorisasi teks dan gambar menggunakan model khusus bahasa Inggris, vektor ini tidak akan kompatibel dengan teks multibahasa dan vektor gambar.

Penting

API ini hanya tersedia di wilayah geografis tertentu. Lihat Ketersediaan wilayah.

Prasyarat

  • Langganan Azure - Buat langganan secara gratis
  • Setelah Anda memiliki langganan Azure, buat sumber daya Computer Vision di portal Azure untuk mendapatkan kunci dan titik akhir Anda. Pastikan untuk membuatnya di salah satu wilayah geografis yang didukung: lihat Ketersediaan wilayah.
    • Setelah menyebar, pilih Buka sumber daya. Salin kunci dan titik akhir ke lokasi sementara untuk digunakan nanti.

Mencoba penyematan Multimodal

Anda dapat mencoba fitur Penyematan Multimodal dengan cepat dan mudah di browser Anda menggunakan Vision Studio.

Penting

Pengalaman Vision Studio dibatasi hingga 500 gambar. Untuk menggunakan set gambar yang lebih besar, buat aplikasi pencarian Anda sendiri menggunakan API dalam panduan ini.

Memanggil API Gambar Vektorisasi

retrieval:vectorizeImage API memungkinkan Anda mengonversi data gambar menjadi vektor. Untuk memanggilnya, buat perubahan berikut pada perintah cURL di bawah ini:

  1. Ganti <endpoint> dengan titik akhir Azure AI Vision Anda.
  2. Ganti <subscription-key> dengan kunci Azure AI Vision Anda.
  3. Di isi permintaan, atur "url" ke URL gambar jarak jauh yang ingin Anda gunakan.
  4. Secara opsional, ubah parameter ke model-version versi yang lebih lama. 2022-04-11 adalah model warisan yang hanya mendukung teks bahasa Inggris. Gambar dan teks yang di-vektorisasi dengan model tertentu tidak kompatibel dengan model lain, jadi pastikan untuk menggunakan model yang sama untuk keduanya.
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'
}"

Untuk mem-vektorisasi gambar lokal, Anda akan meletakkan data biner di isi permintaan HTTP.

Panggilan API mengembalikan objek JSON vektor , yang menentukan koordinat gambar di ruang vektor dimensi tinggi.

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

Memanggil API Teks Vektorisasi

retrieval:vectorizeText API memungkinkan Anda mengonversi string teks menjadi vektor. Untuk memanggilnya, buat perubahan berikut pada perintah cURL di bawah ini:

  1. Ganti <endpoint> dengan titik akhir Azure AI Vision Anda.
  2. Ganti <subscription-key> dengan kunci Azure AI Vision Anda.
  3. Di isi permintaan, atur "text" ke contoh istilah pencarian yang ingin Anda gunakan.
  4. Secara opsional, ubah parameter ke model-version versi yang lebih lama. 2022-04-11 adalah model warisan yang hanya mendukung teks bahasa Inggris. Gambar dan teks yang di-vektorisasi dengan model tertentu tidak kompatibel dengan model lain, jadi pastikan untuk menggunakan model yang sama untuk keduanya.
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'
}"

Panggilan API mengembalikan objek JSON vektor , yang menentukan koordinat string teks di ruang vektor dimensi tinggi.

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

Menghitung kesamaan vektor

Kesamaan kosinus adalah metode untuk mengukur kesamaan dua vektor. Dalam skenario pengambilan gambar, Anda akan membandingkan vektor kueri pencarian dengan vektor setiap gambar. Gambar yang berada di atas ambang kesamaan tertentu kemudian dapat dikembalikan sebagai hasil pencarian.

Contoh kode berikut menghitung kesamaan kosinus antara dua vektor. Terserah Anda untuk memutuskan ambang batas kesamaan apa yang akan digunakan untuk mengembalikan gambar sebagai hasil pencarian.

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

Langkah berikutnya

Konsep pengambilan gambar