Panduan tugas penyematan gambar

Dua contoh gambar cone es krim yang menyertakan penyematan numerik gambar sebagai array

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.

Coba sekarang.

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:

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

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