Panduan tugas penyematan gambar

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.

Cobalah!

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:

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:
  • Gambar diam
  • Frame video yang didekode
  • Feed video live
Penyemat Gambar menghasilkan daftar embedding yang terdiri dari:
  • Embedding: vektor fitur itu sendiri, baik dalam bentuk floating point atau terkuantisasi skalar.
  • Indeks head: indeks untuk head yang menghasilkan embedding ini.
  • Nama head (opsional): nama head yang menghasilkan embedding ini.

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