Tugas MediaPipe Image Embedder memungkinkan Anda membuat representasi numerik dari gambar yang berguna dalam menyelesaikan berbagai tugas gambar berbasis ML. Fungsi ini sering digunakan untuk membandingkan kesamaan dua gambar menggunakan teknik perbandingan matematika seperti Cosine Similarity. Tugas ini beroperasi pada data gambar dengan model machine learning (ML) sebagai data statis atau streaming berkelanjutan, dan menghasilkan representasi numerik dari data gambar sebagai daftar vektor fitur dimensi tinggi, yang juga dikenal sebagai vektor embedding, baik dalam bentuk floating point atau bentuk terkuantisasi.
Mulai
Mulai gunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform target Anda. Panduan khusus platform ini akan memandu Anda dalam menerapkan dasar tugas ini, menggunakan model yang direkomendasikan, dan memberikan contoh kode dengan opsi konfigurasi yang direkomendasikan:
- Android - Contoh kode - Panduan
- Python - Contoh kode - Panduan
- Web - Contoh kode - Panduan
Detail tugas
Bagian ini menjelaskan kemampuan, input, output, dan opsi konfigurasi tugas ini.
Fitur
- Pemrosesan gambar input - Pemrosesan mencakup rotasi gambar, pengubahan ukuran, normalisasi, dan konversi ruang warna.
- Wilayah minat - Menjalankan penyematan pada area gambar, bukan seluruh gambar.
- Komputasi kemiripan penyematan - Fungsi utilitas bawaan untuk menghitung kesamaan kosinus antara dua vektor fitur
- Kuantisasi - Mendukung kuantisasi skalar untuk vektor fitur.
Input tugas | Output tugas |
---|---|
Input dapat berupa salah satu jenis data berikut:
|
Penyemat Gambar menghasilkan daftar embedding yang terdiri dari:
|
Opsi konfigurasi
Tugas ini memiliki opsi konfigurasi berikut:
Nama Opsi | Deskripsi | Rentang Nilai | Nilai Default |
---|---|---|---|
running_mode |
Menetapkan mode berjalan untuk tugas. Ada tiga
mode: IMAGE: Mode untuk input gambar tunggal. VIDEO: Mode untuk frame video yang didekode. LIVE_STREAM: Mode untuk livestream data input, seperti dari kamera. Dalam mode ini, resultListener harus dipanggil untuk menyiapkan pemroses yang menerima hasil secara asinkron. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
l2_normalize |
Apakah akan menormalisasi vektor fitur yang ditampilkan dengan norma L2. Gunakan opsi ini hanya jika model belum berisi TFLite Op L2_NORMALIZATION native. Dalam kebanyakan kasus, hal ini sudah terjadi dan normalisasi L2 dicapai melalui inferensi TFLite tanpa memerlukan opsi ini. | Boolean |
False |
quantize |
Apakah embedding yang ditampilkan harus dikuantisasi ke byte melalui kuantisasi skalar. Embedding secara implisit diasumsikan sebagai norma satuan dan oleh karena itu, setiap dimensi dijamin memiliki nilai dalam [-1.0, 1.0]. Gunakan opsi l2_normalize jika tidak demikian. | Boolean |
False |
result_callback |
Menetapkan pemroses hasil untuk menerima hasil embedding
secara asinkron saat Penyemat Gambar berada dalam mode
live stream. Hanya dapat digunakan saat mode lari disetel ke LIVE_STREAM |
T/A | Tidak ditetapkan |
Model
Image Embedder memerlukan model penyematan gambar untuk didownload dan disimpan di direktori project Anda. Mulailah dengan model default yang direkomendasikan untuk platform target saat Anda mulai mengembangkan aplikasi dengan tugas ini. Model lain yang tersedia biasanya melakukan kompromi antara persyaratan performa, akurasi, resolusi, dan resource, dan dalam beberapa kasus, menyertakan fitur tambahan.
Model MobileNetV3
Kelompok model ini menggunakan arsitektur MobileNet V3 dan dilatih menggunakan data ImageNet. Model ini menggunakan pengali 0,75 untuk kedalaman (jumlah fitur) di lapisan konvolusional untuk menyesuaikan trade off latensi akurasi. Selain itu, MobileNet V3 tersedia dalam dua ukuran berbeda, kecil dan besar, untuk menyesuaikan jaringan dengan kasus penggunaan resource rendah atau tinggi.
Nama model | Bentuk input | Jenis kuantisasi | Versions |
---|---|---|---|
MobileNet-V3 (kecil) | 224 x 224 | Tidak ada (float32) | Terbaru |
MobileNet-V3 (besar) | 224 x 224 | Tidak ada (float32) | Terbaru |
Tolok ukur tugas
Berikut adalah tolok ukur tugas untuk seluruh pipeline berdasarkan model terlatih di atas. Hasil latensi adalah latensi rata-rata di Pixel 6 yang menggunakan CPU / GPU.
Nama Model | Latensi CPU | Latensi GPU |
---|---|---|
MobileNet-V3 (kecil) | 3,94 md | 7,83 md |
MobileNet-V3 (besar) | 9,75 md | 9,08 md |