Tugas MediaPipe Image Embedder memungkinkan Anda membuat representasi numerik gambar, yang berguna dalam menyelesaikan berbagai tugas gambar berbasis ML. Fungsi ini sering digunakan untuk membandingkan kemiripan dua gambar menggunakan teknik perbandingan matematika seperti Kemiripan Kosinus. Tugas ini beroperasi pada data gambar dengan model machine learning (ML) sebagai data statis atau streaming kontinu, dan menghasilkan representasi numerik dari data gambar sebagai daftar vektor fitur berdimensi tinggi, yang juga dikenal sebagai vektor penyematan, dalam bentuk floating point atau kuantisasi.
Mulai
Mulai gunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform target Anda. Panduan khusus platform ini akan memandu Anda dalam penerapan 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.
- Area minat - Melakukan penyematan pada area gambar, bukan seluruh gambar.
- Komputasi kemiripan penyematan - Fungsi utilitas bawaan untuk menghitung kemiripan kosinus antara dua vektor fitur
- Kuantisasi - Mendukung kuantisasi skalar untuk vektor fitur.
Input tugas | Output tugas |
---|---|
Input dapat berupa salah satu jenis data berikut:
|
Image Embedder menghasilkan daftar penyematan 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: GAMBAR: Mode untuk input gambar tunggal. VIDEO: Mode untuk frame video yang didekode. LIVE_STREAM: Mode untuk live stream data input, seperti dari kamera. Dalam mode ini, resultListener harus dipanggil untuk menyiapkan pemroses guna 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 Opsi TFLite L2_NORMALIZATION native. Pada umumnya, hal ini sudah terjadi dan normalisasi L2 akan dicapai melalui inferensi TFLite tanpa memerlukan opsi ini. | Boolean |
False |
quantize |
Apakah penyematan yang ditampilkan harus dikuantifikasi ke byte melalui kuantisasi skalar. Secara implisit, penyematan diasumsikan sebagai unit-norm dan oleh karena itu, dimensi apa pun 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 penyematan secara asinkron saat Penyematan Gambar berada dalam mode live stream. Hanya dapat digunakan jika mode berjalan 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 Anda saat Anda mulai mengembangkan dengan tugas ini. Model lain yang tersedia biasanya membuat kompromi antara performa, akurasi, resolusi, dan persyaratan resource, dan dalam beberapa kasus, menyertakan fitur tambahan.
Model MobileNetV3
Grup model ini menggunakan arsitektur MobileNet V3 dan dilatih menggunakan data ImageNet. Model ini menggunakan pengganda 0,75 untuk kedalaman (jumlah fitur) di lapisan konvolusi untuk menyesuaikan kompromi akurasi-latensi. 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 | Versi |
---|---|---|---|
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 |